[FIX] report_intrastat: multi-company rules.

The intrastat report did not take care about
the multi-company concept.

In an multi-company environment, lines issued from
invoices in different company
(without a parent-children relationship)
were all displayed in this report.

opw-643685
This commit is contained in:
Denis Ledoux
2015-07-01 13:49:10 +02:00
parent 31027d6096
commit f59f9e7bf8
3 changed files with 16 additions and 2 deletions
+1
View File
@@ -16,6 +16,7 @@ European Union.""",
'depends': ['base', 'product', 'stock', 'sale', 'purchase'],
'data': [
'security/ir.model.access.csv',
'security/report_intrastat_security.xml',
'report_intrastat_view.xml',
'intrastat_report.xml',
'report_intrastat_data.xml',
+4 -2
View File
@@ -53,6 +53,7 @@ class report_intrastat(osv.osv):
'value': fields.float('Value', readonly=True, digits=0),
'type': fields.selection([('import', 'Import'), ('export', 'Export')], 'Type'),
'currency_id': fields.many2one('res.currency', "Currency", readonly=True),
'company_id': fields.many2one('res.company', "Company", readonly=True),
}
def init(self, cr):
drop_view_if_exists(cr, 'report_intrastat')
@@ -82,7 +83,8 @@ class report_intrastat(osv.osv):
case when inv.type in ('out_invoice','in_refund')
then 'export'
else 'import'
end as type
end as type,
inv.company_id as company_id
from
account_invoice inv
left join account_invoice_line inv_line on inv_line.invoice_id=inv.id
@@ -99,5 +101,5 @@ class report_intrastat(osv.osv):
inv.state in ('open','paid')
and inv_line.product_id is not null
and inv_country.intrastat=true
group by to_char(inv.create_date, 'YYYY'), to_char(inv.create_date, 'MM'),intrastat.id,inv.type,pt.intrastat_id, inv_country.code,inv.number, inv.currency_id
group by to_char(inv.create_date, 'YYYY'), to_char(inv.create_date, 'MM'),intrastat.id,inv.type,pt.intrastat_id, inv_country.code,inv.number, inv.currency_id, inv.company_id
)""")
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="invoice_analysis_comp_rule" model="ir.rule">
<field name="name">Intrastat multi-company</field>
<field name="model_id" ref="model_report_intrastat"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data>
</openerp>