From 006e24915e205c024388c5c553fbfa1a9d8ec3ed Mon Sep 17 00:00:00 2001
From: svk28
Date: Mon, 21 Aug 2017 15:11:10 +0300
Subject: [PATCH] Added WEB scripts
---
www/favicon.png | Bin 0 -> 1939 bytes
www/img/logo-2.png | Bin 0 -> 3003 bytes
www/index.py | 66 +++++++++++++++++++++++++++++++++++++++++
www/report.py | 71 +++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 137 insertions(+)
create mode 100644 www/favicon.png
create mode 100644 www/img/logo-2.png
create mode 100755 www/index.py
create mode 100755 www/report.py
diff --git a/www/favicon.png b/www/favicon.png
new file mode 100644
index 0000000000000000000000000000000000000000..85a1f646b36cde3118be71f87931c44c70638381
GIT binary patch
literal 1939
zcmV;E2WP)WFU8GbZ8()Nlj2>E@cM*00#F-L_t(o!>yTLNRw|A
z$ItsZox15Vn@gOUS_!3%u#mt7nb9Aj^1{1ryoe;aF^Fyoq6oXG7-iGc6=4KL7b0P1
z8nePsp^!~emu_f9o7>*+@8X9Kd)?Ii@qy>+eV*_8**WKV-gC}40H6&T0Epu_
z+Q=clXw;K+J$$U0sNaivtm{nVXx7w{PEKX=y1e
z4U@@)?c2Ar{Ra*lz{to5{C`gH1MBC=dmfFD186vbIpRTVyc`h<~@5tNjafQXQhk%7_CQH+m|L!;4%EIBwh
zi0SERk>xToGhr|oV6|F<;35L-?CfMQM?^St<_vm!d*N_6Fg-mj0<>5x@cDeOTCLc(
zZ=cAG%a&e_(Uz8$RpG)0?Ck7BMn(n`K6UC8j7B5={rd+1L4f1qs
z=&0xv=jP@@uh(O8ax!eVkbnaN15hfJO!&l!6AUiUt*Zg5R4R0Jbz%Sh{Y)b(D+~4Y
z^_ZNT4Ey^W5^!i}2t3b=-1`3g`!(TK0?Orbk>%3T($Lu0h>3}bh~Y$l{r&xrN~KKr
z=+UDLZoLr*7&z0@)6vk-5H%bFG@H%Xwrv~x@EdG-BU!Ch5(FVC(ciy+)7;z~DHIBlNF*`W6YzSyc>44y6bgkX
zs~sL57NtIs#-LuW54zN&J|sS$4=pV%qCBsxtPCcTDI&nQxHu#yCo_$^ckjaKbjA({
z03MGAt*x!1d$6>$6kor74I6Ot=FO<7sbQHgwQfxuUXU&_(TXxzO6$Dzap0
zX(>!5)2i-X`6U?`7{HY)SJ?ifq$KEcIyfAT*Z~2+?RKNNxfwEfts2cwm&&J8TanpgUjWL9dJ1&4F-cK
zY1L}Atgv1W&}Or-if?(!<#Oot`mi9wO8FNS7NFPbMb+Hl!-p|3F#*5d9}-Xy1pNH@
z6Y1&cY)@c*$@4s(J$tq;WY|TM*Xzao`}dKQlq5(^m2nJ_amgWB3!*3Xg2WT>yN$Nc!-`19uvE?&GSvTk#8b4bXD0R=(8{QNw0I-RIa4mEk6M_pYV
z%w{v(ZnsFo>2%`UxpQo-L?XeMolfL#B0_3vDz09=3X{nsvRo+0+1XiK
zxNw0T9GOf8oleIr8FK^E>2yM;)3GZkK0Y4Tu3cLfE)ddgw~H*P(P%I>HU_`nkC=PZ
zGMS93tE(w3EseUnyJ_#
z7x(}3jq38d-EML^oy2h*rKYA*LPA2sjrfIy1+v@i1b{L!GDt3$Zyex8{*?jX{|-M9
Z{RjM|I}OjDV>AE&002ovPDHLkV1lV8udDz7
literal 0
HcmV?d00001
diff --git a/www/img/logo-2.png b/www/img/logo-2.png
new file mode 100644
index 0000000000000000000000000000000000000000..3440a6b18a9a56e14f057400c62aec0d2d049639
GIT binary patch
literal 3003
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
Mjl$YIv%(Yq1G;8s&j0`b
literal 0
HcmV?d00001
diff --git a/www/index.py b/www/index.py
new file mode 100755
index 0000000..3542b10
--- /dev/null
+++ b/www/index.py
@@ -0,0 +1,66 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+# Turn on debug mode.
+import sys
+import cgi
+import cgitb
+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()
+# Insert some example data.
+#c.execute("INSERT INTO numbers VALUES (1, 'One!')")
+#c.execute("INSERT INTO numbers VALUES (2, 'Two!')")
+#c.execute("INSERT INTO numbers VALUES (3, 'Three!')")
+#conn.commit()
+# Print the contents of the database.
+#c.execute("SELECT * FROM int_number")
+print(" ")
+print("Телефоны ")
+print("ТЕЛЕФОНЫ
")
+print("
[Справочник] [Отчёты ]
")
+print("
Телефонный справочник ")
+print("Внутренние Городские ")
+
+param = cgi.FieldStorage()
+#Передали заголовки ранее
+param = cgi.FieldStorage() #Здесь пустых значений нет!
+if "qwery_type" not in param:
+ qwery_type="internal"
+else:
+ qwery_type = param["qwery_type"].value
+
+if "order" not in param:
+ order="fio"
+else:
+ order = param["order"].value
+
+if qwery_type == "internal":
+ print("Список внутренних телефонов ")
+ qwr = "SELECT * FROM int_number ORDER by " + order
+ c.execute(qwr)
+ print("№ п/п Телефон ФИО Описание Электро-почта ")
+ for row in c.fetchall():
+ print("%s %s %s %s %s " % (row[0], row[1], row[2], row[4], row[3]))
+ print("
")
+
+if qwery_type == "external":
+ print("Список городских телефонов ")
+ c.execute("SELECT * FROM ext_co_line")
+ print("№ п/п Линия Телефон Описание ")
+ for r in c.fetchall():
+ print(" %s %s %s %s " % (r[0], r[1], r[2], r[3]))
+ print("
")
+
+print("
")
+
+print("")
\ No newline at end of file
diff --git a/www/report.py b/www/report.py
new file mode 100755
index 0000000..3cc696e
--- /dev/null
+++ b/www/report.py
@@ -0,0 +1,71 @@
+#!/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("Телефоны ")
+print("ТЕЛЕФОНЫ
")
+print("
[Справочник ] [Отчёты]")
+print("
Отчёты по звонкам ")
+print("")
+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("
")
+print("")
\ No newline at end of file