salix/db/routines/vn/triggers/travel_beforeUpdate.sql

39 lines
1.1 KiB
SQL

DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`travel_beforeUpdate`
BEFORE UPDATE ON `travel`
FOR EACH ROW
BEGIN
SET NEW.editorFk = account.myUser_getId();
/*
IF ((NOT NEW.shipped <=> OLD.shipped )
OR (NOT NEW.landed <=> OLD.landed )
OR (NOT NEW.warehouseInFk <=> OLD.warehouseInFk )
OR (NOT NEW.warehouseOutFk <=> OLD.warehouseOutFk ))
AND (OLD.totalEntries AND OLD.landed < CURDATE()) THEN
CALL util.throw("Cannot past travels with entries");
END IF;
*/
IF NOT (NEW.landed <=> OLD.landed)
OR NOT (NEW.shipped <=> OLD.shipped) THEN
CALL travel_checkDates(NEW.shipped, NEW.landed);
END IF;
-- Actualizar agencyFk y agencyModeFk
IF NOT (NEW.agencyFk <=> OLD.agencyFk)THEN
SET NEW.agencyModeFk = NEW.agencyFk;
END IF;
IF NOT (NEW.agencyModeFk <=> OLD.agencyModeFk) THEN
SET NEW.agencyFk = NEW.agencyModeFk;
END IF;
IF NOT (NEW.isReceived <=> OLD.isReceived) THEN
CALL travel_checkPackaging(NEW.id);
END IF;
IF NOT (NEW.warehouseInFk <=> OLD.warehouseInFk) THEN
CALL travel_checkWarehouseIsFeedStock(NEW.warehouseInFk);
END IF;
END$$
DELIMITER ;