From ea4879e0bcf7baf2a3ac090a7c6c0e69d103c050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 9 Sep 2009 12:59:05 +0000 Subject: [PATCH] =?UTF-8?q?-=20Bugfix=20Notebook=20Registration=20-=20Bugf?= =?UTF-8?q?ix=20f=C3=BCr=20LV-Planung-Statistik=20im=20Excelformat=20f?= =?UTF-8?q?=C3=BCr=20Lektoren=20-=20=C3=9Cberbuchungspr=C3=BCfung=20f?= =?UTF-8?q?=C3=BCr=20LV-Plan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/notebook_registration.php | 2 +- content/fasoverlay.js.php | 2 +- include/tw/vilesci_menu_main.inc.php | 1 + vilesci/lehre/check/ueberbuchung.php | 203 ++++++++++++++++++++ 4 files changed, 206 insertions(+), 2 deletions(-) create mode 100644 vilesci/lehre/check/ueberbuchung.php diff --git a/cis/private/tools/notebook_registration.php b/cis/private/tools/notebook_registration.php index 7b2203958..1faf16473 100644 --- a/cis/private/tools/notebook_registration.php +++ b/cis/private/tools/notebook_registration.php @@ -253,7 +253,7 @@ else if ($error == 3) echo '

Die MAC Adresse ist bereits in Verwendung, bitte melden Sie sich bei der ITS its@technikum-wien.at

'; - if(isset($mac_result)) + if(isset($mac_result) && $mac_result!='') { if($mac_result == 0) { diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php index a7acce21a..273be21c7 100644 --- a/content/fasoverlay.js.php +++ b/content/fasoverlay.js.php @@ -805,7 +805,7 @@ function StatistikPrintLVPlanungExcel() var col; col = tree.columns ? tree.columns["uid"] : "uid"; var uid=tree.view.getCellText(tree.currentIndex,col); - var url = 'content/statistik/lvplanung..xls.php?uid='+uid+'&studiensemester_kurzbz='+studiensemester; + var url = 'content/statistik/lvplanung.xls.php?uid='+uid+'&studiensemester_kurzbz='+studiensemester; } window.open(url,'LV-Planung'); } diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index a1fbe94bd..d6ff8602e 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -75,6 +75,7 @@ $menu=array 'Stundenplan'=>array('name'=>'Stundenplan', 'link'=>'../cis/private/lvplan/index.html', 'target'=>'main'), 'Zeitwuensche'=>array('name'=>'Zeitwünsche', 'link'=>'lehre/zeitwuensche.php', 'target'=>'main'), 'LVPlanSync'=>array('name'=>'Sync', 'link'=>'../system/sync/index.html', 'target'=>'main'), + 'Ueberbuchungen'=>array('name'=>'Überbuchungen', 'link'=>'lehre/check/ueberbuchung.php', 'target'=>'main'), //'Studenten'=>array('name'=>'Studenten', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'), //'Insert'=>array('name'=>'Insert', 'link'=>'lehre/stdplan_insert.php', 'target'=>'main'), //'Delete'=>array('name'=>'Delete', 'link'=>'lehre/stdplan_delete.php', 'target'=>'main'), diff --git a/vilesci/lehre/check/ueberbuchung.php b/vilesci/lehre/check/ueberbuchung.php new file mode 100644 index 000000000..d5ad32297 --- /dev/null +++ b/vilesci/lehre/check/ueberbuchung.php @@ -0,0 +1,203 @@ + + * 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($verband!='') + $qry.=" AND verband='".addslashes($verband)."'"; + if($gruppe!='') + $qry.=" AND gruppe='".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) + { + 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 '
DatumStundeOrtStudenten aktuell (Plätze maximal)Gruppen (Studenten aktuell)
$lastdatum$laststunde$lastort$anzahl_studenten (".$ort[$lastort]->max_person.")$gruppen
'; +?> + + \ No newline at end of file