[fix] SMS status and log
This commit is contained in:
parent
f5ea801b69
commit
098760f0e2
@ -42,6 +42,11 @@ def get_data():
|
|||||||
"name": "SMS Center",
|
"name": "SMS Center",
|
||||||
"description":_("Send mass SMS to your contacts"),
|
"description":_("Send mass SMS to your contacts"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "doctype",
|
||||||
|
"name": "SMS Log",
|
||||||
|
"description":_("Logs for maintaining sms delivery status"),
|
||||||
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -48,6 +48,11 @@ def get_data():
|
|||||||
"name": "SMS Center",
|
"name": "SMS Center",
|
||||||
"description":_("Send mass SMS to your contacts"),
|
"description":_("Send mass SMS to your contacts"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "doctype",
|
||||||
|
"name": "SMS Log",
|
||||||
|
"description":_("Logs for maintaining sms delivery status"),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "doctype",
|
"type": "doctype",
|
||||||
"name": "Newsletter",
|
"name": "Newsletter",
|
||||||
|
@ -5,7 +5,7 @@ from __future__ import unicode_literals
|
|||||||
import frappe
|
import frappe
|
||||||
|
|
||||||
from frappe import _, throw, msgprint
|
from frappe import _, throw, msgprint
|
||||||
from frappe.utils import cstr, nowdate
|
from frappe.utils import nowdate
|
||||||
|
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
@ -63,8 +63,7 @@ def send_sms(receiver_list, msg, sender_name = ''):
|
|||||||
}
|
}
|
||||||
|
|
||||||
if frappe.db.get_value('SMS Settings', None, 'sms_gateway_url'):
|
if frappe.db.get_value('SMS Settings', None, 'sms_gateway_url'):
|
||||||
ret = send_via_gateway(arg)
|
send_via_gateway(arg)
|
||||||
msgprint(ret)
|
|
||||||
else:
|
else:
|
||||||
msgprint(_("Please Update SMS Settings"))
|
msgprint(_("Please Update SMS Settings"))
|
||||||
|
|
||||||
@ -74,12 +73,17 @@ def send_via_gateway(arg):
|
|||||||
for d in ss.get("parameters"):
|
for d in ss.get("parameters"):
|
||||||
args[d.parameter] = d.value
|
args[d.parameter] = d.value
|
||||||
|
|
||||||
resp = []
|
success_list = []
|
||||||
for d in arg.get('receiver_list'):
|
for d in arg.get('receiver_list'):
|
||||||
args[ss.receiver_parameter] = d
|
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
|
# Send Request
|
||||||
# =========================================================
|
# =========================================================
|
||||||
@ -91,10 +95,7 @@ def send_request(gateway_url, args):
|
|||||||
headers['Accept'] = "text/plain, text/html, */*"
|
headers['Accept'] = "text/plain, text/html, */*"
|
||||||
conn.request('GET', api_url + urllib.urlencode(args), headers = headers) # send request
|
conn.request('GET', api_url + urllib.urlencode(args), headers = headers) # send request
|
||||||
resp = conn.getresponse() # get response
|
resp = conn.getresponse() # get response
|
||||||
resp = resp.read()
|
return resp.status
|
||||||
if resp.status==200:
|
|
||||||
create_sms_log()
|
|
||||||
return resp
|
|
||||||
|
|
||||||
# Split gateway url to server and api url
|
# Split gateway url to server and api url
|
||||||
# =========================================================
|
# =========================================================
|
||||||
@ -109,12 +110,13 @@ def scrub_gateway_url(url):
|
|||||||
|
|
||||||
# Create SMS Log
|
# Create SMS Log
|
||||||
# =========================================================
|
# =========================================================
|
||||||
def create_sms_log(arg, sent_sms):
|
def create_sms_log(args, sent_to):
|
||||||
sl = frappe.get_doc('SMS Log')
|
sl = frappe.new_doc('SMS Log')
|
||||||
sl.sender_name = arg['sender_name']
|
sl.sender_name = args['sender_name']
|
||||||
sl.sent_on = nowdate()
|
sl.sent_on = nowdate()
|
||||||
sl.receiver_list = cstr(arg['receiver_list'])
|
sl.message = args['message']
|
||||||
sl.message = arg['message']
|
sl.no_of_requested_sms = len(args['receiver_list'])
|
||||||
sl.no_of_requested_sms = len(arg['receiver_list'])
|
sl.requested_numbers = "\n".join(args['receiver_list'])
|
||||||
sl.no_of_sent_sms = sent_sms
|
sl.no_of_sent_sms = len(sent_to)
|
||||||
|
sl.sent_to = "\n".join(sent_to)
|
||||||
sl.save()
|
sl.save()
|
||||||
|
@ -1,32 +1,58 @@
|
|||||||
{
|
{
|
||||||
"autoname": "SMSLOG/.########",
|
"autoname": "SMSLOG/.########",
|
||||||
"creation": "2012-03-27 14:36:47.000000",
|
"creation": "2012-03-27 14:36:47",
|
||||||
"docstatus": 0,
|
"docstatus": 0,
|
||||||
"doctype": "DocType",
|
"doctype": "DocType",
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
|
||||||
"fieldname": "column_break0",
|
|
||||||
"fieldtype": "Column Break",
|
|
||||||
"permlevel": 0,
|
|
||||||
"width": "50%"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"fieldname": "sender_name",
|
"fieldname": "sender_name",
|
||||||
"fieldtype": "Data",
|
"fieldtype": "Data",
|
||||||
"label": "Sender Name",
|
"label": "Sender Name",
|
||||||
"permlevel": 0
|
"permlevel": 0,
|
||||||
|
"read_only": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "sent_on",
|
"fieldname": "sent_on",
|
||||||
"fieldtype": "Date",
|
"fieldtype": "Date",
|
||||||
"label": "Sent On",
|
"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",
|
"fieldtype": "Small Text",
|
||||||
"label": "Receiver List",
|
"label": "Message",
|
||||||
"permlevel": 0
|
"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",
|
"fieldname": "column_break1",
|
||||||
@ -34,28 +60,25 @@
|
|||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"width": "50%"
|
"width": "50%"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"fieldname": "no_of_requested_sms",
|
|
||||||
"fieldtype": "Int",
|
|
||||||
"label": "No of Requested SMS",
|
|
||||||
"permlevel": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"fieldname": "no_of_sent_sms",
|
"fieldname": "no_of_sent_sms",
|
||||||
"fieldtype": "Int",
|
"fieldtype": "Int",
|
||||||
"label": "No of Sent SMS",
|
"label": "No of Sent SMS",
|
||||||
"permlevel": 0
|
"permlevel": 0,
|
||||||
|
"read_only": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "message",
|
"fieldname": "sent_to",
|
||||||
"fieldtype": "Small Text",
|
"fieldtype": "Small Text",
|
||||||
"label": "Message",
|
"label": "Sent To",
|
||||||
"permlevel": 0
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"read_only": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"icon": "icon-mobile-phone",
|
"icon": "icon-mobile-phone",
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
"modified": "2013-12-20 19:24:35.000000",
|
"modified": "2015-07-22 11:53:25.998578",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Utilities",
|
"module": "Utilities",
|
||||||
"name": "SMS Log",
|
"name": "SMS Log",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user