blob: 743657de322d9c19dfd732180784eb2eb3e4aeb1 [file] [log] [blame]
Anand Doshi885e0742015-03-03 14:55:30 +05301# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
Anand Doshi330dae92013-09-10 13:46:15 +05302# License: GNU General Public License v3. See license.txt
3
4from __future__ import unicode_literals
Rushabh Mehta3daa49a2014-10-21 16:16:30 +05305
Aditya Hasef79937d2019-01-23 00:28:37 +05306import frappe
7
Anand Doshifb109ad2013-09-11 18:58:20 +05308
Rushabh Mehta793ba6b2014-02-14 15:47:51 +05309@frappe.whitelist(allow_guest=True)
Anand Doshifb109ad2013-09-11 18:58:20 +053010def send_message(subject="Website Query", message="", sender="", status="Open"):
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053011 from frappe.www.contact import send_message as website_send_message
12 lead = customer = None
Anand Doshi5d591eb2014-04-18 16:15:31 +053013
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053014 website_send_message(subject, message, sender)
Anand Doshi5d591eb2014-04-18 16:15:31 +053015
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053016 customer = frappe.db.sql("""select distinct dl.link_name from `tabDynamic Link` dl
17 left join `tabContact` c on dl.parent=c.name where dl.link_doctype='Customer'
Aditya Hase9acb8852019-01-29 10:52:37 +053018 and c.email_id = %s""", sender)
Rushabh Mehtad51e1582016-11-16 11:13:31 +053019
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053020 if not customer:
Britlog495a4082017-06-01 15:38:04 +020021 lead = frappe.db.get_value('Lead', dict(email_id=sender))
22 if not lead:
23 new_lead = frappe.get_doc(dict(
24 doctype='Lead',
25 email_id = sender,
26 lead_name = sender.split('@')[0].title()
27 )).insert(ignore_permissions=True)
Rushabh Mehtad51e1582016-11-16 11:13:31 +053028
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053029 opportunity = frappe.get_doc(dict(
30 doctype ='Opportunity',
Nabin Hait34c551d2019-07-03 10:34:31 +053031 opportunity_from = 'Customer' if customer else 'Lead',
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053032 status = 'Open',
33 title = subject,
34 contact_email = sender,
35 to_discuss = message
36 ))
Rushabh Mehtad51e1582016-11-16 11:13:31 +053037
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053038 if customer:
Nabin Hait34c551d2019-07-03 10:34:31 +053039 opportunity.party_name = customer[0][0]
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053040 elif lead:
Nabin Hait34c551d2019-07-03 10:34:31 +053041 opportunity.party_name = lead
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053042 else:
Nabin Hait34c551d2019-07-03 10:34:31 +053043 opportunity.party_name = new_lead.name
Rushabh Mehtad51e1582016-11-16 11:13:31 +053044
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053045 opportunity.insert(ignore_permissions=True)
Rushabh Mehtaddd79f42015-08-25 14:03:43 +053046
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053047 comm = frappe.get_doc({
48 "doctype":"Communication",
49 "subject": subject,
50 "content": message,
51 "sender": sender,
52 "sent_or_received": "Received",
53 'reference_doctype': 'Opportunity',
54 'reference_name': opportunity.name
55 })
56 comm.insert(ignore_permissions=True)
Makarand Bauskar98f94272017-02-20 10:25:25 +053057
Rushabh Mehtaa5ebebd2017-11-16 17:03:52 +053058 return "okay"