[ADD] agreement_mrp

This commit is contained in:
Sandip Mangukiya
2018-12-26 09:00:35 -08:00
committed by Maxime Chambreuil
parent 19ab42e585
commit 089dbda9b3
17 changed files with 191 additions and 0 deletions

View File

@@ -9,3 +9,5 @@ class ResConfigSettings(models.TransientModel):
module_agreement_maintenance = fields.Boolean(
string='Manage maintenance agreements and contracts')
module_agreement_mrp = fields.Boolean(
string='Link your manufacturing orders to an agreement.')

View File

@@ -46,6 +46,19 @@
</div>
</div>
</div>
<div class="row mt16 o_settings_container">
<div class="col-xs-12 col-md-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="module_agreement_mrp"/>
</div>
<div class="o_setting_right_pane">
<label string="MRP"/>
<div class="text-muted">
Link your manufacturing orders to an agreement
</div>
</div>
</div>
</div>
</div>
</xpath>
</field>

21
agreement_mrp/README.rst Normal file
View File

@@ -0,0 +1,21 @@
**This file is going to be generated by oca-gen-addon-readme.**
*Manual changes will be overwritten.*
Please provide content in the ``readme`` directory:
* **DESCRIPTION.rst** (required)
* INSTALL.rst (optional)
* CONFIGURE.rst (optional)
* **USAGE.rst** (optional, highly recommended)
* DEVELOP.rst (optional)
* ROADMAP.rst (optional)
* HISTORY.rst (optional, recommended)
* **CONTRIBUTORS.rst** (optional, highly recommended)
* CREDITS.rst (optional)
Content of this README will also be drawn from the addon manifest,
from keys such as name, authors, maintainers, development_status,
and license.
A good, one sentence summary in the manifest is also highly recommended.

View File

@@ -0,0 +1,4 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import models

View File

@@ -0,0 +1,27 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
'name': 'Agreement - MRP',
'summary': 'Link manufacturing orders to an agreement',
'version': '11.0.0.0.1',
'category': 'Contract',
'author': 'Open Source Integrators, '
'Odoo Community Association (OCA)',
'website': 'https://github.com/OCA/contract',
'depends': [
'agreement',
'mrp',
],
'data': [
'views/agreement_view.xml',
'views/mrp_view.xml',
],
'installable': True,
'license': 'AGPL-3',
'development_status': 'Beta',
'maintainers': [
'smangukiya',
'max3903',
],
}

View File

@@ -0,0 +1,7 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import (
mrp,
agreement,
)

View File

@@ -0,0 +1,20 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class Agreement(models.Model):
_inherit = "agreement"
mo_count = fields.Integer('# MOs', compute='_compute_mo_count')
@api.multi
def _compute_mo_count(self):
data = self.env['mrp.production'].read_group(
[('agreement_id', 'in', self.ids)],
['agreement_id'], ['agreement_id'])
count_data = dict((item['agreement_id'][0],
item['agreement_id_count']) for item in data)
for agreement in self:
agreement.mo_count = count_data.get(agreement.id, 0)

View File

@@ -0,0 +1,12 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class MRPProduction(models.Model):
_inherit = "mrp.production"
agreement_id = fields.Many2one('agreement', 'Agreement')
serviceprofile_id = fields.Many2one('agreement.serviceprofile',
'Service Profile')

View File

@@ -0,0 +1 @@
* Sandip Mangukiya <smangukiya@opensourceintegrators.com>

View File

@@ -0,0 +1,3 @@
The development of this module has been financially supported by:
* Open Source Integrators <https://opensourceintegrators.com>

View File

@@ -0,0 +1,6 @@
Odoo Agreement App does not provide an easy way to access manufacturing orders
related to an agreement. Some organizations needs to have a quick access to the
production orders to track the performance of an agreement.
This module allows you to link a manufacturing order to an agreement and
adds a smart button on the agreement to look at the list of related MOs.

View File

@@ -0,0 +1,5 @@
To install Field Service and have the mapping features,
you need to install agreement and mrp
Please refer to the installation instructions available at:
https://github.com/OCA/contract/agreement_mrp

View File

@@ -0,0 +1,2 @@
The roadmap of the Field Service application is documented on
`Github <https://github.com/OCA/contract/issues/221>`_.

View File

@@ -0,0 +1,6 @@
To use this module, you need to:
* Go to Manufacturing > Manufacturing Orders
* Select or create a manufacturing order and set the agreement
* Go to Agreement > Agreements
* Open the previous agreement and click on the smart button "Manufacturing Orders" to see the list of related MO

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="ir.actions.act_window" id="action_mrp_production_agreement_specific">
<field name="name">Manufacture Orders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.production</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('agreement_id', '=', active_id)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Create MOs
</p>
</field>
</record>
<record id="partner_agreement_form_view" model="ir.ui.view">
<field name="name">agreement.form.mrp</field>
<field name="model">agreement</field>
<field name="inherit_id" ref="agreement.partner_agreement_form_view"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='button_box']" position="inside">
<button name="%(action_mrp_production_agreement_specific)d" type="action" attrs="{'invisible': [('mo_count', '=', 0)]}" class="oe_stat_button" icon="fa-wrench">
<div class="o_field_widget o_stat_info">
<span class="o_stat_value"><field name="mo_count" widget="statinfo" nolabel="1"/></span>
<span class="o_stat_text">MOs</span>
</div>
</button>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="mrp_production_form_view_agreement" model="ir.ui.view">
<field name="name">mrp.production.form.agreement</field>
<field name="model">mrp.production</field>
<field name="inherit_id" ref="mrp.mrp_production_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='bom_id']" position="after">
<field name="agreement_id"/>
<field name="serviceprofile_id" domain="[('agreement_id', '=', agreement_id)]"/>
</xpath>
</field>
</record>
<!-- Inherit mrp production search view-->
<record id="view_mrp_production_filter_agreement" model="ir.ui.view">
<field name="name">mrp.production.select.agreement</field>
<field name="model">mrp.production</field>
<field name="inherit_id" ref="mrp.view_mrp_production_filter"/>
<field name="arch" type="xml">
<xpath expr="//group" position="inside">
<filter string="Service Profile" domain="[]" context="{'group_by':'serviceprofile_id'}"/>
</xpath>
</field>
</record>
</odoo>