diff --git a/addons/account/project/report/analytic_balance.py b/addons/account/project/report/analytic_balance.py index 780c519c1d4..3df4fd9584b 100644 --- a/addons/account/project/report/analytic_balance.py +++ b/addons/account/project/report/analytic_balance.py @@ -64,7 +64,6 @@ class account_analytic_balance(report_sxw.rml_parse): self.empty_acc = empty_acc self.read_data = [] self.get_children(self.ids) - return self.read_data def _lines_g(self, account_id, date1, date2): @@ -104,14 +103,14 @@ class account_analytic_balance(report_sxw.rml_parse): query_params = (tuple(ids), date1, date2) if option == "credit" : - self.cr.execute("SELECT -sum(amount) FROM account_analytic_line \ + self.cr.execute("SELECT COALESCE(-sum(amount),0.0) FROM account_analytic_line \ WHERE account_id IN %s AND date>=%s AND date<=%s AND amount<0",query_params) elif option == "debit" : - self.cr.execute("SELECT sum(amount) FROM account_analytic_line \ + self.cr.execute("SELECT COALESCE(sum(amount),0.0) FROM account_analytic_line \ WHERE account_id IN %s\ AND date>=%s AND date<=%s AND amount>0",query_params) elif option == "quantity" : - self.cr.execute("SELECT sum(unit_amount) FROM account_analytic_line \ + self.cr.execute("SELECT COALESCE(sum(unit_amount),0.0) FROM account_analytic_line \ WHERE account_id IN %s\ AND date>=%s AND date<=%s",query_params) return self.cr.fetchone()[0] or 0.0 @@ -132,15 +131,16 @@ class account_analytic_balance(report_sxw.rml_parse): self.acc_sum_list = ids2 else: ids2 = self.acc_sum_list - query_params = (tuple(ids2), date1, date2) + + query_params = (tuple(ids2), date1, date2) if option == "debit" : - self.cr.execute("SELECT sum(amount) FROM account_analytic_line \ + self.cr.execute("SELECT COALESCE(sum(amount),0.0) FROM account_analytic_line \ WHERE account_id IN %s AND date>=%s AND date<=%s AND amount>0",query_params) elif option == "credit" : - self.cr.execute("SELECT -sum(amount) FROM account_analytic_line \ + self.cr.execute("SELECT COALESCE(-sum(amount),0.0) FROM account_analytic_line \ WHERE account_id IN %s AND date>=%s AND date<=%s AND amount<0",query_params) elif option == "quantity" : - self.cr.execute("SELECT sum(unit_amount) FROM account_analytic_line \ + self.cr.execute("SELECT COALESCE(sum(unit_amount),0.0) FROM account_analytic_line \ WHERE account_id IN %s AND date>=%s AND date<=%s",query_params) return self.cr.fetchone()[0] or 0.0 diff --git a/addons/account/project/report/analytic_balance.rml b/addons/account/project/report/analytic_balance.rml index cdfd0869db3..bbd7e409dc0 100644 --- a/addons/account/project/report/analytic_balance.rml +++ b/addons/account/project/report/analytic_balance.rml @@ -130,7 +130,7 @@