diff --git a/content/statistik/alvsstatistik.php b/content/statistik/alvsstatistik.php new file mode 100644 index 000000000..b745ef94d --- /dev/null +++ b/content/statistik/alvsstatistik.php @@ -0,0 +1,280 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/fachbereich.class.php'); +require_once('../../include/Excel/excel.php'); + +if(!$conn = pg_pconnect(CONN_STRING)) + die('Fehler beim Connecten zur Datenbank'); + +$user = get_uid(); +loadVariables($conn, $user); + +$stsem = (isset($_GET['stsem'])?$_GET['stsem']:$semester_aktuell); + +$typ = (isset($_GET['typ'])?$_GET['typ']:''); + +$studiengang = new studiengang($conn); +$studiengang->getAll('typ, kurzbz', false); + +$stg_arr = array(); +foreach ($studiengang->result as $row) + $stg_arr[$row->studiengang_kz] = $row->kuerzel.' ('.$row->kurzbzlang.')'; + +$fachbereich = new fachbereich($conn); +$fachbereich->getAll(); + +$fb_arr = array(); +foreach ($fachbereich->result as $row) + $fb_arr[$row->fachbereich_kurzbz]=$row->bezeichnung; + +$qry = " +SELECT * FROM ( + SELECT + fachbereich_kurzbz, tbl_lehrveranstaltung.studiengang_kz, sum(tbl_lehreinheitmitarbeiter.semesterstunden) as semesterstunden + FROM + lehre.tbl_lehreinheit, + lehre.tbl_lehrveranstaltung, + lehre.tbl_lehrfach, + lehre.tbl_lehreinheitmitarbeiter + WHERE + tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id AND + tbl_lehreinheit.studiensemester_kurzbz='$stsem' AND + tbl_lehreinheit.lehrfach_id = tbl_lehrfach.lehrfach_id AND + tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND + faktor<>0 AND + stundensatz<>0 AND + tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id + GROUP BY fachbereich_kurzbz, tbl_lehrveranstaltung.studiengang_kz + ) as a JOIN public.tbl_studiengang USING(studiengang_kz) +ORDER BY typ, tbl_studiengang.kurzbz, fachbereich_kurzbz +"; + +if(!$result = pg_query($conn, $qry)) + die('Fehler bei Datenbankabfrage'); + +$fachbereiche = array(); + +while($row = pg_fetch_object($result)) +{ + if(!in_array($row->fachbereich_kurzbz, $fachbereiche)) + $fachbereiche[] = $row->fachbereich_kurzbz; + $data[$row->studiengang_kz][$row->fachbereich_kurzbz]=$row->semesterstunden; +} + +sort($fachbereiche); + +$qry = " +SELECT + studiengang_kz, sum(stunden) as stunden +FROM + lehre.tbl_projektarbeit, + lehre.tbl_lehrveranstaltung, + lehre.tbl_lehreinheit, + lehre.tbl_projektbetreuer +WHERE + tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND + tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND + tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_projektbetreuer.faktor<>0 AND + tbl_projektbetreuer.stunden<>0 AND + tbl_projektbetreuer.stundensatz<>0 AND + tbl_lehreinheit.studiensemester_kurzbz='$stsem' +GROUP BY studiengang_kz"; + +if(!$result = pg_query($conn, $qry)) + die('Fehler bei DB-Abfrage'); + +while($row = pg_fetch_object($result)) + $data[$row->studiengang_kz]['betreuungen']=$row->stunden; + +if($typ=='xls') +{ + // Creating a workbook + $workbook = new Spreadsheet_Excel_Writer(); + + // sending HTTP headers + $workbook->send("ALVSStatistik_".$stsem.".xls"); + + // Creating a worksheet + $worksheet =& $workbook->addWorksheet("ALVSStatistik"); + + //Formate Definieren + $format_bold =& $workbook->addFormat(); + $format_bold->setBold(); + //$format_bold->setBorder(1); + + $format_border =& $workbook->addFormat(); + $format_border->setBorder(1); + + $format_rotate =& $workbook->addFormat(); + $format_rotate->setTextRotation(270); + $format_rotate->setAlign('center'); + $format_rotate->setBold(); + + $spalte=0; + $zeile=0; + + + $worksheet->write($zeile,$spalte,$stsem, $format_bold); + $maxlength[$spalte]=13; + $summe_fb = array(); + foreach ($fachbereiche as $fb) + { + $worksheet->write($zeile,++$spalte,$fb_arr[$fb], $format_rotate); + $fachbereiche[$fb]=$spalte; + $maxlength[$spalte]=3; + $summe_fb[$fb]=0; + } + $worksheet->write($zeile,++$spalte,'Betreuerstunden', $format_rotate); + $fachbereiche['betreuungen']=$spalte; + $maxlength[$spalte]=3; + $summe_fb['betreuungen']=0; + + $worksheet->write($zeile,++$spalte,'Summe', $format_rotate); + $maxspalten=$spalte; + + + foreach ($data as $key=>$val) + { + $zeile++; + $spalte=0; + $worksheet->write($zeile,$spalte,$stg_arr[$key], $format_bold); + $summe=0; + foreach ($data[$key] as $fb=>$stunden) + { + $summe+=$stunden; + $summe_fb[$fb]+=$stunden; + $worksheet->write($zeile,$fachbereiche[$fb],$stunden); + if($maxlength[$fachbereiche[$fb]]write($zeile,$maxspalten,$summe, $format_bold); + } + + + $zeile++; + $worksheet->write($zeile,0,'Summe', $format_bold); + foreach ($summe_fb as $fb=>$summe) + { + if(isset($fachbereiche[$fb])) + $worksheet->write($zeile,$fachbereiche[$fb],$summe, $format_bold); + } + + //Die Breite der Spalten setzen + foreach($maxlength as $i=>$breite) + $worksheet->setColumn($i, $i, $breite); + + $workbook->close(); +} +else +{ + echo ' + + + + Studenten/Semester + + + + + '; + + + + echo "

