mirror of
https://github.com/frappe/erpnext.git
synced 2026-04-13 20:05:09 +00:00
fix: correct query for dispatch_address; remove unnecessary code; increase reusability;
(cherry picked from commit 999ffe86a7)
This commit is contained in:
@@ -202,43 +202,44 @@ def set_address_details(
|
|||||||
billing_address_field = (
|
billing_address_field = (
|
||||||
"customer_address" if party_type in ["Lead", "Prospect"] else party_type.lower() + "_address"
|
"customer_address" if party_type in ["Lead", "Prospect"] else party_type.lower() + "_address"
|
||||||
)
|
)
|
||||||
|
|
||||||
party_details[billing_address_field] = party_address or get_default_address(party_type, party.name)
|
party_details[billing_address_field] = party_address or get_default_address(party_type, party.name)
|
||||||
if doctype:
|
if doctype:
|
||||||
party_details.update(
|
party_details.update(
|
||||||
get_fetch_values(doctype, billing_address_field, party_details[billing_address_field])
|
get_fetch_values(doctype, billing_address_field, party_details[billing_address_field])
|
||||||
)
|
)
|
||||||
|
|
||||||
# address display
|
# address display
|
||||||
party_details.address_display = render_address(
|
party_details.address_display = render_address(
|
||||||
party_details[billing_address_field], check_permissions=not ignore_permissions
|
party_details[billing_address_field], check_permissions=not ignore_permissions
|
||||||
)
|
)
|
||||||
# shipping address
|
|
||||||
|
# Initialize shipping address fields based on party type
|
||||||
if party_type in ["Customer", "Lead"]:
|
if party_type in ["Customer", "Lead"]:
|
||||||
party_details.shipping_address_name = shipping_address or get_party_shipping_address(
|
party_shipping_address_field = "shipping_address_name"
|
||||||
party_type, party.name
|
party_shipping_address_display_field = "shipping_address"
|
||||||
)
|
is_party_type_supplier = False
|
||||||
party_details.shipping_address = render_address(
|
|
||||||
party_details["shipping_address_name"], check_permissions=not ignore_permissions
|
else: # Default to Supplier
|
||||||
)
|
party_shipping_address_field = "dispatch_address"
|
||||||
if doctype:
|
party_shipping_address_display_field = "dispatch_address_display"
|
||||||
party_details.update(
|
is_party_type_supplier = True
|
||||||
get_fetch_values(doctype, "shipping_address_name", party_details.shipping_address_name)
|
|
||||||
|
party_details[party_shipping_address_field] = (
|
||||||
|
dispatch_address if is_party_type_supplier else shipping_address
|
||||||
|
) or get_party_shipping_address(party_type, party.name)
|
||||||
|
|
||||||
|
party_details[party_shipping_address_display_field] = render_address(
|
||||||
|
party_details[party_shipping_address_field], check_permissions=not ignore_permissions
|
||||||
|
)
|
||||||
|
|
||||||
|
if doctype:
|
||||||
|
party_details.update(
|
||||||
|
get_fetch_values(
|
||||||
|
doctype, party_shipping_address_field, party_details[party_shipping_address_field]
|
||||||
)
|
)
|
||||||
|
|
||||||
# dispatch address
|
|
||||||
elif party_type == "Supplier":
|
|
||||||
party_details.dispatch_address = dispatch_address or get_party_shipping_address(
|
|
||||||
party_type, party.name
|
|
||||||
)
|
)
|
||||||
|
|
||||||
party_details.dispatch_address_display = render_address(
|
|
||||||
party_details["dispatch_address"], check_permissions=not ignore_permissions
|
|
||||||
)
|
|
||||||
|
|
||||||
if doctype:
|
|
||||||
party_details.update(
|
|
||||||
get_fetch_values(doctype, "dispatch_address", party_details.dispatch_address)
|
|
||||||
)
|
|
||||||
|
|
||||||
if company_address:
|
if company_address:
|
||||||
party_details.company_address = company_address
|
party_details.company_address = company_address
|
||||||
else:
|
else:
|
||||||
@@ -276,27 +277,9 @@ def set_address_details(
|
|||||||
**get_fetch_values(doctype, "shipping_address", party_details.billing_address),
|
**get_fetch_values(doctype, "shipping_address", party_details.billing_address),
|
||||||
)
|
)
|
||||||
|
|
||||||
if doctype != "Supplier Quotation":
|
|
||||||
if dispatch_address:
|
|
||||||
party_details.update(
|
|
||||||
dispatch_address=dispatch_address,
|
|
||||||
dispatch_address_display=render_address(
|
|
||||||
dispatch_address, check_permissions=not ignore_permissions
|
|
||||||
),
|
|
||||||
**get_fetch_values(doctype, "dispatch_address", dispatch_address),
|
|
||||||
)
|
|
||||||
|
|
||||||
# dispatch address - if not already set
|
|
||||||
if not party_details.dispatch_address:
|
|
||||||
party_details.update(
|
|
||||||
dispatch_address=party_details.supplier_address,
|
|
||||||
dispatch_address_display=party_details.address_display,
|
|
||||||
**get_fetch_values(doctype, "dispatch_address", party_details.supplier_address),
|
|
||||||
)
|
|
||||||
|
|
||||||
party_address, shipping_address = (
|
party_address, shipping_address = (
|
||||||
party_details.get(billing_address_field),
|
party_details.get(billing_address_field),
|
||||||
party_details.shipping_address_name,
|
party_details.get(party_shipping_address_field),
|
||||||
)
|
)
|
||||||
|
|
||||||
party_details["tax_category"] = get_address_tax_category(
|
party_details["tax_category"] = get_address_tax_category(
|
||||||
|
|||||||
@@ -57,11 +57,7 @@ erpnext.buying = {
|
|||||||
|
|
||||||
if(this.frm.get_field('dispatch_address')) {
|
if(this.frm.get_field('dispatch_address')) {
|
||||||
this.frm.set_query("dispatch_address", () => {
|
this.frm.set_query("dispatch_address", () => {
|
||||||
if(this.frm.doc.is_return){
|
return erpnext.queries.address_query(this.frm.doc);
|
||||||
return erpnext.queries.company_address_query(this.frm.doc);
|
|
||||||
}
|
|
||||||
|
|
||||||
return erpnext.queries.supplier_address_query(this.frm);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,23 +112,6 @@ $.extend(erpnext.queries, {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
supplier_address_query: function (frm) {
|
|
||||||
if (!frm.doc.supplier) {
|
|
||||||
frm.scroll_to_field("supplier");
|
|
||||||
frappe.show_alert({
|
|
||||||
message: __("Please set {0} first.", [
|
|
||||||
__(frappe.meta.get_label(frm.doc.doctype, "supplier", frm.doc.name)),
|
|
||||||
]),
|
|
||||||
indicator: "orange",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
query: "frappe.contacts.doctype.address.address.address_query",
|
|
||||||
filters: { link_doctype: "Supplier", link_name: frm.doc.supplier },
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
dispatch_address_query: function (doc) {
|
dispatch_address_query: function (doc) {
|
||||||
var filters = { link_doctype: "Company", link_name: doc.company || "" };
|
var filters = { link_doctype: "Company", link_name: doc.company || "" };
|
||||||
var is_drop_ship = doc.items.some((item) => item.delivered_by_supplier);
|
var is_drop_ship = doc.items.some((item) => item.delivered_by_supplier);
|
||||||
|
|||||||
Reference in New Issue
Block a user