76 lines
2.4 KiB
MySQL
76 lines
2.4 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `edi`.`putOrder_AFTER_UPDATE`
|
||
|
AFTER UPDATE ON `putOrder`
|
||
|
FOR EACH ROW
|
||
|
BEGIN
|
||
|
DECLARE vSaleFk INT;
|
||
|
DECLARE vOrderStatusDenied INT DEFAULT 3;
|
||
|
DECLARE vOrderStatusOK INT DEFAULT 2;
|
||
|
DECLARE vIsEktSender BOOLEAN;
|
||
|
|
||
|
IF NEW.OrderStatus = vOrderStatusDenied AND NOT (NEW.OrderStatus <=> OLD.OrderStatus) THEN
|
||
|
|
||
|
SELECT s.id INTO vSaleFk
|
||
|
FROM vn.sale s
|
||
|
JOIN vn.ticket t ON s.ticketFk = t.id
|
||
|
JOIN vn.item i ON i.id = s.itemFk
|
||
|
JOIN deliveryInformation di ON di.ID = NEW.deliveryInformationID
|
||
|
WHERE t.clientFk = NEW.EndUserPartyGLN AND t.shipped >= util.VN_CURDATE()
|
||
|
AND i.supplyResponseFk = NEW.supplyResponseID
|
||
|
LIMIT 1;
|
||
|
|
||
|
UPDATE vn.sale s
|
||
|
JOIN vn.ticket t ON s.ticketFk = t.id
|
||
|
JOIN vn.item i ON i.id = s.itemFk
|
||
|
JOIN deliveryInformation di ON di.ID = NEW.deliveryInformationID
|
||
|
SET s.quantity = 0
|
||
|
WHERE t.clientFk = NEW.EndUserPartyGLN AND t.shipped >= util.VN_CURDATE()
|
||
|
AND i.supplyResponseFk = NEW.supplyResponseID;
|
||
|
|
||
|
INSERT INTO vn.mail (sender, `subject`, body)
|
||
|
SELECT IF(u.id IS NOT NULL AND c.email IS NOT NULL,
|
||
|
c.email,
|
||
|
CONCAT(account.user_getNameFromId(c.salesPersonFk), '@verdnatura.es')
|
||
|
),
|
||
|
'Producto no disponible en Floramondo',
|
||
|
CONCAT('El artículo ', s.concept, ' del ticket ', t.id , ' ha sido cancelado por Floramondo. ',
|
||
|
' Se ha actualizado la cantidad de ', OLD.quantity,' a 0. ',
|
||
|
IF (u.id IS NOT NULL AND c.email IS NOT NULL ,
|
||
|
CONCAT('https://shop.verdnatura.es/#!form=ecomerce%2Fticket&ticket=', t.id ),
|
||
|
CONCAT('https://salix.verdnatura.es/#!/ticket/', t.id ,'/summary')))
|
||
|
FROM vn.sale s
|
||
|
JOIN vn.ticket t ON t.id = s.ticketFk
|
||
|
JOIN vn.`client` c ON c.id = t.clientFk
|
||
|
LEFT JOIN account.user u ON u.id= c.salesPersonFk AND u.name IN ('ruben', 'ismaelalcolea')
|
||
|
WHERE s.id = vSaleFk;
|
||
|
|
||
|
END IF;
|
||
|
|
||
|
|
||
|
IF NEW.OrderStatus = vOrderStatusOK AND NOT (NEW.OrderStatus <=> OLD.OrderStatus) THEN
|
||
|
|
||
|
SELECT v.isEktSender INTO vIsEktSender
|
||
|
FROM edi.VMPSettings v
|
||
|
JOIN edi.supplyResponse sr ON sr.vmpID = v.VMPID
|
||
|
WHERE sr.id = NEW.supplyResponseID;
|
||
|
|
||
|
IF NOT vIsEktSender THEN
|
||
|
|
||
|
CALL edi.ekt_add(NEW.id);
|
||
|
|
||
|
END IF;
|
||
|
|
||
|
IF NEW.barcode THEN
|
||
|
|
||
|
INSERT IGNORE INTO vn.itemBarcode(itemFk, code)
|
||
|
SELECT i.id, NEW.barcode
|
||
|
FROM vn.item i
|
||
|
WHERE i.supplyResponseFk = NEW.supplyResponseID;
|
||
|
|
||
|
END IF;
|
||
|
|
||
|
END IF;
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|