--- a/fhiiqm/ma_tel_ed.php Fri Dec 21 15:31:50 2012 +0100
+++ b/fhiiqm/ma_tel_ed.php Wed Feb 27 09:43:08 2013 +0100
@@ -59,34 +59,69 @@
var counter = 0;
var limit = 99;
var arr = new Array();
+ var arra = new Array();
+ var arrg = new Array();
function addInput(divName){
if (counter == limit) {
alert("Das Limit von " + counter + " zusätzlichen inputs ist erreicht");
}
- else {
+ else
+ {
+ if (divName == 'addtel')
+ {
var newdiv = document.createElement('div');
var opt="<option value='-1'></option>";
+ var i;
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 += " oder neu <input type='text' name='ma[ntel][]' size='20' maxlength='20' />";
- newdiv.innerHTML += " öffentlich <input type='checkbox' name='ma[pub][" + (counter+1) + "]' value='1' />";
+ opt += "</select>\n";
+ newdiv.innerHTML = "<span></span><select name='ma[tel][]'>"+opt;
+ newdiv.innerHTML += " oder neu <input type='text' name='ma[ntel][]' size='20' maxlength='20' />";
+ opt = "<option value='-1'></option>";
+ for (i=1; i<10; i++)
+ {
+ opt = opt.concat("<option value=",i,">",i,"</option>\n");
+ }
+ opt += "</select>\n";
+ newdiv.innerHTML += " Priorität <select name='ma[so][]'>"+opt;
+ newdiv.innerHTML += " öffentlich <input type='checkbox' name='ma[pub][" + (counter+1) + "]' value='1' />\n";
document.getElementById(divName).appendChild(newdiv);
counter++;
+ }
+ else
+ {
+ var newdiv = document.createElement('div');
+ var opt="";
+ var optg="<option value='-1'></option>";
+ for (var key in arra)
+ {
+ opt = opt.concat("<option value='",key,"'>",arra[key],"</option>\n" );
+ }
+ opt += "</select>\n";
+ newdiv.innerHTML = "<span></span><select name='ma[abt][]'>"+opt;
+ for (var key in arrg)
+ {
+ optg = optg.concat("<option value='",key,"'>",arrg[key],"</option>\n" );
+ }
+ optg += "</select>\n";
+ newdiv.innerHTML += " Arbeitsgruppe <select name='ma[rag][]'>"+optg;
+ 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")
+ while (kn.childNodes.length>0 && kn.lastChild.nodeName != "SPAN" && 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);
+// if (kn.lastChild.nodeName == "SELECT") document.getElementById(divId).removeChild(kn.lastChild);
+ if (kn.lastChild.nodeName == "SPAN") document.getElementById(divId).removeChild(kn.lastChild);
}
//-->
</script>
@@ -111,7 +146,7 @@
if ($pid && (!$sub || !$del) && !isset($ma))
{
- $sql = "SELECT nachname,vorname,titel,rag_ID,abt_tel,email,aktiv FROM Mitarbeiter WHERE persknr=$pid";
+ $sql = "SELECT nachname,vorname,titel,abt_tel,email,aktiv FROM Mitarbeiter WHERE persknr=$pid";
if ($result = $dbc -> queryObjectArray($sql))
{
foreach ($result as $row)
@@ -119,12 +154,23 @@
$ma['name'] = $row->nachname;
$ma['vname'] = $row->vorname;
$ma['titel'] = $row->titel;
- $ma['rag'] = $row->rag_ID;
- $ma['abt'] = $row->abt_tel;
+ $ma['abtm'] = $row->abt_tel;
$ma['email'] = $row->email;
$ma['fhi'] = ($row->aktiv == 1)? 1 : 0;
}
}
+ // Arbeitsgruppe, Abteilung
+ $sql = "SELECT mr.rag_ID, abt_ID FROM fhiiqm.MA_RaumArbGruppe mr INNER JOIN RaumArb_Gruppe r ON mr.rag_ID=r.rag_ID
+ WHERE persknr=$pid";
+ if ($result = $dbc -> queryObjectArray($sql))
+ {
+ foreach ($result as $row)
+ {
+ $ma['abt'][] = $row->abt_ID;
+ $ma['rag'][] = $row->rag_ID;
+ }
+ }
+ if (count($ma['abt']) == 0) $ma['abt'][] = $ma['abtm'];
// 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";
@@ -137,15 +183,16 @@
}
}
// Telefon
- $sql = "SELECT m.telefon_nr,public
+ $sql = "SELECT m.telefon_nr,public,sort
FROM fhiiqm.MA_Telefon m INNER JOIN Telefon t ON m.telefon_nr=t.telefon_nr
- WHERE persknr = $pid";
+ WHERE persknr = $pid ORDER BY IFNULL(sort,99)" ;
if ($result = $dbc -> queryObjectArray($sql))
{
foreach ($result as $row)
{
$ma['tel'][] = $row->telefon_nr;
$ma['pub'][] = ($row->public)? 1 : 0;
+ $ma['so'][] = $row->sort;
}
}
}
@@ -195,6 +242,8 @@
$retdi = $dbc -> execute($sql);
$sql = "DELETE FROM MA_Telefon WHERE persknr = $pid";
$retdi = $dbc -> execute($sql);
+ $sql = "DELETE FROM MA_RaumArbGruppe WHERE persknr = $pid";
+ $retdi = $dbc -> execute($sql);
}
else
{
@@ -215,23 +264,28 @@
}
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 ($ma['fhi']) $aktiv = 1; else $aktiv = 2;
+ if ($ma['email'])
+ {
+ if (strpos($ma['email'],"@") > 0) $ma['email'] = $ma['email']; else $ma['email'] = $ma['email'] . "@fhi-berlin.mpg.de";
+ }
+ foreach ($ma as &$elem) if (!$elem) $elem = null; // NULL-Eintrag in Leerfelder
if ($pid) //UPDATE
{
+ // Abt. alt in aktualisierten Abteilungen?
+ if (!in_array($ma['abtm'],$ma['abt'])) $ma['abtm'] = $ma['abt'][0];
$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);
+ $stmt -> bind_param('ssssii',$ma['name'],$ma['vname'],$ma['titel'],$ma['email'],$ma['abtm'], $aktiv);
// echo "UPDATE: ". var_dump($stmt);
$result = $stmt -> execute();
if ($stmt->error) echo "error UPDATE Mitarbeiter: " . $stmt->error . "<br><br>\n";
@@ -240,10 +294,11 @@
{
$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);
+ $stmt -> prepare ("INSERT INTO Mitarbeiter (persknr, nachname, vorname, titel,email,abt_tel,aktiv) VALUES (?,?,?,?,?,?,?)");
+ $stmt -> bind_param('issssii',$pid,$ma['name'],$ma['vname'],$ma['titel'],$ma['email'],$ma['abt'][0], $aktiv);
$result = $stmt -> execute();
if ($stmt->error) echo "error INSERT Mitarbeiter: " . $stmt->error . "<br><br>\n";
+ $ma['abtm'] = $ma['abt'][0];
}
if ($result)
{
@@ -259,6 +314,23 @@
$ret = $dbc -> execute($sql);
}
}
+ if (is_array($ma["rag"]) && count($ma["rag"])>0)
+ {
+ $sql = "DELETE FROM MA_RaumArbGruppe WHERE persknr=$pid";
+ $redr = $dbc -> execute($sql);
+ if ($redr)
+ {
+ foreach ($ma['rag'] as $rag)
+ {
+ if ($rag > 0)
+ {
+ $sql = "INSERT INTO MA_RaumArbGruppe (persknr, rag_ID) VALUES ($pid, $rag)";
+ $retn = $dbc -> execute($sql);
+ if ($retn && $ret) $ret = 1; else $ret = 0;
+ }
+ }
+ }
+ }
if (is_array($ma['ntel']))
{
foreach ($ma['ntel'] as $tel)
@@ -271,13 +343,15 @@
{
$sql = "INSERT INTO Telefon (telefon_nr) VALUES('$tel')";
$rest = $dbc -> execute($sql);
- if ($rest) $ret = 1; else $ret = 0;
+ if ($rest && $ret) $ret = 1; else $ret = 0;
}
}
}
}
if ($ret)
{
+ foreach ($ma['so'] as &$prio)
+ if ($prio == '-1') $prio = null;
$sql = "DELETE FROM MA_Telefon WHERE persknr = $pid";
$redmt = $dbc -> execute($sql);
if ($redmt)
@@ -288,9 +362,10 @@
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] . ")";
+ if (!isset($ma['so'][$i])) $ma['so'][$i] = 'NULL';
+ $sql = "INSERT INTO MA_Telefon (persknr, telefon_nr, public, sort) VALUES ($pid,'$tel'," . $ma['pub'][$i] . ",". $ma['so'][$i] . ")";
$rest = $dbc -> execute($sql);
- if ($rest) $ret = 1; else $ret = 0;
+ if ($rest && $ret) $ret = 1; else $ret = 0;
}
$i++;
}
@@ -300,9 +375,10 @@
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] . ")";
+ if (!isset($ma['so'][$i])) $ma['so'][$i] = 'NULL';
+ $sql = "INSERT INTO MA_Telefon (persknr, telefon_nr, public, sort) VALUES ($pid,'$tel'," . $ma['pub'][$i] . ",". $ma['so'][$i] . ")";
$rest = $dbc -> execute($sql);
- if ($rest) $ret = 1; else $ret = 0;
+ if ($rest && $ret) $ret = 1; else $ret = 0;
}
$i++;
}