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

28 lines
757 B
SQL

DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`dms_beforeInsert`
BEFORE INSERT ON `dms`
FOR EACH ROW
BEGIN
DECLARE vHardCopyNumber INT;
DECLARE vDmsTypeCode INT;
IF (SELECT NOT hasDms FROM warehouse WHERE id = NEW.warehouseFk) THEN
CALL util.throw('this warehouse has not dms');
END IF;
IF NEW.hasFile THEN
SELECT 1 + MAX(hardCopyNumber) INTO vHardCopyNumber
FROM dms
WHERE warehouseFk = NEW.warehouseFk;
SET NEW.hardCopyNumber = IFNULL(vHardCopyNumber,1);
END IF;
SELECT code INTO vDmsTypeCode
FROM dmsType WHERE NEW.dmsTypeFk = id;
IF (vDmsTypeCode ='ticket') THEN
UPDATE ticket SET isSigned = 1 WHERE id = NEW.reference;
END IF;
END$$
DELIMITER ;