-
Notifications
You must be signed in to change notification settings - Fork 0
/
object_awater.php
133 lines (124 loc) · 5.45 KB
/
object_awater.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?php
print '<table border="0" cellpadding="0" cellspacing="0"><tbody>';
print '<tr><td align=center class="m_separator" colspan="2">Îò÷åò àáîíåíòà çà '.$prevmonth.'</td></tr>';
print '<tr><td align="left" class="simple" colspan="2" style="font-size:12px"><strong>Æóðíàë àâàðèéíûõ ñðàáàòûâàíèé (Âîäà) çà '.$prevmonth.'</strong></td></tr>';
print '<tr><td align=left colspan="2">';
print '<table width="1000px">';
print '<tr><td class="m_separator">Äàòà</td><td class="m_separator" align="center">Âðåìÿ</td>
<td class="m_separator" align="center">Çíà÷åíèå</td>
<td class="m_separator" align="center">Ïðèìå÷àíèÿ</td></tr>';
require_once 'phpexcel/Classes/PHPExcel.php';
require_once 'phpexcel/Classes/PHPExcel/Cell/AdvancedValueBinder.php';
PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_AdvancedValueBinder() );
$objPHPExcel = PHPExcel_IOFactory::load('reports/avar_water.xls');
// Set properties
$objPHPExcel->getProperties()->setCreator("rpksu")
->setLastModifiedBy("Olejek")
->setTitle("Water report")
->setSubject("Water report")
->setDescription("Water report")
->setKeywords("office 2003 openxml php")
->setCategory("Report");
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
$today=getdate();
if ($_GET["year"]=='') $ye=$today["year"];
else $ye=$_GET["year"];
if ($_GET["month"]=='') $mn=$today["mon"];
else $mn=$_GET["month"];
$repdata=$device.'_'.$mn.$ye;
$mn--;
$ts=0; $tm=1; $dy=31;
$st=sprintf ("%d%02d01000000",$ye,$mn);
$fn=sprintf ("%d%02d01000000",$ye,$mn+1);
if (!checkdate ($mn,31,$ye)) { $dy=30; }
if (!checkdate ($mn,30,$ye)) { $dy=29; }
if (!checkdate ($mn,29,$ye)) { $dy=28; }
for ($tn=0; $tn<=800; $tn++)
{
if ($tm>$dy) break;
$date1[$tn]=sprintf ("%d%02d%02d%02d0000",$ye,$mn,$tm,$ts);
$dat[$tn]=sprintf ("%d-%02d-%02d %02d:00:00",$ye,$mn,$tm,$ts);
$data0[$tn]=$data1[$tn]=$data2[$tn]='-';
// echo $dat[$tn].'<br>';
if ($ts>=23)
{
$ts=0;
$tm++;
}
$ts++;
}
$qnt=$tn;
$query = 'SELECT * FROM data WHERE type=1 AND (prm=12 OR prm=16) AND device='.$device.' AND date>='.$st.' AND date<'.$fn.' ORDER BY date DESC';
// echo $query;
$a = mysql_query ($query,$i);
if ($a) $uy = mysql_fetch_row ($a);
while ($uy)
{
$x=$qnt;
for ($tn=0; $tn<=$qnt; $tn++)
if ($uy[2]==$dat[$tn]) $x=$tn;
if ($uy[8]==12 && $uy[6]==6) { $data0[$x]=number_format($uy[3],3); $datasr[$x%24]+=$data0[$x]; $cnt[$x%24]++; }
if ($uy[8]==16 && $uy[6]==2) $data2[$x]=number_format($uy[3],3);
$uy = mysql_fetch_row ($a);
}
for ($x=0;$x<24;$x++)
if ($cnt[$x]) $sredvoda[$x]=$datasr[$x]/$cnt[$x];
$priznak1=0; // otkluchenie
$priznak2=0; // utechka
for ($x=0; $x<=$qnt; $x++)
{
//echo $data0[$x].' '.$sredvoda[$x%24].' '.$priznak2.'<br>';
if ($data0[$x]>0 && $data0[$x]>1.15*$sredvoda[$x%24] && !$priznak2)
{
$priznak2=1; // echo $dat[$x].' '.$data0[$x].' '.$sredvoda[$x].' utechka<br>';
$query = 'SELECT * FROM register WHERE device='.$device.' AND value='.$data0[$x].' AND date='.$date1[$x];
//echo $query;
$y = mysql_query ($query,$i);
if ($y) $uy = mysql_fetch_row ($y);
if (!$uy)
{
$query = 'INSERT INTO register SET device='.$device.',type=2,value='.$data0[$x].',date='.$date1[$x].',descr=\'Óâåëè÷åíèå ðàñõîäà â òåêóùèé ìîìåíò âðåìåíè ïî îòíîøåíèþ ê ïðèâåäåííîé (ñðåäíåé) âåëè÷èíå àíàëîãè÷íûõ ìîìåíòîâ ïðåäûäóùèõ ïåðèîäîâ ñâûøå 15%\'';
//echo $query;
$y = mysql_query ($query,$i);
}
}
if ($data2[$x]==0 && !$priznak1)
{
$priznak1=1; // echo $dat[$x].' '.$data0[$x].' '.$data2[$x].' otkluchenis<br>';
$query = 'SELECT * FROM register WHERE device='.$device.' AND value='.$data0[$x].' AND date='.$date1[$x];
//echo $query;
$y = mysql_query ($query,$i);
if ($y) $uy = mysql_fetch_row ($y);
if (!$uy)
{
$query = 'INSERT INTO register SET device='.$device.',type=3,value='.$data0[$x].',date='.$date1[$x].',descr=\'Îáðûâ, îòêëþ÷åíèå - ïàäåíèå äàâëåíèÿ íà âõîäÿùåì òðóáîïðîâîäå äî "0"\'';
//echo $query;
$y = mysql_query ($query,$i);
}
}
}
$query = 'SELECT * FROM register WHERE device='.$device.' AND type<10 ORDER BY date DESC';
$y = mysql_query ($query,$i); $x=5;
if ($y) $uy = mysql_fetch_row ($y);
while ($uy)
{
$dt=substr($uy[5],0,10); $tm=substr($uy[5],11,18);
print '<tr><td class="m_separator">'.$dt.'</td><td class="menuitem" align="center">'.$tm.'</td>
<td class="menuitem">'.$uy[4].'</td><td class="menuitem">'.$uy[3].'</td></tr>';
$yach='A'.number_format($x); $objPHPExcel->getActiveSheet()->setCellValue($yach,$dt);
$yach='B'.number_format($x); $objPHPExcel->getActiveSheet()->setCellValue($yach,$tm);
$yach='C'.number_format($x);
if ($uy[2]==2) $objPHPExcel->getActiveSheet()->setCellValue($yach,iconv ('CP1251','UTF-8',"îáðûâ, îòêëþ÷åíèå"));
else $objPHPExcel->getActiveSheet()->setCellValue($yach,iconv ('CP1251','UTF-8',"óòå÷êà"));
$yach='D'.number_format($x); $objPHPExcel->getActiveSheet()->setCellValue($yach,iconv ('CP1251','UTF-8',$uy[3]));
$uy = mysql_fetch_row ($y); $x++;
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$filename='reports/report_awater_'.$repdata.'.xlsx';
$objWriter->save($filename);
print '<tr><td align=center class="menuitem" colspan=3><a href="'.$filename.'">Ñêà÷àòü îò÷åò â ôîðìàòå Excel</a></td></tr>';
print '</table>';
print '</table></td></tr>';
print '</table>';
?>