28 lines
964 B
Python
28 lines
964 B
Python
import frappe
|
|
|
|
# Override ERPNext's hook that will set a Lead's mobile_no field based on a Contact's phone number even if it's not a mobile number
|
|
def update_lead_phone_numbers(contact, method):
|
|
if not contact.phone_nos:
|
|
return
|
|
|
|
contact_lead = contact.get_link_for("Lead")
|
|
if not contact_lead:
|
|
return
|
|
|
|
# Get list of phones explicitly marked as primary mobile numbers
|
|
mobile_nos = [
|
|
phone_doc.phone
|
|
for phone_doc in contact.phone_nos
|
|
if phone_doc.is_primary_mobile_no
|
|
]
|
|
|
|
# If no mobile numbers were marked, clear Lead.mobile_no
|
|
if not mobile_nos:
|
|
lead = frappe.get_doc("Lead", contact_lead)
|
|
|
|
if lead.mobile_no:
|
|
# Optional: only unset if the current value matches one of the Contact's phones
|
|
contact_phone_values = {p.phone for p in contact.phone_nos}
|
|
if lead.mobile_no in contact_phone_values:
|
|
lead.db_set("mobile_no", None)
|