mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
mrp_workcenter_cost: keep durations set by users
This commit is contained in:
@@ -14,7 +14,15 @@ class MrpProduction(models.Model):
|
||||
self.product_id.mrp_workcenter_cost == "theoretical"
|
||||
and not any(t.cost_already_recorded for t in self.workorder_ids.time_ids)
|
||||
)
|
||||
duration_by_workorder = {}
|
||||
if should_overwrite_duration:
|
||||
for workorder in self.workorder_ids.filtered("duration_expected"):
|
||||
workorders = self.workorder_ids.filtered("duration_expected")
|
||||
for workorder in workorders:
|
||||
duration_by_workorder[workorder.id] = workorder.duration
|
||||
workorder.duration = workorder.duration_expected
|
||||
return super()._cal_price(consumed_moves)
|
||||
res = super()._cal_price(consumed_moves)
|
||||
# Restore the durations set by users
|
||||
if should_overwrite_duration:
|
||||
for workorder in workorders:
|
||||
workorder.duration = duration_by_workorder[workorder.id]
|
||||
return res
|
||||
|
||||
@@ -65,11 +65,10 @@ class TestMrp(TransactionCase):
|
||||
|
||||
def test_workcenter_cost_theoretical(self):
|
||||
self.bom.product_tmpl_id.mrp_workcenter_cost = "theoretical"
|
||||
# Duration will be reset on MO validation
|
||||
self.production.workorder_ids.duration = 30
|
||||
self._mrp_production_done(self.production)
|
||||
self.assertNotEqual(self.production.workorder_ids.duration, 30)
|
||||
self.assertEqual(
|
||||
self.assertEqual(self.production.workorder_ids.duration, 30)
|
||||
self.assertNotEqual(
|
||||
self.production.workorder_ids.duration,
|
||||
self.production.workorder_ids.duration_expected,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user