salix/db/routines/hedera/procedures/orderRow_updateOverstocking...

26 lines
733 B
SQL

DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`orderRow_updateOverstocking`(
vWarehouseFk INT
)
BEGIN
/**
* Set amount = 0 to avoid overbooking sales
*
* @param vWarehouseFk vn.warehouse.id
*/
DECLARE vCalcFk INT;
CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, CURDATE());
UPDATE orderRow r
JOIN `order` o ON o.id = r.orderFk
JOIN orderConfig oc
JOIN cache.available a ON a.calc_id = vCalcFk AND a.item_id = r.itemFk
SET r.amount = 0
WHERE ADDTIME(o.rowUpdated, oc.reserveTime) < NOW()
AND a.available <= 0
AND r.shipment BETWEEN CURDATE() AND util.dayEnd(CURDATE())
AND NOT o.confirmed
AND r.warehouseFk = vWarehouseFk;
END$$
DELIMITER ;