REPORT_INTRASTAT: Add currency

bzr revid: ced-b6a03c3a3642e8b54b1ef989a70013328d722a7e
This commit is contained in:
ced 2007-01-20 14:03:39 +00:00
parent 95c60d66ee
commit f80ff1a22b
2 changed files with 21 additions and 7 deletions

View File

@ -67,7 +67,8 @@ class report_intrastat(osv.osv):
'intrastat_id': fields.many2one('report.intrastat.code', 'Intrastat code', readonly=True),
'weight': fields.float('Weight', readonly=True),
'value': fields.float('Value', readonly=True),
'type': fields.selection([('import', 'Import'), ('export', 'Export')], 'Type')
'type': fields.selection([('import', 'Import'), ('export', 'Export')], 'Type'),
'currency_id': fields.many2one('res.currency', "Currency", readonly=True),
}
def init(self, cr):
cr.execute("""
@ -76,7 +77,7 @@ class report_intrastat(osv.osv):
substring(m.create_date for 7)||'-01' as name,
min(m.id) as id,
pt.intrastat_id as intrastat_id,
case when l.usage in ('supplier', 'customer') then pc.code else c.code end as code,
case when l.usage in ('supplier', 'customer') then upper(pc.code) else upper(c.code) end as code,
sum(case when pol.price_unit is not null
then pol.price_unit * m.product_qty
else
@ -86,7 +87,11 @@ class report_intrastat(osv.osv):
end
end) as value,
sum(pt.weight_net * m.product_qty) as weight,
case when l.usage in ('supplier', 'customer') then 'import' else 'export' end as type
case when l.usage in ('supplier', 'customer') then 'import' else 'export' end as type,
case when ppl.currency_id is not null
then ppl.currency_id
else spl.currency_id
end as currency_id
from
stock_move m
left join (product_template pt
@ -102,14 +107,22 @@ class report_intrastat(osv.osv):
on (sp.id = m.picking_id)
left join stock_location l on (l.id = m.location_id)
left join stock_location dl on (dl.id = m.location_dest_id)
left join purchase_order_line pol on (pol.id = m.purchase_line_id)
left join sale_order_line sol on (sol.id = m.sale_line_id)
left join (purchase_order_line pol
left join (purchase_order po
left join product_pricelist ppl on (ppl.id = po.pricelist_id))
on (po.id = pol.order_id))
on (pol.id = m.purchase_line_id)
left join (sale_order_line sol
left join (sale_order so
left join product_pricelist spl on (spl.id = so.pricelist_id))
on (so.id = sol.order_id))
on (sol.id = m.sale_line_id)
where
m.state != 'draft'
and ((l.usage in ('supplier', 'customer') and dl.usage not in ('supplier', 'customer'))
or (dl.usage in ('supplier', 'customer') and l.usage not in ('supplier', 'customer')))
and (c.intrastat is not null or pc.intrastat is not null)
group by substring(m.create_date for 7), pt.intrastat_id, c.code, pc.code, l.usage, dl.usage
)""")
group by substring(m.create_date for 7), pt.intrastat_id, c.code, pc.code, l.usage, dl.usage, ppl.currency_id, spl.currency_id
)""")
report_intrastat()

View File

@ -81,6 +81,7 @@
<field name="intrastat_id"/>
<field name="weight"/>
<field name="value"/>
<field name="currency_id"/>
<field name="type"/>
</tree>
</field>