salix/db/routines/stock/procedures/buyOut_refreshOrder.sql

38 lines
946 B
SQL

DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`buyOut_refreshOrder`(
`vTable` VARCHAR(255),
`vId` INT)
BEGIN
CREATE OR REPLACE TEMPORARY TABLE tLotStatus
ENGINE = MEMORY
SELECT lotFk,
@isExcluded := o.confirmed OR NOT isReserved OR r.amount <= 0 isExcluded,
NOT @isExcluded isIncluded
FROM hedera.orderRow r
JOIN hedera.`order` o ON o.id = r.orderFk
WHERE
(vTable = 'lot' AND r.lotFk = vId)
OR (vTable = 'order' AND o.id = vId);
CREATE OR REPLACE TEMPORARY TABLE tLotAlive
ENGINE = MEMORY
SELECT
oo.lotFk,
r.warehouseFk,
r.shipment dated,
r.itemFk,
r.amount quantity,
r.created,
FALSE isPicked
FROM tLotStatus oo
JOIN hedera.orderRow r ON r.lotFk = oo.lotFk
JOIN hedera.`order` o ON o.id = r.orderFk
WHERE oo.isIncluded;
CALL buyOut_refresh(vTable, vId, 'orderRow');
DROP TEMPORARY TABLE tLotStatus, tLotAlive;
END$$
DELIMITER ;