Merge pull request #367 from shariquerik/update-deal-on-contact-update

fix: Sync Contact & Deal primary contact's email/mobile_no
This commit is contained in:
Shariq Ansari 2024-09-23 17:58:29 +05:30 committed by GitHub
commit 257e9b2e4d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -7,6 +7,7 @@ def validate(doc, method):
set_primary_mobile_no(doc)
doc.set_primary_email()
doc.set_primary("mobile_no")
update_deals_email_mobile_no(doc)
def set_primary_email(doc):
@ -25,6 +26,21 @@ def set_primary_mobile_no(doc):
doc.phone_nos[0].is_primary_mobile_no = 1
def update_deals_email_mobile_no(doc):
linked_deals = frappe.get_all(
"CRM Contacts",
filters={"contact": doc.name, "is_primary": 1},
fields=["parent"],
)
for linked_deal in linked_deals:
deal = frappe.get_cached_doc("CRM Deal", linked_deal.parent)
if deal.email != doc.email_id or deal.mobile_no != doc.mobile_no:
deal.email = doc.email_id
deal.mobile_no = doc.mobile_no
deal.save(ignore_permissions=True)
@frappe.whitelist()
def get_contact(name):
Contact = frappe.qb.DocType("Contact")