DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_splitPackingComplete`(vTicketFk INT, vSectorFk INT)
BEGIN
	
		DECLARE vNeedToSplit BOOLEAN;
		DECLARE vNewTicketFk INT;
	
		DROP TEMPORARY TABLE IF EXISTS tmpSale;
	
		CREATE TEMPORARY TABLE tmpSale
			SELECT DISTINCT s.id
				FROM vn.ticket t 
					JOIN vn.sale s ON s.ticketFk = t.id
					JOIN vn.item i ON i.id = s.itemFk 
					LEFT JOIN vn.itemShelvingStock iss ON iss.itemFk = s.itemFk AND iss.sectorFk = vSectorFk
					JOIN vn.packagingConfig pc 
					WHERE t.id = vTicketFk
					AND (	s.quantity MOD IFNULL(iss.packing,1) != 0
						OR 
						 	IFNULL(iss.packing,1) = 1
						OR 
							i.`size` <= pc.previousPreparationMinimumSize
						);
		
		SELECT COUNT(*) 
			INTO vNeedToSplit
			FROM tmpSale; 
		
		IF vNeedToSplit THEN
		
			CALL vn.ticket_Clone(vTicketFk, vNewTicketFk);
		
			UPDATE vn.sale s
				JOIN vn.tmpSale ts ON ts.id = s.id 
				SET s.ticketFk = vNewTicketFk;
		
		END IF;
	
		DROP TEMPORARY TABLE tmpSale;
	
END$$
DELIMITER ;
