salix/db/routines/vn/procedures/invoiceInTax_getFromDua.sql

36 lines
803 B
MySQL
Raw Permalink Normal View History

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;
DECLARE vInvoiceInFk INT;
2024-02-15 09:04:15 +00:00
DECLARE vInvoices CURSOR FOR
SELECT DISTINCT invoiceInFk
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-02-15 09:04:15 +00:00
OPEN vInvoices;
l: LOOP
SET vDone = FALSE;
FETCH vInvoices INTO vInvoiceInFk;
2024-02-15 09:04:15 +00:00
IF vDone THEN
LEAVE l;
END IF;
CALL invoiceInTax_getFromEntries(vInvoiceInFk);
CALL invoiceInDueDay_calculate(vInvoiceInFk);
2024-02-15 09:04:15 +00:00
END LOOP;
CLOSE vInvoices;
END$$
DELIMITER ;