From 051ecc657e2ccbff346ea343c5909b9563828338 Mon Sep 17 00:00:00 2001 From: Rosemary Orchard <16113535+RosemaryOrchard@users.noreply.github.com> Date: Mon, 18 Apr 2022 09:06:31 +0100 Subject: [PATCH] Add functionality to move a product when it is opened --- localization/strings.pot | 7 +++++++ migrations/0189.sql | 2 ++ public/viewjs/consume.js | 34 ++++++++++++++++------------------ public/viewjs/productform.js | 12 ++++++++++++ services/StockService.php | 13 +++++++++---- views/productform.blade.php | 13 +++++++++++++ 6 files changed, 59 insertions(+), 22 deletions(-) create mode 100644 migrations/0189.sql diff --git a/localization/strings.pot b/localization/strings.pot index 80120c36..93238a29 100644 --- a/localization/strings.pot +++ b/localization/strings.pot @@ -2326,3 +2326,10 @@ msgstr "" msgid "Stock entries at this location will be consumed first" msgstr "" + +msgid "Move on open" +msgstr "" + + +msgid "When checked, opening the product will move one unit to the default consume location" +msgstr "" diff --git a/migrations/0189.sql b/migrations/0189.sql new file mode 100644 index 00000000..04336994 --- /dev/null +++ b/migrations/0189.sql @@ -0,0 +1,2 @@ +ALTER TABLE products +ADD move_on_open TINYINT NOT NULL DEFAULT 0 CHECK(move_on_open IN (0, 1)); diff --git a/public/viewjs/consume.js b/public/viewjs/consume.js index 6bb6adbf..82d96df7 100644 --- a/public/viewjs/consume.js +++ b/public/viewjs/consume.js @@ -373,9 +373,11 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e) $(".input-group-productamountpicker").trigger("change"); var defaultLocationId = productDetails.location.id; - if (productDetails.product.default_consume_location_id != null && !productDetails.product.default_consume_location_id.isEmpty()) + var defaultConsumeLocationId = productDetails.product.default_consume_location_id; + + if (defaultConsumeLocationId != null && !defaultConsumeLocationId.isEmpty()) { - defaultLocationId = productDetails.product.default_consume_location_id; + defaultLocationId = defaultConsumeLocationId; } $("#location_id").find("option").remove().end().append(""); @@ -386,26 +388,22 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e) var stockAmountAtDefaultLocation = 0; stockLocations.forEach(stockLocation => { - if (stockLocation.location_id == defaultLocationId) - { - $("#location_id").append($(" @endforeach + @if(GROCY_FEATURE_FLAG_STOCK_PRODUCT_OPENED_TRACKING) +
+ move_on_open == 1) checked @endif class="form-check-input custom-control-input" type="checkbox" id="move_on_open" name="move_on_open" value="1"> + +
+ @endif @else