From 4c3d0bf5aacce1067277d19834f2989c32ef2a18 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Wed, 1 Jun 2016 14:37:10 +0200 Subject: [PATCH] TODO-tags for non-unique student->prestudent_id --- cis/private/lehre/abgabe_student.php | 4 +- cis/private/lehre/abgabe_student_details.php | 4 +- .../benotungstool/lvgesamtnoteeintragen.php | 8 +- .../benotungstool/nachpruefungeintragen.php | 4 +- cis/private/lehre/notenliste.php | 4 +- .../pruefung/pruefungsbewertung.json.php | 2 +- cis/private/profile/anwesenheit.php | 136 ++-- cis/private/profile/studienplan.php | 6 +- content/anwesenheit.js.php | 110 ++- content/anwesenheit.xul.php | 215 +++--- content/planner.xul.php | 234 +++--- content/student/studentDBDML.php | 29 +- content/student/studentoverlay.js.php | 22 +- content/student/studentprojektarbeit.js.php | 2 +- content/tempus.xul.php | 684 +++++++++--------- include/anwesenheit.class.php | 159 ++-- include/benutzerfunktion.class.php | 5 +- include/lehrstunde.class.php | 2 +- include/lvregel.class.php | 2 +- include/prestudent.class.php | 66 ++ include/studiengang.class.php | 5 +- rdf/anwesenheit.rdf.php | 12 +- rdf/diplomasupplement.xml.php | 26 +- rdf/erfolgsnachweis.rdf.php | 6 +- rdf/learningagreement_outgoing.rdf.php | 2 +- rdf/lehrveranstaltungszeugnis.rdf.php | 2 +- rdf/projektarbeit.rdf.php | 2 +- rdf/student.rdf.php | 2 +- rdf/studienerfolg.rdf.php | 2 +- rdf/zertifikat.rdf.php | 2 +- soap/semesterticket.soap.php | 458 ++++++------ soap/stip.class.php | 2 - soap/student.soap.php | 2 +- vilesci/personen/outgoing_detail.php | 2 +- vilesci/personen/wiederholer.php | 2 +- 35 files changed, 1166 insertions(+), 1059 deletions(-) diff --git a/cis/private/lehre/abgabe_student.php b/cis/private/lehre/abgabe_student.php index 0fbbc2d42..4e3caa9b1 100644 --- a/cis/private/lehre/abgabe_student.php +++ b/cis/private/lehre/abgabe_student.php @@ -48,7 +48,7 @@ if(isset($_GET['uid'])) //Rechte Pruefen $allowed=false; - $student = new student(); + $student = new student(); // TODO EINE if(!$student->load($uid)) die($p->t('global/fehlerBeimErmittelnDerUID')); @@ -90,7 +90,7 @@ $htmlstr1 = ''; $vorname=''; $nachname=''; -if(!$student = new student($uid)) +if(!$student = new student($uid)) // TODO EINE die("Student nicht gefunden"); $sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bnachname, diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index 4899bc6a4..9b6611814 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -113,7 +113,7 @@ $betreuer = $person->titelpre.' '.$person->vorname.' '.$person->nachname.' '.$pe if($uid!=$user) { - $student = new student(); + $student = new student(); // TODO EINE if(!$student->load($uid)) die($p->t('global/userNichtGefunden')); @@ -157,7 +157,7 @@ if($uid!=$user) } else { - $student = new student($uid); + $student = new student($uid); // TODO EINE if($student->prestudent_id!=$projektarbeit_obj->prestudent_id) die('Sie haben keine Berechtigung fuer diese Seite'); diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php index d928bce9d..08e15d2f3 100755 --- a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php @@ -125,7 +125,7 @@ function savenote($db,$lvid, $student_uid, $note, $punkte=null) { if($db->db_num_rows($result)==0) { - $student = new student(); + $student = new student();// TODO EINE $student->load($student_uid); return $p->t('benotungstool/studentIstLvNichtZugeordnet', array($student->nachname, $student->vorname, trim($student->matrikelnr)))."\n"; } @@ -157,7 +157,7 @@ function savenote($db,$lvid, $student_uid, $note, $punkte=null) $student = new student(); - $student->load($student_uid); + $student->load($student_uid); // TODO EINE $lvgesamtnote = new lvgesamtnote(); if (!$lvgesamtnote->load($lvid, $student->prestudent_id, $stsem)) @@ -235,7 +235,7 @@ if (isset($_REQUEST["submit"])) } $punkte=str_replace(',','.', $punkte); //UID ermitteln - $student = new student(); + $student = new student();// TODO EINE? auf prestudent ändern? if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer)) { $response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht',array($matrikelnummer)); @@ -244,7 +244,7 @@ if (isset($_REQUEST["submit"])) // Hole Zeugnisnote wenn schon eine eingetragen ist /* - $student = new student($student_uid); + $student = new student($student_uid);// TODO EINE ändern? if ($zeugnisnote = new zeugnisnote($lvid, $student->prestudent_id, $stsem)) $znote = $zeugnisnote->note; else diff --git a/cis/private/lehre/benotungstool/nachpruefungeintragen.php b/cis/private/lehre/benotungstool/nachpruefungeintragen.php index 9f3fedd6c..50f21d16b 100755 --- a/cis/private/lehre/benotungstool/nachpruefungeintragen.php +++ b/cis/private/lehre/benotungstool/nachpruefungeintragen.php @@ -175,7 +175,7 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) $termin1 = 1; else { - $student = new student($student_uid); + $student = new student($student_uid); // TODO EINE $lvnote = new lvgesamtnote(); if ($lvnote->load($lvid, $student->prestudent_id, $stsem)) { @@ -255,7 +255,7 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) $lvid = $_REQUEST["lvid"]; - $student = new student($student_uid); + $student = new student($student_uid);// TODO EINE $lvgesamtnote = new lvgesamtnote(); if (!$lvgesamtnote->load($lvid, $student->prestudent_id, $stsem)) { diff --git a/cis/private/lehre/notenliste.php b/cis/private/lehre/notenliste.php index 18c9cfa7f..02998bc79 100644 --- a/cis/private/lehre/notenliste.php +++ b/cis/private/lehre/notenliste.php @@ -173,7 +173,7 @@ else else $sqlFilter = ""; - $student = new student($user); + $student = new student($user); // TODO EINE $qry = "SELECT tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_zeugnisnote.note, tbl_zeugnisnote.punkte, @@ -265,7 +265,7 @@ else $tbl .= ''.$datum_obj->formatDatum($row->benotungsdatum,'d.m.Y').''; - $student = new student($user); + $student = new student($user); // TODO EINE $pruefung = new pruefung(); $pruefung->getPruefungen($student->prestudent_id, null,$row->lehrveranstaltung_id,$stsem); diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.json.php b/cis/private/lehre/pruefung/pruefungsbewertung.json.php index ef6724e70..d4af37a84 100755 --- a/cis/private/lehre/pruefung/pruefungsbewertung.json.php +++ b/cis/private/lehre/pruefung/pruefungsbewertung.json.php @@ -233,7 +233,7 @@ function getNoten() */ function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $note, $pruefung_id, $datum, $anmerkung, $pruefungsanmeldung_id, $uid) { - $student = new student($student_uid); + $student = new student($student_uid); // TODO EINE global $p; $pruefungCis = new pruefungCis($pruefung_id); diff --git a/cis/private/profile/anwesenheit.php b/cis/private/profile/anwesenheit.php index 69f359cdf..b2d418ef7 100644 --- a/cis/private/profile/anwesenheit.php +++ b/cis/private/profile/anwesenheit.php @@ -16,7 +16,8 @@ * along with this program. If not, see . * * Authors: Robert Hofer , - * Andreas Oestereicher + * Andreas Oestereicher and + * Andreas Moik . */ /* @@ -29,11 +30,20 @@ require_once('../../../include/functions.inc.php'); require_once('../../../include/anwesenheit.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/studiensemester.class.php'); -require_once('../../../include/student.class.php'); require_once('../../../include/prestudent.class.php'); +require_once('../../../include/benutzer.class.php'); require_once('../../../include/stundenplan.class.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/studiengang.class.php'); + + +function cmp($prestudent1, $prestudent2) +{ + return $prestudent1->prestudent_id > $prestudent2->prestudent_id; +} + + $datum_obj = new datum(); $uid = get_uid(); @@ -57,7 +67,6 @@ if(!$benutzer->load($uid)) $p = new phrasen(getSprache()); $db = new basis_db(); -$student = new student; $stundenplan = new stundenplan('stundenplan'); $anwesenheit = new anwesenheit; @@ -71,8 +80,6 @@ if(!$semester || !array_key_exists($semester, $alle_semester)) end($alle_semester); $semester = key($alle_semester); } - -//$student->get_lv($uid, $semester); ?> @@ -83,7 +90,7 @@ if(!$semester || !array_key_exists($semester, $alle_semester)) - + '.$p->t('anwesenheitsliste/anwesenheit').' - '.$db->convert_html_chars($benutzer->titelpre.' '.$benutzer->vorname.' '.$benutzer->nachname.' '.$benutzer->titelpost).''; @@ -101,69 +108,90 @@ if(!$semester || !array_key_exists($semester, $alle_semester)) '; $anwesenheit = new anwesenheit(); - $anwesenheit->loadAnwesenheitStudiensemester($semester, $uid); - if($anwesenheit->result) - { + $prestudent = new prestudent(); + $prestudent->getPrestudentsFromUid($uid); + usort($prestudent->result, "cmp"); - foreach($anwesenheit->result as $aw) + foreach($prestudent->result as $pre) + { + if(!$pre->statusExists($pre->prestudent_id, $semester)) + continue; + + $studiengang = new studiengang($pre->studiengang_kz); + + $anwesenheit->result = array(); + $anwesenheit->loadAnwesenheitStudiensemester($semester, $pre->prestudent_id); + + + + echo "
"; + echo "

