71 lines
4.0 KiB
Python
Executable File
71 lines
4.0 KiB
Python
Executable File
#!/usr/bin/python3
|
||
# Turn on debug mode.
|
||
import sys
|
||
import cgitb
|
||
import cgi
|
||
cgitb.enable()
|
||
# Print necessary headers.
|
||
print("Content-Type: text/html; charset=UTF-8\n\n")
|
||
# Connect to the database.
|
||
import pymysql
|
||
conn = pymysql.connect(
|
||
db='ats',
|
||
user='user',
|
||
passwd='password',
|
||
host='localhost',
|
||
charset='utf8')
|
||
c = conn.cursor()
|
||
|
||
# Print the contents of the database.
|
||
c.execute("SELECT * FROM ext_co_line")
|
||
|
||
print("<html><head><meta charset=\"utf-8\"><title>Телефоны</title></head><body>")
|
||
print("<table width=100%><tr valign=center><td><img src=img/logo-1.png></td><td width=100%><h2 align=center>ТЕЛЕФОНЫ</h2></td></table>")
|
||
print("<p><hr>[<a href=index.py>Справочник</a>] [Отчёты]<br><hr></p><p>")
|
||
print("<h3>Отчёты по звонкам</h3>")
|
||
print("<table><tr valign=top><td bgcolor=#e3e3e3 align=right>")
|
||
print("<form action=report.py><input type=hidden name=qwery_type value=internal>Внут.номер <input type=text name=internal value=0><br>")
|
||
print("За период с <input type=text name=date_begin value=0><br>по <input type=text name=date_end value=0>")
|
||
print("<p><input type=submit></p></form></td><td>")
|
||
|
||
param = cgi.FieldStorage()
|
||
#Передали заголовки ранее
|
||
|
||
if "qwery_type" not in param:
|
||
print("Введите параметры отчёта")
|
||
qwery_type = "last_month"
|
||
else:
|
||
qwery_type = param["qwery_type"].value
|
||
int_number = param["internal"].value
|
||
dt_begin = param["date_begin"].value
|
||
dt_end = param["date_end"].value
|
||
|
||
# строим запрос согласно параметров
|
||
if qwery_type == "internal":
|
||
# если все параметры по нулям то вываливаем весь список
|
||
if int_number == "0" and dt_begin == "0" and dt_end == "0":
|
||
print("<h4 align=center>Список звонков</h4>")
|
||
qwr = "SELECT * FROM cdr LIMIT 1000"
|
||
elif int_number != "0" and dt_begin == "0" and dt_end == "0":
|
||
# если задан номер но не задан период то вываливаем все звонки с этого номера
|
||
print("<h4 align=center>Список звонков с номера " + int_number + "</h4>")
|
||
qwr = "SELECT * FROM cdr WHERE int_number=" + int_number + " LIMIT 1000"
|
||
elif int_number != "0" and dt_begin != "0" and dt_end != "0":
|
||
# если задан номер и период то и так понятно
|
||
print("<h4 align=center>Список звонков с номера " + int_number + "</h4>")
|
||
print("За период с %s по %s" % (dt_begin, dt_end))
|
||
qwr = "SELECT * FROM cdr WHERE call_date BETWEEN CAST(\'" + dt_begin + "\' AS DATE) AND CAST(\'" + dt_end + "\' AS DATE) AND int_number=" + int_number + " LIMIT 1000"
|
||
elif int_number == "0" and dt_begin != "0" and dt_end != "0":
|
||
# если номер незадан а задан период то вываливаем звонки со всех номеров за согласно введенных дат
|
||
print("<h4 align=center>Список звонков</h4>")
|
||
print("За период с %s по %s" % (dt_begin, dt_end))
|
||
qwr = "SELECT * FROM cdr WHERE call_date BETWEEN CAST(\'" + dt_begin + "\' AS DATE) AND CAST(\'" + dt_end + "\' AS DATE) LIMIT 1000"
|
||
|
||
c.execute(qwr)
|
||
print("<table><tr bgcolor=#ffb7b7 align=center><td><b>№ п/п</b></td><td><b>Дата</b></td><td><b>Время</b></td><td><b>Внут.номер</b></td><td><b>Внеш.линия</b></td><td><b>Вызываемый номер</b></td><td><b>Ring</b></td><td><b>Длительность</b></td><td><b>АСС</b></td><td><b>Код звонка</b></td><td><b>Направление</b></td><tr>")
|
||
for row in c.fetchall():
|
||
print("<td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>" % (row[0], row[1], row[2], row[3], row[4], row[5], row[5], row[7], row[9], row[9], row[10]))
|
||
print("</table>")
|
||
|
||
print("</td></tr></table>")
|
||
print("</body></html>") |