* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/studiensemester.class.php'); require_once('../../include/bisfunktion.class.php'); require_once('../../include/studiengang.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); $funktion_geaendert=0; $funktion_hinzugefuegt=0; $funktion_error=0; $verwendung_not_found=0; $verwendung_multiple=0; $funktion_ohne_lehrauftrag=0; $user = get_uid(); $wochen=BIS_SWS_WOCHEN; $stg_arr = array(); $stg_obj = new studiengang(); $stg_obj->getAll(null, false); $lastbismeldung = date('Y-m-d',mktime(0,0,0,11,15,date('Y')-1)); foreach ($stg_obj->result as $stg) { $stg_arr[$stg->studiengang_kz] = $stg->kuerzel; } echo ' Check Funktion

Mitarbeiter BIS-Funktion Check

'; $stsem = new studiensemester(); $stsemprev = $stsem->getPrevious(); $stsemprevprev = $stsem->getBeforePrevious(); echo "Generiere Funktionen für $stsemprevprev/$stsemprev
"; $qry = "SELECT tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehrveranstaltung.studiengang_kz, sum(tbl_lehreinheitmitarbeiter.semesterstunden) as semstd FROM lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung WHERE tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND (studiensemester_kurzbz='$stsemprev' OR studiensemester_kurzbz='$stsemprevprev') AND bismelden=true AND tbl_lehreinheitmitarbeiter.semesterstunden>0 GROUP BY mitarbeiter_uid, studiengang_kz"; if($result = $db->db_query($qry)) { $lastuid=''; while($row = $db->db_fetch_object($result)) { if($lastuid!=$row->mitarbeiter_uid) { $lastuid=$row->mitarbeiter_uid; //Verwendung suchen $person_error=false; $qry_verw = "SELECT * FROM bis.tbl_bisverwendung WHERE (ende>now() OR ende is null OR ende>'$lastbismeldung') AND mitarbeiter_uid='$row->mitarbeiter_uid' order by beginn DESC"; if($result_verw = $db->db_query($qry_verw)) { if($db->db_num_rows($result_verw)==0) { echo "
Es wurde keine Verwendung fuer $row->mitarbeiter_uid gefunden"; $person_error = true; $verwendung_not_found++; } else { if($row_verw = $db->db_fetch_object($result_verw)) $verwendung_id = $row_verw->bisverwendung_id; else { echo "
Fehler beim Holen der Verwendung von $row->mitarbeiter_uid"; $person_error = true; } } if($db->db_num_rows($result_verw)>1) { echo "
Es wurde mehr als eine Verwendung bei $row->mitarbeiter_uid gefunden - es wird die Verwendung $verwendung_id verwendet"; $verwendung_multiple++; } } else { echo "
Fehler beim Ermitteln der Verwendung ".$db->db_last_error(); $person_error = true; } } if(!$person_error) { //SWS berechnen $swsneu = number_format(round($row->semstd/$wochen, 2),2,'.',''); //Funktion fuer diesen Studiengang suchen $bisfunktion = new bisfunktion(); if($bisfunktion->load($verwendung_id, $row->studiengang_kz)) { $bisfunktion->new = false; if($bisfunktion->sws!=$swsneu) { echo "
$row->mitarbeiter_uid: Funktion bei Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) wird von $bisfunktion->sws auf $swsneu geaendert"; $bisfunktion->sws = $swsneu; $funktion_geaendert++; } } else { $bisfunktion->insertamum = date('Y-m-d H:i:s'); $bisfunktion->insertvon = $user; $bisfunktion->studiengang_kz = $row->studiengang_kz; $bisfunktion->sws = $swsneu; $bisfunktion->new = true; $bisfunktion->bisverwendung_id = $verwendung_id; $funktion_hinzugefuegt++; } $bisfunktion->updateamum = date('Y-m-d H:i:s'); $bisfunktion->updatevon = $user; if(!$bisfunktion->save()) { echo "
$row->mitarbeiter_uid: Fehler beim Anlegen der Funktion ".$bisfunktion->errormsg; if($bisfunktion->new) $funktion_hinzugefuegt--; else $funktion_geaendert--; $funktion_error++; } } } echo '

'; echo 'Check fuer nicht benoetigte Funktionen'; $qry = "SELECT * FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id) WHERE (mitarbeiter_uid, studiengang_kz) NOT IN ( SELECT mitarbeiter_uid, studiengang_kz FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND (tbl_lehreinheit.studiensemester_kurzbz='$stsemprev' OR tbl_lehreinheit.studiensemester_kurzbz='$stsemprevprev')) AND (ende>'$lastbismeldung' OR ende is null) ORDER BY mitarbeiter_uid, studiengang_kz"; if($result = $db->db_query($qry)) { $funktion_ohne_lehrauftrag = $db->db_num_rows($result); while($row = $db->db_fetch_object($result)) { echo "
$row->mitarbeiter_uid hat im Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) eine Funktion ohne Lehrauftrag"; } } echo "Loeschen der Funktionen mit: DELETE FROM bis.tbl_bisfunktion where (studiengang_kz, bisverwendung_id) in (SELECT studiengang_kz, bisverwendung_id FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id) WHERE (mitarbeiter_uid, studiengang_kz) NOT IN ( SELECT mitarbeiter_uid, studiengang_kz FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND (tbl_lehreinheit.studiensemester_kurzbz='$stsemprevprev' OR tbl_lehreinheit.studiensemester_kurzbz='$stsemprev')) AND (ende>'$lastbismeldung' OR ende is null))"; echo '

'; echo '

Uebersicht

'; echo ''; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo '
Nicht vorhandene Verwendungen$verwendung_not_found
Mehrere moegliche Verwendungen vorhanden$verwendung_multiple
Fehler bei Funktionen$funktion_error
Funktionen ohne Lehrauftrag$funktion_ohne_lehrauftrag
  
Funktionen hinzugefuegt$funktion_hinzugefuegt
Funktionen geaendert$funktion_geaendert
'; }