diff --git a/erpnext/public/js/controllers/buying.js b/erpnext/public/js/controllers/buying.js index af61d5f0258..a705ce62f2b 100644 --- a/erpnext/public/js/controllers/buying.js +++ b/erpnext/public/js/controllers/buying.js @@ -157,10 +157,17 @@ erpnext.buying = { if(!frappe.meta.has_field(this.frm.doc.doctype, "billing_address")) return; frappe.call({ - method: "erpnext.setup.doctype.company.company.get_default_company_address", - args: { name: this.frm.doc.company, existing_address:this.frm.doc.billing_address }, + method: "erpnext.setup.doctype.company.company.get_billing_shipping_address", + args: { + name: this.frm.doc.company, + billing_address:this.frm.doc.billing_address, + shipping_address: this.frm.doc.shipping_address + }, callback: (r) => { - this.frm.set_value("billing_address", r.message || ""); + this.frm.set_value("billing_address", r.message.primary_address || ""); + + if(!frappe.meta.has_field(this.frm.doc.doctype, "shipping_address")) return; + this.frm.set_value("shipping_address", r.message.shipping_address || ""); }, }); } diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index 54765420ad4..7984e8f2a7e 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -909,6 +909,14 @@ def get_default_company_address(name, sort_key="is_primary_address", existing_ad return None +@frappe.whitelist() +def get_billing_shipping_address(name, billing_address=None, shipping_address=None): + primary_address = get_default_company_address(name, "is_primary_address", billing_address) + shipping_address = get_default_company_address(name, "is_shipping_address", shipping_address) + + return {"primary_address": primary_address, "shipping_address": shipping_address} + + @frappe.whitelist() def create_transaction_deletion_request(company): from erpnext.setup.doctype.transaction_deletion_record.transaction_deletion_record import (