fhiiqm/ma_tel_ed.php
author Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
Fri, 21 Dec 2012 15:31:50 +0100
changeset 33 f1a8785434e4
parent 32 c2d325791e24
child 34 fc60ef80a7ad
permissions -rw-r--r--
+ MA-Telefon-Liste, Edit MA, Telefon + Report dezentrale Anlagen + Report MA - Beziehungen

<?php

/**
 * @author Bettina Schwarzer, Fritz-Haber-Institut
 * @copyright 12/2012
 * 
 * INSERT/UPDATE/(DELETE) 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("mtr",$_SESSION["recht"]) && !in_array("mte",$_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"];
    $del = $_POST["del"];
    $ma  = $_POST["ma"];
    $okn = $_POST["okn"];
    $ok  = $_POST["ok"];
    if (!$okn) $ok=0;
    $pid = $_GET["i"]; // persknr

	$sort   = $_GET["s"];   // Sortierung nach Spalte
    $dir    = $_GET["d"];   // Sortierrichtung
    $fnum   = $_GET["f"];   // Spaltennummer, nach der aktuell gefiltert wird
    $filter =  $_GET["b"];  // Filterbegriff 
    $getp = "&s=$sort&d=$dir&f=$fnum&b=$filter"; // Parameter Listenanzeige
    
//    print_r ($ma); echo "<br />sub = $sub<br /><br />"; 

?>
<!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>MA/O bearbeiten</title>

    <script type="text/javascript">
    <!--
    var counter = 0;
    var limit = 99;
    var arr = new Array();
    function addInput(divName){
         if (counter == limit)  {
              alert("Das Limit von " + counter + " zusätzlichen inputs ist erreicht");
         }
         else {
              var newdiv = document.createElement('div');
              var opt="<option value='-1'></option>";
              for (var key in arr)  
              {
                opt = opt.concat("<option value='",key,"'>",arr[key],"</option>\n" );
              }
              opt += "</select>";
              newdiv.innerHTML = "<select name='ma[tel][]'>"+opt;
              newdiv.innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;oder neu&nbsp;&nbsp;&nbsp;<input type='text' name='ma[ntel][]' size='20' maxlength='20' />";
              newdiv.innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;&ouml;ffentlich&nbsp;&nbsp;&nbsp;<input type='checkbox' name='ma[pub][" + (counter+1) + "]' value='1' />";
              document.getElementById(divName).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/group.png\" border=\"0\" alt=\"Mitarbeiter bearbeiten\" title=\"Mitarbeiter bearbeiten\"/></div>\n";

    if ($pid) $text = "editieren"; else $text = "erfassen";
    echo "<div align=\"center\">";
    echo "<h3>Mitarbeiter/Objekte $text</h3>";
    echo "</div>\n";
    if ((!$sub && !$del) || !isset($ma) || !$ok) 
    {
        
        if ($pid && (!$sub || !$del) && !isset($ma))
        {
            $sql = "SELECT nachname,vorname,titel,rag_ID,abt_tel,email,aktiv FROM Mitarbeiter WHERE persknr=$pid";
            if ($result = $dbc -> queryObjectArray($sql))
            {
                foreach ($result as $row)
                {
                    $ma['name']     = $row->nachname;
                    $ma['vname']    = $row->vorname;
                    $ma['titel']    = $row->titel;
                    $ma['rag']      = $row->rag_ID;
                    $ma['abt']      = $row->abt_tel;
                    $ma['email']    = $row->email;
                    $ma['fhi']      = ($row->aktiv == 1)? 1 : 0;
                }    
            }
            // Haus,Raum
            $sql = "SELECT ma.raum_ID, geb_ID FROM Mitarbeiter_Raum ma INNER JOIN Raum r ON ma.raum_ID=r.raum_ID 
                    WHERE persknr=$pid ORDER BY raum_ID"; 
            if ($result = $dbc -> queryObjectArray($sql))
            {
                foreach ($result as $row)
                {
                   $ma['geb'] = $row->geb_ID;  
                   $ma['raum'] = $row->raum_ID;  
                }
            }
            // Telefon
            $sql = "SELECT m.telefon_nr,public
                    FROM fhiiqm.MA_Telefon m INNER JOIN Telefon t ON m.telefon_nr=t.telefon_nr 
                    WHERE persknr = $pid";
            if ($result = $dbc -> queryObjectArray($sql))
            {
                foreach ($result as $row)
                {
                    $ma['tel'][] = $row->telefon_nr;
                    $ma['pub'][] = ($row->public)? 1 : 0;
                }
            }
        }
        include ($_SERVER["DOCUMENT_ROOT"]."/fhiiqm/form/ma_ed_form.inc.php");
        
	  	if ($sub || $del)
        {
		  	if ($sub)
                $frage = "Alle Angaben ok?";
            elseif ($del)
                $frage = "Mitarbeiter wirklich l&ouml;schen?";
			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("mte",$_SESSION["recht"]))
        {
            echo "
           	<tr><td>&nbsp;</td>\n
            	<td><input  class=\"button\" type=\"submit\" name=\"eintragen\" value=\"  eintragen  \" />";
            if ($pid)
            {
                echo "&nbsp;&nbsp;&nbsp;<input class=\"buttonr\" type=\"submit\" value=\"l&ouml;schen\" name=\"del\" title=\"delete\" />";
//                echo "&nbsp;&nbsp;&nbsp;<input class=\"button\" type=\"submit\" value=\"duplizieren\" name=\"dup\" title=\"delete\" />";
            }    
           	echo "</td></tr>\n";
        }
        echo "</table>\n";
        echo "</div>\n";
    echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"ma_tel_flist.php?e=1$getp\" target=\"_self\" title=\"Telefon-Liste\">&laquo; zur Telefon-Liste</a></p>\n"; 
    echo "</form>\n";
    }
    else
    {
        echo "<div align='center'>\n";
        
        if ($del)
        {   
            if ($ma["fhi"])
            {
                // nur aktiv auf 0 setzen
                $sql = "UPDATE Mitarbeiter SET aktiv=0 WHERE persknr = $pid";
                $retdi = $dbc -> execute($sql);
                $sql = "DELETE FROM Mitarbeiter_Raum WHERE persknr = $pid";
                $retdi = $dbc -> execute($sql);
                $sql = "DELETE FROM MA_Telefon WHERE persknr = $pid";
                $retdi = $dbc -> execute($sql);
            }
            else
            {
                $sql = "DELETE FROM Mitarbeiter WHERE persknr = $pid";
                $retdi = $dbc -> execute($sql);
            }
            if ($retdi)
            {
                echo "<p class='green'><b>DELETE: Daten  zu '".$ma["name"]. ", ". $ma['vname'] ."' wurden erfolgreich gel&ouml;scht.</b></p>\n";
            }                
            else
            {
                echo "<p class='red'><b>DELETE: Daten  zu '".$ma["name"]. ", ". $ma['vname'] ."' konnten nicht gel&ouml;scht werden!</b></p>\n";
                echo "sql = $sql<br />";
                echo "error DELETE: " . $dbc->error . "<br />";
            }
            include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/ma_tel_dat_show.inc.php");
        }
        else //INSERT oder UPDATE
        {
            if ($ma['rag'] == -1) $ma['rag'] = null;
            $stmt = $dbc -> stmtinit();
            if (is_object($stmt))
            {
                if ($ma['fhi']) $aktiv = 1; else $aktiv = 2; 
                if ($pid) //UPDATE
                {
                    $stmt -> prepare("UPDATE Mitarbeiter SET 
                                        nachname = ?,
                                        vorname = ?,
                                        titel = ?,
                                        rag_ID = ?,
                                        email = ?,
                                        abt_tel = ?,
                                        aktiv = ?
                                        WHERE persknr = $pid");
                    $stmt -> bind_param('sssisii',$ma['name'],$ma['vname'],$ma['titel'],$ma['rag'],$ma['email'],$ma['abt'], $aktiv);
//                    echo "UPDATE: ". var_dump($stmt);
                    $result = $stmt -> execute();
                    if ($stmt->error) echo "error UPDATE Mitarbeiter: " . $stmt->error . "<br><br>\n";
                }
                else
                {
                    $sql = "SELECT MAX(persknr) FROM Mitarbeiter WHERE persknr < 9500";
                    $pid = $dbc -> querySingleItem($sql) + 1;
                    $stmt -> prepare ("INSERT INTO Mitarbeiter (persknr, nachname, vorname, titel,rag_ID,email,abt_tel,aktiv) VALUES (?,?,?,?,?,?,?,?)"); 
                    $stmt -> bind_param('isssisii',$pid,$ma['name'],$ma['vname'],$ma['titel'],$ma['rag'],$ma['email'],$ma['abt'], $aktiv);
                    $result = $stmt -> execute();
                    if ($stmt->error) echo "error INSERT Mitarbeiter: " . $stmt->error . "<br><br>\n";
                }
                if ($result)
                {
                    $ret = 1;
                    // raum
                    if ($ma["raum"] > "-1")
                    {
                        $sql = "DELETE FROM Mitarbeiter_Raum WHERE persknr=$pid";
                        $redr = $dbc -> execute($sql);
                        if ($redr)
                        {
                            $sql = "INSERT INTO Mitarbeiter_Raum (persknr, raum_ID) VALUES ($pid, " . $ma["raum"] . ")";
                            $ret = $dbc -> execute($sql);
                        } 
                    }
                    if (is_array($ma['ntel']))
                    {
                        foreach ($ma['ntel'] as $tel)
                        {
                            if ($tel > "!")
                            {
                                $sql = "SELECT COUNT(*) FROM Telefon WHERE telefon_nr ='$tel'";
                                $anz = $dbc -> querySingleItem($sql);
                                if ( $anz == 0)
                                {
                                    $sql = "INSERT INTO Telefon (telefon_nr) VALUES('$tel')";
                                    $rest = $dbc -> execute($sql);
                                    if ($rest) $ret = 1; else $ret = 0;
                                }
                            }    
                        }
                    }
                    if ($ret)
                    {
                        $sql = "DELETE FROM MA_Telefon WHERE persknr = $pid";
                        $redmt = $dbc -> execute($sql);
                        if ($redmt)
                        {
                            $i=0;        
                            foreach ($ma['tel'] as $tel)
                            {
                                if ($tel >"!" && $tel != "-1")
                                {
                                    if (!isset($ma['pub'][$i])) $ma['pub'][$i] = 'NULL';
                                    $sql = "INSERT INTO MA_Telefon (persknr, telefon_nr, public) VALUES ($pid,'$tel'," . $ma['pub'][$i] . ")";
                                    $rest = $dbc -> execute($sql);
                                    if ($rest) $ret = 1; else $ret = 0;
                                }
                                $i++;
                            }
                            $i=0;        
                            foreach ($ma['ntel'] as $tel)
                            {
                                if ($tel >"!")
                                {
                                    if (!isset($ma['pub'][$i])) $ma['pub'][$i] = 'NULL';
                                    $sql = "INSERT INTO MA_Telefon (persknr, telefon_nr, public) VALUES ($pid,'$tel'," . $ma['pub'][$i] . ")";
                                    $rest = $dbc -> execute($sql);
                                    if ($rest) $ret = 1; else $ret = 0;
                                }
                                $i++;
                            }
                        }
                    }
                }
            }
            if ($result && $redmt && $ret) // INSERT/UPDATE Info
            {
                //Eingabe Daten erfolgreich 
                    echo "<p class='green'><b>Mitarbeiterdaten zu " . $ma['name']. ", ". $ma['vname'] . " wurden erfolgreich gespeichert.</b></p>\n";
                    echo "<br /><br />\n";
            }
            else
            {
                    echo "<p class='red'><b>Mitarbeiterdaten zu " . $ma['name']. ", ". $ma['vname'] . " wurden nicht oder nur teilweise gespeichert.</b></p>\n";
                    echo "error: ". $dbc -> error;    
                    echo "<br /><br />\n";                
            }
            include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/ma_tel_dat_show.inc.php");
        }
        echo "</div>";
        echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"ma_tel_flist.php?e=1$getp\" target=\"_self\" title=\"Telefonliste\">&laquo; zur Telefon-Liste</a></p>\n"; 
        echo "<p class='sc'>&nbsp;&nbsp;&nbsp;<a href=\"".$_SERVER["PHP_SELF"]."\" target=\"_self\" title=\"Mitarbeiter erfassen\">Neuen Mitarbeiter erfassen</a></p>\n";    
    }
?>
</body>
</html>