sales communication fix for status

This commit is contained in:
Rushabh Mehta
2013-02-11 15:08:24 +05:30
parent 176829e53c
commit 0e5401ccbf
2 changed files with 24 additions and 23 deletions

View File

@@ -20,11 +20,11 @@ from webnotes.utils import cstr, cint
from webnotes.utils.email_lib.receive import POP3Mailbox from webnotes.utils.email_lib.receive import POP3Mailbox
from core.doctype.communication.communication import make from core.doctype.communication.communication import make
def add_sales_communication(subject, content, sender, real_name, mail=None): def add_sales_communication(subject, content, sender, real_name, mail=None, status="Open"):
def set_status_open(doctype, name): def set_status(doctype, name):
w = webnotes.model_wrapper(doctype, name) w = webnotes.model_wrapper(doctype, name)
w.ignore_permissions = True w.ignore_permissions = True
w.doc.status = "Open" w.doc.status = status
w.doc.save() w.doc.save()
if mail: if mail:
mail.save_attachments_in_doc(w.doc) mail.save_attachments_in_doc(w.doc)
@@ -33,28 +33,28 @@ def add_sales_communication(subject, content, sender, real_name, mail=None):
contact_name = webnotes.conn.get_value("Contact", {"email_id": sender}) contact_name = webnotes.conn.get_value("Contact", {"email_id": sender})
is_system_user = webnotes.conn.get_value("Profile", sender) is_system_user = webnotes.conn.get_value("Profile", sender)
if not is_system_user: if not (lead_name or contact_name):
if contact_name: # none, create a new Lead
set_status_open("Contact", contact_name) lead = webnotes.model_wrapper({
elif lead_name: "doctype":"Lead",
set_status_open("Lead", lead_name) "lead_name": real_name or sender,
else: "email_id": sender,
# none, create a new Lead "status": status,
lead = webnotes.model_wrapper({ "source": "Email"
"doctype":"Lead", })
"lead_name": real_name or sender, lead.ignore_permissions = True
"email_id": sender, lead.insert()
"status": "Open", lead_name = lead.doc.name
"source": "Email"
})
lead.ignore_permissions = True
lead.insert()
if mail:
mail.save_attachments_in_doc(lead.doc)
make(content=content, sender=sender, subject=subject, make(content=content, sender=sender, subject=subject,
lead=lead_name, contact=contact_name) lead=lead_name, contact=contact_name)
if contact_name:
doc = set_status("Contact", contact_name, is_system_user and "Replied" or status)
elif lead_name:
doc set_status("Lead", lead_name, is_system_user and "Replied" or status)
class SalesMailbox(POP3Mailbox): class SalesMailbox(POP3Mailbox):
def setup(self, args=None): def setup(self, args=None):
self.settings = args or webnotes.doc("Sales Email Settings", "Sales Email Settings") self.settings = args or webnotes.doc("Sales Email Settings", "Sales Email Settings")

View File

@@ -33,7 +33,8 @@ def send_message(subject="Website Query", message="", sender="", status="Open"):
# make lead / communication # make lead / communication
from selling.doctype.lead.get_leads import add_sales_communication from selling.doctype.lead.get_leads import add_sales_communication
add_sales_communication(subject or "Website Query", message, sender, sender) add_sales_communication(subject or "Website Query", message, sender, sender,
mail=None, status=status)
# guest method, cap max writes per hour # guest method, cap max writes per hour
if webnotes.conn.sql("""select count(*) from `tabCommunication` if webnotes.conn.sql("""select count(*) from `tabCommunication`