diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php
index a7280d4cd..f893a18a0 100644
--- a/cis/private/lehre/anwesenheitsliste.pdf.php
+++ b/cis/private/lehre/anwesenheitsliste.pdf.php
@@ -4,12 +4,6 @@
*
* Erstellt eine Anwesenheitsliste im PDF-Format
*
- * Aufruf:
- * anwesenheitsliste.pdf.php?stg=222&lfvt=1234 //alle Studenten vom Studiengang 222 Lehrfach 1234
- * anwesenheitsliste.pdf.php?stg=222&sem=1&lfvt=1234 //alle Studenten vom Studiengang 222 und Semester 1 Lehrfach 1234
- * anwesenheitsliste.pdf.php?stg=222&sem=1&verband=A&lfvt=1234 //alle Studenten vom Studiengang 222, Semester 1, Verband A Lehrfach 1234
- * anwesenheitsliste.pdf.php?stg=222&sem=1&verband=A&gruppe=1&lfvt=1234 //alle Studenten vom Studiengang 222, Semester 1, Verband A, Gruppe 1 Lehrfach 1234
- * anwesenheitsliste.pdf.php?stg=222&sem=1&einheit=DVT-1xyz1&lfvt=1234 //alle Studenten vom Studiengang 222, Semester 1, Einheit DVT-1xyz1 Lehrfach 1234
*/
setlocale(LC_ALL, "de");
@@ -67,7 +61,13 @@
$lvid = $_GET['lvid'];
else
die('Fehler bei der Parameteruebergabe');
+
+ if(isset($_GET['stsem']))
+ $stsem = $_GET['stsem'];
+ else
+ die('Studiensemester wurde nicht uebergeben');
+ $lehreinheit_id = (isset($_GET['lehreinheit_id'])?$_GET['lehreinheit_id']:'');
/**
* liefert den groesseren der beiden werte
*
@@ -108,13 +108,27 @@ $pdf->SetXY(30,75);
else
$pdf->SetXY(30,60);
-$stsem_obj = new studiensemester($conn);
-$stsem = $stsem_obj->getaktorNext();
+//$stsem_obj = new studiensemester($conn);
+//$stsem = $stsem_obj->getaktorNext();
-if($gruppe_kurzbz!='')
- $pdf->MultiCell(0,20,'Gruppe: '.$gruppe_kurzbz.' Studiensemester: '.$stsem);
-else
- $pdf->MultiCell(0,20,'Gruppe: '.strtoupper($stgobj->typ.$stgobj->kurzbz).' '.$sem.$verband.$gruppe.' Studiensemester: '.$stsem);
+$qry = "SELECT distinct on(kuerzel, semester, verband, gruppe, gruppe_kurzbz) UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, semester, verband, gruppe, gruppe_kurzbz from campus.vw_lehreinheit WHERE lehrveranstaltung_id='".addslashes($lvid)."' AND studiensemester_kurzbz='".addslashes($stsem)."'";
+if($lehreinheit_id!='')
+ $qry.=" AND lehreinheit_id='".addslashes($lehreinheit_id)."'";
+
+$gruppen='';
+if($result = pg_query($conn, $qry))
+{
+ while($row = pg_fetch_object($result))
+ {
+ if($gruppen!='')
+ $gruppen.=', ';
+ if($row->gruppe_kurzbz=='')
+ $gruppen.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe);
+ else
+ $gruppen=$row->gruppe_kurzbz;
+ }
+}
+$pdf->MultiCell(0,20,'Gruppe: '.$gruppen.' Studiensemester: '.$stsem);
$maxY=$pdf->GetY();
$maxY=getmax($maxY,$pdf->GetY());
@@ -185,7 +199,17 @@ $pdf->MultiCell(520,$lineheight+2,'Lektoren',1,'L',1);
//Schleife aller lektoren
-$qry = "SELECT distinct vorname, nachname FROM campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter WHERE uid=mitarbeiter_uid AND tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND lehrveranstaltung_id='".addslashes($lvid)."' AND studiensemester_kurzbz='$stsem' ORDER BY nachname, vorname;";
+$qry = "SELECT
+ distinct vorname, nachname
+ FROM campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
+ WHERE
+ uid=mitarbeiter_uid AND
+ tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
+ lehrveranstaltung_id='".addslashes($lvid)."' AND
+ studiensemester_kurzbz='$stsem' ";
+if($lehreinheit_id!='')
+ $qry.=" AND tbl_lehreinheit.lehreinheit_id='".addslashes($lehreinheit_id)."'";
+$qry.=" ORDER BY nachname, vorname;";
if($result = pg_query($conn,$qry))
{
@@ -271,24 +295,26 @@ $pdf->SetFont('Arial','',8);
$pdf->SetXY($maxX,$maxY);
$pdf->MultiCell(40,$lineheight,'',1,'L',0);
-//$stud = new student($conn);
-//$result = $stud->getStudents($einheit,$gruppe,$verband,$sem,$stg);
-$qry = 'SELECT distinct vorname, nachname, uid, matrikelnr, verband, gruppe, semester FROM ';
-if($gruppe_kurzbz!='')
- $qry .= "campus.vw_student JOIN public.tbl_benutzergruppe USING(uid) WHERE studiensemester_kurzbz='$stsem' AND gruppe_kurzbz='".addslashes($gruppe_kurzbz)."'";
-else
-{
- $qry .= "campus.vw_student WHERE studiengang_kz='$stg' AND semester='$sem'";
- if($verband!='')
- $qry.=" AND verband='$verband'";
- if($gruppe!='')
- $qry.=" AND gruppe='$gruppe'";
-}
-$qry.= " ORDER BY nachname, vorname";
+$qry = "SELECT
+ distinct vorname, nachname, matrikelnr,
+ tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe
+ FROM
+ campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid)
+ JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid)
+ LEFT JOIN public.tbl_studentlehrverband USING(student_uid)
+ WHERE
+ lehrveranstaltung_id='".addslashes($lvid)."' AND
+ vw_student_lehrveranstaltung.studiensemester_kurzbz='".addslashes($stsem)."' AND
+ tbl_studentlehrverband.studiensemester_kurzbz='".addslashes($stsem)."'";
+
+if($lehreinheit_id!='')
+ $qry.=" AND lehreinheit_id='".addslashes($lehreinheit_id)."'";
+
+$qry.=' ORDER BY nachname, vorname';
if($result = pg_query($conn, $qry))
{
-$i=0;
+ $i=0;
while($elem = pg_fetch_object($result))
{
$i++;
@@ -344,40 +370,6 @@ $i=0;
}
}
-
-/*
-
-
-
-
-
-
-
-$stud = new student($conn);
-$result = $stud->getStudents($einheit,$gruppe,$verband,$sem,$stg);
-
-$i=0;
-
-foreach($result as $elem)
-{
- //Dummys filtern
- if(!preg_match('*dummy*',$elem->uid) && $elem->semester!=10)
- {
-
-
-
-
- $i++;
- $inhalt[]=array($i,$elem->nachname.' '.$elem->vornamen,trim($elem->matrikelnr),$elem->semester.$elem->verband.$elem->gruppe,'','','','','','');
- }
-}
-//Tabelle zeichnen
-$h=$pdf->morepagestable($inhalt,10,$aligns);
-*/
-
-
-
-
//FHStg
$maxY=$pdf->GetY()+5;
$maxX=30;
diff --git a/cis/private/lehre/anwesenheitsliste.php b/cis/private/lehre/anwesenheitsliste.php
index 5d2df6c46..a27f557da 100644
--- a/cis/private/lehre/anwesenheitsliste.php
+++ b/cis/private/lehre/anwesenheitsliste.php
@@ -30,6 +30,7 @@
require_once('../../config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/studiengang.class.php');
+ require_once('../../../include/lehrveranstaltung.class.php');
$error=0;
//Connection Herstellen
@@ -52,6 +53,11 @@
$lvid=$_GET['lvid'];
else
$error=2;
+
+ if(isset($_GET['stsem']))
+ $stsem = $_GET['stsem'];
+ else
+ die('Studiensemester ist ungueltig');
?>
kuerzel;
-
- //"normale" Gruppen auslesen
- $qry = "SELECT verband, gruppe, count(*) FROM public.tbl_lehrverband JOIN public.tbl_student USING(studiengang_kz, semester, verband, gruppe) WHERE studiengang_kz='$stg_kz' AND semester='$sem' AND student_uid not like '%Dummy%' GROUP BY verband, gruppe;";
- if($result = pg_query($conn,$qry))
- {
- if(pg_num_rows($result)>0)
- {
- $aw_content .= "
| .$kurzbzlang $sem | $kurzbzlang Semester $sem |
";
- $nt_content .= "| .$kurzbzlang $sem | $kurzbzlang Semester $sem |
";
- }
-
- $lastverband = '';
-
- while($row = pg_fetch_object($result))
- {
- if($lastverband!=$row->verband)
- {
- $lastverband=$row->verband;
- $aw_content .= " $kurzbzlang $sem$row->verband | $kurzbzlang Semester $sem Verband $row->verband |
";
- $nt_content .= " $kurzbzlang $sem$row->verband | $kurzbzlang Semester $sem Verband $row->verband |
";
- }
- $aw_content.= " $kurzbzlang $sem$row->verband$row->gruppe | $kurzbzlang Semester $sem Verband $row->verband Gruppe $row->gruppe |
";
- $nt_content.= " $kurzbzlang $sem$row->verband$row->gruppe | $kurzbzlang Semester $sem Verband $row->verband Gruppe $row->gruppe |
";
- }
- }
- else
- echo "Fehler beim Auslesen der Daten";
-
- echo "
";
- //Spezialgruppen Auslesen
- $qry = "SELECT distinct gruppe_kurzbz, bezeichnung FROM public.tbl_gruppe JOIN public.tbl_benutzergruppe USING(gruppe_kurzbz) WHERE studiengang_kz='$stg_kz' AND semester='$sem' AND lehre AND aktiv;";
- if($result = pg_query($conn,$qry))
- {
- while($row = pg_fetch_object($result))
- {
- $aw_content .= " $row->gruppe_kurzbz | $row->bezeichnung |
";
- $nt_content .= " $row->gruppe_kurzbz | $row->bezeichnung |
";
- }
- }
- else
- echo "Fehler beim auslesen der Daten";
+ $stg_arr = array();
+ $stg_obj = new studiengang($conn);
+ $stg_obj->getAll();
+
+ foreach ($stg_obj->result as $row)
+ $stg_arr[$row->studiengang_kz]=$row->kuerzel;
+
+ $lv = new lehrveranstaltung($conn, $lvid);
+
+ $aw_content .= "| Gesamtliste $lv->bezeichnung |
";
+ $nt_content .= "| Gesamtliste $lv->bezeichnung |
";
+
echo "";
+ $qry = "SELECT *, tbl_lehreinheitgruppe.studiengang_kz FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitgruppe USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
+ WHERE lehrveranstaltung_id='$lvid' AND studiensemester_kurzbz='".addslashes($stsem)."'";
+
+ if($result = pg_query($conn, $qry))
+ {
+ $lastlehreinheit='';
+ $gruppen = '';
+ while($row = pg_fetch_object($result))
+ {
+ if($lastlehreinheit!=$row->lehreinheit_id)
+ {
+ if($lastlehreinheit!='')
+ {
+ $qry = "SELECT * FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid)
+ WHERE lehreinheit_id='$lastlehreinheit'";
+ $lektoren = '';
+
+ if($result_lkt = pg_query($conn, $qry))
+ {
+ while($row_lkt = pg_fetch_object($result_lkt))
+ {
+ if($lektoren!='')
+ $lektoren.=', ';
+ $lektoren .= $row_lkt->kurzbz;
+ }
+ }
+
+ $aw_content .= " $kurzbz - $lehrform - $gruppen ($lektoren) |
";
+ $nt_content .= " $kurzbz - $lehrform - $gruppen ($lektoren) |
";
+
+ $lastlehreinheit = $row->lehreinheit_id;
+ $gruppen='';
+ }
+ else
+ $lastlehreinheit = $row->lehreinheit_id;
+ }
+
+ if($gruppen!='')
+ $gruppen.= ', ';
+
+ if($row->gruppe_kurzbz!='')
+ $gruppen .= $row->gruppe_kurzbz;
+ else
+ $gruppen .= trim($stg_arr[$row->studiengang_kz].'-'.$row->semester.$row->verband.$row->gruppe);
+
+ $lehrform = $row->lehrform_kurzbz;
+ $kurzbz = $row->kurzbz;
+ }
+ $qry = "SELECT * FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid)
+ WHERE lehreinheit_id='$lastlehreinheit'";
+ $lektoren = '';
+ if($result_lkt = pg_query($conn, $qry))
+ {
+ while($row_lkt = pg_fetch_object($result_lkt))
+ {
+ if($lektoren!='')
+ $lektoren.=', ';
+ $lektoren .= $row_lkt->kurzbz;
+ }
+ }
+
+ $aw_content .= " $kurzbz - $lehrform - $gruppen ($lektoren) |
";
+ $nt_content .= " $kurzbz - $lehrform - $gruppen ($lektoren) |
";
+ }
if($nt_content=='' && $aw_content=='')
{
@@ -136,21 +175,18 @@
else
{
if($aw_content!='')
- $aw_content = "| Gruppe | Bezeichnung |
".$aw_content."
";
+ $aw_content = "| Anwesenheitslisten |
".$aw_content."
";
else
$aw_content = "Derzeit sind in diesem Studiengang / Semester keine Studenten vorhanden";
if($nt_content!='')
- $nt_content = "| Gruppe | Bezeichnung |
".$nt_content."
";
+ $nt_content = "| Notenlisten |
".$nt_content."
";
else
$nt_content = "Derzeit sind in diesem Studiengang / Semester keine Studenten vorhanden";
echo "Zum Erstellen der Liste klicken Sie bitte auf die gewünschte Gruppe!";
echo "
";
echo "
-
- | Anwesenheitslisten |
- Notenlisten |
-
+
| $aw_content |
$nt_content |
diff --git a/cis/private/lehre/lesson.php b/cis/private/lehre/lesson.php
index ffdd30e6f..ff030aeb7 100644
--- a/cis/private/lehre/lesson.php
+++ b/cis/private/lehre/lesson.php
@@ -81,7 +81,7 @@
$qry = "SELECT studiensemester_kurzbz FROM lehre.tbl_lehreinheit JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) WHERE lehrveranstaltung_id='$lvid' ORDER BY ende DESC LIMIT 1";
$stsem = new studiensemester($sql_conn);
- $angezeigtes_stsem = $stsem->getaktorNext($term_id);
+ $angezeigtes_stsem = $stsem->getNearest($term_id);
echo " ($angezeigtes_stsem)";
echo '
@@ -302,7 +302,7 @@
{
//Anwesenheitsliste
- echo "Anwesenheits- und Notenlisten
";
+ echo "Anwesenheits- und Notenlisten
";
}
//Leistungsuebersicht
diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php
index 0024c3da5..6e48c2c00 100644
--- a/cis/private/lehre/notenliste.xls.php
+++ b/cis/private/lehre/notenliste.xls.php
@@ -1,29 +1,13 @@
write(1,0,"Studiengang: $stg_obj->bezeichnung $grpname");
+ $gruppen='';
+ if($result = pg_query($conn, $qry))
+ {
+ while($row = pg_fetch_object($result))
+ {
+ if($gruppen!='')
+ $gruppen.=', ';
+ if($row->gruppe_kurzbz=='')
+ $gruppen.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe);
+ else
+ $gruppen=$row->gruppe_kurzbz;
+ }
+ }
+
+ $worksheet->write(1,0,"Studiengang: $stg_obj->bezeichnung $gruppen");
$lines=2;
//Lektoren ermitteln
- $stsem_obj = new studiensemester($conn);
- $stsem = $stsem_obj->getaktorNext();
-
- $qry = "SELECT distinct vorname, nachname FROM campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter WHERE uid=mitarbeiter_uid AND tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND lehrveranstaltung_id='".addslashes($lvid)."' AND studiensemester_kurzbz='$stsem' ORDER BY nachname, vorname;";
-
+
+ $qry = "SELECT
+ distinct vorname, nachname
+ FROM
+ campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
+ WHERE
+ uid=mitarbeiter_uid AND
+ tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
+ lehrveranstaltung_id='".addslashes($lvid)."' AND
+ studiensemester_kurzbz='".addslashes($stsem)."'";
+
+ if($lehreinheit_id!='')
+ $qry.=" AND tbl_lehreinheit.lehreinheit_id='".addslashes($lehreinheit_id)."'";
+
+ $qry.=' ORDER BY nachname, vorname';
+
if($result = pg_query($conn,$qry))
{
while($row=pg_fetch_object($result))
@@ -123,19 +138,23 @@ if (!$conn = pg_pconnect(CONN_STRING))
$worksheet->write($lines,5,"Note");
- $qry = 'SELECT distinct vorname, nachname, uid, matrikelnr, verband, gruppe, semester FROM ';
- if($gruppe_kurzbz!='')
- $qry .= "campus.vw_student JOIN public.tbl_benutzergruppe USING(uid) WHERE studiensemester_kurzbz='$stsem' AND gruppe_kurzbz='".addslashes($gruppe_kurzbz)."'";
- else
- {
- $qry .= "campus.vw_student WHERE studiengang_kz='$stg' AND semester='$sem'";
- if($verband!='')
- $qry.=" AND verband='$verband'";
- if($gruppe!='')
- $qry.=" AND gruppe='$gruppe'";
- }
- $qry.= " ORDER BY nachname, vorname";
- //echo $qry;
+ $qry = "SELECT
+ distinct vorname, nachname, matrikelnr, student_uid as uid,
+ tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe
+ FROM
+ campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid)
+ JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid)
+ LEFT JOIN public.tbl_studentlehrverband USING(student_uid)
+ WHERE
+ lehrveranstaltung_id='".addslashes($lvid)."' AND
+ vw_student_lehrveranstaltung.studiensemester_kurzbz='".addslashes($stsem)."' AND
+ tbl_studentlehrverband.studiensemester_kurzbz='".addslashes($stsem)."'";
+
+ if($lehreinheit_id!='')
+ $qry.=" AND lehreinheit_id='".addslashes($lehreinheit_id)."'";
+
+ $qry.=' ORDER BY nachname, vorname';
+
if($result = pg_query($conn, $qry))
{
$i=1;
diff --git a/include/studiensemester.class.php b/include/studiensemester.class.php
index 93ef77b79..b21f4c913 100644
--- a/include/studiensemester.class.php
+++ b/include/studiensemester.class.php
@@ -229,7 +229,7 @@ class studiensemester
*/
function getaktorNext($semester='')
{
- if($stsem=$this->getakt())
+ if($stsem=$this->getakt() && $semester=='')
return $stsem;
else
{
@@ -269,10 +269,21 @@ class studiensemester
* Liefert das naechstgelegenste Studiensemester
* @return Studiensemester oder false wenn es keines gibt
*/
- function getNearest()
+ function getNearest($semester='')
{
- $qry = "SELECT studiensemester_kurzbz FROM public.vw_studiensemester ORDER BY delta LIMIT 1";
- if(!$res=pg_exec($this->conn,$qry))
+ $qry = "SELECT studiensemester_kurzbz FROM public.vw_studiensemester ";
+ if($semester!='')
+ {
+ if($semester%2==0)
+ $ss='SS';
+ else
+ $ss='WS';
+
+ $qry.= " WHERE substring(studiensemester_kurzbz from 1 for 2)='$ss' ";
+ }
+ $qry.=' ORDER BY delta LIMIT 1';
+
+ if(!$res=pg_query($this->conn,$qry))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
diff --git a/rdf/zeugnis.rdf.php b/rdf/zeugnis.rdf.php
index ac024512c..46e2efa3f 100644
--- a/rdf/zeugnis.rdf.php
+++ b/rdf/zeugnis.rdf.php
@@ -180,7 +180,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$note = $note_arr[$row->note];
else
$note = "";
-
+ $note2=$note;
if(array_key_exists($row->lehrveranstaltung_id, $projektarbeit))
{
$bezeichnung = $row->lehrveranstaltung_bezeichnung.' '.$fussnotenzeichen[$anzahl_fussnoten];
@@ -223,7 +223,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "\n ";
$xml .= " ";
- $xml .= " ".$note."";
+ $xml .= " ".$note2."";
$xml .= " ".($row->semesterstunden==0?'':sprintf('%.1f',$row->semesterstunden/$wochen))."";
$xml .= " ".$row->ects."";
$xml .= " ";