diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 38db5dd11..90fcc4669 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -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)."'"; diff --git a/cis/private/lehre/anwesenheitsliste_bilder.html.php b/cis/private/lehre/anwesenheitsliste_bilder.html.php index abb85613a..cc32643ca 100644 --- a/cis/private/lehre/anwesenheitsliste_bilder.html.php +++ b/cis/private/lehre/anwesenheitsliste_bilder.html.php @@ -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)."'"; diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php index 22e4df6d1..d928bce9d 100755 --- a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php @@ -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; diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index 016acdb3a..bf6057a36 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -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; diff --git a/cis/private/lehre/notenliste.php b/cis/private/lehre/notenliste.php index b008b6c6d..18c9cfa7f 100644 --- a/cis/private/lehre/notenliste.php +++ b/cis/private/lehre/notenliste.php @@ -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"; diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 100fdfbbb..f6d45777b 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -18,7 +18,8 @@ * MA 02110-1301, USA. * * - * Authors: Andreas Österreicher + * Authors: Andreas Österreicher and + * Andreas Moik . * * 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; } diff --git a/content/statistik/notenspiegel.php b/content/statistik/notenspiegel.php index 7f5cfb20f..658c12492 100644 --- a/content/statistik/notenspiegel.php +++ b/content/statistik/notenspiegel.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ /** * 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 "$i$row_student->nachname $row_student->vorname$row_student->matrikelnr"; $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; diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index d50dfd5ba..5d7798cb2 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -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); diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index 680505ffc..a05a9bccc 100755 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -16,9 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . - * Stefan Puraner + * Andreas Oesterreicher , + * Rudolf Hangl , + * Stefan Puraner and + * Andreas Moik . */ require_once(dirname(__FILE__) . '/basis_db.class.php'); require_once(dirname(__FILE__) . '/functions.inc.php'); diff --git a/include/lvregel.class.php b/include/lvregel.class.php index 4e264df5f..991934540 100644 --- a/include/lvregel.class.php +++ b/include/lvregel.class.php @@ -16,6 +16,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Andreas Oesterreicher and + Andreas Moik . */ /** * 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("
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('
Teste Regel '.$regel->lvregel_id.'',2); - $this->debug("
UID:$uid OP:$regel->operator STSEM:$studiensemester_kurzbz RETVAL:".($retvalglobal?'T':'F'),5); + $this->debug("
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('
== Subregel:'.$regel->lvregel_id.' 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 { diff --git a/include/pgsql.class.php b/include/pgsql.class.php index 81c444dfd..bb6a8be09 100644 --- a/include/pgsql.class.php +++ b/include/pgsql.class.php @@ -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; diff --git a/include/tw/anwesenheitsliste.inc.php b/include/tw/anwesenheitsliste.inc.php index 3998d2616..8d7da0ee6 100644 --- a/include/tw/anwesenheitsliste.inc.php +++ b/include/tw/anwesenheitsliste.inc.php @@ -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); diff --git a/include/tw/anwesenheitsliste_bilder.inc.php b/include/tw/anwesenheitsliste_bilder.inc.php index d3681debf..34a6b010d 100644 --- a/include/tw/anwesenheitsliste_bilder.inc.php +++ b/include/tw/anwesenheitsliste_bilder.inc.php @@ -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); diff --git a/include/zeugnisnote.class.php b/include/zeugnisnote.class.php index 31665dc5a..e4962e2c0 100644 --- a/include/zeugnisnote.class.php +++ b/include/zeugnisnote.class.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ /** * 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 diff --git a/rdf/diplomasupplement.xml.php b/rdf/diplomasupplement.xml.php index 10e17e2eb..5fd3eb137 100644 --- a/rdf/diplomasupplement.xml.php +++ b/rdf/diplomasupplement.xml.php @@ -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 ""; - + $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 " Semester $start | $semester_kurzbz"; @@ -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"; - + $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)) diff --git a/rdf/erfolgsnachweis.rdf.php b/rdf/erfolgsnachweis.rdf.php index c5b789e3c..786a039d2 100755 --- a/rdf/erfolgsnachweis.rdf.php +++ b/rdf/erfolgsnachweis.rdf.php @@ -1,311 +1,312 @@ - - */ -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 .= ""; - - 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 "; - $xml .= "\n ".$ausbildungssemester.""; - $xml .= "\n ".$studienjahr.""; - $xml .= "\n ".$student_studienjahr.""; - $xml .= "\n ".$studienordnung->studiengangbezeichnung.""; - $xml .= "\n ".$studienordnung->studiengangbezeichnung_englisch.""; - $xml .= "\n ".$studiengang->typ.""; - $xml .= "\n ".sprintf('%04s', abs($studiengang->studiengang_kz)).""; - $xml .= "\n ".$student->anrede.""; - $xml .= "\n ".$student->vorname.""; - $xml .= "\n ".$student->nachname.""; - $xml .= "\n ".trim($student->titelpre.' '.trim($student->vorname.' '.$student->vornamen).' '.mb_strtoupper($student->nachname).($student->titelpost!=''?', '.$student->titelpost:'')).""; - $gebdatum = date('d.m.Y',strtotime($student->gebdatum)); - $xml .= "\n ".$gebdatum.""; - $xml .= "\n ".$student->matrikelnr.""; - $xml .= "\n ".$stgl.""; - $datum_aktuell = date('d.m.Y'); - $xml .= "\n ".$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.""; - $xml .= "".$ects_absolviert.""; - $xml .= " "; - } - $xml .= ""; - 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 "; - $xml .= "\n "; - $xml .= "\n "; - $xml .= "\n ".$row->lehrveranstaltung_lvnr.""; - $xml .= "\n "; - $xml .= "\n studienplan_lehrveranstaltung_semester."]]>"; - $xml .= "\n ".$note.""; - $xml .= "\n ".$row->note.""; - $xml .= "\n ".($note_arr[$row->note]['positiv']?'Ja':'Nein').""; - $xml .= "\n ".($row->semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1)).""; - $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 ".$ectspunkte.""; - $xml .= "\n ".$row->lv_lehrform_kurzbz.""; - - if(isset($obj['childs'])) - { - foreach($obj['childs'] as $row_childs) - { - $xml.=getLVRow($row_childs); - } - } - - $xml .= "\n "; - } - - return $xml; -} -?> + and + * Andreas Moik . + */ +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 .= ""; + + 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 "; + $xml .= "\n ".$ausbildungssemester.""; + $xml .= "\n ".$studienjahr.""; + $xml .= "\n ".$student_studienjahr.""; + $xml .= "\n ".$studienordnung->studiengangbezeichnung.""; + $xml .= "\n ".$studienordnung->studiengangbezeichnung_englisch.""; + $xml .= "\n ".$studiengang->typ.""; + $xml .= "\n ".sprintf('%04s', abs($studiengang->studiengang_kz)).""; + $xml .= "\n ".$student->anrede.""; + $xml .= "\n ".$student->vorname.""; + $xml .= "\n ".$student->nachname.""; + $xml .= "\n ".trim($student->titelpre.' '.trim($student->vorname.' '.$student->vornamen).' '.mb_strtoupper($student->nachname).($student->titelpost!=''?', '.$student->titelpost:'')).""; + $gebdatum = date('d.m.Y',strtotime($student->gebdatum)); + $xml .= "\n ".$gebdatum.""; + $xml .= "\n ".$student->matrikelnr.""; + $xml .= "\n ".$stgl.""; + $datum_aktuell = date('d.m.Y'); + $xml .= "\n ".$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.""; + $xml .= "".$ects_absolviert.""; + $xml .= " "; + } + $xml .= ""; + 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 "; + $xml .= "\n "; + $xml .= "\n "; + $xml .= "\n ".$row->lehrveranstaltung_lvnr.""; + $xml .= "\n "; + $xml .= "\n studienplan_lehrveranstaltung_semester."]]>"; + $xml .= "\n ".$note.""; + $xml .= "\n ".$row->note.""; + $xml .= "\n ".($note_arr[$row->note]['positiv']?'Ja':'Nein').""; + $xml .= "\n ".($row->semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1)).""; + $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 ".$ectspunkte.""; + $xml .= "\n ".$row->lv_lehrform_kurzbz.""; + + if(isset($obj['childs'])) + { + foreach($obj['childs'] as $row_childs) + { + $xml.=getLVRow($row_childs); + } + } + + $xml .= "\n "; + } + + return $xml; +} +?> diff --git a/rdf/lehrveranstaltungszeugnis.rdf.php b/rdf/lehrveranstaltungszeugnis.rdf.php index c584479c2..f0184f315 100644 --- a/rdf/lehrveranstaltungszeugnis.rdf.php +++ b/rdf/lehrveranstaltungszeugnis.rdf.php @@ -16,9 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl and - * Gerald Raab . + * Andreas Oesterreicher , + * Rudolf Hangl , + * Gerald Raab and + * Andreas Oesterreicher . */ // 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 ".$stgl.""; $datum_aktuell = date('d.m.Y'); $xml .= "\n Wien, am ".$datum_aktuell.""; - - + + $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 .= ""; echo $xml; } -?> \ No newline at end of file +?> diff --git a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php index 9fe9acc72..73d19f5fc 100755 --- a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php +++ b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php @@ -16,9 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl and - * Gerald Raab . + * Andreas Oesterreicher , + * Rudolf Hangl , + * Gerald Raab and + * Andreas Moik . */ // content type setzen header("Content-type: application/xhtml+xml"); @@ -279,10 +280,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $xml .= "\n ".$stgl.""; $datum_aktuell = date('d.m.Y'); $xml .= "\n Wien, am ".$datum_aktuell.""; - - + + $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) { diff --git a/rdf/zertifikat.rdf.php b/rdf/zertifikat.rdf.php index 8ba5baf5b..4b221db72 100755 --- a/rdf/zertifikat.rdf.php +++ b/rdf/zertifikat.rdf.php @@ -16,9 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl and - * Gerald Raab . + * Andreas Oesterreicher , + * Rudolf Hangl , + * Gerald Raab and + * Andreas Moik . */ // 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 ".$stgl.""; $datum_aktuell = date('d.m.Y'); $xml .= "\n Wien, am ".$datum_aktuell.""; - - + + $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 .= ""; echo $xml; } -?> \ No newline at end of file +?> diff --git a/rdf/zeugnisnote.rdf.php b/rdf/zeugnisnote.rdf.php index b262c7fa1..fa5cd23e3 100644 --- a/rdf/zeugnisnote.rdf.php +++ b/rdf/zeugnisnote.rdf.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik */ // header für no cache diff --git a/soap/stip.class.php b/soap/stip.class.php index 648e9a50f..2c4d128ee 100644 --- a/soap/stip.class.php +++ b/soap/stip.class.php @@ -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 . + * Authors: Karl Burkhart and + * Andreas Moik . */ require_once('../config/vilesci.config.inc.php'); diff --git a/system/dbupdate_eine_uid.php b/system/dbupdate_eine_uid.php index 671c230b3..e8fa7a171 100644 --- a/system/dbupdate_eine_uid.php +++ b/system/dbupdate_eine_uid.php @@ -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"), ); diff --git a/system/konsistenzpruefung.php b/system/konsistenzpruefung.php index d1bbb1ffd..02e3bfe42 100644 --- a/system/konsistenzpruefung.php +++ b/system/konsistenzpruefung.php @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Andreas Oesterreicher and - Andreas Moik . + Andreas Moik . */ /* * Prueft die Daten in der Datenbank auf konsistenz und gibt Hinweise @@ -54,7 +54,7 @@ echo ' /************************************************************************************ * 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 '

