From c279d8bbffd2a51bc77b439a834635e3815dcf91 Mon Sep 17 00:00:00 2001 From: "qdp-launchpad@tinyerp.com" <> Date: Tue, 28 Dec 2010 13:25:08 +0100 Subject: [PATCH] [FIX] account: consolidated charts are now working if children accounts don't have the same currency (doesn't belong to a company using the same currency) bzr revid: qdp-launchpad@tinyerp.com-20101228122508-p02bqdeb2et148v4 --- addons/account/account.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/account/account.py b/addons/account/account.py index 470282fadcd..dcbd356c0cc 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -285,6 +285,7 @@ class account_account(osv.osv): children_and_consolidated.reverse() brs = list(self.browse(cr, uid, children_and_consolidated, context=context)) sums = {} + currency_obj = self.pool.get('res.currency') while brs: current = brs[0] # can_compute = True @@ -299,8 +300,11 @@ class account_account(osv.osv): brs.pop(0) for fn in field_names: sums.setdefault(current.id, {})[fn] = accounts.get(current.id, {}).get(fn, 0.0) - if current.child_id: - sums[current.id][fn] += sum(sums[child.id][fn] for child in current.child_id) + for child in current.child_id: + if child.company_id.currency_id.id == current.company_id.currency_id.id: + sums[current.id][fn] += sums[child.id][fn] + else: + sums[current.id][fn] += currency_obj.compute(cr, uid, child.company_id.currency_id.id, current.company_id.currency_id.id, sums[child.id][fn], context=context) res = {} null_result = dict((fn, 0.0) for fn in field_names) for id in ids: