39 lines
977 B
SQL
39 lines
977 B
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `edi`.`putOrder_beforeUpdate`
|
|
BEFORE UPDATE ON `putOrder`
|
|
FOR EACH ROW
|
|
BEGIN
|
|
|
|
DECLARE vError VARCHAR(100) DEFAULT 'Orderregel niet meer teruggevonden op basis van de orderps';
|
|
DECLARE vVmpIdError INT DEFAULT 7;
|
|
DECLARE vVmpFk INT;
|
|
DECLARE vSupplyResponseNumberOfUnits INT;
|
|
|
|
SELECT sr.vmpID INTO vVmpFk
|
|
FROM edi.supplyResponse sr
|
|
WHERE sr.id = NEW.supplyResponseID;
|
|
|
|
IF NEW.OrderStatus = 3
|
|
AND NOT (NEW.OrderStatus <=> OLD.OrderStatus)
|
|
AND NEW.error = vError
|
|
AND vVmpFk = vVmpIdError
|
|
|
|
THEN
|
|
|
|
SET NEW.OrderStatus = 2;
|
|
|
|
END IF;
|
|
|
|
-- Error de disponible menor de lo solicitado
|
|
IF NEW.error LIKE 'error2602%' THEN
|
|
|
|
SELECT NumberOfUnits INTO vSupplyResponseNumberOfUnits
|
|
FROM edi.supplyResponse sr
|
|
WHERE sr.ID = NEW.supplyResponseID;
|
|
|
|
SET NEW.error = CONCAT('(',vSupplyResponseNumberOfUnits,') ', NEW.error);
|
|
|
|
END IF;
|
|
END$$
|
|
DELIMITER ;
|