Skip to content

Commit

Permalink
[FIX] mrp: done workorder on multiple reserved move lines
Browse files Browse the repository at this point in the history
Producing a manufacturing order on components with more than one unit
could leads to multiple move line reserved on this component. Marking the
workorder as done, in that case, will trigger an error saying "Cannot set
the done quantity from this stock move, work directly with the move
lines". Instead of setting the quantity done directly, this commit
uses the magical function _set_quantity_done() that manage the case
of more than one move lines.

OPW-1888780
  • Loading branch information
Whenrow committed Oct 15, 2018
1 parent 5c12a66 commit 8b5d22a
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion addons/mrp/models/mrp_workorder.py
Expand Up @@ -317,8 +317,10 @@ def record_production(self):
if self.product_id.tracking != 'none':
qty_to_add = float_round(self.qty_producing * move.unit_factor, precision_rounding=rounding)
move._generate_consumed_move_line(qty_to_add, self.final_lot_id)
else:
elif len(move._get_move_lines()) < 2:
move.quantity_done += float_round(self.qty_producing * move.unit_factor, precision_rounding=rounding)
else:
move._set_quantity_done(move.quantity_done + float_round(self.qty_producing * move.unit_factor, precision_rounding=rounding))

# Transfer quantities from temporary to final move lots or make them final
for move_line in self.active_move_line_ids:
Expand Down

0 comments on commit 8b5d22a

Please sign in to comment.