DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceOut_exportationFromClient`( vMaxTicketDate DATETIME, vClientFk INT, vCompanyFk INT) BEGIN /** * Genera tabla temporal tmp.ticketToInvoice necesaría para el proceso de facturación * Los abonos quedan excluidos en las exportaciones * * @param vMaxTicketDate Fecha hasta la cual cogerá tickets para facturar * @param vClientFk Id del cliente a facturar * @param vCompanyFk Id de la empresa desde la que se factura */ DECLARE vMinTicketDate DATE; SET vMinTicketDate = util.firstDayOfYear(vMaxTicketDate - INTERVAL 1 YEAR); SET vMaxTicketDate = util.dayend(vMaxTicketDate); DROP TEMPORARY TABLE IF EXISTS `tmp`.`ticketToInvoice`; CREATE TEMPORARY TABLE `tmp`.`ticketToInvoice` (PRIMARY KEY (`id`)) ENGINE = MEMORY SELECT t.id FROM ticket t JOIN agencyMode am ON am.id = t.agencyModeFk WHERE t.clientFk = vClientFk AND t.refFk IS NULL AND t.companyFk = vCompanyFk AND t.shipped BETWEEN vMinTicketDate AND vMaxTicketDate AND (am.`code` IS NULL OR am.`code` <> 'refund'); END$$ DELIMITER ;