diff --git a/erpnext/accounts/report/trial_balance/trial_balance.js b/erpnext/accounts/report/trial_balance/trial_balance.js index 343bb7a3304086a2d466c0f3b34183913cf10558..28ae1989ae4ca18eecfebdf747e6f0f2e0ae01e6 100644 --- a/erpnext/accounts/report/trial_balance/trial_balance.js +++ b/erpnext/accounts/report/trial_balance/trial_balance.js @@ -111,6 +111,12 @@ frappe.query_reports["Trial Balance"] = { fieldtype: "Check", default: 1, }, + { + fieldname: "show_group_accounts", + label: __("Show Group Accounts"), + fieldtype: "Check", + default: 1, + }, ], formatter: erpnext.financial_statements.formatter, tree: true, diff --git a/erpnext/accounts/report/trial_balance/trial_balance.py b/erpnext/accounts/report/trial_balance/trial_balance.py index 6fe28d15d97f6a89e970e12370c7e202ed174c4f..a05208075b935036fe64014e5924ab7016c51b0e 100644 --- a/erpnext/accounts/report/trial_balance/trial_balance.py +++ b/erpnext/accounts/report/trial_balance/trial_balance.py @@ -81,7 +81,7 @@ def validate_filters(filters): def get_data(filters): accounts = frappe.db.sql( - """select name, account_number, parent_account, account_name, root_type, report_type, lft, rgt + """select name, account_number, parent_account, account_name, root_type, report_type, is_group, lft, rgt from `tabAccount` where company=%s order by lft""", filters.company, @@ -401,6 +401,7 @@ def prepare_data(accounts, filters, parent_children_map, company_currency): "from_date": filters.from_date, "to_date": filters.to_date, "currency": company_currency, + "is_group_account": d.is_group, "account_name": ( f"{d.account_number} - {d.account_name}" if d.account_number else d.account_name ), @@ -417,6 +418,10 @@ def prepare_data(accounts, filters, parent_children_map, company_currency): data.append(row) total_row = calculate_total_row(accounts, company_currency) + + if not filters.get("show_group_accounts"): + data = hide_group_accounts(data) + data.extend([{}, total_row]) return data @@ -496,3 +501,12 @@ def prepare_opening_closing(row): row[valid_col] = 0.0 else: row[reverse_col] = 0.0 + + +def hide_group_accounts(data): + non_group_accounts_data = [] + for d in data: + if not d.get("is_group_account"): + d.update(indent=0) + non_group_accounts_data.append(d) + return non_group_accounts_data