7299_testToMaster #2411

Merged
alexm merged 342 commits from 7299_testToMaster into master 2024-05-07 05:30:42 +00:00
2 changed files with 66 additions and 50 deletions
Showing only changes of commit 5602ed8835 - Show all commits

View File

@ -1,8 +1,19 @@
DELIMITER $$ DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`greuge_dif_porte_add`() CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`greuge_dif_porte_add`()
BEGIN BEGIN
DECLARE datSTART DATETIME DEFAULT TIMESTAMPADD(DAY,-60,util.VN_CURDATE()); -- '2019-07-01'
DECLARE datEND DATETIME DEFAULT TIMESTAMPADD(DAY,-1,util.VN_CURDATE()); /**
* Calculates the greuge based on a specific date in the 'grievanceConfig' table
*/
DECLARE vDateStarted DATETIME;
DECLARE vDateEnded DATETIME DEFAULT (util.VN_CURDATE() - INTERVAL 1 DAY);
DECLARE vDaysAgoOffset INT;
SELECT daysAgoOffset INTO vDaysAgoOffset
FROM vn.greugeConfig;
SET vDateStarted = util.VN_CURDATE() - INTERVAL vDaysAgoOffset DAY;
DROP TEMPORARY TABLE IF EXISTS tmp.dp; DROP TEMPORARY TABLE IF EXISTS tmp.dp;
@ -10,53 +21,53 @@ BEGIN
CREATE TEMPORARY TABLE tmp.dp CREATE TEMPORARY TABLE tmp.dp
(PRIMARY KEY (ticketFk)) (PRIMARY KEY (ticketFk))
ENGINE = MEMORY ENGINE = MEMORY
SELECT t.id ticketFk, SELECT t.id ticketFk,
SUM((t.zonePrice - t.zoneBonus) * ebv.ratio) AS teorico, SUM((t.zonePrice - t.zoneBonus) * ebv.ratio) teorico,
00000.00 as practico, 00000.00 practico,
00000.00 as greuge, 00000.00 greuge,
t.clientFk, t.clientFk,
t.shipped t.shipped
FROM FROM vn.ticket t
vn.ticket t JOIN vn.client c ON c.id = t.clientFk
JOIN vn2008.Clientes cli ON cli.Id_cliente = t.clientFk LEFT JOIN vn.expedition e ON e.ticketFk = t.id
LEFT JOIN vn.expedition e ON e.ticketFk = t.id JOIN vn.expeditionBoxVol ebv ON ebv.boxFk = e.freightItemFk
JOIN vn.expeditionBoxVol ebv ON ebv.boxFk = e.freightItemFk JOIN vn.zone z ON t.zoneFk = z.id
JOIN vn.zone z ON t.zoneFk = z.id JOIN vn.company cp ON cp.id = t.companyFk
WHERE WHERE t.shipped BETWEEN vDateStarted AND vDateEnded
t.shipped between datSTART AND datEND AND c.isRelevant
AND cli.`real` AND cp.code IN ('VNL', 'VNH')
AND t.companyFk IN (442 , 567) AND NOT z.isVolumetric
AND z.isVolumetric = FALSE GROUP BY t.id;
GROUP BY t.id;
-- Agencias que cobran por volumen -- Agencias que cobran por volumen
INSERT INTO tmp.dp INSERT INTO tmp.dp
SELECT sv.ticketFk, SELECT sv.ticketFk,
SUM(IFNULL(sv.freight,0)) AS teorico, SUM(IFNULL(sv.freight,0)) teorico,
00000.00 as practico, 00000.00 practico,
00000.00 as greuge, 00000.00 greuge,
sv.clientFk, sv.clientFk,
sv.shipped sv.shipped
FROM vn.saleVolume sv FROM vn.saleVolume sv
JOIN vn.zone z ON z.id = sv.zoneFk JOIN vn.zone z ON z.id = sv.zoneFk
AND sv.shipped BETWEEN datSTART AND datEND AND sv.shipped BETWEEN vDateStarted AND vDateEnded
AND z.isVolumetric != FALSE AND z.isVolumetric != FALSE
GROUP BY sv.ticketFk; GROUP BY sv.ticketFk;
DROP TEMPORARY TABLE IF EXISTS tmp.dp_aux; DROP TEMPORARY TABLE IF EXISTS tmp.dp_aux;
CREATE TEMPORARY TABLE tmp.dp_aux CREATE TEMPORARY TABLE tmp.dp_aux
(PRIMARY KEY (ticketFk)) (PRIMARY KEY (ticketFk))
ENGINE = MEMORY ENGINE = MEMORY
SELECT dp.ticketFk, sum(Cantidad * Valor) as valor SELECT dp.ticketFk, SUM(s.quantity * sc.value) valor
FROM tmp.dp FROM tmp.dp
JOIN vn2008.Movimientos m ON m.Id_Ticket = dp.ticketFk JOIN vn.sale s ON s.ticketFk = dp.ticketFk
JOIN vn2008.Movimientos_componentes mc using(Id_Movimiento) JOIN vn.saleComponent sc ON sc.saleFk = s.id
WHERE mc.Id_Componente = 15 JOIN vn.component c ON c.id = sc.componentFk
GROUP BY dp.ticketFk; WHERE c.code = 'delivery'
GROUP BY dp.ticketFk;
UPDATE tmp.dp UPDATE tmp.dp
JOIN tmp.dp_aux USING(ticketFk) JOIN tmp.dp_aux USING(ticketFk)
SET practico = IFNULL(valor,0); SET practico = IFNULL(valor,0);
DROP TEMPORARY TABLE tmp.dp_aux; DROP TEMPORARY TABLE tmp.dp_aux;
@ -64,25 +75,26 @@ BEGIN
CREATE TEMPORARY TABLE tmp.dp_aux CREATE TEMPORARY TABLE tmp.dp_aux
(PRIMARY KEY (ticketFk)) (PRIMARY KEY (ticketFk))
ENGINE = MEMORY ENGINE = MEMORY
SELECT dp.ticketFk, sum(g.amount) Importe SELECT dp.ticketFk, SUM(g.amount) Importe
FROM tmp.dp FROM tmp.dp
JOIN vn.greuge g ON g.ticketFk = dp.ticketFk JOIN vn.greuge g ON g.ticketFk = dp.ticketFk
WHERE g.greugeTypeFk = 1 -- dif_porte JOIN vn.greugeType gt ON gt.id = g.greugeTypeFk
GROUP BY dp.ticketFk; WHERE gt.code = 'freightDifference' -- dif_porte
GROUP BY dp.ticketFk;
UPDATE tmp.dp UPDATE tmp.dp
JOIN tmp.dp_aux USING(ticketFk) JOIN tmp.dp_aux USING(ticketFk)
SET greuge = IFNULL(Importe,0); SET greuge = IFNULL(Importe,0);
INSERT INTO vn.greuge (clientFk,description,amount,shipped,greugeTypeFk,ticketFk) INSERT INTO vn.greuge (clientFk,description,amount,shipped,greugeTypeFk,ticketFk)
SELECT dp.clientFk SELECT dp.clientFk,
, concat('dif_porte ', dp.ticketFk) CONCAT('dif_porte ', dp.ticketFk),
, round(IFNULL(dp.teorico,0) - IFNULL(dp.practico,0) - IFNULL(dp.greuge,0),2) as Importe ROUND(IFNULL(dp.teorico,0) - IFNULL(dp.practico,0) - IFNULL(dp.greuge,0),2) Importe,
, date(dp.shipped) date(dp.shipped),
, 1 1,
,dp.ticketFk dp.ticketFk
FROM tmp.dp FROM tmp.dp
JOIN vn.client c ON c.id = dp.clientFk JOIN vn.client c ON c.id = dp.clientFk
WHERE ABS(IFNULL(dp.teorico,0) - IFNULL(dp.practico,0) - IFNULL(dp.greuge,0)) > 1 WHERE ABS(IFNULL(dp.teorico,0) - IFNULL(dp.practico,0) - IFNULL(dp.greuge,0)) > 1
AND c.isRelevant; AND c.isRelevant;

View File

@ -0,0 +1,4 @@
ALTER TABLE IF EXISTS `vn`.`greugeConfig`
ADD COLUMN IF NOT EXISTS `daysAgoOffset` int(11) NOT NULL;
UPDATE vn.greugeConfig SET daysAgoOffset=15;