DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`invoiceInTaxMakeByDua`(
	vDuaFk INT
)
BEGIN
/**
 * 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;

	DECLARE vInvoices CURSOR FOR
		SELECT DISTINCT invoiceInFk
			FROM entry e
				JOIN duaEntry de ON de.entryFk = e.id
			WHERE de.duaFk = vDuaFk;

	DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;

	OPEN vInvoices;
	l: LOOP
		SET vDone = FALSE;
		FETCH vInvoices INTO vInvoiceInFk;

		IF vDone THEN
			LEAVE l;
		END IF;

		CALL invoiceInTax_recalc(vInvoiceInFk);
		CALL invoiceInDueDay_recalc(vInvoiceInFk);

	END LOOP;
	CLOSE vInvoices;
END$$
DELIMITER ;