fhiiqm/ma_tel_ed.php
changeset 34 fc60ef80a7ad
parent 33 f1a8785434e4
child 40 6f4b105daa24
equal deleted inserted replaced
33:f1a8785434e4 34:fc60ef80a7ad
    57     <script type="text/javascript">
    57     <script type="text/javascript">
    58     <!--
    58     <!--
    59     var counter = 0;
    59     var counter = 0;
    60     var limit = 99;
    60     var limit = 99;
    61     var arr = new Array();
    61     var arr = new Array();
       
    62     var arra = new Array();
       
    63     var arrg = new Array();
    62     function addInput(divName){
    64     function addInput(divName){
    63          if (counter == limit)  {
    65          if (counter == limit)  {
    64               alert("Das Limit von " + counter + " zusätzlichen inputs ist erreicht");
    66               alert("Das Limit von " + counter + " zusätzlichen inputs ist erreicht");
    65          }
    67          }
    66          else {
    68          else 
       
    69          {
       
    70             if (divName == 'addtel')
       
    71             {            
    67               var newdiv = document.createElement('div');
    72               var newdiv = document.createElement('div');
    68               var opt="<option value='-1'></option>";
    73               var opt="<option value='-1'></option>";
       
    74               var i;
    69               for (var key in arr)  
    75               for (var key in arr)  
    70               {
    76               {
    71                 opt = opt.concat("<option value='",key,"'>",arr[key],"</option>\n" );
    77                 opt = opt.concat("<option value='",key,"'>",arr[key],"</option>\n" );
    72               }
    78               }
    73               opt += "</select>";
    79               opt += "</select>\n";
    74               newdiv.innerHTML = "<select name='ma[tel][]'>"+opt;
    80               newdiv.innerHTML = "<span></span><select name='ma[tel][]'>"+opt;
    75               newdiv.innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;oder neu&nbsp;&nbsp;&nbsp;<input type='text' name='ma[ntel][]' size='20' maxlength='20' />";
    81               newdiv.innerHTML += "&nbsp;&nbsp;&nbsp;oder neu&nbsp;&nbsp;&nbsp;<input type='text' name='ma[ntel][]' size='20' maxlength='20' />";
    76               newdiv.innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;&ouml;ffentlich&nbsp;&nbsp;&nbsp;<input type='checkbox' name='ma[pub][" + (counter+1) + "]' value='1' />";
    82               opt = "<option value='-1'></option>";
       
    83               for (i=1; i<10; i++)
       
    84               {
       
    85                 opt = opt.concat("<option value=",i,">",i,"</option>\n");
       
    86               }
       
    87               opt += "</select>\n";
       
    88               newdiv.innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;Priorit&auml;t&nbsp;&nbsp;&nbsp;<select name='ma[so][]'>"+opt;
       
    89               newdiv.innerHTML += "&nbsp;&nbsp;&nbsp;&ouml;ffentlich&nbsp;&nbsp;&nbsp;<input type='checkbox' name='ma[pub][" + (counter+1) + "]' value='1' />\n";
    77               document.getElementById(divName).appendChild(newdiv);
    90               document.getElementById(divName).appendChild(newdiv);
    78               counter++;
    91               counter++;
       
    92             }
       
    93             else
       
    94             {
       
    95               var newdiv = document.createElement('div');
       
    96               var opt="";
       
    97               var optg="<option value='-1'></option>";
       
    98               for (var key in arra)  
       
    99               {
       
   100                 opt = opt.concat("<option value='",key,"'>",arra[key],"</option>\n" );
       
   101               }
       
   102               opt += "</select>\n";
       
   103               newdiv.innerHTML = "<span></span><select name='ma[abt][]'>"+opt;
       
   104               for (var key in arrg)  
       
   105               {
       
   106                 optg = optg.concat("<option value='",key,"'>",arrg[key],"</option>\n" );
       
   107               }
       
   108               optg += "</select>\n";
       
   109               newdiv.innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;Arbeitsgruppe&nbsp;&nbsp;&nbsp;&nbsp;<select name='ma[rag][]'>"+optg;                
       
   110               document.getElementById(divName).appendChild(newdiv);
       
   111               counter++;
       
   112             }  
    79          }
   113          }
    80     }
   114     }
    81     function delInput(divId){
   115     function delInput(divId){
    82             var kn = document.getElementById(divId); 
   116             var kn = document.getElementById(divId); 
    83             while (kn.childNodes.length>0 && kn.lastChild.nodeName != "SELECT" && kn.lastChild.nodeName != "A")
   117             while (kn.childNodes.length>0 && kn.lastChild.nodeName != "SPAN" && kn.lastChild.nodeName != "A")
    84             {
   118             {
    85 //                alert ("vor "+kn.lastChild.nodeName+", nodetyp = "+ kn.lastChild.nodeType);
   119 //                alert ("vor "+kn.lastChild.nodeName+", nodetyp = "+ kn.lastChild.nodeType);
    86                 var knc = kn.lastChild;
   120                 var knc = kn.lastChild;
    87                     document.getElementById(divId).removeChild(knc);
   121                     document.getElementById(divId).removeChild(knc);
    88             }
   122             }
    89             if (kn.lastChild.nodeName == "SELECT") document.getElementById(divId).removeChild(kn.lastChild);
   123 //            if (kn.lastChild.nodeName == "SELECT") document.getElementById(divId).removeChild(kn.lastChild);
       
   124             if (kn.lastChild.nodeName == "SPAN") document.getElementById(divId).removeChild(kn.lastChild);
    90     }
   125     }
    91     //-->
   126     //-->
    92     </script>
   127     </script>
    93 
   128 
    94 </head>
   129 </head>
   109     if ((!$sub && !$del) || !isset($ma) || !$ok) 
   144     if ((!$sub && !$del) || !isset($ma) || !$ok) 
   110     {
   145     {
   111         
   146         
   112         if ($pid && (!$sub || !$del) && !isset($ma))
   147         if ($pid && (!$sub || !$del) && !isset($ma))
   113         {
   148         {
   114             $sql = "SELECT nachname,vorname,titel,rag_ID,abt_tel,email,aktiv FROM Mitarbeiter WHERE persknr=$pid";
   149             $sql = "SELECT nachname,vorname,titel,abt_tel,email,aktiv FROM Mitarbeiter WHERE persknr=$pid";
   115             if ($result = $dbc -> queryObjectArray($sql))
   150             if ($result = $dbc -> queryObjectArray($sql))
   116             {
   151             {
   117                 foreach ($result as $row)
   152                 foreach ($result as $row)
   118                 {
   153                 {
   119                     $ma['name']     = $row->nachname;
   154                     $ma['name']     = $row->nachname;
   120                     $ma['vname']    = $row->vorname;
   155                     $ma['vname']    = $row->vorname;
   121                     $ma['titel']    = $row->titel;
   156                     $ma['titel']    = $row->titel;
   122                     $ma['rag']      = $row->rag_ID;
   157                     $ma['abtm']     = $row->abt_tel;
   123                     $ma['abt']      = $row->abt_tel;
       
   124                     $ma['email']    = $row->email;
   158                     $ma['email']    = $row->email;
   125                     $ma['fhi']      = ($row->aktiv == 1)? 1 : 0;
   159                     $ma['fhi']      = ($row->aktiv == 1)? 1 : 0;
   126                 }    
   160                 }    
   127             }
   161             }
       
   162             // Arbeitsgruppe, Abteilung
       
   163             $sql = "SELECT mr.rag_ID, abt_ID FROM fhiiqm.MA_RaumArbGruppe mr INNER JOIN RaumArb_Gruppe r ON mr.rag_ID=r.rag_ID 
       
   164                     WHERE  persknr=$pid";
       
   165             if ($result = $dbc -> queryObjectArray($sql))
       
   166             {
       
   167                 foreach ($result as $row)
       
   168                 {
       
   169                    $ma['abt'][] = $row->abt_ID;  
       
   170                    $ma['rag'][] = $row->rag_ID;  
       
   171                 }
       
   172             }
       
   173             if (count($ma['abt']) == 0) $ma['abt'][] = $ma['abtm']; 
   128             // Haus,Raum
   174             // Haus,Raum
   129             $sql = "SELECT ma.raum_ID, geb_ID FROM Mitarbeiter_Raum ma INNER JOIN Raum r ON ma.raum_ID=r.raum_ID 
   175             $sql = "SELECT ma.raum_ID, geb_ID FROM Mitarbeiter_Raum ma INNER JOIN Raum r ON ma.raum_ID=r.raum_ID 
   130                     WHERE persknr=$pid ORDER BY raum_ID"; 
   176                     WHERE persknr=$pid ORDER BY raum_ID"; 
   131             if ($result = $dbc -> queryObjectArray($sql))
   177             if ($result = $dbc -> queryObjectArray($sql))
   132             {
   178             {
   135                    $ma['geb'] = $row->geb_ID;  
   181                    $ma['geb'] = $row->geb_ID;  
   136                    $ma['raum'] = $row->raum_ID;  
   182                    $ma['raum'] = $row->raum_ID;  
   137                 }
   183                 }
   138             }
   184             }
   139             // Telefon
   185             // Telefon
   140             $sql = "SELECT m.telefon_nr,public
   186             $sql = "SELECT m.telefon_nr,public,sort
   141                     FROM fhiiqm.MA_Telefon m INNER JOIN Telefon t ON m.telefon_nr=t.telefon_nr 
   187                     FROM fhiiqm.MA_Telefon m INNER JOIN Telefon t ON m.telefon_nr=t.telefon_nr 
   142                     WHERE persknr = $pid";
   188                     WHERE persknr = $pid ORDER BY IFNULL(sort,99)" ;
   143             if ($result = $dbc -> queryObjectArray($sql))
   189             if ($result = $dbc -> queryObjectArray($sql))
   144             {
   190             {
   145                 foreach ($result as $row)
   191                 foreach ($result as $row)
   146                 {
   192                 {
   147                     $ma['tel'][] = $row->telefon_nr;
   193                     $ma['tel'][] = $row->telefon_nr;
   148                     $ma['pub'][] = ($row->public)? 1 : 0;
   194                     $ma['pub'][] = ($row->public)? 1 : 0;
       
   195                     $ma['so'][]  = $row->sort;   
   149                 }
   196                 }
   150             }
   197             }
   151         }
   198         }
   152         include ($_SERVER["DOCUMENT_ROOT"]."/fhiiqm/form/ma_ed_form.inc.php");
   199         include ($_SERVER["DOCUMENT_ROOT"]."/fhiiqm/form/ma_ed_form.inc.php");
   153         
   200         
   193                 $retdi = $dbc -> execute($sql);
   240                 $retdi = $dbc -> execute($sql);
   194                 $sql = "DELETE FROM Mitarbeiter_Raum WHERE persknr = $pid";
   241                 $sql = "DELETE FROM Mitarbeiter_Raum WHERE persknr = $pid";
   195                 $retdi = $dbc -> execute($sql);
   242                 $retdi = $dbc -> execute($sql);
   196                 $sql = "DELETE FROM MA_Telefon WHERE persknr = $pid";
   243                 $sql = "DELETE FROM MA_Telefon WHERE persknr = $pid";
   197                 $retdi = $dbc -> execute($sql);
   244                 $retdi = $dbc -> execute($sql);
       
   245                 $sql = "DELETE FROM MA_RaumArbGruppe WHERE persknr = $pid";
       
   246                 $retdi = $dbc -> execute($sql);
   198             }
   247             }
   199             else
   248             else
   200             {
   249             {
   201                 $sql = "DELETE FROM Mitarbeiter WHERE persknr = $pid";
   250                 $sql = "DELETE FROM Mitarbeiter WHERE persknr = $pid";
   202                 $retdi = $dbc -> execute($sql);
   251                 $retdi = $dbc -> execute($sql);
   213             }
   262             }
   214             include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/ma_tel_dat_show.inc.php");
   263             include ($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/ma_tel_dat_show.inc.php");
   215         }
   264         }
   216         else //INSERT oder UPDATE
   265         else //INSERT oder UPDATE
   217         {
   266         {
   218             if ($ma['rag'] == -1) $ma['rag'] = null;
       
   219             $stmt = $dbc -> stmtinit();
   267             $stmt = $dbc -> stmtinit();
   220             if (is_object($stmt))
   268             if (is_object($stmt))
   221             {
   269             {
   222                 if ($ma['fhi']) $aktiv = 1; else $aktiv = 2; 
   270                 if ($ma['fhi']) $aktiv = 1; else $aktiv = 2;
       
   271                 if ($ma['email'])
       
   272                 {
       
   273                     if (strpos($ma['email'],"@") > 0) $ma['email'] = $ma['email']; else $ma['email'] = $ma['email'] . "@fhi-berlin.mpg.de";
       
   274                 } 
       
   275                 foreach ($ma as &$elem) if (!$elem) $elem = null;  // NULL-Eintrag in Leerfelder  
   223                 if ($pid) //UPDATE
   276                 if ($pid) //UPDATE
   224                 {
   277                 {
       
   278                     // Abt. alt in aktualisierten Abteilungen?
       
   279                     if (!in_array($ma['abtm'],$ma['abt'])) $ma['abtm'] = $ma['abt'][0];
   225                     $stmt -> prepare("UPDATE Mitarbeiter SET 
   280                     $stmt -> prepare("UPDATE Mitarbeiter SET 
   226                                         nachname = ?,
   281                                         nachname = ?,
   227                                         vorname = ?,
   282                                         vorname = ?,
   228                                         titel = ?,
   283                                         titel = ?,
   229                                         rag_ID = ?,
       
   230                                         email = ?,
   284                                         email = ?,
   231                                         abt_tel = ?,
   285                                         abt_tel = ?,
   232                                         aktiv = ?
   286                                         aktiv = ?
   233                                         WHERE persknr = $pid");
   287                                         WHERE persknr = $pid");
   234                     $stmt -> bind_param('sssisii',$ma['name'],$ma['vname'],$ma['titel'],$ma['rag'],$ma['email'],$ma['abt'], $aktiv);
   288                     $stmt -> bind_param('ssssii',$ma['name'],$ma['vname'],$ma['titel'],$ma['email'],$ma['abtm'], $aktiv);
   235 //                    echo "UPDATE: ". var_dump($stmt);
   289 //                    echo "UPDATE: ". var_dump($stmt);
   236                     $result = $stmt -> execute();
   290                     $result = $stmt -> execute();
   237                     if ($stmt->error) echo "error UPDATE Mitarbeiter: " . $stmt->error . "<br><br>\n";
   291                     if ($stmt->error) echo "error UPDATE Mitarbeiter: " . $stmt->error . "<br><br>\n";
   238                 }
   292                 }
   239                 else
   293                 else
   240                 {
   294                 {
   241                     $sql = "SELECT MAX(persknr) FROM Mitarbeiter WHERE persknr < 9500";
   295                     $sql = "SELECT MAX(persknr) FROM Mitarbeiter WHERE persknr < 9500";
   242                     $pid = $dbc -> querySingleItem($sql) + 1;
   296                     $pid = $dbc -> querySingleItem($sql) + 1;
   243                     $stmt -> prepare ("INSERT INTO Mitarbeiter (persknr, nachname, vorname, titel,rag_ID,email,abt_tel,aktiv) VALUES (?,?,?,?,?,?,?,?)"); 
   297                     $stmt -> prepare ("INSERT INTO Mitarbeiter (persknr, nachname, vorname, titel,email,abt_tel,aktiv) VALUES (?,?,?,?,?,?,?)"); 
   244                     $stmt -> bind_param('isssisii',$pid,$ma['name'],$ma['vname'],$ma['titel'],$ma['rag'],$ma['email'],$ma['abt'], $aktiv);
   298                     $stmt -> bind_param('issssii',$pid,$ma['name'],$ma['vname'],$ma['titel'],$ma['email'],$ma['abt'][0], $aktiv);
   245                     $result = $stmt -> execute();
   299                     $result = $stmt -> execute();
   246                     if ($stmt->error) echo "error INSERT Mitarbeiter: " . $stmt->error . "<br><br>\n";
   300                     if ($stmt->error) echo "error INSERT Mitarbeiter: " . $stmt->error . "<br><br>\n";
       
   301                     $ma['abtm'] = $ma['abt'][0];
   247                 }
   302                 }
   248                 if ($result)
   303                 if ($result)
   249                 {
   304                 {
   250                     $ret = 1;
   305                     $ret = 1;
   251                     // raum
   306                     // raum
   255                         $redr = $dbc -> execute($sql);
   310                         $redr = $dbc -> execute($sql);
   256                         if ($redr)
   311                         if ($redr)
   257                         {
   312                         {
   258                             $sql = "INSERT INTO Mitarbeiter_Raum (persknr, raum_ID) VALUES ($pid, " . $ma["raum"] . ")";
   313                             $sql = "INSERT INTO Mitarbeiter_Raum (persknr, raum_ID) VALUES ($pid, " . $ma["raum"] . ")";
   259                             $ret = $dbc -> execute($sql);
   314                             $ret = $dbc -> execute($sql);
       
   315                         } 
       
   316                     }
       
   317                     if (is_array($ma["rag"]) && count($ma["rag"])>0)
       
   318                     {
       
   319                         $sql = "DELETE FROM MA_RaumArbGruppe WHERE persknr=$pid";
       
   320                         $redr = $dbc -> execute($sql);
       
   321                         if ($redr)
       
   322                         {
       
   323                             foreach ($ma['rag'] as $rag)
       
   324                             {
       
   325                                 if ($rag > 0)
       
   326                                 {
       
   327                                     $sql = "INSERT INTO MA_RaumArbGruppe (persknr, rag_ID) VALUES ($pid, $rag)";
       
   328                                     $retn = $dbc -> execute($sql);
       
   329                                     if ($retn && $ret) $ret = 1; else $ret = 0;
       
   330                                 }
       
   331                             }    
   260                         } 
   332                         } 
   261                     }
   333                     }
   262                     if (is_array($ma['ntel']))
   334                     if (is_array($ma['ntel']))
   263                     {
   335                     {
   264                         foreach ($ma['ntel'] as $tel)
   336                         foreach ($ma['ntel'] as $tel)
   269                                 $anz = $dbc -> querySingleItem($sql);
   341                                 $anz = $dbc -> querySingleItem($sql);
   270                                 if ( $anz == 0)
   342                                 if ( $anz == 0)
   271                                 {
   343                                 {
   272                                     $sql = "INSERT INTO Telefon (telefon_nr) VALUES('$tel')";
   344                                     $sql = "INSERT INTO Telefon (telefon_nr) VALUES('$tel')";
   273                                     $rest = $dbc -> execute($sql);
   345                                     $rest = $dbc -> execute($sql);
   274                                     if ($rest) $ret = 1; else $ret = 0;
   346                                     if ($rest && $ret) $ret = 1; else $ret = 0;
   275                                 }
   347                                 }
   276                             }    
   348                             }    
   277                         }
   349                         }
   278                     }
   350                     }
   279                     if ($ret)
   351                     if ($ret)
   280                     {
   352                     {
       
   353                         foreach ($ma['so'] as &$prio)
       
   354                             if ($prio == '-1') $prio = null; 
   281                         $sql = "DELETE FROM MA_Telefon WHERE persknr = $pid";
   355                         $sql = "DELETE FROM MA_Telefon WHERE persknr = $pid";
   282                         $redmt = $dbc -> execute($sql);
   356                         $redmt = $dbc -> execute($sql);
   283                         if ($redmt)
   357                         if ($redmt)
   284                         {
   358                         {
   285                             $i=0;        
   359                             $i=0;        
   286                             foreach ($ma['tel'] as $tel)
   360                             foreach ($ma['tel'] as $tel)
   287                             {
   361                             {
   288                                 if ($tel >"!" && $tel != "-1")
   362                                 if ($tel >"!" && $tel != "-1")
   289                                 {
   363                                 {
   290                                     if (!isset($ma['pub'][$i])) $ma['pub'][$i] = 'NULL';
   364                                     if (!isset($ma['pub'][$i])) $ma['pub'][$i] = 'NULL';
   291                                     $sql = "INSERT INTO MA_Telefon (persknr, telefon_nr, public) VALUES ($pid,'$tel'," . $ma['pub'][$i] . ")";
   365                                     if (!isset($ma['so'][$i])) $ma['so'][$i] = 'NULL';
       
   366                                     $sql = "INSERT INTO MA_Telefon (persknr, telefon_nr, public, sort) VALUES ($pid,'$tel'," . $ma['pub'][$i] . ",". $ma['so'][$i] . ")";
   292                                     $rest = $dbc -> execute($sql);
   367                                     $rest = $dbc -> execute($sql);
   293                                     if ($rest) $ret = 1; else $ret = 0;
   368                                     if ($rest && $ret) $ret = 1; else $ret = 0;
   294                                 }
   369                                 }
   295                                 $i++;
   370                                 $i++;
   296                             }
   371                             }
   297                             $i=0;        
   372                             $i=0;        
   298                             foreach ($ma['ntel'] as $tel)
   373                             foreach ($ma['ntel'] as $tel)
   299                             {
   374                             {
   300                                 if ($tel >"!")
   375                                 if ($tel >"!")
   301                                 {
   376                                 {
   302                                     if (!isset($ma['pub'][$i])) $ma['pub'][$i] = 'NULL';
   377                                     if (!isset($ma['pub'][$i])) $ma['pub'][$i] = 'NULL';
   303                                     $sql = "INSERT INTO MA_Telefon (persknr, telefon_nr, public) VALUES ($pid,'$tel'," . $ma['pub'][$i] . ")";
   378                                     if (!isset($ma['so'][$i])) $ma['so'][$i] = 'NULL';
       
   379                                     $sql = "INSERT INTO MA_Telefon (persknr, telefon_nr, public, sort) VALUES ($pid,'$tel'," . $ma['pub'][$i] . ",". $ma['so'][$i] . ")";
   304                                     $rest = $dbc -> execute($sql);
   380                                     $rest = $dbc -> execute($sql);
   305                                     if ($rest) $ret = 1; else $ret = 0;
   381                                     if ($rest && $ret) $ret = 1; else $ret = 0;
   306                                 }
   382                                 }
   307                                 $i++;
   383                                 $i++;
   308                             }
   384                             }
   309                         }
   385                         }
   310                     }
   386                     }