39 lines
969 B
MySQL
39 lines
969 B
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `edi`.`BEFORE UPDATE`
|
||
|
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 ;
|