Skip to content

Commit

Permalink
shopfloor: checkout fix asking destination location
Browse files Browse the repository at this point in the history
There could be multiple moves with different destination
The destination location could be of type `view`

For both cases, require the user to scan a new location.
  • Loading branch information
TDu committed Nov 14, 2023
1 parent 039457f commit cced243
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 11 deletions.
12 changes: 4 additions & 8 deletions shopfloor/services/checkout.py
Original file line number Diff line number Diff line change
Expand Up @@ -1404,15 +1404,11 @@ def done(self, picking_id, confirmation=False):
},
)
lines_done = self._lines_checkout_done(picking)
dest_location = picking.location_dest_id
if self.work.menu.ask_for_leaf_destination_location:
child_locations = self.env["stock.location"].search(
[("id", "child_of", dest_location.id), ("usage", "!=", "view")]
dest_location = lines_done.move_id.location_dest_id
if len(dest_location) != 1 or dest_location.usage == "view":
return self._response_for_select_child_location(
picking,
)
if len(child_locations) > 0 and child_locations != dest_location:
return self._response_for_select_child_location(
picking,
)
stock = self._actions_for("stock")
stock.validate_moves(lines_done.move_id)
return self._response_for_select_document(
Expand Down
17 changes: 14 additions & 3 deletions shopfloor/tests/test_checkout_done.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,20 @@ def test_done_partial_confirm(self):
data={"restrict_scan_first": False},
)

def test_done_partial_confirm_ask_leaf_location(self):
"""Check confirm partially done with force leaf location option on."""
self.menu.sudo().ask_for_leaf_destination_location = True
def test_done_ask_destination_location(self):
"""Check asking for destination location for view type location."""
view_location = (
self.env["stock.location"]
.sudo()
.create(
{
"name": "Test Location Usage View",
"location_id": self.picking.move_lines.location_dest_id.id,
"usage": "view",
}
)
)
self.picking.move_lines.location_dest_id = view_location
response = self.service.dispatch(
"done", params={"picking_id": self.picking.id, "confirmation": True}
)
Expand Down

0 comments on commit cced243

Please sign in to comment.