Merge pull request #34922 from ruthra-kumar/refactor_payment_entry_ref_details
refactor: refactor set_missing_values and set_missing_ref_details in Payment Entry
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index 3583dc7..ee4d4d2 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -60,6 +60,7 @@
def validate(self):
self.setup_party_account_field()
self.set_missing_values()
+ self.set_missing_ref_details()
self.validate_payment_type()
self.validate_party_details()
self.set_exchange_rate()
@@ -219,11 +220,16 @@
else self.paid_to_account_currency
)
- self.set_missing_ref_details()
-
- def set_missing_ref_details(self, force=False):
+ def set_missing_ref_details(
+ self, force: bool = False, update_ref_details_only_for: list | None = None
+ ) -> None:
for d in self.get("references"):
if d.allocated_amount:
+ if update_ref_details_only_for and (
+ not (d.reference_doctype, d.reference_name) in update_ref_details_only_for
+ ):
+ continue
+
ref_details = get_reference_details(
d.reference_doctype, d.reference_name, self.party_account_currency
)
@@ -1811,6 +1817,7 @@
pe.setup_party_account_field()
pe.set_missing_values()
+ pe.set_missing_ref_details()
update_accounting_dimensions(pe, doc)
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index 2ab9ef6..f10cff0 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -646,6 +646,7 @@
payment_entry.flags.ignore_validate_update_after_submit = True
payment_entry.setup_party_account_field()
payment_entry.set_missing_values()
+ payment_entry.set_missing_ref_details()
payment_entry.set_amounts()
if not do_not_save: