Initial commit maintenance_equipment_charge for 11.0

This commit is contained in:
Jared Kipe
2018-04-24 11:49:47 -07:00
committed by Bhoomi Vaishnani
parent b52ffb097d
commit 1622c5e15c
8 changed files with 282 additions and 0 deletions

View File

@@ -0,0 +1 @@
from . import models

View File

@@ -0,0 +1,23 @@
{
'name': 'Equipment Charges',
'version': '11.0.1.0.0',
'author': 'Hibou Corp. <hello@hibou.io>',
'category': 'Human Resources',
'summary': 'Record related equipment charges.',
'description': """
Equipment Charges
=================
Record related equipment charges, for example fuel charges.
""",
'website': 'https://www.odoo.com/page/manufacturing',
'depends': [
'hr_maintenance',
],
'data': [
'security/ir.model.access.csv',
'views/maintenance_views.xml',
],
'installable': True,
'auto_install': False,
}

View File

@@ -0,0 +1 @@
from . import maintenance

View File

@@ -0,0 +1,46 @@
from odoo import api, fields, models
class EquipmentChargeType(models.Model):
_name = 'maintenance.equipment.charge.type'
name = fields.Char(string='Charge Type')
uom_id = fields.Many2one('product.uom', string='Charge UOM')
class Equipment(models.Model):
_inherit = 'maintenance.equipment'
charge_ids = fields.One2many('maintenance.equipment.charge', 'equipment_id', 'Charges', copy=False)
charge_count = fields.Integer(string='Charges', compute='_compute_charge_count')
@api.multi
def _compute_charge_count(self):
for equipment in self:
self.charge_count = len(equipment.charge_ids)
def action_open_charges(self):
self.ensure_one()
action = self.env.ref('maintenance_equipment_charge.maintenance_charge_action_reports').read()[0]
action['domain'] = [('equipment_id', '=', self.id)]
action['context'] = {
'default_equipment_id': self.id,
'default_employee_id': self.employee_id.id,
'default_department_id': self.department_id.id,
}
return action
class EquipmentCharge(models.Model):
_name = 'maintenance.equipment.charge'
_order = 'date DESC'
name = fields.Char(string='Description')
date = fields.Date(string='Date', default=fields.Date.today, index=True)
equipment_id = fields.Many2one('maintenance.equipment', copy=False)
type_id = fields.Many2one('maintenance.equipment.charge.type', string='Type')
employee_id = fields.Many2one('hr.employee', string='Employee')
department_id = fields.Many2one('hr.department', string='Department')
qty = fields.Float(string='Quantity', default=1.0)
uom_id = fields.Many2one('product.uom', related='type_id.uom_id')
amount = fields.Float(string='Amount')

View File

@@ -0,0 +1,5 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"manage_maintenance_equipment_charge","manage maintenance.equipment.charge","model_maintenance_equipment_charge","stock.group_stock_manager",1,1,1,1
"access_maintenance_equipment_charge","access maintenance.equipment.charge","model_maintenance_equipment_charge","base.group_user",1,0,1,0
"manage_maintenance_equipment_charge_type","manage maintenance.equipment.charge.type","model_maintenance_equipment_charge_type","stock.group_stock_manager",1,1,1,1
"access_maintenance_equipment_charge_type","access maintenance.equipment.charge.type","model_maintenance_equipment_charge_type","base.group_user",1,0,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 manage_maintenance_equipment_charge manage maintenance.equipment.charge model_maintenance_equipment_charge stock.group_stock_manager 1 1 1 1
3 access_maintenance_equipment_charge access maintenance.equipment.charge model_maintenance_equipment_charge base.group_user 1 0 1 0
4 manage_maintenance_equipment_charge_type manage maintenance.equipment.charge.type model_maintenance_equipment_charge_type stock.group_stock_manager 1 1 1 1
5 access_maintenance_equipment_charge_type access maintenance.equipment.charge.type model_maintenance_equipment_charge_type base.group_user 1 0 1 0

View File

@@ -0,0 +1 @@
from . import test_maintenance_usage

View File

@@ -0,0 +1,21 @@
from odoo.tests import common
class TestMaintenanceCharge(common.TransactionCase):
"""Tests for charges
"""
def test_create(self):
test_charge = 21.0
equipment = self.env['maintenance.equipment'].create({
'name': 'Monitor',
})
self.assertFalse(equipment.charge_ids)
self.env['maintenance.equipment.charge'].create({
'equipment_id': equipment.id,
'name': 'test',
'amount': test_charge,
})
self.assertTrue(equipment.charge_ids)
self.assertAlmostEqual(equipment.charge_ids[0].amount, test_charge)

View File

