diff --git a/shipment.py b/shipment.py index 8bce00cb0e..ba9e71251c 100644 --- a/shipment.py +++ b/shipment.py @@ -1054,6 +1054,7 @@ class ShipmentOut(ShipmentAssignMixin, Workflow, ModelSQL, ModelView): ('waiting', 'assigned'), ('waiting', 'picked'), ('assigned', 'picked'), + ('waiting', 'packed'), ('picked', 'packed'), ('packed', 'done'), ('assigned', 'waiting'), @@ -1091,16 +1092,20 @@ class ShipmentOut(ShipmentAssignMixin, Workflow, ModelSQL, ModelView): 'depends': ['state'], }, 'pick': { - 'invisible': If(Eval('warehouse_storage') - == Eval('warehouse_output'), - ~Eval('state').in_(['assigned', 'waiting']), + 'invisible': If( + Eval('warehouse_storage') == Eval('warehouse_output'), + True, Eval('state') != 'assigned'), - 'depends': ['state', 'warehouse_storage', - 'warehouse_output'], + 'depends': [ + 'state', 'warehouse_storage', 'warehouse_output'], }, 'pack': { - 'invisible': Eval('state') != 'picked', - 'depends': ['state'], + 'invisible': If( + Eval('warehouse_storage') == Eval('warehouse_output'), + Eval('state') != 'waiting', + Eval('state') != 'picked'), + 'depends': [ + 'state', 'warehouse_storage', 'warehouse_output'], }, 'done': { 'invisible': Eval('state') != 'packed', diff --git a/tests/scenario_stock_shipment_out_same_storage_output.rst b/tests/scenario_stock_shipment_out_same_storage_output.rst index 5740e954f8..f390ab8281 100644 --- a/tests/scenario_stock_shipment_out_same_storage_output.rst +++ b/tests/scenario_stock_shipment_out_same_storage_output.rst @@ -79,10 +79,8 @@ Set the shipment state to waiting:: >>> len(shipment_out.inventory_moves) 0 -Assign the shipment:: - >>> shipment_out.click('pick') - >>> shipment_out.state - 'picked' +Pack the shipment:: + >>> shipment_out.click('pack') >>> shipment_out.state 'packed'