From 393c1d4bee5e5a76b6170583ecea5e33478c4ab6 Mon Sep 17 00:00:00 2001 From: diptanilsaha Date: Wed, 16 Jul 2025 12:46:56 +0530 Subject: [PATCH 1/3] feat: account name and number columns on trial balance report on export --- .../report/trial_balance/trial_balance.js | 1 + .../report/trial_balance/trial_balance.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/erpnext/accounts/report/trial_balance/trial_balance.js b/erpnext/accounts/report/trial_balance/trial_balance.js index e3f32ab974f..e91073a962c 100644 --- a/erpnext/accounts/report/trial_balance/trial_balance.js +++ b/erpnext/accounts/report/trial_balance/trial_balance.js @@ -122,6 +122,7 @@ frappe.query_reports["Trial Balance"] = { tree: true, name_field: "account", parent_field: "parent_account", + export_hidden_cols: true, initial_depth: 3, }; diff --git a/erpnext/accounts/report/trial_balance/trial_balance.py b/erpnext/accounts/report/trial_balance/trial_balance.py index 587a8ea95cb..df6e547eae3 100644 --- a/erpnext/accounts/report/trial_balance/trial_balance.py +++ b/erpnext/accounts/report/trial_balance/trial_balance.py @@ -402,6 +402,8 @@ def prepare_data(accounts, filters, parent_children_map, company_currency): "to_date": filters.to_date, "currency": company_currency, "is_group_account": d.is_group, + "acc_name": d.account_name, + "acc_number": d.account_number, "account_name": ( f"{d.account_number} - {d.account_name}" if d.account_number else d.account_name ), @@ -436,6 +438,20 @@ def get_columns(): "options": "Account", "width": 300, }, + { + "fieldname": "acc_name", + "label": _("Account Name"), + "fieldtype": "Data", + "hidden": 1, + "width": 250, + }, + { + "fieldname": "acc_number", + "label": _("Account Number"), + "fieldtype": "Data", + "hidden": 1, + "width": 120, + }, { "fieldname": "currency", "label": _("Currency"), From 6b98323806b53895145d98e8c70887c754ac99a8 Mon Sep 17 00:00:00 2001 From: diptanilsaha Date: Wed, 16 Jul 2025 13:22:31 +0530 Subject: [PATCH 2/3] feat: account name and number columns on financial statement reports on export --- .../report/balance_sheet/balance_sheet.js | 2 ++ .../accounts/report/financial_statements.py | 21 +++++++++++++++++++ .../profit_and_loss_statement.js | 2 ++ 3 files changed, 25 insertions(+) diff --git a/erpnext/accounts/report/balance_sheet/balance_sheet.js b/erpnext/accounts/report/balance_sheet/balance_sheet.js index 0863c68009a..d3a0006e6f7 100644 --- a/erpnext/accounts/report/balance_sheet/balance_sheet.js +++ b/erpnext/accounts/report/balance_sheet/balance_sheet.js @@ -30,3 +30,5 @@ frappe.query_reports["Balance Sheet"]["filters"].push({ fieldtype: "Check", default: 1, }); + +frappe.query_reports["Balance Sheet"]["export_hidden_cols"] = true; diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py index 23f1d48392f..ba6c9887e11 100644 --- a/erpnext/accounts/report/financial_statements.py +++ b/erpnext/accounts/report/financial_statements.py @@ -295,6 +295,8 @@ def prepare_data(accounts, balance_must_be, period_list, company_currency, accum "account_name": ( f"{_(d.account_number)} - {_(d.account_name)}" if d.account_number else _(d.account_name) ), + "acc_name": d.account_name, + "acc_number": d.account_number, } ) for period in period_list: @@ -650,6 +652,25 @@ def get_columns(periodicity, period_list, accumulated_values=1, company=None, ca "width": 300, } ] + if not cash_flow: + columns.extend( + [ + { + "fieldname": "acc_name", + "label": _("Account Name"), + "fieldtype": "Data", + "width": 250, + "hidden": 1, + }, + { + "fieldname": "acc_number", + "label": _("Account Number"), + "fieldtype": "Data", + "width": 120, + "hidden": 1, + }, + ] + ) if company: columns.append( { diff --git a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js index 98c6656ca3f..832aebe0f10 100644 --- a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js +++ b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js @@ -31,3 +31,5 @@ frappe.query_reports["Profit and Loss Statement"]["filters"].push({ fieldtype: "Check", default: 1, }); + +frappe.query_reports["Profit and Loss Statement"]["export_hidden_cols"] = true; From 79f73ccca1b786e669e93bbfa0a3a555936e2707 Mon Sep 17 00:00:00 2001 From: diptanilsaha Date: Wed, 16 Jul 2025 14:52:38 +0530 Subject: [PATCH 3/3] test: fixed test_profit_and_loss_output_and_summary for new columns --- .../test_profit_and_loss_statement.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/report/profit_and_loss_statement/test_profit_and_loss_statement.py b/erpnext/accounts/report/profit_and_loss_statement/test_profit_and_loss_statement.py index 038f78ca2f3..4f1a08370a4 100644 --- a/erpnext/accounts/report/profit_and_loss_statement/test_profit_and_loss_statement.py +++ b/erpnext/accounts/report/profit_and_loss_statement/test_profit_and_loss_statement.py @@ -142,7 +142,7 @@ class TestProfitAndLossStatement(AccountsTestMixin, IntegrationTestCase): accumulated_values=False, ) result = execute(filters) - columns = [result[0][2], result[0][3]] + columns = [result[0][4], result[0][5]] expected = { "account": income_acc, columns[0].get("fieldname"): 450.0, @@ -163,7 +163,7 @@ class TestProfitAndLossStatement(AccountsTestMixin, IntegrationTestCase): columns[1].get("fieldname"): 570.0, } result = execute(filters) - columns = [result[0][2], result[0][3]] + columns = [result[0][4], result[0][5]] actual = [x for x in result[1] if x.get("account") == income_acc] self.assertEqual(len(actual), 1) actual = actual[0]