fix: Opening balance in presentation currency in Trial Balance report (#36036)
diff --git a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
index a644754..6e39ee9 100644
--- a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
+++ b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
@@ -650,7 +650,7 @@
if filters and filters.get("presentation_currency") != d.default_currency:
currency_info["company"] = d.name
currency_info["company_currency"] = d.default_currency
- convert_to_presentation_currency(gl_entries, currency_info, filters.get("company"))
+ convert_to_presentation_currency(gl_entries, currency_info)
for entry in gl_entries:
if entry.account_number:
diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py
index 8a47e1c..f3a892b 100644
--- a/erpnext/accounts/report/financial_statements.py
+++ b/erpnext/accounts/report/financial_statements.py
@@ -462,7 +462,7 @@
)
if filters and filters.get("presentation_currency"):
- convert_to_presentation_currency(gl_entries, get_currency(filters), filters.get("company"))
+ convert_to_presentation_currency(gl_entries, get_currency(filters))
for entry in gl_entries:
gl_entries_by_account.setdefault(entry.account, []).append(entry)
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py
index d47e3da..d7af167 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -204,7 +204,7 @@
)
if filters.get("presentation_currency"):
- return convert_to_presentation_currency(gl_entries, currency_map, filters.get("company"))
+ return convert_to_presentation_currency(gl_entries, currency_map)
else:
return gl_entries
diff --git a/erpnext/accounts/report/trial_balance/trial_balance.py b/erpnext/accounts/report/trial_balance/trial_balance.py
index 22bebb7..d51c4c4 100644
--- a/erpnext/accounts/report/trial_balance/trial_balance.py
+++ b/erpnext/accounts/report/trial_balance/trial_balance.py
@@ -17,6 +17,7 @@
filter_out_zero_value_rows,
set_gl_entries_by_account,
)
+from erpnext.accounts.report.utils import convert_to_presentation_currency, get_currency
value_fields = (
"opening_debit",
@@ -178,8 +179,8 @@
"opening_credit": 0.0,
},
)
- opening[d.account]["opening_debit"] += flt(d.opening_debit)
- opening[d.account]["opening_credit"] += flt(d.opening_credit)
+ opening[d.account]["opening_debit"] += flt(d.debit)
+ opening[d.account]["opening_credit"] += flt(d.credit)
return opening
@@ -194,8 +195,11 @@
frappe.qb.from_(closing_balance)
.select(
closing_balance.account,
- Sum(closing_balance.debit).as_("opening_debit"),
- Sum(closing_balance.credit).as_("opening_credit"),
+ closing_balance.account_currency,
+ Sum(closing_balance.debit).as_("debit"),
+ Sum(closing_balance.credit).as_("credit"),
+ Sum(closing_balance.debit_in_account_currency).as_("debit_in_account_currency"),
+ Sum(closing_balance.credit_in_account_currency).as_("credit_in_account_currency"),
)
.where(
(closing_balance.company == filters.company)
@@ -282,6 +286,9 @@
gle = opening_balance.run(as_dict=1)
+ if filters and filters.get("presentation_currency"):
+ convert_to_presentation_currency(gle, get_currency(filters))
+
return gle
diff --git a/erpnext/accounts/report/utils.py b/erpnext/accounts/report/utils.py
index 781481b..7ea1fac 100644
--- a/erpnext/accounts/report/utils.py
+++ b/erpnext/accounts/report/utils.py
@@ -78,7 +78,7 @@
return rate
-def convert_to_presentation_currency(gl_entries, currency_info, company):
+def convert_to_presentation_currency(gl_entries, currency_info):
"""
Take a list of GL Entries and change the 'debit' and 'credit' values to currencies
in `currency_info`.
@@ -93,7 +93,6 @@
account_currencies = list(set(entry["account_currency"] for entry in gl_entries))
for entry in gl_entries:
- account = entry["account"]
debit = flt(entry["debit"])
credit = flt(entry["credit"])
debit_in_account_currency = flt(entry["debit_in_account_currency"])