author | Bettina Schwarzer |
Fri, 20 Dec 2013 15:19:32 +0100 | |
changeset 41 | 9c668cd391fa |
parent 40 | 6f4b105daa24 |
child 42 | cfc409017ba8 |
permissions | -rw-r--r-- |
40 | 1 |
<?php |
2 |
||
3 |
/** |
|
4 |
* @author Bettina Schwarzer, Fritz-Haber-Institut |
|
5 |
* @copyright 08/2013 |
|
6 |
* |
|
7 |
* Report Keytyp wo/wer, Anzahl (MA und Depots) |
|
8 |
*/ |
|
9 |
||
10 |
error_reporting(E_ALL ^ E_NOTICE); |
|
11 |
||
12 |
session_start(); |
|
13 |
if (! isset($_SESSION["userid"])) |
|
14 |
{ |
|
15 |
include_once ($_SERVER["DOCUMENT_ROOT"]."/fhiiqm/inc/func_lib.inc.php"); |
|
16 |
login($_SERVER["PHP_SELF"]); |
|
17 |
exit; |
|
18 |
} |
|
19 |
||
20 |
if (is_null($_SESSION["recht"]) || (!is_null($_SESSION["recht"]) && !in_array("kr",$_SESSION["recht"]) && !in_array("ke",$_SESSION["recht"]))) |
|
21 |
{ |
|
22 |
header("Location: start.php"); |
|
23 |
exit; |
|
24 |
} |
|
25 |
||
26 |
include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php"); |
|
27 |
if (!isset($dbc) || !$dbc) $dbc = new dbconnection(); |
|
28 |
||
29 |
// zulaessige Depots |
|
30 |
$uid = $_SESSION["userid"]; |
|
31 |
$sql = "SELECT depot_ID FROM KeyDepot_userweb WHERE userid = '$uid'"; |
|
32 |
$res = $dbc -> queryObjectArray($sql); |
|
33 |
foreach ($res as $row) |
|
34 |
$adep[] = $row->depot_ID; |
|
35 |
||
36 |
?> |
|
37 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
38 |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
39 |
||
40 |
<head> |
|
41 |
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> |
|
42 |
<link href="/fhiiqm/css/db.css" rel="STYLESHEET" type="TEXT/CSS" media="screen"/> |
|
43 |
<link href="/fhiiqm/css/db_print.css" rel="STYLESHEET" type="TEXT/CSS" media="print"/> |
|
44 |
<title>Report Übersicht Schlüsseltypen</title> |
|
45 |
</head> |
|
46 |
||
47 |
<body> |
|
48 |
<?php |
|
49 |
echo " "; |
|
50 |
echo "<div class=\"float-br smaller\" valign='top'>"; |
|
51 |
echo " user: " . $_SESSION["userid"]; |
|
52 |
echo " <a class='sc' href='/fhiiqm/logout.php' title='Session beenden'>logout</a></div>\n"; |
|
53 |
echo "<div class=\"float-r\"><img src=\"/fhiiqm/img/key.png\" border=\"0\" alt=\"Keytyp Ü:bersicht\" title=\"Schlüsseltypen Bestand\"/></div>\n"; |
|
54 |
||
55 |
$ky = $_POST["ky"]; // Parameter aus Form |
|
56 |
$search = $_POST["search"]; |
|
57 |
if (!$search) $search = $_GET["s"]; |
|
58 |
||
59 |
$zeil = $ky["z"]; |
|
60 |
if (!$zeil) $zeil = $_GET["z"]; |
|
61 |
if (!$zeil) $zeil = 9999; // Anzahl der gezeigten Zeilen |
|
62 |
$start = $_GET["st"]; // Start bei DS $start+1 |
|
63 |
if (!$start) $start=0; |
|
64 |
||
65 |
if (!is_array($ky)) |
|
66 |
{ |
|
67 |
$ky["kt"] = $_GET["k"]; |
|
68 |
$ky["sort1"] = $_GET["s1"]; |
|
69 |
$ky["sort2"] = $_GET["s2"]; |
|
70 |
} |
|
71 |
$_GET["k"] = $ky["kt"]; |
|
72 |
$_GET["s1"]= $ky["sort1"]; |
|
73 |
$_GET["s2"]= $ky["sort2"]; |
|
74 |
$_GET["z"] = $zeil; |
|
75 |
||
76 |
if ($search) |
|
77 |
{ |
|
78 |
echo "<span class='sc'>"; |
|
79 |
echo "<br /> <a href=\"/fhiiqm/keytyp_report.php\" target=\"_self\" title=\"Berichte\" class='sc'>« zur Berichtsübersicht</a>"; |
|
80 |
echo " | <a href=\"" . $_SERVER["PHP_SELF"] . "\" target=\"_self\" title=\"Keytyp Bestand\" class=\"sc\">neuer Bericht Bestand Schlüsseltyp gesamt</a>\n"; |
|
81 |
echo "</span>"; |
|
82 |
} |
|
83 |
||
84 |
echo "<div align='center'>\n"; |
|
85 |
echo "<p><b>Bericht Bestand Schlüsseltyp Depot und Mitarbeiter</b></p>\n"; |
|
86 |
echo "<p>- zeigt alle Schlüsseltypen und deren Besitzer aus dem gewählten Depot und im Depot selbst<br /> |
|
87 |
- wenn kein Depot gewählt wurde, werden alle oder nur der gewählte Schlüsseltyp von allen Depots angezeigt<p>"; |
|
88 |
echo "</div>\n"; |
|
89 |
||
90 |
||
91 |
if (!$search) |
|
92 |
{ |
|
93 |
?> |
|
94 |
<div align="center"> |
|
95 |
<p>Bitte Kriterien für die Suche wählen</p> |
|
96 |
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="application/x-www-form-urlencoded" name="form_raum" target="_self"> |
|
97 |
<table width="50%" border="0" cellspacing="3" cellpadding="3"> |
|
98 |
||
99 |
<tr> |
|
100 |
<td>Depot</td> |
|
101 |
<td><select name="ky[dep]"> |
|
102 |
<?php |
|
103 |
if ($ky["dep"] == -1) $select = "selected='selected'"; else $select = ""; |
|
104 |
echo "<option $select value=\"-1\"></option>\n"; |
|
105 |
$strdep = "'". implode("','",$adep) ."'"; |
|
106 |
$sql = "SELECT * FROM fhiiqm.KeyDepot WHERE depot_ID IN ($strdep)"; |
|
107 |
if ($res = $dbc -> queryObjectArray($sql)) |
|
108 |
foreach ($res as $row) |
|
109 |
{ |
|
110 |
if ($row->depot_ID == $ky['dep']) $select = "selected='selected'"; else $select = ""; |
|
111 |
echo "<option $select value=\"$row->depot_ID\">$row->depot_ID: $row->depot_bez</option>\n"; |
|
112 |
} |
|
113 |
$beg=0; |
|
114 |
?> |
|
115 |
</select> |
|
116 |
</td> |
|
117 |
</tr> |
|
118 |
||
119 |
<tr> |
|
120 |
<td>Schlüsseltyp</td> |
|
121 |
<td><select name="ky[kt]"> |
|
122 |
<?php |
|
123 |
if ($ky["kt"] == -1) $select = "selected='selected'"; else $select = ""; |
|
124 |
echo "<option $select value=\"-1\"></option>\n"; |
|
125 |
$strdep = "'". implode("','",$adep) ."'"; |
|
126 |
$sql = "SELECT key_level,keytyp_ID,keytyp_bez |
|
127 |
FROM Keytyp |
|
128 |
ORDER BY key_level"; |
|
129 |
if ($res = $dbc -> queryObjectArray($sql)) |
|
130 |
foreach ($res as $row) |
|
131 |
{ |
|
132 |
if ($row->keytyp_ID == $ky['kt']) $select = "selected='selected'"; else $select = ""; |
|
133 |
echo "<option $select value=\"$row->keytyp_ID\">$row->key_level - $row->keytyp_ID [$row->keytyp_bez] </option>\n"; |
|
134 |
} |
|
135 |
$beg=0; |
|
136 |
?> |
|
137 |
</select> |
|
138 |
</tr> |
|
139 |
<tr> |
|
140 |
<td>Sortierung nach<br />(in dieser Reihenfolge)</td><td> |
|
141 |
<?php |
|
41
9c668cd391fa
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents:
40
diff
changeset
|
142 |
$sort = array("-1"=>"","1"=>"Schlüsseltyp","2"=>"Level","3"=>"Besitzer","4"=>"Abteilung"); |
9c668cd391fa
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents:
40
diff
changeset
|
143 |
for ($i=1; $i<4; $i++) |
40 | 144 |
{ |
145 |
echo "$i. <select name='ky[sort$i]'>\n"; |
|
146 |
foreach ($sort as $key=>$val) |
|
147 |
{ |
|
148 |
$rsort = "sort" . $i; |
|
149 |
if ($ky[$rsort] == $val) $select = "selected='selected'"; else $select = ""; |
|
150 |
echo "<option $select value='$key'>$val</option>\n"; |
|
151 |
} |
|
152 |
echo "</select> \n"; |
|
153 |
} |
|
154 |
echo "</td></tr>\n"; |
|
155 |
||
156 |
$azeil = array(10=>'10',20=>'20',25=>'25',50=>'50',100=>'100',9999=>'alle'); // Anzahl gezeigter rows |
|
157 |
echo "<tr><td>Zeilen/Seite?</td><td><select name='ky[z]'>\n"; |
|
158 |
if (!$ky['z']) $ky['z'] = 9999; |
|
159 |
foreach ($azeil as $key=>$val) |
|
160 |
{ |
|
161 |
if ($key == $ky['z']) $select = "selected='selected'"; else $select = ""; |
|
162 |
echo "<option $select value='$key'>$val</option>\n"; |
|
163 |
} |
|
164 |
echo "</select></td></tr>\n"; |
|
165 |
||
166 |
?> |
|
167 |
<tr> |
|
168 |
<td> </td> |
|
169 |
<td><input class="button" type="submit" name="search" value="Bericht erstellen"/></td> |
|
170 |
</tr> |
|
171 |
</table> |
|
172 |
</div> |
|
173 |
</form> |
|
174 |
<?php |
|
175 |
||
176 |
} |
|
177 |
else |
|
178 |
{ |
|
179 |
echo "<div align='center'>\n"; |
|
180 |
||
181 |
$lim = " LIMIT $start,$zeil"; |
|
182 |
$where = ""; |
|
183 |
if ($ky["kt"]> -1) |
|
184 |
$where = " h.keytyp_ID = '$ky[kt]' "; |
|
185 |
if ($where) $where = " AND ($where)"; |
|
186 |
/* |
|
187 |
if ($ky["dep"]> -1) |
|
188 |
$where .= " AND (h.depot_ID = '$ky[dep]' OR h.depot_ID IS NULL)"; |
|
189 |
*/ |
|
190 |
if ($ky["dep"] > -1) |
|
191 |
{ |
|
192 |
$sql = "SELECT DISTINCT keytyp_ID FROM Keytyp_Depot WHERE depot_ID = '".$ky["dep"]."'"; |
|
193 |
$res = $dbc -> queryObjectArray($sql); |
|
194 |
foreach ($res as $row) |
|
195 |
$akeyt[] = $row->keytyp_ID; |
|
196 |
$strkt = "'". implode("','",$akeyt) ."'"; |
|
197 |
$wherk = " AND h.keytyp_ID IN ($strkt) "; |
|
198 |
$wherd = " AND h.depot_ID = '".$ky["dep"]."'"; |
|
199 |
} |
|
41
9c668cd391fa
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents:
40
diff
changeset
|
200 |
if ($ky["sort1"]>0 || $ky["sort2"]>0 || $ky["sort3"]>0) |
40 | 201 |
{ |
202 |
if ($ky["sort1"]>0) $ord = " ORDER BY " . $ky["sort1"]; |
|
203 |
if ($ky["sort2"]>0) $ord .= ",".$ky["sort2"]; |
|
41
9c668cd391fa
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents:
40
diff
changeset
|
204 |
if ($ky["sort3"]>0) $ord .= ",".$ky["sort3"]; |
40 | 205 |
} |
206 |
||
207 |
$sql = "SELECT h.keytyp_ID, key_level, |
|
41
9c668cd391fa
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents:
40
diff
changeset
|
208 |
CONCAT (nachname, ', ',vorname, ', ' , IFNULL(abt_name,''),' (',CASE aktiv WHEN 0 THEN 'inaktiv' ELSE 'aktiv' END, ')') AS keyowner, IFNULL(abt_name,'') AS abt, h.depot_ID, 'ma' AS tab, |
40 | 209 |
SUM(CASE WHEN pers_action='get' THEN IFNULL(pers_anz,0) ELSE 0 END) - SUM(CASE WHEN pers_action='out' THEN IFNULL(pers_anz,0) ELSE 0 END) - SUM(CASE WHEN pers_action='lost' THEN IFNULL(pers_anz,0) ELSE 0 END) AS bestand |
210 |
FROM fhiiqm.Mitarbeiter m |
|
211 |
INNER JOIN Keytyp_MA h ON m.persknr=h.persknr |
|
212 |
INNER JOIN Keytyp k ON h.keytyp_ID = k.keytyp_ID |
|
213 |
LEFT OUTER JOIN Abteilung a ON m.abt_tel=a.abt_ID |
|
214 |
WHERE m.aktiv<2 |
|
41
9c668cd391fa
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents:
40
diff
changeset
|
215 |
GROUP BY h.keytyp_ID, key_level,keyowner,abt |
40 | 216 |
HAVING bestand > 0 $where $wherk |
217 |
UNION |
|
41
9c668cd391fa
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents:
40
diff
changeset
|
218 |
SELECT h.keytyp_ID, key_level,CONCAT(depot_ID,'-Depot') AS keyowner, depot_ID AS abt, h.depot_ID, 'dep' AS tab, |
40 | 219 |
SUM(CASE WHEN depot_action='get' THEN IFNULL(depot_anz,0) ELSE 0 END) - SUM(CASE WHEN depot_action='out' THEN IFNULL(depot_anz,0) ELSE 0 END) - SUM(CASE WHEN depot_action='lost' THEN IFNULL(depot_anz,0) ELSE 0 END) AS bestand |
220 |
FROM fhiiqm.Keytyp_Depot h INNER JOIN Keytyp k ON h.keytyp_ID = k.keytyp_ID |
|
41
9c668cd391fa
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents:
40
diff
changeset
|
221 |
GROUP BY h.keytyp_ID, key_level,keyowner,abt |
40 | 222 |
HAVING bestand > 0 $where $wherd"; |
223 |
$ianz = $dbc -> numrows($sql); |
|
224 |
$sql .= $ord . $lim; |
|
225 |
//echo $sql . "<br />"; |
|
226 |
$result = $dbc ->queryObjectArray($sql); |
|
227 |
if ($dbc -> error) |
|
228 |
{ |
|
229 |
echo "error SELECT: " . $dbc -> error . "<br /><br />"; |
|
230 |
echo "sql = $sql<br />\n"; |
|
231 |
} |
|
232 |
$krit = ""; |
|
233 |
if ($ky["kt"] > -1) |
|
234 |
{ |
|
235 |
$krit = " [Schlüsseltyp = <b>'".$ky["kt"]."'</b>]"; |
|
236 |
} |
|
237 |
if ($ky["dep"] > -1) |
|
238 |
{ |
|
239 |
if ($krit > " ") $bd = " UND"; else $bd = ""; |
|
240 |
$krit .= $bd ." [Depot = <b>'".$ky["dep"]."'</b>]"; |
|
241 |
} |
|
242 |
if ($krit )echo "Suchergebnis für $krit"; else echo "Suchergebnis\n"; |
|
243 |
printf ("<p>Anzahl Besitzer: %s</p>", $ianz); |
|
244 |
if ($result) |
|
245 |
{ |
|
246 |
include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php"); |
|
247 |
||
248 |
$bg1 = "#F8F8F8"; |
|
249 |
$bg2 = "#DEDFE1"; |
|
250 |
$bg = "#FFFFFF"; |
|
251 |
echo "<table border='1' cellspacing='0' cellpadding='2'>\n"; |
|
252 |
// Listenkopf |
|
253 |
echo "<tr bgcolor='#68ACBF'>"; |
|
254 |
if ($ky["sort1"] == 2) |
|
255 |
echo "<th>Level</th><th>Schlüsseltyp</th>"; |
|
256 |
else |
|
257 |
echo "<th>Schlüsseltyp</th><th>Level</th>"; |
|
41
9c668cd391fa
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents:
40
diff
changeset
|
258 |
echo "<th>Besitzer</th><th>Abt.</th><th>Anzahl</th>"; |
40 | 259 |
$anzt = 0; |
260 |
foreach ($result as $row) |
|
261 |
{ |
|
262 |
if ($bg == $bg1) $bg = $bg2; else $bg = $bg1; |
|
263 |
echo "<tr bgcolor='" . $bg . "'>"; |
|
264 |
if ($ky["sort1"] == 2) |
|
265 |
echo "<td>$row->key_level</td><td>$row->keytyp_ID</td>"; |
|
266 |
else |
|
267 |
echo "<td>$row->keytyp_ID</td><td>$row->key_level</td>"; |
|
268 |
if ($row->tab == 'dep') $cl = " class = 'bold'"; else $cl = ""; |
|
269 |
echo "<td$cl>$row->keyowner</td>"; |
|
41
9c668cd391fa
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents:
40
diff
changeset
|
270 |
echo "<td>$row->abt</td>"; |
40 | 271 |
echo "<td class='right'>$row->bestand</td>"; |
272 |
echo "</tr>"; |
|
273 |
$anzt += $row->bestand; |
|
274 |
} |
|
41
9c668cd391fa
+ Gast als MA-Typ, Erweiterungen Projekt, Key, Telefonliste
Bettina Schwarzer
parents:
40
diff
changeset
|
275 |
echo "<tr><td colspan='2'> </td><td colspan='2'>Summe</td><td class='right'>$anzt</td></tr>"; |
40 | 276 |
echo "</table>\n"; |
277 |
echo "<p></p><table width=40%><tr><td class='right'><a href=\"javascript:window.print()\" class='sc'> |
|
278 |
<img src=\"/fhiiqm/img/printer.png\" alt=\"Bericht drucken\" border=\"0\" align=\"right\" title=\"Bericht drucken\"></a></td></tr></table>"; |
|
279 |
echo "</div>\n"; |
|
280 |
||
281 |
echo "<br /> "; |
|
282 |
if ($search != 2) // Aufruf aus fhiiqm |
|
283 |
{ |
|
284 |
// Parameter aus $_GET fuer weitere Seiten |
|
285 |
$_GET["s"] = 1; // bewirkt weitere Suche |
|
286 |
foreach ($_GET as $key=>$val) |
|
287 |
{ |
|
288 |
if ($key != "st") $liste .= "&" . $key ."=".$val; |
|
289 |
} |
|
290 |
// Links auf andere Seiten generieren |
|
291 |
liste_links($start,$zeil,$ianz,$liste); |
|
292 |
} |
|
293 |
} |
|
294 |
else |
|
295 |
{ |
|
296 |
echo "<p class='red'> Leider gibt es kein Ergebnis für die von Ihnen gewählten Kriterien!</p>"; |
|
297 |
echo "</div>\n"; |
|
298 |
echo "<br /> "; |
|
299 |
} |
|
300 |
echo "<span class='sc'>"; |
|
301 |
echo "<br /><br /> <a href=\"/fhiiqm/keytyp_report.php\" target=\"_self\" title=\"Berichte\" class='sc'>« zur Berichtsübersicht</a>"; |
|
302 |
echo " | <a href=\"" . $_SERVER["PHP_SELF"] . "\" target=\"_self\" title=\"Übersicht Keytyp\" class=\"sc\">neuer Bericht Bestand Schlüsseltyp gesamt</a>\n"; |
|
303 |
echo "</span>"; |
|
304 |
} |
|
305 |
?> |
|
306 |
</body> |
|
307 |
</html> |