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

43 lines
1008 B
MySQL
Raw Normal View History

DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`buyOut_refreshSale`(
`vTable` VARCHAR(255),
`vId` INT)
BEGIN
2025-02-24 17:05:21 +00:00
DECLARE vAliveDate DATE;
SELECT util.VN_CURDATE() - INTERVAL saleLife MONTH
INTO vAliveDate
FROM config LIMIT 1;
2025-02-24 17:05:21 +00:00
CREATE OR REPLACE TEMPORARY TABLE tLotStatus
ENGINE = MEMORY
2025-02-24 17:05:21 +00:00
SELECT lotFk,
@isExcluded := s.quantity < 0 isExcluded,
NOT @isExcluded AND t.isAlive isIncluded
2025-02-24 17:05:21 +00:00
FROM vn.sale s
JOIN vn.ticket t ON t.id = s.ticketFk
WHERE
2025-02-24 17:05:21 +00:00
(vTable = 'lot' AND s.lotFk = vId)
OR (vTable = 'ticket' AND t.id = vId);
2025-02-24 17:05:21 +00:00
CREATE OR REPLACE TEMPORARY TABLE tLotAlive
ENGINE = MEMORY
SELECT
2025-02-24 17:05:21 +00:00
oo.lotFk,
t.warehouseFk,
t.shipped dated,
s.itemFk,
s.quantity,
s.created,
2025-02-24 17:05:21 +00:00
s.isPicked
FROM tLotStatus ls
JOIN vn.sale s ON s.lotFk = ls.lotFk
JOIN vn.ticket t ON t.id = s.ticketFk
WHERE ls.isIncluded;
2025-02-24 17:05:21 +00:00
CALL buyOut_refresh(vTable, vId, 'sale');
2025-02-24 17:05:21 +00:00
DROP TEMPORARY TABLE tLotStatus, tLotAlive;
END$$
DELIMITER ;