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

DECLARE done BOOL DEFAULT FALSE;
DECLARE vTicketFk INT;

DECLARE rs CURSOR FOR
		SELECT id FROM vn.ticket 
			WHERE shipped = util.yesterday() 
				AND clientFk = 400
                AND warehouseFk IN (1,44);

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN rs;

FETCH rs INTO vTicketFk;

WHILE NOT done DO
   
    INSERT INTO vn.inventoryFailure(dated, itemFk, quantity, value, warehouseFk, throwerFk)
		SELECT 	t.shipped, 
				s.itemFk, 
				s.quantity, 
				b.buyingValue + b.freightValue + b.packageValue + b.comissionValue,
				t.warehouseFk, 
				w.id
			FROM vn.ticket t
				JOIN vn.sale s ON s.ticketFk = t.id
				LEFT JOIN cache.last_buy lb ON lb.warehouse_id = t.warehouseFk AND item_id = s.itemFk
				LEFT JOIN vn.buy b ON b.id = lb.buy_id
				LEFT JOIN vn.worker w ON w.code = LEFT(s.concept, 3)
		WHERE t.id = vTicketFk
			AND s.quantity > 0;

	FETCH rs INTO vTicketFk;
    
END WHILE;


CLOSE rs;




END$$
DELIMITER ;