From 80e8cb638b733f1914aac6e42a50dae58c2cc807 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sat, 17 Sep 2011 16:00:00 +0200 Subject: [FIX] lp bug: https://launchpad.net/bugs/708073 fixed bzr revid: fp@tinyerp.com-20110917140000-aauewkbahflkd5ng --- addons/analytic/analytic.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'addons/analytic/analytic.py') diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py index a155352adf8..d60efd20144 100644 --- a/addons/analytic/analytic.py +++ b/addons/analytic/analytic.py @@ -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 = {} -- cgit v1.2.3