diff --git a/setup/shopfloor_reception_putinpack_restriction/odoo/addons/shopfloor_reception_putinpack_restriction b/setup/shopfloor_reception_putinpack_restriction/odoo/addons/shopfloor_reception_putinpack_restriction
new file mode 120000
index 0000000000..b8560fb2f9
--- /dev/null
+++ b/setup/shopfloor_reception_putinpack_restriction/odoo/addons/shopfloor_reception_putinpack_restriction
@@ -0,0 +1 @@
+../../../../shopfloor_reception_putinpack_restriction
\ No newline at end of file
diff --git a/setup/shopfloor_reception_putinpack_restriction/setup.py b/setup/shopfloor_reception_putinpack_restriction/setup.py
new file mode 100644
index 0000000000..28c57bb640
--- /dev/null
+++ b/setup/shopfloor_reception_putinpack_restriction/setup.py
@@ -0,0 +1,6 @@
+import setuptools
+
+setuptools.setup(
+ setup_requires=['setuptools-odoo'],
+ odoo_addon=True,
+)
diff --git a/shopfloor_reception/services/reception.py b/shopfloor_reception/services/reception.py
index c62c06354f..85044bb807 100644
--- a/shopfloor_reception/services/reception.py
+++ b/shopfloor_reception/services/reception.py
@@ -728,6 +728,20 @@ def _set_quantity__by_package(self, picking, selected_line, package):
return self._response_for_select_move(picking)
return self._response_for_set_destination(picking, selected_line)
+ def _set_quantity__by_new_package(
+ self, picking, selected_line, barcode: str, confirmation: str
+ ):
+ if confirmation != barcode:
+ return self._response_for_set_quantity(
+ picking,
+ selected_line,
+ message=self.msg_store.create_new_pack_ask_confirmation(barcode),
+ asking_confirmation=barcode,
+ )
+ package = self.env["stock.quant.package"].create({"name": barcode})
+ selected_line.result_package_id = package
+ return self._response_for_set_destination(picking, selected_line)
+
def _set_quantity__by_location(self, picking, selected_line, location):
move_dest_location_ok, pick_type_dest_location_ok = self._check_location_ok(
location, selected_line, picking
@@ -1322,18 +1336,12 @@ def _set_quantity__by_barcode(
handler = handlers_by_type.get(search_result.type)
if handler:
return handler(picking, selected_line, search_result.record)
+
# Nothing found, ask user if we should create a new pack for the scanned
# barcode
- if confirmation != barcode:
- return self._response_for_set_quantity(
- picking,
- selected_line,
- message=self.msg_store.create_new_pack_ask_confirmation(barcode),
- asking_confirmation=barcode,
- )
- package = self.env["stock.quant.package"].create({"name": barcode})
- selected_line.result_package_id = package
- return self._response_for_set_destination(picking, selected_line)
+ return self._set_quantity__by_new_package(
+ picking, selected_line, barcode, confirmation
+ )
def _set_quantity__assign_quantity(self, picking, selected_line, quantity):
# If this is a return line, we cannot assign more qty_done than what
diff --git a/shopfloor_reception_mobile/static/src/scenario/reception.js b/shopfloor_reception_mobile/static/src/scenario/reception.js
index 761e0aa658..619e098ec6 100644
--- a/shopfloor_reception_mobile/static/src/scenario/reception.js
+++ b/shopfloor_reception_mobile/static/src/scenario/reception.js
@@ -133,17 +133,17 @@ const Reception = {
/>