diff --git a/crm/api/contact.py b/crm/api/contact.py index e13fc469..2f52f433 100644 --- a/crm/api/contact.py +++ b/crm/api/contact.py @@ -1,4 +1,5 @@ import frappe +from frappe import _ def validate(doc, method): @@ -24,6 +25,31 @@ def set_primary_mobile_no(doc): doc.phone_nos[0].is_primary_mobile_no = 1 +@frappe.whitelist() +def get_contact(name): + Contact = frappe.qb.DocType("Contact") + + query = ( + frappe.qb.from_(Contact) + .select("*") + .where(Contact.name == name) + .limit(1) + ) + + contact = query.run(as_dict=True) + if not len(contact): + frappe.throw(_("Contact not found"), frappe.DoesNotExistError) + contact = contact.pop() + + contact["doctype"] = "Contact" + contact["email_ids"] = frappe.get_all( + "Contact Email", filters={"parent": name}, fields=["name", "email_id", "is_primary"] + ) + contact["phone_nos"] = frappe.get_all( + "Contact Phone", filters={"parent": name}, fields=["name", "phone", "is_primary_mobile_no"] + ) + return contact + @frappe.whitelist() def get_linked_deals(contact): """Get linked deals for a contact""" diff --git a/frontend/src/components/Modals/ContactModal.vue b/frontend/src/components/Modals/ContactModal.vue index a2ecfbf2..3cf323b7 100644 --- a/frontend/src/components/Modals/ContactModal.vue +++ b/frontend/src/components/Modals/ContactModal.vue @@ -40,10 +40,10 @@