This commit is contained in:
parent
d6451a94e3
commit
cc941de606
|
@ -1,7 +1,7 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`item_devalueA2`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`item_devalueA2`(
|
||||||
|
vSelf INT,
|
||||||
vShelvingFK VARCHAR(10),
|
vShelvingFK VARCHAR(10),
|
||||||
vItemFk INT,
|
|
||||||
vBuyingValue DECIMAL(10,4),
|
vBuyingValue DECIMAL(10,4),
|
||||||
vQuantity INT
|
vQuantity INT
|
||||||
)
|
)
|
||||||
|
@ -11,8 +11,8 @@ BEGIN
|
||||||
* Si no existe el item A2 lo crea y genera los movimientos de las entradas
|
* Si no existe el item A2 lo crea y genera los movimientos de las entradas
|
||||||
* de almacén y shelvings correspondientes
|
* de almacén y shelvings correspondientes
|
||||||
*
|
*
|
||||||
|
* @param vSelf Id de artículo a devaluar
|
||||||
* @param vShelvingFK Ubicación actual del artículo
|
* @param vShelvingFK Ubicación actual del artículo
|
||||||
* @param vItemFk Id de artículo a devaluar
|
|
||||||
* @param vBuyingValue Nuevo precio de coste
|
* @param vBuyingValue Nuevo precio de coste
|
||||||
*/
|
*/
|
||||||
DECLARE vItemA2Fk INT;
|
DECLARE vItemA2Fk INT;
|
||||||
|
@ -26,7 +26,7 @@ BEGIN
|
||||||
DECLARE vCacheFk INT;
|
DECLARE vCacheFk INT;
|
||||||
DECLARE vLastEntryFk INT;
|
DECLARE vLastEntryFk INT;
|
||||||
DECLARE vCurrentVisible INT;
|
DECLARE vCurrentVisible INT;
|
||||||
DECLARE vInventoryTravelFk INT;
|
DECLARE vDevalueTravelFk INT;
|
||||||
DECLARE vCurdate DATE;
|
DECLARE vCurdate DATE;
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
|
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
|
||||||
|
@ -35,7 +35,7 @@ BEGIN
|
||||||
RESIGNAL;
|
RESIGNAL;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
IF (SELECT TRUE FROM item WHERE id = vItemFk AND (category <> 'A1' OR category IS NULL)) THEN
|
IF (SELECT TRUE FROM item WHERE id = vSelf AND (category <> 'A1' OR category IS NULL)) THEN
|
||||||
CALL util.throw('Item has not category A1');
|
CALL util.throw('Item has not category A1');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
@ -47,9 +47,13 @@ BEGIN
|
||||||
CALL util.throw ('Operator has not a valid warehouse');
|
CALL util.throw ('Operator has not a valid warehouse');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
IF vQuantity <= 0 OR vQuantity IS NULL THEN
|
||||||
|
CALL util.throw ('The quantity is incorrect');
|
||||||
|
END IF;
|
||||||
|
|
||||||
SELECT util.VN_CURDATE() INTO vCurdate;
|
SELECT util.VN_CURDATE() INTO vCurdate;
|
||||||
|
|
||||||
SELECT t.id INTO vInventoryTravelFk
|
SELECT t.id INTO vDevalueTravelFk
|
||||||
FROM travel t
|
FROM travel t
|
||||||
JOIN travelConfig tc
|
JOIN travelConfig tc
|
||||||
WHERE t.shipped = vCurdate
|
WHERE t.shipped = vCurdate
|
||||||
|
@ -59,7 +63,7 @@ BEGIN
|
||||||
AND t.agencyModeFk = tc.devalueAgencyModeFk
|
AND t.agencyModeFk = tc.devalueAgencyModeFk
|
||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
|
|
||||||
IF NOT vInventoryTravelFk OR vInventoryTravelFk IS NULL THEN
|
IF NOT vDevalueTravelFk OR vDevalueTravelFk IS NULL THEN
|
||||||
INSERT INTO travel (
|
INSERT INTO travel (
|
||||||
shipped,
|
shipped,
|
||||||
landed,
|
landed,
|
||||||
|
@ -76,14 +80,14 @@ BEGIN
|
||||||
TRUE,
|
TRUE,
|
||||||
tc.devalueAgencyModeFk
|
tc.devalueAgencyModeFk
|
||||||
FROM travelConfig tc;
|
FROM travelConfig tc;
|
||||||
SET vInventoryTravelFk = LAST_INSERT_ID();
|
SET vDevalueTravelFk = LAST_INSERT_ID();
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
SELECT id, dated INTO vTargetEntryFk, vTargetEntryDate
|
SELECT id, DATE(dated) INTO vTargetEntryFk, vTargetEntryDate
|
||||||
FROM `entry` e
|
FROM `entry` e
|
||||||
WHERE created = vCurdate
|
WHERE DATE(dated) = vCurdate
|
||||||
AND typeFk ='devaluation'
|
AND typeFk ='devaluation'
|
||||||
AND travelFk = vInventoryTravelFk
|
AND travelFk = vDevalueTravelFk
|
||||||
ORDER BY created DESC
|
ORDER BY created DESC
|
||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
|
|
||||||
|
@ -92,16 +96,24 @@ BEGIN
|
||||||
SELECT b.entryFk, bu.buyFk INTO vLastEntryFk,vLastBuyFk
|
SELECT b.entryFk, bu.buyFk INTO vLastEntryFk,vLastBuyFk
|
||||||
FROM tmp.buyUltimate bu
|
FROM tmp.buyUltimate bu
|
||||||
JOIN vn.buy b ON b.id =bu.buyFk
|
JOIN vn.buy b ON b.id =bu.buyFk
|
||||||
WHERE bu.itemFk = vItemFk
|
WHERE bu.itemFk = vSelf
|
||||||
AND bu.warehouseFk = vWarehouseFk;
|
AND bu.warehouseFk = vWarehouseFk;
|
||||||
|
|
||||||
SELECT id,visible INTO vTargetItemShelvingFk,vCurrentVisible
|
IF vLastEntryFk IS NULL OR vLastBuyFk IS NULL THEN
|
||||||
|
CALL util.throw ('The item has not a buy');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SELECT id,visible INTO vTargetItemShelvingFk, vCurrentVisible
|
||||||
FROM itemShelving
|
FROM itemShelving
|
||||||
WHERE shelvingFk = vShelvingFK COLLATE utf8mb3_general_ci
|
WHERE shelvingFk = vShelvingFK COLLATE utf8mb3_general_ci
|
||||||
AND itemFk = vItemFk
|
AND itemFk = vSelf
|
||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
|
|
||||||
IF vQuantity >= vCurrentVisible THEN
|
IF vCurrentVisible IS NULL THEN
|
||||||
|
CALL util.throw ('The shelving has not a visible for this item');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF vQuantity > vCurrentVisible THEN
|
||||||
CALL util.throw('Quantity is greater than visible');
|
CALL util.throw('Quantity is greater than visible');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
@ -119,7 +131,7 @@ BEGIN
|
||||||
clonedFrom,
|
clonedFrom,
|
||||||
typeFk
|
typeFk
|
||||||
)
|
)
|
||||||
SELECT vInventoryTravelFk,
|
SELECT vDevalueTravelFk,
|
||||||
supplierFk,
|
supplierFk,
|
||||||
vCurdate,
|
vCurdate,
|
||||||
commission,
|
commission,
|
||||||
|
@ -149,7 +161,7 @@ BEGIN
|
||||||
i.EmbalageCode,
|
i.EmbalageCode,
|
||||||
i.quality
|
i.quality
|
||||||
FROM item i
|
FROM item i
|
||||||
WHERE i.id = vItemFk
|
WHERE i.id = vSelf
|
||||||
)i2 ON i2.name <=> i.name
|
)i2 ON i2.name <=> i.name
|
||||||
AND i2.subname <=> i.subname
|
AND i2.subname <=> i.subname
|
||||||
AND i2.value5 <=> i.value5
|
AND i2.value5 <=> i.value5
|
||||||
|
@ -193,18 +205,6 @@ BEGIN
|
||||||
isActive,
|
isActive,
|
||||||
longName,
|
longName,
|
||||||
subName,
|
subName,
|
||||||
tag5,
|
|
||||||
value5,
|
|
||||||
tag6,
|
|
||||||
value6,
|
|
||||||
tag7,
|
|
||||||
value7,
|
|
||||||
tag8,
|
|
||||||
value8,
|
|
||||||
tag9,
|
|
||||||
value9,
|
|
||||||
tag10,
|
|
||||||
value10,
|
|
||||||
minimum,
|
minimum,
|
||||||
upToDown,
|
upToDown,
|
||||||
supplyResponseFk,
|
supplyResponseFk,
|
||||||
|
@ -251,18 +251,6 @@ BEGIN
|
||||||
isActive,
|
isActive,
|
||||||
longName,
|
longName,
|
||||||
subName,
|
subName,
|
||||||
tag5,
|
|
||||||
value5,
|
|
||||||
tag6,
|
|
||||||
value6,
|
|
||||||
tag7,
|
|
||||||
value7,
|
|
||||||
tag8,
|
|
||||||
value8,
|
|
||||||
tag9,
|
|
||||||
value9,
|
|
||||||
tag10,
|
|
||||||
value10,
|
|
||||||
minimum,
|
minimum,
|
||||||
upToDown,
|
upToDown,
|
||||||
supplyResponseFk,
|
supplyResponseFk,
|
||||||
|
@ -283,12 +271,17 @@ BEGIN
|
||||||
recycledPlastic,
|
recycledPlastic,
|
||||||
nonRecycledPlastic
|
nonRecycledPlastic
|
||||||
FROM item
|
FROM item
|
||||||
WHERE id = vItemFk;
|
WHERE id = vSelf;
|
||||||
|
|
||||||
SET vItemA2Fk = LAST_INSERT_ID();
|
SET vItemA2Fk = LAST_INSERT_ID();
|
||||||
|
|
||||||
|
INSERT INTO itemTag (itemFk, tagFk, `value`, intValue, priority, editorFk)
|
||||||
|
SELECT vItemA2Fk, tagFk, `value`, intValue, priority, editorFk
|
||||||
|
FROM itemTag
|
||||||
|
WHERE id = vSelf;
|
||||||
|
|
||||||
UPDATE itemTaxCountry itc
|
UPDATE itemTaxCountry itc
|
||||||
JOIN itemTaxCountry itc2 ON itc2.itemFk = vItemFk
|
JOIN itemTaxCountry itc2 ON itc2.itemFk = vSelf
|
||||||
AND itc2.countryFk = itc.countryFk
|
AND itc2.countryFk = itc.countryFk
|
||||||
SET itc2.taxClassFk = itc.taxClassFk
|
SET itc2.taxClassFk = itc.taxClassFk
|
||||||
WHERE itc.id = vItemA2Fk;
|
WHERE itc.id = vItemA2Fk;
|
||||||
|
@ -296,7 +289,7 @@ BEGIN
|
||||||
INSERT INTO itemBotanical (itemFk, genusFk, specieFk)
|
INSERT INTO itemBotanical (itemFk, genusFk, specieFk)
|
||||||
SELECT vItemA2Fk, genusFk, specieFk
|
SELECT vItemA2Fk, genusFk, specieFk
|
||||||
FROM itemBotanical
|
FROM itemBotanical
|
||||||
WHERE itemFk = vItemFk;
|
WHERE itemFk = vSelf;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF vQuantity = vCurrentVisible THEN
|
IF vQuantity = vCurrentVisible THEN
|
||||||
|
@ -334,7 +327,7 @@ BEGIN
|
||||||
SELECT vTargetEntryFk,
|
SELECT vTargetEntryFk,
|
||||||
itemFk,
|
itemFk,
|
||||||
- LEAST(vQuantity, vCurrentVisible),
|
- LEAST(vQuantity, vCurrentVisible),
|
||||||
vBuyingValue,
|
buyingValue,
|
||||||
freightValue,
|
freightValue,
|
||||||
TRUE,
|
TRUE,
|
||||||
stickers,
|
stickers,
|
||||||
|
@ -381,7 +374,7 @@ BEGIN
|
||||||
FROM vn.buy
|
FROM vn.buy
|
||||||
WHERE id = vLastBuyFk;
|
WHERE id = vLastBuyFk;
|
||||||
|
|
||||||
INSERT INTO itemShelving (
|
INSERT IGNORE INTO itemShelving (
|
||||||
itemFk,
|
itemFk,
|
||||||
shelvingFk,
|
shelvingFk,
|
||||||
visible,
|
visible,
|
||||||
|
@ -392,15 +385,17 @@ BEGIN
|
||||||
isChecked)
|
isChecked)
|
||||||
SELECT vItemA2Fk,
|
SELECT vItemA2Fk,
|
||||||
shelvingFk,
|
shelvingFk,
|
||||||
vQuantity,
|
vQuantity ,
|
||||||
`grouping`,
|
`grouping`,
|
||||||
packing,
|
packing,
|
||||||
packagingFk,
|
packagingFk,
|
||||||
account.myUser_getId(),
|
account.myUser_getId(),
|
||||||
isChecked
|
isChecked
|
||||||
FROM itemShelving
|
FROM itemShelving
|
||||||
WHERE itemFK = vItemFk
|
WHERE itemFK = vSelf
|
||||||
AND shelvingFk = vShelvingFK COLLATE utf8mb3_general_ci;
|
AND shelvingFk = vShelvingFK COLLATE utf8mb3_general_ci
|
||||||
|
ON DUPLICATE KEY UPDATE
|
||||||
|
visible = vQuantity + VALUES(visible);
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
CALL cache.visible_refresh(vCacheFk, TRUE, vWarehouseFk);
|
CALL cache.visible_refresh(vCacheFk, TRUE, vWarehouseFk);
|
||||||
|
|
Loading…
Reference in New Issue