1 #include <infocon.style>
5 session_name('STEMPEL');
13 for ($idx=0; $idx < $_POST["fields"]; $idx++) {
14 if (isset($_POST["oid_".$idx])) {
15 $query = sprintf('UPDATE stempel SET status=%d WHERE oid=%d',
16 $_POST["status"], $_POST["oid_".$idx]);
18 $sth = pg_exec ($dbh, $query);
21 return sprintf("<br>%d records updated.", $count);
25 function display_tables()
33 $table_head = '<h3 class="bar">Kunde: %s</h3><script type="text/javascript">plant(%d);</script>
34 <form action="status.php" method="POST">
35 <table class="smallfont border" width="100%%" cellpadding=0 cellspacing=0>
37 <th width=15%%>Datum</th>
38 <th width=5%%>Dauer</th>
39 <th width=5%%>St.</th>
40 <th width=75%% align=left>Verwendungszweck</th>
43 if (!is_array($stati))
44 $stati = find_status();
46 $table_foot = '</table><div align="center"><p>';
48 foreach ($stati as $k=>$v)
49 $table_foot .= sprintf('<input type="radio" name="status" value="%s"%s>%s ', $k, 0==$k?' checked':'', $v);
50 $table_foot .= '<input type="submit" class="button" value="Aktualisieren"></p></div>'.
51 '<input type="hidden" name="fields" value="%d">'.
54 $table_row = '<tr class=t%d><td>%s</td><td align="center">%s</td><td align="center">%s</td><td>%s</td></tr>';
55 $table_sum = '<tr class="t%d"><td> </td><td align="center">%s</td><td> </td><td>Summe</td></tr>';
57 $query = "SELECT stempel.oid,start,customer,time,task,kurz FROM stempel JOIN stempel_status ON (stempel.status = stempel_status.id) WHERE time IS NOT NULL ";
58 if (isset($month) && strlen($month))
59 $query .= "AND cast(start AS TEXT) LIKE '".$month."-%' ";
60 if (isset($cust) && strlen($cust))
61 $query .= "AND customer ='".$cust."' ";
63 if (isset($status) && strlen($status)) {
65 $query .= "AND status = $status ";
67 $query .= "AND status = 0 ";
68 $query .= "ORDER BY customer,start";
70 $sth = pg_exec ($dbh, $query);
74 while ($row = pg_fetch_array ($sth)) {
76 if ($customer != $row['customer']) {
77 if (strlen($customer)) {
78 printf($table_sum, $color, min2hour($sum));
79 printf($table_foot, $fieldnr);
82 printf($table_head, ucfirst($row['customer']), $form);
83 $customer = $row['customer'];
90 $d = explode(' ', $row['start']);
92 $check = sprintf('<input type="checkbox" class="checkbox" name="oid_'.$fieldnr++.'" value="'.$row['oid'].'" onclick="add_sum(%d,this)">',$form);
93 printf($table_row, $color, $check.$d[0], min2hour($row['time']), $row['kurz'], $row['task']);
96 if (pg_num_rows($sth) > 0) {
97 printf($table_sum, $color, min2hour($sum));
98 printf($table_foot, $fieldnr);
102 function find_customers()
107 $query = "SELECT DISTINCT customer FROM stempel ORDER BY customer";
108 $sth = pg_exec ($dbh, $query);
110 while ($row = pg_fetch_array ($sth))
116 $dbh = pg_pconnect ("<dbhost>", "<dbport>", "<dbname>")
117 or die("Unable to connect to SQL server");
119 pg_exec ($dbh, "SET DateStyle = 'ISO'") or die("Datenbank-Abfrage!");
121 if (isset($_POST["status"]) && isset($_POST["fields"])) {
123 $_SESSION['redirect'] = true;
124 header('Location: status.php');
126 } elseif ($_SESSION['redirect']) {
127 $month = $_SESSION['save']["month"];
128 $cust = $_SESSION['save']["customer"];
129 $status = $_SESSION['save']["status"];
130 $_SESSION['redirect'] = false;
132 if (isset($_GET['month'])) {
133 $month = $_GET['month'];
134 $_SESSION['save']['month'] = $month;
135 unset($_SESSION['save']['customer']);
136 unset($_SESSION['save']['status']);
138 if (isset($_POST["filter"])) {
139 $month = $_POST["month"];
140 $cust = $_POST["customer"];
141 $status = $_POST["status"];
142 $_SESSION['save']['month'] = $month;
143 $_SESSION['save']['customer'] = $cust;
144 $_SESSION['save']['status'] = $status;
146 $month = date('Y-m');
147 $_SESSION['save']['month'] = $month;
148 unset($_SESSION['save']['customer']);
149 unset($_SESSION['save']['status']);
154 <script type="text/javascript">
155 function check(id, value)
157 var form = document.forms[id];
158 var sum = document.getElementById('sum_'+id.toString());
161 for (i=0; i< form.elements.length; i++) {
162 if (form.elements[i].name.substr(0,4) == 'oid_') {
163 form.elements[i].checked = value;
165 var ta = form.elements[i].parentNode.nextSibling.innerHTML.split(':');
166 newval = newval + parseInt(ta[0]) * 60 + parseInt(ta[1]);
171 sum.innerHTML = newval.toString();
176 document.write('<div class="jscode">');
177 document.write('<a href="javascript:check('+form+',true)">Check all</a>');
178 document.write(" / ");
179 document.write('<a href="javascript:check('+form+',false)">Uncheck all</a>');
180 document.write(" ");
181 document.write('<span id="sum_'+form+'" class="sum">0</span>');
182 document.write(" ");
183 document.write('</div>');
187 function add_sum(form, checkbox)
189 var sum = document.getElementById('sum_'+form.toString());
192 var ta = checkbox.parentNode.nextSibling.innerHTML.split(':');
193 var time = parseInt(ta[0]) * 60 + parseInt(ta[1]);
195 if (checkbox.checked)
196 newval = parseInt(sum.innerHTML) + time;
198 newval = parseInt(sum.innerHTML) - time;
199 sum.innerHTML = newval.toString();
203 <style type="text/css">
211 border: 1px solid #9b9b9b;
218 <page func=InfoCon title="Stempeluhr">
227 <h3 class=bar>Display</h3>
229 <form action=status.php method=POST>
232 if (!is_array($months))
233 $months = find_months();
235 printf('<option value=""%s>alle</option>', !strlen($month)?' selected':'');
236 foreach ($months as $m) {
237 printf('<option value="%s"%s>%s</option>', $m, $month==$m?' selected':'', $m);
242 <select name=customer>
244 if (!is_array($customers))
245 $customers = find_customers();
247 printf('<option value=""%s>alle</option>', !strlen($cust)?' selected':'');
248 foreach ($customers as $c) {
249 printf('<option value="%s"%s>%s</option>', $c, $cust==$c?' selected':'', $c);
255 if (!is_array($stati))
256 $stati = find_status();
258 printf('<input type="radio" name="status" value="all"%s>alle ', $status=='all'?' checked':'');
259 foreach ($stati as $k=>$v)
260 printf('<input type="radio" name="status" value="%s"%s>%s ', $k, $status==$k?' checked':'', $v);
263 <input type="hidden" name="filter" value="form">
264 <input class="button" type="submit" value="Display">