DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`splitAnthuriums2016`()
BEGIN

DECLARE vStartingDate DATETIME DEFAULT '2016-10-18';
DECLARE vEndingDate DATETIME DEFAULT '2016-10-31 23:59:00';
DECLARE vMyTicket INT;
DECLARE vNewTicket INT;
-- DECLARE SILLA_PCA INT DEFAULT 44;
DECLARE done INT DEFAULT 0;

DECLARE rs CURSOR FOR
SELECT DISTINCT Id_Ticket
FROM Movimientos m
JOIN Tickets t using(Id_Ticket)
JOIN Articles a using(Id_Article)
JOIN Tipos tp using(tipo_id)
WHERE t.Fecha between vStartingDate and vEndingDate
AND warehouse_id = 1
AND 
	(
    Id_Tipo = 'ANT'
	OR 
    (	Id_Article = 100 
		AND 
		Concepte LIKE 'ANT%')
    );

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

OPEN rs;

FETCH rs INTO vMyTicket;



WHILE NOT done DO


	INSERT INTO Tickets(Id_Cliente
						, warehouse_id
                        , Fecha
                        , Alias
                        , Id_Consigna
                        , Id_Trabajador
                        , Id_Ruta
						, empresa_id
						, Id_Agencia
						, landing)
		SELECT Id_Cliente
			 , SILLA_PCA as warehouse_id
             , Fecha
             , Alias
             , Id_Consigna
             , Id_Trabajador
             , Id_Ruta
             , empresa_id
             , Id_Agencia
             , landing
		FROM Tickets
        WHERE Id_Ticket = vMyTicket;
        
	SELECT LAST_INSERT_ID() INTO vNewTicket;

																-- SELECT vMyTicket, vNewTicket; SET done = 1;    
    UPDATE Movimientos m
		JOIN Articles a using(Id_Article)
		JOIN Tipos tp using(tipo_id)
		SET Id_Ticket = vNewTicket
		WHERE Id_Ticket = vMyTicket
		AND (
			Id_Tipo = 'ANT'
			OR 
			(	m.Id_Article = 100 
				AND 
				Concepte LIKE 'ANT%')
			);

	FETCH rs INTO vMyTicket;

END WHILE;

CLOSE rs;

END$$
DELIMITER ;
