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("" % (row[0], row[1], row[2], row[4], row[3])) + print("
№ п/пТелефонФИООписаниеЭлектро-почта
%s%s%s%s%s
") + +if qwery_type == "external": + print("

Список городских телефонов

") + c.execute("SELECT * FROM ext_co_line") + print("") + for r in c.fetchall(): + print("" % (r[0], r[1], r[2], r[3])) + print("
№ п/пЛинияТелефонОписание
%s%s%s%s
") + +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("
Внут.номер
") +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("") + for row in c.fetchall(): + print("" % (row[0], row[1], row[2], row[3], row[4], row[5], row[5], row[7], row[9], row[9], row[10])) + print("
№ п/пДатаВремяВнут.номерВнеш.линияВызываемый номерRingДлительностьАССКод звонкаНаправление
%s%s%s%s%s%s%s%s%s%s%s
") + +print("
") +print("") \ No newline at end of file