|
- # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
- # License: GNU General Public License v3. See license.txt
-
-
- import frappe
-
-
- @frappe.whitelist(allow_guest=True)
- def send_message(sender, message, subject="Website Query"):
- from frappe.www.contact import send_message as website_send_message
-
- website_send_message(sender, message, subject)
-
- lead = customer = None
- customer = frappe.db.sql(
- """select distinct dl.link_name from `tabDynamic Link` dl
- left join `tabContact` c on dl.parent=c.name where dl.link_doctype='Customer'
- and c.email_id = %s""",
- sender,
- )
-
- if not customer:
- lead = frappe.db.get_value("Lead", dict(email_id=sender))
- if not lead:
- new_lead = frappe.get_doc(
- dict(doctype="Lead", email_id=sender, lead_name=sender.split("@")[0].title())
- ).insert(ignore_permissions=True)
-
- opportunity = frappe.get_doc(
- dict(
- doctype="Opportunity",
- opportunity_from="Customer" if customer else "Lead",
- status="Open",
- title=subject,
- contact_email=sender,
- )
- )
-
- if customer:
- opportunity.party_name = customer[0][0]
- elif lead:
- opportunity.party_name = lead
- else:
- opportunity.party_name = new_lead.name
-
- opportunity.insert(ignore_permissions=True)
-
- comm = frappe.get_doc(
- {
- "doctype": "Communication",
- "subject": subject,
- "content": message,
- "sender": sender,
- "sent_or_received": "Received",
- "reference_doctype": "Opportunity",
- "reference_name": opportunity.name,
- }
- )
- comm.insert(ignore_permissions=True)
|