From d1d337bd4fe6004f370417e25d784e8a412d8db6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 13 Nov 2007 16:53:47 +0000 Subject: [PATCH] --- rdf/bisfunktion.rdf.php | 2 +- vilesci/bis/checkfunktion.php | 189 ++++++++++++++++++++++++++++++++++ 2 files changed, 190 insertions(+), 1 deletion(-) diff --git a/rdf/bisfunktion.rdf.php b/rdf/bisfunktion.rdf.php index ff0494958..61f0ac1e3 100644 --- a/rdf/bisfunktion.rdf.php +++ b/rdf/bisfunktion.rdf.php @@ -50,7 +50,7 @@ else $datum = new datum(); $stg = new studiengang($conn, null, null, true); -$stg->getAll(); +$stg->getAll(null, false); $stg_arr = array(); foreach ($stg->result as $row) diff --git a/vilesci/bis/checkfunktion.php b/vilesci/bis/checkfunktion.php index e69de29bb..d40d53570 100644 --- a/vilesci/bis/checkfunktion.php +++ b/vilesci/bis/checkfunktion.php @@ -0,0 +1,189 @@ +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Gerald Raab . + */ +require_once('../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(!$conn=pg_pconnect(CONN_STRING)) + die("Konnte Verbindung zur Datenbank nicht herstellen"); + +$funktion_geaendert=0; +$funktion_hinzugefuegt=0; +$funktion_error=0; +$verwendung_not_found=0; +$verwendung_multiple=0; +$funktion_ohne_lehrauftrag=0; +$user = get_uid(); +$wochen=40; + +$stg_arr = array(); +$stg_obj = new studiengang($conn); +$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($conn); +$stsemprev = $stsem->getPrevious(); +$stsemprevprev = $stsem->getBeforePrevious(); +echo $stsemprev.' '.$stsemprevprev.'
'; +$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 = pg_query($conn, $qry)) +{ + $lastuid=''; + while($row = pg_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 = pg_query($conn, $qry_verw)) + { + if(pg_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 = pg_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(pg_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 ".pg_last_error($conn); + $person_error = true; + } + } + + if(!$person_error) + { + //SWS berechnen + $swsneu = round($row->semstd/$wochen, 2); + + //Funktion fuer diesen Studiengang suchen + $bisfunktion = new bisfunktion($conn); + + 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')) ORDER BY mitarbeiter_uid, studiengang_kz"; + if($result = pg_query($conn, $qry)) + { + $funktion_ohne_lehrauftrag = pg_num_rows($result); + + while($row = pg_fetch_object($result)) + { + echo "
$row->mitarbeiter_uid hat im Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) eine Funktion ohne Lehrauftrag"; + } + } + 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
'; +}