diff --git a/erpnext/accounts/custom/address.py b/erpnext/accounts/custom/address.py index ac2cb0586d..2a98df2e26 100644 --- a/erpnext/accounts/custom/address.py +++ b/erpnext/accounts/custom/address.py @@ -3,6 +3,7 @@ from frappe import _ from frappe.contacts.doctype.address.address import Address from frappe.contacts.address_and_contact import set_link_title from frappe.core.doctype.dynamic_link.dynamic_link import deduplicate_dynamic_links +from frappe.contacts.doctype.address.address import get_address_templates class CustomAddress(Address): def validate(self): @@ -30,4 +31,22 @@ class CustomAddress(Address): if not [row for row in self.links if row.link_doctype == "Company"]: frappe.throw(_("Address needs to be linked to a Company. Please add a row for Company in the Links table below."), title =_("Company not Linked")) - \ No newline at end of file + +@frappe.whitelist() +def get_shipping_address(company, address = None): + filters = [ + ["Dynamic Link", "link_doctype", "=", "Company"], + ["Dynamic Link", "link_name", "=", company], + ["Address", "is_your_company_address", "=", 1] + ] + fields = ["*"] + if address and frappe.db.get_value('Dynamic Link', + {'parent': address, 'link_name': company}): + filters.append(["Address", "name", "=", address]) + + address = frappe.get_all("Address", filters=filters, fields=fields) or {} + + if address: + address_as_dict = address[0] + name, address_template = get_address_templates(address_as_dict) + return address_as_dict.get("name"), frappe.render_template(address_template, address_as_dict) diff --git a/erpnext/public/js/utils/party.js b/erpnext/public/js/utils/party.js index 44e75aee36..770704e595 100644 --- a/erpnext/public/js/utils/party.js +++ b/erpnext/public/js/utils/party.js @@ -277,7 +277,7 @@ erpnext.utils.validate_mandatory = function(frm, label, value, trigger_on) { erpnext.utils.get_shipping_address = function(frm, callback){ if (frm.doc.company) { frappe.call({ - method: "frappe.contacts.doctype.address.address.get_shipping_address", + method: "erpnext.accounts.custom.address.get_shipping_address", args: { company: frm.doc.company, address: frm.doc.shipping_address