34 lines
892 B
MySQL
34 lines
892 B
MySQL
|
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 ;
|