[FIX] mrp: do not recompute duration expected
Since 2515482d5a70, the duration expected of a workorder was always set to the real duration at the validation of the workorder. This commit ensure the duration expected is left unchanged even if the date_planned_finished is updated. closes odoo/odoo#108233 X-original-commit: 46e1ae4d9918de1aaf6b4a7565dba422b03fcb36 Signed-off-by: William Henrotin (whe) <whe@odoo.com>
This commit is contained in:
@@ -661,7 +661,7 @@ class MrpWorkorder(models.Model):
|
||||
vals['date_start'] = end_date
|
||||
if not workorder.date_planned_start or end_date < workorder.date_planned_start:
|
||||
vals['date_planned_start'] = end_date
|
||||
workorder.write(vals)
|
||||
workorder.with_context(bypass_duration_calculation=True).write(vals)
|
||||
return True
|
||||
|
||||
def end_previous(self, doall=False):
|
||||
|
||||
@@ -2674,18 +2674,24 @@ class TestMrpOrder(TestMrpCommon):
|
||||
|
||||
# produce 20 / 10 / 5 on workorders, create backorder
|
||||
|
||||
duration_expected = wo_1.duration_expected
|
||||
wo_1.button_start()
|
||||
wo_1.qty_producing = 20
|
||||
self.assertEqual(mo.state, 'progress')
|
||||
wo_1.button_finish()
|
||||
self.assertEqual(duration_expected, wo_1.duration_expected)
|
||||
|
||||
duration_expected = wo_2.duration_expected
|
||||
wo_2.button_start()
|
||||
wo_2.qty_producing = 10
|
||||
wo_2.button_finish()
|
||||
self.assertEqual(duration_expected, wo_2.duration_expected)
|
||||
|
||||
duration_expected = wo_3.duration_expected
|
||||
wo_3.button_start()
|
||||
wo_3.qty_producing = 5
|
||||
wo_3.button_finish()
|
||||
self.assertEqual(duration_expected, wo_3.duration_expected)
|
||||
|
||||
self.assertEqual(mo.state, 'to_close')
|
||||
mo.button_mark_done()
|
||||
|
||||
Reference in New Issue
Block a user