| # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors |
| # License: GNU General Public License v3. See license.txt |
| |
| from __future__ import unicode_literals |
| |
| import frappe, json |
| from frappe import _ |
| from frappe.utils import cint, formatdate |
| |
| @frappe.whitelist(allow_guest=True) |
| def send_message(subject="Website Query", message="", sender="", status="Open"): |
| from frappe.www.contact import send_message as website_send_message |
| lead = customer = None |
| |
| website_send_message(subject, message, sender) |
| |
| customer = frappe.db.get_value('Contact', dict(email_id=sender), 'customer') |
| 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', |
| enquiry_from = 'Customer' if customer else 'Lead', |
| status = 'Open', |
| title = subject, |
| to_discuss=message |
| )) |
| |
| if customer: |
| opportunity.customer = customer |
| elif lead: |
| opportunity.lead = lead |
| else: |
| opportunity.lead = 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) |
| |
| return "okay" |