summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/mrp_subcontracting/models/stock_move.py5
-rw-r--r--addons/stock/models/stock_move.py2
2 files changed, 5 insertions, 2 deletions
diff --git a/addons/mrp_subcontracting/models/stock_move.py b/addons/mrp_subcontracting/models/stock_move.py
index 6854e8f0bff..32817a4ca8b 100644
--- a/addons/mrp_subcontracting/models/stock_move.py
+++ b/addons/mrp_subcontracting/models/stock_move.py
@@ -97,7 +97,10 @@ class StockMove(models.Model):
def _action_cancel(self):
for move in self:
if move.is_subcontract:
- move.move_orig_ids.production_id._action_cancel()
+ production = move.move_orig_ids.production_id
+ moves = self.env.context.get('moves_todo')
+ if not moves or production not in moves.move_orig_ids.production_id:
+ production._action_cancel()
return super()._action_cancel()
def _action_confirm(self, merge=True, merge_into=False):
diff --git a/addons/stock/models/stock_move.py b/addons/stock/models/stock_move.py
index 98633a4f0c0..f4e08b05303 100644
--- a/addons/stock/models/stock_move.py
+++ b/addons/stock/models/stock_move.py
@@ -1491,7 +1491,7 @@ class StockMove(models.Model):
new_move = move._split(qty_split)
move._unreserve_initial_demand(new_move)
if cancel_backorder:
- self.env['stock.move'].browse(new_move)._action_cancel()
+ self.env['stock.move'].browse(new_move).with_context(moves_todo=moves_todo)._action_cancel()
moves_todo.mapped('move_line_ids').sorted()._action_done()
# Check the consistency of the result packages; there should be an unique location across
# the contained quants.