Skip to content

Commit

Permalink
fix: Percentage handling in queries (#39692)
Browse files Browse the repository at this point in the history
* fix: Percentage handling in queries

* test: Account with percent sign

* chore: add test records
  • Loading branch information
deepeshgarg007 committed Feb 2, 2024
1 parent 2693fcb commit 6d87cfe
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
14 changes: 14 additions & 0 deletions erpnext/accounts/doctype/account/test_account.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import frappe
from frappe.test_runner import make_test_records
from frappe.utils import nowdate

from erpnext.accounts.doctype.account.account import (
InvalidAccountMergeError,
Expand Down Expand Up @@ -324,6 +325,19 @@ def test_validate_account_currency(self):
acc.account_currency = "USD"
self.assertRaises(frappe.ValidationError, acc.save)

def test_account_balance(self):
from erpnext.accounts.utils import get_balance_on

if not frappe.db.exists("Account", "Test Percent Account %5 - _TC"):
acc = frappe.new_doc("Account")
acc.account_name = "Test Percent Account %5"
acc.parent_account = "Tax Assets - _TC"
acc.company = "_Test Company"
acc.insert()

balance = get_balance_on(account="Test Percent Account %5 - _TC", date=nowdate())
self.assertEqual(balance, 0)


def _make_test_records(verbose=None):
from frappe.test_runner import make_test_objects
Expand Down
10 changes: 5 additions & 5 deletions erpnext/accounts/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ def get_balance_on(
)

else:
cond.append("""gle.cost_center = %s """ % (frappe.db.escape(cost_center, percent=False),))
cond.append("""gle.cost_center = %s """ % (frappe.db.escape(cost_center),))

if account:
if not (frappe.flags.ignore_account_permission or ignore_account_permission):
Expand All @@ -258,7 +258,7 @@ def get_balance_on(
if acc.account_currency == frappe.get_cached_value("Company", acc.company, "default_currency"):
in_account_currency = False
else:
cond.append("""gle.account = %s """ % (frappe.db.escape(account, percent=False),))
cond.append("""gle.account = %s """ % (frappe.db.escape(account),))

if account_type:
accounts = frappe.db.get_all(
Expand All @@ -278,11 +278,11 @@ def get_balance_on(
if party_type and party:
cond.append(
"""gle.party_type = %s and gle.party = %s """
% (frappe.db.escape(party_type), frappe.db.escape(party, percent=False))
% (frappe.db.escape(party_type), frappe.db.escape(party))
)

if company:
cond.append("""gle.company = %s """ % (frappe.db.escape(company, percent=False)))
cond.append("""gle.company = %s """ % (frappe.db.escape(company)))

if account or (party_type and party) or account_type:
precision = get_currency_precision()
Expand Down Expand Up @@ -348,7 +348,7 @@ def get_count_on(account, fieldname, date):
% (acc.lft, acc.rgt)
)
else:
cond.append("""gle.account = %s """ % (frappe.db.escape(account, percent=False),))
cond.append("""gle.account = %s """ % (frappe.db.escape(account),))

entries = frappe.db.sql(
"""
Expand Down

0 comments on commit 6d87cfe

Please sign in to comment.