Skip to content

Commit

Permalink
shopfloor: improve checkout inheritance
Browse files Browse the repository at this point in the history
  • Loading branch information
TDu committed Dec 4, 2023
1 parent 54c0bb4 commit 11484a1
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 8 deletions.
35 changes: 27 additions & 8 deletions shopfloor/services/checkout.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,17 +94,20 @@ def _response_for_manual_selection(self, message=None):
data = {"pickings": self.data.pickings(pickings)}
return self._response(next_state="manual_selection", data=data, message=message)

def _data_response_for_select_package(self, picking, lines):
return {
"selected_move_lines": self._data_for_move_lines(lines.sorted()),
"picking": self.data.picking(picking),
"packing_info": self._data_for_packing_info(picking),
"no_package_enabled": not self.options.get("checkout__disable_no_package"),
# Used by inheriting module
"package_allowed": True,
}

def _response_for_select_package(self, picking, lines, message=None):
return self._response(
next_state="select_package",
data={
"selected_move_lines": self._data_for_move_lines(lines.sorted()),
"picking": self.data.picking(picking),
"packing_info": self._data_for_packing_info(picking),
"no_package_enabled": not self.options.get(
"checkout__disable_no_package"
),
},
data=self._data_response_for_select_package(picking, lines),
message=message,
)

Expand Down Expand Up @@ -960,6 +963,13 @@ def scan_package_action(self, picking_id, selected_line_ids, barcode):

selected_lines = self.env["stock.move.line"].browse(selected_line_ids).exists()
search_result = self._scan_package_find(picking, barcode)
message = self._check_scan_package_find(picking, search_result)
if message:
return self._response_for_select_package(
picking,
selected_lines,
message=message,
)
result_handler = getattr(
self, "_scan_package_action_from_" + search_result.type
)
Expand All @@ -984,6 +994,10 @@ def _scan_package_find(self, picking, barcode, search_types=None):
),
)

def _check_scan_package_find(self, picking, search_result):
# Used by inheriting modules
return False

def _find_line_to_increment(self, product_lines):
"""Find which line should have its qty incremented.
Expand Down Expand Up @@ -1679,6 +1693,11 @@ def _states(self):
"nullable": True,
"required": False,
},
package_allowed={
"type": "boolean",
"nullable": True,
"required": False,
},
),
"change_quantity": self._schema_selected_lines,
"select_dest_package": self._schema_select_package,
Expand Down
1 change: 1 addition & 0 deletions shopfloor/tests/test_checkout_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ def _assert_select_package_qty_above(self, response, picking):
"picking": self._picking_summary_data(picking),
"packing_info": "",
"no_package_enabled": True,
"package_allowed": True,
},
message={
"message_type": "warning",
Expand Down
1 change: 1 addition & 0 deletions shopfloor/tests/test_checkout_list_delivery_packaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ def test_list_delivery_packaging_not_available(self):
"no_package_enabled": not self.service.options.get(
"checkout__disable_no_package"
),
"package_allowed": True,
},
message=self.service.msg_store.no_delivery_packaging_available(),
)
1 change: 1 addition & 0 deletions shopfloor/tests/test_checkout_scan_package_action.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ def test_scan_package_action_scan_package_keep_source_package_error(self):
"no_package_enabled": not self.service.options.get(
"checkout__disable_no_package"
),
"package_allowed": True,
},
message=self.service.msg_store.dest_package_not_valid(pack1),
)
Expand Down
2 changes: 2 additions & 0 deletions shopfloor/tests/test_checkout_select_package_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ def _assert_selected_response(
message=None,
packing_info="",
no_package_enabled=True,
package_allowed=True,
):
picking = selected_lines.mapped("picking_id")
self.assert_response(
Expand All @@ -22,6 +23,7 @@ def _assert_selected_response(
"picking": self._picking_summary_data(picking),
"packing_info": packing_info,
"no_package_enabled": no_package_enabled,
"package_allowed": package_allowed,
},
message=message,
)
Expand Down

0 comments on commit 11484a1

Please sign in to comment.