Studenten / Semester

"; + + echo ''; + $summe_fb = array(); + + foreach ($fachbereiche as $fb) + { + echo ""; + $summe_fb[$fb]=0; + } + echo ""; + $summe_fb['betreuungen']=0; + echo ""; + echo ""; + + foreach ($data as $key=>$val) + { + echo ""; + echo ""; + $summe =0; + foreach ($fachbereiche as $fb) + { + echo ""; + } + + echo ""; + echo ""; + echo ""; + } + + echo ""; + echo ""; + foreach ($fachbereiche as $fb) + { + echo ""; + } + echo ""; + echo ""; + echo '
'.$stsem.'".$fb_arr[$fb]."BetreuungenSumme
".$stg_arr[$key].""; + if(isset($data[$key][$fb])) + { + $summe+=$data[$key][$fb]; + $summe_fb[$fb]+=$data[$key][$fb]; + echo $data[$key][$fb]; + } + else + echo " "; + echo ""; + if(isset($data[$key]['betreuungen'])) + { + echo $data[$key]['betreuungen']; + $summe_fb['betreuungen']+=$data[$key]['betreuungen']; + } + else + echo " "; + echo "$summe
Summe"; + if(isset($summe_fb[$fb])) + echo $summe_fb[$fb]; + else + echo " "; + echo ""; + if(isset($summe_fb['betreuungen'])) + echo $summe_fb['betreuungen']; + else + echo " "; + echo "
'; + echo ' + '; +} +?> diff --git a/content/statistik/studentenprosemester.php b/content/statistik/studentenprosemester.php new file mode 100644 index 000000000..c9c6f8f30 --- /dev/null +++ b/content/statistik/studentenprosemester.php @@ -0,0 +1,160 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/Excel/excel.php'); + +if(!$conn = pg_pconnect(CONN_STRING)) + die('Fehler beim Connecten zur Datenbank'); + +$user = get_uid(); +loadVariables($conn, $user); + +$stsem = $semester_aktuell; + +$typ = (isset($_GET['typ'])?$_GET['typ']:''); + +$studiengang = new studiengang($conn); +$studiengang->getAll('typ, kurzbz', false); + +$stg_arr = array(); +foreach ($studiengang->result as $row) + $stg_arr[$row->studiengang_kz] = $row->kuerzel.' ('.$row->kurzbzlang.')'; + +$qry = " + SELECT + stdlvb.studiengang_kz, + count(*) AS all, + (SELECT count(*) FROM tbl_studentlehrverband WHERE studiensemester_kurzbz='$stsem' AND semester=1 AND studiengang_kz=stdlvb.studiengang_kz ) AS s1, + (SELECT count(*) FROM tbl_studentlehrverband WHERE studiensemester_kurzbz='$stsem' AND semester=2 AND studiengang_kz=stdlvb.studiengang_kz ) AS s2, + (SELECT count(*) FROM tbl_studentlehrverband WHERE studiensemester_kurzbz='$stsem' AND semester=3 AND studiengang_kz=stdlvb.studiengang_kz ) AS s3, + (SELECT count(*) FROM tbl_studentlehrverband WHERE studiensemester_kurzbz='$stsem' AND semester=4 AND studiengang_kz=stdlvb.studiengang_kz ) AS s4, + (SELECT count(*) FROM tbl_studentlehrverband WHERE studiensemester_kurzbz='$stsem' AND semester=5 AND studiengang_kz=stdlvb.studiengang_kz ) AS s5, + (SELECT count(*) FROM tbl_studentlehrverband WHERE studiensemester_kurzbz='$stsem' AND semester=6 AND studiengang_kz=stdlvb.studiengang_kz ) AS s6, + (SELECT count(*) FROM tbl_studentlehrverband WHERE studiensemester_kurzbz='$stsem' AND semester=7 AND studiengang_kz=stdlvb.studiengang_kz ) AS s7, + (SELECT count(*) FROM tbl_studentlehrverband WHERE studiensemester_kurzbz='$stsem' AND semester=8 AND studiengang_kz=stdlvb.studiengang_kz ) AS s8 + FROM + tbl_studentlehrverband stdlvb JOIN tbl_studiengang USING(studiengang_kz) + WHERE + studiensemester_kurzbz='$stsem' AND semester>0 AND semester<9 + GROUP BY typ, kurzbz, studiengang_kz +"; +if(!$result = pg_query($conn, $qry)) + die('Fehler bei Datenbankabfrage'); + +if($typ=='xls') +{ + // Creating a workbook + $workbook = new Spreadsheet_Excel_Writer(); + + // sending HTTP headers + $workbook->send("StudentenSemester_".$stsem.".xls"); + + // Creating a worksheet + $worksheet =& $workbook->addWorksheet("StudentenSemester"); + + //Formate Definieren + $format_bold =& $workbook->addFormat(); + $format_bold->setBold(); + $format_bold->setBorder(1); + + $format_border =& $workbook->addFormat(); + $format_border->setBorder(1); + + $spalte=0; + $zeile=0; + + $worksheet->write($zeile,$spalte,$stsem, $format_bold); + $worksheet->write($zeile,++$spalte,'Gesamt', $format_bold); + $worksheet->write($zeile,++$spalte,'1', $format_bold); + $worksheet->write($zeile,++$spalte,'2', $format_bold); + $worksheet->write($zeile,++$spalte,'3', $format_bold); + $worksheet->write($zeile,++$spalte,'4', $format_bold); + $worksheet->write($zeile,++$spalte,'5', $format_bold); + $worksheet->write($zeile,++$spalte,'6', $format_bold); + $worksheet->write($zeile,++$spalte,'7', $format_bold); + $worksheet->write($zeile,++$spalte,'8', $format_bold); + + while($row = pg_fetch_object($result)) + { + $zeile++; + $spalte=0; + $worksheet->write($zeile,$spalte,$stg_arr[$row->studiengang_kz], $format_bold); + $worksheet->write($zeile,++$spalte,$row->all, $format_border); + $worksheet->write($zeile,++$spalte,($row->s1!=0?$row->s1:''), $format_border); + $worksheet->write($zeile,++$spalte,($row->s2!=0?$row->s2:''), $format_border); + $worksheet->write($zeile,++$spalte,($row->s3!=0?$row->s3:''), $format_border); + $worksheet->write($zeile,++$spalte,($row->s4!=0?$row->s4:''), $format_border); + $worksheet->write($zeile,++$spalte,($row->s5!=0?$row->s5:''), $format_border); + $worksheet->write($zeile,++$spalte,($row->s6!=0?$row->s6:''), $format_border); + $worksheet->write($zeile,++$spalte,($row->s7!=0?$row->s7:''), $format_border); + $worksheet->write($zeile,++$spalte,($row->s8!=0?$row->s8:''), $format_border); + } + + $workbook->close(); +} +else +{ + echo ' + + + + Studenten/Semester + + + + + '; + + + + echo "

Studenten / Semester

"; + + echo ''; + + while($row = pg_fetch_object($result)) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + echo '
'.$stsem.'Gesamt12345678
".$stg_arr[$row->studiengang_kz]."".$row->all."".($row->s1!=0?$row->s1:' ')."".($row->s2!=0?$row->s2:' ')."".($row->s3!=0?$row->s3:' ')."".($row->s4!=0?$row->s4:' ')."".($row->s5!=0?$row->s5:' ')."".($row->s6!=0?$row->s6:' ')."".($row->s7!=0?$row->s7:' ')."".($row->s8!=0?$row->s8:' ')."
'; + echo ' + '; +} +?> diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index fa108ebc9..cd9609924 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -623,6 +623,7 @@ if(!$error) $rolle->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; $rolle->studiensemester_old = $_POST['studiensemester_old']; $rolle->datum = $_POST['datum']; + $rolle->orgform_kurzbz = $_POST['orgform_kurzbz']; $rolle->new = false; if($rolle->save_rolle()) diff --git a/content/student/studentdetailoverlay.xul.php b/content/student/studentdetailoverlay.xul.php index 0d12e294f..655df0b77 100644 --- a/content/student/studentdetailoverlay.xul.php +++ b/content/student/studentdetailoverlay.xul.php @@ -472,6 +472,10 @@ echo ''; class="sortDirectionIndicator" sort="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#datum" /> +