DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`collection_get`(vWorkerFk INT)
BEGIN
/**
 * Obtiene colección del sacador si tiene líneas pendientes.
 *
 * @param vWorkerFk id del worker.
 * @table Devuelve tabla temporal con las colecciones pendientes
 */
	DROP TEMPORARY TABLE IF EXISTS tCollection;

	CREATE TEMPORARY TABLE tCollection
	SELECT 	c.id collectionFk,
			date(c.created) created,
			COUNT(DISTINCT tc.ticketFk) ticketTotalCount
		FROM collection c 
				JOIN ticketCollection tc ON tc.collectionFk = c.id 
				JOIN sale s ON s.ticketFk = tc.ticketFk 
				JOIN ticketState ts ON ts.ticketFk = tc.ticketFk
				JOIN state s2 ON s2.id = ts.stateFk
				JOIN productionConfig pc
				JOIN vn.state ss on ss.code = 'PREPARED'
				LEFT JOIN vn.saleTracking st on st.saleFk = s.id AND st.stateFk = ss.id
		WHERE  c.workerFk = vWorkerFk 
				AND TIMESTAMPDIFF(HOUR, c.created , util.VN_NOW()) < pc.pendingCollectionsAge
				AND s.quantity != 0
				AND s2.order < pc.pendingCollectionsOrder 
		GROUP BY c.id
		HAVING COUNT(*) > COUNT(DISTINCT st.id);

	SELECT * FROM tCollection;
END$$
DELIMITER ;