@@ -0,0 +1,184 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record model="maintenance.equipment.charge.type" id="equipment_charge_other">
<field name="name">Other</field>
</record>
<record model="ir.ui.view" id="hr_equipment_view_form_inherited">
<field name="name">equipment.form.inherited</field>
<field name="model">maintenance.equipment</field>
<field name="inherit_id" ref="maintenance.hr_equipment_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='button_box']" position="inside">
<button name="action_open_charges"
type="object"
class="oe_stat_button"
icon="fa-dollar"
help="show the usage charges for equipment" >
<field string="Charges" name="charge_count" widget="statinfo"/>
</button>
</xpath>
</field>
</record>
<!-- maintenance.equipment.charge : views -->
<record id="hr_equipment_charge_view_search" model="ir.ui.view">
<field name="name">equipment.charge.search</field>
<field name="model">maintenance.equipment.charge</field>
<field name="arch" type="xml">
<search string="Equipment Charge Search">
<field name="equipment_id"/>
<field name="employee_id"/>
<field name="department_id"/>
<field name="type_id"/>
<separator/>
<group expand='0' string='Group by...'>
<filter string='Charge Type' domain="[]" context="{'group_by': 'type_id'}"/>
<filter string='Equipment' domain="[]" context="{'group_by': 'equipment_id'}"/>
<filter string='Employee' domain="[]" context="{'group_by': 'employee_id'}"/>
<filter string='Department' domain="[]" context="{'group_by': 'department_id'}"/>
</group>
</search>
</field>
</record>
<record id="hr_equipment_charge_view_form" model="ir.ui.view">
<field name="name">equipment.charge.form</field>
<field name="model">maintenance.equipment.charge</field>
<field name="arch" type="xml">
<form string="Equipment Charge Form">
<header/>
<sheet>
<group>
<group>
<field name="date"/>
<field name="equipment_id"/>
<field name="employee_id"/>
<field name="department_id"/>
</group>
<group name="charge_info" string="Charge">
<field name="type_id" widget="selection"/>
<label for="qty"/>
<div class="o_row" name="qty">
<field name="qty" nolabel="1"/>
<field name="uom_id" nolabel="1" readonly="1"/>
</div>
<field name="amount"/>
<field name="name"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="hr_equipment_charge_view_tree" model="ir.ui.view">
<field name="name">equipment.charge.tree</field>
<field name="model">maintenance.equipment.charge</field>
<field name="arch" type="xml">
<tree string="Equipment Charge">
<field name="date"/>
<field name="type_id"/>
<field name="equipment_id"/>
<field name="employee_id"/>
<field name="department_id"/>
<field name="qty"/>
<field name="amount"/>
</tree>
</field>
</record>
<record id="hr_equipment_charge_view_graph" model="ir.ui.view">
<field name="name">equipment.charge.graph</field>
<field name="model">maintenance.equipment.charge</field>
<field name="arch" type="xml">
<graph string="Equipment Charge">
<field name="type_id"/>
<field name="equipment_id"/>
<field name="amount"/>
</graph>
</field>
</record>
<record id="hr_equipment_charge_view_pivot" model="ir.ui.view">
<field name="name">equipment.charge.pivot</field>
<field name="model">maintenance.equipment.charge</field>
<field name="arch" type="xml">
<pivot string="Equipment Charge">
<field name="type_id"/>
<field name="equipment_id"/>
<field name="amount"/>
</pivot>
</field>
</record>
<record id="hr_equipment_charge_view_calendar" model="ir.ui.view">
<field name="name">equipment.charge.calendar</field>
<field name="model">maintenance.equipment.charge</field>
<field name="arch" type="xml">
<calendar date_start="date" color="equipment_id">
<field name="equipment_id"/>
<field name="amount"/>
</calendar>
</field>
</record>
<!-- maintenance.equipment.charge : actions -->
<record id="maintenance_charge_action_reports" model="ir.actions.act_window">
<field name="name">Equipment Charges</field>
<field name="res_model">maintenance.equipment.charge</field>
<field name="view_mode">tree,form,graph,pivot,calendar</field>
<field name="help" type="html">
<p>
No charges.
</p>
</field>
</record>
<menuitem
id="maintenance_equipment_charge_reporting"
action="maintenance_charge_action_reports"
parent="maintenance.maintenance_reporting"/>
<!-- maintenance.equipment.charge.type : views -->
<record id="hr_equipment_charge_type_view_form" model="ir.ui.view">
<field name="name">equipment.charge.type.form</field>
<field name="model">maintenance.equipment.charge.type</field>
<field name="arch" type="xml">
<form string="Equipment Charge Type Form">
<header/>
<sheet>
<group>
<group>
<field name="name"/>
<field name="uom_id"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="hr_equipment_charge_type_view_tree" model="ir.ui.view">
<field name="name">equipment.charge.type.tree</field>
<field name="model">maintenance.equipment.charge.type</field>
<field name="arch" type="xml">
<tree string="Equipment Charge Type">
<field name="name"/>
<field name="uom_id"/>
</tree>
</field>
</record>
<!-- maintenance.equipment.charge.type : actions -->
<record id="maintenance_charge_type_action" model="ir.actions.act_window">
<field name="name">Equipment Charge Types</field>
<field name="res_model">maintenance.equipment.charge.type</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem
id="maintenance_equipment_charge_type"
action="maintenance_charge_type_action"
parent="maintenance.menu_maintenance_configuration"/>
</odoo>