* 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($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 '
Datum
Ort
Studierende aktuell (Plätze maximal)
Gruppen (Studierende aktuell)
Lehrveranstaltung
Lehrform
';
//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 "$lastdatum $laststunde $lastort $anzahl_studenten (".$ort[$lastort]->max_person.") $gruppen $lehrfach - $lehrfach_bez ";
$arr[]="
$lastdatum
$lastort
$anzahl_studenten (".$ort[$lastort]->max_person.")
$gruppen
$lehrfach - $lehrfach_bez
$lehrform ";
}
$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 '
';
?>