<?php
/**
* @author Bettina Schwarzer, Fritz-Haber-Institut
* @copyright 05/2012
*
* Report Gefaehrdungsanalye Arbeitsbereiche (Raum-Arb.-Gruppen)
*
*/
error_reporting(E_ALL ^ E_NOTICE);
if (!isset($_GET['s']) || $_GET['s'] != 2 )
{
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("asr",$_SESSION["recht"]) && !in_array("ase",$_SESSION["recht"])))
{
header("Location: start.php");
exit;
}
}
include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
?>
<!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 Abt./AG Gefährdungen Maßnahmen</title>
</head>
<body>
<?php
echo " ";
if (!isset($_GET['s']) || $_GET['s'] != 2 )
{
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/role.png\" border=\"0\" alt=\"AG,Raum-Gefahr\" title=\"AG,Raum-Gefahr\"/></div>\n";
$rag = $_POST["rag"]; // Parameter aus Form
$search = $_POST["search"];
if (!$search) $search = $_GET["s"];
$zeil = $rag["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($rag))
{
$rag["geb"] = $_GET["g"];
$rag["abt"] = $_GET["a"];
$rag["ag"] = $_GET["ag"];
$rag["rtyp"] = $_GET["t"];
$rag["bind"] = $_GET["b"];
$rag["sort1"] = $_GET["s1"];
$rag["sort2"] = $_GET["s2"];
$rag["sort3"] = $_GET["s3"];
$rag["sort4"] = $_GET["s4"];
}
$_GET["g"] = $rag["geb"];
$_GET["t"] = $rag["rtyp"];
$_GET["a"] = $rag["abt"];
$_GET["ag"] = $rag["ag"];
$_GET["b"] = $rag["bind"];
$_GET["s1"] = $rag["sort1"];
$_GET["s2"] = $rag["sort2"];
$_GET["s3"] = $rag["sort3"];
$_GET["s4"] = $rag["sort4"];
$_GET["z"] = $zeil;
if ($search && $_GET['s'] != 2)
{
echo "<span class='sc'>";
echo "<br /> <a href=\"/fhiiqm/as_report.php\" target=\"_self\" title=\"Berichte\" class='sc'>« zur Berichtsübersicht</a>";
echo " | <a href=\"" . $_SERVER["PHP_SELF"] . "\" target=\"_self\" title=\"Raum-Typ\" class=\"sc\">neuer Bericht Abt./AG-Gefährdungen Maßnahmen</a>\n";
echo "</span>";
}
echo "<div align='center'>\n";
echo "<p><b>(7) Bericht Gefährdungen -> Maßnahmen in Arbeitsgruppen</b></p>\n";
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>Abteilung</td>
<td>
<select name="rag[abt]" size="1" onchange="this.form.submit();">
<?php
if ($rag["abt"] == -1) $select = " selected "; else $select = "";
echo "<option $select value=\"-1\"></option>\n";
$sql = "SELECT abt_ID, abt_name, abt_long FROM Abteilung WHERE abt_ID < 8 ORDER BY 1";
if ($result = $dbc->queryObjectArray($sql))
{
foreach ($result as $row)
{
if ($row->abt_ID == $rag['abt'])
echo "<option selected value=\"$row->abt_ID\">$row->abt_name - $row->abt_long</option>\n";
else
echo "<option value=\"$row->abt_ID\">$row->abt_name - $row->abt_long</option>\n";
}
}
?>
</select>
</td>
</tr>
<tr>
<td>Arbeitsgruppe</td>
<td>
<select name="rag[ag]" size="1">
<?php
if (isset($rag["abt"]) && $rag["abt"] > '-1') $wherag = " WHERE ag.abt_ID = ". $rag["abt"] . " "; else $wherag = "";
if ($rag["ag"] == -1) $select = " selected "; else $select = "";
echo "<option $select value=\"-1\"></option>\n";
$sql = "SELECT rag_ID,rag_bez,abt_name FROM fhiiqm.RaumArb_Gruppe ag LEFT OUTER JOIN Abteilung a ON ag.abt_ID=a.abt_ID $wherag ORDER BY 3,2";
if ($result = $dbc->queryObjectArray($sql))
{
foreach ($result as $row)
{
if ($row->abt_name == $rag['ag'])
echo "<option selected value=\"$row->rag_ID\">$row->rag_bez - $row->abt_name</option>\n";
else
echo "<option value=\"$row->rag_ID\">$row->rag_bez - $row->abt_name</option>\n";
}
}
?>
</select>
</td>
</tr>
<tr>
<td>Haus</td>
<td>
<select name="rag[geb]" size="1">
<?php
if ($rag["geb"] == -1) $select = " selected "; else $select = "";
echo "<option $select value=\"-1\"></option>\n";
$sql = "SELECT geb_ID, geb_name FROM Haus ORDER BY 1";
if ($result = $dbc->queryObjectArray($sql))
{
foreach ($result as $row)
{
if ($row->geb_ID == $rag['geb'])
echo "<option selected value=\"$row->geb_ID\">$row->geb_ID - $row->geb_name</option>\n";
else
echo "<option value=\"$row->geb_ID\">$row->geb_ID - $row->geb_name</option>\n";
}
}
?>
</select>
</td>
</tr>
<tr>
<td>Raumtyp</td>
<td><select name="rag[rtyp]">
<?php
if ($rag["rtyp"] == -1) $select = " selected "; else $select = "";
echo "<option $select value=\"-1\"></option>\n";
$sql = "SELECT raumtyp_ID,raumtyp_bez FROM fhiiqm.Raum_Typ ORDER BY 1";
if ($result = $dbc->queryObjectArray($sql))
{
foreach ($result as $row)
{
if ($row->raumtyp_ID == $rag['rtyp'])
echo "<option selected value=\"$row->raumtyp_ID\">$row->raumtyp_ID - $row->raumtyp_bez</option>\n";
else
echo "<option value=\"$row->raumtyp_ID\">$row->raumtyp_ID - $row->raumtyp_bez</option>\n";
}
}
?>
</select></td>
</tr>
<tr>
<td>Verknüpfung</td>
<td>UND
<input type="radio" name="rag[bind]" value="AND" <?php if (isset($rag["bind"]) && $rag["bind"]=="AND") echo "checked"; else echo "checked";?>>
ODER
<input type="radio" name="rag[bind]" value="OR" <?php if (isset($rag["bind"]) && $rag["bind"]=="OR") echo "checked"; ?>></td>
</tr>
<tr>
<td>Sortierung nach<br />(in dieser Reihenfolge)</td><td>
<?php
$sort = array("-1"=>"","1,2"=>"Abteilung,AG","3,4"=>"Gebäude,Raum","5"=>"Raum-Typ");
for ($i=1; $i<4; $i++)
{
echo "$i. <select name='rag[sort$i]'>\n";
foreach ($sort as $key=>$val)
{
$rsort = "sort" . $i;
if ($rag[$rsort] == $val) $select= " 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='rag[z]'>\n";
if (!$rag['z']) $rag['z'] = 9999;
foreach ($azeil as $key=>$val)
{
if ($key == $rag['z']) $select = "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";
include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/func_lib.inc.php");
if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
$sql = "SELECT rg.abt_ID,rag_bez,geb_ID, raum_nr, r.raumtyp_ID, ra.arbplatz_typ, a.gefahr_ID,asm_bez, raum_name, raumtyp_bez, arbplatz_typ_bez, gefahr_bez,
asm_bem, gf_asm_nr, abt_name,asm_ID, r.raum_ID,rg.rag_ID
FROM RaumArb_Gruppe rg
LEFT OUTER JOIN Raum_RaumArbGruppe rr ON rg.rag_ID=rr.rag_ID
LEFT OUTER JOIN Abteilung abt ON rg.abt_ID=abt.abt_ID
LEFT OUTER JOIN Raum r ON rr.raum_ID=r.raum_ID
LEFT OUTER JOIN Raum_Typ rt ON r.raumtyp_ID = rt.raumtyp_ID
LEFT OUTER JOIN Raum_Arbplatz_Typ ra ON ra.raum_ID = r.raum_ID
LEFT OUTER JOIN Arbplatz_Typ at ON ra.arbplatz_typ = at.arbplatz_typ
LEFT OUTER JOIN Gefahr_Arbplatz a ON a.arbplatz_typ = at.arbplatz_typ
LEFT OUTER JOIN Gefahr g ON a.gefahr_ID = g.gefahr_ID
LEFT OUTER JOIN AS_Massnahme m ON a.gefahr_ID = m.gefahr_ID";
$lim = " LIMIT $start,$zeil";
if (!$rag["bind"]) $bind = " AND "; else $bind = $rag["bind"];
if ($rag["geb"]> -1) $where = " geb_ID = '$rag[geb]' ";
if ($rag["abt"]> -1)
if ($where) $where .= "$bind rg.abt_ID = '$rag[abt]' "; else $where = " rg.abt_ID = '$rag[abt]' ";
if ($rag["ag"]> -1)
if ($where) $where .= "$bind rg.rag_ID = $rag[ag] "; else $where = " rg.rag_ID = $rag[ag] ";
if ($rag["rtyp"]> -1)
if ($where) $where .= "$bind r.raumtyp_ID = '$rag[rtyp]' "; else $where = " r.raumtyp_ID = '$rag[rtyp]' ";
if ($where) $where = " WHERE $where";
if ($rag["sort1"]>0 || $rag["sort2"]>0 || $rag["sort3"]>0 || $rag["sort4"]>0)
{
if ($rag["sort1"]>0) $ord = " ORDER BY ".$rag["sort1"];
if ($rag["sort2"]>0) $ord .= ",".$rag["sort2"];
if ($rag["sort3"]>0) $ord .= ",".$rag["sort3"];
}
if ($ord) $ord .= ",3,4,6,7,8 "; else $ord = " ORDER BY 3,4,6,7,8 "; // Sortierung immer nach Haus,Raum,Apl-Typ,Gefaehrdung, Massnahmebez.
$sql .= $where . $ord . $lim;
// echo "sql = $sql<br />\n";
$result = $dbc ->queryObjectArray($sql);
if ($rag["geb"] > -1) $krit = " [Gebäude = '" . $rag["geb"] ."']";
if ($rag["abt"] > -1)
{
$abtn = $dbc -> querySingleItem("SELECT abt_name FROM Abteilung WHERE abt_ID=".$rag["abt"]);
if ($krit) $bd = " ".$bind; else $bd = "";
$krit .= $bd. " [Abteilung = '$abtn']";
}
if ($rag["ag"] > -1)
{
$agbez = $dbc -> querySingleItem("SELECT rag_bez FROM fhiiqm.RaumArb_Gruppe WHERE rag_ID = ".$rag['ag']);
if ($krit) $bd = " ".$bind; else $bd = "";
$krit .= $bd. " [Arbeitsgruppe = '$agbez']";
}
if ($rag["rtyp"] > -1)
{
if ($krit) $bd = " ".$bind; else $bd = "";
$rtn = $dbc -> querySingleItem("SELECT raumtyp_bez FROM Raum_Typ WHERE raumtyp_ID='".$rag["rtyp"]."'");
$krit .= $bd." [Raum-Typ = '$rtn']";
}
if ($krit )echo "Suchergebnis für $krit"; else echo "Suchergebnis";
if ($result)
{
$bg1 = "#F8F8F8";
$bg2 = "#DEDFE1";
$bg = "#FFFFFF";
$sqlc = "SELECT COUNT(*)
FROM RaumArb_Gruppe rg
LEFT OUTER JOIN Raum_RaumArbGruppe rr ON rg.rag_ID=rr.rag_ID
LEFT OUTER JOIN Raum r ON rr.raum_ID=r.raum_ID
LEFT OUTER JOIN Raum_Typ rt ON r.raumtyp_ID = rt.raumtyp_ID
LEFT OUTER JOIN Raum_Arbplatz_Typ ra ON ra.raum_ID = r.raum_ID
LEFT OUTER JOIN Arbplatz_Typ at ON ra.arbplatz_typ = at.arbplatz_typ
LEFT OUTER JOIN Gefahr_Arbplatz a ON a.arbplatz_typ = at.arbplatz_typ
LEFT OUTER JOIN Gefahr g ON a.gefahr_ID = g.gefahr_ID
LEFT OUTER JOIN AS_Massnahme m ON a.gefahr_ID = m.gefahr_ID $where";
$ianz = $dbc -> querySingleItem($sqlc);
//$ianz = $dbc -> numrows($sql); //liefert nur $zeil!
printf ("<p>Anzahl gefundener Datensätze: %s</p>", $ianz);
echo "<table width='99%' border='1' cellspacing='0' cellpadding='2'>\n";
$cols=7;
// Listenkopf
echo "<tr bgcolor='#68ACBF'>";
if ($rag["bind"]=="OR" || !$rag['abt'] || $rag['abt'] == -1)
{
echo "<th>Abteilung</th>";
$cols +=1;
}
echo "<th>Arbeitsgruppe</th>";
if ($rag["bind"]=="OR" || !$rag['geb'] || $rag['geb'] == -1)
{
echo "<th>Gebäude</th>";
$cols +=1;
}
echo "<th>Raum-Nr.</th>";
echo "<th>Raum-Bez.</th>";
if ($rag["bind"]=="OR" || !$rag['rtyp'] || $rag['rtyp'] == -1)
{
echo "<th>Raum-Typ</th>";
$cols +=1;
}
echo "<th>Arb.-Platz-Typ</th>";
echo "<th>Gefährdung</th>";
echo "<th>Maßnahme-Bez.</th>";
echo "<th width='40%'>Maßnahme</th>";
echo "</tr>";
foreach ($result as $row)
{
if ($rid != $row->raum_ID || $row->rag_ID != $ragid)
{
if ($bg == $bg1) $bg = $bg2; else $bg = $bg1;
echo "<tr bgcolor='" . $bg . "'>";
if ($rag["bind"]=="OR" || !$rag['abt'] || $rag['abt'] == -1) echo "<td>$row->abt_name</td>";
if (strpos($row->rag_bez,"DynamiX")) $row->rag_bez = str_replace("X","χ",$row->rag_bez);
echo "<td>$row->rag_bez</td>";
if ($rag["bind"]=="OR" || !$rag['geb'] || $rag['geb'] == -1) echo "<td>$row->geb_ID</td>";
echo "<td>$row->raum_nr</td>";
echo "<td>$row->raum_name</td>";
if ($rag["bind"]=="OR" || !$rag['rtyp'] || $rag['rtyp'] == -1) echo "<td>$row->raumtyp_ID - $row->raumtyp_bez</td>";
echo "<td>$row->arbplatz_typ - $row->arbplatz_typ_bez</td>";
echo "<td>$row->gefahr_ID - $row->gefahr_bez</td>";
echo "<td>$row->asm_bez</td>";
echo "<td>".nl2br($row->asm_bem)."</td></tr>\n";
}
elseif ($rid == $row->raum_ID && $apt != $row->arbplatz_typ)
{
echo "<tr bgcolor='" . $bg . "'>";
echo "<td colspan ='".($cols-4)."'> </td>";
echo "<td>$row->arbplatz_typ - $row->arbplatz_typ_bez</td>";
echo "<td>$row->gefahr_ID - $row->gefahr_bez</td>";
echo "<td>$row->asm_bez</td>";
echo "<td>".nl2br($row->asm_bem)."</td></tr>\n";
}
elseif ($rid == $row->raum_ID && $apt == $row->arbplatz_typ && $gfid != $row->gefahr_ID)
{
echo "<tr bgcolor='" . $bg . "'>";
echo "<td colspan ='".($cols-3)."'> </td>";
echo "<td>$row->gefahr_ID - $row->gefahr_bez</td>";
echo "<td>$row->asm_bez</td>";
echo "<td>".nl2br($row->asm_bem)."</td></tr>\n";
}
elseif ($gfid == $row->gefahr_ID && $asmid != $row->asm_ID)
{
echo "<tr bgcolor='" . $bg . "'>";
echo "<td colspan ='".($cols-2)."'> </td>";
echo "<td>$row->asm_bez</td>";
echo "<td>".nl2br($row->asm_bem)."</td></tr>\n";
}
$ragid = $row->rag_ID;
$rid = $row->raum_ID;
$apt = $row->arbplatz_typ;
$gfid = $row->gefahr_ID;
$asmid = $row->asm_ID;
}
echo "</table>\n";
echo "<p></p><table width=80%><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 /> ";
}
if ($search != 2)
{
echo "<span class='sc'>";
echo "<br /><br /> <a href=\"/fhiiqm/as_report.php\" target=\"_self\" title=\"Berichte\" class='sc'>« zur Berichtsübersicht</a>";
echo " | <a href=\"" . $_SERVER["PHP_SELF"] . "\" target=\"_self\" title=\"Raum-Typ\" class=\"sc\">neuer Bericht Abt./AG-Gefährdungen Maßnahmen</a>\n";
echo "</span>";
}
else
echo "<a href='javascript:history.back();' onMouseOver=\"{window.status='Zurück'; return true;}\">« Zurück</a>";
}
?>
</body>
</html>