diff --git a/stock_vertical_lift/demo/stock_inventory_demo.xml b/stock_vertical_lift/demo/stock_inventory_demo.xml
index 9c9e4a4cd..a523b3e80 100644
--- a/stock_vertical_lift/demo/stock_inventory_demo.xml
+++ b/stock_vertical_lift/demo/stock_inventory_demo.xml
@@ -7,7 +7,27 @@
- 30.0
+ 10.0
+
+
+
+
+
+
+ 10.0
+
+
+
+
+
+
+ 10.0
%s."
+ )
+ % (picking.id, picking.name)
+ )
+ moves_todo.write({"picking_id": new_picking.id})
+ moves_todo.package_level_id.write({"picking_id": new_picking.id})
+ moves_todo.move_line_ids.write({"picking_id": new_picking.id})
+ moves_todo.move_line_ids.package_level_id.write(
+ {"picking_id": new_picking.id}
+ )
+ new_picking.action_assign()
+ assert new_picking.state == "assigned"
+ new_picking.action_done()
+ return True
+
+
+# /methods
+
+
class VerticalLiftOperationBase(models.AbstractModel):
"""Base model for shuttle operations (pick, put, inventory)"""
@@ -412,7 +485,9 @@ class VerticalLiftOperationTransfer(models.AbstractModel):
line = self.current_move_line_id
if line.state in ("assigned", "partially_available"):
line.qty_done = line.product_qty
- line.move_id._action_done()
+ # if the move has other move lines, it is split to have only this move line
+ split_other_move_lines(line.move_id, line)
+ extract_and_action_done(line.move_id)
return True
def fetch_tray(self):
diff --git a/stock_vertical_lift/tests/common.py b/stock_vertical_lift/tests/common.py
index 541064c8d..e87853267 100644
--- a/stock_vertical_lift/tests/common.py
+++ b/stock_vertical_lift/tests/common.py
@@ -154,10 +154,11 @@ class VerticalLiftCase(common.LocationTrayTypeCase):
inventory.action_start()
return inventory
- def _test_button_release(self, move_line, expected_state):
- # for the test, we'll consider our last line has been delivered
- move_line.qty_done = move_line.product_qty
- move_line.move_id._action_done()
+ def _test_button_release(self, move_lines, expected_state):
+ # for the test, we'll consider all the lines has been delivered
+ for move_line in move_lines:
+ move_line.qty_done = move_line.product_qty
+ move_lines.picking_id.action_done()
# release, no further operation in queue
operation = self.shuttle._operation_for_mode()
# the release button can be used only in the state... release
diff --git a/stock_vertical_lift/tests/test_pick.py b/stock_vertical_lift/tests/test_pick.py
index 28f5618d6..1d4d3b4f2 100644
--- a/stock_vertical_lift/tests/test_pick.py
+++ b/stock_vertical_lift/tests/test_pick.py
@@ -13,7 +13,7 @@ class TestPick(VerticalLiftCase):
)
# we have a move line to pick created by demo picking
# stock_picking_out_demo_vertical_lift_1
- cls.out_move_line = cls.picking_out.move_line_ids
+ cls.out_move_line = cls.picking_out.move_line_ids[0]
def test_switch_pick(self):
self.shuttle.switch_pick()
@@ -159,7 +159,7 @@ class TestPick(VerticalLiftCase):
def test_button_release(self):
self._open_screen("pick")
- self._test_button_release(self.out_move_line, "noop")
+ self._test_button_release(self.picking_out.move_line_ids, "noop")
def test_process_current_pick(self):
operation = self._open_screen("pick")
@@ -183,7 +183,7 @@ class TestPick(VerticalLiftCase):
# fmt: off
'cells': [
[0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0, 0, 0, 0],
+ [1, 1, 1, 0, 0, 0, 0, 0],
]
# fmt: on
},