<?php
/**
* @author Bettina Schwarzer, Fritz-Haber-Institut
* @copyright 08/2013
*
* Report Keytyp wo/wer, Anzahl (MA und Depots)
*/
error_reporting(E_ALL ^ E_NOTICE);
session_start();
if (! isset($_SESSION["userid"]))
{
include_once ($_SERVER["DOCUMENT_ROOT"]."/fhiiqm/inc/func_lib.inc.php");
login($_SERVER["PHP_SELF"]);
exit;
}
if (is_null($_SESSION["recht"]) || (!is_null($_SESSION["recht"]) && !in_array("kr",$_SESSION["recht"]) && !in_array("ke",$_SESSION["recht"])))
{
header("Location: start.php");
exit;
}
include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
// zulaessige Depots
$uid = $_SESSION["userid"];
$sql = "SELECT depot_ID FROM KeyDepot_userweb WHERE userid = '$uid'";
$res = $dbc -> queryObjectArray($sql);
foreach ($res as $row)
$adep[] = $row->depot_ID;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link href="/fhiiqm/css/db.css" rel="STYLESHEET" type="TEXT/CSS" media="screen"/>
<link href="/fhiiqm/css/db_print.css" rel="STYLESHEET" type="TEXT/CSS" media="print"/>
<title>Report Übersicht Schlüsseltypen</title>
</head>
<body>
<?php
echo " ";
echo "<div class=\"float-br smaller\" valign='top'>";
echo " user: " . $_SESSION["userid"];
echo " <a class='sc' href='/fhiiqm/logout.php' title='Session beenden'>logout</a></div>\n";
echo "<div class=\"float-r\"><img src=\"/fhiiqm/img/key.png\" border=\"0\" alt=\"Keytyp Ü:bersicht\" title=\"Schlüsseltypen Bestand\"/></div>\n";
$ky = $_POST["ky"]; // Parameter aus Form
$search = $_POST["search"];
if (!$search) $search = $_GET["s"];
$zeil = $ky["z"];
if (!$zeil) $zeil = $_GET["z"];
if (!$zeil) $zeil = 9999; // Anzahl der gezeigten Zeilen
$start = $_GET["st"]; // Start bei DS $start+1
if (!$start) $start=0;
if (!is_array($ky))
{
$ky["kt"] = $_GET["k"];
$ky["sort1"] = $_GET["s1"];
$ky["sort2"] = $_GET["s2"];
}
$_GET["k"] = $ky["kt"];
$_GET["s1"]= $ky["sort1"];
$_GET["s2"]= $ky["sort2"];
$_GET["z"] = $zeil;
if ($search)
{
echo "<span class='sc'>";
echo "<br /> <a href=\"/fhiiqm/keytyp_report.php\" target=\"_self\" title=\"Berichte\" class='sc'>« zur Berichtsübersicht</a>";
echo " | <a href=\"" . $_SERVER["PHP_SELF"] . "\" target=\"_self\" title=\"Keytyp Bestand\" class=\"sc\">neuer Bericht Bestand Schlüsseltyp gesamt</a>\n";
echo "</span>";
}
echo "<div align='center'>\n";
echo "<p><b>Bericht Bestand Schlüsseltyp Depot und Mitarbeiter</b></p>\n";
echo "<p>- zeigt alle Schlüsseltypen und deren Besitzer aus dem gewählten Depot und im Depot selbst<br />
- wenn kein Depot gewählt wurde, werden alle oder nur der gewählte Schlüsseltyp von allen Depots angezeigt<p>";
echo "</div>\n";
if (!$search)
{
?>
<div align="center">
<p>Bitte Kriterien für die Suche wählen</p>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="application/x-www-form-urlencoded" name="form_raum" target="_self">
<table width="50%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>Depot</td>
<td><select name="ky[dep]">
<?php
if ($ky["dep"] == -1) $select = "selected='selected'"; else $select = "";
echo "<option $select value=\"-1\"></option>\n";
$strdep = "'". implode("','",$adep) ."'";
$sql = "SELECT * FROM fhiiqm.KeyDepot WHERE depot_ID IN ($strdep)";
if ($res = $dbc -> queryObjectArray($sql))
foreach ($res as $row)
{
if ($row->depot_ID == $ky['dep']) $select = "selected='selected'"; else $select = "";
echo "<option $select value=\"$row->depot_ID\">$row->depot_ID: $row->depot_bez</option>\n";
}
$beg=0;
?>
</select>
</td>
</tr>
<tr>
<td>Schlüsseltyp</td>
<td><select name="ky[kt]">
<?php
if ($ky["kt"] == -1) $select = "selected='selected'"; else $select = "";
echo "<option $select value=\"-1\"></option>\n";
$strdep = "'". implode("','",$adep) ."'";
$sql = "SELECT key_level,keytyp_ID,keytyp_bez
FROM Keytyp
ORDER BY key_level";
if ($res = $dbc -> queryObjectArray($sql))
foreach ($res as $row)
{
if ($row->keytyp_ID == $ky['kt']) $select = "selected='selected'"; else $select = "";
echo "<option $select value=\"$row->keytyp_ID\">$row->key_level - $row->keytyp_ID [$row->keytyp_bez] </option>\n";
}
$beg=0;
?>
</select>
</tr>
<tr>
<td>Sortierung nach<br />(in dieser Reihenfolge)</td><td>
<?php
$sort = array("-1"=>"","1"=>"Schlüsseltyp","2"=>"Level","3"=>"Besitzer","4"=>"Abteilung");
for ($i=1; $i<4; $i++)
{
echo "$i. <select name='ky[sort$i]'>\n";
foreach ($sort as $key=>$val)
{
$rsort = "sort" . $i;
if ($ky[$rsort] == $val) $select = "selected='selected'"; else $select = "";
echo "<option $select value='$key'>$val</option>\n";
}
echo "</select> \n";
}
echo "</td></tr>\n";
$azeil = array(10=>'10',20=>'20',25=>'25',50=>'50',100=>'100',9999=>'alle'); // Anzahl gezeigter rows
echo "<tr><td>Zeilen/Seite?</td><td><select name='ky[z]'>\n";
if (!$ky['z']) $ky['z'] = 9999;
foreach ($azeil as $key=>$val)
{
if ($key == $ky['z']) $select = "selected='selected'"; else $select = "";
echo "<option $select value='$key'>$val</option>\n";
}
echo "</select></td></tr>\n";
?>
<tr>
<td> </td>
<td><input class="button" type="submit" name="search" value="Bericht erstellen"/></td>
</tr>
</table>
</div>
</form>
<?php
}
else
{
echo "<div align='center'>\n";
$lim = " LIMIT $start,$zeil";
$where = "";
if ($ky["kt"]> -1)
$where = " h.keytyp_ID = '$ky[kt]' ";
if ($where) $where = " AND ($where)";
/*
if ($ky["dep"]> -1)
$where .= " AND (h.depot_ID = '$ky[dep]' OR h.depot_ID IS NULL)";
*/
if ($ky["dep"] > -1)
{
$sql = "SELECT DISTINCT keytyp_ID FROM Keytyp_Depot WHERE depot_ID = '".$ky["dep"]."'";
$res = $dbc -> queryObjectArray($sql);
foreach ($res as $row)
$akeyt[] = $row->keytyp_ID;
$strkt = "'". implode("','",$akeyt) ."'";
$wherk = " AND h.keytyp_ID IN ($strkt) ";
$wherd = " AND h.depot_ID = '".$ky["dep"]."'";
}
if ($ky["sort1"]>0 || $ky["sort2"]>0 || $ky["sort3"]>0)
{
if ($ky["sort1"]>0) $ord = " ORDER BY " . $ky["sort1"];
if ($ky["sort2"]>0) $ord .= ",".$ky["sort2"];
if ($ky["sort3"]>0) $ord .= ",".$ky["sort3"];
}
$sql = "SELECT h.keytyp_ID, key_level,
CONCAT (nachname, ', ',vorname, ', ' , IFNULL(abt_name,''),' (',CASE aktiv WHEN 1 THEN 'aktiv' ELSE (CASE aktiv WHEN -1 THEN 'Gast' ELSE 'inaktiv' END) END, ')') AS keyowner, IFNULL(abt_name,'') AS abt, h.depot_ID, 'ma' AS tab,
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,m.persknr
FROM fhiiqm.Mitarbeiter m
INNER JOIN Keytyp_MA h ON m.persknr=h.persknr
INNER JOIN Keytyp k ON h.keytyp_ID = k.keytyp_ID
LEFT OUTER JOIN Abteilung a ON m.abt_tel=a.abt_ID
WHERE m.aktiv<2
GROUP BY h.keytyp_ID, key_level,keyowner,abt
HAVING bestand > 0 $where $wherk
UNION
SELECT h.keytyp_ID, key_level, CONCAT(depot_ID,'-Depot') AS keyowner, depot_ID AS abt, h.depot_ID, 'dep' AS tab,
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,NULL
FROM fhiiqm.Keytyp_Depot h INNER JOIN Keytyp k ON h.keytyp_ID = k.keytyp_ID
GROUP BY h.keytyp_ID, key_level,keyowner,abt
HAVING bestand > 0 $where $wherd";
$ianz = $dbc -> numrows($sql);
$sql .= $ord . $lim;
//echo $sql . "<br />";
$result = $dbc ->queryObjectArray($sql);
if ($dbc -> error)
{
echo "error SELECT: " . $dbc -> error . "<br /><br />";
echo "sql = $sql<br />\n";
}
$krit = "";
if ($ky["kt"] > -1)
{
$krit = " [Schlüsseltyp = <b>'".$ky["kt"]."'</b>]";
}
if ($ky["dep"] > -1)
{
if ($krit > " ") $bd = " UND"; else $bd = "";
$krit .= $bd ." [Depot = <b>'".$ky["dep"]."'</b>]";
}
if ($krit )echo "Suchergebnis für $krit"; else echo "Suchergebnis\n";
printf ("<p>Anzahl Besitzer: %s</p>", $ianz);
if ($result)
{
include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");
$bg1 = "#F8F8F8";
$bg2 = "#DEDFE1";
$bg = "#FFFFFF";
echo "<table border='1' cellspacing='0' cellpadding='2'>\n";
// Listenkopf
echo "<tr bgcolor='#68ACBF'>";
if ($ky["sort1"] == 2)
echo "<th>Level</th><th>Schlüsseltyp</th>";
else
echo "<th>Schlüsseltyp</th><th>Level</th>";
echo "<th>Besitzer</th><th>Abt.</th><th>Anzahl</th>";
$anzt = 0;
foreach ($result as $row)
{
if ($bg == $bg1) $bg = $bg2; else $bg = $bg1;
echo "<tr bgcolor='" . $bg . "'>";
if ($ky["sort1"] == 2)
echo "<td>$row->key_level</td><td>$row->keytyp_ID</td>";
else
echo "<td>$row->keytyp_ID</td><td>$row->key_level</td>";
if ($row->tab == 'dep') $cl = " class = 'bold'"; else $cl = "";
echo "<td$cl>$row->keyowner</td>";
if ($row->abt == 'INF' && $row->persknr)
{ // MA aus Abt. 'INF' Arbeitsgruppe anzeigen
$sql = "SELECT rag_bezk FROM RaumArb_Gruppe rag
LEFT OUTER JOIN MA_RaumArbGruppe m ON rag.rag_ID = m.rag_ID
WHERE persknr = ".$row->persknr . " AND NOT rag_bezk IS NULL";
$ag = $dbc -> querySingleItem($sql);
echo "<td>$ag</td>";
}
else
echo "<td>$row->abt</td>";
echo "<td class='right'>$row->bestand</td>";
echo "</tr>";
$anzt += $row->bestand;
}
echo "<tr><td colspan='2'> </td><td colspan='2'>Summe</td><td class='right'>$anzt</td></tr>";
echo "</table>\n";
echo "<p></p><table width=40%><tr><td class='right'><a href=\"javascript:window.print()\" class='sc'>
<img src=\"/fhiiqm/img/printer.png\" alt=\"Bericht drucken\" border=\"0\" align=\"right\" title=\"Bericht drucken\"></a></td></tr></table>";
echo "</div>\n";
echo "<br /> ";
if ($search != 2) // Aufruf aus fhiiqm
{
// Parameter aus $_GET fuer weitere Seiten
$_GET["s"] = 1; // bewirkt weitere Suche
foreach ($_GET as $key=>$val)
{
if ($key != "st") $liste .= "&" . $key ."=".$val;
}
// Links auf andere Seiten generieren
liste_links($start,$zeil,$ianz,$liste);
}
}
else
{
echo "<p class='red'> Leider gibt es kein Ergebnis für die von Ihnen gewählten Kriterien!</p>";
echo "</div>\n";
echo "<br /> ";
}
echo "<span class='sc'>";
echo "<br /><br /> <a href=\"/fhiiqm/keytyp_report.php\" target=\"_self\" title=\"Berichte\" class='sc'>« zur Berichtsübersicht</a>";
echo " | <a href=\"" . $_SERVER["PHP_SELF"] . "\" target=\"_self\" title=\"Übersicht Keytyp\" class=\"sc\">neuer Bericht Bestand Schlüsseltyp gesamt</a>\n";
echo "</span>";
}
?>
</body>
</html>