From f46f1bead4a0df94e8ab5b2b8c8479b007147ddf Mon Sep 17 00:00:00 2001 From: Sanket322 Date: Fri, 3 Jan 2025 16:44:24 +0530 Subject: [PATCH 1/2] fix: set billing and shipping address on change of company --- erpnext/public/js/controllers/buying.js | 7 +++++-- erpnext/setup/doctype/company/company.py | 8 ++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/erpnext/public/js/controllers/buying.js b/erpnext/public/js/controllers/buying.js index af61d5f0258..8bf679c68c3 100644 --- a/erpnext/public/js/controllers/buying.js +++ b/erpnext/public/js/controllers/buying.js @@ -157,10 +157,13 @@ 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", + method: "erpnext.setup.doctype.company.company.get_billing_shipping_address", args: { name: this.frm.doc.company, existing_address:this.frm.doc.billing_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..50fb582a943 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, existing_address=None): + primart_address = get_default_company_address(name, "is_primary_address", existing_address) + shipping_address = get_default_company_address(name, "is_shipping_address", existing_address) + + return {"primary_address": primart_address, "shipping_address": shipping_address} + + @frappe.whitelist() def create_transaction_deletion_request(company): from erpnext.setup.doctype.transaction_deletion_record.transaction_deletion_record import ( From ce9976477220c8f2e72b27f507a61437c43d6a51 Mon Sep 17 00:00:00 2001 From: Sanket322 Date: Fri, 3 Jan 2025 18:04:56 +0530 Subject: [PATCH 2/2] fix: pass right existing address --- erpnext/public/js/controllers/buying.js | 6 +++++- erpnext/setup/doctype/company/company.py | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/erpnext/public/js/controllers/buying.js b/erpnext/public/js/controllers/buying.js index 8bf679c68c3..a705ce62f2b 100644 --- a/erpnext/public/js/controllers/buying.js +++ b/erpnext/public/js/controllers/buying.js @@ -158,7 +158,11 @@ erpnext.buying = { frappe.call({ method: "erpnext.setup.doctype.company.company.get_billing_shipping_address", - args: { name: this.frm.doc.company, existing_address:this.frm.doc.billing_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.primary_address || ""); diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index 50fb582a943..7984e8f2a7e 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -910,11 +910,11 @@ def get_default_company_address(name, sort_key="is_primary_address", existing_ad @frappe.whitelist() -def get_billing_shipping_address(name, existing_address=None): - primart_address = get_default_company_address(name, "is_primary_address", existing_address) - shipping_address = get_default_company_address(name, "is_shipping_address", existing_address) +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": primart_address, "shipping_address": shipping_address} + return {"primary_address": primary_address, "shipping_address": shipping_address} @frappe.whitelist()