Inkonsistenter Personenkreislauf tbl_person->tbl_benutzer->tbl_student->tbl_prestudent->tbl_person

'; + echo '

Inkonsistenter Personenkreislauf tbl_person->tbl_benutzer->tbl_prestudent->tbl_person

'; $anzahl = $db->db_num_rows($result); echo ''.$anzahl.' Probleme gefunden'; @@ -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 '

Prestudenten mit Studenten/Absolventen/Diplomanden/Incoming Status aber ohne StudentUID

'; + echo '

Prestudenten mit Studenten/Absolventen/Diplomanden/Incoming Status aber ohne UID

'; $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 '

Studiengangskennzahl von tbl_student ungleich tbl_prestudent

'; - - $anzahl = $db->db_num_rows($result); - - echo ''.$anzahl.' Probleme gefunden'; - - if($anzahl>0) - { - echo '
Anzeigen >>'; - echo ' - - - - - - - - - - - - '; - while($row = $db->db_fetch_object($result)) - { - $error_kritisch++; - echo ' - - - - - - - '; - } - echo ''; - } -} /************************************************************************************** * 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)) '.$db->convert_html_chars($row->nachname).' '.$db->convert_html_chars($row->vorname).' '.$db->convert_html_chars($row->prestudent_id).' - '.$db->convert_html_chars($row->student_uid).' + '.$db->convert_html_chars($row->uid).' '.$db->convert_html_chars($row->laststatus).' '; } @@ -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)) '.$db->convert_html_chars($row->nachname).' '.$db->convert_html_chars($row->vorname).' - '.$db->convert_html_chars($row->student_uid).' + '.$db->convert_html_chars($row->uid).' '; } echo ''; @@ -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)) '.$db->convert_html_chars($row->nachname).' '.$db->convert_html_chars($row->vorname).' - '.$db->convert_html_chars($row->student_uid).' + '.$db->convert_html_chars($row->uid).' '; } echo ''; @@ -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)) '.$db->convert_html_chars($row->nachname).' '.$db->convert_html_chars($row->vorname).' - '.$db->convert_html_chars($row->student_uid).' - '.$db->convert_html_chars($row->matrikelnr).' + '.$db->convert_html_chars($row->uid).' + '.$db->convert_html_chars($row->perskz).' '.$db->convert_html_chars($row->studiengang_kz).' '; } @@ -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)) '.$db->convert_html_chars($row->nachname).' '.$db->convert_html_chars($row->vorname).' - '.$db->convert_html_chars($row->student_uid).' + '.$db->convert_html_chars($row->uid).' '; } echo ''; @@ -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)) '.$db->convert_html_chars($row->nachname).' '.$db->convert_html_chars($row->vorname).' - '.$db->convert_html_chars($row->student_uid).' + '.$db->convert_html_chars($row->uid).' '; } echo '';