2025-02-12 06:57:31 +00:00
|
|
|
DELIMITER $$
|
2025-02-19 13:13:54 +00:00
|
|
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`buyOut_refreshSale`(
|
2025-02-12 06:57:31 +00:00
|
|
|
`vTable` VARCHAR(255),
|
|
|
|
`vId` INT)
|
|
|
|
BEGIN
|
|
|
|
DECLARE vPreparation INT;
|
|
|
|
|
|
|
|
SELECT id INTO vPreparation
|
|
|
|
FROM vn.alertLevel WHERE code = 'ON_PREPARATION';
|
|
|
|
|
2025-02-14 09:21:02 +00:00
|
|
|
CREATE OR REPLACE TEMPORARY TABLE tOutOld
|
2025-02-12 06:57:31 +00:00
|
|
|
ENGINE = MEMORY
|
2025-02-18 18:34:38 +00:00
|
|
|
SELECT outFk
|
2025-02-12 06:57:31 +00:00
|
|
|
FROM buyOutSale
|
|
|
|
WHERE
|
2025-02-19 16:17:02 +00:00
|
|
|
(vTable = 'sale' AND outFk = vId)
|
|
|
|
OR (vTable = 'ticket' AND ticketFk = vId);
|
2025-02-12 06:57:31 +00:00
|
|
|
|
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
|
|
|
|
t.id ticketFk,
|
2025-02-24 12:24:41 +00:00
|
|
|
s.lotFk outFk,
|
2025-02-12 06:57:31 +00:00
|
|
|
t.warehouseFk,
|
|
|
|
t.shipped dated,
|
|
|
|
s.itemFk,
|
|
|
|
s.quantity,
|
|
|
|
s.created,
|
2025-02-19 16:17:02 +00:00
|
|
|
s.isPicked OR ts.alertLevel > vPreparation isPicked
|
2025-02-12 06:57:31 +00:00
|
|
|
FROM vn.sale s
|
|
|
|
JOIN vn.ticket t ON t.id = s.ticketFk
|
|
|
|
JOIN vn.ticketState ts ON s.ticketFk = t.id
|
|
|
|
WHERE s.quantity >= 0
|
|
|
|
AND (
|
2025-02-24 12:24:41 +00:00
|
|
|
(vTable = 'sale' AND s.lotFk = vId)
|
2025-02-19 16:17:02 +00:00
|
|
|
OR (vTable = 'ticket' AND t.id = vId)
|
2025-02-12 06:57:31 +00:00
|
|
|
);
|
|
|
|
|
2025-02-14 09:21:02 +00:00
|
|
|
CREATE OR REPLACE TEMPORARY TABLE tOutDel
|
|
|
|
ENGINE = MEMORY
|
2025-02-24 12:24:41 +00:00
|
|
|
SELECT o.outFk FROM tOutOld o
|
|
|
|
LEFT JOIN vn.sale s ON s.lotFk = o.outFk
|
|
|
|
WHERE s.lotFk IS NULL;
|
2025-02-14 09:21:02 +00:00
|
|
|
|
2025-02-12 06:57:31 +00:00
|
|
|
START TRANSACTION;
|
|
|
|
|
2025-02-18 18:34:38 +00:00
|
|
|
CALL buyOut_refresh('sale');
|
2025-02-12 06:57:31 +00:00
|
|
|
|
|
|
|
DELETE o FROM buyOutSale o
|
2025-02-18 18:34:38 +00:00
|
|
|
JOIN tOutPrune d USING(outFk);
|
2025-02-12 06:57:31 +00:00
|
|
|
|
2025-02-19 16:17:02 +00:00
|
|
|
INSERT INTO buyOutSale (outFk, ticketFk)
|
|
|
|
SELECT outFk, ticketFk FROM tOutNew
|
2025-02-14 09:21:02 +00:00
|
|
|
ON DUPLICATE KEY UPDATE
|
|
|
|
ticketFk = VALUES(ticketFk);
|
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 ;
|