33 lines
1.0 KiB
MySQL
33 lines
1.0 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceOut_beforeInsert`
|
||
|
BEFORE INSERT ON `invoiceOut`
|
||
|
FOR EACH ROW
|
||
|
BEGIN
|
||
|
DECLARE vRef CHAR(10) ;
|
||
|
|
||
|
IF YEAR(NEW.issued) <= 2021 THEN
|
||
|
|
||
|
SELECT CONCAT(NEW.serial,
|
||
|
IFNULL(RIGHT(MAX(i.ref), LENGTH(i.ref)-1) ,
|
||
|
RPAD(CONCAT(c.sage200Company, RIGHT(YEAR(util.VN_CURDATE()), 2)), 7,'0')) + 1) INTO vRef
|
||
|
FROM invoiceOut i
|
||
|
LEFT JOIN company c ON c.id = i.companyFk
|
||
|
WHERE i.serial = NEW.serial
|
||
|
AND i.issued BETWEEN util.firstDayOfYear(NEW.issued) AND util.dayEnd(util.lastDayOfYear(NEW.issued))
|
||
|
AND c.id = NEW.companyFk;
|
||
|
ELSE
|
||
|
|
||
|
SELECT CONCAT(NEW.serial,
|
||
|
IFNULL(RIGHT(MAX(i.ref), LENGTH(i.ref)-1) ,
|
||
|
RPAD(CONCAT(c.sage200Company, RIGHT(YEAR(util.VN_CURDATE()), 2)), 8,'0')) + 1) INTO vRef
|
||
|
FROM invoiceOut i
|
||
|
LEFT JOIN company c ON c.id = i.companyFk
|
||
|
WHERE i.serial = NEW.serial
|
||
|
AND i.issued BETWEEN util.firstDayOfYear(NEW.issued) AND util.dayEnd(util.lastDayOfYear(NEW.issued))
|
||
|
AND c.id = NEW.companyFk;
|
||
|
END IF;
|
||
|
|
||
|
SET NEW.ref = vRef;
|
||
|
END$$
|
||
|
DELIMITER ;
|