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