fix: create contact after lead is converted
This commit is contained in:
parent
4000dfab09
commit
d01b3e3520
@ -15,6 +15,9 @@ class CRMLead(Document):
|
|||||||
self.set_title()
|
self.set_title()
|
||||||
self.validate_email()
|
self.validate_email()
|
||||||
|
|
||||||
|
if self.has_value_changed('converted') and self.converted:
|
||||||
|
self.create_contact()
|
||||||
|
|
||||||
def set_full_name(self):
|
def set_full_name(self):
|
||||||
if self.first_name:
|
if self.first_name:
|
||||||
self.lead_name = " ".join(
|
self.lead_name = " ".join(
|
||||||
@ -47,6 +50,61 @@ class CRMLead(Document):
|
|||||||
if self.is_new() or not self.image:
|
if self.is_new() or not self.image:
|
||||||
self.image = has_gravatar(self.email)
|
self.image = has_gravatar(self.email)
|
||||||
|
|
||||||
|
def create_contact(self):
|
||||||
|
if not self.lead_name:
|
||||||
|
self.set_full_name()
|
||||||
|
self.set_lead_name()
|
||||||
|
|
||||||
|
if self.contact_exists():
|
||||||
|
return
|
||||||
|
|
||||||
|
contact = frappe.new_doc("Contact")
|
||||||
|
contact.update(
|
||||||
|
{
|
||||||
|
"first_name": self.first_name or self.lead_name,
|
||||||
|
"last_name": self.last_name,
|
||||||
|
"salutation": self.salutation,
|
||||||
|
"gender": self.gender,
|
||||||
|
"designation": self.job_title,
|
||||||
|
"company_name": self.organization,
|
||||||
|
"image": self.image or "",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
if self.email:
|
||||||
|
contact.append("email_ids", {"email_id": self.email, "is_primary": 1})
|
||||||
|
|
||||||
|
if self.phone:
|
||||||
|
contact.append("phone_nos", {"phone": self.phone, "is_primary_phone": 1})
|
||||||
|
|
||||||
|
if self.mobile_no:
|
||||||
|
contact.append("phone_nos", {"phone": self.mobile_no, "is_primary_mobile_no": 1})
|
||||||
|
|
||||||
|
contact.insert(ignore_permissions=True)
|
||||||
|
contact.reload() # load changes by hooks on contact
|
||||||
|
|
||||||
|
return contact
|
||||||
|
|
||||||
|
def contact_exists(self):
|
||||||
|
email_exist = frappe.db.exists("Contact Email", {"email_id": self.email})
|
||||||
|
phone_exist = frappe.db.exists("Contact Phone", {"phone": self.phone})
|
||||||
|
mobile_exist = frappe.db.exists("Contact Phone", {"phone": self.mobile_no})
|
||||||
|
|
||||||
|
if email_exist or phone_exist or mobile_exist:
|
||||||
|
|
||||||
|
text = "Email" if email_exist else "Phone" if phone_exist else "Mobile No"
|
||||||
|
data = self.email if email_exist else self.phone if phone_exist else self.mobile_no
|
||||||
|
|
||||||
|
value = "{0}: {1}".format(text, data)
|
||||||
|
|
||||||
|
frappe.throw(
|
||||||
|
_("Contact already exists with {0}").format(value),
|
||||||
|
title=_("Contact Already Exists"),
|
||||||
|
)
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def sort_options():
|
def sort_options():
|
||||||
return [
|
return [
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user