fix(Payment Entry): get contact details from existing contact (#40556)
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index b4d1d39..4684aab 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -30,7 +30,7 @@
make_reverse_gl_entries,
process_gl_map,
)
-from erpnext.accounts.party import get_party_account, set_contact_details
+from erpnext.accounts.party import complete_contact_details, get_party_account, set_contact_details
from erpnext.accounts.utils import (
cancel_exchange_gain_loss_journal,
get_account_currency,
@@ -446,6 +446,8 @@
if self.party:
if not self.contact_person:
set_contact_details(self, party=frappe._dict({"name": self.party}), party_type=self.party_type)
+ else:
+ complete_contact_details(self)
if not self.party_balance:
self.party_balance = get_balance_on(
party_type=self.party_type, party=self.party, date=self.posting_date, company=self.company
@@ -2295,7 +2297,7 @@
pe.party_type = party_type
pe.party = doc.get(scrub(party_type))
pe.contact_person = doc.get("contact_person")
- pe.contact_email = doc.get("contact_email")
+ complete_contact_details(pe)
pe.ensure_supplier_is_not_blocked()
pe.paid_from = party_account if payment_type == "Receive" else bank.account
diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py
index d8ae2a4..4b3f0c8 100644
--- a/erpnext/accounts/party.py
+++ b/erpnext/accounts/party.py
@@ -282,9 +282,7 @@
pass
-def set_contact_details(party_details, party, party_type):
- party_details.contact_person = get_default_contact(party_type, party.name)
-
+def complete_contact_details(party_details):
if not party_details.contact_person:
party_details.update(
{
@@ -315,6 +313,11 @@
party_details.update(contact_details)
+def set_contact_details(party_details, party, party_type):
+ party_details.contact_person = get_default_contact(party_type, party.name)
+ complete_contact_details(party_details)
+
+
def set_other_values(party_details, party, party_type):
# copy
if party_type == "Customer":