diff --git a/addons/mrp/models/mrp_production.py b/addons/mrp/models/mrp_production.py index 8fd18aa854e6a369780c0d5eaf6bafa142b8820f..cdb1858c5799c90a55a84bdaacf9e868c3038feb 100644 --- a/addons/mrp/models/mrp_production.py +++ b/addons/mrp/models/mrp_production.py @@ -1476,14 +1476,8 @@ class MrpProduction(models.Model): else: move_vals[0]['production_id'] = backorder_mo.id new_moves_vals.append(move_vals[0]) - new_moves = self.env['stock.move'].create(new_moves_vals) + self.env['stock.move'].create(new_moves_vals) backorders |= backorder_mo - for old_wo, wo in zip(production.workorder_ids, backorder_mo.workorder_ids): - wo.qty_produced = max(old_wo.qty_produced - old_wo.qty_producing, 0) - if wo.product_tracking == 'serial': - wo.qty_producing = 1 - else: - wo.qty_producing = wo.qty_remaining # We need to adapt `duration_expected` on both the original workorders and their # backordered workorders. To do that, we use the original `duration_expected` and the @@ -1506,6 +1500,13 @@ class MrpProduction(models.Model): backorders.move_raw_ids.move_line_ids.filtered(lambda ml: ml.product_id.tracking == 'serial' and ml.product_qty == 0).unlink() backorders.move_raw_ids._recompute_state() + for old_wo, wo in zip(self.workorder_ids, backorders.workorder_ids): + wo.qty_produced = max(old_wo.qty_produced - old_wo.qty_producing, 0) + if wo.product_tracking == 'serial': + wo.qty_producing = 1 + else: + wo.qty_producing = wo.qty_remaining + return backorders def button_mark_done(self):