diff --git a/addons/mrp/data/mrp_demo.xml b/addons/mrp/data/mrp_demo.xml index 7f0ee2c7bf8..cd0b3d56c0c 100644 --- a/addons/mrp/data/mrp_demo.xml +++ b/addons/mrp/data/mrp_demo.xml @@ -38,27 +38,26 @@ Assembly Station 1 - + 5 10 8 87 - Cutting - + Drill Station 1 - + Assemble Station 2 - + diff --git a/addons/mrp/models/mrp_workcenter.py b/addons/mrp/models/mrp_workcenter.py index cecdeca655c..0dc9cdc96af 100644 --- a/addons/mrp/models/mrp_workcenter.py +++ b/addons/mrp/models/mrp_workcenter.py @@ -10,9 +10,15 @@ from odoo import api, exceptions, fields, models, _ class MrpWorkcenter(models.Model): _name = 'mrp.workcenter' _description = 'Work Center' - _inherits = {'resource.resource': 'resource_id'} _order = "sequence, id" + _inherit = ['resource.mixin'] + # resource + name = fields.Char(related='resource_id.name', store=True) + time_efficiency = fields.Float('Time Efficiency', related='resource_id.time_efficiency', store=True) + active = fields.Boolean('Active', related='resource_id.active', default=True, store=True) + + code = fields.Char('Code', copy=False) note = fields.Text( 'Description', help="Description of the Work Center.") @@ -25,10 +31,7 @@ class MrpWorkcenter(models.Model): color = fields.Integer('Color') time_start = fields.Float('Time before prod.', help="Time in minutes for the setup.") time_stop = fields.Float('Time after prod.', help="Time in minutes for the cleaning.") - resource_id = fields.Many2one('resource.resource', 'Resource', ondelete='cascade', required=True) - code = fields.Char('Code', copy=False) routing_line_ids = fields.One2many('mrp.routing.workcenter', 'workcenter_id', "Routing Lines") - order_ids = fields.One2many('mrp.workorder', 'workcenter_id', "Orders") workorder_count = fields.Integer('# Work Orders', compute='_compute_workorder_count') workorder_ready_count = fields.Integer('# Read Work Orders', compute='_compute_workorder_count') @@ -206,8 +209,8 @@ class MrpWorkcenterProductivity(models.Model): d1 = fields.Datetime.from_string(blocktime.date_start) d2 = fields.Datetime.from_string(blocktime.date_end) diff = d2 - d1 - if (blocktime.loss_type not in ('productive', 'performance')) and blocktime.workcenter_id.calendar_id: - r = blocktime.workcenter_id.calendar_id.get_work_hours_count(d1, d2, blocktime.workcenter_id.resource_id.id) + if (blocktime.loss_type not in ('productive', 'performance')) and blocktime.workcenter_id.resource_calendar_id: + r = blocktime.workcenter_id.resource_calendar_id.get_work_hours_count(d1, d2, blocktime.workcenter_id.resource_id.id) blocktime.duration = round(r * 60, 2) else: blocktime.duration = round(diff.total_seconds() / 60.0, 2) diff --git a/addons/mrp/views/mrp_workcenter_views.xml b/addons/mrp/views/mrp_workcenter_views.xml index 3f6d50138a2..d075db5f441 100644 --- a/addons/mrp/views/mrp_workcenter_views.xml +++ b/addons/mrp/views/mrp_workcenter_views.xml @@ -39,7 +39,6 @@ - @@ -290,7 +289,7 @@ - +