summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/mrp/data/mrp_data.xml28
-rw-r--r--addons/mrp/models/mrp_workcenter.py30
-rw-r--r--addons/mrp/security/ir.model.access.csv1
-rw-r--r--addons/mrp/views/mrp_workcenter_views.xml4
4 files changed, 47 insertions, 16 deletions
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 @@
<field name='manufacture_to_resupply' eval='True'/>
</record>
+ <!-- Category for Blocking Reasons Workcenter -->
+ <record id="category_availability" model="mrp.workcenter.productivity.loss.type">
+ <field name="loss_type">availability</field>
+ </record>
+ <record id="category_performance" model="mrp.workcenter.productivity.loss.type">
+ <field name="loss_type">performance</field>
+ </record>
+ <record id="category_quality" model="mrp.workcenter.productivity.loss.type">
+ <field name="loss_type">quality</field>
+ </record>
+ <record id="category_productive" model="mrp.workcenter.productivity.loss.type">
+ <field name="loss_type">productive</field>
+ </record>
+
<!-- Reasons To Block Workcenter -->
<record id="block_reason0" model="mrp.workcenter.productivity.loss">
<field name="name">Material Availability</field>
- <field name="loss_type">availability</field>
+ <field name="loss_id" ref="mrp.category_availability"></field>
<field name="sequence">1</field>
</record>
<record id="block_reason1" model="mrp.workcenter.productivity.loss">
<field name="name">Equipment Failure</field>
- <field name="loss_type">availability</field>
+ <field name="loss_id" ref="mrp.category_availability"></field>
<field name="sequence">2</field>
</record>
<record id="block_reason2" model="mrp.workcenter.productivity.loss">
<field name="name">Setup and Adjustments</field>
- <field name="loss_type">availability</field>
+ <field name="loss_id" ref="mrp.category_availability"></field>
<field name="sequence">3</field>
</record>
<record id="block_reason4" model="mrp.workcenter.productivity.loss">
<field name="name">Reduced Speed</field>
- <field name="loss_type">performance</field>
+ <field name="loss_id" ref="mrp.category_performance"></field>
<field name="manual" eval="False"/>
<field name="sequence">5</field>
</record>
<record id="block_reason5" model="mrp.workcenter.productivity.loss">
<field name="name">Process Defect</field>
- <field name="loss_type">quality</field>
+ <field name="loss_id" ref="mrp.category_quality"></field>
<field name="sequence">6</field>
</record>
<record id="block_reason6" model="mrp.workcenter.productivity.loss">
<field name="name">Reduced Yield</field>
- <field name="loss_type">quality</field>
+ <field name="loss_id" ref="mrp.category_quality"></field>
<field name="sequence">7</field>
</record>
<record id="block_reason7" model="mrp.workcenter.productivity.loss">
<field name="name">Fully Productive Time</field>
- <field name="loss_type">productive</field>
+ <field name="loss_id" ref="mrp.category_productive"></field>
<field name="manual" eval="False"/>
<field name="sequence">0</field>
</record>
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 @@
<group>
<group>
<field name="name"/>
- <field name="loss_type"/>
- </group><group>
- <field name="manual"/>
+ <field name="loss_id" widget="selection"/>
</group>
</group>
</form>