Merge pull request #55698 from frappe/mergify/bp/version-16-hotfix/pr-55101

fix: handle blank rows in financial statement formatter (backport #55101)
This commit is contained in:
Nabin Hait
2026-06-07 22:55:44 +05:30
committed by GitHub
2 changed files with 35 additions and 3 deletions

View File

@@ -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

View File

@@ -15,6 +15,8 @@ erpnext.financial_statements = {
},
formatter: function (value, row, column, data, default_formatter, filter) {
if (erpnext.financial_statements.is_blank_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,17 @@ erpnext.financial_statements = {
else return erpnext.financial_statements._format_standard_report(...report_params);
},
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) {
if (!data) return false;
const view = get_filter_value("selected_view");