DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`invoiceFromClient`(
	IN vMaxTicketDate datetime,
	IN vClientFk INT,
	IN vCompanyFk INT)
BEGIN
	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 id FROM ticket t
			WHERE t.clientFk = vClientFk
				AND t.refFk IS NULL
				AND t.companyFk = vCompanyFk
				AND t.shipped BETWEEN vMinTicketDate AND vMaxTicketDate;
END$$
DELIMITER ;