From 11cb2db3fee91877fc6c05ae692b8163ca61d84e Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 19 Apr 2023 11:51:08 +0530 Subject: [PATCH 1/2] refactor: move set_missing_ref_detials out of set_missing_values --- erpnext/accounts/doctype/payment_entry/payment_entry.py | 4 ++-- erpnext/accounts/utils.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index 3583dc7a90..086e1e3c35 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -60,6 +60,7 @@ class PaymentEntry(AccountsController): 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,8 +220,6 @@ class PaymentEntry(AccountsController): else self.paid_to_account_currency ) - self.set_missing_ref_details() - def set_missing_ref_details(self, force=False): for d in self.get("references"): if d.allocated_amount: @@ -1811,6 +1810,7 @@ def get_payment_entry( 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 2ab9ef64b3..f10cff0686 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -646,6 +646,7 @@ def update_reference_in_payment_entry(d, payment_entry, do_not_save=False): 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: From b7d6e30f63c70408fa29993e5cd958c26fb2e33c Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 19 Apr 2023 12:11:05 +0530 Subject: [PATCH 2/2] refactor: update ref details for selected references set_missing_ref_details can update only for selected references --- erpnext/accounts/doctype/payment_entry/payment_entry.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index 086e1e3c35..ee4d4d29e2 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -220,9 +220,16 @@ class PaymentEntry(AccountsController): else self.paid_to_account_currency ) - 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 )