fix: refs #4409 First sync working version
gitea/salix/pipeline/pr-dev This commit looks good
Details
gitea/salix/pipeline/pr-dev This commit looks good
Details
This commit is contained in:
parent
72a651afa5
commit
6001f416d0
|
@ -6,9 +6,8 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`buyLot_addPick`(
|
|||
)
|
||||
BEGIN
|
||||
INSERT INTO buyPick
|
||||
SET
|
||||
buyFk = vSelf,
|
||||
outFk = outFk,
|
||||
SET buyFk = vSelf,
|
||||
outFk = vOutFk,
|
||||
quantity = vQuantity
|
||||
ON DUPLICATE KEY UPDATE
|
||||
quantity = quantity + vQuantity;
|
||||
|
|
|
@ -3,6 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`buyLot_requestQu
|
|||
vSelf INT,
|
||||
vRequested INT,
|
||||
vDated DATETIME,
|
||||
vOutFk INT,
|
||||
OUT vSupplied INT)
|
||||
BEGIN
|
||||
/**
|
||||
|
@ -11,11 +12,12 @@ BEGIN
|
|||
*
|
||||
* @param vSelf The buyLot reference
|
||||
* @param vRequested The requested quantity
|
||||
* @param vDate The starting date for the associated buyOuts
|
||||
* @param vDate The starting date for the associated outs
|
||||
* @param vOutFk The if of requesting out
|
||||
* @param vSupplied The supplied quantity
|
||||
*/
|
||||
DECLARE vPickFk INT;
|
||||
DECLARE vOutFk INT;
|
||||
DECLARE vPickOutFk INT;
|
||||
DECLARE vPickQuantity INT;
|
||||
DECLARE vPickGranted INT;
|
||||
DECLARE vDone BOOL;
|
||||
|
@ -25,8 +27,8 @@ BEGIN
|
|||
FROM buyPick p
|
||||
JOIN buyOut o USING(outFk)
|
||||
WHERE p.buyFk = vSelf
|
||||
AND o.dated > vDated
|
||||
ORDER BY o.dated DESC, o.created DESC;
|
||||
AND (o.dated, o.outFk) > (vDated, vOutFk)
|
||||
ORDER BY o.dated DESC, o.created DESC, o.outFk DESC;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
|
@ -37,7 +39,7 @@ BEGIN
|
|||
|
||||
myLoop: LOOP
|
||||
SET vDone = FALSE;
|
||||
FETCH vPicks INTO vPickFk, vOutFk, vPickQuantity;
|
||||
FETCH vPicks INTO vPickFk, vPickOutFk, vPickQuantity;
|
||||
|
||||
IF vDone THEN
|
||||
LEAVE myLoop;
|
||||
|
@ -50,7 +52,7 @@ BEGIN
|
|||
UPDATE buyOut
|
||||
SET isSync = FALSE,
|
||||
lack = lack + vPickGranted
|
||||
WHERE outFk = vOutFk;
|
||||
WHERE outFk = vPickOutFk;
|
||||
|
||||
IF vSupplied >= vRequested THEN
|
||||
LEAVE myLoop;
|
||||
|
|
|
@ -26,7 +26,7 @@ BEGIN
|
|||
AND itemFk = vItem
|
||||
AND dated >= vDated
|
||||
AND (vExpired IS NULL OR dated < vExpired)
|
||||
ORDER BY dated, created;
|
||||
ORDER BY dated, created, outFk;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
|
@ -60,7 +60,7 @@ BEGIN
|
|||
END IF;
|
||||
|
||||
IF vHasPicks AND vAvailable > 0 THEN
|
||||
CALL buyOut_requestQuantity(vOutFk, vAvailable, vDated, vSuppliedFromRequest);
|
||||
CALL buyOut_requestQuantity(vOutFk, vAvailable, vDated, vSelf, vSuppliedFromRequest);
|
||||
SET vSupplied = vSupplied + vSuppliedFromRequest;
|
||||
SET vAvailable = vAvailable - vSuppliedFromRequest;
|
||||
END IF;
|
||||
|
|
|
@ -3,6 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`buyOut_requestQu
|
|||
vSelf INT,
|
||||
vRequested INT,
|
||||
vDated DATETIME,
|
||||
vLotFk INT,
|
||||
OUT vSupplied INT)
|
||||
BEGIN
|
||||
/**
|
||||
|
@ -12,10 +13,11 @@ BEGIN
|
|||
* @param vSelf The buyOut reference
|
||||
* @param vRequested The requested quantity
|
||||
* @param vDate The starting date for the associated lots
|
||||
* @param vLotFk The if of requesting lot
|
||||
* @param vSupplied The supplied quantity
|
||||
*/
|
||||
DECLARE vPickFk INT;
|
||||
DECLARE vLotFk INT;
|
||||
DECLARE vPickLotFk INT;
|
||||
DECLARE vPickQuantity INT;
|
||||
DECLARE vPickGranted INT;
|
||||
DECLARE vDone BOOL;
|
||||
|
@ -23,10 +25,10 @@ BEGIN
|
|||
DECLARE vPicks CURSOR FOR
|
||||
SELECT p.id, p.buyFk, p.quantity
|
||||
FROM buyPick p
|
||||
JOIN buyOut o USING(outFk)
|
||||
WHERE o.outFk = vSelf
|
||||
AND o.dated > vDated
|
||||
ORDER BY o.dated DESC;
|
||||
JOIN buyLot l USING(buyFk)
|
||||
WHERE p.outFk = vSelf
|
||||
AND (l.dated, p.buyFk) > (vDated, vLotFk)
|
||||
ORDER BY l.dated, p.buyFk;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
|
@ -37,7 +39,7 @@ BEGIN
|
|||
|
||||
myLoop: LOOP
|
||||
SET vDone = FALSE;
|
||||
FETCH vPicks INTO vPickFk, vLotFk, vPickQuantity;
|
||||
FETCH vPicks INTO vPickFk, vPickLotFk, vPickQuantity;
|
||||
|
||||
IF vDone THEN
|
||||
LEAVE myLoop;
|
||||
|
@ -50,7 +52,7 @@ BEGIN
|
|||
UPDATE buyLot
|
||||
SET isSync = FALSE,
|
||||
available = available + vPickGranted
|
||||
WHERE buyFk = vLotFk;
|
||||
WHERE buyFk = vPickLotFk;
|
||||
|
||||
IF vSupplied >= vRequested THEN
|
||||
LEAVE myLoop;
|
||||
|
|
|
@ -24,7 +24,7 @@ BEGIN
|
|||
AND itemFk = vItem
|
||||
AND dated <= vDated
|
||||
AND (expired IS NULL OR expired > vDated)
|
||||
ORDER BY dated;
|
||||
ORDER BY dated, buyFk;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
|
@ -54,7 +54,7 @@ BEGIN
|
|||
END IF;
|
||||
|
||||
IF vHasPicks AND vLack > 0 THEN
|
||||
CALL buyLot_requestQuantity(vLotFk, vLack, vDated, vSuppliedFromRequest);
|
||||
CALL buyLot_requestQuantity(vLotFk, vLack, vDated, vSelf, vSuppliedFromRequest);
|
||||
SET vSupplied = vSupplied + vSuppliedFromRequest;
|
||||
SET vLack = vLack - vSuppliedFromRequest;
|
||||
END IF;
|
||||
|
|
|
@ -9,12 +9,12 @@ proc: BEGIN
|
|||
DECLARE vLots CURSOR FOR
|
||||
SELECT buyFk FROM buyLot
|
||||
WHERE !isSync
|
||||
ORDER BY dated;
|
||||
ORDER BY warehouseFk, itemFk, dated, buyFk;
|
||||
|
||||
DECLARE vOuts CURSOR FOR
|
||||
SELECT outFk FROM buyOut
|
||||
WHERE !isSync
|
||||
ORDER BY dated;
|
||||
ORDER BY warehouseFk, itemFk, dated, created, outFk;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
|
|
Loading…
Reference in New Issue