fix: Set Address via JS and Py files (for API usecases)
diff --git a/erpnext/accounts/doctype/dunning/dunning.js b/erpnext/accounts/doctype/dunning/dunning.js
index 8171bb9..7c4e952 100644
--- a/erpnext/accounts/doctype/dunning/dunning.js
+++ b/erpnext/accounts/doctype/dunning/dunning.js
@@ -140,6 +140,9 @@
frm.trigger("conversion_rate");
}
},
+ customer: (frm) => {
+ erpnext.utils.get_party_details(frm);
+ },
conversion_rate: function (frm) {
if (frm.doc.currency === erpnext.get_currency(frm.doc.company)) {
frm.set_value("conversion_rate", 1.0);
diff --git a/erpnext/accounts/doctype/dunning/dunning.py b/erpnext/accounts/doctype/dunning/dunning.py
index 1447ac0..c8cfbca 100644
--- a/erpnext/accounts/doctype/dunning/dunning.py
+++ b/erpnext/accounts/doctype/dunning/dunning.py
@@ -11,12 +11,11 @@
-> Resolves dunning automatically
"""
-from __future__ import unicode_literals
-
import json
import frappe
from frappe import _
+from frappe.contacts.doctype.address.address import get_address_display
from frappe.utils import getdate
from erpnext.controllers.accounts_controller import AccountsController
@@ -27,6 +26,7 @@
self.validate_same_currency()
self.validate_overdue_payments()
self.validate_totals()
+ self.set_party_details()
self.set_dunning_level()
def validate_same_currency(self):
@@ -56,6 +56,31 @@
self.base_dunning_amount = self.dunning_amount * self.conversion_rate
self.grand_total = self.total_outstanding + self.dunning_amount
+ def set_party_details(self):
+ from erpnext.accounts.party import _get_party_details
+
+ party_details = _get_party_details(
+ self.customer,
+ ignore_permissions=self.flags.ignore_permissions,
+ doctype=self.doctype,
+ company=self.company,
+ posting_date=self.get("posting_date"),
+ fetch_payment_terms_template=False,
+ party_address=self.customer_address,
+ company_address=self.get("company_address"),
+ )
+ for field in [
+ "customer_address",
+ "address_display",
+ "company_address",
+ "contact_person",
+ "contact_display",
+ "contact_mobile",
+ ]:
+ self.set(field, party_details.get(field))
+
+ self.set("company_address_display", get_address_display(self.company_address))
+
def set_dunning_level(self):
for row in self.overdue_payments:
past_dunnings = frappe.get_all(