From 47852803f0bbe578ffcb4160170eaf0120a1eb4c Mon Sep 17 00:00:00 2001 From: marination Date: Fri, 16 Jun 2023 14:10:07 +0530 Subject: [PATCH] fix: Set Address via JS and Py files (for API usecases) --- erpnext/accounts/doctype/dunning/dunning.js | 3 +++ erpnext/accounts/doctype/dunning/dunning.py | 29 +++++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/dunning/dunning.js b/erpnext/accounts/doctype/dunning/dunning.js index 8171bb93ef5..7c4e9529a75 100644 --- a/erpnext/accounts/doctype/dunning/dunning.js +++ b/erpnext/accounts/doctype/dunning/dunning.js @@ -140,6 +140,9 @@ frappe.ui.form.on("Dunning", { 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 1447ac03f03..c8cfbca27d0 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 @@ class Dunning(AccountsController): 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 @@ class Dunning(AccountsController): 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(