DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `vn`.`duaTax_getRate`(vDuaFk INT, vTaxClassFk INT)
	RETURNS decimal(5,2)
	DETERMINISTIC
BEGIN
/**
 * Devuelve el rate para un Dua teniendo en cuenta la fecha de opreciĆ³n del DUA
 * 
 * @param vDuaFk Identificador de  la tabla dua
 * @param vTaxClassFk Identificador del IVA de la tabla invoiceInTaxBookingAccount
 */
	RETURN (
		SELECT rate
			FROM dua d
				JOIN supplier s ON s.id = d.companyFk
				JOIN invoiceInTaxBookingAccount iit ON iit.countryFk =  s.countryFk
					AND iit.taxClassFk = vTaxClassFk
					AND iit.effectived <= IFNULL( d.operated, util.VN_CURDATE())
			WHERE d.id = vDuaFk
			ORDER BY effectived DESC
			LIMIT 1);
END$$
DELIMITER ;