Merge branch 'master' of github.com:webnotes/erpnext

This commit is contained in:
Anand Doshi 2013-02-25 18:20:47 +05:30
commit 1a6c457fb5

View File

@ -30,8 +30,6 @@ class DocType:
self.doc = doc self.doc = doc
self.doclist = doclist self.doclist = doclist
# validate receiver numbers
# =========================================================
def validate_receiver_nos(self,receiver_list): def validate_receiver_nos(self,receiver_list):
validated_receiver_list = [] validated_receiver_list = []
for d in receiver_list: for d in receiver_list:
@ -39,38 +37,21 @@ class DocType:
invalid_char_list = [' ', '+', '-', '(', ')'] invalid_char_list = [' ', '+', '-', '(', ')']
for x in invalid_char_list: for x in invalid_char_list:
d = d.replace(x, '') d = d.replace(x, '')
# mobile no validation for erpnext gateway validated_receiver_list.append(d)
if webnotes.conn.get_value('SMS Settings', None, 'sms_gateway_url'):
mob_no = d
else:
if not d.startswith("0") and len(d) == 10:
mob_no = "91" + d
elif d.startswith("0") and len(d) == 11:
mob_no = "91" + d[1:]
elif len(d) == 12:
mob_no = d
else:
msgprint("Invalid mobile no : " + cstr(d))
raise Exception
if not mob_no.isdigit():
msgprint("Invalid mobile no : " + cstr(mob_no))
raise Exception
validated_receiver_list.append(mob_no)
if not validated_receiver_list: if not validated_receiver_list:
msgprint("Please enter valid mobile nos") msgprint("Please enter valid mobile nos", raise_exception=1)
raise Exception
return validated_receiver_list return validated_receiver_list
def get_sender_name(self): def get_sender_name(self):
"returns name as SMS sender" "returns name as SMS sender"
sender_name = webnotes.conn.get_value('Global Defaults', None, 'sms_sender_name') or 'ERPNXT' sender_name = webnotes.conn.get_value('Global Defaults', None, 'sms_sender_name') or \
if len(sender_name) > 6: 'ERPNXT'
if len(sender_name) > 6 and \
webnotes.conn.get_value("Control Panel", None, "country") == "India":
msgprint(""" msgprint("""
As per TRAI rule, sender name must be exactly 6 characters. As per TRAI rule, sender name must be exactly 6 characters.
Kindly change sender name in Setup --> Global Defaults. Kindly change sender name in Setup --> Global Defaults.
@ -82,8 +63,8 @@ class DocType:
def get_contact_number(self, arg): def get_contact_number(self, arg):
"returns mobile number of the contact" "returns mobile number of the contact"
args = load_json(arg) args = load_json(arg)
number = sql('select mobile_no, phone from tabContact where name=%s and %s=%s' % ('%s', args['key'], '%s'),\ number = sql("""select mobile_no, phone from tabContact where name=%s and %s=%s""" %
(args['contact_name'], args['value'])) ('%s', args['key'], '%s'), (args['contact_name'], args['value']))
return number and (number[0][0] or number[0][1]) or '' return number and (number[0][0] or number[0][1]) or ''
def send_form_sms(self, arg): def send_form_sms(self, arg):
@ -91,9 +72,6 @@ class DocType:
args = load_json(arg) args = load_json(arg)
self.send_sms([str(args['number'])], str(args['message'])) self.send_sms([str(args['number'])], str(args['message']))
# Send SMS
# =========================================================
def send_sms(self, receiver_list, msg, sender_name = ''): def send_sms(self, receiver_list, msg, sender_name = ''):
receiver_list = self.validate_receiver_nos(receiver_list) receiver_list = self.validate_receiver_nos(receiver_list)
@ -103,15 +81,11 @@ class DocType:
'sender_name' : sender_name or self.get_sender_name() 'sender_name' : sender_name or self.get_sender_name()
} }
# personalized or erpnext gateway
if webnotes.conn.get_value('SMS Settings', None, 'sms_gateway_url'): if webnotes.conn.get_value('SMS Settings', None, 'sms_gateway_url'):
ret = self.send_via_personalized_gateway(arg) ret = self.send_via_gateway(arg)
msgprint(ret) msgprint(ret)
def send_via_gateway(self, arg):
# Send sms via personalized gateway
# ==========================================================
def send_via_personalized_gateway(self, arg):
ss = get_obj('SMS Settings', 'SMS Settings', with_children=1) ss = get_obj('SMS Settings', 'SMS Settings', with_children=1)
args = {ss.doc.message_parameter : arg.get('message')} args = {ss.doc.message_parameter : arg.get('message')}
for d in getlist(ss.doclist, 'static_parameter_details'): for d in getlist(ss.doclist, 'static_parameter_details'):