[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:
William Henrotin
2022-12-19 10:31:00 +01:00
parent 0a4d45a242
commit 859c24528e
2 changed files with 7 additions and 1 deletions
+1 -1
View File
@@ -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):
+6
View File
@@ -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()