fix: honour currency precision while fetching balance
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index 7d91309..2636a8d 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -237,7 +237,6 @@
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")
@@ -283,11 +282,11 @@
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 = f"sum(round(debit_in_account_currency, {precision})) - sum(round(credit_in_account_currency, {precision}))"
else:
- select_field = "sum(debit) - sum(credit)"
+ select_field = f"sum(round(debit, {precision})) - sum(round(credit, {precision}))"
bal = frappe.db.sql(
"""
SELECT {0}