Skip to content

Commit

Permalink
Primary Company
Browse files Browse the repository at this point in the history
Multi companies now driven and controlled by a primary company
  • Loading branch information
Richard deMeester authored and sbidoul committed Oct 12, 2017
1 parent be0f1b2 commit 92b0bea
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 12 deletions.
1 change: 1 addition & 0 deletions mis_builder/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ Contributors
* Martronic SA <info@martronic.ch>
* nicomacr <nmr@adhoc.com.ar>
* Juan Jose Scarafia <jjs@adhoc.com.ar>
* Richard deMeester <richard@willowit.com.au>

Maintainer
----------
Expand Down
30 changes: 26 additions & 4 deletions mis_builder/models/mis_report_instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -338,10 +338,10 @@ def _compute_pivot_date(self):
record.pivot_date = fields.Date.context_today(record)

@api.model
def _default_company_ids(self):
def _default_company_id(self):
default_company_id = self.env['res.company'].\
_company_default_get('mis.report.instance').id
return [(6, 0, [default_company_id])]
return default_company_id

_name = 'mis.report.instance'

Expand All @@ -367,11 +367,22 @@ def _default_company_ids(self):
string='Target Moves',
required=True,
default='posted')
company_id = fields.Many2one(
comodel_name='res.company',
string='Company',
default=_default_company_id,
required=True,
)
multi_company = fields.Boolean(
string='Multiple',
help="Check if you wish to specify "
"children companies to be searched for data.",
default=False,
)
company_ids = fields.Many2many(
comodel_name='res.company',
string='Companies',
help="Select companies for which data will be searched.",
default=_default_company_ids,
help="Select companies for which data will be searched.",
required=True,
)
currency_id = fields.Many2one(
Expand All @@ -392,6 +403,17 @@ def _default_company_ids(self):
date_to = fields.Date(string="To")
temporary = fields.Boolean(default=False)

@api.onchange('company_id', 'multi_company')
def _onchange_company(self):
if self.company_id and self.multi_company:
self.company_ids = self.env['res.company'].search(
['|', ('id', '=', self.company_id.id),
('parent_id', 'child_of', self.company_id.id)
]
)
else:
self.company_ids = self.company_id

@api.multi
def save_report(self):
self.ensure_one()
Expand Down
12 changes: 6 additions & 6 deletions mis_builder/security/mis_builder_security.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>

<record id="mis_builder_multi_company_rule" model="ir.rule">
<field name="name">Mis Builder multi company</field>
<field name="model_id" ref="model_mis_report_instance"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="mis_builder_multi_company_rule" model="ir.rule">
<field name="name">Mis Report Instance multi company</field>
<field name="model_id" ref="model_mis_report_instance"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>

</odoo>
1 change: 1 addition & 0 deletions mis_builder/tests/test_mis_report_instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ def setUp(self):
self.report_instance = self.env['mis.report.instance'].create(dict(
name='test instance',
report_id=self.report.id,
company_id=self.env.ref('base.main_company').id,
company_ids=[(6, 0, [self.env.ref('base.main_company').id])],
period_ids=[(0, 0, dict(
name='p1',
Expand Down
9 changes: 7 additions & 2 deletions mis_builder/views/mis_report_instance.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@
<button type="object" name="export_xls" string="Export" icon="fa-download" />
<field name="name"/>
<field name="report_id" string="Template"/>
<field name="company_ids" groups="base.group_multi_company" widget="many2many_tags"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="multi_company" groups="base.group_multi_company"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="target_move"/>
<field name="pivot_date"/>
Expand Down Expand Up @@ -64,7 +65,11 @@
<group>
<group>
<field name="report_id" string="Template"/>
<field name="company_ids" groups="base.group_multi_company" widget="many2many_tags"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="multi_company" groups="base.group_multi_company"/>
<field name="company_ids" groups="base.group_multi_company" widget="many2many_tags"
domain="['|', ('id', '=', company_id), ('parent_id', 'child_of', company_id)]"
attrs="{'invisible': [('multi_company', '=', False)]}"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="target_move" widget="radio"/>
<field name="landscape_pdf"/>
Expand Down

0 comments on commit 92b0bea

Please sign in to comment.