2025-02-12 06:57:31 +00:00
|
|
|
DELIMITER $$
|
|
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`buyOut_refreshOrder`(
|
|
|
|
`vTable` VARCHAR(255),
|
|
|
|
`vId` INT)
|
|
|
|
BEGIN
|
|
|
|
DECLARE vExpired DATETIME;
|
|
|
|
|
|
|
|
SELECT SUBTIME(util.VN_NOW(), reserveTime)
|
|
|
|
INTO vExpired
|
|
|
|
FROM hedera.orderConfig LIMIT 1;
|
|
|
|
|
2025-02-14 09:21:02 +00:00
|
|
|
CREATE OR REPLACE TEMPORARY TABLE tOutOld
|
2025-02-12 06:57:31 +00:00
|
|
|
ENGINE = MEMORY
|
|
|
|
SELECT rowFk tableId
|
|
|
|
FROM buyOutOrder
|
|
|
|
WHERE
|
|
|
|
(vTable = 'order' AND orderFk = vId)
|
|
|
|
OR (vTable = 'orderRow' AND rowFk = vId);
|
|
|
|
|
2025-02-14 09:21:02 +00:00
|
|
|
CREATE OR REPLACE TEMPORARY TABLE tOutNew
|
2025-02-12 06:57:31 +00:00
|
|
|
ENGINE = MEMORY
|
|
|
|
SELECT
|
|
|
|
o.id orderFk,
|
|
|
|
r.id tableId,
|
|
|
|
r.warehouseFk,
|
|
|
|
r.shipment dated,
|
|
|
|
r.itemFk,
|
|
|
|
r.amount quantity,
|
|
|
|
r.created,
|
|
|
|
FALSE isPicked
|
|
|
|
FROM hedera.orderRow r
|
|
|
|
JOIN hedera.`order` o ON o.id = r.orderFk
|
|
|
|
WHERE !o.confirmed
|
|
|
|
AND r.created >= vExpired
|
|
|
|
AND r.amount > 0
|
|
|
|
AND (
|
|
|
|
(vTable = 'order' AND o.id = vId)
|
|
|
|
OR (vTable = 'orderRow' AND r.id = vId)
|
|
|
|
);
|
|
|
|
|
2025-02-14 09:21:02 +00:00
|
|
|
CREATE OR REPLACE TEMPORARY TABLE tOutDel
|
|
|
|
ENGINE = MEMORY
|
|
|
|
SELECT tableId FROM tOutOld o
|
2025-02-14 10:34:35 +00:00
|
|
|
LEFT JOIN hedera.orderRow r ON r.id = o.tableId
|
2025-02-14 09:21:02 +00:00
|
|
|
WHERE r.id IS NULL;
|
|
|
|
|
2025-02-12 06:57:31 +00:00
|
|
|
START TRANSACTION;
|
|
|
|
|
|
|
|
CALL buyOut_refresh('orderRow', vId);
|
|
|
|
|
|
|
|
DELETE o FROM buyOutOrder o
|
2025-02-14 09:21:02 +00:00
|
|
|
JOIN tOutPrune d ON d.tableId = o.rowFk;
|
2025-02-12 06:57:31 +00:00
|
|
|
|
2025-02-14 09:46:29 +00:00
|
|
|
INSERT INTO buyOutOrder (orderFk, rowFk)
|
2025-02-14 09:21:02 +00:00
|
|
|
SELECT orderFk, tableId FROM tOutNew
|
|
|
|
ON DUPLICATE KEY UPDATE
|
|
|
|
orderFk = VALUES(orderFk);
|
2025-02-12 06:57:31 +00:00
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
|
2025-02-14 09:21:02 +00:00
|
|
|
DROP TEMPORARY TABLE tOutNew, tOutOld, tOutPrune, tOutDel;
|
2025-02-12 06:57:31 +00:00
|
|
|
END$$
|
|
|
|
DELIMITER ;
|