<?php
/**
* @author Bettina Schwarzer, Fritz-Haber-Institut
* @copyright 06/2012
*
* INSERT/UPDATE RaumArbeits-Gruppe Raeume, Mitarbeiter
*
*/
error_reporting(E_ALL ^ E_NOTICE);
session_start();
if (! isset($_SESSION["userid"]))
{
include_once ("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();
$sub = $_POST["eintragen"];
$rag = $_POST["rag"];
$ok = $_POST["ok"];
$ragid = $_GET["i"]; // raumarbgruppe_ID
$zeil = $_GET["z"];
$start = $_GET["st"];
$fnum = $_GET["f"]; // Spaltennummer, nach der aktuell gefiltert wird
$filter = $_GET["b"]; // Filterbegriff
$sort = $_GET["s"];
$gmv = $_GET['g']; // mit Gefahr, Massnahmen und Vorsorge
$getp = "?st=$start&z=$zeil&s=$sort&f=$fnum&b=$filter&g=$gmv"; //Link fuer Liste zurueck
?>
<!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>Raum-Arbeits-Gruppe bearbeiten</title>
<script type="text/javascript">
<!--
var counter = 0;
var limit = 99;
var arr = new Array();
function addInput(divId,arr){
if (counter == limit) {
alert("Das Limit von " + counter + " zusätzlichen inputs ist erreicht");
}
else {
var newdiv = document.createElement('div');
var count;
var strval = "";
var strk,strv;
var opt="<option value='-1'></option>";
for (var key in arr)
// alert(key + " => " + arr[key]); // hier schon sort nach key
var sorta = [];
for (var key in arr)
sorta.push([key, arr[key]])
sorta.sort(function(a, b) {return a[1] > b[1]})
// alert (sorta);
for (var key in sorta)
{
strval = '"'+sorta[key]+'"'; // nur mit "" ist es ein String-Objekt
// alert (strval.valueOf()+": " + sorta[key]+",index: "+ strval.indexOf(","));
strk = strval.substring(1,strval.indexOf(","));
strv = strval.substring(strval.indexOf(",")+1,strval.length-1);
if (strval.indexOf("inaktiv")>0)
opt = opt.concat("<option class='red' value='",strk,"'>",strv,"</option>\n" );
else
opt = opt.concat("<option value='",strk,"'>",strv,"</option>\n" );
}
/* for (var key in arr)
{
if (arr[key].indexOf("inaktiv")>0)
opt = opt.concat("<option class='red' value='",key,"'>",arr[key],"</option>\n" );
else
opt = opt.concat("<option value='",key,"'>",arr[key],"</option>\n" );
}
*/
opt += "</select>\n";
if (divId == 'addr')
newdiv.innerHTML += "<select name='rag[ra][]'>"+opt;
else
newdiv.innerHTML += "<select name='rag[ma][]'>"+opt;
document.getElementById(divId).appendChild(newdiv);
counter++;
}
}
function delInput(divId){
var kn = document.getElementById(divId);
while (kn.childNodes.length>0 && kn.lastChild.nodeName != "SELECT" && kn.lastChild.nodeName != "A")
{
// alert ("vor "+kn.lastChild.nodeName+", nodetyp = "+ kn.lastChild.nodeType);
var knc = kn.lastChild;
document.getElementById(divId).removeChild(knc);
}
if (kn.lastChild.nodeName == "SELECT") document.getElementById(divId).removeChild(kn.lastChild);
}
//-->
</script>
</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=\"img/role.png\" border=\"0\" alt=\"Raum-Arbeits-Gruppe bearbeiten\" title=\"Raum-Arbeits-Gruppe bearbeiten\"/></div>\n";
if ($ragid) $text = "editieren"; else $text = "erfassen";
echo "<div align=\"center\">";
echo "<h3>Raum-Arbeits-Gruppe zugehörige Räume, Mitarbeiter $text</h3>";
echo "</div>\n";
if (!$sub || !isset($rag) || !$ok)
{
if ($ragid && !$sub && !isset($rag))
{
$sql = "SELECT rag.rag_ID,raum_ID FROM fhiiqm.RaumArb_Gruppe rag LEFT OUTER JOIN
Raum_RaumArbGruppe r ON rag.rag_ID = r.rag_ID WHERE rag.rag_ID = " . $ragid;
if ($res = $dbc -> queryObjectArray($sql))
{
foreach ($res as $row)
{
$rag["gr"] = $row->rag_ID;
$rag["ra"][] = $row->raum_ID;
}
}
else $rag["gr"] = $ragid;
$sql = "SELECT persknr FROM MA_RaumArbGruppe WHERE rag_ID = " . $ragid;
if ($res = $dbc -> queryObjectArray($sql))
{
foreach ($res as $row)
{
$rag["ma"][] = $row->persknr;
}
}
}
include ($_SERVER["DOCUMENT_ROOT"]."/fhiiqm/form/raumarbgr_form.inc.php");
if ($sub)
{
$frage = "Alle Angaben ok?";
echo "<tr>
<td class=\"red\" valign=\"top\" align=\"left\">$frage</td>
<td><input type=\"checkbox\" name=\"ok\" value=\"1\"";
if ($ok) echo "checked=\"checked\"";
echo " /></td>\n</tr>\n";
}
if (!is_null($_SESSION["recht"]) && in_array("ase",$_SESSION["recht"]))
{
echo "
<tr><td> </td>\n
<td><input class=\"button\" type=\"submit\" name=\"eintragen\" value=\" eintragen \" />";
echo "</td></tr>\n";
}
echo "</table>\n";
echo "</div>\n";
echo "<p class='sc'> <a href=\"raumarbgr_flist.php$getp\" target=\"_self\" title=\"Raum-Arbeits-Gruppe-Liste\">« zur Raum-Arbeits-Gruppe-Liste</a></p>\n";
echo "</form>\n";
}
else
{
echo "<div align='center'>\n";
if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
$stmt = $dbc -> stmtinit();
if (is_object($stmt))
{
$retdr = 1; $retdm = 1;
if ($ragid && is_array($rag['ra']))
{ //UPDATE
// Loeschen alte Raeume
$retdr = $dbc -> execute("DELETE FROM Raum_RaumArbGruppe WHERE rag_ID = ". $ragid);
}
if ($ragid && is_array($rag['ma']))
{ //UPDATE
// Loeschen alte MA
$retdm = $dbc -> execute("DELETE FROM MA_RaumArbGruppe WHERE rag_ID = ". $ragid);
}
if ($retdr && is_array($rag['ra']))
{
$retr = 1;
$stmt -> prepare("INSERT INTO Raum_RaumArbGruppe (raum_ID,rag_ID) VALUES(?,?)");
for ($k=0; $k<count($rag["ra"]); $k++)
{
if ($rag["ra"][$k] && $rag["ra"][$k] != -1)
{
$stmt -> bind_param('ii',$rag["ra"][$k], $rag["gr"]);
$retr = $stmt -> execute();
if (!$retr) $rett = false;
}
}
if (!$retr) echo "error INSERT Raum: $stmt->error<br />\n";
}
if ($retdm && is_array($rag['ma']))
{
$retm = 1;
$stmt -> prepare("INSERT INTO MA_RaumArbGruppe (persknr,rag_ID) VALUES(?,?)");
for ($k=0; $k<count($rag["ma"]); $k++)
{
if ($rag["ma"][$k] && $rag["ma"][$k] != -1)
{
$stmt -> bind_param('ii',$rag["ma"][$k], $rag["gr"]);
$retm = $stmt -> execute();
if (!$retm) $retm = false;
}
}
if (!$retm) echo "error INSERT Mitarbeiter: $stmt->error<br />\n";
}
}
$sql = "SELECT rag_bez FROM RaumArb_Gruppe WHERE rag_ID=".$rag["gr"];
$ragbez = $dbc -> querySingleItem($sql);
if ($retr && $retm)
{
echo "<p class='green'><b>Zuordnungen zu Raum-Arbeitsgruppe '$ragbez' wurden erfolgreich gespeichert.</b></p>\n";
echo "<table>\n";
if (is_array($rag["ra"]))
{
$sql = "SELECT raum_nr, geb_ID FROM Raum WHERE raum_ID = ";
echo "<tr><td>zugeordnete Räume: </td>";
foreach ($rag["ra"] as $gf)
{
$res = $dbc -> queryObjectArray($sql . $gf);
if ($res)
foreach ($res as $row)
{
if ($next) $next ="<tr><td> </td>"; else $next =" ";
if ($gf && $gf != -1) echo "$next<td>$row->geb_ID: $row->raum_nr</td></tr>\n";
}
else echo "</tr>\n";
}
}
if (is_array($rag["ma"]))
{
$next = null;
$sql = "SELECT CONCAT (nachname, ', ',vorname, ' (' , IFNULL(abt_name,''),')') AS ma
FROM Mitarbeiter m LEFT OUTER JOIN fhiiqm.Abteilung a ON m.abt_tel=a.abt_ID WHERE persknr = ";
echo "<tr><td>zugeordnete Mitarbeiter: </td>";
foreach ($rag["ma"] as $gf)
{
$res = $dbc -> queryObjectArray($sql . $gf);
if ($res)
foreach ($res as $row)
{
if ($next) $next ="<tr><td> </td>"; else $next =" ";
if ($gf && $gf != -1) echo "$next<td>$row->ma</td></tr>\n";
}
else echo "</tr>\n";
}
}
echo "</table>\n";
}
else
echo "<p class='red'><b>Gefährdungen für Arbeitsplatztyp '$ragbez' wurden nicht oder nur teilweise gespeichert</b></p>\n";
echo "</div>";
echo "<p class='sc'> <a href=\"raumarbgr_flist.php$getp\" target=\"_self\" title=\"Raum-Arbeits-Gruppe-Liste\">« zur Raum-Arbeits-Gruppe-Liste</a></p>\n";
}
?>
</body>
</html>