diff --git a/include/bis_funktion.class.php b/include/bis_funktion.class.php deleted file mode 100644 index bc7bf2237..000000000 --- a/include/bis_funktion.class.php +++ /dev/null @@ -1,711 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/** - * Klasse funktionen (FAS-Online) - * Verwaltet die Funktionen der Mitarbeiter - * @create 07-03-2006 - */ - -class funktion -{ - var $conn; // @var resource DB-Handle - var $errormsg; // @var string - var $new; // @var boolean - var $result = array(); // @var funktion Objekt - - //vars fuer Tabellenspalten - var $funktion_id; // @var integer - var $mitarbeiter_id; // @var integer - var $studiensemester_id; // @var integer - var $erhalter_id; // @var integer - var $studiengang_id; // @var integer - var $fachbereich_id; // @var integer - var $name; // @var string - var $funktion; // @var integer ( 0 = Mitarbeiter, 1 = Lektor, 2 = Fachbereichskoordinatior, 3 = Assistenz, - // 4 = Rektor, 5 = Studiengangsleiter, 6 = Fachbereichsleiter) - var $updateamum; // @var timestamp - var $updatevon=0; // @var string - var $beschart1; // @var integer ( 1 = Dienstverhaeltnis zum Bund, 2 = Dienstverhaeltnis zu einer anderen Gebietskoerperschaft, - // 3 = Echter Dienstvertrag, 4 = Freier Dienstvertrag, 5 = Lehre/Ausbildung, 6 = Sonstiges) - var $beschart2; // @var integer ( 1 = befristet, 2 = unbefristet) - var $verwendung; // @var integer - var $hauptberuflich; // @var boolean - var $hauptberuf; // @var integer - var $entwicklungsteam; // @var boolean - var $besonderequalifikation; // @var integer - var $sws; // @var float wird nicht verwendet - var $ausmass; // @var float ( 1 = Vollzeit, 2 = <=15 Wochenstd, 3 = 15-25 Wochenstd, 4 = 26-36 Wochenstd, 5 = Karenz) - var $status; // @var integer Aktstatus der Person (wird bei loeschen einer funktion gesetzt) - - /** - * Konstruktor - * @param $conn Connection zur Datenbank - * $fkt_id Id der zu ladenden Funktion (Default=null) - */ - function funktion($conn, $fkt_id=null) - { - $this->conn = $conn; - $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; - if(!pg_query($conn,$qry)) - { - $this->errormsg = "Encoding konnte nicht gesetzt werden"; - return false; - } - if($fkt_id != null) - $this->load($fkt_id); - } - - /** - * loescht die Funktion mit der uebergebenen ID - * @param $funktion_id ID des zu loeschenden Datensatzes - * @return true wenn ok, false im Fehlerfall - */ - function delete($funktion_id) - { - //Pruefen ob funktion_id gueltig ist - if(is_numeric($funktion_id) && $funktion_id != '') - { - //Person ermitteln - $person_id=0; - $mitarbeiter_id=0; - $qry = "Select person_fk, mitarbeiter_pk from mitarbeiter join funktion on(mitarbeiter_pk=mitarbeiter_fk) where funktion_pk = $funktion_id"; - if($row=pg_fetch_object(pg_query($this->conn,$qry))) - { - $person_id = $row->person_fk; - $mitarbeiter_id = $row->mitarbeiter_pk; - } - else - { - $this->errormsg = 'Fehler beim ermitteln der Person'; - return false; - } - - $qry = "DELETE FROM funktion WHERE funktion_pk=$funktion_id;"; - $sql = $qry; - if(pg_query($this->conn,$qry)) - { - //Neuen aktstatus ermitteln - $qry = "Select aktstatus from person where person_pk=$person_id"; - if($row=pg_fetch_object(pg_query($this->conn,$qry))) - { - $aktstatus = $row->aktstatus; - if($aktstatus!=150) //wenn er nicht ausgeschieden ist - { - //Funktionen holen - $qry = "Select funktion from funktion where ". - "studiensemester_fk = (Select studiensemester_pk from studiensemester where aktuell='J')". - " AND mitarbeiter_fk = '$mitarbeiter_id'"; - if($result = pg_query($this->conn, $qry)) - { - $fkt=array(); - $i=0; - while($row=pg_fetch_object($result)) - { - $fkt[$i]=$row->funktion; - $i++; - } - - //Aktstatus ermitteln - if(in_array(5,$fkt)) //STGL - $aktstatus = 104; - elseif(in_array(6,$fkt)) //FBL - $aktstatus = 103; - elseif(in_array(2,$fkt)) //FBK - $aktstatus = 102; - elseif(in_array(1,$fkt)) //LKT - $aktstatus = 101; - else - $aktstatus = 100; //Mitarbeiter - - $this->status = $aktstatus; - //neuen akstatus setzen - $qry = "Update person set aktstatus = $aktstatus where person_pk = $person_id"; - if(pg_query($qry)) - { - //Log schreiben - $sql .= $qry; - $qry = "SELECT nextval('log_seq') as id;"; - if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) - { - $this->errormsg = 'Fehler beim Auslesen der Log-Sequence'; - return false; - } - - $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')"; - if(pg_query($this->conn, $qry)) - return true; - else - { - $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim setzen des Aktstatus'; - return false; - } - } - } - else - return true; - - } - else - { - $this->errormsg = 'Fehler beim Laden des aktuellen Status'; - return false; - } - } - else - { - $this->errormsg = 'Beim loeschen ist ein Fehler aufgetreten'; - return false; - } - } - else - { - $this->errormsg = 'funktion_id muss eine gueltige Zahl sein'; - return false; - } - } - - - /** - * Prueft die Variablen auf Gueltigkeit - * @return true wenn ok, false im Fehlerfall - */ - function checkvars() - { - //Hochkomma und HTML Tags ersetzen - //$this->name = htmlentities($this->name, ENT_QUOTES); - - //Maximallaenge pruefen - $this->errormsg = 'Die Maximallaenge eines Feldes wurde ueberschritten'; - if(strlen($this->name)>255) return false; - - //Zahlenwerte ueberpruefen - /* - $this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen'; - - if(!is_numeric($this->funktion)) return false; - if(!is_numeric($this->beschart1)) return false; - if(!is_numeric($this->beschart2)) return false; - if(!is_numeric($this->verwendung)) return false; - if(!is_numeric($this->hauptberuf)) return false; - if(!is_numeric($this->sws)) $this->sws=0; - if(!is_numeric($this->ausmass)) return false; - if(!is_numeric($this->mitarbeiter_id)) return false; - if(!is_numeric($this->erhalter_id)) return false; - if(!is_numeric($this->studiengang_id)) return false; - if(!is_numeric($this->fachbereich_id)) return false; - if(!is_numeric($this->studiensemester_id)) return false; - if(!is_numeric($this->besonderequalifikation)) return false; - */ - $this->errormsg = ''; - return true; - } - - /** - * Speichert die Daten in die Datenbank - * @return true wenn OK, false im Fehlerfall - */ - function save() - { - if(!$this->checkvars()) - return false; - - //neuen aktstatus ermitteln - if($status=$this->getaktstatus()) - $statusqry = "Update person SET aktstatus=$status where person_pk = (Select person_fk from mitarbeiter where mitarbeiter_pk='$this->mitarbeiter_id');"; - else - $statusqry = ""; - - if($this->new) - { - //Naechste ID aus der Sequence holen - $qry = "SELECT nextval('funktion_seq') as id;"; - if(!$row = pg_fetch_object(pg_query($this->conn,$qry))) - { - $this->errormsg = 'Sequence konnte nicht ausgelesen werden'; - return false; - } - $this->funktion_id = $row->id; - - $qry= $statusqry."INSERT INTO funktion (funktion_pk, mitarbeiter_fk, studiensemester_fk, erhalter_fk, studiengang_fk,". - " fachbereich_fk, name, funktion, creationdate, creationuser, beschart1, beschart2, verwendung,". - " hauptberuflich, hauptberuf, entwicklungsteam, besonderequalifikation, sws, ausmass) VALUES(". - " '$this->funktion_id','$this->mitarbeiter_id', '$this->studiensemester_id', '$this->erhalter_id',". - ($this->studiengang_id!=''?" '$this->studiengang_id'":'null').",". - ($this->fachbereich_id!=''?" '$this->fachbereich_id'":'null').",". - ($this->name!=''?" '$this->name'":'null').",". - ($this->funktion!=''?" '$this->funktion'":'null').", now(), $this->updatevon,". - ($this->beschart1!=''?" '$this->beschart1'":'null').",". - ($this->beschart2!=''?" '$this->beschart2'":'null').",". - ($this->verwendung!=''?" '$this->verwendung'":'null').", '".($this->hauptberuflich?'J':'N')."',". - ($this->hauptberuf!=''?" '$this->hauptberuf'":'null').", '".($this->entwicklungsteam?'J':'N')."',". - ($this->besonderequalifikation!=''?" '$this->besonderequalifikation'":'null').", null,". - ($this->ausmass!=''?" '$this->ausmass'":'null').")"; - - } - else - { - if(!is_numeric($this->mitarbeiter_id) && !is_numeric($this->funktion_id)) - { - $this->errormsg = 'mitarbeiter_id und funktion_id muessen eine gueltige Zahl sein'; - return false; - } - - $qry= $statusqry. "UPDATE funktion SET ". - " studiensemester_fk=".($this->studiensemester_id!=''?"'$this->studiensemester_id'":'null').",". - " erhalter_fk=".($this->erhalter_id!=''?"'$this->erhalter_id'":'null').",". - " studiengang_fk=".($this->studiengang_id!=''?"'$this->studiengang_id'":'null').",". - " fachbereich_fk=".($this->fachbereich_id!=''?"'$this->fachbereich_id'":'null').",". - " name=".($this->name!=''?"'$this->name'":'null').",". - " funktion=".($this->funktion!=''?"'$this->funktion'":'null').",". - " beschart1=".($this->beschart1!=''?"'$this->beschart1'":'null').",". - " beschart2=".($this->beschart2!=''?"'$this->beschart2'":'null').",". - " verwendung=".($this->verwendung!=''?"'$this->verwendung'":'null').",". - " hauptberuflich='".($this->hauptberuflich?'J':'N')."',". - " hauptberuf=".($this->hauptberuf!=''?"'$this->hauptberuf'":'null').",". - " entwicklungsteam='".($this->entwicklungsteam?'J':'N')."',". - " besonderequalifikation=".($this->besonderequalifikation!=''?"'$this->besonderequalifikation'":'null').",". - " sws=".($this->sws!=''?"'$this->sws'":'null').",". - " ausmass=".($this->ausmass!=''?"'$this->ausmass'":'null'). - " WHERE funktion_pk=$this->funktion_id"; // AND mitarbeiter_fk=$this->mitarbeiter_id"; - } - - if(pg_query($this->conn,$qry)) - { - $qry = "UPDATE funktion SET hauptberuflich='".($this->hauptberuflich?'J':'N')."', hauptberuf=".($this->hauptberuf!=''?"'$this->hauptberuf'":'null')." WHERE mitarbeiter_fk ='$this->mitarbeiter_id' AND studiensemester_fk='$this->studiensemester_id'"; - if(!pg_query($this->conn,$qry)) - { - $this->errormsg = 'Fehler beim Updaten der Funktionen'; - return false; - } - //Log schreiben - $sql = $qry; - $qry = "SELECT nextval('log_seq') as id;"; - if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) - { - $this->errormsg = 'Fehler beim Auslesen der Log-Sequence'; - return false; - } - - $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')"; - if(pg_query($this->conn, $qry)) - return true; - else - { - $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Speichern der Daten'.$qry; - return false; - } - } - - /** - * Ermittelt den neuen aktstatus einer Person - */ - function getaktstatus() - { - $aktstatus=100; - //Aktuellen Status holen - $qry = "Select aktstatus from person join mitarbeiter on(person_fk=person_pk) where mitarbeiter_pk='".$this->mitarbeiter_id."'"; - if($result = pg_query($this->conn,$qry)) - { - if($row = pg_fetch_object($result)) - $aktstatus = $row->aktstatus; - else - { - $this->errormsg = 'Fehler beim Laden des aktuellen Status'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden des aktuellen Status'; - return false; - } - - /* - //Wenn die Funktion das aktuelle Studiensemester betrifft - $qry = "Select studiensemester_pk from studiensemester where aktuell='J'"; - if($result = pg_query($this->conn,$qry)) - { - if($row=pg_fetch_object($result)) - { - if($row->studiensemester_pk == $this->studiensemester_id) - { - */ - //Neuen Status setzen - if($this->funktion == 1 && $aktstatus < 101) //Lektor - $aktstatus = 101; - elseif($this->funktion == 2 && $aktstatus < 102) //Fachbereichskoordinator - $aktstatus = 102; - elseif($this->funktion == 6 && $aktstatus < 103) //Fachbereichsleiter - $aktstatus = 103; - elseif($this->funktion == 5 && $aktstatus < 104) //Studiengangsleiter - $aktstatus = 104; - /* } - } - else - { - $this->errormsg = 'Fehler beim Laden des aktuellen Studiensemesters'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden des aktuellen Studiensemesters'; - return false; - }*/ - $this->status = $aktstatus; - return $aktstatus; - } - - /** - * Laedt eine Funktion aus der DB - * @param $fkt_id ID der zu ladenden Funktion - * @return true wenn erfolgreich geladen, false im Fehlerfall - */ - function load($fkt_id) - { - //Pruefen ob fkt_id gueltig ist - if(!is_numeric($fkt_id)) - { - $this->errormsg = 'funktion_id muss eine Zahl sein'; - return false; - } - - $qry = "SELECT * FROM funktion WHERE funktion_pk=$fkt_id"; - - if(!$res = pg_query($this->conn, $qry)) - { - $this->errormsg = 'Fehler bei einer Datenbankabfrage'; - return false; - } - - if($row = pg_fetch_object($res)) - { - $this->funktion_id = $row->funktion_pk; - $this->mitarbeiter_id = $row->mitarbeiter_fk; - $this->studiensemester_id = $row->studiensemester_fk; - $this->erhalter_id = $row->erhalter_fk; - $this->studiengang_id = $row->studiengang_fk; - $this->fachbereich_id = $row->fachbereich_fk; - $this->name = $row->name; - $this->funktion = $row->funktion; - $this->updateamum = $row->creationdate; - $this->updatevon = $row->creationuser; - $this->beschart1 = $row->beschart1; - $this->beschart2 = $row->beschart2; - $this->verwendung = $row->verwendung; - $this->hauptberuflich = ($row->hauptberuflich=='J'?true:false); - $this->hauptberuf = $row->hauptberuf; - $this->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false); - $this->besonderequalifikation = $row->besonderequalifikation; - $this->sws = $row->sws; - $this->ausmass = $row->ausmass; - } - else - { - $this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden'; - return false; - } - - return true; - } - - /** - * Laedt die Funktion(en) eines Mitarbeiters - * @param $ma_id ID des zu ladenden Mitarbeiters - * @return true wenn erfolgreich geladen, false im Fehlerfall - */ - function load_pers($ma_id, $stsem='') - { - //pruefen ob ma_id gueltig ist - if(!is_numeric($ma_id)) - { - $this->errormsg = 'mitarbeiter_id muss eine Zahl sein'; - return false; - } - - $qry="SELECT * FROM funktion WHERE mitarbeiter_fk=$ma_id"; - if($stsem!='') - $qry.= " AND studiensemester_fk='$stsem'"; - $qry.=" ORDER BY studiensemester_fk DESC, funktion_pk"; - if(!$res = pg_query($this->conn, $qry)) - { - $this->errormsg = 'Fehler bei einer Datenbankabfrage'; - return false; - } - - while($row = pg_fetch_object($res)) - { - $fkt_obj = new funktion($this->conn); - - $fkt_obj->funktion_id = $row->funktion_pk; - $fkt_obj->mitarbeiter_id = $row->mitarbeiter_fk; - $fkt_obj->studiensemester_id = $row->studiensemester_fk; - $fkt_obj->erhalter_id = $row->erhalter_fk; - $fkt_obj->studiengang_id = $row->studiengang_fk; - $fkt_obj->fachbereich_id = $row->fachbereich_fk; - $fkt_obj->name = $row->name; - $fkt_obj->funktion = $row->funktion; - $fkt_obj->updateamum = $row->creationdate; - $fkt_obj->updatevon = $row->creationuser; - $fkt_obj->beschart1 = $row->beschart1; - $fkt_obj->beschart2 = $row->beschart2; - $fkt_obj->verwendung = $row->verwendung; - $fkt_obj->hauptberuflich = ($row->hauptberuflich=='J'?true:false); - $fkt_obj->hauptberuf = $row->hauptberuf; - $fkt_obj->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false); - $fkt_obj->besonderequalifikation = $row->besonderequalifikation; - $fkt_obj->sws = $row->sws; - $fkt_obj->ausmass = $row->ausmass; - - $this->result[] = $fkt_obj; - } - - return true; - } - - function getMitarbeiter($stg,$fb,$funktion,$stsem=null) - { - $qry = "SELECT - mitarbeiter_fk - FROM - funktion - WHERE - studiengang_fk='$stg' AND - fachbereich_fk='$fb' - GROUP BY mitarbeiter_fk"; - if($result = pg_query($this->conn,$qry)) - { - while($row = pg_fetch_object($result)) - { - $fkt = new funktion($this->conn); - $fkt->mitarbeiter_id = $row->mitarbeiter_fk; - $this->result[] = $fkt; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim laden der Mitarbeiter'; - return false; - } - } - - /** - * Laedt alle Funktionen - * @return true wenn erfolgreich geladen, false im Fehlerfall - */ - function getAll() - { - /*Eventuell Speicherprobleme - - $qry = "SELECT * FROM funktion"; - - if(!$res = pg_query($this->conn, $qry)) - { - $this->errormsg = 'Fehler bei einer Datenbankabfrage'; - return false; - } - - while($row=pg_fetch_object($res)) - { - $fkt_obj = new funktion($this->conn); - - $fkt_obj->funktion_id = $row->funktion_pk; - $fkt_obj->mitarbeiter_id = $row->mitarbeiter_fk; - $fkt_obj->studiensemester_id = $row->studiensemester_fk; - $fkt_obj->erhalter_id = $row->erhalter_fk; - $fkt_obj->studiengang_id = $row->studiengang_fk; - $fkt_obj->fachbereich_id = $row->fachbereich_fk; - $fkt_obj->name = $row->name; - $fkt_obj->funktion = $row->funktion; - $fkt_obj->updateamum = $row->creationdate; - $fkt_obj->updatevon = $row->creationuser; - $fkt_obj->beschart1 = $row->beschart1; - $fkt_obj->beschart2 = $row->beschart2; - $fkt_obj->verwendung = $row->verwendung; - $fkt_obj->hauptberuflich = ($row->hauptberuflich=='J'?true:false); - $fkt_obj->hauptberuf = $row->hauptberuf; - $fkt_obj->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false); - $fkt_obj->besonderequalifikation = $row->besonderequalifikation; - $fkt_obj->sws = $row->sws; - $fkt_obj->ausmass = $row->ausmass; - - $this->result[] = $fkt_obj; - } - return true; - */ - return false; - } - - function FunktionExists($mitarbeiter_id, $studiengang_id, $fachbereich_id, $studiensemester_id, $funktion) - { - $qry = "SELECT - count(*) as anzahl - FROM - funktion - WHERE - mitarbeiter_fk='$mitarbeiter_id' AND - studiengang_fk='$studiengang_id' AND - fachbereich_fk='$fachbereich_id' AND - studiensemester_fk = '$studiensemester_id' AND - funktion='$funktion'"; - if($result = pg_query($this->conn, $qry)) - { - if($row = pg_fetch_object($result)) - { - if($row->anzahl>0) - return true; - else - { - return false; - } - } - else - { - return false; - $this->errormsg = 'Fehler beim auslesen der Funktionen'; - } - } - else - { - return false; - $this->errormsg = 'Fehler beim auslesen der Funktionen'; - } - } - - function getNameFunktion($id) - { - switch($id) - { - case 0: return 'Mitarbeiter'; - case 1: return 'Lektor'; - case 2: return 'Fachbereichskoordinatior'; - case 3: return 'Assistenz'; - case 4: return 'Rektor'; - case 5: return 'Studiengangsleiter'; - case 6: return 'Fachbereichsleiter'; - default: return ''; - } - } - - function getNameBeschart1($id) - { - switch($id) - { - case 1: return 'Dienstverhältnis zum Bund'; - case 2: return 'Dienstverhältnis zu einer anderen Gebietskörperschaft'; - case 3: return 'Echter Dienstvertrag'; - case 4: return 'Freier Dienstvertrag'; - case 5: return 'Lehr- oder Ausbildungsverhältnis'; - case 6: return 'Sonstiges Beschäftigungsverhältnis'; - default: return ''; - } - } - - function getNameBeschart2($id) - { - switch($id) - { - case 1: return 'befristet'; - case 2: return 'unbefristet'; - default: return ''; - } - } - - function getNameVerwendung($id) - { - switch($id) - { - case 1: return 'Lehr- und Forschungspersonal'; - case 2: return 'Lehr- und Forschungshilfspersonal'; - case 3: return 'Akademische dienste für Studierende'; - case 4: return 'Soziale Dienste und Gesundheitsdienste'; - case 5: return 'Studiengangsleiter/in'; - case 6: return 'Leiter/in FH-Kollegium'; - case 7: return 'Management'; - case 8: return 'Verwaltung'; - case 9: return 'Hauspersonal, Gebäude-/Haustechnik'; - default: return ''; - } - - } - - function getNameHauptberuf($id) - { - switch($id) - { - case '': return ''; - case 0: return 'Universität'; - case 1: return 'Fachhochschule'; - case 2: return 'Andere postsekundäre Bildungseinrichtung'; - case 3: return 'Allgemeinbildende höhere Schule'; - case 4: return 'Berufsbildende höhere Schule'; - case 5: return 'Andere Schule'; - case 6: return 'Öffentlicher Sektor'; - case 7: return 'Unternehmenssektor'; - case 8: return 'Freiberuflich tätig'; - case 9: return 'Privater gemeinnütziger Sektor'; - case 10: return 'Ausserhochschulische Forschungseinrichtung'; - case 11: return 'Internationale Organisation'; - case 12: return 'Sonstiges'; - default: return ''; - } - } - - function getNameBesonderequalifikation($id) - { - switch($id) - { - case 0: return 'keine'; - case 1: return 'Habilitation'; - case 2: return 'der Habilitation gleichwertige Qualifikation'; - case 3: return 'berufliche Tätigkeit'; - default: return ''; - } - } - - function getNameAusmass($id) - { - switch($id) - { - case 1: return 'Vollzeit'; - case 2: return '<= 15 Wochenstunden'; - case 3: return '16 - 25 Wochenstunden'; - case 4: return '26 - 35 Wochenstunden'; - case 5: return 'Karenz'; - default: return ''; - } - } -} -?> \ No newline at end of file