diff --git a/addons/analytic/models/analytic_account.py b/addons/analytic/models/analytic_account.py index d6ee2b69275..ad6d3b0508f 100644 --- a/addons/analytic/models/analytic_account.py +++ b/addons/analytic/models/analytic_account.py @@ -59,6 +59,24 @@ class AccountAnalyticAccount(models.Model): _description = 'Analytic Account' _order = 'code, name asc' + @api.model + def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True): + """ + Override read_group to calculate the sum of the non-stored fields that depend on the user context + """ + res = super(AccountAnalyticAccount, self).read_group(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby, lazy=lazy) + accounts = self.env['account.analytic.account'] + for line in res: + if '__domain' in line: + accounts = self.search(line['__domain']) + if 'balance' in fields: + line['balance'] = sum(accounts.mapped('balance')) + if 'debit' in fields: + line['debit'] = sum(accounts.mapped('debit')) + if 'credit' in fields: + line['credit'] = sum(accounts.mapped('credit')) + return res + @api.multi def _compute_debit_credit_balance(self): res_currency_obj = self.env['res.currency'] diff --git a/addons/analytic/views/analytic_account_views.xml b/addons/analytic/views/analytic_account_views.xml index f5afe619774..1d7d129e7c1 100644 --- a/addons/analytic/views/analytic_account_views.xml +++ b/addons/analytic/views/analytic_account_views.xml @@ -190,9 +190,9 @@ - - - + + +