This commit is contained in:
Andreas Österreicher
2007-07-03 14:12:10 +00:00
parent a1bc7ab4dd
commit c702fef7b1
6 changed files with 831 additions and 7 deletions
+3 -3
View File
@@ -95,13 +95,13 @@ else
<td width="56" nowrap>&nbsp;</td>
<td nowrap>Termin nach Vereinbarung</td>
</tr>
<tr>
<!--<tr>
<td width="260" nowrap>Braunstorfer Michael</td>
<td width="50" nowrap>240</td>
<td nowrap><?php echo ($visible?'<a class="Item" href="mailto:michael.braunstorfer@technikum-wien.at">michael.braunstorfer@technikum-wien.at</a>':'')?></td>
<td width="56" nowrap>&nbsp;</td>
<td nowrap>Termin nach Vereinbarung</td>
</tr>
</tr>-->
<tr>
<td colspan="2" nowrap>&nbsp;</td>
<td nowrap>&nbsp;</td>
@@ -295,7 +295,7 @@ else
<td nowrap>Termin nach Vereinbarung</td>
</tr>
<tr>
<td width="260" nowrap>Esberger Franz Ferdinand</td>
<td width="260" nowrap>Dipl. Ing. (FH) Esberger Franz Ferdinand</td>
<td width="50" nowrap>346</td>
<td nowrap><?php echo ($visible?'<a class="Item" href="mailto:ffe@technikum-wien.at">ferdinand.esberger@technikum-wien.at</a>':'')?></td>
<td width="56" nowrap>&nbsp;</td>
+3 -2
View File
@@ -11,7 +11,6 @@ Auflistung nach Priorit&auml;t (h&ouml;chste oben).<br>
<ul>
<li>Nach dem sortieren einiger Trees ist danach ein anderer Datensatz
markiert als vorher</li>
<li>Im Filter aufgenommene Bewerber kommen auch abgewiesene vor.</li>
</ul>
<br>
<h2>Fehler</h2>
@@ -42,7 +41,7 @@ wenn Mozilla bereits offen ist</li>
<li style="color: rgb(0, 0, 0);">BIS Meldung pr&uuml;fen und in
Oberfl&auml;che integrieren</li>
<li style="color: rgb(0, 0, 0);">Zeitweise ist das Speichern nicht
m&ouml;glich Error Code 500.<br>
m&ouml;glich Error Code 502.<br>
</li>
<li style="color: rgb(0, 0, 0);">Funktionen
Tree nach dem Aendern eines Datensatzes in der mitte der Liste wird der
@@ -73,6 +72,8 @@ allen auf einmal setzbar</li>
<hr>
<h2>Erledigte Anforderungen</h2>
<ul>
<li>Im Filter aufgenommene Bewerber kommen auch abgewiesene vor.<br>
1.6.2007 oesi<br><br></li>
<li>Bei "Interessent Neu" wird der Studiengang nicht &uuml;bernommen.<br>
25.06.2007 oesi <br><br>
</li>
@@ -740,8 +740,79 @@ function MitarbeiterNeu()
// ****
function MitarbeiterExport()
{
var treeMitarbeiter=document.getElementById('mitarbeiter-tree');
var treeMitarbeiterMenu=document.getElementById('tree-menu-mitarbeiter');
var col = treeMitarbeiterMenu.columns ? treeMitarbeiterMenu.columns["tree-menu-mitarbeiter-col-filter"] : "tree-menu-mitarbeiter-col-filter";
var filter=treeMitarbeiterMenu.view.getCellText(treeMitarbeiterMenu.currentIndex,col);
cols = treeMitarbeiter.getElementsByTagName('treecol');
var url = "<?php echo APP_ROOT; ?>content/statistik/mitarbeiterexport.xls.php";
var attributes="?type=mitarbeiter";
if (filter=="Studiengangsleiter")
attributes+="&stgl=true";
if (filter=="Fachbereichsleiter")
attributes+="&fbl=true";
if (filter=="Alle")
attributes+="&alle=true";
if (filter=="Aktive")
attributes+="&aktiv=true";
if (filter=="FixAngestellte")
attributes+="&fix=true&aktiv=true";
if (filter=="FixAngestellteAlle")
attributes+="&fix=true";
if (filter=="Inaktive")
attributes+="&aktiv=false";
if (filter=="Karenziert")
attributes+="&karenziert=true";
if (filter=="Ausgeschieden")
attributes+="&ausgeschieden=true";
if (filter=="FreiAngestellte")
attributes+="&fix=false&aktiv=true";
if (filter=="FreiAngestellteAlle")
attributes+="&fix=false";
url+=attributes;
spalte=0;
for(i in cols)
{
if(cols[i].hidden==false)
{
url += "&spalte"+spalte+"="+MitarbeiterDetailgetSpaltenname(cols[i].id);
spalte=spalte+1;
}
}
//url+='&spalte0=titelpre&spalte1=vorname&spalte2=vornamen&spalte3=familienname&spalte4=uid';
//alert(url);
//window.open(url,"","chrome,status=no, modal, width=400, height=250, centerscreen, resizable");
window.location.href=url;
}
// ****
// * Liefert anhand der ID den Namen der Klassenvariable
// ****
function MitarbeiterDetailgetSpaltenname(id)
{
if(id=='mitarbeiter-treecol-anrede') return 'anrede';
if(id=='mitarbeiter-treecol-titelpre') return 'titelpre';
if(id=='mitarbeiter-treecol-vorname') return 'vorname';
if(id=='mitarbeiter-treecol-vornamen') return 'vornamen';
if(id=='mitarbeiter-treecol-nachname') return 'nachname';
if(id=='mitarbeiter-treecol-titelpost') return 'titelpost';
if(id=='mitarbeiter-treecol-personalnummer') return 'personalnummer';
if(id=='mitarbeiter-treecol-geburtsdatum') return 'gebdatum';
if(id=='mitarbeiter-treecol-svnr') return 'svnr';
if(id=='mitarbeiter-treecol-ersatzkennzeichen') return 'ersatzkennzeichen';
if(id=='mitarbeiter-treecol-uid') return 'uid';
if(id=='mitarbeiter-treecol-kurzbz') return 'kurzbz';
if(id=='mitarbeiter-treecol-geschlecht') return 'geschlecht';
if(id=='mitarbeiter-treecol-ort_kurzbz') return 'ort_kurzbz';
if(id=='mitarbeiter-treecol-telefonklappe') return 'telefonklappe';
if(id=='mitarbeiter-treecol-aktiv') return 'aktiv';
if(id=='mitarbeiter-treecol-person_id') return 'person_id';
if(id=='mitarbeiter-treecol-fixangestellt') return 'fixangestellt';
if(id=='mitarbeiter-treecol-lektor') return 'lektor';
}
// ***************** VERWENDUNG ********************** //
// ****
+169
View File
@@ -0,0 +1,169 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/person.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/Excel/excel.php');
// Datenbank Verbindung
if (!$conn = pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
$user = get_uid();
loadVariables($conn, $user);
//Parameter holen
if (isset($_GET['fix']))
$fix = $_GET['fix'];
else
$fix=null;
if (isset($_GET['stgl']))
$stgl = ($_GET['stgl']=='true'?true:false);
else
$stgl=null;
if (isset($_GET['fbl']))
$fbl = $_GET['fbl'];
else
$fbl=null;
if (isset($_GET['aktiv']))
$aktiv = $_GET['aktiv'];
else
$aktiv=null;
if (isset($_GET['karenziert']))
$karenziert = $_GET['karenziert'];
else
$karenziert=null;
if (isset($_GET['ausgeschieden']))
$ausgeschieden = $_GET['ausgeschieden'];
else
$ausgeschieden=null;
if (isset($_GET['zustelladresse']))
$zustelladresse = $_GET['zustelladresse'];
else
$zustelladresse = null;
//Spalten
$anzSpalten=0;
$varname='spalte'.(string)$anzSpalten;
while (isset($_GET[$varname]))
{
$spalte[$anzSpalten]=$_GET[$varname];
//echo $spalte[$anzSpalten];
$anzSpalten++;
$varname='spalte'.(string)$anzSpalten;
}
$zustelladresse=true;
// Mitarbeiter holen
$mitarbeiterDAO=new mitarbeiter($conn);
$mitarbeiterDAO->getPersonal($fix, $stgl, $fbl, $aktiv, $karenziert, $ausgeschieden, $semester_aktuell);
//echo 'fix:'.$fix.' stgl:'.$stgl.' fbl:'.$fbl.' aktiv:'.$aktiv.' karenziert:'.$karenziert.' ausgeschieden:'.$ausgeschieden.' semester_aktuell:'.$semester_aktuell;
/*
* Create Excel File with Content from Students Examples solved
*/
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
// sending HTTP headers
$workbook->send("Mitarbeiter". "_" . date("d_m_Y") . ".xls");
// Creating a worksheet
$worksheet =& $workbook->addWorksheet("Mitarbeiter");
$format_bold =& $workbook->addFormat();
$format_bold->setBold();
$format_title =& $workbook->addFormat();
$format_title->setBold();
// $format_title->setColor('yellow');
// $format_title->setPattern(1);
// $format_title->setFgColor('blue');
// let's merge
$format_title->setAlign('merge');
for ($i=0;$i<$anzSpalten;$i++)
$worksheet->write(0,$i,strtoupper(str_replace('_bezeichnung','',$spalte[$i])), $format_bold);
$worksheet->write(0,$i,"STRASSE", $format_bold);
$worksheet->write(0,$i+1,"PLZ", $format_bold);
$worksheet->write(0,$i+2,"ORT", $format_bold);
// set width of columns
//$worksheet->setColumn(1,4,20); // ersten 3 Spalten auf width=17
//$worksheet->setColumn(0,0,22);
$j=1;
$maxlength = array();
for ($i=0;$i<$anzSpalten;$i++)
$maxlength[$i]=strlen(str_replace('_bezeichnung','',$spalte[$i]));
$maxlength[$i]=strlen('STRASSE');
$maxlength[$i+1]=strlen('PLZ');
$maxlength[$i+2]=strlen('ORT');
foreach ($mitarbeiterDAO->result as $mitarbeiter)
{
for ($i=0;$i<$anzSpalten;$i++)
{
if(strlen($mitarbeiter->$spalte[$i])>$maxlength[$i])
$maxlength[$i] = strlen($mitarbeiter->$spalte[$i]);
$worksheet->write($j,$i, $mitarbeiter->$spalte[$i]);
}
$qry = "SELECT * FROM public.tbl_adresse WHERE person_id='$mitarbeiter->person_id' ORDER BY zustelladresse LIMIT 1";
if($result = pg_query($conn, $qry))
{
if($row = pg_fetch_object($result))
{
if(strlen($row->strasse)>$maxlength[$i])
$maxlength[$i]=strlen($row->strasse);
$worksheet->write($j,$i, $row->strasse);
if(strlen($row->plz)>$maxlength[$i+1])
$maxlength[$i+1]=strlen($row->plz);
$worksheet->write($j,$i+1, $row->plz);
if(strlen($row->ort)>$maxlength[$i+2])
$maxlength[$i+2]=strlen($row->ort);
$worksheet->write($j,$i+2, $row->ort);
}
}
$j++;
}
for ($i=0;$i<$anzSpalten;$i++)
$worksheet->setColumn($i, $i, $maxlength[$i]+2);
$worksheet->setColumn($i, $i, $maxlength[$i]+2);
$worksheet->setColumn($i+1, $i+1, $maxlength[$i+1]+2);
$worksheet->setColumn($i+2, $i+2, $maxlength[$i+2]+2);
$workbook->close();
?>
+2 -2
View File
@@ -532,7 +532,7 @@ class mitarbeiter extends benutzer
function getPersonal($fix, $stgl, $fbl, $aktiv, $karenziert, $ausgeschieden, $studiensemester_kurzbz)
{
$qry = "SELECT *, tbl_benutzer.aktiv as aktiv FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)) JOIN public.tbl_person USING(person_id)) LEFT JOIN public.tbl_benutzerfunktion USING(uid) WHERE true";
$qry = "SELECT distinct on(person_id) *, tbl_benutzer.aktiv as aktiv FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)) JOIN public.tbl_person USING(person_id)) LEFT JOIN public.tbl_benutzerfunktion USING(uid) WHERE true";
if($fix)
$qry .= " AND fixangestellt=true";
@@ -548,7 +548,7 @@ class mitarbeiter extends benutzer
$qry .= " AND uid IN (SELECT mitarbeiter_uid FROM bis.tbl_bisverwendung WHERE beginn<(SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='$studiensemester_kurzbz') AND ende<(SELECT ende FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='$studiensemester_kurzbz'))";
if($ausgeschieden)
{
//ToDo:
$qry.=" AND NOT EXISTS(SELECT * FROM bis.tbl_bisverwendung WHERE beginn<now() AND ende>now())";
}
//echo $qry;
if($result = pg_query($this->conn, $qry))
@@ -0,0 +1,583 @@
<?php
/* Copyright (C) 2007 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/person.class.php');
require_once('../../../include/benutzer.class.php');
require_once('../../../include/mitarbeiter.class.php');
require_once('../../../include/kontakt.class.php');
require_once('../../../include/adresse.class.php');
if(!$conn=pg_pconnect(CONN_STRING))
die('Fehler beim Herstellen der DB Connection');
$user=get_uid();
loadVariables($conn, $user);
// Clean stuff from a string
function clean_string($string)
{
$trans = array("" => "ae",
"" => "Ae",
"" => "oe",
"" => "Oe",
"" => "ue",
"" => "Ue",
"" => "a",
"" => "a",
"" => "e",
"" => "e",
"" => "o",
"" => "o",
"" => "i",
"" => "i",
"" => "u",
"" => "u",
"" => "ss");
$string = strtr($string, $trans);
return ereg_replace("[^a-zA-Z0-9]", "", $string);
//[:space:]
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<link href="../../../skin/cis.css" rel="stylesheet" type="text/css">
<script language="Javascript">
function disablefields(obj)
{
if(obj.value==0)
val=false;
else
val=true;
document.getElementById('titel').disabled=val;
document.getElementById('nachname').disabled=val;
document.getElementById('vorname').disabled=val;
document.getElementById('geschlecht').disabled=val;
document.getElementById('geburtsdatum').disabled=val;
document.getElementById('svnr').disabled=val;
document.getElementById('ersatzkennzeichen').disabled=val;
//document.getElementById('adresse').disabled=val;
//document.getElementById('plz').disabled=val;
//document.getElementById('ort').disabled=val;
if(val)
{
document.getElementById('ueb1').style.display = 'block';
document.getElementById('ueb2').style.display = 'block';
document.getElementById('ueb3').style.display = 'block';
}
else
{
document.getElementById('ueb1').style.display = 'none';
document.getElementById('ueb2').style.display = 'none';
document.getElementById('ueb3').style.display = 'none';
}
}
function GeburtsdatumEintragen()
{
svnr = document.getElementById('svnr').value;
gebdat = document.getElementById('geburtsdatum');
if(svnr.length==10 && gebdat.value=='')
{
var tag = svnr.substr(4,2);
var monat = svnr.substr(6,2);
var jahr = svnr.substr(8,2);
gebdat.value='19'+jahr+'-'+monat+'-'+tag;
}
}
</script>
</head>
<body>
<h1>Mitarbeiter Anlegen</h1>
<?php
//Berechtigung pruefen
$rechte = new benutzerberechtigung($conn);
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('admin',0) && !$rechte->isBerechtigt('mitarbeiter'))
die('Sie haben keine Berechtigung fuer diese Seite');
$where = '';
$error = false;
//Parameter
$titel = (isset($_POST['titel'])?$_POST['titel']:'');
$nachname = (isset($_POST['nachname'])?$_POST['nachname']:'');
$vorname = (isset($_POST['vorname'])?$_POST['vorname']:'');
$geschlecht = (isset($_POST['geschlecht'])?$_POST['geschlecht']:'');
$geburtsdatum = (isset($_POST['geburtsdatum'])?$_POST['geburtsdatum']:'');
$adresse = (isset($_POST['adresse'])?$_POST['adresse']:'');
$plz = (isset($_POST['plz'])?$_POST['plz']:'');
$ort = (isset($_POST['ort'])?$_POST['ort']:'');
$email = (isset($_POST['email'])?$_POST['email']:'');
$telefon = (isset($_POST['telefon'])?$_POST['telefon']:'');
$mobil = (isset($_POST['mobil'])?$_POST['mobil']:'');
$letzteausbildung = (isset($_POST['letzteausbildung'])?$_POST['letzteausbildung']:'');
$anmerkungen = (isset($_POST['anmerkungen'])?$_POST['anmerkungen']:'');
$person_id = (isset($_POST['person_id'])?$_POST['person_id']:'');
$ueberschreiben = (isset($_POST['ueberschreiben'])?$_POST['ueberschreiben']:'');
$svnr = (isset($_POST['svnr'])?$_POST['svnr']:'');
$ersatzkennzeichen = (isset($_POST['ersatzkennzeichen'])?$_POST['ersatzkennzeichen']:'');
//end Parameter
// *** Speichern der Daten ***
if(isset($_POST['save']))
{
//echo "Saving Data: Geburtsdatum: $geburtsdatum | Titel: $titel | Nachname: $nachname | Vorname: $vorname |
// Geschlecht: $geschlecht | Adresse: $adresse | Plz: $plz | Ort: $ort |
// Email: $email | Telefon: $telefon | Mobil: $mobil | Letzteausbildung: $letzteausbildung | ausbildungsart: $ausbildungsart |
// anmerkungen: $anmerkungen | studiengang_kz: $studiengang_kz | person_id: $person_id<br><br>";
$person = new person($conn);
pg_query($conn, 'BEGIN');
//Wenn die person_id=0 dann wird eine neue Person angelegt
//Ansosnsten wird es an die Person mit $person_id angehaengt
if($person_id!='0')
{
if(!$person->load($person_id))
{
$error=true;
$errormsg = 'Person konnte nicht geladen werden';
}
else
{
$geburtsdatum = $person->gebdatum;
$vorname = $person->vorname;
$nachname = $person->nachname;
$svnr = $person->svnr;
$ersatzkennzeichen = $person->ersatzkennzeichen;
$titel = $person->titelpre;
$geschlecht = $person->geschlecht;
}
}
else
{
$person->new = true;
$person->titelpre = $titel;
$person->nachname = $nachname;
$person->vorname = $vorname;
$person->geschlecht = $geschlecht;
$person->gebdatum = $geburtsdatum;
$person->svnr = $svnr;
$person->ersatzkennzeichen = $ersatzkennzeichen;
$person->aktiv = true;
if($person->save())
{
$error=false;
}
else
{
$error=true;
$errormsg = "Person konnte nicht gespeichert werden: $person->errormsg";
}
}
//UID generieren
if(!$error)
{
$nachname_clean = strtolower(clean_string($nachname));
$vorname_clean = strtolower(clean_string($vorname));
$uid='';
$bn = new benutzer($conn);
for($nn=8,$vn=0;$nn!=0;$nn--,$vn++)
{
$uid = substr($nachname_clean,0,$nn);
$uid .= substr($vorname_clean,0,$vn);
if(!$bn->uid_exists($uid))
if($bn->errormsg=='')
break;
}
if($bn->uid_exists($uid))
{
$error = true;
$errormsg = 'Es konnte keine UID ermittelt werden';
}
}
//Kurzbz generieren
if(!$error)
{
$kurzbz='';
$mitarbeiter = new mitarbeiter($conn);
$nachname_clean = clean_string($nachname);
$vorname_clean = clean_string($vorname);
for($nn=6,$vn=2;$nn!=0;$nn--,$vn++)
{
$kurzbz = substr($nachname_clean,0,$nn);
$kurzbz .= substr($vorname_clean,0,$vn);
if(!$mitarbeiter->kurzbz_exists($kurzbz))
if($mitarbeiter->errormsg=='')
break;
}
if($mitarbeiter->kurzbz_exists($kurzbz))
{
$error = true;
$errormsg = 'Es konnte keine Kurzbezeichnung ermittelt werden';
}
}
//Alias generieren
if(!$error)
{
$nachname_clean = strtolower(clean_string($nachname));
$vorname_clean = strtolower(clean_string($vorname));
$bn = new benutzer($conn);
if(!$bn->alias_exists($vorname_clean.'.'.$nachname_clean))
$alias = $vorname_clean.'.'.$nachname_clean;
else
$alias = '';
}
//Benutzer anlegen
if(!$error)
{
$benutzer = new benutzer($conn);
$benutzer->uid = $uid;
$benutzer->person_id = $person->person_id;
$benutzer->bnaktiv = true;
$benutzer->aktiv = true;
$benutzer->alias = $alias;
$benutzer->insertamum=date('Y-m-d H:i:s');
$benutzer->insertvon = $user;
if($benutzer->save(true,false))
{
$error = false;
}
else
{
$error = true;
$errormsg = 'Fehler beim Speichern des Benutzers:'.$benutzer->errormsg;
}
}
//Personalnummer ermitteln
//ToDo: Wenn alle Syncscripte abgeschalten sind, dann kann in der Klasse beim Insert die
// Personalnummer entfernt werden. Dann ist dieser Teil nicht mehr noetig
if(!$error)
{
$qry = "SELECT nextval('public.tbl_mitarbeiter_personalnummer_seq') as id";
if($result = pg_query($conn, $qry))
{
if($row = pg_fetch_object($result))
{
$personalnummer = $row->id;
}
else
{
$error = true;
$errormsg = 'Fehler beim Ermitteln der Personalnummer';
}
}
else
{
$error = true;
$errormsg = 'Fehler beim Ermitteln der Personalnummer';
}
}
//Mitarbeiter anlegen
if(!$error)
{
$mitarbeiter = new mitarbeiter($conn);
$mitarbeiter->uid = $uid;
$mitarbeiter->personalnummer = $personalnummer;
$mitarbeiter->kurzbz = $kurzbz;
$mitarbeiter->lektor = true;
$mtiarbeiter->aktiv = true;
$mitarbeiter->fixangestellt = true;
$mitarbeiter->stundensatz = 0;
$mitarbeiter->anmerkung = $anmerkungen;
$mitarbeiter->ausbildungcode = $letzteausbildung;
$mitarbeiter->insertamum = date('Y-m-d H:i:s');
$mitarbeiter->insertvon = $user;
if($mitarbeiter->save(true, false))
{
$error = false;
}
else
{
$error = true;
$errormsg = 'Fehler beim Speichern des Mitarbeiters:'.$mitarbeiter->errormsg;
}
}
//Adresse anlegen
if($ueberschreiben!='' && !($plz=='' && $adresse=='' && $ort==''))
{
if($person_id=='0')
$ueberschreiben='Nein';
$adr = new adresse($conn);
//Adresse neu anlegen
if($ueberschreiben=='Nein')
{
$adr->new = true;
$adr->insertamum = date('Y-m-d H:i:s');
$adr->insertvon = $user;
}
else
{
//Bestehende Adresse Ueberschreiben
//Adressen der Peron laden
$adr->load_pers($person->person_id);
if(isset($adr->result[0]))
{
//Erste Adresse laden
if($adr->load($adr->result[0]->adresse_id))
{
$adr->new = false;
$adr->updateamum = date('Y-m-d H:i:s');
$adr->updatevon = $user;
}
else
{
$error = true;
$errormsg = 'Fehler beim laden der Adresse';
}
}
else
{
$error = true;
$errormsg = 'Kann die Adresse nicht ueberschreiben wenn keine da ist';
}
}
if(!$error)
{
//Adressdaten zuweisen und speichern
$adr->person_id = $person->person_id;
$adr->strasse = $adresse;
$adr->plz = $plz;
$adr->ort = $ort;
$adr->typ = 'h';
$adr->heimatadresse = true;
$adr->zustelladresse = true;
if(!$adr->save())
{
$error = true;
$errormsg = $adr->errormsg;
}
}
}
//Kontaktdaten anlegen
if(!$error)
{
//EMail Adresse speichern
if($email!='')
{
$kontakt = new kontakt($conn);
$kontakt->person_id = $person->person_id;
$kontakt->kontakttyp = 'email';
$kontakt->kontakt = $email;
$kontakt->zustellung = true;
$kontakt->insertamum = date('Y-m-d H:i:s');
$kontakt->insertvon = $user;
$kontakt->new = true;
if(!$kontakt->save())
{
$error = true;
$errormsg = 'Fehler beim Speichern der Email Adresse';
}
}
//Telefonnummer speichern
if($telefon!='')
{
$kontakt = new kontakt($conn);
$kontakt->person_id = $person->person_id;
$kontakt->kontakttyp = 'telefon';
$kontakt->kontakt = $telefon;
$kontakt->zustellung = true;
$kontakt->insertamum = date('Y-m-d H:i:s');
$kontakt->insertvon = $user;
$kontakt->new = true;
if(!$kontakt->save())
{
$error = true;
$errormsg = 'Fehler beim Speichern der Telefonnummer';
}
}
//Mobiltelefonnummer speichern
if($mobil!='')
{
$kontakt = new kontakt($conn);
$kontakt->person_id = $person->person_id;
$kontakt->kontakttyp = 'mobil';
$kontakt->kontakt = $mobil;
$kontakt->zustellung = true;
$kontakt->insertamum = date('Y-m-d H:i:s');
$kontakt->insertvon = $user;
$kontakt->new = true;
if(!$kontakt->save())
{
$error = true;
$errormsg = 'Fehler beim Speichern der Mobiltelefonnummer';
}
}
}
if(!$error)
{
pg_query($conn, 'COMMIT');
die("<b>Mitarbeiter $vorname $nachname wurde erfolgreich angelegt</b><br>");
}
else
{
pg_query($conn, 'ROLLBACK');
echo '<span class="error">'.$errormsg.'</span>';
}
}
// *** SAVE ENDE ***
?>
<form method='POST'>
<table width="100%">
<tr>
<td>
<!--Formularfelder-->
<table>
<?php
echo '<tr><td>Titel</td><td><input type="text" id="titel" name="titel" maxlength="64" value="'.$titel.'" /></td></tr>';
echo '<tr><td>Vorname</td><td><input type="text" id="vorname" maxlength="32" name="vorname" value="'.$vorname.'" /></td></tr>';
echo '<tr><td>Nachname</td><td><input type="text" maxlength="64" id="nachname" name="nachname" value="'.$nachname.'" /></td></tr>';
echo '<tr><td>Geschlecht</td><td><SELECT id="geschlecht" name="geschlecht">';
echo '<OPTION value="m" '.($geschlecht=='m'?'selected':'').'>m&auml;nnlich</OPTION>';
echo '<OPTION value="w" '.($geschlecht=='w'?'selected':'').'>weiblich</OPTION>';
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td>SVNR</td><td><input type="text" id="svnr" size="10" maxlength="10" name="svnr" value="'.$svnr.'" onblur="GeburtsdatumEintragen()" /></td></tr>';
echo '<tr><td>Ersatzkennzeichen</td><td><input type="text" id="ersatzkennzeichen" size="10" maxlength="10" name="ersatzkennzeichen" value="'.$ersatzkennzeichen.'" /></td></tr>';
echo '<tr><td>Geburtsdatum</td><td><input type="text" id="geburtsdatum" size="10" maxlength="10" name="geburtsdatum" value="'.$geburtsdatum.'" /></td></tr>';
echo '<tr><td colspan="2"><fieldset><legend>Adresse</legend><table>';
echo '<tr><td>Adresse</td><td><input type="text" id="adresse" maxlength="256" name="adresse" value="'.$adresse.'" /></td></tr>';
echo '<tr><td>Postleitzahl</td><td><input type="text" maxlength="16" id="plz" name="plz" value="'.$plz.'" /></td></tr>';
echo '<tr><td>Ort</td><td><input type="text" id="ort" maxlength="256" name="ort" value="'.$ort.'" /></td></tr>';
echo '</table>';
echo '<div style="display: none;" id="ueb1"><input type="radio" id="ueberschreiben1" name="ueberschreiben" value="Ja" checked>Bestehende Adresse 暅erschreiben</div>';
echo '<div style="display: none;" id="ueb2"><input type="radio" id="ueberschreiben2" name="ueberschreiben" value="Nein">Adresse neu anlegen</div>';
echo '<div style="display: none;" id="ueb3"><input type="radio" id="ueberschreiben3" name="ueberschreiben" value="">Adresse nicht anlegen</div>';
echo '</fieldset></td></tr>';
echo '<tr><td>EMail</td><td><input type="text" id="email" maxlength="128" name="email" value="'.$email.'" /></td></tr>';
echo '<tr><td>Telefon</td><td><input type="text" id="telefon" maxlength="128" name="telefon" value="'.$telefon.'" /></td></tr>';
echo '<tr><td>Mobil</td><td><input type="text" id="mobil" maxlength="128" name="mobil" value="'.$mobil.'" /></td></tr>';
echo '<tr><td>Letzte Ausbildung</td><td><SELECT id="letzteausbildung" name="letzteausbildung">';
$qry = "SELECT * FROM bis.tbl_ausbildung ORDER BY ausbildungcode";
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
echo '<OPTION value="'.$row->ausbildungcode.'" '.($letzteausbildung==$row->ausbildungcode?'selected':'').'>'.$row->ausbildungbez.'</OPTION>';
}
}
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td>Anmerkungen</td><td><textarea id="anmerkung" name="anmerkungen">'.$anmerkungen.'</textarea></td></tr>';
echo '<tr><tr><td></td><td>';
if($geburtsdatum=='' && $vorname=='' && $nachname=='')
echo '<input type="submit" name="showagain" value="Vorschlag laden"</td></tr>';
else
echo '<input type="submit" name="save" value="Speichern"</td></tr>';
?>
</table>
</td>
<td valign="top">
<!--Vorschlaege-->
<?php
//Vorschlaege laden
if($geburtsdatum!='')
{
if(ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$geburtsdatum))
{
$where = " gebdatum='".$geburtsdatum."'";
}
}
if($vorname!='' && $nachname!='')
{
if($where!='')
$where.=' OR';
$where.=" (LOWER(vorname)=LOWER('".$vorname."') AND LOWER(nachname)=LOWER('".$nachname."'))";
}
if($where!='')
{
$qry = "SELECT * FROM public.tbl_person WHERE $where ORDER BY nachname, vorname, gebdatum";
if($result = pg_query($conn, $qry))
{
echo '<table><tr><th></th><th>Nachname</th><th>Vorname</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th></tr>';
while($row = pg_fetch_object($result))
{
$status = '';
$qry_ma = "SELECT * FROM campus.vw_mitarbeiter WHERE person_id='$row->person_id'";
if($result_ma = pg_query($conn, $qry_ma))
if($row_ma=pg_fetch_object($result_ma))
$status.=' Mitarbeiter';
$qry_ma = "SELECT * FROM campus.vw_student WHERE person_id='$row->person_id'";
if($result_ma = pg_query($conn, $qry_ma))
if($row_ma=pg_fetch_object($result_ma))
$status.=' Student';
echo '<tr valign="top"><td><input type="radio" name="person_id" value="'.$row->person_id.'" onclick="disablefields(this)"></td><td>'."$row->nachname</td><td>$row->vorname</td><td>$row->gebdatum</td><td>$row->svnr</td><td>".($row->geschlecht=='m'?'m鄚nlich':'weiblich')."</td><td>";
$qry_adr = "SELECT * FROM public.tbl_adresse WHERE person_id='$row->person_id'";
if($result_adr = pg_query($conn, $qry_adr))
while($row_adr=pg_fetch_object($result_adr))
echo "$row_adr->plz $row_adr->ort, $row_adr->strasse<br>";
echo "<td>$status</td>";
echo "</td></tr>";
}
echo '<tr><td><input type="radio" name="person_id" value="0" checked onclick="disablefields(this)"></td><td>Neue Person anlegen</td></tr>';
echo '</table>';
}
}
//else
// echo 'Zum Erstellen des Vorschlags bitte Geburtsdatum oder Vorname und Nachname eingeben';
?>
</td>
</tr>
</table>
</form>
</body>
</html>