34 lines
892 B
SQL
34 lines
892 B
SQL
DROP FUNCTION IF EXISTS `vn`.`invoiceOut_getMaxIssued`;
|
|
|
|
DELIMITER $$
|
|
$$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`invoiceOut_getMaxIssued`(
|
|
vSerial VARCHAR(2),
|
|
vCompanyFk INT,
|
|
vYear INT
|
|
) RETURNS DATE
|
|
READS SQL DATA
|
|
BEGIN
|
|
/**
|
|
* Retorna la fecha a partir de la cual es válido emitir una factura
|
|
*
|
|
* @param vSerial Serie de facturación
|
|
* @param vCompanyFk Empresa factura emitida
|
|
* @param vYear Año contable
|
|
* @return vInvoiceOutIssued fecha factura válida
|
|
*/
|
|
DECLARE vInvoiceOutIssued DATE;
|
|
DECLARE vFirstDayOfYear DATE;
|
|
|
|
SET vFirstDayOfYear := MAKEDATE(vYear, 1);
|
|
|
|
SELECT IFNULL(MAX(io.issued), vFirstDayOfYear) INTO vInvoiceOutIssued
|
|
FROM invoiceOut io
|
|
WHERE io.serial = vSerial
|
|
AND io.companyFk = vCompanyFk
|
|
AND io.issued BETWEEN vFirstDayOfYear
|
|
AND util.lastDayOfYear(vFirstDayOfYear);
|
|
|
|
RETURN vInvoiceOutIssued;
|
|
END$$
|
|
DELIMITER ; |