mirror of
https://github.com/frappe/erpnext.git
synced 2026-04-20 23:35:11 +00:00
feat: add dispatch address support in party details and controllers
(cherry picked from commit 53d0b7be23)
This commit is contained in:
@@ -71,6 +71,7 @@ def get_party_details(
|
|||||||
party_address=None,
|
party_address=None,
|
||||||
company_address=None,
|
company_address=None,
|
||||||
shipping_address=None,
|
shipping_address=None,
|
||||||
|
dispatch_address=None,
|
||||||
pos_profile=None,
|
pos_profile=None,
|
||||||
):
|
):
|
||||||
if not party:
|
if not party:
|
||||||
@@ -92,6 +93,7 @@ def get_party_details(
|
|||||||
party_address,
|
party_address,
|
||||||
company_address,
|
company_address,
|
||||||
shipping_address,
|
shipping_address,
|
||||||
|
dispatch_address,
|
||||||
pos_profile,
|
pos_profile,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -111,6 +113,7 @@ def _get_party_details(
|
|||||||
party_address=None,
|
party_address=None,
|
||||||
company_address=None,
|
company_address=None,
|
||||||
shipping_address=None,
|
shipping_address=None,
|
||||||
|
dispatch_address=None,
|
||||||
pos_profile=None,
|
pos_profile=None,
|
||||||
):
|
):
|
||||||
party_details = frappe._dict(
|
party_details = frappe._dict(
|
||||||
@@ -134,6 +137,7 @@ def _get_party_details(
|
|||||||
party_address,
|
party_address,
|
||||||
company_address,
|
company_address,
|
||||||
shipping_address,
|
shipping_address,
|
||||||
|
dispatch_address,
|
||||||
ignore_permissions=ignore_permissions,
|
ignore_permissions=ignore_permissions,
|
||||||
)
|
)
|
||||||
set_contact_details(party_details, party, party_type)
|
set_contact_details(party_details, party, party_type)
|
||||||
@@ -191,6 +195,7 @@ def set_address_details(
|
|||||||
party_address=None,
|
party_address=None,
|
||||||
company_address=None,
|
company_address=None,
|
||||||
shipping_address=None,
|
shipping_address=None,
|
||||||
|
dispatch_address=None,
|
||||||
*,
|
*,
|
||||||
ignore_permissions=False,
|
ignore_permissions=False,
|
||||||
):
|
):
|
||||||
@@ -219,6 +224,21 @@ def set_address_details(
|
|||||||
get_fetch_values(doctype, "shipping_address_name", party_details.shipping_address_name)
|
get_fetch_values(doctype, "shipping_address_name", party_details.shipping_address_name)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 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:
|
||||||
@@ -256,6 +276,24 @@ 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.shipping_address_name,
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ class BuyingController(SubcontractingController):
|
|||||||
company=self.company,
|
company=self.company,
|
||||||
party_address=self.get("supplier_address"),
|
party_address=self.get("supplier_address"),
|
||||||
shipping_address=self.get("shipping_address"),
|
shipping_address=self.get("shipping_address"),
|
||||||
|
dispatch_address=self.get("dispatch_address"),
|
||||||
company_address=self.get("billing_address"),
|
company_address=self.get("billing_address"),
|
||||||
fetch_payment_terms_template=not self.get("ignore_default_payment_terms_template"),
|
fetch_payment_terms_template=not self.get("ignore_default_payment_terms_template"),
|
||||||
ignore_permissions=self.flags.ignore_permissions,
|
ignore_permissions=self.flags.ignore_permissions,
|
||||||
@@ -238,6 +239,7 @@ class BuyingController(SubcontractingController):
|
|||||||
address_dict = {
|
address_dict = {
|
||||||
"supplier_address": "address_display",
|
"supplier_address": "address_display",
|
||||||
"shipping_address": "shipping_address_display",
|
"shipping_address": "shipping_address_display",
|
||||||
|
"dispatch_address": "dispatch_address_display",
|
||||||
"billing_address": "billing_address_display",
|
"billing_address": "billing_address_display",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,18 @@ erpnext.buying = {
|
|||||||
return erpnext.queries.company_address_query(this.frm.doc)
|
return erpnext.queries.company_address_query(this.frm.doc)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(this.frm.get_field('dispatch_address')) {
|
||||||
|
this.frm.set_query("dispatch_address", () => {
|
||||||
|
if(this.frm.doc.supplier) {
|
||||||
|
return {
|
||||||
|
query: 'frappe.contacts.doctype.address.address.address_query',
|
||||||
|
filters: { link_doctype: 'Supplier', link_name: this.frm.doc.supplier }
|
||||||
|
};
|
||||||
|
} else
|
||||||
|
return erpnext.queries.dispatch_address_query(this.frm.doc)
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_queries(doc, cdt, cdn) {
|
setup_queries(doc, cdt, cdn) {
|
||||||
|
|||||||
@@ -71,6 +71,10 @@ erpnext.utils.get_party_details = function (frm, method, args, callback) {
|
|||||||
if (!args.shipping_address && frm.doc.shipping_address) {
|
if (!args.shipping_address && frm.doc.shipping_address) {
|
||||||
args.shipping_address = frm.doc.shipping_address;
|
args.shipping_address = frm.doc.shipping_address;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!args.dispatch_address && frm.doc.dispatch_address) {
|
||||||
|
args.dispatch_address = frm.doc.dispatch_address;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frappe.meta.get_docfield(frm.doc.doctype, "taxes")) {
|
if (frappe.meta.get_docfield(frm.doc.doctype, "taxes")) {
|
||||||
|
|||||||
Reference in New Issue
Block a user