From a0cf58b97481f2d2aa0fcda8b047677bf9131fc5 Mon Sep 17 00:00:00 2001 From: David Mott Date: Fri, 20 Aug 2021 03:44:39 +1000 Subject: [PATCH] fix: make stockentry grocycodes consume the actual stock entry not the product in general (#1584) * fix: make stockentry grocycodes consume the actual stock entry not the product in general if the stock_entry_id is in the request body use this instead of the stockentry grocycode this may not be the correct way to interpret this but one of them has to win * Undo formatting changes * fix: add variable definition and reorder args used in ConsumeProduct * Simplify * Fix this also for transferring a product Co-authored-by: Bernd Bestel --- controllers/StockApiController.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/controllers/StockApiController.php b/controllers/StockApiController.php index 5ca88254..e6dad21d 100644 --- a/controllers/StockApiController.php +++ b/controllers/StockApiController.php @@ -323,6 +323,18 @@ class StockApiController extends BaseApiController try { $args['productId'] = $this->getStockService()->GetProductIdFromBarcode($args['barcode']); + + if (Grocycode::Validate($args['barcode'])) + { + $gc = new Grocycode($args['barcode']); + if ($gc->GetExtraData()) + { + $requestBody = $request->getParsedBody(); + $requestBody['stock_entry_id'] = $gc->GetExtraData()[0]; + $request = $request->withParsedBody($requestBody); + } + } + return $this->ConsumeProduct($request, $response, $args); } catch (\Exception $ex) @@ -805,6 +817,18 @@ class StockApiController extends BaseApiController try { $args['productId'] = $this->getStockService()->GetProductIdFromBarcode($args['barcode']); + + if (Grocycode::Validate($args['barcode'])) + { + $gc = new Grocycode($args['barcode']); + if ($gc->GetExtraData()) + { + $requestBody = $request->getParsedBody(); + $requestBody['stock_entry_id'] = $gc->GetExtraData()[0]; + $request = $request->withParsedBody($requestBody); + } + } + return $this->TransferProduct($request, $response, $args); } catch (\Exception $ex)