fhiiqm/raumarbgr_ed.php
author Bettina Schwarzer
Fri, 05 Feb 2016 14:03:40 +0100
changeset 44 d652bbba2d43
parent 39 4ce411ed28b6
permissions -rw-r--r--
fhiiqm: achilleus -> db2, Korrekturen

<?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 "&nbsp;";  
    echo "<div class=\"float-br smaller\" valign='top'>";
    echo "&nbsp;&nbsp;&nbsp;user: " . $_SESSION["userid"];
    echo "&nbsp;&nbsp;&nbsp;<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&ouml;rige R&auml;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>&nbsp;</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'>&nbsp;&nbsp;&nbsp;<a href=\"raumarbgr_flist.php$getp\" target=\"_self\" title=\"Raum-Arbeits-Gruppe-Liste\">&laquo; 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&auml;ume: </td>";
                    foreach ($rag["ra"] as $gf)
                    { 
                        $res = $dbc -> queryObjectArray($sql . $gf);
                        if ($res)
                            foreach ($res as $row)
                            { 
                                if ($next) $next ="<tr><td>&nbsp;</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>&nbsp;</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&auml;hrdungen für Arbeitsplatztyp '$ragbez' wurden nicht oder nur teilweise gespeichert</b></p>\n";
        
        echo "</div>";
        echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"raumarbgr_flist.php$getp\" target=\"_self\" title=\"Raum-Arbeits-Gruppe-Liste\">&laquo; zur Raum-Arbeits-Gruppe-Liste</a></p>\n"; 
    }
?>
</body>
</html>