fix: refs #4409 SQL convenion fixes
gitea/salix/pipeline/pr-dev There was a failure building this commit Details

This commit is contained in:
Juan Ferrer 2025-02-25 10:49:58 +01:00
parent 7049933c6e
commit 38b1e9e493
5 changed files with 21 additions and 10 deletions

View File

@ -3,6 +3,12 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`buyLot_refresh`(
`vTable` ENUM('lot', 'entry', 'travel'), `vTable` ENUM('lot', 'entry', 'travel'),
`vId` INT) `vId` INT)
BEGIN BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
RESIGNAL;
END;
CREATE OR REPLACE TEMPORARY TABLE tBuyAlive CREATE OR REPLACE TEMPORARY TABLE tBuyAlive
ENGINE = MEMORY ENGINE = MEMORY
SELECT SELECT

View File

@ -6,6 +6,12 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`buyOut_refresh`(
BEGIN BEGIN
DECLARE vLotExists INT; DECLARE vLotExists INT;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
RESIGNAL;
END;
IF vTable = 'lot' THEN IF vTable = 'lot' THEN
SET vLotExists = (SELECT COUNT(*) > 0 FROM tLotStatus); SET vLotExists = (SELECT COUNT(*) > 0 FROM tLotStatus);

View File

@ -11,17 +11,16 @@ BEGIN
RESIGNAL; RESIGNAL;
END; END;
IF !GET_LOCK('stock.stock_sync', 30) THEN IF NOT GET_LOCK('stock.stock_sync', 30) THEN
CALL util.throw('Lock timeout exceeded'); CALL util.throw('Lock timeout exceeded');
END IF; END IF;
DELETE p FROM buyPick p JOIN buy b USING(lotFk); DELETE p FROM buyPick p JOIN buyLot l USING(lotFk);
TRUNCATE TABLE buyLot; TRUNCATE TABLE buyLot;
TRUNCATE TABLE buyOut; TRUNCATE TABLE buyOut;
CALL buyLot_refresh(NULL, NULL);
CALL buyOut_refreshSale(NULL, NULL);
CALL buyOut_refreshBuy(NULL, NULL); CALL buyOut_refreshBuy(NULL, NULL);
CALL buyOut_refreshSale(NULL, NULL);
CALL buyOut_refreshOrder(NULL, NULL); CALL buyOut_refreshOrder(NULL, NULL);
UPDATE buyOut SET isSync = TRUE; UPDATE buyOut SET isSync = TRUE;

View File

@ -11,9 +11,9 @@ BEGIN
DECLARE vItemFk INT; DECLARE vItemFk INT;
DECLARE vItems CURSOR FOR DECLARE vItems CURSOR FOR
SELECT itemFk, warehouseFk FROM buyLot WHERE !isSync SELECT itemFk, warehouseFk FROM buyLot WHERE NOT isSync
UNION UNION
SELECT itemFk, warehouseFk FROM buyOut WHERE !isSync; SELECT itemFk, warehouseFk FROM buyOut WHERE NOT isSync;
DECLARE CONTINUE HANDLER FOR NOT FOUND DECLARE CONTINUE HANDLER FOR NOT FOUND
SET vDone = TRUE; SET vDone = TRUE;

View File

@ -20,13 +20,13 @@ myProc: BEGIN
DECLARE vLots CURSOR FOR DECLARE vLots CURSOR FOR
SELECT lotFk FROM buyLot SELECT lotFk FROM buyLot
WHERE !isSync WHERE NOT isSync
AND (itemFk, warehouseFk) = (vItemFk, vWarehouseFk) AND (itemFk, warehouseFk) = (vItemFk, vWarehouseFk)
ORDER BY dated, lotFk; ORDER BY dated, lotFk;
DECLARE vOuts CURSOR FOR DECLARE vOuts CURSOR FOR
SELECT outFk FROM buyOut SELECT outFk FROM buyOut
WHERE !isSync WHERE NOT isSync
AND (itemFk, warehouseFk) = (vItemFk, vWarehouseFk) AND (itemFk, warehouseFk) = (vItemFk, vWarehouseFk)
ORDER BY dated, created, outFk; ORDER BY dated, created, outFk;
@ -42,7 +42,7 @@ myProc: BEGIN
SET vLock = CONCAT_WS('/', 'stock.stock_syncItem', vWarehouseFk, vItemFk); SET vLock = CONCAT_WS('/', 'stock.stock_syncItem', vWarehouseFk, vItemFk);
IF !GET_LOCK(vLock, 0) THEN IF NOT GET_LOCK(vLock, 0) THEN
LEAVE myProc; LEAVE myProc;
END IF; END IF;
@ -83,6 +83,6 @@ myProc: BEGIN
END LOOP; END LOOP;
CLOSE vOuts; CLOSE vOuts;
UNTIL !vHasPendingSync END REPEAT; UNTIL NOT vHasPendingSync END REPEAT;
END$$ END$$
DELIMITER ; DELIMITER ;