* 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 '; include('../../../include/meta/jquery.php'); include('../../../include/meta/jquery-tablesorter.php'); echo '

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; $beginn = date("Y-m-d"); //$ende = $stsem_obj->ende; $ende = date("Y-m-d", strtotime('+8 days')); $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] = new stdClass(); // Prevents the warning "Creating default object from empty value" $ort[$row->ort_kurzbz]->max_person = $row->max_person; } $qry = "SELECT DISTINCT vw_".$db_stpl_table.".unr,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, lehrfach, lehrfach_bez, lehrform 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 unr, 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; $lehrfach=''; $lehrfach_bez=''; $lehrform=''; $arr=array(); 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 && $lehrfach==$row->lehrfach && $lehrfach_bez==$row->lehrfach_bez && $lehrform==$row->lehrform) { //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; $diffprozent = ($ort[$lastort]->max_person)/100*10; $style=''; if((($ort[$lastort]->max_person+$diffprozent)-$anzahl_studenten)<0) $style='style="background-color: FCC850;"'; if((($ort[$lastort]->max_person+$diffprozent)-$anzahl_studenten)<-2) $style='style="background-color: FF702D;"'; if((($ort[$lastort]->max_person+$diffprozent)-$anzahl_studenten)<-4) $style='style="background-color: e83700;"'; if((($ort[$lastort]->max_person+$diffprozent)-$anzahl_studenten)<-6) $style='style="background-color: a00404; color: d3d3d3"'; //echo ""; $arr[]=""; } $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; $lehrfach = $row->lehrfach; $lehrfach_bez = $row->lehrfach_bez; $lehrform = $row->lehrform; } } else { echo "Fehler:".$qry; } $arr=array_unique($arr); foreach ($arr AS $row) echo $row; echo '
Datum Ort Studierende aktuell (Plätze maximal) Gruppen (Studierende aktuell) Lehrveranstaltung Lehrform
$lastdatum$laststunde$lastort$anzahl_studenten (".$ort[$lastort]->max_person.")$gruppen$lehrfach - $lehrfach_bez
$lastdatum $lastort $anzahl_studenten (".$ort[$lastort]->max_person.") $gruppen $lehrfach - $lehrfach_bez $lehrform
'; ?>