* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ /* * Prueft im Stundenplan ob die Personen in den zugeteilten Räumen Platz haben */ require_once('../../../config/vilesci.config.inc.php'); require_once('../../../include/studiensemester.class.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/studiengang.class.php'); require_once('../../../include/ort.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); $beginn = (isset($_GET['beginn'])?$_GET['beginn']:''); $ende = (isset($_GET['ende'])?$_GET['ende']:''); $stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:''); $dontloadcontent=false; $user = get_uid(); loadVariables($user); if (empty($db_stpl_table)) die('Bitte die Variablen warten! db_stpl_table ist leer'); echo ' LV-Plan - Überbuchungen

LV-Plan Überbuchungen - '.$db_stpl_table.'

'; echo '
'; if($beginn=='' || $ende=='') { $stsem_obj = new studiensemester(); $stsem_akt = $stsem_obj->getaktorNext(); $stsem_obj->load($stsem_akt); $beginn = $stsem_obj->start; $ende = $stsem_obj->ende; $dontloadcontent=true; } echo " Beginn "; echo " Ende "; $stg = new studiengang(); $stg->getAll('typ, kurzbzlang', true); echo ' Studiengang '; echo " "; echo '
'; if($dontloadcontent) exit; $ort_obj = new ort(); $ort_obj->getAll(); $ort = array(); foreach ($ort_obj->result as $row) { $ort[$row->ort_kurzbz]->max_person = $row->max_person; } $qry = "SELECT distinct datum, stunde, ort_kurzbz, studiensemester_kurzbz, vw_".$db_stpl_table.".studiengang_kz, vw_".$db_stpl_table.".semester, verband, gruppe, gruppe_kurzbz, UPPER(stg_typ || stg_kurzbz) as stg_kurzbz FROM lehre.vw_".$db_stpl_table." JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id) WHERE datum>='".addslashes($beginn)."' AND datum<='".addslashes($ende)."'"; if($stg_kz!='') $qry.=" AND tbl_lehrveranstaltung.studiengang_kz='".addslashes($stg_kz)."'"; $qry.=" ORDER BY datum, stunde, ort_kurzbz, studiensemester_kurzbz, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, stg_kurzbz"; echo ''; //echo $qry; $lastdatum=0; $laststunde=0; $lastort=0; $anzahl_studenten=0; function getAnzahl($studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz, $studiensemester_kurzbz) { global $db; if($gruppe_kurzbz=='') { $qry = "SELECT count(*) as anzahl FROM public.tbl_studentlehrverband WHERE studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND studiengang_kz='".addslashes($studiengang_kz)."' AND semester='".addslashes($semester)."'"; if(trim($verband)!='') $qry.=" AND trim(verband)=trim('".addslashes($verband)."')"; if(trim($gruppe)!='') $qry.=" AND trim(gruppe)=trim('".addslashes($gruppe)."')"; } else { $qry = "SELECT count(*) as anzahl FROM public.tbl_benutzergruppe WHERE studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND gruppe_kurzbz='".addslashes($gruppe_kurzbz)."'"; } if($res_anz = $db->db_query($qry)) { if($row_anz = $db->db_fetch_object($res_anz)) { return $row_anz->anzahl; } } } $gruppen=''; if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { if($lastdatum==$row->datum && $laststunde==$row->stunde && $lastort==$row->ort_kurzbz) { //Solange alles gleich ist zusammenzaehlen $anzahl = getAnzahl($row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->gruppe_kurzbz, $row->studiensemester_kurzbz); $anzahl_studenten += $anzahl; $gruppen .=($row->gruppe_kurzbz==''?$row->stg_kurzbz.$row->semester.$row->verband.$row->gruppe:$row->gruppe_kurzbz)." ($anzahl), "; } else { if($lastdatum!=0) { // wenn sich der Raum, Datum oder Stunde aendert, dann pruefen ob die Anzahl in den Raum passt // und ggf eine Meldung ausgeben $gruppen = mb_substr($gruppen, 0, mb_strlen($gruppen)-2); if($anzahl_studenten>$ort[$lastort]->max_person) { $diff = $anzahl_studenten-$ort[$lastort]->max_person; $style=''; if($diff>=2) $style='style="background-color: ff6c00;"'; if($diff>=4) $style='style="background-color: ff5400;"'; if($diff>=6) $style='style="background-color: e83700;"'; if($diff>=8) $style='style="background-color: a00404;"'; echo ""; } $anzahl_studenten=0; $gruppen=''; } $anzahl = getAnzahl($row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->gruppe_kurzbz, $row->studiensemester_kurzbz); $anzahl_studenten += $anzahl; $gruppen .=($row->gruppe_kurzbz==''?$row->stg_kurzbz.$row->semester.$row->verband.$row->gruppe:$row->gruppe_kurzbz)." ($anzahl), "; } $lastdatum = $row->datum; $laststunde = $row->stunde; $lastort = $row->ort_kurzbz; } } else { echo "Fehler:".$qry; } echo '
Datum Stunde Ort Studenten aktuell (Plätze maximal) Gruppen (Studenten aktuell)
$lastdatum$laststunde$lastort$anzahl_studenten (".$ort[$lastort]->max_person.")$gruppen
'; ?>