analytic account: the analytic account chart is now quicker and show also debit and credit

bzr revid: bch-9319300eff9f4902fb0c9d978ef4de59a3fbc995
This commit is contained in:
bch 2007-05-03 13:56:50 +00:00
parent 0095f89aef
commit b1a4247410
2 changed files with 11 additions and 23 deletions

View File

@ -43,33 +43,21 @@ class account_analytic_account(osv.osv):
def _credit_calc(self, cr, uid, ids, name, arg, context={}):
acc_set = ",".join(map(str, ids))
cr.execute("SELECT a.id, COALESCE(SUM(l.amount),0) FROM account_analytic_account a LEFT JOIN account_analytic_line l ON (a.id=l.account_id) WHERE l.amount<0 and a.id IN (%s) GROUP BY a.id" % acc_set)
return dict(cr.fetchall())
# res = {}
# for account in self.browse(cr, uid, ids):
# node_balance = reduce(operator.add, [-line.amount for line in account.line_ids if line.amount<0], 0)
# child_balance = reduce(operator.add, [child.credit for child in account.child_ids], 0)
# res[account.id] = node_balance + child_balance
# for id in ids:
# res[id] = round(res.get(id, 0.0),2)
# return res
r= dict(cr.fetchall())
for i in ids:
r.setdefault(i,0.0)
return r
def _debit_calc(self, cr, uid, ids, name, arg, context={}):
acc_set = ",".join(map(str, ids))
cr.execute("SELECT a.id, COALESCE(SUM(l.amount),0) FROM account_analytic_account a LEFT JOIN account_analytic_line l ON (a.id=l.account_id) WHERE l.amount>0 and a.id IN (%s) GROUP BY a.id" % acc_set)
return dict(cr.fetchall())
r= dict(cr.fetchall())
for i in ids:
r.setdefault(i,0.0)
return r
# print res
# res = {}
# for account in self.browse(cr, uid, ids):
# node_balance = reduce(operator.add, [line.amount for line in account.line_ids if line.amount>0], 0)
# child_balance = reduce(operator.add, [child.debit for child in account.child_ids], 0)
# res[account.id] = node_balance + child_balance
# for id in ids:
# res[id] = round(res.get(id, 0.0),2)
# print res
def _balance_calc(self, cr, uid, ids, name, arg, context={}):
ids2 = self.search(cr, uid, [('parent_id', 'child_of', ids)])

View File

@ -33,8 +33,8 @@
<field name="partner_id" />
<field name="date" />
<field name="company_currency_id"/>
<!-- <field name="debit" /> -->
<!-- <field name="credit" /> -->
<field name="debit" />
<field name="credit" />
<field name="balance" />
<field name="quantity" />
</tree>