fix: add customer name and supplier name columns (#37557)

fix: add customer name and supplier name columns
diff --git a/erpnext/selling/report/address_and_contacts/address_and_contacts.py b/erpnext/selling/report/address_and_contacts/address_and_contacts.py
index 4542bdf..0a29d43 100644
--- a/erpnext/selling/report/address_and_contacts/address_and_contacts.py
+++ b/erpnext/selling/report/address_and_contacts/address_and_contacts.py
@@ -26,7 +26,7 @@
 def get_columns(filters):
 	party_type = filters.get("party_type")
 	party_type_value = get_party_group(party_type)
-	return [
+	columns = [
 		"{party_type}:Link/{party_type}".format(party_type=party_type),
 		"{party_value_type}::150".format(party_value_type=frappe.unscrub(str(party_type_value))),
 		"Address Line 1",
@@ -43,6 +43,15 @@
 		"Email Id",
 		"Is Primary Contact:Check",
 	]
+	if filters.get("party_type") == "Supplier" and frappe.db.get_single_value(
+		"Buying Settings", "supp_master_name"
+	) == ["Naming Series", "Auto Name"]:
+		columns.insert(1, "Supplier Name:Data:150")
+	if filters.get("party_type") == "Customer" and frappe.db.get_single_value(
+		"Selling Settings", "cust_master_name"
+	) == ["Naming Series", "Auto Name"]:
+		columns.insert(1, "Customer Name:Data:150")
+	return columns
 
 
 def get_data(filters):
@@ -50,27 +59,33 @@
 	party = filters.get("party_name")
 	party_group = get_party_group(party_type)
 
-	return get_party_addresses_and_contact(party_type, party, party_group)
+	return get_party_addresses_and_contact(party_type, party, party_group, filters)
 
 
-def get_party_addresses_and_contact(party_type, party, party_group):
+def get_party_addresses_and_contact(party_type, party, party_group, filters):
 	data = []
-	filters = None
+	query_filters = None
 	party_details = frappe._dict()
 
 	if not party_type:
 		return []
 
 	if party:
-		filters = {"name": party}
+		query_filters = {"name": party}
+	if filters.get("party_type") in ["Customer", "Supplier"]:
+		field = filters.get("party_type").lower() + "_name"
+	else:
+		field = "partner_name"
 
 	fetch_party_list = frappe.get_list(
-		party_type, filters=filters, fields=["name", party_group], as_list=True
+		party_type, filters=query_filters, fields=["name", party_group, field], as_list=True
 	)
 	party_list = [d[0] for d in fetch_party_list]
 	party_groups = {}
+	party_name_map = {}
 	for d in fetch_party_list:
 		party_groups[d[0]] = d[1]
+		party_name_map[d[0]] = d[2]
 
 	for d in party_list:
 		party_details.setdefault(d, frappe._dict())
@@ -84,6 +99,8 @@
 		if not any([addresses, contacts]):
 			result = [party]
 			result.append(party_groups[party])
+			if filters.get("party_type") in ["Customer", "Supplier"]:
+				result.append(party_name_map[party])
 			result.extend(add_blank_columns_for("Contact"))
 			result.extend(add_blank_columns_for("Address"))
 			data.append(result)
@@ -95,11 +112,12 @@
 			for idx in range(0, max_length):
 				result = [party]
 				result.append(party_groups[party])
+				if filters.get("party_type") in ["Customer", "Supplier"]:
+					result.append(party_name_map[party])
 				address = addresses[idx] if idx < len(addresses) else add_blank_columns_for("Address")
 				contact = contacts[idx] if idx < len(contacts) else add_blank_columns_for("Contact")
 				result.extend(address)
 				result.extend(contact)
-
 				data.append(result)
 	return data
 
@@ -115,7 +133,6 @@
 	for d in records:
 		details = party_details.get(d[0])
 		details.setdefault(frappe.scrub(doctype), []).append(d[1:])
-
 	return party_details