feat: refs #7774 ticket_cloneWeekly #2781
|
@ -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,10 +14,17 @@ BEGIN
|
|||
DECLARE vAgencyModeFk INT;
|
||||
DECLARE vNewTicket INT;
|
||||
DECLARE vYear INT;
|
||||
DECLARE vSalesPersonFK INT;
|
||||
DECLARE vItemPicker INT;
|
||||
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(100);
|
||||
DECLARE vMessage TEXT;
|
||||
DECLARE vDone BOOL;
|
||||
|
||||
DECLARE rsTicket CURSOR FOR
|
||||
DECLARE vTickets CURSOR FOR
|
||||
SELECT tt.ticketFk,
|
||||
t.clientFk,
|
||||
t.warehouseFk,
|
||||
|
@ -31,20 +37,14 @@ 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);
|
||||
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;
|
||||
|
||||
SET vIsDone = FALSE;
|
||||
FETCH rsTicket INTO
|
||||
OPEN vTickets;
|
||||
l: LOOP
|
||||
SET vDone = FALSE;
|
||||
FETCH vTickets INTO
|
||||
vTicketFk,
|
||||
vClientFk,
|
||||
vWarehouseFk,
|
||||
|
@ -53,11 +53,11 @@ BEGIN
|
|||
vAgencyModeFk,
|
||||
vShipment;
|
||||
|
||||
IF vIsDone THEN
|
||||
LEAVE myLoop;
|
||||
IF vDone THEN
|
||||
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
|
||||
|
@ -67,7 +67,7 @@ BEGIN
|
|||
AND tClon.isDeleted = FALSE
|
||||
AND DATE(tClon.shipped) = vShipment)
|
||||
THEN
|
||||
ITERATE myLoop;
|
||||
ITERATE l;
|
||||
END IF;
|
||||
|
||||
IF vAgencyModeFk IS NULL THEN
|
||||
|
@ -107,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
|
||||
|
@ -152,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,
|
||||
|
@ -168,7 +160,7 @@ BEGIN
|
|||
description)
|
||||
VALUES(
|
||||
vNewTicket,
|
||||
vSalesPersonFK,
|
||||
vObservationSalesPersonFk,
|
||||
CONCAT('turno desde ticket: ',vTicketFk))
|
||||
ON DUPLICATE KEY UPDATE description =
|
||||
CONCAT(ticketObservation.description,VALUES(description),' ');
|
||||
|
@ -178,16 +170,17 @@ 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 e.email INTO vSalesPersonEmail
|
||||
IF vLanding IS NULL THEN
|
||||
SELECT IFNULL(d.notificationEmail, e.email) INTO vEmail
|
||||
|
||||
FROM client c
|
||||
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 ',
|
||||
|
@ -199,20 +192,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;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.time, tmp.zoneGetLanded;
|
||||
CLOSE vTickets;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS
|
||||
tmp.time,
|
||||
tmp.zoneGetLanded;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
Loading…
Reference in New Issue
Realmente el cambio es este, lo demás es refactor.