changes for tbl_zeugnisnote

This commit is contained in:
Andreas Moik
2016-04-27 18:01:25 +02:00
parent 5d3032e5de
commit b5a4645540
23 changed files with 501 additions and 548 deletions
+6 -6
View File
@@ -127,18 +127,18 @@ if (isset($lehrende->result))
$qry = "SELECT
distinct on(nachname, vorname, person_id) vorname, nachname, perskz,
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student,
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_prestudent.studiengang_kz AS stg_kz_student,
tbl_zeugnisnote.note, tbl_mitarbeiter.mitarbeiter_uid
FROM
campus.vw_student_lehrveranstaltung
JOIN public.tbl_benutzer USING(uid)
JOIN public.tbl_person USING(person_id)
LEFT JOIN public.tbl_student ON(uid=student_uid)
LEFT JOIN public.tbl_prestudent ON(vw_student_lehrveranstaltung.uid=tbl_prestudent.uid)
LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
LEFT JOIN public.tbl_studentlehrverband ON(public.tbl_student.prestudent_id=tbl_studentlehrverband.prestudent_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
LEFT JOIN public.tbl_studentlehrverband ON(public.tbl_prestudent.prestudent_id=tbl_studentlehrverband.prestudent_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.prestudent_id=tbl_prestudent.prestudent_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.prestudent_id)
WHERE
vw_student_lehrveranstaltung.lehrveranstaltung_id='".addslashes($lvid)."' AND
vw_student_lehrveranstaltung.studiensemester_kurzbz='".addslashes($studiensemester)."'";
@@ -149,15 +149,15 @@ $stsemdatumbis = $stsem_obj->ende;
$qry = "SELECT
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, person_id,
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
tbl_bisio.bisio_id, tbl_bisio.bis, tbl_bisio.von,
tbl_zeugnisnote.note
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 ON(public.tbl_student.prestudent_id=tbl_studentlehrverband.prestudent_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(public.tbl_student.prestudent_id=tbl_bisio.prestudent_id)
JOIN public.tbl_person USING(person_id) JOIN public.tbl_prestudent ON(tbl_benutzer.uid=tbl_prestudent.uid)
LEFT JOIN public.tbl_studentlehrverband ON(public.tbl_prestudent.prestudent_id=tbl_studentlehrverband.prestudent_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.prestudent_id=tbl_prestudent.prestudent_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(public.tbl_prestudent.prestudent_id=tbl_bisio.prestudent_id)
WHERE
vw_student_lehrveranstaltung.lehrveranstaltung_id='".addslashes($lvid)."' AND
vw_student_lehrveranstaltung.studiensemester_kurzbz='".addslashes($stsem)."'";
@@ -244,7 +244,8 @@ if (isset($_REQUEST["submit"]))
// Hole Zeugnisnote wenn schon eine eingetragen ist
/*
if ($zeugnisnote = new zeugnisnote($lvid, $student_uid, $stsem))
$student = new student($student_uid);
if ($zeugnisnote = new zeugnisnote($lvid, $student->prestudent_id, $stsem))
$znote = $zeugnisnote->note;
else
$znote = null;
@@ -1186,7 +1186,7 @@ echo "
}
else
$note_vorschlag = null;
if ($zeugnisnote = new zeugnisnote($lvid, $row_stud->uid, $stsem))
if ($zeugnisnote = new zeugnisnote($lvid, $row_stud->prestudent_id, $stsem))
$znote = $zeugnisnote->note;
else
$znote = null;
+4 -2
View File
@@ -172,7 +172,9 @@ else
}
else
$sqlFilter = "";
$student = new student($user);
$qry = "SELECT
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_zeugnisnote.note, tbl_zeugnisnote.punkte,
tbl_lvgesamtnote.note as lvnote, tbl_lvgesamtnote.punkte as lvpunkte,
@@ -184,7 +186,7 @@ else
campus.tbl_lvgesamtnote
USING (lehrveranstaltung_id, student_uid, studiensemester_kurzbz)
WHERE
tbl_zeugnisnote.student_uid = ".$db->db_add_param($user)
tbl_zeugnisnote.prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER)
.$sqlFilter."
AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_zeugnisnote.lehrveranstaltung_id
ORDER BY bezeichnung";
+6 -3
View File
@@ -18,7 +18,8 @@
* MA 02110-1301, USA.
*
*
* Authors: Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
* Authors: Andreas Österreicher <andreas.oesterreicher@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*
* Zeigt den Studienplan eines Studierenden an
* und bietet die Möglichkeit zur Anmeldung zu Lehrveranstaltungen.
@@ -410,7 +411,8 @@ function drawTree($tree, $depth)
$lvregel = new lvregel();
if($lvregel->exists($row_tree->studienplan_lehrveranstaltung_id))
{
if($lvregel->isAbgeschlossen($uid, $row_tree->studienplan_lehrveranstaltung_id))
$student = new student($uid);
if($lvregel->isAbgeschlossen($student->prestudent_id, $row_tree->studienplan_lehrveranstaltung_id))
$abgeschlossen=true;
else
$abgeschlossen=false;
@@ -553,7 +555,8 @@ function drawTree($tree, $depth)
}
else
{
if(!$lvregel->isZugangsberechtigt($uid, $row_tree->studienplan_lehrveranstaltung_id, $stsem))
$student = new student($uid);
if(!$lvregel->isZugangsberechtigt($student->prestudent_id, $row_tree->studienplan_lehrveranstaltung_id, $stsem))
{
$regelerfuellt=false;
}
+11 -10
View File
@@ -16,8 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
/**
* Erstellt einen Notenspiegel
@@ -78,14 +79,14 @@ $stg->load($studiengang_kz);
$student = new student();
$result_student = $student->getStudents($studiengang_kz,$semester,null,null,null, $semester_aktuell);
$uids='';
$preids='';
foreach ($result_student as $row)
{
if($uids!='')
$uids.=',';
$uids.=$db->db_add_param($row->uid);
if($preids!='')
$preids.=',';
$preids.=$db->db_add_param($row->prestudent_id, FHC_INTEGER);
}
if($uids=='')
if($preids=='')
die('Es befinden sich keine Studierende in diesem Semester');
$qry = "SELECT
@@ -114,7 +115,7 @@ $qry = "SELECT
lehre.tbl_lehrveranstaltung JOIN lehre.tbl_zeugnisnote USING(lehrveranstaltung_id)
WHERE
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND
tbl_zeugnisnote.student_uid in($uids) AND
tbl_zeugnisnote.prestudent_id in($preids) AND
tbl_zeugnisnote.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
ORDER BY bezeichnung";
@@ -256,7 +257,7 @@ if($typ=='xls')
//Alle Zeugnisnoten des Studierenden holen
$noten = array();
$qry = "SELECT * FROM lehre.tbl_zeugnisnote WHERE student_uid=".$db->db_add_param($row_student->uid)." AND studiensemester_kurzbz=".$db->db_add_param($semester_aktuell);
$qry = "SELECT * FROM lehre.tbl_zeugnisnote WHERE prestudent_id=".$db->db_add_param($row_student->prestudent_id, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($semester_aktuell);
if($result = $db->db_query($qry))
while($row = $db->db_fetch_object($result))
$noten[$row->lehrveranstaltung_id] = $row->note;
@@ -444,7 +445,7 @@ else
echo "<tr><td>$i</td><td>$row_student->nachname $row_student->vorname</td><td>$row_student->matrikelnr</td>";
$noten = array();
$qry = "SELECT * FROM lehre.tbl_zeugnisnote WHERE student_uid=".$db->db_add_param($row_student->uid)." AND studiensemester_kurzbz=".$db->db_add_param($semester_aktuell);
$qry = "SELECT * FROM lehre.tbl_zeugnisnote WHERE prestudent_id=".$db->db_add_param($row_student->prestudent_id, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($semester_aktuell);
if($result = $db->db_query($qry))
while($row = $db->db_fetch_object($result))
$noten[$row->lehrveranstaltung_id] = $row->note;
+2 -2
View File
@@ -2668,7 +2668,7 @@ if(!$error)
else
{
if($noten->load($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz))
if($noten->load($lehrveranstaltung_id, $prestudent_id, $studiensemester_kurzbz))
{
$noten->new = false;
$noten->updateamum = date('Y-m-d H:i:s');
@@ -2686,7 +2686,7 @@ if(!$error)
'updateamum= '.$db->db_add_param($noten->updateamum).', '.
'updatevon='.$db->db_add_param($noten->updatevon).' '.
'WHERE lehrveranstaltung_id='.$db->db_add_param($noten->lehrveranstaltung_id, FHC_INTEGER).' '.
'AND student_uid='.$db->db_add_param($noten->student_uid).' '.
'AND prestudent_id='.$db->db_add_param($noten->prestudent_id, FHC_INTEGER).' '.
'AND studiensemester_kurzbz='.$db->db_add_param($noten->studiensemester_kurzbz).';';
$log->sqlundo = $noten->getUndo('update');
$log->save(true);
+4 -3
View File
@@ -16,9 +16,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Stefan Puraner <puraner@technikum-wien.at>
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Stefan Puraner <puraner@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
require_once(dirname(__FILE__) . '/basis_db.class.php');
require_once(dirname(__FILE__) . '/functions.inc.php');
+24 -24
View File
@@ -16,6 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
Andreas Moik <moik@technikum-wien.at>.
*/
/**
* Klasse lvregel
@@ -477,32 +478,32 @@ class lvregel extends basis_db
/**
* Prüft ob sich ein Student zu einer Lehrveranstaltung anmelden darf
* @param $uid UID des Studierenden
* @param $prestudent_id prestudent_id des Studierenden
* @param $studienplan_lehrveranstaltung_id ID der Lehrveranstaltungszuordnung
*/
public function isZugangsberechtigt($uid, $studienplan_lehrveranstaltung_id, $studiensemester_kurzbz=null)
public function isZugangsberechtigt($prestudent_id, $studienplan_lehrveranstaltung_id, $studiensemester_kurzbz=null)
{
$this->debug('Teste Zugangsberechtigung für '.$uid,2);
$this->debug('Teste Zugangsberechtigung für '.$prestudent_id,2);
if($result = $this->getLVRegelTree($studienplan_lehrveranstaltung_id))
{
return $this->TestRegeln($uid, $result, $studiensemester_kurzbz);
return $this->TestRegeln($prestudent_id, $result, $studiensemester_kurzbz);
}
return true;
}
/**
* Prueft die Regeln fuer einen Studierenden
* @param $uid UID des Studierenden
* @param $prestudent_id prestudent_id des Studierenden
* @param $regel_obj Regel Baum
* @param $studiensemester_kurzbz Studiensemester das geprueft werden soll
*/
public function TestRegeln($uid, $regel_obj, $studiensemester_kurzbz=null, $retval=true)
public function TestRegeln($prestudent_id, $regel_obj, $studiensemester_kurzbz=null, $retval=true)
{
$ects=0;
foreach($regel_obj as $regel)
{
list($testval,$ects_tmp) = $this->Test($uid, $regel, $studiensemester_kurzbz, $retval);
list($testval,$ects_tmp) = $this->Test($prestudent_id, $regel, $studiensemester_kurzbz, $retval);
$this->debug("<br>Compare ".$regel[0]->operator.", ".($retval?'T':'F').", ".($testval?'T':'F'),5);
$retval = $this->Compare($regel[0]->operator, $retval, $testval);
@@ -562,16 +563,16 @@ class lvregel extends basis_db
/**
* Testet die Regel für einen Studenten
* @param $uid User
* @param $prestudent_id prestudent_id
* @param $regel_obj
* @param $studiensemester_kurzbz
*/
public function Test($uid, $regel_obj, $studiensemester_kurzbz=null, $retvalglobal)
public function Test($prestudent_id, $regel_obj, $studiensemester_kurzbz=null, $retvalglobal)
{
$regel = $regel_obj[0];
$ects=0;
$this->debug('<br><b>Teste Regel '.$regel->lvregel_id.'</b>',2);
$this->debug("<br>UID:$uid OP:$regel->operator STSEM:$studiensemester_kurzbz RETVAL:".($retvalglobal?'T':'F'),5);
$this->debug("<br>prestudent_id:$prestudent_id OP:$regel->operator STSEM:$studiensemester_kurzbz RETVAL:".($retvalglobal?'T':'F'),5);
switch($regel->lvregeltyp_kurzbz)
{
@@ -589,19 +590,18 @@ class lvregel extends basis_db
}
// Ausbildungssemester wird nur beim 1. durchlauf ermittelt
if(!isset($this->cache[$uid]) && !isset($this->cache[$uid][$studiensemester_kurzbz]))
if(!isset($this->cache[$prestudent_id]) && !isset($this->cache[$prestudent_id][$studiensemester_kurzbz]))
{
$student = new student();
$student->load($uid);
$student = new student($prestudent_id);
// Ausbildungssemester aus dem Status holen
$prestudent = new prestudent();
if($prestudent->getLastStatus($student->prestudent_id, $studiensemester_kurzbz))
if($prestudent->getLastStatus($prestudent_id, $studiensemester_kurzbz))
{
$this->cache[$uid][$studiensemester_kurzbz]=$prestudent->ausbildungssemester;
$this->cache[$prestudent_id][$studiensemester_kurzbz]=$prestudent->ausbildungssemester;
}
}
$ausbildungssemester = $this->cache[$uid][$studiensemester_kurzbz];
$ausbildungssemester = $this->cache[$prestudent_id][$studiensemester_kurzbz];
// Vergleichen des Ausbildungssemesters mit dem RegelParameter
if($ausbildungssemester>=$regel->parameter)
@@ -629,7 +629,7 @@ class lvregel extends basis_db
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
tbl_note.positiv
AND student_uid=".$this->db_add_param($uid)."
AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)."
AND lehrveranstaltung_id=".$this->db_add_param($regel->lehrveranstaltung_id);
if($result = $this->db_query($qry))
@@ -663,7 +663,7 @@ class lvregel extends basis_db
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
tbl_note.positiv
AND student_uid=".$this->db_add_param($uid)."
AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)."
AND lehrveranstaltung_id=".$this->db_add_param($regel->lehrveranstaltung_id);
if($result = $this->db_query($qry))
@@ -698,7 +698,7 @@ class lvregel extends basis_db
if(isset($regel_obj['childs']) && count($regel_obj['childs'])>0)
{
$this->debug('<br> == <b>Subregel:'.$regel->lvregel_id.'</b> Start ==',2);
list($testval,$ects_tmp) = $this->TestRegeln($uid, $regel_obj['childs'],null, $retval);
list($testval,$ects_tmp) = $this->TestRegeln($prestudent_id, $regel_obj['childs'],null, $retval);
$retval = $this->Compare($regel->operator, $retval, $testval);
if($testval)
@@ -753,18 +753,18 @@ class lvregel extends basis_db
/**
* Prüft ob das Modul für den Studierenden abgeschlossen ist
* @param $uid UID des Studierenden
* @param $prestudent_id prestudent_id des Studierenden
* @param $studienplan_lehrveranstaltung_id ID der Lehrveranstaltungszuordnung
*/
public function isAbgeschlossen($uid, $studienplan_lehrveranstaltung_id)
public function isAbgeschlossen($prestudent_id, $studienplan_lehrveranstaltung_id)
{
$this->debug('Teste Abschluss für '.$uid,2);
$this->debug('Teste Abschluss für '.$prestudent_id,2);
$ects=0;
$retval=true;
if($result = $this->getLVRegelTree($studienplan_lehrveranstaltung_id))
{
list($retval, $ects) = $this->TestRegeln($uid, $result, null);
list($retval, $ects) = $this->TestRegeln($prestudent_id, $result, null);
}
else
{
+3 -2
View File
@@ -271,8 +271,8 @@ class basis_db extends db
*
* Verwendungsbeispiel:
* Update tbl_person set nachname=$this->db_add_param($var)
* Update tbl_person set aktiv=$this->db_add_param($var, FHC_BOOL, false)
* Update tbl_person set anzahlkinder=$this->db_add_param($var, FHC_INT)
* Update tbl_person set aktiv=$this->db_add_param($var, FHC_BOOLEAN, false)
* Update tbl_person set anzahlkinder=$this->db_add_param($var, FHC_INTEGER)
*/
public function db_add_param($var, $type=FHC_STRING, $nullable=true)
{
@@ -290,6 +290,7 @@ class basis_db extends db
$var = $this->db_escape($var);
if(!is_numeric($var) && $var!=='')
die('Invalid Integer Parameter detected:'.$var);
$var = $this->db_null_value($var, false);
break;
+3 -3
View File
@@ -256,7 +256,7 @@ $stsemdatumbis = $stsem_obj->ende;
$qry = "SELECT
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr,
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis,
tbl_zeugnisnote.note
FROM
@@ -265,8 +265,8 @@ $qry = "SELECT
JOIN public.tbl_person USING(person_id)
JOIN public.tbl_prestudent ON(public.tbl_prestudent.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_studentlehrverband ON(public.tbl_prestudent.prestudent_id=public.tbl_studentlehrverband.prestudent_id AND campus.vw_student_lehrveranstaltung.studiensemester_kurzbz=public.tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(tbl_student.prestudent_id=tbl_bisio.prestudent_id)
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.prestudent_id=tbl_prestudent.prestudent_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(tbl_prestudent.prestudent_id=tbl_bisio.prestudent_id)
WHERE
vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid)." AND
vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);
+3 -3
View File
@@ -130,7 +130,7 @@ $stsemdatumbis = $stsem_obj->ende;
$qry = "SELECT
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, person_id, foto_sperre,
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis,
tbl_zeugnisnote.note
FROM
@@ -139,8 +139,8 @@ $qry = "SELECT
JOIN public.tbl_person USING(person_id)
JOIN public.tbl_prestudent ON(public.tbl_prestudent.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_studentlehrverband ON(public.tbl_prestudent.prestudent_id=public.tbl_studentlehrverband.prestudent_id AND campus.vw_student_lehrveranstaltung.studiensemester_kurzbz=public.tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(tbl_student.prestudent_id=tbl_bisio.prestudent_id)
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.prestudent_id=tbl_prestudent.prestudent_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(tbl_prestudent.prestudent_id=tbl_bisio.prestudent_id)
WHERE
vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid)." AND
vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);
+29 -28
View File
@@ -16,8 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
/**
* Klasse Zeugnisnote
@@ -30,7 +31,7 @@ class zeugnisnote extends basis_db
public $result=array();
//Tabellenspalten
public $lehrveranstaltung_id; /// serial
public $student_uid; // varchar(16)
public $prestudent_id; // int
public $studiensemester_kurzbz; // varchar(16)
public $note; // smalint
public $uebernahmedatum; // date
@@ -51,24 +52,24 @@ class zeugnisnote extends basis_db
* Laedt optional eine Zeugnisnote
*
* @param $lehrveranstaltung_id
* @param $student_uid
* @param $prestudent_id
* @param $studiensemester_kurzbz
*/
public function __construct($lehrveranstaltung_id=null, $student_uid=null, $studiensemester_kurzbz=null)
public function __construct($lehrveranstaltung_id=null, $prestudent_id=null, $studiensemester_kurzbz=null)
{
parent::__construct();
if($lehrveranstaltung_id!=null && $student_uid!=null && $studiensemester_kurzbz!=null)
$this->load($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz);
if($lehrveranstaltung_id!=null && $prestudent_id!=null && $studiensemester_kurzbz!=null)
$this->load($lehrveranstaltung_id, $prestudent_id, $studiensemester_kurzbz);
}
/**
* Laedt eine Zeugnisnote
*
* @param $lehrveranstaltung_id
* @param $student_uid
* @param $prestudent_id
* @param $studiensemester_kurzbz
* @return true wenn ok, false im Fehlerfall
*/
public function load($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)
public function load($lehrveranstaltung_id, $prestudent_id, $studiensemester_kurzbz)
{
if(!is_numeric($lehrveranstaltung_id))
{
@@ -81,14 +82,14 @@ class zeugnisnote extends basis_db
lehre.tbl_zeugnisnote
WHERE
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
AND student_uid=".$this->db_add_param($student_uid)."
AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)."
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->student_uid = $row->student_uid;
$this->prestudent_id = $row->prestudent_id;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->note = $row->note;
$this->uebernahmedatum = $row->uebernahmedatum;
@@ -125,9 +126,9 @@ class zeugnisnote extends basis_db
$this->errormsg = 'Lehrveranstaltung_id ist ungueltig';
return false;
}
if($this->student_uid=='')
if(!is_numeric($this->prestudent_id))
{
$this->errormsg = 'UID muss angegeben werden';
$this->errormsg = 'prestudent_id ist ungueltig';
return false;
}
if($this->studiensemester_kurzbz=='')
@@ -167,11 +168,11 @@ class zeugnisnote extends basis_db
if($new)
{
//Neuen Datensatz einfuegen
$qry='INSERT INTO lehre.tbl_zeugnisnote (lehrveranstaltung_id, student_uid,
$qry='INSERT INTO lehre.tbl_zeugnisnote (lehrveranstaltung_id, prestudent_id,
studiensemester_kurzbz, note, uebernahmedatum, benotungsdatum, bemerkung,
updateamum, updatevon, insertamum, insertvon, punkte) VALUES('.
$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).', '.
$this->db_add_param($this->student_uid).', '.
$this->db_add_param($this->prestudent_id, FHC_INTEGER).', '.
$this->db_add_param($this->studiensemester_kurzbz).', '.
$this->db_add_param($this->note).', '.
$this->db_add_param($this->uebernahmedatum).', '.
@@ -194,7 +195,7 @@ class zeugnisnote extends basis_db
'updateamum= '.$this->db_add_param($this->updateamum).', '.
'updatevon='.$this->db_add_param($this->updatevon).' '.
'WHERE lehrveranstaltung_id='.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).' '.
'AND student_uid='.$this->db_add_param($this->student_uid).' '.
'AND prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).' '.
'AND studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).';';
}
if($this->db_query($qry))
@@ -210,15 +211,15 @@ class zeugnisnote extends basis_db
/**
* Loescht den Datenensatz mit der ID die uebergeben wird
* @param $lehrveranstaltung_id
* $student_uid
* $prestudent_id
* $studiensemester_kurzbz
* @return true wenn ok, false im Fehlerfall
*/
public function delete($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)
public function delete($lehrveranstaltung_id, $prestudent_id, $studiensemester_kurzbz)
{
$qry = "DELETE FROM lehre.tbl_zeugnisnote WHERE
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER, false)." AND
student_uid=".$this->db_add_param($student_uid)." AND
prestudent_id=".$this->db_add_param($prestudent_id)." AND
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if($this->db_query($qry))
return true;
@@ -231,7 +232,7 @@ class zeugnisnote extends basis_db
/**
* Laedt die Noten
* @param $lehrveranstaltung_id
* $student_uid
* $prestudent_id
* $studiensemester_kurzbz
* @return true wenn ok, false wenn Fehler
*/
@@ -276,7 +277,7 @@ class zeugnisnote extends basis_db
LEFT JOIN public.tbl_student ON( public.tbl_student.student_uid=vw_student_lehrveranstaltung.uid)
WHERE true $where
UNION
SELECT lehre.tbl_lehrveranstaltung.lehrveranstaltung_id,prestudent_id, lehre.tbl_zeugnisnote.student_uid AS uid,studiensemester_kurzbz, note, punkte,
SELECT lehre.tbl_lehrveranstaltung.lehrveranstaltung_id,prestudent_id, lehre.tbl_zeugnisnote.prestudent_id AS uid,studiensemester_kurzbz, note, punkte,
uebernahmedatum, benotungsdatum,lehre.tbl_lehrveranstaltung.ects,lehre.tbl_lehrveranstaltung.semesterstunden, tbl_zeugnisnote.updateamum, tbl_zeugnisnote.updatevon, tbl_zeugnisnote.insertamum,
tbl_zeugnisnote.insertvon, tbl_zeugnisnote.ext_id, lehre.tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, lehre.tbl_lehrveranstaltung.bezeichnung_english as lehrveranstaltung_bezeichnung_english,
tbl_note.bezeichnung as note_bezeichnung, tbl_zeugnisnote.bemerkung as bemerkung, tbl_lehrveranstaltung.sort, tbl_lehrveranstaltung.zeugnis, tbl_lehrveranstaltung.studiengang_kz,
@@ -285,7 +286,7 @@ class zeugnisnote extends basis_db
lehre.tbl_zeugnisnote
JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
JOIN lehre.tbl_note USING(note)
LEFT JOIN public.tbl_student ON( public.tbl_student.student_uid=lehre.tbl_zeugnisnote.student_uid )
LEFT JOIN public.tbl_student ON( public.tbl_student.student_uid=lehre.tbl_zeugnisnote.prestudent_id )
WHERE true $where2
ORDER BY sort";
if($this->db_query($qry))
@@ -329,11 +330,11 @@ class zeugnisnote extends basis_db
/**
* Laedt die Noten Studienjahr
* @param $lehrveranstaltung_id
* $student_uid
* $prestudent_id
* $studiensemester_kurzbz
* @return true wenn ok, false wenn Fehler
*/
public function getZeugnisnotenStudienplan($student_uid, $studiensemester_arr, $studienplan_id)
public function getZeugnisnotenStudienplan($prestudent_id, $studiensemester_arr, $studienplan_id)
{
$stsem = $this->db_implode4SQL($studiensemester_arr);
/*
@@ -404,7 +405,7 @@ class zeugnisnote extends basis_db
{
$obj = new zeugnisnote();
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$obj->student_uid = $student_uid;
$obj->prestudent_id = $prestudent_id;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->note = $row->note;
$obj->uebernahmedatum = $row->uebernahmedatum;
@@ -446,11 +447,11 @@ class zeugnisnote extends basis_db
{
if(strtoupper($crud) === 'INSERT')
{
return 'INSERT INTO lehre.tbl_zeugnisnote (lehrveranstaltung_id, student_uid,
return 'INSERT INTO lehre.tbl_zeugnisnote (lehrveranstaltung_id, prestudent_id,
studiensemester_kurzbz, note, uebernahmedatum, benotungsdatum, bemerkung,
updateamum, updatevon, insertamum, insertvon, punkte) VALUES('.
$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).', '.
$this->db_add_param($this->student_uid).', '.
$this->db_add_param($this->prestudent_id, FHC_INTEGER).', '.
$this->db_add_param($this->studiensemester_kurzbz).', '.
$this->db_add_param($this->note).', '.
$this->db_add_param($this->uebernahmedatum).', '.
@@ -473,7 +474,7 @@ class zeugnisnote extends basis_db
'updateamum= '.$this->db_add_param($this->updateamum).', '.
'updatevon='.$this->db_add_param($this->updatevon).' '.
'WHERE lehrveranstaltung_id='.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).' '.
'AND student_uid='.$this->db_add_param($this->student_uid).' '.
'AND prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).' '.
'AND studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).';';
}
else
+12 -12
View File
@@ -69,10 +69,10 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
if($db->db_query($query))
{
if(!$row = $db->db_fetch_object())
die('Student not found'.$uid_arr[$i]);
die('Student not found: '.$uid_arr[$i]);
}
else
die('Student not found'.$uid_arr[$i]);
die('Student not found: '.$uid_arr[$i]);
//Bei DEW und DPW werden 60 ECTS angerechnet
if($row->studiengang_kz==92 || $row->studiengang_kz==91)
@@ -291,11 +291,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
if(!$std = new student($uid_arr[$i]))
if(!$student = new student($uid_arr[$i]))
die("Student nicht gefunden");
$akadgrad_id='';
$qry = "SELECT bezeichnung, akadgrad_id, bezeichnung_english FROM lehre.tbl_abschlusspruefung JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz) WHERE prestudent_id=".$db->db_add_param($student->prestudent_id)." ORDER BY datum DESC LIMIT 1";
$qry = "SELECT bezeichnung, akadgrad_id, bezeichnung_english FROM lehre.tbl_abschlusspruefung JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz) WHERE prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." ORDER BY datum DESC LIMIT 1";
if($db->db_query($qry))
{
if($row1 = $db->db_fetch_object())
@@ -555,7 +555,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$semester_ects = 0;
//$thesis_beschreibung = '';
echo "<semesters>";
$student = new student($uid_arr[$i]);
// alle semester für das ausbildungssemester holen
// Semester wo Unterbrecher nicht holen
@@ -563,9 +563,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
from lehre.tbl_zeugnisnote zeugnis
join lehre.tbl_note note using(note)
join lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
join public.tbl_student student USING(student_uid)
join public.tbl_prestudentstatus status USING(prestudent_id)
where student_uid = ".$db->db_add_param($uid_arr[$i])." AND
where prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." AND
zeugnis = true AND
status.ausbildungssemester = ".$db->db_add_param($start)." AND
status.status_kurzbz NOT IN('Unterbrecher', 'Interessent','Bewerber','Aufgenommener','Abgewiesener','Wartender')
@@ -596,7 +595,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$semester_kurzbz = 'Winter Semester '.$year.'/'.$helpyear;
}
$sqlStudent = new student();
$sqlStudent = new student($uid_arr[$i]);
echo " <semesterKurzbz>Semester $start | $semester_kurzbz</semesterKurzbz>";
@@ -609,7 +608,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
from lehre.tbl_zeugnisnote zeugnis
join lehre.tbl_note note using(note)
join lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
where student_uid = ".$db->db_add_param($uid_arr[$i])." AND zeugnis = true AND
where prestudent_id = ".$db->db_add_param($sqlStudent->prestudent_id, FHC_INTEGER)." AND zeugnis = true AND
studiensemester_kurzbz in (".$sqlStudent->implode4SQL($aktuellesSemester).")
ORDER BY sort, tbl_lehrveranstaltung.bezeichnung;";
@@ -748,12 +747,12 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['lehrform_kurzbz']= $lehrform_kurzbz;
// echo " <lehrform_kurzbz>$lehrform_kurzbz</lehrform_kurzbz>";
$student = new student($uid_arr[$i]);
// hole benotungsdatum von aktueller LV
$qry_benotung = "SELECT benotungsdatum FROM
lehre.tbl_zeugnisnote WHERE lehrveranstaltung_id = ".$db->db_add_param($row_stud->lehrveranstaltung_id)."
AND studiensemester_kurzbz = ".$db->db_add_param($row_stud->studiensemester_kurzbz)."
AND student_uid = ".$db->db_add_param($uid_arr[$i]).";";
AND prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER).";";
if($result_benotung = $db->db_query($qry_benotung))
{
if($row_benotung = $db->db_fetch_object($result_benotung))
@@ -897,12 +896,13 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$note_outgoing = 'ar';
$benotungsdatum_outgoing = '';
$lehrform_kurzbz_outgoing = '';
$student = new student($uid_arr[$i]);
$qry_outgoing_note = "SELECT anmerkung, benotungsdatum, lehrform_kurzbz
FROM lehre.tbl_zeugnisnote
JOIN tbl_lehrveranstaltung using(lehrveranstaltung_id)
JOIN tbl_note using(note)
WHERE lehrveranstaltung_id = ".$db->db_add_param($row_outgoing->lehrveranstaltung_id)." and student_uid = ".$db->db_add_param($uid_arr[$i]);
WHERE lehrveranstaltung_id = ".$db->db_add_param($row_outgoing->lehrveranstaltung_id)." and prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER);
if($result_outgoing_note = $db->db_query($qry_outgoing_note))
+312 -311
View File
@@ -1,311 +1,312 @@
<?php
/* Copyright (C) 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
*/
header("Content-type: application/xhtml+xml");
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/zeugnisnote.class.php');
require_once('../include/datum.class.php');
require_once('../include/note.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/studiensemester.class.php');
require_once('../include/studienordnung.class.php');
require_once('../include/studienplan.class.php');
require_once('../include/student.class.php');
require_once('../include/prestudent.class.php');
$datum = new datum();
$db = new basis_db();
$lehrveranstaltungen = array();
if(isset($_GET['uid']))
$uid = $_GET['uid'];
else
$uid = null;
$uid_arr = explode(";",$uid);
if ($uid_arr[0] == "")
{
unset($uid_arr[0]);
$uid_arr = array_values($uid_arr);
}
// Noten laden
$note_arr = array();
$note = new note();
$note->getAll();
foreach ($note->result as $n)
{
$note_arr[$n->note]['anmerkung'] = $n->anmerkung;
$note_arr[$n->note]['positiv'] = $n->positiv;
}
$note_arr['']['anmerkung'] = '';
$note_arr['']['positiv'] = false;
// Studienjahr ermitteln
if(isset($_GET['ss']))
$studiensemester_kurzbz = $_GET['ss'];
else
die('Parameter SS fehlt');
$studiensemester = new studiensemester();
$studiensemester_kurzbz2 = $studiensemester->getStudienjahrStudiensemester($studiensemester_kurzbz);
//Daten holen
$xml = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>";
$xml .= "<zeugnisse>";
foreach($uid_arr as $uid)
{
$student = new student();
if(!$student->load($uid))
die($student->errormsg);
$studiengang = new studiengang();
$stgleiter = $studiengang->getLeitung($student->studiengang_kz);
$stgl='';
foreach ($stgleiter as $stgleiter_uid)
{
$stgl_ma = new mitarbeiter($stgleiter_uid);
$stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost);
}
$ausbildungssemester = 0;
//Wenn das Semester 0 ist, dann wird das Semester aus der Rolle geholt. (Ausnahme: Incoming)
//damit bei Outgoing Studenten die im 0. Semester angelegt sind das richtige Semester aufscheint
$qry ="SELECT ausbildungssemester as semester FROM public.tbl_prestudentstatus
WHERE
prestudent_id=".$db->db_add_param($student->prestudent_id)." AND
studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent')
ORDER BY DATUM DESC LIMIT 1";
if($result_sem = $db->db_query($qry))
{
if($row_sem = $db->db_fetch_object($result_sem))
{
$ausbildungssemester = $row_sem->semester;
}
}
$qry ="SELECT ausbildungssemester as semester FROM public.tbl_prestudentstatus
WHERE
prestudent_id=".$db->db_add_param($student->prestudent_id)." AND
studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz2)." AND
status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent')
ORDER BY DATUM DESC LIMIT 1";
if($result_sem = $db->db_query($qry))
{
if($row_sem = $db->db_fetch_object($result_sem))
{
$ausbildungssemester2 = $row_sem->semester;
}
else
{
if($ausbildungssemester/2==0)
$ausbildungssemester2=$ausbildungssemester-1;
else
$ausbildungssemester2=$ausbildungssemester+1;
}
}
$student_studienjahr = round($ausbildungssemester/2);
$jahr1=mb_substr($studiensemester_kurzbz,2);
$jahr2=mb_substr($studiensemester_kurzbz2,2);
$studienjahr = ($jahr1>$jahr2?$jahr2.'/'.$jahr1:$jahr1.'/'.$jahr2);
$studiengang = new studiengang();
$studiengang->load($student->studiengang_kz);
$prestudent = new prestudent();
$prestudent->getLastStatus($student->prestudent_id, $studiensemester_kurzbz);
if($prestudent->studienplan_id=='')
{
die('keine Studienplan Zuordnung fuer '.$student->nachname);
}
$studienplan = new studienplan();
if(!$studienplan->loadStudienplan($prestudent->studienplan_id))
die('Studienplan ungueltig');
$studienordnung = new studienordnung();
if(!$studienordnung->loadStudienordnung($studienplan->studienordnung_id))
die('Studienordnung ungueltig');
$xml .= "\n <zeugnis>";
$xml .= "\n <semester>".$ausbildungssemester."</semester>";
$xml .= "\n <studienjahr>".$studienjahr."</studienjahr>";
$xml .= "\n <student_studienjahr>".$student_studienjahr."</student_studienjahr>";
$xml .= "\n <studiengang>".$studienordnung->studiengangbezeichnung."</studiengang>";
$xml .= "\n <studiengang_englisch>".$studienordnung->studiengangbezeichnung_englisch."</studiengang_englisch>";
$xml .= "\n <studiengang_typ>".$studiengang->typ."</studiengang_typ>";
$xml .= "\n <studiengang_kz>".sprintf('%04s', abs($studiengang->studiengang_kz))."</studiengang_kz>";
$xml .= "\n <anrede>".$student->anrede."</anrede>";
$xml .= "\n <vorname>".$student->vorname."</vorname>";
$xml .= "\n <nachname>".$student->nachname."</nachname>";
$xml .= "\n <name>".trim($student->titelpre.' '.trim($student->vorname.' '.$student->vornamen).' '.mb_strtoupper($student->nachname).($student->titelpost!=''?', '.$student->titelpost:''))."</name>";
$gebdatum = date('d.m.Y',strtotime($student->gebdatum));
$xml .= "\n <gebdatum>".$gebdatum."</gebdatum>";
$xml .= "\n <personenkennzeichen>".$student->matrikelnr."</personenkennzeichen>";
$xml .= "\n <studiengangsleiter>".$stgl."</studiengangsleiter>";
$datum_aktuell = date('d.m.Y');
$xml .= "\n <datum_aktuell>".$datum_aktuell."</datum_aktuell>";
$obj = new zeugnisnote();
$obj->getZeugnisnotenStudienplan($uid, array($studiensemester_kurzbz, $studiensemester_kurzbz2),$prestudent->studienplan_id);
foreach ($obj->result as $row)
{
$stpllv[$row->studienplan_lehrveranstaltung_id] = $row->lehrveranstaltung_id;
}
$durchlauf=0;
// Zweimal durchlaufen weil sonst manche Submodule nicht richtig erfasst werden
while($durchlauf<2)
{
foreach($obj->result as $row)
{
// Nur die betreffenden Semester mitnehmen da sonst ein durcheinander entsteht wenn die gleiche LV in verschiedenen Semester in unterschiedlichen
// Modulen verwendet wird
if($row->studienplan_lehrveranstaltung_semester==$ausbildungssemester || $row->studienplan_lehrveranstaltung_semester==$ausbildungssemester2)
{
//Gruppieren der Module
//$lvs['1']['childs']['2']=$obj;
if($row->studienplan_lehrveranstaltung_id_parent=='') // 1. Ebene (Module)
{
$lehrveranstaltungen[$row->lehrveranstaltung_id]['data']=$row;
}
else
{
// 2. Ebene
if(isset($stpllv[$row->studienplan_lehrveranstaltung_id_parent]) && isset($lehrveranstaltungen[$stpllv[$row->studienplan_lehrveranstaltung_id_parent]]))
{
$lehrveranstaltungen[$stpllv[$row->studienplan_lehrveranstaltung_id_parent]]['childs'][$row->lehrveranstaltung_id]['data'] = $row;
}
else
{
// 3. Ebene
foreach($lehrveranstaltungen as $key=>$row_module)
{
if(isset($stpllv[$row->studienplan_lehrveranstaltung_id_parent]) && isset($lehrveranstaltungen[$key]['childs'][$stpllv[$row->studienplan_lehrveranstaltung_id_parent]]))
{
$lehrveranstaltungen[$key]['childs'][$stpllv[$row->studienplan_lehrveranstaltung_id_parent]]['childs'][$row->lehrveranstaltung_id]['data']=$row;
}
}
}
}
}
}
$durchlauf++;
}
$ects_gesamt = 0;
$ects_absolviert = 0;
foreach ($lehrveranstaltungen as $row_lehrveranstaltungen)
{
$xml.=getLVRow($row_lehrveranstaltungen);
}
$xml .= "<ects_gesamt>".$ects_gesamt."</ects_gesamt>";
$xml .= "<ects_absolviert>".$ects_absolviert."</ects_absolviert>";
$xml .= " </zeugnis>";
}
$xml .= "</zeugnisse>";
echo $xml;
function getLVRow($obj)
{
global $ects_gesamt, $ects_absolviert,$studienplan,$note_arr;
$xml='';
$row = $obj['data'];
if($row->zeugnis)
{
if ($row->note!=='')
$note = $note_arr[$row->note]['anmerkung'];
else
$note = "";
$bezeichnung = $row->lehrveranstaltung_bezeichnung;
$bezeichnung_englisch = $row->lehrveranstaltung_bezeichnung_english;
$wochen = $studienplan->semesterwochen;
$stsem_kurz = mb_substr($row->studiensemester_kurzbz,0,2);
if($stsem_kurz=='')
{
// Das Studiensemester kommt aus der Note, wenn keine Note vorhanden ist,
// wird SS und WS aufgrund der Semesterzuteilung der LV ermittelt
// TODO passt nicht wenn studiengang im Sommersemester startet
$stsem_kurz= ($row->studienplan_lehrveranstaltung_semester%2==0?'SS':'WS');
}
$xml .= "\n <unterrichtsfach>";
$xml .= "\n <bezeichnung><![CDATA[".$bezeichnung."]]></bezeichnung>";
$xml .= "\n <bezeichnung_englisch><![CDATA[".$bezeichnung_englisch."]]></bezeichnung_englisch>";
$xml .= "\n <lvnr>".$row->lehrveranstaltung_lvnr."</lvnr>";
$xml .= "\n <stsem_kurz><![CDATA[".$stsem_kurz."]]></stsem_kurz>";
$xml .= "\n <semester><![CDATA[".$row->studienplan_lehrveranstaltung_semester."]]></semester>";
$xml .= "\n <note>".$note."</note>";
$xml .= "\n <noteidx>".$row->note."</noteidx>";
$xml .= "\n <positiv>".($note_arr[$row->note]['positiv']?'Ja':'Nein')."</positiv>";
$xml .= "\n <sws>".($row->semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1))."</sws>";
$ectspunkte='';
if($row->ects==0 || $row->ects=='')
$ectspunkte='';
else
{
//Bei 2 Nachkommastellen beide anzeigen, sonst nur 1
if(number_format($row->ects,1)==number_format($row->ects,2))
$ectspunkte=number_format($row->ects,1);
else
$ectspunkte=number_format($row->ects,2);
}
if($row->lv_lehrform_kurzbz!='MOD')
$ects_gesamt+=$ectspunkte;
if($note_arr[$row->note]['positiv'])
$ects_absolviert+=$ectspunkte;
$xml .= "\n <ects>".$ectspunkte."</ects>";
$xml .= "\n <lehrform>".$row->lv_lehrform_kurzbz."</lehrform>";
if(isset($obj['childs']))
{
foreach($obj['childs'] as $row_childs)
{
$xml.=getLVRow($row_childs);
}
}
$xml .= "\n </unterrichtsfach>";
}
return $xml;
}
?>
<?php
/* Copyright (C) 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
header("Content-type: application/xhtml+xml");
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/zeugnisnote.class.php');
require_once('../include/datum.class.php');
require_once('../include/note.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/studiensemester.class.php');
require_once('../include/studienordnung.class.php');
require_once('../include/studienplan.class.php');
require_once('../include/student.class.php');
require_once('../include/prestudent.class.php');
$datum = new datum();
$db = new basis_db();
$lehrveranstaltungen = array();
if(isset($_GET['uid']))
$uid = $_GET['uid'];
else
$uid = null;
$uid_arr = explode(";",$uid);
if ($uid_arr[0] == "")
{
unset($uid_arr[0]);
$uid_arr = array_values($uid_arr);
}
// Noten laden
$note_arr = array();
$note = new note();
$note->getAll();
foreach ($note->result as $n)
{
$note_arr[$n->note]['anmerkung'] = $n->anmerkung;
$note_arr[$n->note]['positiv'] = $n->positiv;
}
$note_arr['']['anmerkung'] = '';
$note_arr['']['positiv'] = false;
// Studienjahr ermitteln
if(isset($_GET['ss']))
$studiensemester_kurzbz = $_GET['ss'];
else
die('Parameter SS fehlt');
$studiensemester = new studiensemester();
$studiensemester_kurzbz2 = $studiensemester->getStudienjahrStudiensemester($studiensemester_kurzbz);
//Daten holen
$xml = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>";
$xml .= "<zeugnisse>";
foreach($uid_arr as $uid)
{
$student = new student();
if(!$student->load($uid))
die($student->errormsg);
$studiengang = new studiengang();
$stgleiter = $studiengang->getLeitung($student->studiengang_kz);
$stgl='';
foreach ($stgleiter as $stgleiter_uid)
{
$stgl_ma = new mitarbeiter($stgleiter_uid);
$stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost);
}
$ausbildungssemester = 0;
//Wenn das Semester 0 ist, dann wird das Semester aus der Rolle geholt. (Ausnahme: Incoming)
//damit bei Outgoing Studenten die im 0. Semester angelegt sind das richtige Semester aufscheint
$qry ="SELECT ausbildungssemester as semester FROM public.tbl_prestudentstatus
WHERE
prestudent_id=".$db->db_add_param($student->prestudent_id)." AND
studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent')
ORDER BY DATUM DESC LIMIT 1";
if($result_sem = $db->db_query($qry))
{
if($row_sem = $db->db_fetch_object($result_sem))
{
$ausbildungssemester = $row_sem->semester;
}
}
$qry ="SELECT ausbildungssemester as semester FROM public.tbl_prestudentstatus
WHERE
prestudent_id=".$db->db_add_param($student->prestudent_id)." AND
studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz2)." AND
status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent')
ORDER BY DATUM DESC LIMIT 1";
if($result_sem = $db->db_query($qry))
{
if($row_sem = $db->db_fetch_object($result_sem))
{
$ausbildungssemester2 = $row_sem->semester;
}
else
{
if($ausbildungssemester/2==0)
$ausbildungssemester2=$ausbildungssemester-1;
else
$ausbildungssemester2=$ausbildungssemester+1;
}
}
$student_studienjahr = round($ausbildungssemester/2);
$jahr1=mb_substr($studiensemester_kurzbz,2);
$jahr2=mb_substr($studiensemester_kurzbz2,2);
$studienjahr = ($jahr1>$jahr2?$jahr2.'/'.$jahr1:$jahr1.'/'.$jahr2);
$studiengang = new studiengang();
$studiengang->load($student->studiengang_kz);
$prestudent = new prestudent();
$prestudent->getLastStatus($student->prestudent_id, $studiensemester_kurzbz);
if($prestudent->studienplan_id=='')
{
die('keine Studienplan Zuordnung fuer '.$student->nachname);
}
$studienplan = new studienplan();
if(!$studienplan->loadStudienplan($prestudent->studienplan_id))
die('Studienplan ungueltig');
$studienordnung = new studienordnung();
if(!$studienordnung->loadStudienordnung($studienplan->studienordnung_id))
die('Studienordnung ungueltig');
$xml .= "\n <zeugnis>";
$xml .= "\n <semester>".$ausbildungssemester."</semester>";
$xml .= "\n <studienjahr>".$studienjahr."</studienjahr>";
$xml .= "\n <student_studienjahr>".$student_studienjahr."</student_studienjahr>";
$xml .= "\n <studiengang>".$studienordnung->studiengangbezeichnung."</studiengang>";
$xml .= "\n <studiengang_englisch>".$studienordnung->studiengangbezeichnung_englisch."</studiengang_englisch>";
$xml .= "\n <studiengang_typ>".$studiengang->typ."</studiengang_typ>";
$xml .= "\n <studiengang_kz>".sprintf('%04s', abs($studiengang->studiengang_kz))."</studiengang_kz>";
$xml .= "\n <anrede>".$student->anrede."</anrede>";
$xml .= "\n <vorname>".$student->vorname."</vorname>";
$xml .= "\n <nachname>".$student->nachname."</nachname>";
$xml .= "\n <name>".trim($student->titelpre.' '.trim($student->vorname.' '.$student->vornamen).' '.mb_strtoupper($student->nachname).($student->titelpost!=''?', '.$student->titelpost:''))."</name>";
$gebdatum = date('d.m.Y',strtotime($student->gebdatum));
$xml .= "\n <gebdatum>".$gebdatum."</gebdatum>";
$xml .= "\n <personenkennzeichen>".$student->matrikelnr."</personenkennzeichen>";
$xml .= "\n <studiengangsleiter>".$stgl."</studiengangsleiter>";
$datum_aktuell = date('d.m.Y');
$xml .= "\n <datum_aktuell>".$datum_aktuell."</datum_aktuell>";
$obj = new zeugnisnote();
$obj->getZeugnisnotenStudienplan($prestudent_id, array($studiensemester_kurzbz, $studiensemester_kurzbz2),$prestudent->studienplan_id);
foreach ($obj->result as $row)
{
$stpllv[$row->studienplan_lehrveranstaltung_id] = $row->lehrveranstaltung_id;
}
$durchlauf=0;
// Zweimal durchlaufen weil sonst manche Submodule nicht richtig erfasst werden
while($durchlauf<2)
{
foreach($obj->result as $row)
{
// Nur die betreffenden Semester mitnehmen da sonst ein durcheinander entsteht wenn die gleiche LV in verschiedenen Semester in unterschiedlichen
// Modulen verwendet wird
if($row->studienplan_lehrveranstaltung_semester==$ausbildungssemester || $row->studienplan_lehrveranstaltung_semester==$ausbildungssemester2)
{
//Gruppieren der Module
//$lvs['1']['childs']['2']=$obj;
if($row->studienplan_lehrveranstaltung_id_parent=='') // 1. Ebene (Module)
{
$lehrveranstaltungen[$row->lehrveranstaltung_id]['data']=$row;
}
else
{
// 2. Ebene
if(isset($stpllv[$row->studienplan_lehrveranstaltung_id_parent]) && isset($lehrveranstaltungen[$stpllv[$row->studienplan_lehrveranstaltung_id_parent]]))
{
$lehrveranstaltungen[$stpllv[$row->studienplan_lehrveranstaltung_id_parent]]['childs'][$row->lehrveranstaltung_id]['data'] = $row;
}
else
{
// 3. Ebene
foreach($lehrveranstaltungen as $key=>$row_module)
{
if(isset($stpllv[$row->studienplan_lehrveranstaltung_id_parent]) && isset($lehrveranstaltungen[$key]['childs'][$stpllv[$row->studienplan_lehrveranstaltung_id_parent]]))
{
$lehrveranstaltungen[$key]['childs'][$stpllv[$row->studienplan_lehrveranstaltung_id_parent]]['childs'][$row->lehrveranstaltung_id]['data']=$row;
}
}
}
}
}
}
$durchlauf++;
}
$ects_gesamt = 0;
$ects_absolviert = 0;
foreach ($lehrveranstaltungen as $row_lehrveranstaltungen)
{
$xml.=getLVRow($row_lehrveranstaltungen);
}
$xml .= "<ects_gesamt>".$ects_gesamt."</ects_gesamt>";
$xml .= "<ects_absolviert>".$ects_absolviert."</ects_absolviert>";
$xml .= " </zeugnis>";
}
$xml .= "</zeugnisse>";
echo $xml;
function getLVRow($obj)
{
global $ects_gesamt, $ects_absolviert,$studienplan,$note_arr;
$xml='';
$row = $obj['data'];
if($row->zeugnis)
{
if ($row->note!=='')
$note = $note_arr[$row->note]['anmerkung'];
else
$note = "";
$bezeichnung = $row->lehrveranstaltung_bezeichnung;
$bezeichnung_englisch = $row->lehrveranstaltung_bezeichnung_english;
$wochen = $studienplan->semesterwochen;
$stsem_kurz = mb_substr($row->studiensemester_kurzbz,0,2);
if($stsem_kurz=='')
{
// Das Studiensemester kommt aus der Note, wenn keine Note vorhanden ist,
// wird SS und WS aufgrund der Semesterzuteilung der LV ermittelt
// TODO passt nicht wenn studiengang im Sommersemester startet
$stsem_kurz= ($row->studienplan_lehrveranstaltung_semester%2==0?'SS':'WS');
}
$xml .= "\n <unterrichtsfach>";
$xml .= "\n <bezeichnung><![CDATA[".$bezeichnung."]]></bezeichnung>";
$xml .= "\n <bezeichnung_englisch><![CDATA[".$bezeichnung_englisch."]]></bezeichnung_englisch>";
$xml .= "\n <lvnr>".$row->lehrveranstaltung_lvnr."</lvnr>";
$xml .= "\n <stsem_kurz><![CDATA[".$stsem_kurz."]]></stsem_kurz>";
$xml .= "\n <semester><![CDATA[".$row->studienplan_lehrveranstaltung_semester."]]></semester>";
$xml .= "\n <note>".$note."</note>";
$xml .= "\n <noteidx>".$row->note."</noteidx>";
$xml .= "\n <positiv>".($note_arr[$row->note]['positiv']?'Ja':'Nein')."</positiv>";
$xml .= "\n <sws>".($row->semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1))."</sws>";
$ectspunkte='';
if($row->ects==0 || $row->ects=='')
$ectspunkte='';
else
{
//Bei 2 Nachkommastellen beide anzeigen, sonst nur 1
if(number_format($row->ects,1)==number_format($row->ects,2))
$ectspunkte=number_format($row->ects,1);
else
$ectspunkte=number_format($row->ects,2);
}
if($row->lv_lehrform_kurzbz!='MOD')
$ects_gesamt+=$ectspunkte;
if($note_arr[$row->note]['positiv'])
$ects_absolviert+=$ectspunkte;
$xml .= "\n <ects>".$ectspunkte."</ects>";
$xml .= "\n <lehrform>".$row->lv_lehrform_kurzbz."</lehrform>";
if(isset($obj['childs']))
{
foreach($obj['childs'] as $row_childs)
{
$xml.=getLVRow($row_childs);
}
}
$xml .= "\n </unterrichtsfach>";
}
return $xml;
}
?>
+10 -7
View File
@@ -16,9 +16,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Raab <gerald.raab@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Gerald Raab <gerald.raab@technikum-wien.at> and
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>.
*/
// content type setzen
header("Content-type: application/xhtml+xml");
@@ -30,6 +31,7 @@ require_once('../include/note.class.php');
require_once('../include/studiensemester.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/student.class.php');
$datum = new datum();
$db = new basis_db();
@@ -230,10 +232,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "\n <studiengangsleiter>".$stgl."</studiengangsleiter>";
$datum_aktuell = date('d.m.Y');
$xml .= "\n <ort_datum>Wien, am ".$datum_aktuell."</ort_datum>";
$student = new student($uid_arr[$i]);
$obj = new zeugnisnote();
$obj->load($lehrveranstaltung_id, $uid_arr[$i], $studiensemester_kurzbz);
$obj->load($lehrveranstaltung_id, $student->prestudent_id, $studiensemester_kurzbz);
if ($obj->note)
{
@@ -276,4 +279,4 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "</zertifikate>";
echo $xml;
}
?>
?>
+8 -6
View File
@@ -16,9 +16,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Raab <gerald.raab@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Gerald Raab <gerald.raab@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
// content type setzen
header("Content-type: application/xhtml+xml");
@@ -279,10 +280,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "\n <studiengangsleiter>".$stgl."</studiengangsleiter>";
$datum_aktuell = date('d.m.Y');
$xml .= "\n <ort_datum>Wien, am ".$datum_aktuell."</ort_datum>";
$student = new student($uid_arr[$i]);
$obj = new zeugnisnote();
$obj->load($lehrveranstaltung_id, $uid_arr[$i], $studiensemester_kurzbz);
$obj->load($lehrveranstaltung_id, $student->prestudent_id, $studiensemester_kurzbz);
if ($obj->note)
{
+10 -7
View File
@@ -16,9 +16,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Raab <gerald.raab@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Gerald Raab <gerald.raab@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
// content type setzen
header("Content-type: application/xhtml+xml");
@@ -30,6 +31,7 @@ require_once('../include/note.class.php');
require_once('../include/studiensemester.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/student.class.php');
$datum = new datum();
$db = new basis_db();
@@ -215,10 +217,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "\n <studiengangsleiter>".$stgl."</studiengangsleiter>";
$datum_aktuell = date('d.m.Y');
$xml .= "\n <ort_datum>Wien, am ".$datum_aktuell."</ort_datum>";
$student = new student($uid_arr[$i]);
$obj = new zeugnisnote();
$obj->load($lehrveranstaltung_id, $uid_arr[$i], $studiensemester_kurzbz);
$obj->load($lehrveranstaltung_id, $student->prestudent_id, $studiensemester_kurzbz);
if ($obj->note)
{
@@ -253,4 +256,4 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "</zertifikate>";
echo $xml;
}
?>
?>
+3 -2
View File
@@ -16,8 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>
*/
// header für no cache
+2 -1
View File
@@ -15,7 +15,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Karl Burkhart <burkhart@technikum-wien.at>.
* Authors: Karl Burkhart <burkhart@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
require_once('../config/vilesci.config.inc.php');
+2 -2
View File
@@ -44,8 +44,8 @@ array
array("schema" => "lehre", "name" => "tbl_projektarbeit", "from" => "student_uid", "to" => "prestudent_id", "datatype" => "int", "newTarget" => "tbl_prestudent", "newTargetSchema" => "public", "pickDataFrom" => "tbl_student", "pickDataFromCol" => "student_uid", "constraint" => "SET NOT NULL"),
array("schema" => "fue", "name" => "tbl_ressource", "from" => "student_uid", "to" => "uid", "datatype" => "varchar(32)", "newTarget" => "tbl_benutzer", "newTargetSchema" => "public", "pickDataFrom" => "tbl_benutzer", "pickDataFromCol" => "uid" , "constraint" => ""),
array("schema" => "lehre", "name" => "tbl_pruefung", "from" => "student_uid", "to" => "prestudent_id", "datatype" => "int", "newTarget" => "tbl_prestudent", "newTargetSchema" => "public", "pickDataFrom" => "tbl_student", "pickDataFromCol" => "student_uid", "constraint" => "SET NOT NULL"),
array("schema" => "lehre", "name" => "tbl_zeugnis", "from" => "student_uid", "to" => "prestudent_id", "datatype" => "int", "newTarget" => "tbl_prestudent", "newTargetSchema" => "public", "pickDataFrom" => "tbl_student", "pickDataFromCol" => "student_uid", "constraint" => "SET NOT NULL"),
array("schema" => "lehre", "name" => "tbl_zeugnisnote", "from" => "student_uid", "to" => "prestudent_id", "datatype" => "int", "newTarget" => "tbl_prestudent", "newTargetSchema" => "public", "pickDataFrom" => "tbl_student", "pickDataFromCol" => "student_uid", "constraint" => "SET NOT NULL"),
array("schema" => "lehre", "name" => "tbl_zeugnis", "from" => "student_uid", "to" => "prestudent_id", "datatype" => "int", "newTarget" => "tbl_prestudent", "newTargetSchema" => "public", "pickDataFrom" => "tbl_student", "pickDataFromCol" => "student_uid", "constraint" => "SET NOT NULL"),
array("schema" => "lehre", "name" => "tbl_zeugnisnote", "from" => "student_uid", "to" => "prestudent_id", "datatype" => "int", "newTarget" => "tbl_prestudent", "newTargetSchema" => "public", "pickDataFrom" => "tbl_student", "pickDataFromCol" => "student_uid", "constraint" => "SET NOT NULL"),
);
+39 -107
View File
@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
Andreas Moik <moik@technikum-wien.at>.
Andreas Moik <moik@technikum-wien.at>.
*/
/*
* Prueft die Daten in der Datenbank auf konsistenz und gibt Hinweise
@@ -54,7 +54,7 @@ echo '<!DOCTYPE HTML>
/************************************************************************************
* Pruefung auf falschen Personenkreislauf
* tbl_person->tbl_benutzer->tbl_student->tbl_prestudent->tbl_person
* tbl_person->tbl_benutzer->tbl_prestudent->tbl_person
*/
$qry = "SELECT
@@ -63,15 +63,14 @@ $qry = "SELECT
FROM
public.tbl_person
JOIN public.tbl_benutzer USING(person_id)
JOIN public.tbl_student ON(uid=student_uid)
JOIN public.tbl_prestudent USING(prestudent_id)
JOIN public.tbl_prestudent USING(person_id)
WHERE
tbl_person.person_id<>tbl_prestudent.person_id
ORDER BY nachname, vorname, uid";
if($result = $db->db_query($qry))
{
echo '<h2>Inkonsistenter Personenkreislauf tbl_person-&gt;tbl_benutzer-&gt;tbl_student-&gt;tbl_prestudent-&gt;tbl_person</h2>';
echo '<h2>Inkonsistenter Personenkreislauf tbl_person-&gt;tbl_benutzer-&gt;tbl_prestudent-&gt;tbl_person</h2>';
$anzahl = $db->db_num_rows($result);
echo '<span class="'.($anzahl>0?'error':'ok').'">'.$anzahl.' Probleme gefunden</span>';
@@ -130,7 +129,7 @@ $qry = "SELECT
public.tbl_benutzer
LEFT JOIN public.tbl_person USING(person_id)
WHERE
NOT EXISTS (SELECT 1 FROM public.tbl_student WHERE student_uid=tbl_benutzer.uid)
NOT EXISTS (SELECT 1 FROM public.tbl_prestudent WHERE uid=tbl_benutzer.uid)
AND NOT EXISTS (SELECT 1 FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=tbl_benutzer.uid)";
if($result = $db->db_query($qry))
@@ -191,11 +190,11 @@ $qry = "SELECT
JOIN public.tbl_person USING(person_id)
WHERE
status_kurzbz IN('Student','Absolvent','Diplomand','Incoming')
AND NOT EXISTS (SELECT 1 FROM public.tbl_student WHERE prestudent_id=tbl_prestudent.prestudent_id)";
AND public.tbl_prestudent.uid IS NULL";
if($result = $db->db_query($qry))
{
echo '<h2>Prestudenten mit Studenten/Absolventen/Diplomanden/Incoming Status aber ohne StudentUID</h2>';
echo '<h2>Prestudenten mit Studenten/Absolventen/Diplomanden/Incoming Status aber ohne UID</h2>';
$anzahl = $db->db_num_rows($result);
@@ -240,79 +239,16 @@ if($result = $db->db_query($qry))
}
}
/**************************************************************************************
* StgKz von Stunent und Prestudent unterschiedlich
*
*/
$qry = "SELECT
tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id, tbl_student.student_uid,
tbl_student.studiengang_kz as stud_studiengang_kz, tbl_prestudent.studiengang_kz as pre_studiengang_kz
FROM
public.tbl_student
JOIN public.tbl_prestudent USING(prestudent_id)
JOIN public.tbl_person USING(person_id)
WHERE
tbl_student.studiengang_kz<>tbl_prestudent.studiengang_kz";
if($result = $db->db_query($qry))
{
echo '<h2>Studiengangskennzahl von tbl_student ungleich tbl_prestudent</h2>';
$anzahl = $db->db_num_rows($result);
echo '<span class="'.($anzahl>0?'error':'ok').'">'.$anzahl.' Probleme gefunden</span>';
if($anzahl>0)
{
echo '<br><a href="#Anzeigen" onclick="$(\'#stgungleich\').toggle(); return false;">Anzeigen &gt;&gt;</a>';
echo '
<script type="text/javascript">
$(document).ready(function()
{
$("#stgungleich").tablesorter(
{
sortList: [[0,0]],
widgets: ["zebra"]
});
});
</script>
<table class="tablesorter" id="stgungleich" style="display:none">
<thead>
<tr>
<th>Nachname</th>
<th>Vorname</th>
<th>PrestudentID</th>
<th>StudentStgKZ</th>
<th>PrestudentStgKZ</th>
</tr>
</thead>
<tbody>';
while($row = $db->db_fetch_object($result))
{
$error_kritisch++;
echo '
<tr>
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td>'.$db->convert_html_chars($row->vorname).'</td>
<td>'.$db->convert_html_chars($row->prestudent_id).'</td>
<td>'.$db->convert_html_chars($row->stud_studiengang_kz).'</td>
<td>'.$db->convert_html_chars($row->pre_studiengang_kz).'</td>
</tr>';
}
echo '</tbody></table>';
}
}
/**************************************************************************************
* Studenten ohne passenden Status
*
*/
$qry = "SELECT
tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id, tbl_student.student_uid,
tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id, tbl_prestudent.uid,
get_rolle_prestudent(prestudent_id, null) as laststatus
FROM
public.tbl_student
JOIN public.tbl_prestudent USING(prestudent_id)
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
WHERE
NOT EXISTS(SELECT 1 FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND status_kurzbz in('Student','Incoming','Diplomand','Absolvent'))";
@@ -358,7 +294,7 @@ if($result = $db->db_query($qry))
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td>'.$db->convert_html_chars($row->vorname).'</td>
<td>'.$db->convert_html_chars($row->prestudent_id).'</td>
<td>'.$db->convert_html_chars($row->student_uid).'</td>
<td>'.$db->convert_html_chars($row->uid).'</td>
<td>'.$db->convert_html_chars($row->laststatus).'</td>
</tr>';
}
@@ -428,13 +364,13 @@ if($result = $db->db_query($qry))
*
*/
$qry = "SELECT
tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid
tbl_person.vorname, tbl_person.nachname, tbl_prestudent.uid
FROM
public.tbl_student
JOIN public.tbl_benutzer ON(uid=student_uid)
JOIN public.tbl_person USING(person_id)
public.tbl_prestudent
JOIN public.tbl_benutzer ON(tbl_benutzer.uid=tbl_prestudent.uid)
JOIN public.tbl_person ON(tbl_person.person_id=tbl_prestudent.person_id)
WHERE
NOT EXISTS(SELECT 1 FROM public.tbl_studentlehrverband WHERE prestudent_id=tbl_student.prestudent_id)";
NOT EXISTS(SELECT 1 FROM public.tbl_studentlehrverband WHERE prestudent_id=tbl_prestudent.prestudent_id)";
if($result = $db->db_query($qry))
{
@@ -474,7 +410,7 @@ if($result = $db->db_query($qry))
<tr>
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td>'.$db->convert_html_chars($row->vorname).'</td>
<td>'.$db->convert_html_chars($row->student_uid).'</td>
<td>'.$db->convert_html_chars($row->uid).'</td>
</tr>';
}
echo '</tbody></table>';
@@ -486,14 +422,13 @@ if($result = $db->db_query($qry))
*
*/
$qry = "SELECT
tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid
tbl_person.vorname, tbl_person.nachname, tbl_prestudent.uid
FROM
public.tbl_student
JOIN public.tbl_prestudent USING(prestudent_id)
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
WHERE
NOT EXISTS(SELECT 1 FROM bis.tbl_bisio WHERE prestudent_id=tbl_student.prestudent_id)
AND EXISTS(SELECT 1 FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id AND status_kurzbz='Incoming')";
NOT EXISTS(SELECT 1 FROM bis.tbl_bisio WHERE prestudent_id=tbl_prestudent.prestudent_id)
AND EXISTS(SELECT 1 FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND status_kurzbz='Incoming')";
if($result = $db->db_query($qry))
{
@@ -533,7 +468,7 @@ if($result = $db->db_query($qry))
<tr>
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td>'.$db->convert_html_chars($row->vorname).'</td>
<td>'.$db->convert_html_chars($row->student_uid).'</td>
<td>'.$db->convert_html_chars($row->uid).'</td>
</tr>';
}
echo '</tbody></table>';
@@ -545,14 +480,13 @@ if($result = $db->db_query($qry))
*
*/
$qry = "SELECT
tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid, tbl_student.matrikelnr, tbl_student.studiengang_kz
tbl_person.vorname, tbl_person.nachname, tbl_prestudent.uid, tbl_prestudent.perskz, tbl_prestudent.studiengang_kz
FROM
public.tbl_student
JOIN public.tbl_prestudent USING(prestudent_id)
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
WHERE
tbl_student.studiengang_kz<1000 AND tbl_student.studiengang_kz>0
AND tbl_student.studiengang_kz::text!=trim(leading '0' from substring(matrikelnr,5,3))";
tbl_prestudent.studiengang_kz<1000 AND tbl_prestudent.studiengang_kz>0
AND tbl_prestudent.studiengang_kz::text!=trim(leading '0' from substring(perskz,5,3))";
if($result = $db->db_query($qry))
{
@@ -594,8 +528,8 @@ if($result = $db->db_query($qry))
<tr>
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td>'.$db->convert_html_chars($row->vorname).'</td>
<td>'.$db->convert_html_chars($row->student_uid).'</td>
<td>'.$db->convert_html_chars($row->matrikelnr).'</td>
<td>'.$db->convert_html_chars($row->uid).'</td>
<td>'.$db->convert_html_chars($row->perskz).'</td>
<td>'.$db->convert_html_chars($row->studiengang_kz).'</td>
</tr>';
}
@@ -608,15 +542,14 @@ if($result = $db->db_query($qry))
*
*/
$qry = "SELECT
tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid
tbl_person.vorname, tbl_person.nachname, tbl_prestudent.uid
FROM
public.tbl_student
JOIN public.tbl_prestudent USING(prestudent_id)
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
WHERE
tbl_student.studiengang_kz<1000 AND tbl_student.studiengang_kz>0
AND EXISTS (SELECT 1 FROM public.tbl_prestudentstatus WHERE status_kurzbz='Absolvent' AND prestudent_id=tbl_student.prestudent_id)
AND NOT EXISTS(SELECT 1 FROM lehre.tbl_abschlusspruefung WHERE prestudent_id=tbl_student.prestudent_id)";
tbl_prestudent.studiengang_kz<1000 AND tbl_prestudent.studiengang_kz>0
AND EXISTS (SELECT 1 FROM public.tbl_prestudentstatus WHERE status_kurzbz='Absolvent' AND prestudent_id=tbl_prestudent.prestudent_id)
AND NOT EXISTS(SELECT 1 FROM lehre.tbl_abschlusspruefung WHERE prestudent_id=tbl_prestudent.prestudent_id)";
if($result = $db->db_query($qry))
{
@@ -656,7 +589,7 @@ if($result = $db->db_query($qry))
<tr>
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td>'.$db->convert_html_chars($row->vorname).'</td>
<td>'.$db->convert_html_chars($row->student_uid).'</td>
<td>'.$db->convert_html_chars($row->uid).'</td>
</tr>';
}
echo '</tbody></table>';
@@ -668,15 +601,14 @@ if($result = $db->db_query($qry))
*
*/
$qry = "SELECT
tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid
tbl_person.vorname, tbl_person.nachname, tbl_prestudent.uid
FROM
public.tbl_student
JOIN public.tbl_prestudent USING(prestudent_id)
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
WHERE
tbl_student.studiengang_kz<1000 AND tbl_student.studiengang_kz>0
AND 1<(SELECT count(*) FROM public.tbl_prestudentstatus WHERE status_kurzbz='Student' AND prestudent_id=tbl_student.prestudent_id)
AND NOT EXISTS(SELECT 1 FROM lehre.tbl_zeugnisnote WHERE student_uid=tbl_student.student_uid)";
tbl_prestudent.studiengang_kz<1000 AND tbl_prestudent.studiengang_kz>0
AND 1<(SELECT count(*) FROM public.tbl_prestudentstatus WHERE status_kurzbz='Student' AND tbl_prestudentstatus.prestudent_id=tbl_prestudent.prestudent_id)
AND NOT EXISTS(SELECT 1 FROM lehre.tbl_zeugnisnote WHERE tbl_zeugnisnote.prestudent_id=tbl_prestudent.prestudent_id)";
if($result = $db->db_query($qry))
{
@@ -716,7 +648,7 @@ if($result = $db->db_query($qry))
<tr>
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td>'.$db->convert_html_chars($row->vorname).'</td>
<td>'.$db->convert_html_chars($row->student_uid).'</td>
<td>'.$db->convert_html_chars($row->uid).'</td>
</tr>';
}
echo '</tbody></table>';