From 6bd6e62c8c5219b570556243a1d1965d39b432ff Mon Sep 17 00:00:00 2001 From: vorasmit Date: Fri, 17 Apr 2026 22:27:48 +0530 Subject: [PATCH] fix: filter opening entries in first year in custom financial statement (cherry picked from commit 3c8a0664849a0972dae7d92aea0bf9181566b4b8) --- .../financial_report_engine.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/financial_report_template/financial_report_engine.py b/erpnext/accounts/doctype/financial_report_template/financial_report_engine.py index 46369b07cd9..14a12dde9dd 100644 --- a/erpnext/accounts/doctype/financial_report_template/financial_report_engine.py +++ b/erpnext/accounts/doctype/financial_report_template/financial_report_engine.py @@ -468,6 +468,7 @@ class FinancialQueryBuilder: self.periods = periods self.company = filters.get("company") self.account_meta = {} # {name: {account_name, account_number}} + self.ignore_opening_entries = False def fetch_account_balances(self, accounts: list[dict]) -> dict[str, AccountData]: """ @@ -505,6 +506,8 @@ class FinancialQueryBuilder: """ Return opening balances for *all accounts* defaulting to zero. """ + self.ignore_opening_entries = False + if frappe.get_single_value("Accounts Settings", "ignore_account_closing_balance"): return self._get_opening_balances_from_gl(accounts) @@ -526,6 +529,8 @@ class FinancialQueryBuilder: closing_data = self._get_closing_balances(accounts, closing_voucher.name) if sum(closing_data.values()) != 0.0: + # opening in current period + self.ignore_opening_entries = True return self._rebase_closing_balances(closing_data, closing_voucher.period_end_date) return self._get_opening_balances_from_gl(accounts) @@ -620,7 +625,10 @@ class FinancialQueryBuilder: .groupby(gl_table.account) ) - if not frappe.get_single_value("Accounts Settings", "ignore_is_opening_check_for_reporting"): + ignore_is_opening = frappe.get_single_value( + "Accounts Settings", "ignore_is_opening_check_for_reporting" + ) + if self.ignore_opening_entries and not ignore_is_opening: query = query.where(gl_table.is_opening == "No") # Add period-specific columns