28 lines
849 B
MySQL
28 lines
849 B
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceIn_au`
|
||
|
AFTER UPDATE ON `invoiceIn`
|
||
|
FOR EACH ROW
|
||
|
BEGIN
|
||
|
|
||
|
IF NEW.issued != OLD.issued
|
||
|
OR NEW.currencyFk != OLD.currencyFk THEN
|
||
|
|
||
|
UPDATE invoiceInTax iit
|
||
|
JOIN invoiceIn ii ON ii.id = iit.invoiceInFk
|
||
|
LEFT JOIN referenceRate rr ON rr.dated = ii.issued
|
||
|
AND rr.currencyFk = ii.currencyFk
|
||
|
SET iit.taxableBase = IF(iit.foreignValue IS NULL, iit.taxableBase, iit.foreignValue / rr.value)
|
||
|
WHERE ii.id = NEW.id;
|
||
|
|
||
|
UPDATE invoiceInDueDay iidd
|
||
|
JOIN invoiceIn ii ON ii.id = iidd.invoiceInFk
|
||
|
LEFT JOIN referenceRate rr ON rr.dated = ii.issued
|
||
|
AND rr.currencyFk = ii.currencyFk
|
||
|
SET iidd.amount = IF(iidd.foreignValue IS NULL, iidd.amount, iidd.foreignValue / rr.value)
|
||
|
WHERE ii.id = NEW.id;
|
||
|
|
||
|
END IF;
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|