7773-testToMaster_2430 #2774

Merged
alexm merged 368 commits from 7773-testToMaster_2430 into master 2024-07-23 06:21:03 +00:00
2 changed files with 21 additions and 32 deletions
Showing only changes of commit 87e4a78092 - Show all commits

View File

@ -13,60 +13,45 @@ BEGIN
DECLARE vBuyStickers INT; DECLARE vBuyStickers INT;
DECLARE vDone BOOLEAN DEFAULT FALSE; DECLARE vDone BOOLEAN DEFAULT FALSE;
DECLARE cur CURSOR FOR DECLARE cur CURSOR FOR
SELECT bb.id buyFk, SELECT bb.id buyFk,
FLOOR(ish.visible / ish.packing) ishStickers, FLOOR(ish.visible / ish.packing) ishStickers,
bb.stickers buyStickers bb.stickers buyStickers
FROM vn.itemShelving ish FROM itemShelving ish
JOIN (SELECT b.id, b.itemFk, b.stickers JOIN (SELECT b.id, b.itemFk, b.stickers
FROM vn.buy b FROM buy b
WHERE b.entryFk = vFromEntryFk
ORDER BY b.stickers DESC
LIMIT 10000000000000000000) bb ON bb.itemFk = ish.itemFk
AND bb.stickers >= FLOOR(ish.visible / ish.packing)
WHERE shelvingFk = vShelvingFk COLLATE utf8_general_ci
GROUP BY ish.id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
-- Cantidades de la matrícula que exceden la de las entradas
SELECT ish.itemFk,
i.longName,
FLOOR(ish.visible / ish.packing) AS etiEnMatricula,
bb.stickers etiEnEntrada
FROM vn.itemShelving ish
JOIN vn.item i ON i.id = ish.itemFk
LEFT JOIN (SELECT b.id, b.itemFk, b.stickers
FROM vn.buy b
WHERE b.entryFk = vFromEntryFk WHERE b.entryFk = vFromEntryFk
ORDER BY b.stickers DESC ORDER BY b.stickers DESC
LIMIT 10000000000000000000) bb ON bb.itemFk = ish.itemFk LIMIT 10000000000000000000) bb ON bb.itemFk = ish.itemFk
WHERE shelvingFk = vShelvingFk COLLATE utf8_general_ci AND bb.stickers >= FLOOR(ish.visible / ish.packing)
AND IFNULL(bb.stickers,0) < FLOOR(ish.visible / ish.packing) WHERE ish.shelvingFk = vShelvingFk COLLATE utf8_general_ci
AND NOT ish.isSplit
GROUP BY ish.id; GROUP BY ish.id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
OPEN cur; OPEN cur;
read_loop: LOOP read_loop: LOOP
SET vDone = FALSE; SET vDone = FALSE;
FETCH cur INTO vBuyFk, vIshStickers, vBuyStickers; FETCH cur INTO vBuyFk, vIshStickers, vBuyStickers;
IF vDone THEN IF vDone THEN
LEAVE read_loop; LEAVE read_loop;
END IF; END IF;
IF vIshStickers = vBuyStickers THEN IF vIshStickers = vBuyStickers THEN
UPDATE vn.buy UPDATE buy
SET entryFk = vToEntryFk SET entryFk = vToEntryFk
WHERE id = vBuyFk; WHERE id = vBuyFk;
ELSE ELSE
UPDATE vn.buy UPDATE buy
SET stickers = stickers - vIshStickers, SET stickers = stickers - vIshStickers,
quantity = stickers * packing quantity = stickers * packing
WHERE id = vBuyFk; WHERE id = vBuyFk;
INSERT INTO vn.buy(entryFk, INSERT INTO buy(entryFk,
itemFk, itemFk,
quantity, quantity,
buyingValue, buyingValue,
@ -117,13 +102,16 @@ BEGIN
weight, weight,
deliveryFk, deliveryFk,
itemOriginalFk itemOriginalFk
FROM vn.buy FROM buy
WHERE id = vBuyFk; WHERE id = vBuyFk;
UPDATE buy SET printedStickers = vIshStickers WHERE id = LAST_INSERT_ID(); UPDATE buy SET printedStickers = vIshStickers WHERE id = LAST_INSERT_ID();
END IF; END IF;
END LOOP;
UPDATE itemShelving
SET isSplit = TRUE
WHERE shelvingFk = vShelvingFk;
END LOOP;
CLOSE cur; CLOSE cur;
END$$ END$$
DELIMITER ; DELIMITER ;

View File

@ -0,0 +1 @@
ALTER TABLE vn.itemShelving ADD isSplit tinyint(1) NULL COMMENT 'Este valor cambia al splitar un carro que se ha quedado en holanda';