".$studiengang->bezeichnung."

"; + + if($anwesenheit->result) { - if(!$aw->gesamtstunden) - continue; + foreach($anwesenheit->result as $aw) + { + if(!$aw->gesamtstunden) + continue; - $fehlstunden = $aw->nichtanwesend; - $le_erledigt = $aw->erfassteanwesenheit; - $anwesenheit_relativ = $aw->prozent; - - echo ' -
-
- '.$db->convert_html_chars($aw->bezeichnung).' -
-
-
-
- -
-
'.round($anwesenheit_relativ, 1).'% - '.$p->t('anwesenheitsliste/leAbgeschlossen').' ['.$le_erledigt.'/'.$aw->gesamtstunden.']'; + $fehlstunden = $aw->nichtanwesend; + $le_erledigt = $aw->erfassteanwesenheit; + $anwesenheit_relativ = $aw->prozent; - if($fehlstunden) - { - echo ' - >> -
- '; - $anwesenheit_termine = new anwesenheit(); - $anwesenheit_termine->getAnwesenheitLehrveranstaltung($uid, $aw->lehrveranstaltung_id, $semester, false); - foreach($anwesenheit_termine->result as $termin) + echo ' +
+
+ '.$db->convert_html_chars($aw->bezeichnung).' +
+
+
+
+ +
+
'.round($anwesenheit_relativ, 1).'% + '.$p->t('anwesenheitsliste/leAbgeschlossen').' ['.$le_erledigt.'/'.$aw->gesamtstunden.']'; + + if($fehlstunden) { - echo '
- - - '; + echo ' + >> +
+
'.$p->t('global/datum').''.$p->t('anwesenheitsliste/fehlstunden').'
'.$datum_obj->formatDatum($termin->datum,'d.m.Y').''.(float)$termin->einheiten.'
'; + $anwesenheit_termine = new anwesenheit(); + $anwesenheit_termine->getAnwesenheitLehrveranstaltung($uid, $aw->lehrveranstaltung_id, $semester, false); + foreach($anwesenheit_termine->result as $termin) + { + echo ' + + + '; + } + echo ' +
'.$p->t('global/datum').''.$p->t('anwesenheitsliste/fehlstunden').'
'.$datum_obj->formatDatum($termin->datum,'d.m.Y').''.(float)$termin->einheiten.'
+
'; } - echo ' - -
'; - } - echo ' -
-
'; + echo ' + + '; + } } - } - else - { - echo $p->t('anwesenheitsliste/keineLVsGefunden'); + else + { + echo $p->t('anwesenheitsliste/keineLVsGefunden'); + } + echo ""; } ?> diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index cd1bc95e0..1f2c68c8d 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -238,7 +238,7 @@ if(isset($_POST['action']) && $_POST['action']=='anmeldung') $db = new basis_db(); $datum_obj = new datum(); // Student Laden -$student = new student(); +$student = new student(); // TODO EINE $student->load($uid); // ersten Status holen @@ -415,7 +415,7 @@ function drawTree($tree, $depth) $lvregel = new lvregel(); if($lvregel->exists($row_tree->studienplan_lehrveranstaltung_id)) { - $student = new student($uid); + $student = new student($uid); // TODO EINE if($lvregel->isAbgeschlossen($student->prestudent_id, $row_tree->studienplan_lehrveranstaltung_id)) $abgeschlossen=true; else @@ -579,7 +579,7 @@ function drawTree($tree, $depth) } else { - $student = new student($uid); + $student = new student($uid);// TODO EINE if(!$lvregel->isZugangsberechtigt($student->prestudent_id, $row_tree->studienplan_lehrveranstaltung_id, $stsem)) { $regelerfuellt=false; diff --git a/content/anwesenheit.js.php b/content/anwesenheit.js.php index 1ae9d62d7..0ef750a06 100644 --- a/content/anwesenheit.js.php +++ b/content/anwesenheit.js.php @@ -1,56 +1,54 @@ - - */ -require_once('../config/vilesci.config.inc.php'); -?> -// ********** FUNKTIONEN ********** // -var anwesenheitStudentUID=''; - -// **** -// * Laedt die Trees -// **** -function loadanwesenheit(student_uid,lehrveranstaltung_id) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - anwesenheitStudentUID=student_uid; - - //anwesenheit laden - url = "rdf/anwesenheit.rdf.php?ts="+gettimestamp(); - - if(student_uid!='') - url=url+"&student_uid="+student_uid; - if(lehrveranstaltung_id!='') - url=url+"&lehrveranstaltung_id="+lehrveranstaltung_id; - - var treeanwesenheit=document.getElementById('anwesenheit-tree'); - - //Alte DS entfernen - var oldDatasources = treeanwesenheit.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - treeanwesenheit.database.RemoveDataSource(oldDatasources.getNext()); - } - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - var TerminTreeDatasource = rdfService.GetDataSource(url); - TerminTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - treeanwesenheit.database.AddDataSource(TerminTreeDatasource); - -} + and + * Andreas Moik . + */ +require_once('../config/vilesci.config.inc.php'); +?> +// ********** FUNKTIONEN ********** // + +// **** +// * Laedt die Trees +// **** +function loadanwesenheit(prestudent_id,lehrveranstaltung_id) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + //anwesenheit laden + url = "rdf/anwesenheit.rdf.php?ts="+gettimestamp(); +alert(prestudent_id); // TODO EINE + if(parseInt(prestudent_id) !== false) + url=url+"&prestudent_id="+prestudent_id; + if(lehrveranstaltung_id!='') + url=url+"&lehrveranstaltung_id="+lehrveranstaltung_id; + + var treeanwesenheit=document.getElementById('anwesenheit-tree'); + + //Alte DS entfernen + var oldDatasources = treeanwesenheit.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + treeanwesenheit.database.RemoveDataSource(oldDatasources.getNext()); + } + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + var TerminTreeDatasource = rdfService.GetDataSource(url); + TerminTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + treeanwesenheit.database.AddDataSource(TerminTreeDatasource); + +} diff --git a/content/anwesenheit.xul.php b/content/anwesenheit.xul.php index 7fc6f177e..e7495e081 100644 --- a/content/anwesenheit.xul.php +++ b/content/anwesenheit.xul.php @@ -1,107 +1,108 @@ - - */ -header("Cache-Control: no-cache"); -header("Cache-Control: post-check=0, pre-check=0",false); -header("Expires Mon, 26 Jul 1997 05:00:00 GMT"); -header("Pragma: no-cache"); -header("Content-type: application/vnd.mozilla.xul+xml"); - -require_once('../config/vilesci.config.inc.php'); - -echo ''."\n"; - -echo ''; -echo ''; - -$student_uid = filter_input(INPUT_GET,'student_uid'); -$lehrveranstaltung_id= filter_input(INPUT_GET,'lehrveranstaltung_id'); - -?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - isBerechtigt('system/developer')) - echo ''; - ?> - - - - - - - +getBerechtigungen($uid); + +if(!$rechte->isBerechtigt('basis/planner')) + die('Sie haben keine Berechtigung fuer diese Seite'); + +header("Content-type: application/vnd.mozilla.xul+xml"); +echo ''; +/*echo '';*/ +echo ''; +echo ''; +echo ''; +echo ''; +?> + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + isBerechtigt('system/developer')) + echo ''; + ?> + + + + + + + diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 317d7c088..2e51e859a 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -158,23 +158,23 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) /** * Wenn die Anwesenheit und einen bestimmten Prozentsatz faellt, wird ein Pruefungstermin abgezogen * @param $studiensemester_kurzbz - * @param $student_uid + * @param $prestudent_id * @param $lehrveranstaltung_id * @param $note * @return null, error wird direkt in globale Variable geschrieben */ -function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $note) +function NotePruefungAnlegen($studiensemester_kurzbz, $prestudent_id, $lehrveranstaltung_id, $note) { global $return, $error, $errormsg; $db = new basis_db(); $anwesenheit = new anwesenheit(); - $anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id); + $anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz, $prestudent_id, $lehrveranstaltung_id); // Lehreinheit ermitteln $error = false; $qry = "SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung " - . "WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id)." " + . "WHERE prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)." AND lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id)." " . "ORDER BY lehreinheit_id ASC " . "LIMIT 1"; @@ -209,9 +209,10 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst $stsem_obj = new studiensemester(); $stsem_obj->load($studiensemester_kurzbz); + $prestudent = new prestudent($prestudent_id); // In Benutzerfunktion nachsehen ob eine Anwesenheitsbefreiung eingetragen ist $benutzerfunktion = new benutzerfunktion(); - $benutzerfunktion->getBenutzerFunktionByUid($student_uid, 'awbefreit', $stsem_obj->start, $stsem_obj->ende); + $benutzerfunktion->getBenutzerFunktionByUid($prestudent->uid, 'awbefreit', $stsem_obj->start, $stsem_obj->ende); $anwesenheitsbefreit=false; if(count($benutzerfunktion->result)>0) @@ -398,7 +399,7 @@ if(!$error) if(count($prestudentobj->result)>0) { - $tmpStudent = new student($_POST['uid']); + $tmpStudent = new student($_POST['uid']); // TODO EINE if($student_lvb->studentlehrverband_exists($tmpStudent->prestudent_id, $semester_aktuell)) $student_lvb->new = false; @@ -877,7 +878,7 @@ if(!$error) if($_POST['status_kurzbz']=='Student') { $student = new student(); - $uid = $student->getUid($prestudent_id); + $uid = $student->getUid($prestudent_id);//TODO EINE $student->load($uid); $student->studiensemester_kurzbz=$semester_aktuell; $student->semester = $_POST['semester']; @@ -900,7 +901,7 @@ if(!$error) if($_POST['status_kurzbz']=='Abbrecher' || $_POST['status_kurzbz']=='Absolvent') { $student = new student(); - $uid = $student->getUid($prestudent_id); + $uid = $student->getUid($prestudent_id);//TODO EINE $benutzer = new benutzer(); if($benutzer->load($uid)) @@ -2744,7 +2745,7 @@ if(!$error) if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $return == true && $noten->new == true) { - NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $noten->note); + NotePruefungAnlegen($studiensemester_kurzbz, $prestudent_id, $lehrveranstaltung_id, $noten->note); } } } @@ -2790,7 +2791,7 @@ if(!$error) $errormsg = 'Fehler beim Ermitteln der LVA'; } - $qry = "SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'.$i]); + $qry = "SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id_'.$i]); if($result = $db->db_query($qry)) { if($row = $db->db_fetch_object($result)) @@ -2821,9 +2822,9 @@ if(!$error) } else { - if($lvgesamtnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['prestudent_id'.$i], $_POST['studiensemester_kurzbz_'.$i])) + if($lvgesamtnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['prestudent_id_'.$i], $_POST['studiensemester_kurzbz_'.$i])) { - if($zeugnisnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['prestudent_id'.$i], $_POST['studiensemester_kurzbz_'.$i])) + if($zeugnisnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['prestudent_id_'.$i], $_POST['studiensemester_kurzbz_'.$i])) { $zeugnisnote->new = false; $zeugnisnote->updateamum = date('Y-m-d H:i:s'); @@ -2841,7 +2842,7 @@ if(!$error) $zeugnisnote->insertamum = date('Y-m-d H:i:s'); $zeugnisnote->insertvon = $user; $zeugnisnote->lehrveranstaltung_id = $_POST['lehrveranstaltung_id_'.$i]; - $zeugnisnote->prestudent_id = $_POST['prestudent_id'.$i]; + $zeugnisnote->prestudent_id = $_POST['prestudent_id_'.$i]; $zeugnisnote->studiensemester_kurzbz = $_POST['studiensemester_kurzbz_'.$i]; } @@ -3018,7 +3019,7 @@ if(!$error) { if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true) { - NotePruefungAnlegen($semester_aktuell, $uid, $_POST['lehrveranstaltung_id'], $zeugnisnote->note); + NotePruefungAnlegen($semester_aktuell, $prestudent_id, $_POST['lehrveranstaltung_id'], $zeugnisnote->note); } } } diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 443065ebe..6cc30747a 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -740,7 +740,7 @@ function StudentDetailSave() req.add('do','update'); } - if(!prestudent_id || !parseInt(prestudent_id)) + if(parseInt(prestudent_id) !== false) req.add('type', 'saveperson'); else req.add('type', 'savestudent'); @@ -1377,7 +1377,7 @@ function StudentAuswahl() bisiotree.builder.addListener(StudentIOTreeListener); } - if(parseInt(prestudent_id)) + if(parseInt(prestudent_id) !== false) { // *** ZeugnisNoten *** notentree = document.getElementById('student-noten-tree'); @@ -1446,7 +1446,7 @@ function StudentAuswahl() // ***** Betriebsmittel ***** document.getElementById('student-betriebsmittel').setAttribute('src','betriebsmitteloverlay.xul.php?person_id='+person_id+'&uid='+uid); - if(prestudent_id && parseInt(prestudent_id)) + if(parseInt(prestudent_id) !== false) { // ***** Pruefungen ***** pruefungtree = document.getElementById('student-pruefung-tree'); @@ -1523,7 +1523,7 @@ function StudentAuswahl() anrechnungtree.builder.addListener(StudentAnrechnungTreeListener); } - if(parseInt(prestudent_id)) + if(parseInt(prestudent_id) !== false) { // ****** Abschlusspruefung ******** // StudentAbschlusspruefungDetailDisableFields(true); @@ -1549,7 +1549,7 @@ function StudentAuswahl() } } - if(uid!='') + if(uid!='' && parseInt(prestudent_id) !== false) { // ******* FUNKTIONEN ********* // if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-funktionen')) @@ -1566,8 +1566,8 @@ function StudentAuswahl() // ***** Anwesenheit ***** if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-anwesenheit')) - { - document.getElementById('student-anwesenheit').setAttribute('src','anwesenheit.xul.php?student_uid='+uid); + {alert(prestudent_id); // TODO EINE + document.getElementById('student-anwesenheit').setAttribute('src','anwesenheit.xul.php?prestudent_id='+prestudent_id); } } @@ -3673,7 +3673,7 @@ function StudentNotenAuswahl() //Falls einer der Parameter leer ist wird abgebrochen da sonst ein sehr grosses rdf geladen wird //Sollte eigentlich nie eintreffen, tut es aber trotzdem - if(lehrveranstaltung_id=='' || !parseInt(prestudent_id) || studiensemester_kurzbz=='') + if(lehrveranstaltung_id=='' || parseInt(prestudent_id) == false || studiensemester_kurzbz=='') { debug('unerwarteter Fehler in StudentNotenAuswahl() in studentoverlay.js.php'); return false; @@ -5418,9 +5418,9 @@ function StudentAnwesenheitIFrameLoad() { var uid = document.getElementById('student-detail-textbox-uid').value; var prestudent_id = document.getElementById('student-detail-textbox-prestudent_id').value; - if(uid!='') - { - url = 'anwesenheit.xul.php?student_uid='+uid+'&ts='+gettimestamp(); + if(parseInt(prestudent_id) !== false) + {alert(prestudent_id); // TODO EINE + url = 'anwesenheit.xul.php?prestudent_id='+prestudent_id+'&ts='+gettimestamp(); document.getElementById('student-anwesenheit').setAttribute('src',url); } } diff --git a/content/student/studentprojektarbeit.js.php b/content/student/studentprojektarbeit.js.php index 5a0ffcc47..3fa94d802 100644 --- a/content/student/studentprojektarbeit.js.php +++ b/content/student/studentprojektarbeit.js.php @@ -489,7 +489,7 @@ function StudentProjektarbeitSpeichern() prestudent_id =document.getElementById('student-detail-textbox-prestudent_id').value; studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; - if(!parseInt(prestudent_id)) + if(parseInt(prestudent_id) !== false) { alert('prestudent_id dieser Person konnte nicht ermittelt werden'); return false; diff --git a/content/tempus.xul.php b/content/tempus.xul.php index 0616ba292..a9ba1585d 100644 --- a/content/tempus.xul.php +++ b/content/tempus.xul.php @@ -1,342 +1,342 @@ -getBerechtigungen($uid); - -if(!$rechte->isBerechtigt('basis/tempus')) - die('Sie haben keine Berechtigung fuer diese Seite'); - -header("Content-type: application/vnd.mozilla.xul+xml"); -echo ''; -/*echo '';*/ -echo ''; -echo ''; -echo ''; -echo ''; -?> - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - getAll(); - foreach ($stsemobj->studiensemester as $stsem) - { - echo " - "; - } - ?> - - - - isBerechtigt('lv-plan')) - { - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - isBerechtigt('system/developer')) - echo ''; - ?> - - - oncommand="updateignorekollision()"/> - - - - - - - - +getBerechtigungen($uid); + +if(!$rechte->isBerechtigt('basis/tempus')) + die('Sie haben keine Berechtigung fuer diese Seite'); + +header("Content-type: application/vnd.mozilla.xul+xml"); +echo ''; +/*echo '';*/ +echo ''; +echo ''; +echo ''; +echo ''; +?> + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + getAll(); + foreach ($stsemobj->studiensemester as $stsem) + { + echo " + "; + } + ?> + + + + isBerechtigt('lv-plan')) + { + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + isBerechtigt('system/developer')) + echo ''; + ?> + + + oncommand="updateignorekollision()"/> + + + + + + + + diff --git a/include/anwesenheit.class.php b/include/anwesenheit.class.php index 4647a67bd..900fba3f5 100644 --- a/include/anwesenheit.class.php +++ b/include/anwesenheit.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: Andreas Oesterreicher + * Authors: Andreas Oesterreicher and + * Andreas Moik . */ /** * Klasse zur Verwaltung der Anwesenheiten der Studierenden @@ -469,92 +470,100 @@ class anwesenheit extends basis_db /** * Laedt die Anwesenheiten in Prozent von Studierenden bei Lehrveranstaltungen - * Wenn die StudentUID uebergeben wird, werden alle Lehrveranstaltungen zu denen der Studierenden zugeteilt ist inkl Prozent der Anwesenheit + * Wenn die Prestudent_id uebergeben wird, werden alle Lehrveranstaltungen zu denen der Studierenden zugeteilt ist inkl Prozent der Anwesenheit * Wenn die LehrveranstaltungID uebergeben wird, werden alle Studierenden geholt die zugeteilt sind inkl Prozent der Anwesenheit * Es werden pro Student die Anwesenheiten berechnet aufgrund der Lehreinheit zu der sie zugeordnet sind * @param $studiensemester_kurzbz - * @param $student_uid + * @param $prestudent_id * @param $lehrveranstaltung_id * @return boolean true wenn ok, false im fehlerfall */ - public function loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid=null, $lehrveranstaltung_id=null) + public function loadAnwesenheitStudiensemester($studiensemester_kurzbz, $prestudent_id=null, $lehrveranstaltung_id=null) { - $qry = "SELECT lehrveranstaltung_id, bezeichnung, vorname, nachname, uid, sum(anwesend) as anwesend, sum(nichtanwesend) as nichtanwesend, sum(gesamtstunden) as gesamtstunden FROM ( - SELECT - lehrveranstaltung_id, bezeichnung, vorname, nachname, uid, - ( - SELECT - sum(einheiten) - FROM - campus.tbl_anwesenheit - WHERE - lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id - AND uid=vw_student_lehrveranstaltung.uid - AND anwesend - ) as anwesend, - ( - SELECT - sum(einheiten) - FROM - campus.tbl_anwesenheit - WHERE - lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id - AND uid=vw_student_lehrveranstaltung.uid - AND NOT anwesend - ) as nichtanwesend, - ( - SELECT count(*) anzahl FROM - (SELECT datum, stunde FROM campus.vw_stundenplan - WHERE lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id - AND (vw_stundenplan.titel not like '%Nebenprüfung%' OR vw_stundenplan.titel is null) GROUP BY datum, stunde) as a - ) as gesamtstunden - FROM - campus.vw_student_lehrveranstaltung - JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_person USING(person_id) - WHERE - studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); - - if(!is_null($lehrveranstaltung_id)) - $qry.=" AND lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id); - if(!is_null($student_uid)) - $qry.=" AND uid=".$this->db_add_param($student_uid); - - $qry.=") as b GROUP BY lehrveranstaltung_id, bezeichnung, vorname, nachname, uid"; - - if($lehrveranstaltung_id!='') - $qry.=" order by nachname, vorname "; - elseif($student_uid!='') - $qry.=" order by bezeichnung"; - - if($result = $this->db_query($qry)) + if(!is_null($prestudent_id) && !is_numeric($prestudent_id)) { - while($row = $this->db_fetch_object($result)) - { - $obj = new stdClass(); - $obj->bezeichnung = $row->bezeichnung; - $obj->anwesend = $row->anwesend; - $obj->nichtanwesend = $row->nichtanwesend; - $obj->gesamtstunden = $row->gesamtstunden; - - $obj->erfassteanwesenheit = $row->anwesend+$row->nichtanwesend; - if($row->gesamtstunden=='' || $obj->erfassteanwesenheit=='') - $obj->prozent=100; - else - $obj->prozent = number_format(100-(100/$obj->gesamtstunden*$row->nichtanwesend),2); - $obj->vorname = $row->vorname; - $obj->nachname = $row->nachname; - $obj->uid = $row->uid; - $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $this->result[] = $obj; - } - return true; + $this->errormsg = "Prestudent_id ist ungueltig"; } else { - $this->errormsg='Fehler beim Laden der Daten'; - return false; + $qry = "SELECT lehrveranstaltung_id, bezeichnung, vorname, nachname, uid, prestudent_id, sum(anwesend) as anwesend, sum(nichtanwesend) as nichtanwesend, sum(gesamtstunden) as gesamtstunden FROM ( + SELECT + lehrveranstaltung_id, bezeichnung, vorname, nachname, uid, prestudent_id, + ( + SELECT + sum(einheiten) + FROM + campus.tbl_anwesenheit + WHERE + lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id + AND uid=vw_student_lehrveranstaltung.uid + AND anwesend + ) as anwesend, + ( + SELECT + sum(einheiten) + FROM + campus.tbl_anwesenheit + WHERE + lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id + AND uid=vw_student_lehrveranstaltung.uid + AND NOT anwesend + ) as nichtanwesend, + ( + SELECT count(*) anzahl FROM + (SELECT datum, stunde FROM campus.vw_stundenplan + WHERE lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id + AND (vw_stundenplan.titel not like '%Nebenprüfung%' OR vw_stundenplan.titel is null) GROUP BY datum, stunde) as a + ) as gesamtstunden + FROM + campus.vw_student_lehrveranstaltung + JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_person USING(person_id) + WHERE + studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); + + if(!is_null($lehrveranstaltung_id)) + $qry.=" AND lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id); + if(!is_null($prestudent_id)) + $qry.=" AND prestudent_id=".$this->db_add_param($prestudent_id); + + $qry.=") as b GROUP BY lehrveranstaltung_id, bezeichnung, vorname, nachname, prestudent_id, uid"; + + if($lehrveranstaltung_id!='') + $qry.=" order by nachname, vorname "; + elseif(is_numeric($prestudent_id)) + $qry.=" order by bezeichnung"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + $obj->bezeichnung = $row->bezeichnung; + $obj->anwesend = $row->anwesend; + $obj->nichtanwesend = $row->nichtanwesend; + $obj->gesamtstunden = $row->gesamtstunden; + + $obj->erfassteanwesenheit = $row->anwesend+$row->nichtanwesend; + if($row->gesamtstunden=='' || $obj->erfassteanwesenheit=='') + $obj->prozent=100; + else + $obj->prozent = number_format(100-(100/$obj->gesamtstunden*$row->nichtanwesend),2); + $obj->vorname = $row->vorname; + $obj->nachname = $row->nachname; + $obj->uid = $row->uid; + $obj->prestudent_id = $row->prestudent_id; + $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg='Fehler beim Laden der Daten'; + } } + return false; } /** diff --git a/include/benutzerfunktion.class.php b/include/benutzerfunktion.class.php index 9a08a1b0b..ed90708ad 100644 --- a/include/benutzerfunktion.class.php +++ b/include/benutzerfunktion.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 benutzerfunktion (FAS-Online) diff --git a/include/lehrstunde.class.php b/include/lehrstunde.class.php index 343db078a..dad1208c0 100644 --- a/include/lehrstunde.class.php +++ b/include/lehrstunde.class.php @@ -316,7 +316,7 @@ class lehrstunde extends basis_db if(!isset($this->ssnext)) $this->ssnext = $this->ss; - if(!$student = new student($uid)) + if(!$student = new student($uid)) // TODO EINE $this->errormsg = $student->errormsg; diff --git a/include/lvregel.class.php b/include/lvregel.class.php index 991934540..f3f75c837 100644 --- a/include/lvregel.class.php +++ b/include/lvregel.class.php @@ -592,7 +592,7 @@ class lvregel extends basis_db // Ausbildungssemester wird nur beim 1. durchlauf ermittelt if(!isset($this->cache[$prestudent_id]) && !isset($this->cache[$prestudent_id][$studiensemester_kurzbz])) { - $student = new student($prestudent_id); + $student = new student($prestudent_id); // TODO EINE // Ausbildungssemester aus dem Status holen $prestudent = new prestudent(); diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 96702c9b2..17839968e 100755 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -1868,6 +1868,72 @@ class prestudent extends person } } + + + /** + * Laden aller Prestudenten zu einer UID + * @return true wenn erfolgreich, false im Fehlerfall + */ + public function getPrestudentsFromUid($uid) + { + if(!isset($uid) || $uid == "") + { + $this->errormsg = "Diese UID ist ungueltig"; + return false; + } + + $qry='SELECT prestudent_id FROM public.tbl_prestudent WHERE uid='.$this->db_add_param($uid); + + + if(!$this->db_query($qry)) + { + $this->errormsg = 'Fehler beim Laden der Prestudenten'; + return false; + } + + while($row = $this->db_fetch_object()) + { + $ps=new prestudent($row->prestudent_id); + $this->result[]=$ps; + } + return true; + } + + public function statusExists($prestudent_id, $studiensemester_kurzbz, $status_kurzbz = null) + { + if(!isset($studiensemester_kurzbz) && $studiensemester_kurzbz == "") + { + $this->errormsg = "studiensemester_kurzbz ist ungueltig"; + return false; + } + + $qry = "SELECT status_kurzbz FROM tbl_prestudentstatus + WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)." + AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); + + if(isset($status_kurzbz)) + $qry .= " AND status_kurzbz=".$this->db_add_param($status_kurzbz); + + if($res = $this->db_query($qry)) + { + if($row = $this->db_num_rows($res) > 0) + { + return true; + } + else + { + $this->errormsg = "Es wurde kein Status gefunden"; + return false; + } + } + + $this->errormsg = "Fehler bei der Datenabfrage"; + return false; + } + + + + /** * Laedt die Rolle * diff --git a/include/studiengang.class.php b/include/studiengang.class.php index b5e4b8650..7682aa089 100755 --- a/include/studiengang.class.php +++ b/include/studiengang.class.php @@ -17,8 +17,9 @@ * * Authors: Christian Paminger , * Andreas Oesterreicher , - * Rudolf Hangl and - * Gerald Raab . + * Rudolf Hangl , + * Gerald Raab and + * Andreas Moik . */ require_once(dirname(__FILE__).'/basis_db.class.php'); diff --git a/rdf/anwesenheit.rdf.php b/rdf/anwesenheit.rdf.php index 58818c518..d572475e1 100644 --- a/rdf/anwesenheit.rdf.php +++ b/rdf/anwesenheit.rdf.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: Andreas Oesterreicher + * Authors: Andreas Oesterreicher and + * Andreas Moik . */ require_once('../config/vilesci.config.inc.php'); require_once('../include/rdf.class.php'); @@ -42,7 +43,7 @@ $datum_obj = new datum(); $oRdf = new rdf('ANWESENHEIT','http://www.technikum-wien.at/anwesenheit'); -$student_uid = filter_input(INPUT_GET,'student_uid'); +$prestudent_id = filter_input(INPUT_GET,'prestudent_id'); $lehrveranstaltung_id = filter_input(INPUT_GET,'lehrveranstaltung_id'); $studiensemester_kurzbz = filter_input(INPUT_GET,'studiensemester_kurzbz'); if($studiensemester_kurzbz=='') @@ -52,10 +53,13 @@ $oRdf->sendHeader(); $db = new basis_db(); $anwesenheit = new anwesenheit(); -if($student_uid!='') - $anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid); +if(is_numeric($prestudent_id)) + $anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz, $prestudent_id); elseif($lehrveranstaltung_id!='') +{ $anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz,null,$lehrveranstaltung_id); + var_dump("TODO EINE");// TODO EINE TOTEST! +} $i=0; if(isset($anwesenheit->result) && is_array($anwesenheit->result)) diff --git a/rdf/diplomasupplement.xml.php b/rdf/diplomasupplement.xml.php index 5fd3eb137..92ccbafac 100644 --- a/rdf/diplomasupplement.xml.php +++ b/rdf/diplomasupplement.xml.php @@ -291,7 +291,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } - if(!$student = new student($uid_arr[$i])) + if(!$student = new student($uid_arr[$i])) // TODO EINE die("Student nicht gefunden"); $akadgrad_id=''; @@ -330,7 +330,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $praktikum = false; $auslandssemester = false; - if(!$student = new student($uid_arr[$i])) + if(!$student = new student($uid_arr[$i])) // TODO EINE die($student->errormsg); $qry = "SELECT projektarbeit_id FROM lehre.tbl_projektarbeit WHERE prestudent_id=".$db->db_add_param($student->prestudent_id)." AND (projekttyp_kurzbz='Praxis' OR projekttyp_kurzbz='Praktikum')"; @@ -344,7 +344,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } - if(!$std = new student($uid_arr[$i])) + if(!$std = new student($uid_arr[$i])) // TODO EINE die("Student nicht gefunden"); $qry = "SELECT von, bis FROM bis.tbl_bisio WHERE prestudent_id=".$db->db_add_param($std->prestudent_id); @@ -383,7 +383,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo " $stgl"; - if(!$student = new student($uid_arr[$i])) + if(!$student = new student($uid_arr[$i])) // TODO EINE die("Student nicht gefunden!"); $abschlussbeurteilung=''; @@ -420,7 +420,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") /* * Hole Notendurchschnitt vom Jahr nach dem letzten Status und 2 Jahre davor, */ - if(!$student = new student($uid_arr[$i])) + if(!$student = new student($uid_arr[$i])) // TODO EINE die("Student nicht gefunden"); $prestudent = new prestudent(); @@ -520,7 +520,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo " ".sprintf("%01.1f",($noteArrayPrev[7]/$noten_anzahl*100)).""; echo " ".sprintf("%01.1f",($noteArrayPrev[12]/$noten_anzahl*100)).""; - if(!$student = new student($uid_arr[$i])) + if(!$student = new student($uid_arr[$i])) // TODO EINE die("Student nicht gefunden"); //Projektarbeiten @@ -555,7 +555,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $semester_ects = 0; //$thesis_beschreibung = ''; echo ""; - $student = new student($uid_arr[$i]); + $student = new student($uid_arr[$i]); // TODO EINE // alle semester für das ausbildungssemester holen // Semester wo Unterbrecher nicht holen @@ -595,7 +595,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $semester_kurzbz = 'Winter Semester '.$year.'/'.$helpyear; } - $sqlStudent = new student($uid_arr[$i]); + $sqlStudent = new student($uid_arr[$i]); // TODO EINE echo " Semester $start | $semester_kurzbz"; @@ -747,7 +747,7 @@ 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]); + $student = new student($uid_arr[$i]); // TODO EINE // hole benotungsdatum von aktueller LV $qry_benotung = "SELECT benotungsdatum FROM lehre.tbl_zeugnisnote WHERE lehrveranstaltung_id = ".$db->db_add_param($row_stud->lehrveranstaltung_id)." @@ -768,7 +768,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $bezeichnung_englisch = $row_stud->bezeichnung_english; $bezeichnung = $row_stud->bezeichnung; - if(!$student = new student($uid_arr[$i])) + if(!$student = new student($uid_arr[$i])) // TODO EINE die("Student nicht gefunden"); // Check ob Lehrveranstaltung ein Praktikum mit eingetragener Firma besitzt @@ -794,7 +794,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } } - if(!$student = new student($uid_arr[$i])) + if(!$student = new student($uid_arr[$i])) // TODO EINE die("Student nicht gefunden"); // Check ob an Lehrveranstaltung eine Thesis hängt @@ -876,7 +876,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") '; } - if(!$student = new student($uid_arr[$i])) + if(!$student = new student($uid_arr[$i])) // TODO EINE die("Student nicht gefunden"); // Ist er Outgoing in diesem semester @@ -896,7 +896,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $note_outgoing = 'ar'; $benotungsdatum_outgoing = ''; $lehrform_kurzbz_outgoing = ''; - $student = new student($uid_arr[$i]); + $student = new student($uid_arr[$i]); // TODO EINE $qry_outgoing_note = "SELECT anmerkung, benotungsdatum, lehrform_kurzbz FROM lehre.tbl_zeugnisnote diff --git a/rdf/erfolgsnachweis.rdf.php b/rdf/erfolgsnachweis.rdf.php index 786a039d2..92a1b4ac7 100755 --- a/rdf/erfolgsnachweis.rdf.php +++ b/rdf/erfolgsnachweis.rdf.php @@ -76,10 +76,10 @@ $lehrveranstaltungen = array(); $xml = ""; $xml .= ""; - + foreach($uid_arr as $uid) - { - $student = new student(); + { + $student = new student();// TODO EINE in der query weiter unten sollte prestudent_id nicht eindeutig sein! if(!$student->load($uid)) die($student->errormsg); diff --git a/rdf/learningagreement_outgoing.rdf.php b/rdf/learningagreement_outgoing.rdf.php index ea1586acb..bda8cd592 100755 --- a/rdf/learningagreement_outgoing.rdf.php +++ b/rdf/learningagreement_outgoing.rdf.php @@ -59,7 +59,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $preoutgoingFirma = new preoutgoing(); $preoutgoingFirma->loadAuswahl($preoutgoing_id); $preoutgoing_firma = $preoutgoingFirma->firma_id; - $prestudent->getLastStatus($student->prestudent_id); + $prestudent->getLastStatus($student->prestudent_id); // TODO EINE NICHT EINDEUTIG $firma = new firma(); $nation = new nation(); diff --git a/rdf/lehrveranstaltungszeugnis.rdf.php b/rdf/lehrveranstaltungszeugnis.rdf.php index f0184f315..08ea4511e 100644 --- a/rdf/lehrveranstaltungszeugnis.rdf.php +++ b/rdf/lehrveranstaltungszeugnis.rdf.php @@ -233,7 +233,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $datum_aktuell = date('d.m.Y'); $xml .= "\n Wien, am ".$datum_aktuell.""; - $student = new student($uid_arr[$i]); + $student = new student($uid_arr[$i]); // TODO EINE $obj = new zeugnisnote(); $obj->load($lehrveranstaltung_id, $student->prestudent_id, $studiensemester_kurzbz); diff --git a/rdf/projektarbeit.rdf.php b/rdf/projektarbeit.rdf.php index c887d51cd..68c281122 100644 --- a/rdf/projektarbeit.rdf.php +++ b/rdf/projektarbeit.rdf.php @@ -53,7 +53,7 @@ $projektarbeit = new projektarbeit(); if(isset($_GET['student_uid'])) { - $student = new student($_GET['student_uid']); + $student = new student($_GET['student_uid']); // TODO EINE $projektarbeit->getProjektarbeit($student->prestudent_id); diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php index 547c6236e..97758b4b4 100644 --- a/rdf/student.rdf.php +++ b/rdf/student.rdf.php @@ -403,7 +403,7 @@ if($xmlformat=='rdf') if(isset($uid)) { - $student=new student(); + $student=new student(); // TODO EINE eindeutig? $student->load($uid, $studiensemester_kurzbz); $prestd = new prestudent(); diff --git a/rdf/studienerfolg.rdf.php b/rdf/studienerfolg.rdf.php index 048603062..0589f8761 100644 --- a/rdf/studienerfolg.rdf.php +++ b/rdf/studienerfolg.rdf.php @@ -70,7 +70,7 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz) $studiensemester = new studiensemester(); $studiensemester_aktuell = $studiensemester->getNearest(); - $student = new student(); + $student = new student(); // TODO EINE $student->load($uid); $prestudentstatus = new prestudent(); $prestudentstatus->getLastStatus($student->prestudent_id,'','Student'); diff --git a/rdf/zertifikat.rdf.php b/rdf/zertifikat.rdf.php index a0d2dbc2a..5791753da 100755 --- a/rdf/zertifikat.rdf.php +++ b/rdf/zertifikat.rdf.php @@ -218,7 +218,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $datum_aktuell = date('d.m.Y'); $xml .= "\n Wien, am ".$datum_aktuell.""; - $student = new student($uid_arr[$i]); + $student = new student($uid_arr[$i]);// TODO EINE $obj = new zeugnisnote(); $obj->load($lehrveranstaltung_id, $student->prestudent_id, $studiensemester_kurzbz); diff --git a/soap/semesterticket.soap.php b/soap/semesterticket.soap.php index 2ef02c219..d3fe2e766 100644 --- a/soap/semesterticket.soap.php +++ b/soap/semesterticket.soap.php @@ -1,229 +1,229 @@ -. - */ - -require_once('../config/vilesci.config.inc.php'); -require_once('../include/student.class.php'); -require_once('../include/benutzer.class.php'); -require_once('../include/adresse.class.php'); -require_once('../include/person.class.php'); -require_once('../include/webservicelog.class.php'); - -ini_set("soap.wsdl_cache_enabled", "0"); - -$SOAPServer = new SoapServer(APP_ROOT."/soap/semesterticket.wsdl.php?".microtime()); -$SOAPServer->addFunction("verifyData"); -$SOAPServer->handle(); - -$fehler = ''; - - -/** - * - * Nimmt Anfrage entgegen und überprüft ob Student auch wirklich Student ist (anhand Matrikelnummer) - * @param $parameters - */ -function verifyData($parameters) -{ - global $fehler; - class foo{}; - - $obj = new foo(); - - if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - - // Eintrag in der LogTabelle anlegen - $log = new webservicelog(); - $log->request_data = file_get_contents('php://input'); - $log->webservicetyp_kurzbz = 'wienerlinien'; - $log->request_id = $parameters->token; - $log->beschreibung = "Semesterticketanfrage"; - $log->save(true); - - if(!validateRequest($parameters)) - { - $obj->result = 'false'; - $obj->fehler = $fehler; - } - else - { - $student = new student(); - $student_uid = $student->getUidFromMatrikelnummer($parameters->Matrikelnummer); - - // überprüfe ob Benutzer aktiv ist - $benutzer = new benutzer(); - $benutzer->load($student_uid); - if(!$benutzer->bnaktiv) - { - $obj->result = 'false'; - $obj->fehler ='1'; - return $obj; - } - - // überprüfe vorname - if($benutzer->vorname != $parameters->Vorname) - { - // es wurde keine übereinstimmung gefunden - $obj->result = 'false'; - $obj->fehler = '6'; - return $obj; - } - - if($benutzer->nachname != $parameters->Name) - { - // es wurde keine übereinstimmung gefunden - $obj->result = 'false'; - $obj->fehler = '7'; - return $obj; - } - - // Überprüfe PLZ - $adresse = new adresse(); - $adresse->load_pers($benutzer->person_id); - - $foundAdr = false; - foreach($adresse->result as $adr) - { - if($adr->plz == $parameters->Postleitzahl && $adr->typ == 'h') - $foundAdr = true; - } - if($foundAdr == false) - { - // es wurde keine übereinstimmung gefunden - $obj->result = 'false'; - $obj->fehler = '5'; - return $obj; - } - - // Überprüfe Geburtsdatum - $person = new person(); - $person->load($benutzer->person_id); - if($person->gebdatum != $parameters->Geburtsdatum) - { - $obj->result = 'false'; - $obj->fehler = '4'; - return $obj; - } - - // hole prestudentID - $student->load($student_uid); - if($student->prestudent_id == '') - { - // es wurde kein student gefunden - $obj->result = 'false'; - $obj->fehler = '3'; - return $obj; - } - - // Übergabe von studiensemester -> z.b 11W, 12S auf WS2011, SS2012 - $year = mb_substr($parameters->Semesterkuerzel, 0,2); - $semester = mb_substr($parameters->Semesterkuerzel,2,1); - if($semester == 'S') - { - $semester = 'SS'; - } - else if($semester == 'W') - { - $semester= 'WS'; - } - else - { - // ungültiges Semester - $obj->result = 'false'; - $obj->fehler = '8'; - return $obj; - } - $studiensemester = $semester.'20'.$year; - - // letzten Status holen - $qry = "Select public.get_rolle_prestudent ('".$student->prestudent_id."', '".$studiensemester."')"; - - if($db->db_query($qry)) - { - if($row = $db->db_fetch_object()) - { - $status=$row->get_rolle_prestudent; - } - } - // Status Student und Diplomand gültig - if($status == 'Student' || $status == 'Diplomand') - { - $obj->result = 'true'; - $obj->fehler = ''; - } - else - { - $obj->result = 'false'; - $obj->fehler ='1'; - } - } - return $obj; -} - -/** - * - * Prüft die übergebenen Parameter auf Richtigkeit - * @param $parameter - */ -function validateRequest($parameter) -{ - /** - * Fehlercodes - * 1: Kein aufrechtes Studium - * 2: Fehlerhafter Request - * 3: Student wurde nicht gefunden - * 4: Fehler Geburtsdatum - * 5: Fehler Postleitzahl - * 6: Fehler Vorname - * 7: Fehler Nachname - * 8: Fehler Semester - * 9: Fehler Matrikelnummer - */ - - global $fehler; - - if(mb_strlen($parameter->Postleitzahl) > 10) - { - $fehler = '5'; - return false; - } - if(mb_strlen($parameter->Vorname) > 255) - { - $fehler = '6'; - return false; - } - if(mb_strlen($parameter->Name) > 255) - { - $fehler = '7'; - return false; - } - - if(mb_strlen($parameter->Matrikelnummer) >15 || $parameter->Matrikelnummer == '') - { - $fehler = '9'; - return false; - } - - return true; -} - -?> - - +. + */ + +require_once('../config/vilesci.config.inc.php'); +require_once('../include/student.class.php'); +require_once('../include/benutzer.class.php'); +require_once('../include/adresse.class.php'); +require_once('../include/person.class.php'); +require_once('../include/webservicelog.class.php'); + +ini_set("soap.wsdl_cache_enabled", "0"); + +$SOAPServer = new SoapServer(APP_ROOT."/soap/semesterticket.wsdl.php?".microtime()); +$SOAPServer->addFunction("verifyData"); +$SOAPServer->handle(); + +$fehler = ''; + + +/** + * + * Nimmt Anfrage entgegen und überprüft ob Student auch wirklich Student ist (anhand Matrikelnummer) + * @param $parameters + */ +function verifyData($parameters) +{ + global $fehler; + class foo{}; + + $obj = new foo(); + + if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + + // Eintrag in der LogTabelle anlegen + $log = new webservicelog(); + $log->request_data = file_get_contents('php://input'); + $log->webservicetyp_kurzbz = 'wienerlinien'; + $log->request_id = $parameters->token; + $log->beschreibung = "Semesterticketanfrage"; + $log->save(true); + + if(!validateRequest($parameters)) + { + $obj->result = 'false'; + $obj->fehler = $fehler; + } + else + { + $student = new student(); + $student_uid = $student->getUidFromMatrikelnummer($parameters->Matrikelnummer); + + // überprüfe ob Benutzer aktiv ist + $benutzer = new benutzer(); + $benutzer->load($student_uid); + if(!$benutzer->bnaktiv) + { + $obj->result = 'false'; + $obj->fehler ='1'; + return $obj; + } + + // überprüfe vorname + if($benutzer->vorname != $parameters->Vorname) + { + // es wurde keine übereinstimmung gefunden + $obj->result = 'false'; + $obj->fehler = '6'; + return $obj; + } + + if($benutzer->nachname != $parameters->Name) + { + // es wurde keine übereinstimmung gefunden + $obj->result = 'false'; + $obj->fehler = '7'; + return $obj; + } + + // Überprüfe PLZ + $adresse = new adresse(); + $adresse->load_pers($benutzer->person_id); + + $foundAdr = false; + foreach($adresse->result as $adr) + { + if($adr->plz == $parameters->Postleitzahl && $adr->typ == 'h') + $foundAdr = true; + } + if($foundAdr == false) + { + // es wurde keine übereinstimmung gefunden + $obj->result = 'false'; + $obj->fehler = '5'; + return $obj; + } + + // Überprüfe Geburtsdatum + $person = new person(); + $person->load($benutzer->person_id); + if($person->gebdatum != $parameters->Geburtsdatum) + { + $obj->result = 'false'; + $obj->fehler = '4'; + return $obj; + } + + // hole prestudentID + $student->load($student_uid); + if($student->prestudent_id == '') + { + // es wurde kein student gefunden + $obj->result = 'false'; + $obj->fehler = '3'; + return $obj; + } + + // Übergabe von studiensemester -> z.b 11W, 12S auf WS2011, SS2012 + $year = mb_substr($parameters->Semesterkuerzel, 0,2); + $semester = mb_substr($parameters->Semesterkuerzel,2,1); + if($semester == 'S') + { + $semester = 'SS'; + } + else if($semester == 'W') + { + $semester= 'WS'; + } + else + { + // ungültiges Semester + $obj->result = 'false'; + $obj->fehler = '8'; + return $obj; + } + $studiensemester = $semester.'20'.$year; + + // letzten Status holen + $qry = "Select public.get_rolle_prestudent ('".$student->prestudent_id."', '".$studiensemester."')"; + + if($db->db_query($qry)) + { + if($row = $db->db_fetch_object()) + { + $status=$row->get_rolle_prestudent; + } + } + // Status Student und Diplomand gültig + if($status == 'Student' || $status == 'Diplomand') + { + $obj->result = 'true'; + $obj->fehler = ''; + } + else + { + $obj->result = 'false'; + $obj->fehler ='1'; + } + } + return $obj; +} + +/** + * + * Prüft die übergebenen Parameter auf Richtigkeit + * @param $parameter + */ +function validateRequest($parameter) +{ + /** + * Fehlercodes + * 1: Kein aufrechtes Studium + * 2: Fehlerhafter Request + * 3: Student wurde nicht gefunden + * 4: Fehler Geburtsdatum + * 5: Fehler Postleitzahl + * 6: Fehler Vorname + * 7: Fehler Nachname + * 8: Fehler Semester + * 9: Fehler Matrikelnummer + */ + + global $fehler; + + if(mb_strlen($parameter->Postleitzahl) > 10) + { + $fehler = '5'; + return false; + } + if(mb_strlen($parameter->Vorname) > 255) + { + $fehler = '6'; + return false; + } + if(mb_strlen($parameter->Name) > 255) + { + $fehler = '7'; + return false; + } + + if(mb_strlen($parameter->Matrikelnummer) >15 || $parameter->Matrikelnummer == '') + { + $fehler = '9'; + return false; + } + + return true; +} + +?> + + diff --git a/soap/stip.class.php b/soap/stip.class.php index 919e04b97..306174a61 100644 --- a/soap/stip.class.php +++ b/soap/stip.class.php @@ -486,8 +486,6 @@ class stip extends basis_db */ public function getErfolg($prestudent_id, $studiensemester_kurzbz) { - $student = new student(); - $noten = new note(); $noten->getAll(); diff --git a/soap/student.soap.php b/soap/student.soap.php index c5ebea49a..0fb3df5c3 100755 --- a/soap/student.soap.php +++ b/soap/student.soap.php @@ -181,4 +181,4 @@ function getStudentFromStudiengang($studiengang, $semester = null, $verband = nu return $studentArray; } -class foo{} \ No newline at end of file +class foo{} diff --git a/vilesci/personen/outgoing_detail.php b/vilesci/personen/outgoing_detail.php index f7e9c253b..013025001 100755 --- a/vilesci/personen/outgoing_detail.php +++ b/vilesci/personen/outgoing_detail.php @@ -645,4 +645,4 @@ function sendMailStudent($uid) $mail = new mail($email, 'no-reply','Bestätigung des Auslandsemesters', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); $mail->setHTMLContent($emailtext); $mail->send(); -} \ No newline at end of file +} diff --git a/vilesci/personen/wiederholer.php b/vilesci/personen/wiederholer.php index 874f2fbda..f4f786bb5 100644 --- a/vilesci/personen/wiederholer.php +++ b/vilesci/personen/wiederholer.php @@ -190,4 +190,4 @@ if(isset($_POST['filter'])) ?>
Studienabbrecher, welche den selben Studiengang erneut besuchen wollen können hier angelegt werden.
Diese Seite ist NICHT für das Wiederholen eines einzelnen Semesters/Jahres gedacht!
- \ No newline at end of file +