From 325ad45bca794a69f12c0d45e5ad9954f3328529 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Fri, 3 Dec 2021 16:04:23 +0100 Subject: [PATCH] update scan inventory error gestion --- htdocs/langs/en_US/stocks.lang | 3 +- .../inventory/ajax/searchfrombarcode.php | 17 ++-- htdocs/product/inventory/inventory.php | 77 +++++++++++-------- 3 files changed, 60 insertions(+), 37 deletions(-) diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang index 75b6ea1bd4e..c26a8819a1d 100644 --- a/htdocs/langs/en_US/stocks.lang +++ b/htdocs/langs/en_US/stocks.lang @@ -265,4 +265,5 @@ ProductBarcodeDoesNotExist=Product with barcode does not exist WarehouseId=Warehouse ID WarehouseRef=Warehouse Ref SaveQtyFirst=Save the real inventoried quantities first, before asking creation of the stock movement. -InventoryStartedShort=Started \ No newline at end of file +InventoryStartedShort=Started +ErrorOnElementsInventory=Scan was aborted due to following barcode or batch number on error \ No newline at end of file diff --git a/htdocs/product/inventory/ajax/searchfrombarcode.php b/htdocs/product/inventory/ajax/searchfrombarcode.php index c4d53719d65..8dfac96c32b 100644 --- a/htdocs/product/inventory/ajax/searchfrombarcode.php +++ b/htdocs/product/inventory/ajax/searchfrombarcode.php @@ -60,18 +60,25 @@ $warehouseid = 0; $objectreturn = array(); if ($action == "existbarcode" && !empty($barcode)) { - $sql = "SELECT ps.fk_entrepot, ps.fk_product, p.barcode,ps.reel"; - $sql .= " FROM ".MAIN_DB_PREFIX."product_stock as ps JOIN ".MAIN_DB_PREFIX."product as p ON ps.fk_product = p.rowid"; - $sql .= " WHERE p.barcode = '".$db->escape($barcode)."'"; + if (!empty($mode) && $mode == "lotserial") { + $sql = "SELECT ps.fk_entrepot, ps.fk_product, p.barcode, ps.reel, pb.batch"; + $sql .= " FROM ".MAIN_DB_PREFIX."product_batch as pb"; + $sql .= " JOIN ".MAIN_DB_PREFIX."product_stock as ps ON pb.fk_product_stock = ps.rowid JOIN ".MAIN_DB_PREFIX."product as p ON ps.fk_product = p.rowid"; + $sql .= " WHERE pb.batch = '".$db->escape($barcode)."'"; + } else { + $sql = "SELECT ps.fk_entrepot, ps.fk_product, p.barcode,ps.reel"; + $sql .= " FROM ".MAIN_DB_PREFIX."product_stock as ps JOIN ".MAIN_DB_PREFIX."product as p ON ps.fk_product = p.rowid"; + $sql .= " WHERE p.barcode = '".$db->escape($barcode)."'"; + } if (!empty($fk_entrepot)) { - $sql .= "AND ps.fk_entrepot = '".$db->escape($fk_entrepot)."'"; + $sql .= " AND ps.fk_entrepot = '".$db->escape($fk_entrepot)."'"; } $result = $db->query($sql); if ($result) { $nbline = $db->num_rows($result); for ($i=0; $i < $nbline; $i++) { $object = $db->fetch_object($result); - if ($barcode == $object->barcode) { + if (($mode == "barcode" && $barcode == $object->barcode) || ($mode == "lotserial" && $barcode == $object->batch)) { $warehouse->fetch(0, $product["Warehouse"]); if (!empty($object->fk_entrepot) && $warehouse->id == $object->fk_entrepot) { $warehousefound++; diff --git a/htdocs/product/inventory/inventory.php b/htdocs/product/inventory/inventory.php index 9376d583ad4..51c2e9d2bc5 100644 --- a/htdocs/product/inventory/inventory.php +++ b/htdocs/product/inventory/inventory.php @@ -541,7 +541,10 @@ if ($object->id > 0) { if ($action == 'updatebyscaning') { if ($permissiontoadd) { print '