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 @@
-
+