From 6b15eab7e103b7bb09e885efa6c3ddc09dc739a9 Mon Sep 17 00:00:00 2001 From: svs-odoo Date: Tue, 7 Apr 2020 13:13:15 +0000 Subject: [PATCH] [IMP] stock: don't auto. assign backorder Before this commit, when a backorder is created, it was automatically reserved. It is no more the case. Now user have to reserve it manually. The reason is, when a user doesn't delivery all expected quantities, it could be because there is no enough quantity in stock, or the user doesn't want to delivery all. In these cases, it doesn't make sense to reserved it directly. task-2181611 --- addons/stock/models/stock_picking.py | 1 - addons/stock/tests/test_move2.py | 13 ++++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/addons/stock/models/stock_picking.py b/addons/stock/models/stock_picking.py index 28f8a753977..0028003aa2f 100644 --- a/addons/stock/models/stock_picking.py +++ b/addons/stock/models/stock_picking.py @@ -1029,7 +1029,6 @@ class Picking(models.Model): moves_to_backorder.write({'picking_id': backorder_picking.id}) moves_to_backorder.mapped('package_level_id').write({'picking_id':backorder_picking.id}) moves_to_backorder.mapped('move_line_ids').write({'picking_id': backorder_picking.id}) - backorder_picking.action_assign() backorders |= backorder_picking return backorders diff --git a/addons/stock/tests/test_move2.py b/addons/stock/tests/test_move2.py index 6b7b822e0af..8c98b886625 100644 --- a/addons/stock/tests/test_move2.py +++ b/addons/stock/tests/test_move2.py @@ -117,10 +117,10 @@ class TestPickShip(TestStockCommon): # Now partially transfer the ship picking_client.move_lines[0].move_line_ids[0].qty_done = 5 - picking_client._action_done() # no new in order to create backorder + picking_client._action_done() # no new in order to create backorder backorder = self.env['stock.picking'].search([('backorder_id', '=', picking_client.id)]) - self.assertEqual(backorder.state, 'assigned', 'Backorder should be started') + self.assertEqual(backorder.state, 'waiting', 'Backorder should be waiting for reservation') def test_mto_moves_transfer(self): """ @@ -291,8 +291,8 @@ class TestPickShip(TestStockCommon): # create a backorder picking_pick._action_done() picking_pick_backorder = self.env['stock.picking'].search([('backorder_id', '=', picking_pick.id)]) - self.assertEqual(picking_pick_backorder.state, 'assigned') - self.assertEqual(picking_pick_backorder.move_line_ids.product_qty, 5.0) + self.assertEqual(picking_pick_backorder.state, 'confirmed') + self.assertEqual(picking_pick_backorder.move_lines.product_qty, 5.0) self.assertEqual(picking_client.state, 'assigned') @@ -771,10 +771,13 @@ class TestSinglePicking(TestStockCommon): delivery_order.move_lines[0].move_line_ids[0].qty_done = 1 delivery_order._action_done() self.assertNotEqual(delivery_order.date_done, False) - self.assertEqual(self.env['stock.quant']._get_available_quantity(self.productA, pack_location), 0.0) + self.assertEqual(self.env['stock.quant']._get_available_quantity(self.productA, pack_location), 1.0) backorder = self.env['stock.picking'].search([('backorder_id', '=', delivery_order.id)]) + self.assertEqual(backorder.state, 'confirmed') + backorder.action_assign() self.assertEqual(backorder.state, 'assigned') + self.assertEqual(self.env['stock.quant']._get_available_quantity(self.productA, pack_location), 0.0) def test_backorder_2(self): """ Check the good behavior of creating a backorder for a partially available stock move.