fix: set `billing_address` for purchases in `get_party_details`
diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py
index e39f22b..67cf644 100644
--- a/erpnext/accounts/party.py
+++ b/erpnext/accounts/party.py
@@ -207,7 +207,7 @@
)
if company_address:
- party_details.update({"company_address": company_address})
+ party_details.company_address = company_address
else:
party_details.update(get_company_address(company))
@@ -219,12 +219,31 @@
get_regional_address_details(party_details, doctype, company)
elif doctype and doctype in ["Purchase Invoice", "Purchase Order", "Purchase Receipt"]:
- if party_details.company_address:
- party_details["shipping_address"] = shipping_address or party_details["company_address"]
- party_details.shipping_address_display = get_address_display(party_details["shipping_address"])
+ if shipping_address:
party_details.update(
- get_fetch_values(doctype, "shipping_address", party_details.shipping_address)
+ shipping_address=shipping_address,
+ shipping_address_display=get_address_display(shipping_address),
+ **get_fetch_values(doctype, "shipping_address", shipping_address)
)
+
+ if party_details.company_address:
+ # billing address
+ party_details.update(
+ billing_address=party_details.company_address,
+ billing_address_display=(
+ party_details.company_address_display or get_address_display(party_details.company_address)
+ ),
+ **get_fetch_values(doctype, "billing_address", party_details.company_address)
+ )
+
+ # shipping address - if not already set
+ if not party_details.shipping_address:
+ party_details.update(
+ shipping_address=party_details.billing_address,
+ shipping_address_display=party_details.billing_address_display,
+ **get_fetch_values(doctype, "shipping_address", party_details.billing_address)
+ )
+
get_regional_address_details(party_details, doctype, company)
return party_details.get(billing_address_field), party_details.shipping_address_name
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index 036733c..c0f3745 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -86,6 +86,7 @@
company=self.company,
party_address=self.get("supplier_address"),
shipping_address=self.get("shipping_address"),
+ company_address=self.get("billing_address"),
fetch_payment_terms_template=not self.get("ignore_default_payment_terms_template"),
ignore_permissions=self.flags.ignore_permissions,
)
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 85485fc..c0a8c9e 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -1,7 +1,6 @@
// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
// License: GNU General Public License v3. See license.txt
-frappe.provide('erpnext.accounts.dimensions');
erpnext.TransactionController = class TransactionController extends erpnext.taxes_and_totals {
setup() {
@@ -794,24 +793,6 @@
set_party_account(set_pricing);
});
- // Get default company billing address in Purchase Invoice, Order and Receipt
- if (this.frm.doc.company && frappe.meta.get_docfield(this.frm.doctype, "billing_address")) {
- 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 || ""},
- debounce: 2000,
- callback: function(r) {
- if (r.message) {
- me.frm.set_value("billing_address", r.message);
- } else {
- if (frappe.meta.get_docfield(me.frm.doctype, 'company_address')) {
- me.frm.set_value("company_address", "");
- }
- }
- }
- });
- }
-
} else {
set_party_account(set_pricing);
}