* 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($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 '
Datum
Stunde
Ort
Studenten aktuell (Plätze maximal)
Gruppen (Studenten aktuell)
';
//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 "