DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_insertZone`()
BEGIN
	DECLARE vDone INT DEFAULT 0;
    DECLARE vFechedTicket INT;
    DECLARE vLanded DATE;
    DECLARE vAddressFk INT;
    DECLARE vAgencyModeFk INT;
    DECLARE vWarehouseFk INT;
	DECLARE vCursor CURSOR FOR 
		SELECT id, landed, addressFk, agencyModeFk, warehouseFk
        FROM vn.ticket WHERE shipped > '2020-01-01' AND zoneFk is null;
	DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET vDone = 1;
    
    OPEN vCursor;
    REPEAT
		FETCH vCursor INTO vFechedTicket, vLanded, vAddressFk, vAgencyModeFk, vWarehouseFk;
        CALL vn.zone_getShipped (vlanded, vAddressFk, vAgencyModeFk, TRUE);
        
        UPDATE vn.ticket t
			JOIN tmp.zoneGetShipped zgs ON zgs.warehouseFk = vWarehouseFk
			SET t.zoneFk = zgs.zoneFk
		WHERE t.id = vFechedTicket;
        
     UNTIL vDone END REPEAT;
	DROP TEMPORARY TABLE tmp.zoneGetShipped;
    
    CLOSE vCursor;
END$$
DELIMITER ;