")
+print(" | ")
+
+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("Список звонков")
+ qwr = "SELECT * FROM cdr LIMIT 1000"
+ elif int_number != "0" and dt_begin == "0" and dt_end == "0":
+ # если задан номер но не задан период то вываливаем все звонки с этого номера
+ print("Список звонков с номера " + int_number + "")
+ qwr = "SELECT * FROM cdr WHERE int_number=" + int_number + " LIMIT 1000"
+ elif int_number != "0" and dt_begin != "0" and dt_end != "0":
+ # если задан номер и период то и так понятно
+ print("Список звонков с номера " + int_number + "")
+ 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("Список звонков")
+ 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("№ п/п | Дата | Время | Внут.номер | Внеш.линия | Вызываемый номер | Ring | Длительность | АСС | Код звонка | Направление | ")
+ for row in c.fetchall():
+ print("%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]))
+ print(" ")
+
+print(" |