[FIX]
lp bug: https://launchpad.net/bugs/708073 fixed bzr revid: fp@tinyerp.com-20110917140000-aauewkbahflkd5ng
This commit is contained in:
parent
53296f329e
commit
80e8cb638b
|
@ -30,22 +30,22 @@ class account_analytic_account(osv.osv):
|
|||
_description = 'Analytic Account'
|
||||
|
||||
def _compute_level_tree(self, cr, uid, ids, child_ids, res, field_names, context=None):
|
||||
def recursive_computation(account_id, res):
|
||||
currency_obj = self.pool.get('res.currency')
|
||||
account = self.browse(cr, uid, account_id)
|
||||
currency_obj = self.pool.get('res.currency')
|
||||
recres = {}
|
||||
def recursive_computation(account):
|
||||
result2 = res[account.id].copy()
|
||||
for son in account.child_ids:
|
||||
res = recursive_computation(son.id, res)
|
||||
result = recursive_computation(son)
|
||||
for field in field_names:
|
||||
if account.currency_id.id == son.currency_id.id or field=='quantity':
|
||||
res[account.id][field] += res[son.id][field]
|
||||
else:
|
||||
res[account.id][field] += currency_obj.compute(cr, uid, son.currency_id.id, account.currency_id.id, res[son.id][field], context=context)
|
||||
return res
|
||||
if (account.currency_id.id != son.currency_id.id) and (field!='quantity'):
|
||||
result[field] = currency_obj.compute(cr, uid, son.currency_id.id, account.currency_id.id, result[field], context=context)
|
||||
result2[field] += result[field]
|
||||
return result2
|
||||
for account in self.browse(cr, uid, ids, context=context):
|
||||
if account.id not in child_ids:
|
||||
continue
|
||||
res = recursive_computation(account.id, res)
|
||||
return res
|
||||
recres[account.id] = recursive_computation(account)
|
||||
return recres
|
||||
|
||||
def _debit_credit_bal_qtty(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
|
|
Loading…
Reference in New Issue