diff --git a/addons/mrp/data/mrp_data.xml b/addons/mrp/data/mrp_data.xml
index 7749846f598..1343cbcf146 100644
--- a/addons/mrp/data/mrp_data.xml
+++ b/addons/mrp/data/mrp_data.xml
@@ -35,41 +35,55 @@
+
+
+ availability
+
+
+ performance
+
+
+ quality
+
+
+ productive
+
+
Material Availability
- availability
+
1
Equipment Failure
- availability
+
2
Setup and Adjustments
- availability
+
3
Reduced Speed
- performance
+
5
Process Defect
- quality
+
6
Reduced Yield
- quality
+
7
Fully Productive Time
- productive
+
0
diff --git a/addons/mrp/models/mrp_workcenter.py b/addons/mrp/models/mrp_workcenter.py
index af78cad1ac9..7ba89c9e290 100644
--- a/addons/mrp/models/mrp_workcenter.py
+++ b/addons/mrp/models/mrp_workcenter.py
@@ -166,6 +166,28 @@ class MrpWorkcenter(models.Model):
return {'type': 'ir.actions.client', 'tag': 'reload'}
+class MrpWorkcenterProductivityLossType(models.Model):
+ _name = "mrp.workcenter.productivity.loss.type"
+ _rec_name = 'loss_type'
+
+ @api.depends('loss_type')
+ def name_get(self):
+ """ As 'category' field in form view is a Many2one, its value will be in
+ lower case. In order to display its value capitalized 'name_get' is
+ overrided.
+ """
+ result = []
+ for rec in self:
+ result.append((rec.id, rec.loss_type.title()))
+ return result
+
+ loss_type = fields.Selection([
+ ('availability', 'Availability'),
+ ('performance', 'Performance'),
+ ('quality', 'Quality'),
+ ('productive', 'Productive')], string='Category', default='availability', required=True)
+
+
class MrpWorkcenterProductivityLoss(models.Model):
_name = "mrp.workcenter.productivity.loss"
_description = "TPM Big Losses"
@@ -174,12 +196,8 @@ class MrpWorkcenterProductivityLoss(models.Model):
name = fields.Char('Reason', required=True)
sequence = fields.Integer('Sequence', default=1)
manual = fields.Boolean('Is a Blocking Reason', default=True)
- loss_type = fields.Selection([
- ('availability', 'Availability'),
- ('performance', 'Performance'),
- ('quality', 'Quality'),
- ('productive', 'Productive')], "Effectiveness Category",
- default='availability', required=True)
+ loss_id = fields.Many2one('mrp.workcenter.productivity.loss.type', domain=([('loss_type', 'in', ['quality', 'availability'])]), string='Category')
+ loss_type = fields.Selection(string='Effectiveness Category', related='loss_id.loss_type', store=True)
class MrpWorkcenterProductivity(models.Model):
diff --git a/addons/mrp/security/ir.model.access.csv b/addons/mrp/security/ir.model.access.csv
index 54e9e1c72cb..0f48edfa18d 100644
--- a/addons/mrp/security/ir.model.access.csv
+++ b/addons/mrp/security/ir.model.access.csv
@@ -1,6 +1,7 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_mrp_workcenter_productivity_loss_manager,mrp.workcenter.productivity.loss,model_mrp_workcenter_productivity_loss,mrp.group_mrp_manager,1,1,1,1
access_mrp_workcenter_productivity_loss,mrp.workcenter.productivity.loss,model_mrp_workcenter_productivity_loss,mrp.group_mrp_user,1,0,0,0
+access_mrp_workcenter_productivity_loss_type,mrp.workcenter.productivity.loss.type,model_mrp_workcenter_productivity_loss_type,mrp.group_mrp_user,1,0,0,0
access_mrp_workcenter_productivity,mrp.workcenter.productivity,model_mrp_workcenter_productivity,mrp.group_mrp_user,1,1,1,1
access_mrp_workcenter,mrp.workcenter,model_mrp_workcenter,mrp.group_mrp_user,1,0,0,0
access_mrp_routing,mrp.routing,model_mrp_routing,mrp.group_mrp_user,1,0,0,0
diff --git a/addons/mrp/views/mrp_workcenter_views.xml b/addons/mrp/views/mrp_workcenter_views.xml
index 283af4edcb8..a26ebc0d323 100644
--- a/addons/mrp/views/mrp_workcenter_views.xml
+++ b/addons/mrp/views/mrp_workcenter_views.xml
@@ -451,9 +451,7 @@
-
-
-
+