From d8afc00ab5b30160e517cbde2401dbd4063f428c Mon Sep 17 00:00:00 2001 From: Abdeali Chharchhoda Date: Wed, 20 May 2026 16:28:38 +0530 Subject: [PATCH 1/3] fix: handle separator rows in financial statement formatter (cherry picked from commit cf597361f6e5b5a34ce40e5d2ac0f3d47bdd92fa) --- erpnext/public/js/financial_statements.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/erpnext/public/js/financial_statements.js b/erpnext/public/js/financial_statements.js index 95a4dcc0d17..08962d5ca64 100644 --- a/erpnext/public/js/financial_statements.js +++ b/erpnext/public/js/financial_statements.js @@ -15,6 +15,8 @@ erpnext.financial_statements = { }, formatter: function (value, row, column, data, default_formatter, filter) { + if (erpnext.financial_statements._is_separator_row(data)) return ""; + const report_params = [value, row, column, data, default_formatter, filter]; // Growth/Margin if (erpnext.financial_statements._is_special_view(column, data)) @@ -25,6 +27,10 @@ erpnext.financial_statements = { else return erpnext.financial_statements._format_standard_report(...report_params); }, + _is_separator_row: function (data) { + return data && !data.account && !data.account_name && !data.section_name; + }, + _is_special_view: function (column, data) { if (!data) return false; const view = get_filter_value("selected_view"); From e8a6933ff344cf819300e1a9713f9534132cbbcd Mon Sep 17 00:00:00 2001 From: Abdeali Chharchhoda Date: Wed, 20 May 2026 17:15:44 +0530 Subject: [PATCH 2/3] fix: update add_total_row_account to control blank row addition (cherry picked from commit f7c744350cf6d6c349c5081053eb371d9091704c) --- .../accounts/report/cash_flow/cash_flow.py | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/report/cash_flow/cash_flow.py b/erpnext/accounts/report/cash_flow/cash_flow.py index a62867ba91c..4ed34ab8eb9 100644 --- a/erpnext/accounts/report/cash_flow/cash_flow.py +++ b/erpnext/accounts/report/cash_flow/cash_flow.py @@ -132,7 +132,14 @@ def execute(filters=None): ) net_change_in_cash = add_total_row_account( - data, data, _("Net Change in Cash"), period_list, company_currency, summary_data, filters + data, + data, + _("Net Change in Cash"), + period_list, + company_currency, + summary_data, + filters, + add_blank_row=False, ) if filters.show_opening_and_closing_balance: @@ -250,7 +257,17 @@ def get_start_date(period, accumulated_values, company): return start_date -def add_total_row_account(out, data, label, period_list, currency, summary_data, filters, consolidated=False): +def add_total_row_account( + out, + data, + label, + period_list, + currency, + summary_data, + filters, + consolidated=False, + add_blank_row=True, +): total_row = { "section_name": "'" + _("{0}").format(label) + "'", "section": "'" + _("{0}").format(label) + "'", @@ -275,7 +292,9 @@ def add_total_row_account(out, data, label, period_list, currency, summary_data, total_row["total"] += row["total"] out.append(total_row) - out.append({}) + + if add_blank_row: + out.append({}) return total_row From f657503ea3c20d0ed188bc102e7267010ca44214 Mon Sep 17 00:00:00 2001 From: Abdeali Chharchhoda Date: Wed, 20 May 2026 17:31:21 +0530 Subject: [PATCH 3/3] fix: update formatter to handle blank rows in financial statements (cherry picked from commit 814c11200adc8c0c2bfd4ff5d6e2ae55a6e67546) --- erpnext/public/js/financial_statements.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/erpnext/public/js/financial_statements.js b/erpnext/public/js/financial_statements.js index 08962d5ca64..58a8803eca0 100644 --- a/erpnext/public/js/financial_statements.js +++ b/erpnext/public/js/financial_statements.js @@ -15,7 +15,7 @@ erpnext.financial_statements = { }, formatter: function (value, row, column, data, default_formatter, filter) { - if (erpnext.financial_statements._is_separator_row(data)) return ""; + if (erpnext.financial_statements.is_blank_row(data)) return ""; const report_params = [value, row, column, data, default_formatter, filter]; // Growth/Margin @@ -27,8 +27,15 @@ erpnext.financial_statements = { else return erpnext.financial_statements._format_standard_report(...report_params); }, - _is_separator_row: function (data) { - return data && !data.account && !data.account_name && !data.section_name; + is_blank_row: function (data) { + return ( + data && + !data.account && + !data.accounts && + !data.child_accounts && + !data.account_name && + !data.section_name + ); }, _is_special_view: function (column, data) {