mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
# Copyright 2023 Camptocamp SA (https://www.camptocamp.com).
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import models
|
|
|
|
|
|
class MrpProduction(models.Model):
|
|
_inherit = "mrp.production"
|
|
|
|
def _cal_price(self, consumed_moves):
|
|
# OVERRIDE to use the theoretical duration of the workcenter
|
|
# This will overwrite the real duration of the workcenter, but that's ok for now
|
|
should_overwrite_duration = (
|
|
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:
|
|
workorders = self.workorder_ids.filtered("duration_expected")
|
|
for workorder in workorders:
|
|
duration_by_workorder[workorder.id] = workorder.duration
|
|
workorder.duration = workorder.duration_expected
|
|
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
|