[IMP]: Improve SQL report for Invoice by adding sum Residual and Delay To Pay fields.

bzr revid: rch_open_erp-20100429114649-o46vjjrf11y4ulyx
This commit is contained in:
rch (Open ERP)
2010-04-29 17:16:49 +05:30
parent ab94bf1e5f
commit 889d4d7ebc
2 changed files with 14 additions and 3 deletions
@@ -65,7 +65,9 @@ class account_invoice_report(osv.osv):
'address_contact_id': fields.many2one('res.partner.address', 'Contact Address', readonly=True),
'address_invoice_id': fields.many2one('res.partner.address', 'Invoice Address', readonly=True),
'account_id': fields.many2one('account.account', 'Account',readonly=True),
'partner_bank': fields.many2one('res.partner.bank', 'Bank Account',readonly=True)
'partner_bank': fields.many2one('res.partner.bank', 'Bank Account',readonly=True),
'residual':fields.float('Total Residual', readonly=True),
'delay_to_pay':fields.float('Avg. Delay To Pay', readonly=True, group_operator="avg"),
}
_order = 'date desc'
def init(self, cr):
@@ -97,12 +99,19 @@ class account_invoice_report(osv.osv):
s.address_contact_id as address_contact_id,
s.address_invoice_id as address_invoice_id,
s.account_id as account_id,
s.partner_bank as partner_bank
s.partner_bank as partner_bank,
sum(s.residual) as residual,
case when s.state != 'paid' then null else
extract(epoch from avg(am.date_created-l.create_date))/(24*60*60)::decimal(16,2)
end as delay_to_pay
from
account_invoice_line l
left join
account_invoice s on (s.id=l.invoice_id)
left join product_uom u on (u.id=l.uos_id)
left join product_uom u on (u.id=l.uos_id),
account_move_line am left join account_invoice i on (i.move_id=am.move_id)
where
am.account_id=i.account_id
group by
s.type,
s.date_invoice,
@@ -32,6 +32,8 @@
<field name="address_invoice_id" invisible="1"/>
<field name="account_id" invisible="1"/>
<field name="partner_bank" invisible="1"/>
<field name="residual" sum="Total Residual"/>
<field name="delay_to_pay" avg="Avg. Delay To Pay"/>
</tree>
</field>
</record>