refactor: refs #7817 itemShelving_addList change
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
e9870be76f
commit
5a22f009f2
|
@ -1,16 +1,22 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemShelving_addList`(vShelvingFk VARCHAR(3), vList TEXT, vIsChecking BOOL, vWarehouseFk INT)
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemShelving_addList`(
|
||||||
|
vShelvingFk VARCHAR(3),
|
||||||
|
vList TEXT,
|
||||||
|
vIsChecking BOOL,
|
||||||
|
vWarehouseFk INT
|
||||||
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
/* Recorre cada elemento en la colección vList.
|
/**
|
||||||
|
* Recorre cada elemento en la colección vList.
|
||||||
* Si el parámetro isChecking = FALSE, llama a itemShelving_add.
|
* Si el parámetro isChecking = FALSE, llama a itemShelving_add.
|
||||||
*
|
*
|
||||||
* Cuando es TRUE sólo inserta los elementos de la colección que no están ya en
|
* Cuando es TRUE sólo inserta los elementos de la colección que no están ya en
|
||||||
* ese shelving, actualizando los valores del campo vn.itemShelving.isChecked
|
* ese shelving, actualizando los valores del campo itemShelving.isChecked
|
||||||
*
|
*
|
||||||
* param vShelvingFk Identificador de vn.shelving
|
* @param vShelvingFk Identificador de shelving
|
||||||
* param vList JSON array con esta estructura: '[value1, value2, ...]'
|
* @param vList JSON array con esta estructura: '[value1, value2, ...]'
|
||||||
* param vIsChecking Define si hay que añadir o comprobar los items
|
* @param vIsChecking Define si hay que añadir o comprobar los items
|
||||||
* param vWarehouseFk Identificador de vn.warehouse
|
* @param vWarehouseFk Identificador de warehouse
|
||||||
*/
|
*/
|
||||||
DECLARE vListLength INT DEFAULT JSON_LENGTH(vList);
|
DECLARE vListLength INT DEFAULT JSON_LENGTH(vList);
|
||||||
DECLARE vCounter INT DEFAULT 0;
|
DECLARE vCounter INT DEFAULT 0;
|
||||||
|
@ -20,26 +26,27 @@ BEGIN
|
||||||
DECLARE vIsChecked BOOL;
|
DECLARE vIsChecked BOOL;
|
||||||
|
|
||||||
WHILE vCounter < vListLength DO
|
WHILE vCounter < vListLength DO
|
||||||
SET vPath = CONCAT('$[',vCounter,']');
|
SET vPath = CONCAT('$[', vCounter, ']');
|
||||||
SET vBarcode = JSON_EXTRACT(vList,vPath);
|
SET vBarcode = JSON_EXTRACT(vList, vPath);
|
||||||
SET vIsChecked = NULL;
|
SET vIsChecked = NULL;
|
||||||
IF vIsChecking THEN
|
IF vIsChecking THEN
|
||||||
SELECT barcodeToItem(vBarcode) INTO vItemFk;
|
SELECT barcodeToItem(vBarcode) INTO vItemFk;
|
||||||
|
|
||||||
SELECT COUNT(*) INTO vIsChecked
|
SELECT IF(COUNT(*), TRUE, FALSE) INTO vIsChecked
|
||||||
FROM vn.itemShelving
|
FROM itemShelving
|
||||||
WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk
|
WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk
|
||||||
AND itemFk = vItemFk;
|
AND itemFk = vItemFk;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NOT (vIsChecking AND vIsChecked) THEN
|
IF NOT (vIsChecking AND vIsChecked) THEN
|
||||||
CALL vn.itemShelving_add(vShelvingFk, vBarcode, 1, NULL, NULL, NULL, vWarehouseFk);
|
CALL itemShelving_add(vShelvingFk, vBarcode, 1, NULL, NULL, NULL, vWarehouseFk);
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
UPDATE vn.itemShelving
|
UPDATE itemShelving
|
||||||
SET isChecked = vIsChecked
|
SET isChecked = vIsChecked
|
||||||
WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk
|
WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk
|
||||||
AND itemFk = vItemFk AND isChecked IS NULL;
|
AND itemFk = vItemFk
|
||||||
|
AND isChecked IS NULL;
|
||||||
|
|
||||||
SET vCounter = vCounter + 1;
|
SET vCounter = vCounter + 1;
|
||||||
END WHILE;
|
END WHILE;
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
UPDATE vn.itemShelving
|
||||||
|
SET isChecked = TRUE
|
||||||
|
WHERE isChecked;
|
||||||
|
|
||||||
|
UPDATE vn.itemShelving
|
||||||
|
SET isChecked = FALSE
|
||||||
|
WHERE NOT isChecked;
|
Loading…
Reference in New Issue