diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index 65b3abafdb..26e2432a2c 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -240,7 +240,6 @@ def get_balance_on( cond.append("""gle.cost_center = %s """ % (frappe.db.escape(cost_center, percent=False),)) if account: - if not (frappe.flags.ignore_account_permission or ignore_account_permission): acc.check_permission("read") @@ -286,18 +285,22 @@ def get_balance_on( cond.append("""gle.company = %s """ % (frappe.db.escape(company, percent=False))) if account or (party_type and party) or account_type: - + precision = get_currency_precision() if in_account_currency: - select_field = "sum(debit_in_account_currency) - sum(credit_in_account_currency)" + select_field = ( + "sum(round(debit_in_account_currency, %s)) - sum(round(credit_in_account_currency, %s))" + ) else: - select_field = "sum(debit) - sum(credit)" + select_field = "sum(round(debit, %s)) - sum(round(credit, %s))" + bal = frappe.db.sql( """ SELECT {0} FROM `tabGL Entry` gle WHERE {1}""".format( select_field, " and ".join(cond) - ) + ), + (precision, precision), )[0][0] # if bal is None, return 0 return flt(bal)