refactor: refs #7567 Fix and improvement #2699
|
@ -0,0 +1,12 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`buffer_afterDelete`
|
||||
AFTER DELETE ON `buffer`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO buffer
|
||||
SET `action` = 'delete',
|
||||
`changedModel` = 'Buffer',
|
||||
`changedModelId` = OLD.id,
|
||||
`userFk` = account.myUser_getId();
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,8 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`buffer_beforeInsert`
|
||||
BEFORE INSERT ON `buffer`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SET NEW.editorFk = account.myUser_getId();
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,8 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`buffer_beforeUpdate`
|
||||
BEFORE UPDATE ON `buffer`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SET NEW.editorFk = account.myUser_getId();
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,12 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`config_afterDelete`
|
||||
AFTER DELETE ON `config`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO config
|
||||
SET `action` = 'delete',
|
||||
`changedModel` = 'Config',
|
||||
`changedModelId` = OLD.id,
|
||||
`userFk` = account.myUser_getId();
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,8 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`config_beforeInsert`
|
||||
BEFORE INSERT ON `config`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SET NEW.editorFk = account.myUser_getId();
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,8 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`config_beforeUpdate`
|
||||
BEFORE UPDATE ON `config`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SET NEW.editorFk = account.myUser_getId();
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -14,16 +14,28 @@ BEGIN
|
|||
DECLARE vTicketFk INT;
|
||||
|
||||
DECLARE cTickets CURSOR FOR
|
||||
SELECT id FROM ticket
|
||||
WHERE refFk IS NULL
|
||||
AND ((vScope = 'client' AND clientFk = vId)
|
||||
OR (vScope = 'address' AND addressFk = vId));
|
||||
SELECT DISTINCT t.id
|
||||
FROM ticket t
|
||||
LEFT JOIN tItems ti ON ti.id = t.id
|
||||
WHERE t.refFk IS NULL
|
||||
AND ((vScope = 'client' AND t.clientFk = vId)
|
||||
OR (vScope = 'address' AND t.addressFk = vId)
|
||||
OR (vScope = 'item' AND ti.id)
|
||||
);
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE tItems
|
||||
(PRIMARY KEY (id))
|
||||
ENGINE = MEMORY
|
||||
SELECT DISTINCT t.id
|
||||
FROM ticket t
|
||||
JOIN sale s ON s.ticketFk = t.id
|
||||
JOIN itemTaxCountry itc ON itc.itemFk = s.itemFk
|
||||
WHERE t.refFk IS NULL
|
||||
AND (vScope = 'item' AND itc.itemFk = vId);
|
||||
|
||||
OPEN cTickets;
|
||||
|
||||
myLoop: LOOP
|
||||
SET vDone = FALSE;
|
||||
FETCH cTickets INTO vTicketFk;
|
||||
|
@ -34,7 +46,8 @@ BEGIN
|
|||
|
||||
CALL ticket_recalc(vTicketFk, NULL);
|
||||
END LOOP;
|
||||
|
||||
CLOSE cTickets;
|
||||
|
||||
DROP TEMPORARY TABLE tItems;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
CREATE OR REPLACE TABLE `srt`.`bufferLog` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`originFk` int(11) DEFAULT NULL,
|
||||
`userFk` int(10) unsigned DEFAULT NULL,
|
||||
`action` set('insert','update','delete','select') NOT NULL,
|
||||
`creationDate` timestamp NULL DEFAULT current_timestamp(),
|
||||
`description` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
|
||||
`changedModel` enum('Buffer', 'Config') NOT NULL DEFAULT 'Buffer',
|
||||
`oldInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`oldInstance`)),
|
||||
`newInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`newInstance`)),
|
||||
`changedModelId` int(11) NOT NULL,
|
||||
`changedModelValue` varchar(45) DEFAULT NULL,
|
||||
`summaryId` varchar(30) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `logBufferUserFk` (`userFk`),
|
||||
KEY `bufferLog_changedModel` (`changedModel`,`changedModelId`,`creationDate`),
|
||||
KEY `bufferLog_originFk` (`originFk`,`creationDate`),
|
||||
CONSTRAINT `bufferUserFk` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE srt.buffer ADD editorFk int(10) unsigned DEFAULT NULL NULL;
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE srt.config ADD editorFk int(10) unsigned DEFAULT NULL NULL;
|
|
@ -0,0 +1,9 @@
|
|||
CREATE TABLE vn.quadMindsApiConfig (
|
||||
id int(10) unsigned NULL PRIMARY KEY,
|
||||
`url` varchar(255) DEFAULT NULL NULL,
|
||||
`key` varchar(255) DEFAULT NULL NULL,
|
||||
CONSTRAINT quadMindsConfig_check CHECK (id = 1)
|
||||
)
|
||||
ENGINE=InnoDB
|
||||
DEFAULT CHARSET=utf8mb3
|
||||
COLLATE=utf8mb3_unicode_ci;
|
|
@ -22,7 +22,7 @@ labels AS (
|
|||
b.id,
|
||||
b.itemFk,
|
||||
p.name producer,
|
||||
IF(i2.id, i2.comment, i.comment) comment
|
||||
IFNULL(i2.comment, i.comment) comment
|
||||
FROM buy b
|
||||
JOIN item i ON i.id = b.itemFk
|
||||
LEFT JOIN producer p ON p.id = i.producerFk
|
||||
|
|
|
@ -1,14 +1,20 @@
|
|||
|
||||
|
||||
h3 {
|
||||
font-weight: 100;
|
||||
color: #555
|
||||
}
|
||||
|
||||
.report-info {
|
||||
font-size: 20px
|
||||
}
|
||||
|
||||
.description strong {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.padding {
|
||||
padding: 16px;
|
||||
}
|
||||
.tags {
|
||||
font-size: 10px;
|
||||
margin: 0;
|
||||
}
|
|
@ -4,23 +4,23 @@
|
|||
</template>
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<div class="columns">
|
||||
<h1 class="title uppercase">{{$t('title')}}</h1>
|
||||
<div class="columns header-tables">
|
||||
<div class="size50">
|
||||
<div class="body">
|
||||
<h1 class="title uppercase">{{$t('title')}}</h1>
|
||||
<table class="row-oriented report-info">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="font gray uppercase">{{$t('entryId')}}</td>
|
||||
<td class="font gray uppercase padding nowrap">{{$t('entryId')}}</td>
|
||||
<th>{{entry.id}}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="font gray uppercase">{{$t('date')}}</td>
|
||||
<td class="font gray uppercase padding nowrap">{{$t('date')}}</td>
|
||||
<th>{{formatDate(entry.landed,'%d-%m-%Y')}}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="font gray uppercase">{{$t('ref')}}</td>
|
||||
<th>{{entry.invoiceNumber}}</th>
|
||||
<td class="font gray uppercase padding nowrap">{{$t('ref')}}</td>
|
||||
<th>{{entry.invoiceNumber | dashIfEmpty}}</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -38,42 +38,56 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table class="column-oriented vn-mt-ml">
|
||||
<table class="column-oriented vn-mt-ml border-collapse">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="number">{{$t('boxes')}}</th>
|
||||
<th width="5%" class="number"></th>
|
||||
<th class="number">{{$t('packing')}}</th>
|
||||
<th width="50%">{{$t('concept')}}</th>
|
||||
<th width="40%">{{$t('concept')}}</th>
|
||||
<th width="10%">{{$t('reference')}}</th>
|
||||
<th width="10%">{{$t('tags')}}</th>
|
||||
<th width="10%" class="number">{{$t('quantity')}}</th>
|
||||
<th width="5%" class="number"></th>
|
||||
<th width="15%" class="number">{{$t('price')}}</th>
|
||||
<th width="5%" class="number"></th>
|
||||
<th width="15%" class="number">{{$t('amount')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody v-for="buy in buys">
|
||||
<tr>
|
||||
<td class="number">{{buy.box}}</td>
|
||||
<td class="number">{{buy.stickers}}</td>
|
||||
<td width="5%" class="number">x</td>
|
||||
<td class="number">{{buy.packing}}</td>
|
||||
<td width="50%">{{buy.itemName}}</td>
|
||||
<td width="40%" class="nowrap">{{buy.name}}</td>
|
||||
<td width="10%">{{buy.comment}}</td>
|
||||
<td width="10%" class="font light-gray tags">
|
||||
<span v-if="buy.value5" class="nowrap"><strong>{{buy.tag5}} → </strong>{{buy.value5}} </span>
|
||||
<span v-if="buy.value6" class="nowrap"><strong>{{buy.tag6}} → </strong>{{buy.value6}} </span>
|
||||
<span v-if="buy.value7" class="nowrap"><strong>{{buy.tag7}} → </strong>{{buy.value7}} </span>
|
||||
</td>
|
||||
<td width="10%" class="number">{{buy.quantity | number($i18n.locale)}}</td>
|
||||
<td width="5%" class="number">x</td>
|
||||
<td width="15%" class="number">{{buy.buyingValue | currency('EUR', $i18n.locale)}}</td>
|
||||
<td width="5%" class="number">=</td>
|
||||
<td width="15%" class="number">
|
||||
{{buy.buyingValue * buy.quantity | currency('EUR', $i18n.locale)}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="description font light-gray">
|
||||
<td colspan="7">
|
||||
<span v-if="buy.value5"> <strong>{{buy.tag5}}</strong> {{buy.value5}} </span>
|
||||
<span v-if="buy.value6"> <strong>{{buy.tag6}}</strong> {{buy.value6}} </span>
|
||||
<span v-if="buy.value7"> <strong>{{buy.tag7}}</strong> {{buy.value7}} </span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="5" class="font bold">
|
||||
<span class="pull-right">{{$t('total')}}</span>
|
||||
</td>
|
||||
<td class="number">{{getTotal() | currency('EUR', $i18n.locale)}}</td>
|
||||
<tr class="font bold">
|
||||
<td class="number">{{getTotalBy('stickers')}}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="number">{{getTotalBy('quantity') | number($i18n.locale)}}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="number">{{getTotalBy('amount') | currency('EUR', $i18n.locale)}}</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
|
|
@ -13,13 +13,17 @@ module.exports = {
|
|||
return {totalBalance: 0.00};
|
||||
},
|
||||
methods: {
|
||||
getTotal() {
|
||||
let total = 0.00;
|
||||
this.buys.forEach(buy => {
|
||||
total += buy.quantity * buy.buyingValue;
|
||||
});
|
||||
|
||||
return total;
|
||||
getTotalBy(property) {
|
||||
return this.buys.reduce((total, buy) => {
|
||||
switch (property) {
|
||||
case 'amount':
|
||||
return total + buy.quantity * buy.buyingValue;
|
||||
case 'quantity':
|
||||
return total + buy.quantity;
|
||||
case 'stickers':
|
||||
return total + buy.stickers;
|
||||
}
|
||||
}, 0);
|
||||
}
|
||||
},
|
||||
props: {
|
||||
|
|
|
@ -2,7 +2,7 @@ reportName: pedido-de-entrada
|
|||
title: Pedido
|
||||
supplierName: Proveedor
|
||||
supplierStreet: Dirección
|
||||
entryId: Referencia interna
|
||||
entryId: Nº Entrada
|
||||
date: Fecha
|
||||
ref: Nº Factura
|
||||
boxes: Cajas
|
||||
|
@ -14,4 +14,6 @@ concept: Descripción
|
|||
total: Total
|
||||
entry: Entrada {0}
|
||||
supplierData: Datos del proveedor
|
||||
notes: Notas
|
||||
notes: Notas
|
||||
reference: Referencia
|
||||
tags: Tags
|
|
@ -1,16 +1,17 @@
|
|||
SELECT
|
||||
b.itemFk,
|
||||
b.quantity,
|
||||
b.buyingValue,
|
||||
b.stickers box,
|
||||
b.packing,
|
||||
i.name itemName,
|
||||
i.tag5,
|
||||
i.value5,
|
||||
i.tag6,
|
||||
i.value6,
|
||||
i.tag7,
|
||||
i.value7
|
||||
FROM buy b
|
||||
JOIN item i ON i.id = b.itemFk
|
||||
WHERE b.entryFk = ?
|
||||
SELECT b.itemFk,
|
||||
b.quantity,
|
||||
b.buyingValue,
|
||||
b.stickers,
|
||||
b.packing,
|
||||
i.name,
|
||||
IFNULL(i2.comment, i.comment) comment,
|
||||
i.tag5,
|
||||
i.value5,
|
||||
i.tag6,
|
||||
i.value6,
|
||||
i.tag7,
|
||||
i.value7
|
||||
FROM buy b
|
||||
JOIN item i ON i.id = b.itemFk
|
||||
LEFT JOIN item i2 ON i2.id = b.itemOriginalFk
|
||||
WHERE b.entryFk = ?
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
SELECT
|
||||
e.id,
|
||||
e.invoiceNumber,
|
||||
c.code companyCode,
|
||||
t.landed
|
||||
FROM entry e
|
||||
JOIN travel t ON t.id = e.travelFk
|
||||
JOIN company c ON c.id = e.companyFk
|
||||
WHERE e.id = ?
|
||||
SELECT e.id,
|
||||
e.invoiceNumber,
|
||||
c.code companyCode,
|
||||
t.landed
|
||||
FROM entry e
|
||||
JOIN travel t ON t.id = e.travelFk
|
||||
JOIN company c ON c.id = e.companyFk
|
||||
WHERE e.id = ?
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
SELECT
|
||||
s.name,
|
||||
s.street,
|
||||
s.nif,
|
||||
s.postCode,
|
||||
s.city,
|
||||
p.name province
|
||||
FROM supplier s
|
||||
JOIN entry e ON e.supplierFk = s.id
|
||||
LEFT JOIN province p ON p.id = s.provinceFk
|
||||
WHERE e.id = ?
|
||||
SELECT s.name,
|
||||
s.street,
|
||||
s.nif,
|
||||
s.postCode,
|
||||
s.city,
|
||||
p.name province
|
||||
FROM supplier s
|
||||
JOIN entry e ON e.supplierFk = s.id
|
||||
LEFT JOIN province p ON p.id = s.provinceFk
|
||||
WHERE e.id = ?
|
||||
|
|
Loading…
Reference in New Issue