Merge pull request #3704 from nabinhait/fix2
[fix] SMS status and log
diff --git a/erpnext/change_log/current/sms.md b/erpnext/change_log/current/sms.md
new file mode 100644
index 0000000..bac293f
--- /dev/null
+++ b/erpnext/change_log/current/sms.md
@@ -0,0 +1 @@
+- Now system will give SMS delivery message and maintain a log
\ No newline at end of file
diff --git a/erpnext/config/crm.py b/erpnext/config/crm.py
index 3a7ab18..d7a6b2e 100644
--- a/erpnext/config/crm.py
+++ b/erpnext/config/crm.py
@@ -42,6 +42,11 @@
"name": "SMS Center",
"description":_("Send mass SMS to your contacts"),
},
+ {
+ "type": "doctype",
+ "name": "SMS Log",
+ "description":_("Logs for maintaining sms delivery status"),
+ }
]
},
{
diff --git a/erpnext/config/selling.py b/erpnext/config/selling.py
index 5433964..62dfe23 100644
--- a/erpnext/config/selling.py
+++ b/erpnext/config/selling.py
@@ -50,6 +50,11 @@
},
{
"type": "doctype",
+ "name": "SMS Log",
+ "description":_("Logs for maintaining sms delivery status"),
+ },
+ {
+ "type": "doctype",
"name": "Newsletter",
"description": _("Newsletters to contacts, leads."),
},
diff --git a/erpnext/setup/doctype/sms_settings/sms_settings.py b/erpnext/setup/doctype/sms_settings/sms_settings.py
index 1403ee5..9099863 100644
--- a/erpnext/setup/doctype/sms_settings/sms_settings.py
+++ b/erpnext/setup/doctype/sms_settings/sms_settings.py
@@ -5,7 +5,7 @@
import frappe
from frappe import _, throw, msgprint
-from frappe.utils import cstr, nowdate
+from frappe.utils import nowdate
from frappe.model.document import Document
@@ -63,8 +63,7 @@
}
if frappe.db.get_value('SMS Settings', None, 'sms_gateway_url'):
- ret = send_via_gateway(arg)
- msgprint(ret)
+ send_via_gateway(arg)
else:
msgprint(_("Please Update SMS Settings"))
@@ -74,12 +73,17 @@
for d in ss.get("parameters"):
args[d.parameter] = d.value
- resp = []
+ success_list = []
for d in arg.get('receiver_list'):
args[ss.receiver_parameter] = d
- resp.append(send_request(ss.sms_gateway_url, args))
+ status = send_request(ss.sms_gateway_url, args)
+ if status == 200:
+ success_list.append(d)
- return resp
+ if len(success_list) > 0:
+ args.update(arg)
+ create_sms_log(args, success_list)
+ frappe.msgprint(_("SMS sent to following numbers: {0}").format("\n" + "\n".join(success_list)))
# Send Request
# =========================================================
@@ -90,11 +94,8 @@
headers = {}
headers['Accept'] = "text/plain, text/html, */*"
conn.request('GET', api_url + urllib.urlencode(args), headers = headers) # send request
- resp = conn.getresponse() # get response
- resp = resp.read()
- if resp.status==200:
- create_sms_log()
- return resp
+ resp = conn.getresponse() # get response
+ return resp.status
# Split gateway url to server and api url
# =========================================================
@@ -109,12 +110,13 @@
# Create SMS Log
# =========================================================
-def create_sms_log(arg, sent_sms):
- sl = frappe.get_doc('SMS Log')
- sl.sender_name = arg['sender_name']
+def create_sms_log(args, sent_to):
+ sl = frappe.new_doc('SMS Log')
+ sl.sender_name = args['sender_name']
sl.sent_on = nowdate()
- sl.receiver_list = cstr(arg['receiver_list'])
- sl.message = arg['message']
- sl.no_of_requested_sms = len(arg['receiver_list'])
- sl.no_of_sent_sms = sent_sms
+ sl.message = args['message']
+ sl.no_of_requested_sms = len(args['receiver_list'])
+ sl.requested_numbers = "\n".join(args['receiver_list'])
+ sl.no_of_sent_sms = len(sent_to)
+ sl.sent_to = "\n".join(sent_to)
sl.save()
diff --git a/erpnext/utilities/doctype/sms_log/sms_log.json b/erpnext/utilities/doctype/sms_log/sms_log.json
index e3c7741..ba88c62 100644
--- a/erpnext/utilities/doctype/sms_log/sms_log.json
+++ b/erpnext/utilities/doctype/sms_log/sms_log.json
@@ -1,32 +1,58 @@
{
"autoname": "SMSLOG/.########",
- "creation": "2012-03-27 14:36:47.000000",
+ "creation": "2012-03-27 14:36:47",
"docstatus": 0,
"doctype": "DocType",
"fields": [
{
- "fieldname": "column_break0",
- "fieldtype": "Column Break",
- "permlevel": 0,
- "width": "50%"
- },
- {
"fieldname": "sender_name",
"fieldtype": "Data",
"label": "Sender Name",
- "permlevel": 0
+ "permlevel": 0,
+ "read_only": 1
},
{
"fieldname": "sent_on",
"fieldtype": "Date",
"label": "Sent On",
- "permlevel": 0
+ "permlevel": 0,
+ "read_only": 1
},
{
- "fieldname": "receiver_list",
+ "fieldname": "column_break0",
+ "fieldtype": "Column Break",
+ "permlevel": 0,
+ "read_only": 0,
+ "width": "50%"
+ },
+ {
+ "fieldname": "message",
"fieldtype": "Small Text",
- "label": "Receiver List",
- "permlevel": 0
+ "label": "Message",
+ "permlevel": 0,
+ "read_only": 1
+ },
+ {
+ "fieldname": "sec_break1",
+ "fieldtype": "Section Break",
+ "options": "Simple",
+ "permlevel": 0,
+ "precision": "",
+ "read_only": 0
+ },
+ {
+ "fieldname": "no_of_requested_sms",
+ "fieldtype": "Int",
+ "label": "No of Requested SMS",
+ "permlevel": 0,
+ "read_only": 1
+ },
+ {
+ "fieldname": "requested_numbers",
+ "fieldtype": "Small Text",
+ "label": "Requested Numbers",
+ "permlevel": 0,
+ "read_only": 1
},
{
"fieldname": "column_break1",
@@ -35,27 +61,24 @@
"width": "50%"
},
{
- "fieldname": "no_of_requested_sms",
- "fieldtype": "Int",
- "label": "No of Requested SMS",
- "permlevel": 0
- },
- {
"fieldname": "no_of_sent_sms",
"fieldtype": "Int",
"label": "No of Sent SMS",
- "permlevel": 0
+ "permlevel": 0,
+ "read_only": 1
},
{
- "fieldname": "message",
+ "fieldname": "sent_to",
"fieldtype": "Small Text",
- "label": "Message",
- "permlevel": 0
+ "label": "Sent To",
+ "permlevel": 0,
+ "precision": "",
+ "read_only": 1
}
],
"icon": "icon-mobile-phone",
"idx": 1,
- "modified": "2013-12-20 19:24:35.000000",
+ "modified": "2015-07-22 11:53:25.998578",
"modified_by": "Administrator",
"module": "Utilities",
"name": "SMS Log",