fix: refs #4409 clean frozen sales and lost reserves
gitea/salix/pipeline/pr-dev There was a failure building this commit
Details
gitea/salix/pipeline/pr-dev There was a failure building this commit
Details
This commit is contained in:
parent
5e630562ce
commit
7049933c6e
|
@ -0,0 +1,8 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `stock`.`stock_clean`
|
||||||
|
ON SCHEDULE EVERY 60 SECOND
|
||||||
|
STARTS '2025-01-01 00:00:00.000'
|
||||||
|
ON COMPLETION PRESERVE
|
||||||
|
ENABLE
|
||||||
|
DO CALL stock_clean$$
|
||||||
|
DELIMITER ;
|
|
@ -1,8 +1,8 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `stock`.`stock_sync`
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `stock`.`stock_sync`
|
||||||
ON SCHEDULE EVERY 5 SECOND
|
ON SCHEDULE EVERY 5 SECOND
|
||||||
STARTS '2017-06-27 17:15:02.000'
|
STARTS '2025-01-01 00:00:00.000'
|
||||||
ON COMPLETION NOT PRESERVE
|
ON COMPLETION PRESERVE
|
||||||
DISABLE
|
DISABLE
|
||||||
DO CALL stock_sync$$
|
DO CALL stock_sync$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -5,13 +5,15 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`buyOut_refreshSale
|
||||||
BEGIN
|
BEGIN
|
||||||
DECLARE vAliveDate DATE;
|
DECLARE vAliveDate DATE;
|
||||||
|
|
||||||
SET vAliveDate = CURDATE() - INTERVAL 1 MONTH;
|
SELECT util.VN_CURDATE() - INTERVAL saleLife MONTH
|
||||||
|
INTO vAliveDate
|
||||||
|
FROM config LIMIT 1;
|
||||||
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tLotStatus
|
CREATE OR REPLACE TEMPORARY TABLE tLotStatus
|
||||||
ENGINE = MEMORY
|
ENGINE = MEMORY
|
||||||
SELECT lotFk,
|
SELECT lotFk,
|
||||||
s.quantity < 0 isExcluded,
|
s.quantity < 0 isExcluded,
|
||||||
t.landed >= vAliveDate isAlive
|
t.shipped >= vAliveDate isAlive
|
||||||
FROM vn.sale s
|
FROM vn.sale s
|
||||||
JOIN vn.ticket t ON t.id = s.ticketFk
|
JOIN vn.ticket t ON t.id = s.ticketFk
|
||||||
WHERE
|
WHERE
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`stock_clean`()
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Cleans current time dependent cache records.
|
||||||
|
*/
|
||||||
|
DECLARE vExpired DATETIME;
|
||||||
|
DECLARE vAliveDate DATE;
|
||||||
|
|
||||||
|
-- Expired order reserves
|
||||||
|
|
||||||
|
SELECT SUBTIME(util.VN_NOW(), reserveTime)
|
||||||
|
INTO vExpired
|
||||||
|
FROM hedera.orderConfig LIMIT 1;
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tOutDelete
|
||||||
|
SELECT outFk FROM buyOut
|
||||||
|
WHERE source = 'orderRow'
|
||||||
|
AND created < vExpired;
|
||||||
|
|
||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
UPDATE buyLot l
|
||||||
|
JOIN buyPick p ON p.lotFk = l.lotFk
|
||||||
|
JOIN tOutDelete od ON od.outFk = p.outFk
|
||||||
|
SET l.isSync = FALSE,
|
||||||
|
l.available = l.available + p.quantity;
|
||||||
|
|
||||||
|
DELETE p FROM buyPick p
|
||||||
|
JOIN tOutDelete od USING(outFk);
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
-- Frozen old sales
|
||||||
|
|
||||||
|
SELECT util.VN_CURDATE() - INTERVAL saleLife MONTH
|
||||||
|
INTO vAliveDate
|
||||||
|
FROM config LIMIT 1;
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tOutDelete
|
||||||
|
SELECT outFk FROM buyOut
|
||||||
|
WHERE source = 'sale'
|
||||||
|
AND dated < vAliveDate;
|
||||||
|
|
||||||
|
DELETE p FROM buyPick p
|
||||||
|
JOIN tOutDelete od USING(outFk);
|
||||||
|
|
||||||
|
-- Clean
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tOutDelete;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -3,7 +3,6 @@ RENAME TABLE IF EXISTS stock.outbound TO stock.buyOut;
|
||||||
ALTER TABLE stock.buyOut
|
ALTER TABLE stock.buyOut
|
||||||
CHANGE tableName source enum('buy','sale','orderRow') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
|
CHANGE tableName source enum('buy','sale','orderRow') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
|
||||||
CHANGE id outFk int(10) UNSIGNED NOT NULL,
|
CHANGE id outFk int(10) UNSIGNED NOT NULL,
|
||||||
DROP INDEX source,
|
|
||||||
DROP COLUMN tableId,
|
DROP COLUMN tableId,
|
||||||
DROP INDEX expired,
|
DROP INDEX expired,
|
||||||
DROP COLUMN expired;
|
DROP COLUMN expired;
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
CREATE TABLE stock.config (
|
||||||
|
id INT UNSIGNED auto_increment NOT NULL,
|
||||||
|
saleLife INT UNSIGNED NOT NULL COMMENT 'Maximum sales cache lifetime in days',
|
||||||
|
CONSTRAINT config_pk PRIMARY KEY (id)
|
||||||
|
)
|
||||||
|
ENGINE=InnoDB
|
||||||
|
DEFAULT CHARSET=utf8mb3
|
||||||
|
COLLATE=utf8mb3_general_ci;
|
||||||
|
|
||||||
|
INSERT INTO stock.config (id, saleLife)
|
||||||
|
VALUES (1, 90);
|
Loading…
Reference in New Issue