From 5f24061dd46c931b783f8d3b1b4e7cf43007aa3c Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Wed, 30 Jul 2025 16:56:12 +0530 Subject: [PATCH 1/5] feat: add party name column in general ledger report --- .../report/general_ledger/general_ledger.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py index 8b98ee9499b..99356723bec 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.py +++ b/erpnext/accounts/report/general_ledger/general_ledger.py @@ -711,6 +711,19 @@ def get_columns(filters): {"label": _("Party"), "fieldname": "party", "width": 100}, ] + supplier_master_name = frappe.db.get_single_value("Buying Settings", "supp_master_name") + customer_master_name = frappe.db.get_single_value("Selling Settings", "cust_master_name") + + if supplier_master_name != "Supplier Name" or customer_master_name != "Customer Name": + columns.append( + { + "label": _("Party Name"), + "fieldname": "party_name", + "fieldtype": "Data", + "width": 150, + } + ) + if filters.get("include_dimensions"): columns.append({"label": _("Project"), "options": "Project", "fieldname": "project", "width": 100}) From 3d94a7cf2c189175694a50ab0c6a5f3da42f031a Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Wed, 30 Jul 2025 16:58:38 +0530 Subject: [PATCH 2/5] feat: add party name in GL entries --- .../report/general_ledger/general_ledger.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py index 99356723bec..39f0ce63881 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.py +++ b/erpnext/accounts/report/general_ledger/general_ledger.py @@ -209,6 +209,12 @@ def get_gl_entries(filters, accounting_dimensions): as_dict=1, ) + party_name_map = get_party_name_map() + + for gl_entry in gl_entries: + if gl_entry.party_type and gl_entry.party: + gl_entry.party_name = party_name_map.get(gl_entry.party_type, {}).get(gl_entry.party) + if filters.get("presentation_currency"): return convert_to_presentation_currency(gl_entries, currency_map, filters) else: @@ -341,6 +347,17 @@ def get_conditions(filters): return "and {}".format(" and ".join(conditions)) if conditions else "" +def get_party_name_map(): + party_map = {} + + customers = frappe.get_all("Customer", fields=["name", "customer_name"]) + party_map["Customer"] = {c.name: c.customer_name for c in customers} + + suppliers = frappe.get_all("Supplier", fields=["name", "supplier_name"]) + party_map["Supplier"] = {s.name: s.supplier_name for s in suppliers} + return party_map + + def get_accounts_with_children(accounts): if not isinstance(accounts, list): accounts = [d.strip() for d in accounts.strip().split(",") if d] From 9dee411eb563f52b40dcaffa05199c7998b6a8a7 Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Wed, 30 Jul 2025 17:00:33 +0530 Subject: [PATCH 3/5] feat: add customer name column in gross profit report --- .../report/gross_profit/gross_profit.py | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py index fe17924d527..188e97ff3c0 100644 --- a/erpnext/accounts/report/gross_profit/gross_profit.py +++ b/erpnext/accounts/report/gross_profit/gross_profit.py @@ -33,6 +33,7 @@ def execute(filters=None): "invoice_or_item", "customer", "customer_group", + "customer_name", "posting_date", "item_code", "item_name", @@ -95,6 +96,7 @@ def execute(filters=None): "customer": [ "customer", "customer_group", + "customer_name", "qty", "base_rate", "buying_rate", @@ -250,6 +252,9 @@ def get_data_when_not_grouped_by_invoice(gross_profit_data, filters, group_wise_ def get_columns(group_wise_columns, filters): columns = [] + + supplier_master_name = frappe.db.get_single_value("Buying Settings", "supp_master_name") + customer_master_name = frappe.db.get_single_value("Selling Settings", "cust_master_name") column_map = frappe._dict( { "parent": { @@ -395,6 +400,12 @@ def get_columns(group_wise_columns, filters): "options": "Customer Group", "width": 100, }, + "customer_name": { + "label": _("Customer Name"), + "fieldname": "customer_name", + "fieldtype": "Data", + "width": 150, + }, "territory": { "label": _("Territory"), "fieldname": "territory", @@ -419,6 +430,10 @@ def get_columns(group_wise_columns, filters): ) for col in group_wise_columns.get(scrub(filters.group_by)): + if col == "customer_name" and ( + supplier_master_name == "Supplier Name" and customer_master_name == "Customer Name" + ): + continue columns.append(column_map.get(col)) columns.append( @@ -440,6 +455,7 @@ def get_column_names(): "invoice_or_item": "sales_invoice", "customer": "customer", "customer_group": "customer_group", + "customer_name": "customer_name", "posting_date": "posting_date", "item_code": "item_code", "item_name": "item_name", @@ -905,7 +921,7 @@ class GrossProfitGenerator: `tabSales Invoice Item`.parenttype, `tabSales Invoice Item`.parent, `tabSales Invoice`.posting_date, `tabSales Invoice`.posting_time, `tabSales Invoice`.project, `tabSales Invoice`.update_stock, - `tabSales Invoice`.customer, `tabSales Invoice`.customer_group, + `tabSales Invoice`.customer, `tabSales Invoice`.customer_group, `tabSales Invoice`.customer_name, `tabSales Invoice`.territory, `tabSales Invoice Item`.item_code, `tabSales Invoice`.base_net_total as "invoice_base_net_total", `tabSales Invoice Item`.item_name, `tabSales Invoice Item`.description, @@ -1003,6 +1019,7 @@ class GrossProfitGenerator: "update_stock": row.update_stock, "customer": row.customer, "customer_group": row.customer_group, + "customer_name": row.customer_name, "item_code": None, "item_name": None, "description": None, @@ -1032,6 +1049,7 @@ class GrossProfitGenerator: "project": row.project, "customer": row.customer, "customer_group": row.customer_group, + "customer_name": row.customer_name, "item_code": item.item_code, "item_name": item.item_name, "description": item.description, From b0c0a86fcf060a2e029ed6aabc5d6878c365baf6 Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Wed, 30 Jul 2025 17:01:44 +0530 Subject: [PATCH 4/5] chore: code format --- erpnext/accounts/report/gross_profit/gross_profit.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py index 188e97ff3c0..add7a90b74b 100644 --- a/erpnext/accounts/report/gross_profit/gross_profit.py +++ b/erpnext/accounts/report/gross_profit/gross_profit.py @@ -255,6 +255,7 @@ def get_columns(group_wise_columns, filters): supplier_master_name = frappe.db.get_single_value("Buying Settings", "supp_master_name") customer_master_name = frappe.db.get_single_value("Selling Settings", "cust_master_name") + column_map = frappe._dict( { "parent": { From 70411ec086b2c826646ce0e66fd8533a3bc4dff6 Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Wed, 30 Jul 2025 17:59:06 +0530 Subject: [PATCH 5/5] fix: show name of the employee in general ledger report --- erpnext/accounts/report/general_ledger/general_ledger.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py index 39f0ce63881..c8fa42bc2ff 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.py +++ b/erpnext/accounts/report/general_ledger/general_ledger.py @@ -355,6 +355,9 @@ def get_party_name_map(): suppliers = frappe.get_all("Supplier", fields=["name", "supplier_name"]) party_map["Supplier"] = {s.name: s.supplier_name for s in suppliers} + + employees = frappe.get_all("Employee", fields=["name", "employee_name"]) + party_map["Employee"] = {e.name: e.employee_name for e in employees} return party_map