Merge pull request #46979 from Sanket322/refactor_report

fix: Proper Postal Code Order and Add Party Name Properly
This commit is contained in:
ruthra kumar
2025-04-28 10:18:58 +05:30
committed by GitHub

View File

@@ -11,9 +11,9 @@ field_map = {
"name", "name",
"address_line1", "address_line1",
"address_line2", "address_line2",
"pincode",
"city", "city",
"state", "state",
"pincode",
"country", "country",
"is_primary_address", "is_primary_address",
], ],
@@ -52,14 +52,10 @@ def get_columns(filters):
"Email Id", "Email Id",
"Is Primary Contact:Check", "Is Primary Contact:Check",
] ]
if filters.get("party_type") == "Supplier" and frappe.db.get_single_value(
"Buying Settings", "supp_master_name" if should_add_party_name(party_type):
) == ["Naming Series", "Auto Name"]: columns.insert(2, f"{party_type} Name:Data:150")
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 return columns
@@ -81,6 +77,7 @@ def get_party_addresses_and_contact(party_type, party, party_group, filters):
if party: if party:
query_filters = {"name": party} query_filters = {"name": party}
if filters.get("party_type") in ["Customer", "Supplier"]: if filters.get("party_type") in ["Customer", "Supplier"]:
field = filters.get("party_type").lower() + "_name" field = filters.get("party_type").lower() + "_name"
else: else:
@@ -102,14 +99,18 @@ def get_party_addresses_and_contact(party_type, party, party_group, filters):
party_details = get_party_details(party_type, party_list, "Address", party_details) party_details = get_party_details(party_type, party_list, "Address", party_details)
party_details = get_party_details(party_type, party_list, "Contact", party_details) party_details = get_party_details(party_type, party_list, "Contact", party_details)
add_party_name = should_add_party_name(party_type)
for party, details in party_details.items(): for party, details in party_details.items():
addresses = details.get("address", []) addresses = details.get("address", [])
contacts = details.get("contact", []) contacts = details.get("contact", [])
if not any([addresses, contacts]): if not any([addresses, contacts]):
result = [party] result = [party]
result.append(party_groups[party]) result.append(party_groups[party])
if filters.get("party_type") in ["Customer", "Supplier"]:
if add_party_name:
result.append(party_name_map[party]) result.append(party_name_map[party])
result.extend(add_blank_columns_for("Contact")) result.extend(add_blank_columns_for("Contact"))
result.extend(add_blank_columns_for("Address")) result.extend(add_blank_columns_for("Address"))
data.append(result) data.append(result)
@@ -121,8 +122,10 @@ def get_party_addresses_and_contact(party_type, party, party_group, filters):
for idx in range(0, max_length): for idx in range(0, max_length):
result = [party] result = [party]
result.append(party_groups[party]) result.append(party_groups[party])
if filters.get("party_type") in ["Customer", "Supplier"]:
if add_party_name:
result.append(party_name_map[party]) result.append(party_name_map[party])
address = addresses[idx] if idx < len(addresses) else add_blank_columns_for("Address") 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") contact = contacts[idx] if idx < len(contacts) else add_blank_columns_for("Contact")
result.extend(address) result.extend(address)
@@ -139,9 +142,11 @@ def get_party_details(party_type, party_list, doctype, party_details):
fields = ["`tabDynamic Link`.link_name", *field_map.get(doctype, [])] fields = ["`tabDynamic Link`.link_name", *field_map.get(doctype, [])]
records = frappe.get_list(doctype, filters=filters, fields=fields, as_list=True) records = frappe.get_list(doctype, filters=filters, fields=fields, as_list=True)
for d in records: for d in records:
details = party_details.get(d[0]) details = party_details.get(d[0])
details.setdefault(frappe.scrub(doctype), []).append(d[1:]) details.setdefault(frappe.scrub(doctype), []).append(d[1:])
return party_details return party_details
@@ -160,3 +165,16 @@ def get_party_group(party_type):
} }
return group[party_type] return group[party_type]
def should_add_party_name(party_type):
settings_map = {
"Supplier": ("Buying Settings", "supp_master_name"),
"Customer": ("Selling Settings", "cust_master_name"),
}
if party_type in settings_map:
doctype, fieldname = settings_map.get(party_type)
return frappe.db.get_single_value(doctype, fieldname) in ["Naming Series", "Auto Name"]
return False