DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`item_setVisibleDiscard`( vItemFk INT, vWarehouseFk INT, vQuantity INT, vAddressFk INT) BEGIN DECLARE vTicketFk INT; DECLARE vClientFk INT; DECLARE vCompanyVnlFk INT; DECLARE vCalc INT; SELECT barcodeToItem(vItemFk) INTO vItemFk; SELECT DEFAULT(companyFk) INTO vCompanyVnlFk FROM vn.ticket LIMIT 1; SELECT a.clientFk INTO vClientFk FROM address a WHERE a.id = vAddressFk; SELECT t.id INTO vTicketFk FROM ticket t JOIN address a ON a.id = t.addressFk WHERE t.warehouseFk = vWarehouseFk AND a.id = vAddressFk AND DATE(t.shipped) = util.VN_CURDATE(); CALL cache.visible_refresh(vCalc, TRUE, vWarehouseFk); IF vTicketFk IS NULL THEN CALL ticket_add( vClientFk, util.VN_CURDATE(), vWarehouseFk, vCompanyVnlFk, vAddressFk, NULL, NULL, util.VN_CURDATE(), account.myUser_getId(), FALSE, vTicketFk); END IF; INSERT INTO sale(ticketFk, itemFk, concept, quantity) SELECT vTicketFk, vItemFk, CONCAT(longName,' ', getWorkerCode(), ' ', LEFT(CAST(util.VN_NOW() AS TIME),5)), vQuantity FROM item WHERE id = vItemFk; UPDATE cache.visible SET visible = visible - vQuantity WHERE calc_id = vCalc AND item_id = vItemFk; END$$ DELIMITER ;