From c30c0de92c9e22e588c41d5b9497708aa11db5db Mon Sep 17 00:00:00 2001 From: robert Date: Wed, 10 Apr 2024 08:09:54 +0200 Subject: [PATCH] feat: refs #7150 --- .../bi/procedures/greuge_dif_porte_add.sql | 82 +++++++++---------- .../10971-turquoiseRuscus/00-firstScript.sql | 4 +- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/db/routines/bi/procedures/greuge_dif_porte_add.sql b/db/routines/bi/procedures/greuge_dif_porte_add.sql index e54678037..330ff92b8 100644 --- a/db/routines/bi/procedures/greuge_dif_porte_add.sql +++ b/db/routines/bi/procedures/greuge_dif_porte_add.sql @@ -8,12 +8,12 @@ BEGIN DECLARE vDateStarted DATETIME; DECLARE vDateEnded DATETIME DEFAULT (util.VN_CURDATE() - INTERVAL 1 DAY); - DECLARE vDaysSinceLastRecalculation INT; + DECLARE vDaysAgoOffset INT; - SELECT daysSinceLastRecalculation INTO vDaysSinceLastRecalculation + SELECT daysAgoOffset INTO vDaysAgoOffset FROM vn.greugeConfig; - SET vDateStarted = util.VN_CURDATE() - INTERVAL vDaysSinceLastRecalculation DAY; + SET vDateStarted = util.VN_CURDATE() - INTERVAL vDaysAgoOffset DAY; DROP TEMPORARY TABLE IF EXISTS tmp.dp; @@ -21,37 +21,37 @@ BEGIN CREATE TEMPORARY TABLE tmp.dp (PRIMARY KEY (ticketFk)) ENGINE = MEMORY - SELECT t.id ticketFk, - SUM((t.zonePrice - t.zoneBonus) * ebv.ratio) teorico, - 00000.00 practico, - 00000.00 greuge, - t.clientFk, - t.shipped - FROM vn.ticket t - JOIN vn.client c ON c.id = t.clientFk - LEFT JOIN vn.expedition e ON e.ticketFk = t.id - JOIN vn.expeditionBoxVol ebv ON ebv.boxFk = e.freightItemFk - JOIN vn.zone z ON t.zoneFk = z.id - JOIN vn.company cp ON cp.id = t.companyFk - WHERE t.shipped BETWEEN vDateStarted AND vDateEnded - AND c.isRelevant - AND cp.code IN ('VNL', 'VNH') - AND NOT z.isVolumetric - GROUP BY t.id; + SELECT t.id ticketFk, + SUM((t.zonePrice - t.zoneBonus) * ebv.ratio) teorico, + 00000.00 practico, + 00000.00 greuge, + t.clientFk, + t.shipped + FROM vn.ticket t + JOIN vn.client c ON c.id = t.clientFk + LEFT JOIN vn.expedition e ON e.ticketFk = t.id + JOIN vn.expeditionBoxVol ebv ON ebv.boxFk = e.freightItemFk + JOIN vn.zone z ON t.zoneFk = z.id + JOIN vn.company cp ON cp.id = t.companyFk + WHERE t.shipped BETWEEN vDateStarted AND vDateEnded + AND c.isRelevant + AND cp.code IN ('VNL', 'VNH') + AND NOT z.isVolumetric + GROUP BY t.id; -- Agencias que cobran por volumen INSERT INTO tmp.dp SELECT sv.ticketFk, - SUM(IFNULL(sv.freight,0)) teorico, - 00000.00 practico, - 00000.00 greuge, - sv.clientFk, - sv.shipped - FROM vn.saleVolume sv - JOIN vn.zone z ON z.id = sv.zoneFk - AND sv.shipped BETWEEN vDateStarted AND vDateEnded - AND z.isVolumetric != FALSE - GROUP BY sv.ticketFk; + SUM(IFNULL(sv.freight,0)) teorico, + 00000.00 practico, + 00000.00 greuge, + sv.clientFk, + sv.shipped + FROM vn.saleVolume sv + JOIN vn.zone z ON z.id = sv.zoneFk + AND sv.shipped BETWEEN vDateStarted AND vDateEnded + AND z.isVolumetric != FALSE + GROUP BY sv.ticketFk; DROP TEMPORARY TABLE IF EXISTS tmp.dp_aux; @@ -67,7 +67,7 @@ BEGIN GROUP BY dp.ticketFk; UPDATE tmp.dp - JOIN tmp.dp_aux USING(ticketFk) + JOIN tmp.dp_aux USING(ticketFk) SET practico = IFNULL(valor,0); DROP TEMPORARY TABLE tmp.dp_aux; @@ -77,22 +77,22 @@ BEGIN ENGINE = MEMORY SELECT dp.ticketFk, SUM(g.amount) Importe FROM tmp.dp - JOIN vn.greuge g ON g.ticketFk = dp.ticketFk - JOIN vn.greugeType gt ON gt.id = g.greugeTypeFk - WHERE gt.code = 'freightDifference' -- dif_porte - GROUP BY dp.ticketFk; + JOIN vn.greuge g ON g.ticketFk = dp.ticketFk + JOIN vn.greugeType gt ON gt.id = g.greugeTypeFk + WHERE gt.code = 'freightDifference' -- dif_porte + GROUP BY dp.ticketFk; UPDATE tmp.dp - JOIN tmp.dp_aux USING(ticketFk) + JOIN tmp.dp_aux USING(ticketFk) SET greuge = IFNULL(Importe,0); INSERT INTO vn.greuge (clientFk,description,amount,shipped,greugeTypeFk,ticketFk) SELECT dp.clientFk, - CONCAT('dif_porte ', dp.ticketFk), - ROUND(IFNULL(dp.teorico,0) - IFNULL(dp.practico,0) - IFNULL(dp.greuge,0),2) Importe, - date(dp.shipped), - 1, - dp.ticketFk + CONCAT('dif_porte ', dp.ticketFk), + ROUND(IFNULL(dp.teorico,0) - IFNULL(dp.practico,0) - IFNULL(dp.greuge,0),2) Importe, + date(dp.shipped), + 1, + dp.ticketFk FROM tmp.dp JOIN vn.client c ON c.id = dp.clientFk WHERE ABS(IFNULL(dp.teorico,0) - IFNULL(dp.practico,0) - IFNULL(dp.greuge,0)) > 1 diff --git a/db/versions/10971-turquoiseRuscus/00-firstScript.sql b/db/versions/10971-turquoiseRuscus/00-firstScript.sql index 702f2d2aa..82a0117c3 100644 --- a/db/versions/10971-turquoiseRuscus/00-firstScript.sql +++ b/db/versions/10971-turquoiseRuscus/00-firstScript.sql @@ -1,4 +1,4 @@ ALTER TABLE IF EXISTS `vn`.`greugeConfig` - ADD COLUMN IF NOT EXISTS `daysSinceLastRecalculation` int(11) NOT NULL; + ADD COLUMN IF NOT EXISTS `daysAgoOffset` int(11) NOT NULL; -UPDATE vn.greugeConfig SET daysSinceLastRecalculation=15; \ No newline at end of file +UPDATE vn.greugeConfig SET daysAgoOffset=15; \ No newline at end of file