mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-22 14:39:19 +00:00
Merge pull request #46979 from Sanket322/refactor_report
fix: Proper Postal Code Order and Add Party Name Properly
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user