feat: refs #7709 supplierPackaging_ReportSource
gitea/salix/pipeline/pr-dev There was a failure building this commit Details

This commit is contained in:
Robert Ferrús 2024-10-14 09:38:19 +02:00
parent 85cf301e48
commit a99fed2690
1 changed files with 128 additions and 127 deletions

View File

@ -12,79 +12,30 @@ BEGIN
*/
DECLARE vUser INT;
SET @vBalance = 0;
SET @vItemFk = NULL;
SELECT id INTO vUser
FROM supplier
WHERE nif = vNif;
IF vUser IS NULL THEN
SELECT id INTO vUser
FROM client
WHERE fi = vNif;
END IF;
CREATE OR REPLACE TEMPORARY TABLE tSupplierPackaging
SELECT vUser supplierFk,
itemFk,
SELECT itemFk,
longName,
supplier,
`name`,
entryFk,
landed,
`in`,
`out`,
sref,
buyingValue,
IF (
NOT (@vItemFk <=> sub.itemFk),
@vBalance := (`in` - `out`),
@vBalance := (`in` - `out` + @vBalance)
) balance,
@vItemFk := sub.itemFk previousItemFk
CAST(sref AS CHAR) sref,
buyingValue
FROM (
SELECT vUser,
sp.itemFk,
sp.longName,
sp.supplier,
CONCAT('E',sp.entryFk) entryFk,
sp.landed,
sp.`in`,
sp.`out`,
e.invoiceNumber sref,
sp.buyingValue
FROM supplierPackaging sp
JOIN entry e ON e.id = sp.entryFk
JOIN supplier s ON s.id = sp.supplierFk
WHERE s.nif = vNif
AND sp.landed >= vFromDated
UNION ALL
SELECT vUser,
itemFk,
longName,
supplier,
'E previous',
vFromDated,
SUM(`in`),
SUM(`out`),
NULL,
AVG(buyingValue)
FROM supplierPackaging sp
JOIN supplier s ON s.id = sp.supplierFk
WHERE s.nif = vNif
AND landed < vFromDated
GROUP BY itemFk
UNION ALL
SELECT vUser,
s.itemFk,
SELECT s.itemFk,
i.longName,
c.name,
CONCAT('T',s.ticketFk),
DATE(t.shipped),
CONCAT('T',s.ticketFk) entryFk,
DATE(t.shipped) landed,
-LEAST(s.quantity,0) `in`,
GREATEST(s.quantity,0) `out`,
t.cmrFk,
s.price * (100 - s.discount) / 100
t.cmrFk sref,
s.price * (100 - s.discount) / 100 buyingValue
FROM sale s
JOIN item i ON i.id = s.itemFk
JOIN packaging p ON p.itemFk = i.id
@ -94,8 +45,7 @@ BEGIN
AND t.shipped >= vFromDated
AND p.isPackageReturnable
UNION ALL
SELECT vUser,
s.itemFk,
SELECT s.itemFk,
i.longName,
c.name,
'T previous',
@ -115,11 +65,10 @@ BEGIN
AND NOT t.isDeleted
GROUP BY s.itemFk
UNION ALL
SELECT vUser,
p.itemFk,
SELECT p.itemFk,
i.longName,
c.name,
CONCAT('TP',tp.ticketFk),
CONCAT('TP',tp.ticketFk) entryFk,
DATE(t.shipped),
-LEAST(tp.quantity,0) `in`,
GREATEST(tp.quantity,0) `out`,
@ -134,8 +83,7 @@ BEGIN
AND t.shipped >= vFromDated
AND p.isPackageReturnable
UNION ALL
SELECT vUser,
p.itemFk,
SELECT p.itemFk,
i.longName,
c.name,
'TP previous',
@ -156,21 +104,74 @@ BEGIN
GROUP BY p.itemFk
ORDER BY itemFk , landed, entryFk
)sub
WHERE `out` OR `in`;
WHERE (`out` OR `in`);
SELECT supplierFk,
itemFk,
IF vUser IS NULL THEN
SELECT id INTO vUser
FROM client
WHERE fi = vNif;
INSERT INTO tSupplierPackaging
SELECT itemFk,
longName,
`name`,
entryFk,
landed,
`in`,
`out`,
sref,
buyingValue
FROM (
SELECT sp.itemFk,
sp.longName,
sp.supplier name,
CONCAT('E',sp.entryFk) entryFk,
sp.landed,
sp.`in`,
sp.`out`,
e.invoiceNumber sref,
sp.buyingValue
FROM supplierPackaging sp
JOIN entry e ON e.id = sp.entryFk
JOIN supplier s ON s.id = sp.supplierFk
WHERE s.nif = vNif
AND sp.landed >= vFromDated
UNION ALL
SELECT itemFk,
longName,
supplier,
'E previous',
vFromDated,
IF(SUM(`in`) + SUM(-`out`)>0, SUM(`in`) + SUM(-`out`), 0) `in`,
-IF(SUM(`in`) + SUM(-`out`)<0, SUM(`in`) + SUM(-`out`), 0) `out`,
NULL,
AVG(buyingValue)
FROM supplierPackaging sp
JOIN supplier s ON s.id = sp.supplierFk
WHERE s.nif = vNif
AND landed < vFromDated
GROUP BY itemFk
ORDER BY itemFk , landed, entryFk
) sub
WHERE (`out` OR `in`);
END IF;
SELECT vUser,
itemFk,
longName,
name,
entryFk,
landed,
CAST(`in` AS DECIMAL(10,0)) `in`,
CAST(`out` AS DECIMAL(10,0)) `out`,
sref,
buyingValue,
balance
CAST(SUM(IF(`in`=0, -`out`, `in`)) OVER (PARTITION BY itemFk ORDER BY itemFk , landed, entryFk) AS DECIMAL(10,2)) balance
FROM tSupplierPackaging
WHERE NOT (NOT balance AND landed < CURDATE() - INTERVAL 1 YEAR);
WHERE NOT (landed < CURDATE() - INTERVAL 1 YEAR)
ORDER BY itemFk, landed, entryFk;
DROP TEMPORARY TABLE tSupplierPackaging;
END$$