Отчёты\n'
return txtMenu
@@ -98,15 +101,31 @@ def ReportForm():
def ReportData(environ):
paramDict = {item.split('=')[0]: item.split('=')[1] for item in environ['QUERY_STRING'].split('&')}
- numbers = paramDict.get('int_number')
- date_begin = paramDict.get('date_begin')
- date_end = paramDict.get('date_end')
+
+ # проверка корректности параметров
+ # внутренний номер (3 цифры 100-999)
+ templateNumber = '(^[1-9][0-9][0-9]$)'
+ if re.match(templateNumber, str(paramDict.get('int_number'))) is not None:
+ numbers = paramDict.get('int_number')
+ else:
+ return ErrorMessage('Введите внутренний номер')
+ # проверка и преобразование дат в удобоваримый для субд формат
+ templateDate = '^(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)[0-9][0-9]$'
+ if re.match(templateDate, str(paramDict.get('date_begin'))) is not None:
+ date_begin = time.strftime("%Y-%m-%d", time.strptime(str(paramDict.get('date_begin')), "%d.%m.%Y"))
+ else:
+ return ErrorMessage('Неверный формат даты начала периода')
+
+ if re.match(templateDate, paramDict.get('date_end')) is not None:
+ date_end = time.strftime("%Y-%m-%d", time.strptime(str(paramDict.get('date_end')), "%d.%m.%Y"))
+ else:
+ return ErrorMessage('Неверный формат даты окончания периода')
conn = connectDB()
c = conn.cursor()
order = 'call_date'
result = 'Список звонков с номера {}'.format(numbers)
- qwr = "SELECT * FROM ats.cdr where int_number=\'{}\' AND call_date BETWEEN CAST(\'{}\' AS DATE) AND CAST(\'{}\' AS DATE) LIMIT 1000".format(numbers, date_begin, date_end)
+ qwr = "SELECT * FROM cdr where int_number=\'{}\' AND call_date BETWEEN CAST(\'{}\' AS DATE) AND CAST(\'{}\' AS DATE) LIMIT 1000".format(numbers, date_begin, date_end)
c.execute(qwr)
listHeader = '' \
@@ -116,12 +135,14 @@ def ReportData(environ):
result = result + listHeader
for row in c.fetchall():
- rowData = '%s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | '\
- % (row[0], row[1], row[2], row[3], row[4], row[5], row[5], row[7], row[9], row[9], row[10])
+ rowData = '{} | {} | {} | {} | {} | {} | {} | {} | {} | {} | {} | '\
+ .format(row[0], row[1], row[2], row[3], row[4], row[5], row[5], row[7], row[9], row[9], row[10])
result = result + rowData
return (result + "
| \n" + qwr)
+def ErrorMessage(txt):
+ return ('{} | '.format(txt))
def connectDB():
c = pymysql.connect(