fix: update lead if contact details are changed
diff --git a/erpnext/crm/utils.py b/erpnext/crm/utils.py
new file mode 100644
index 0000000..72d778e
--- /dev/null
+++ b/erpnext/crm/utils.py
@@ -0,0 +1,24 @@
+import frappe
+
+
+def update_lead_phone_numbers(contact, method):
+ if contact.phone_nos:
+ contact_lead = contact.get_link_for("Lead")
+ if contact_lead:
+ phone = mobile_no = contact.phone_nos[0].phone
+
+ if len(contact.phone_nos) > 1:
+ # get the default phone number
+ primary_phones = [phone.phone for phone in contact.phone_nos if phone.is_primary_phone]
+ if primary_phones:
+ phone = primary_phones[0]
+
+ # get the default mobile number
+ primary_mobile_nos = [phone.phone for phone in contact.phone_nos if phone.is_primary_mobile_no]
+ if primary_mobile_nos:
+ mobile_no = primary_mobile_nos[0]
+
+ lead = frappe.get_doc("Lead", contact_lead)
+ lead.phone = phone
+ lead.mobile_no = mobile_no
+ lead.save()
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index e6f6c8e..6b198e7 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -250,7 +250,8 @@
},
"Contact": {
"on_trash": "erpnext.support.doctype.issue.issue.update_issue",
- "after_insert": "erpnext.communication.doctype.call_log.call_log.set_caller_information"
+ "after_insert": "erpnext.communication.doctype.call_log.call_log.set_caller_information",
+ "validate": "erpnext.crm.utils.update_lead_phone_numbers"
},
"Lead": {
"after_insert": "erpnext.communication.doctype.call_log.call_log.set_caller_information"
@@ -537,4 +538,4 @@
{'doctype': 'Hotel Room Package', 'index': 3},
{'doctype': 'Hotel Room Type', 'index': 4}
]
-}
\ No newline at end of file
+}