From a7f725a194232d375661a2662be71ea91d167ce3 Mon Sep 17 00:00:00 2001 From: robert Date: Wed, 24 Jul 2024 07:25:43 +0200 Subject: [PATCH 1/5] feat: refs #7774 ticket_cloneWeekly --- .../vn/procedures/ticket_cloneWeekly.sql | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/ticket_cloneWeekly.sql b/db/routines/vn/procedures/ticket_cloneWeekly.sql index fd45dc9fa6..06d1554ceb 100644 --- a/db/routines/vn/procedures/ticket_cloneWeekly.sql +++ b/db/routines/vn/procedures/ticket_cloneWeekly.sql @@ -17,6 +17,10 @@ BEGIN DECLARE vYear INT; DECLARE vSalesPersonFK INT; DECLARE vItemPicker INT; + DECLARE vTicketfailed INT; + DECLARE vSubjectsTicketfailed VARCHAR(50); + DECLARE vMessagesTicketfailed TEXT; + DECLARE rsTicket CURSOR FOR SELECT tt.ticketFk, @@ -185,8 +189,11 @@ BEGIN IF (vLanding IS NULL) THEN - SELECT e.email INTO vSalesPersonEmail + SELECT IFNULL(d.notificationEmail,e.email) INTO vSalesPersonEmail FROM client c + JOIN worker w ON w.id = c.salesPersonFk + JOIN workerDepartment wd ON wd.workerFk = c.salesPersonFk + JOIN department d ON d.id = wd.departmentFk JOIN account.emailUser e ON e.userFk = c.salesPersonFk WHERE c.id = vClientFk; @@ -213,6 +220,37 @@ BEGIN END; END LOOP; CLOSE rsTicket; + + WITH tOrigin AS ( + SELECT tt.ticketFk, + t.clientFk, + t.warehouseFk, + t.companyFk, + t.addressFk, + tt.agencyModeFk, + ti.dated + FROM ticketWeekly tt + JOIN ticket t ON tt.ticketFk = t.id + JOIN tmp.time ti + WHERE WEEKDAY(ti.dated) = tt.weekDay + ),total AS( + SELECT tor.ticketFk, tc.id + FROM tOrigin tor + JOIN sale so ON tor.ticketFk = so.ticketFk + LEFT JOIN ticket tc ON tc.id = tor.ticketFk + AND DATE(tc.shipped) = tor.dated + LEFT JOIN sale sc ON sc.ticketFk = tc.id + WHERE sc.id IS NULL + GROUP BY tor.ticketFk, tc.id + )SELECT COUNT(DISTINCT ticketFk) INTO vTicketfailed + FROM total; + + IF vTicketfailed THEN + SET vSubjectsTicketfailed = 'Turnos - Tickets que no se han clonado '; + SET vMessagesTicketfailed = 'No se ha podido clonar tickets revisar que tickets han sido y mirar por que no se han clonado'; + CALL mail_insert('nocontestar@verdnatura.es', NULL, vSubjectsTicketfailed, vMessagesTicketfailed); + END IF; + DROP TEMPORARY TABLE IF EXISTS tmp.time, tmp.zoneGetLanded; END$$ DELIMITER ; -- 2.40.1 From d0dfb95718f2924ff8d054d8a1cc7efada9e63c2 Mon Sep 17 00:00:00 2001 From: robert Date: Wed, 24 Jul 2024 13:56:21 +0200 Subject: [PATCH 2/5] feat: refs #7774 --- .../vn/procedures/ticket_cloneWeekly.sql | 33 ------------------- 1 file changed, 33 deletions(-) diff --git a/db/routines/vn/procedures/ticket_cloneWeekly.sql b/db/routines/vn/procedures/ticket_cloneWeekly.sql index 06d1554ceb..f689f2600e 100644 --- a/db/routines/vn/procedures/ticket_cloneWeekly.sql +++ b/db/routines/vn/procedures/ticket_cloneWeekly.sql @@ -18,9 +18,6 @@ BEGIN DECLARE vSalesPersonFK INT; DECLARE vItemPicker INT; DECLARE vTicketfailed INT; - DECLARE vSubjectsTicketfailed VARCHAR(50); - DECLARE vMessagesTicketfailed TEXT; - DECLARE rsTicket CURSOR FOR SELECT tt.ticketFk, @@ -221,36 +218,6 @@ BEGIN END LOOP; CLOSE rsTicket; - WITH tOrigin AS ( - SELECT tt.ticketFk, - t.clientFk, - t.warehouseFk, - t.companyFk, - t.addressFk, - tt.agencyModeFk, - ti.dated - FROM ticketWeekly tt - JOIN ticket t ON tt.ticketFk = t.id - JOIN tmp.time ti - WHERE WEEKDAY(ti.dated) = tt.weekDay - ),total AS( - SELECT tor.ticketFk, tc.id - FROM tOrigin tor - JOIN sale so ON tor.ticketFk = so.ticketFk - LEFT JOIN ticket tc ON tc.id = tor.ticketFk - AND DATE(tc.shipped) = tor.dated - LEFT JOIN sale sc ON sc.ticketFk = tc.id - WHERE sc.id IS NULL - GROUP BY tor.ticketFk, tc.id - )SELECT COUNT(DISTINCT ticketFk) INTO vTicketfailed - FROM total; - - IF vTicketfailed THEN - SET vSubjectsTicketfailed = 'Turnos - Tickets que no se han clonado '; - SET vMessagesTicketfailed = 'No se ha podido clonar tickets revisar que tickets han sido y mirar por que no se han clonado'; - CALL mail_insert('nocontestar@verdnatura.es', NULL, vSubjectsTicketfailed, vMessagesTicketfailed); - END IF; - DROP TEMPORARY TABLE IF EXISTS tmp.time, tmp.zoneGetLanded; END$$ DELIMITER ; -- 2.40.1 From c4e82022611fecada029cfa8614e4c4eceb0f8bf Mon Sep 17 00:00:00 2001 From: guillermo Date: Mon, 12 Aug 2024 08:53:24 +0200 Subject: [PATCH 3/5] feat: refs #7774 #7774 Changes ticket_cloneWeekly --- .../vn/procedures/ticket_cloneWeekly.sql | 68 +++++++++---------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/db/routines/vn/procedures/ticket_cloneWeekly.sql b/db/routines/vn/procedures/ticket_cloneWeekly.sql index f689f2600e..be19a40bf3 100644 --- a/db/routines/vn/procedures/ticket_cloneWeekly.sql +++ b/db/routines/vn/procedures/ticket_cloneWeekly.sql @@ -17,35 +17,33 @@ BEGIN DECLARE vYear INT; DECLARE vSalesPersonFK INT; DECLARE vItemPicker INT; - DECLARE vTicketfailed INT; + DECLARE vEmail VARCHAR(150); + DECLARE vIsDuplicateMail BOOL; + DECLARE vSubject VARCHAR(150); + DECLARE vMessage TEXT; - DECLARE rsTicket CURSOR FOR - SELECT tt.ticketFk, - t.clientFk, - t.warehouseFk, - t.companyFk, - t.addressFk, - tt.agencyModeFk, - ti.dated - FROM ticketWeekly tt - JOIN ticket t ON tt.ticketFk = t.id - JOIN tmp.time ti - WHERE WEEKDAY(ti.dated) = tt.weekDay; + DECLARE vTickets CURSOR FOR + SELECT tt.ticketFk, + t.clientFk, + t.warehouseFk, + t.companyFk, + t.addressFk, + tt.agencyModeFk, + ti.dated + FROM ticketWeekly tt + JOIN ticket t ON tt.ticketFk = t.id + JOIN tmp.time ti + WHERE WEEKDAY(ti.dated) = tt.weekDay; DECLARE CONTINUE HANDLER FOR NOT FOUND SET vIsDone = TRUE; - - CALL `util`.`time_generate`(vDateFrom,vDateTo); - - OPEN rsTicket; - myLoop: LOOP - BEGIN - DECLARE vSalesPersonEmail VARCHAR(150); - DECLARE vIsDuplicateMail BOOL; - DECLARE vSubject VARCHAR(150); - DECLARE vMessage TEXT; + + CALL `util`.`time_generate`(vDateFrom, vDateTo); + + OPEN vTickets; + l: LOOP SET vIsDone = FALSE; - FETCH rsTicket INTO + FETCH vTickets INTO vTicketFk, vClientFk, vWarehouseFk, @@ -55,10 +53,10 @@ BEGIN vShipment; IF vIsDone THEN - LEAVE myLoop; + LEAVE l; END IF; - -- busca si el ticket ya ha sido clonado + -- Busca si el ticket ya ha sido clonado IF EXISTS (SELECT TRUE FROM ticket tOrig JOIN sale saleOrig ON tOrig.id = saleOrig.ticketFk JOIN saleCloned sc ON sc.saleOriginalFk = saleOrig.id @@ -68,7 +66,7 @@ BEGIN AND tClon.isDeleted = FALSE AND DATE(tClon.shipped) = vShipment) THEN - ITERATE myLoop; + ITERATE l; END IF; IF vAgencyModeFk IS NULL THEN @@ -184,9 +182,9 @@ BEGIN ON DUPLICATE KEY UPDATE description = CONCAT(ticketObservation.description,VALUES(description),' '); - IF (vLanding IS NULL) THEN + IF vLanding IS NULL THEN - SELECT IFNULL(d.notificationEmail,e.email) INTO vSalesPersonEmail + SELECT IFNULL(d.notificationEmail, e.email) INTO vEmail FROM client c JOIN worker w ON w.id = c.salesPersonFk JOIN workerDepartment wd ON wd.workerFk = c.salesPersonFk @@ -203,21 +201,21 @@ BEGIN SELECT COUNT(*) INTO vIsDuplicateMail FROM mail - WHERE receiver = vSalesPersonEmail + WHERE receiver = vEmail AND subject = vSubject; IF NOT vIsDuplicateMail THEN - CALL mail_insert(vSalesPersonEmail, NULL, vSubject, vMessage); + CALL mail_insert(vEmail, NULL, vSubject, vMessage); END IF; CALL ticket_setState(vNewTicket, 'FIXING'); ELSE CALL ticketCalculateClon(vNewTicket, vTicketFk); END IF; - - END; END LOOP; - CLOSE rsTicket; + CLOSE vTickets; - DROP TEMPORARY TABLE IF EXISTS tmp.time, tmp.zoneGetLanded; + DROP TEMPORARY TABLE IF EXISTS + tmp.time, + tmp.zoneGetLanded; END$$ DELIMITER ; -- 2.40.1 From 3cf2cec94604a4e6e422db029bd58e0576962be3 Mon Sep 17 00:00:00 2001 From: guillermo Date: Mon, 12 Aug 2024 09:02:38 +0200 Subject: [PATCH 4/5] feat: refs #7774 #7774 Changes ticket_cloneWeekly --- .../vn/procedures/ticket_cloneWeekly.sql | 52 ++++++++----------- 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/db/routines/vn/procedures/ticket_cloneWeekly.sql b/db/routines/vn/procedures/ticket_cloneWeekly.sql index be19a40bf3..d5c9939df5 100644 --- a/db/routines/vn/procedures/ticket_cloneWeekly.sql +++ b/db/routines/vn/procedures/ticket_cloneWeekly.sql @@ -4,7 +4,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_cloneWeekly` vDateTo DATE ) BEGIN - DECLARE vIsDone BOOL; DECLARE vLanding DATE; DECLARE vShipment DATE; DECLARE vWarehouseFk INT; @@ -15,12 +14,15 @@ BEGIN DECLARE vAgencyModeFk INT; DECLARE vNewTicket INT; DECLARE vYear INT; - DECLARE vSalesPersonFK INT; - DECLARE vItemPicker INT; - DECLARE vEmail VARCHAR(150); + DECLARE vObservationSalesPersonFk INT + DEFAULT (SELECT id FROM observationType WHERE code = 'salesPerson'); + DECLARE vObservationItemPickerFk INT + DEFAULT (SELECT id FROM observationType WHERE code = 'itemPicker'); + DECLARE vEmail VARCHAR(255); DECLARE vIsDuplicateMail BOOL; - DECLARE vSubject VARCHAR(150); + DECLARE vSubject VARCHAR(100); DECLARE vMessage TEXT; + DECLARE vDone BOOL; DECLARE vTickets CURSOR FOR SELECT tt.ticketFk, @@ -35,14 +37,13 @@ BEGIN JOIN tmp.time ti WHERE WEEKDAY(ti.dated) = tt.weekDay; - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vIsDone = TRUE; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; CALL `util`.`time_generate`(vDateFrom, vDateTo); OPEN vTickets; l: LOOP - - SET vIsDone = FALSE; + SET vDone = FALSE; FETCH vTickets INTO vTicketFk, vClientFk, @@ -52,7 +53,7 @@ BEGIN vAgencyModeFk, vShipment; - IF vIsDone THEN + IF vDone THEN LEAVE l; END IF; @@ -106,15 +107,15 @@ BEGIN priceFixed, isPriceFixed) SELECT vNewTicket, - saleOrig.itemFk, - saleOrig.concept, - saleOrig.quantity, - saleOrig.price, - saleOrig.discount, - saleOrig.priceFixed, - saleOrig.isPriceFixed - FROM sale saleOrig - WHERE saleOrig.ticketFk = vTicketFk; + itemFk, + concept, + quantity, + price, + discount, + priceFixed, + isPriceFixed + FROM sale + WHERE ticketFk = vTicketFk; INSERT IGNORE INTO saleCloned(saleOriginalFk, saleClonedFk) SELECT saleOriginal.id, saleClon.id @@ -151,15 +152,7 @@ BEGIN attenderFk, vNewTicket FROM ticketRequest - WHERE ticketFk =vTicketFk; - - SELECT id INTO vSalesPersonFK - FROM observationType - WHERE code = 'salesPerson'; - - SELECT id INTO vItemPicker - FROM observationType - WHERE code = 'itemPicker'; + WHERE ticketFk = vTicketFk; INSERT INTO ticketObservation( ticketFk, @@ -167,7 +160,7 @@ BEGIN description) VALUES( vNewTicket, - vSalesPersonFK, + vObservationSalesPersonFk, CONCAT('turno desde ticket: ',vTicketFk)) ON DUPLICATE KEY UPDATE description = CONCAT(ticketObservation.description,VALUES(description),' '); @@ -177,13 +170,12 @@ BEGIN description) VALUES( vNewTicket, - vItemPicker, + vObservationItemPickerFk, 'ATENCION: Contiene lineas de TURNO') ON DUPLICATE KEY UPDATE description = CONCAT(ticketObservation.description,VALUES(description),' '); IF vLanding IS NULL THEN - SELECT IFNULL(d.notificationEmail, e.email) INTO vEmail FROM client c JOIN worker w ON w.id = c.salesPersonFk -- 2.40.1 From 931c13d8ab1fddfd517568b3f5a456f8de6527a0 Mon Sep 17 00:00:00 2001 From: guillermo Date: Mon, 12 Aug 2024 09:06:24 +0200 Subject: [PATCH 5/5] feat: refs #7774 #7774 Changes ticket_cloneWeekly --- db/routines/vn/procedures/ticket_cloneWeekly.sql | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/db/routines/vn/procedures/ticket_cloneWeekly.sql b/db/routines/vn/procedures/ticket_cloneWeekly.sql index d5c9939df5..e13e7e677d 100644 --- a/db/routines/vn/procedures/ticket_cloneWeekly.sql +++ b/db/routines/vn/procedures/ticket_cloneWeekly.sql @@ -178,10 +178,9 @@ BEGIN IF vLanding IS NULL THEN SELECT IFNULL(d.notificationEmail, e.email) INTO vEmail FROM client c - JOIN worker w ON w.id = c.salesPersonFk - JOIN workerDepartment wd ON wd.workerFk = c.salesPersonFk - JOIN department d ON d.id = wd.departmentFk JOIN account.emailUser e ON e.userFk = c.salesPersonFk + LEFT JOIN workerDepartment wd ON wd.workerFk = c.salesPersonFk + LEFT JOIN department d ON d.id = wd.departmentFk WHERE c.id = vClientFk; SET vSubject = CONCAT('Turnos - No se ha podido clonar correctamente el ticket ', -- 2.40.1