2024-01-15 11:31:03 +00:00
|
|
|
DELIMITER $$
|
|
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceInTax_getFromDua`(vDuaFk INT)
|
|
|
|
BEGIN
|
2024-02-15 09:04:15 +00:00
|
|
|
/**
|
|
|
|
* Borra los valores de duaTax y sus vctos. y los vuelve a crear en base a la tabla duaEntry
|
|
|
|
*
|
|
|
|
* @param vDuaFk Id del dua a recalcular
|
|
|
|
*/
|
|
|
|
DECLARE vDone BOOL DEFAULT FALSE;
|
2024-01-15 11:31:03 +00:00
|
|
|
DECLARE vInvoiceInFk INT;
|
|
|
|
|
2024-02-15 09:04:15 +00:00
|
|
|
DECLARE vInvoices CURSOR FOR
|
|
|
|
SELECT DISTINCT invoiceInFk
|
2024-01-15 11:31:03 +00:00
|
|
|
FROM entry e
|
|
|
|
JOIN duaEntry de ON de.entryFk = e.id
|
|
|
|
WHERE de.duaFk = vDuaFk;
|
|
|
|
|
2024-02-15 09:04:15 +00:00
|
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
2024-01-15 11:31:03 +00:00
|
|
|
|
2024-02-15 09:04:15 +00:00
|
|
|
OPEN vInvoices;
|
|
|
|
l: LOOP
|
|
|
|
SET vDone = FALSE;
|
|
|
|
FETCH vInvoices INTO vInvoiceInFk;
|
2024-01-15 11:31:03 +00:00
|
|
|
|
2024-02-15 09:04:15 +00:00
|
|
|
IF vDone THEN
|
|
|
|
LEAVE l;
|
|
|
|
END IF;
|
2024-01-15 11:31:03 +00:00
|
|
|
|
|
|
|
CALL invoiceInTax_getFromEntries(vInvoiceInFk);
|
|
|
|
CALL invoiceInDueDay_calculate(vInvoiceInFk);
|
|
|
|
|
2024-02-15 09:04:15 +00:00
|
|
|
END LOOP;
|
|
|
|
CLOSE vInvoices;
|
2024-01-15 11:31:03 +00:00
|
|
|
END$$
|
|
|
|
DELIMITER ;
|