From d136937aa0d5686c4609d49dc0472339ce2caa21 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Mon, 30 May 2016 14:03:13 +0200 Subject: [PATCH] pruefungsanmeldung.json.php changed for eine_uid --- .../benotungstool/nachpruefungeintragen.php | 13 +- .../pruefung/pruefungsanmeldung.json.php | 1482 +++++++++-------- .../pruefung/pruefungsbewertung.json.php | 92 +- cis/private/profile/studienplan.php | 10 +- content/fas.xul.php | 5 +- content/fasoverlay.js.php | 5 +- content/funktionen.js.php | 946 +++++------ .../statistik/studentenexportextended.xls.php | 6 +- content/student/studentDBDML.php | 5 +- content/student/studentoverlay.js.php | 4 +- content/tempus.js.php | 970 +++++------ include/konto.class.php | 7 +- include/lehrveranstaltung.class.php | 151 +- include/prestudent.class.php | 45 + include/pruefung.class.php | 58 +- include/pruefungCis.class.php | 2 +- include/pruefungsanmeldung.class.php | 220 +-- include/tw/abgabe_lektor_benotung.php | 6 + rdf/abschlusspruefung.rdf.php | 2 +- rdf/ausbildungsvertrag.xml.php | 783 ++++----- rdf/lehreinheit.rdf.php | 7 +- rdf/lehrveranstaltung.rdf.php | 7 +- rdf/pruefung.rdf.php | 6 +- rdf/student.rdf.php | 2 +- rdf/studienblatt.xml.php | 11 +- system/abgabe2opus.php | 2 +- vilesci/lehre/abgabe_assistenz.php | 4 +- 27 files changed, 2466 insertions(+), 2385 deletions(-) diff --git a/cis/private/lehre/benotungstool/nachpruefungeintragen.php b/cis/private/lehre/benotungstool/nachpruefungeintragen.php index 86d264f4c..9f3fedd6c 100755 --- a/cis/private/lehre/benotungstool/nachpruefungeintragen.php +++ b/cis/private/lehre/benotungstool/nachpruefungeintragen.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 < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Andreas Oesterreicher , + * Rudolf Hangl < rudolf.hangl@technikum-wien.at >, + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > and + * Andreas Moik . */ require_once('../../../../config/cis.config.inc.php'); @@ -165,9 +166,10 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) $pr = new Pruefung(); + $student = new student($student_uid);//TODO EINE // Wenn eine Pruefung angelegt wird, wird zuerst eine Pruefung mit 1. Termin angelegt // und dort die Zeugnisnote gespeichert - if($pr->getPruefungen($student_uid, "Termin1", $lvid, $stsem)) + if($pr->getPruefungen($student->prestudent_id, "Termin1", $lvid, $stsem)) { if ($pr->result) $termin1 = 1; @@ -210,8 +212,9 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) $prTermin2 = new Pruefung(); $pr_2 = new Pruefung(); + $student = new student($student_uid);//TODO EINE // Die Pruefung wird als Termin2 eingetragen - if ($prTermin2->getPruefungen($student_uid, $typ, $lvid, $stsem)) + if ($prTermin2->getPruefungen($student->prestudent_id, $typ, $lvid, $stsem)) { if ($prTermin2->result) { diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index ed5c48cdf..48246ffb6 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -40,252 +40,267 @@ $lang = new sprache(); $lang->load($sprache); $p = new phrasen($sprache); -$uid = get_uid(); +$studiengang_kz = isset($_REQUEST['studiengang_kz'])?$_REQUEST['studiengang_kz']:null; $rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($uid); +$mitarbeiter = new mitarbeiter(); +$prestudent = new prestudent(); + + +if($mitarbeiter->load(get_uid())) +{ + // User ist ein Mitarbeiter + $ma_uid = get_uid(); + $rechte->getBerechtigungen($ma_uid); +} +else +{ + if(!$prestudent->loadActualFromStg($studiengang_kz))// TODO EINE funktion in ordnung?(oder soll die prestudent_id überhaupt übergeben werden? + { + die($prestudent->errormsg); + } + // User ist ein Student + $rechte->getBerechtigungen($prestudent->uid); +} + $studiensemester = new studiensemester(); $aktStudiensemester = $studiensemester->getaktorNext(); $method = isset($_REQUEST['method'])?$_REQUEST['method']:''; + switch($method) { case 'getPruefungByLv': - $studiensemester = isset($_REQUEST['studiensemester']) ? $_REQUEST['studiensemester'] : NULL; - $data = getPruefungByLv($studiensemester, $uid); - break; - case 'getPruefungByLvFromStudiengang': - $studiensemester = isset($_REQUEST['studiensemester']) ? $_REQUEST['studiensemester'] : NULL; - $data = getPruefungByLvFromStudiengang($studiensemester, $uid); - break; - case 'loadPruefung': - $data = loadPruefung(); - break; - case 'loadTermine': - $data = loadTermine(); - break; - case 'saveAnmeldung': - $student_uid = filter_input(INPUT_POST,"uid"); - if($student_uid !== "" && !is_null($student_uid)) - { - $uid = $student_uid; - } - - if($student_uid === "") - { - $data['result']=""; - $data['error']='true'; - $data['errormsg']='Studenten UID fehlt.'; + $studiensemester = isset($_REQUEST['studiensemester']) ? $_REQUEST['studiensemester'] : NULL; + $data = getPruefungByLv($studiensemester, $prestudent->prestudent_id); break; - } + case 'getPruefungByLvFromStudiengang': + $studiensemester = isset($_REQUEST['studiensemester']) ? $_REQUEST['studiensemester'] : NULL; + $data = getPruefungByLvFromStudiengang($studiensemester, $prestudent->prestudent_id); + break; + case 'loadPruefung': + $data = loadPruefung(); + break; + case 'loadTermine': + $data = loadTermine(); + break; + case 'saveAnmeldung': + $prestudent_id = filter_input(INPUT_POST,"prestudent_id"); + if(is_numeric($prestudent_id) && !is_null($prestudent_id)) + { + $data['result']=""; + $data['error']='true'; + $data['errormsg']='prestudent_id fehlt.'; + break; + } - $data = saveAnmeldung($aktStudiensemester, $uid); - break; + $data = saveAnmeldung($aktStudiensemester, $prestudent_id); + break; case 'getAllPruefungen': - $data = getAllPruefungen($aktStudiensemester, $uid); - break; + $data = getAllPruefungen($aktStudiensemester, $prestudent->uid); + break; case 'stornoAnmeldung': - $data = stornoAnmeldung($uid); - break; + $data = stornoAnmeldung($prestudent->uid); + break; case 'getAnmeldungenTermin': - $data = getAnmeldungenTermin(); - break; + $data = getAnmeldungenTermin(); + break; case 'saveReihung': - $data = saveReihung(); - break; + $data = saveReihung(); + break; case 'anmeldungBestaetigen': - $data = anmeldungBestaetigen($uid); - break; + $data = anmeldungBestaetigen($mitarbeiter); + break; case 'getStudiengaenge': - $data = getStudiengaenge(); - break; + $data = getStudiengaenge(); + break; case 'getPruefungenStudiengang': - $studiensemester = filter_input(INPUT_POST,"studiensemester"); - $data = getPruefungenStudiengang($uid, $studiensemester); - break; + $studiensemester = filter_input(INPUT_POST,"studiensemester"); + $data = getPruefungenStudiengang($studiensemester); + break; case 'saveKommentar': - $data = saveKommentar(); - break; + $data = saveKommentar(); + break; case 'getAllFreieRaeume': - $terminId = $_REQUEST["terminId"]; - $data = getAllFreieRaeume($terminId); - break; + $terminId = $_REQUEST["terminId"]; + $data = getAllFreieRaeume($terminId); + break; case 'saveRaum': - $terminId = $_REQUEST["terminId"]; - $ort_kurzbz = $_REQUEST["ort_kurzbz"]; - $data = saveRaum($terminId, $ort_kurzbz, $uid); - break; + $terminId = $_REQUEST["terminId"]; + $ort_kurzbz = $_REQUEST["ort_kurzbz"]; + $data = saveRaum($terminId, $ort_kurzbz, $prestudent->uid); + break; case 'getLvKompatibel': - $lvid = filter_input(INPUT_POST, "lehrveranstaltung_id"); - $data = getLvKompatibel($lvid); - break; + $lvid = filter_input(INPUT_POST, "lehrveranstaltung_id"); + $data = getLvKompatibel($lvid); + break; default: - break; + break; } echo json_encode($data); //Funktionen - /** * Lädt alle Prüfungen eines Studenten zu deren LVs er angemeldet ist * @param string $aktStudiensemester kurzbz des aktuellen Studiensemester (kann auch eine älteres sein) - * @param string $uid UID des Studenten + * @param string $prestudent_id des Studenten * @return Array */ -function getPruefungByLv($aktStudiensemester = null, $uid = null) +function getPruefungByLv($aktStudiensemester = null, $prestudent_id = null) { - $lehrveranstaltungen = new lehrveranstaltung(); - $lehrveranstaltungen->load_lva_student($uid, $aktStudiensemester); - $lvIds = array(); - foreach($lehrveranstaltungen->lehrveranstaltungen as $lvs) - { - array_push($lvIds, $lvs->lehrveranstaltung_id); - } - $lehrveranstaltungen=$lvIds; - $pruefung = new pruefungCis(); - if($pruefung->getPruefungByLv($lehrveranstaltungen)) - { - $pruefungen = array(); - foreach($pruefung->lehrveranstaltungen as $key=>$lv) + $lehrveranstaltungen = new lehrveranstaltung(); + $lehrveranstaltungen->load_lva_student($prestudent_id, $aktStudiensemester); + $lvIds = array(); + foreach($lehrveranstaltungen->lehrveranstaltungen as $lvs) { - $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); - $lehrveranstaltung = $lehrveranstaltung->cleanResult(); - $lehreinheit = new lehreinheit(); - $lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester); - $lehreinheiten = $lehreinheit->lehreinheiten; - $prf = new stdClass(); - $temp = new pruefungCis($lv->pruefung_id); - $temp->getTermineByPruefung($lv->pruefung_id); - for($i=0; $i < sizeof($temp->termine); $i++) - { - $termin = new pruefungstermin($temp->termine[$i]->pruefungstermin_id); - $temp->termine[$i]->teilnehmer = $termin->getNumberOfParticipants(); - } - $prf->pruefung = $temp; - $prf->lehrveranstaltung = $lehrveranstaltung; - if(!empty($lehreinheiten)) - { - $lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id); - $oe = new organisationseinheit($lveranstaltung->oe_kurzbz); - $prf->organisationseinheit = $oe->bezeichnung; - array_push($pruefungen, $prf); - } + array_push($lvIds, $lvs->lehrveranstaltung_id); } - $anmeldung = new pruefungsanmeldung(); - $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); - $anmeldungsIds = array(); - foreach($anmeldungen as $anm) + $lehrveranstaltungen=$lvIds; + $pruefung = new pruefungCis(); + if($pruefung->getPruefungByLv($lehrveranstaltungen)) { - $a = new stdClass(); - $a->pruefungsanmeldung_id = $anm->pruefungsanmeldung_id; - $a->pruefungstermin_id = $anm->pruefungstermin_id; - $a->lehrveranstaltung_id = $anm->lehrveranstaltung_id; - array_push($anmeldungsIds, $a); + $pruefungen = array(); + foreach($pruefung->lehrveranstaltungen as $key=>$lv) + { + $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); + $lehrveranstaltung = $lehrveranstaltung->cleanResult(); + $lehreinheit = new lehreinheit(); + $lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester); + $lehreinheiten = $lehreinheit->lehreinheiten; + $prf = new stdClass(); + $temp = new pruefungCis($lv->pruefung_id); + $temp->getTermineByPruefung($lv->pruefung_id); + for($i=0; $i < sizeof($temp->termine); $i++) + { + $termin = new pruefungstermin($temp->termine[$i]->pruefungstermin_id); + $temp->termine[$i]->teilnehmer = $termin->getNumberOfParticipants(); + } + $prf->pruefung = $temp; + $prf->lehrveranstaltung = $lehrveranstaltung; + if(!empty($lehreinheiten)) + { + $lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id); + $oe = new organisationseinheit($lveranstaltung->oe_kurzbz); + $prf->organisationseinheit = $oe->bezeichnung; + array_push($pruefungen, $prf); + } + } + $prestudent = new prestudent($prestudent_id); + $anmeldung = new pruefungsanmeldung(); + $anmeldungen = $anmeldung->getAnmeldungenByStudent($prestudent->uid, $aktStudiensemester); + $anmeldungsIds = array(); + foreach($anmeldungen as $anm) + { + $a = new stdClass(); + $a->pruefungsanmeldung_id = $anm->pruefungsanmeldung_id; + $a->pruefungstermin_id = $anm->pruefungstermin_id; + $a->lehrveranstaltung_id = $anm->lehrveranstaltung_id; + array_push($anmeldungsIds, $a); + } + $return = new stdClass(); + $return->pruefungen = $pruefungen; + $return->anmeldungen = $anmeldungsIds; + $data['result']=$return; + $data['error']='false'; + $data['errormsg']=''; } - $return = new stdClass(); - $return->pruefungen = $pruefungen; - $return->anmeldungen = $anmeldungsIds; - $data['result']=$return; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$pruefung->errormsg; - } - return $data; + else + { + $data['error']='true'; + $data['errormsg']=$pruefung->errormsg; + } + return $data; } /** * Lädt alle Prüfungen die im Studiengang eines Studenten angeboten werden * @param string $aktStudiensemester kurzbz des aktuellen Studiensemester (kann auch eine älteres sein) - * @param string $uid UID des Studenten + * @param string $prestudent_id des Studenten * @return Array */ -function getPruefungByLvFromStudiengang($aktStudiensemester = null, $uid = null) +function getPruefungByLvFromStudiengang($aktStudiensemester = null, $prestudent_id = null) { - $lehrveranstaltungen = new lehrveranstaltung(); - $lv_angemeldet = new lehrveranstaltung(); - $lv_angemeldet->load_lva_student($uid, $aktStudiensemester); - $lvIds_angemeldet = array(); - foreach($lv_angemeldet->lehrveranstaltungen as $lv) - { - array_push($lvIds_angemeldet, $lv->lehrveranstaltung_id); - } - $student = new student($uid); - $lehrveranstaltungen->load_lva($student->studiengang_kz); - $lvIds = array(); - foreach($lehrveranstaltungen->lehrveranstaltungen as $lvs) - { - array_push($lvIds, $lvs->lehrveranstaltung_id); - } - $lehrveranstaltungen=$lvIds; - $pruefung = new pruefungCis(); - if($pruefung->getPruefungByLv($lehrveranstaltungen)) - { - $pruefungen = array(); - foreach($pruefung->lehrveranstaltungen as $key=>$lv) + $lehrveranstaltungen = new lehrveranstaltung(); + $lv_angemeldet = new lehrveranstaltung(); + $lv_angemeldet->load_lva_student($prestudent_id, $aktStudiensemester); + $lvIds_angemeldet = array(); + foreach($lv_angemeldet->lehrveranstaltungen as $lv) { - $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); - $lehrveranstaltung = $lehrveranstaltung->cleanResult(); - if(in_array($lehrveranstaltung[0]->lehrveranstaltung_id, $lvIds_angemeldet)) - { - $lehrveranstaltung[0]->angemeldet = true; - } - else - { - $lehrveranstaltung[0]->angemeldet = false; - } - $lehreinheit = new lehreinheit(); - $lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester); - $lehreinheiten = $lehreinheit->lehreinheiten; - if(!empty($lehreinheiten) && $lehreinheiten !== null) - { - $prf = new stdClass(); - $temp = new pruefungCis($lv->pruefung_id); - $temp->getTermineByPruefung($lv->pruefung_id); - for($i=0; $i < sizeof($temp->termine); $i++) + array_push($lvIds_angemeldet, $lv->lehrveranstaltung_id); + } + $prestudent = new prestudent($prestudent_id); + $lehrveranstaltungen->load_lva($prestudent->studiengang_kz); + $lvIds = array(); + foreach($lehrveranstaltungen->lehrveranstaltungen as $lvs) + { + array_push($lvIds, $lvs->lehrveranstaltung_id); + } + $lehrveranstaltungen=$lvIds; + $pruefung = new pruefungCis(); + if($pruefung->getPruefungByLv($lehrveranstaltungen)) + { + $pruefungen = array(); + foreach($pruefung->lehrveranstaltungen as $key=>$lv) { - $termin = new pruefungstermin($temp->termine[$i]->pruefungstermin_id); - $temp->termine[$i]->teilnehmer = $termin->getNumberOfParticipants(); + $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); + $lehrveranstaltung = $lehrveranstaltung->cleanResult(); + if(in_array($lehrveranstaltung[0]->lehrveranstaltung_id, $lvIds_angemeldet)) + { + $lehrveranstaltung[0]->angemeldet = true; + } + else + { + $lehrveranstaltung[0]->angemeldet = false; + } + $lehreinheit = new lehreinheit(); + $lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester); + $lehreinheiten = $lehreinheit->lehreinheiten; + if(!empty($lehreinheiten) && $lehreinheiten !== null) + { + $prf = new stdClass(); + $temp = new pruefungCis($lv->pruefung_id); + $temp->getTermineByPruefung($lv->pruefung_id); + for($i=0; $i < sizeof($temp->termine); $i++) + { + $termin = new pruefungstermin($temp->termine[$i]->pruefungstermin_id); + $temp->termine[$i]->teilnehmer = $termin->getNumberOfParticipants(); + } + $prf->pruefung = $temp; + $prf->lehrveranstaltung = $lehrveranstaltung; + $lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id); + $oe = new organisationseinheit($lveranstaltung->oe_kurzbz); + $prf->organisationseinheit = $oe->bezeichnung; + array_push($pruefungen, $prf); + } } - $prf->pruefung = $temp; - $prf->lehrveranstaltung = $lehrveranstaltung; - $lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id); - $oe = new organisationseinheit($lveranstaltung->oe_kurzbz); - $prf->organisationseinheit = $oe->bezeichnung; - array_push($pruefungen, $prf); - } - } - $anmeldung = new pruefungsanmeldung(); - $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); - $anmeldungsIds = array(); - foreach($anmeldungen as $anm) - { - $a = new stdClass(); - $a->pruefungsanmeldung_id = $anm->pruefungsanmeldung_id; - $a->pruefungstermin_id = $anm->pruefungstermin_id; - $a->lehrveranstaltung_id = $anm->lehrveranstaltung_id; - array_push($anmeldungsIds, $a); + $anmeldung = new pruefungsanmeldung(); + $anmeldungen = $anmeldung->getAnmeldungenByStudent($prestudent->uid, $aktStudiensemester); + $anmeldungsIds = array(); + foreach($anmeldungen as $anm) + { + $a = new stdClass(); + $a->pruefungsanmeldung_id = $anm->pruefungsanmeldung_id; + $a->pruefungstermin_id = $anm->pruefungstermin_id; + $a->lehrveranstaltung_id = $anm->lehrveranstaltung_id; + array_push($anmeldungsIds, $a); + } + $return = new stdClass(); + $return->pruefungen = $pruefungen; + $return->anmeldungen = $anmeldungsIds; + $data['result']=$return; + $data['error']='false'; + $data['errormsg']=''; } - $return = new stdClass(); - $return->pruefungen = $pruefungen; - $return->anmeldungen = $anmeldungsIds; - $data['result']=$return; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$pruefung->errormsg; - } - return $data; + else + { + $data['error']='true'; + $data['errormsg']=$pruefung->errormsg; + } + return $data; } /** @@ -294,49 +309,49 @@ function getPruefungByLvFromStudiengang($aktStudiensemester = null, $uid = null) */ function loadPruefung() { - $pruefung_id=$_REQUEST["pruefung_id"]; - $pruefung = new pruefungCis(); - if($pruefung->load($pruefung_id)) - { - $temp = array(); - $pruefung->getLehrveranstaltungenByPruefung(); - $pruefung->getTermineByPruefung(); - $studiengang = new studiengang(); - if(!empty($pruefung->lehrveranstaltungen)) + $pruefung_id=$_REQUEST["pruefung_id"]; + $pruefung = new pruefungCis(); + if($pruefung->load($pruefung_id)) { - foreach($pruefung->lehrveranstaltungen as $lv) - { - $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); - $lehrveranstaltung = $lehrveranstaltung->cleanResult(); - $studiengang->load($lehrveranstaltung[0]->studiengang_kz); - $stg = new stdClass(); - $stg->bezeichnung = $studiengang->bezeichnung; - $stg->studiengang_kz = $studiengang->studiengang_kz; - $stg->kurzbzlang = $studiengang->kurzbzlang; - $lehrveranstaltung[0]->studiengang = $stg; - $prf = new stdClass(); - $prf->lehrveranstaltung = $lehrveranstaltung[0]; - $prf->pruefung = $pruefung; - array_push($temp, $prf); - } + $temp = array(); + $pruefung->getLehrveranstaltungenByPruefung(); + $pruefung->getTermineByPruefung(); + $studiengang = new studiengang(); + if(!empty($pruefung->lehrveranstaltungen)) + { + foreach($pruefung->lehrveranstaltungen as $lv) + { + $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); + $lehrveranstaltung = $lehrveranstaltung->cleanResult(); + $studiengang->load($lehrveranstaltung[0]->studiengang_kz); + $stg = new stdClass(); + $stg->bezeichnung = $studiengang->bezeichnung; + $stg->studiengang_kz = $studiengang->studiengang_kz; + $stg->kurzbzlang = $studiengang->kurzbzlang; + $lehrveranstaltung[0]->studiengang = $stg; + $prf = new stdClass(); + $prf->lehrveranstaltung = $lehrveranstaltung[0]; + $prf->pruefung = $pruefung; + array_push($temp, $prf); + } + } + else + { + $prf = new stdClass(); + $prf->pruefung = $pruefung; + array_push($temp, $prf); + } + $data['result'] = array(); + $data['result'] = $temp; + $data['error']='false'; + $data['errormsg']=''; } else { - $prf = new stdClass(); - $prf->pruefung = $pruefung; - array_push($temp, $prf); + $data['error']='true'; + $data['errormsg']=$pruefung->errormsg; } - $data['result'] = array(); - $data['result'] = $temp; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$pruefung->errormsg; - } - return $data; + return $data; } /** @@ -345,33 +360,32 @@ function loadPruefung() */ function loadTermine() { - $pruefung_id=$_REQUEST["pruefung_id"]; - $pruefung = new pruefungCis($pruefung_id); - if($pruefung->getTermineByPruefung($pruefung_id)) - { - $data['result'] = $pruefung->termine; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$pruefung->errormsg; - } - return $data; + $pruefung_id=$_REQUEST["pruefung_id"]; + $pruefung = new pruefungCis($pruefung_id); + if($pruefung->getTermineByPruefung($pruefung_id)) + { + $data['result'] = $pruefung->termine; + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$pruefung->errormsg; + } + return $data; } /** * speichert eine Prüfungsanmeldung * @param type $aktStudiensemester kurzbz des aktuellen Studiensemesters (wird für Berechnung auf ausreichend CreditPoints benötigt) - * @param type $uid UID des Studenten + * @param type $prestudent_id des Studenten * @return Array */ -function saveAnmeldung($aktStudiensemester = null, $uid = null) +function saveAnmeldung($aktStudiensemester = null, $prestudent_id = null) { global $p; - $student = new student($uid); $termin = new pruefungstermin($_REQUEST["termin_id"]); $pruefung = new pruefung(); $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]); @@ -413,7 +427,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $i=0; do { - $lehrveranstaltung->load_lva_student($uid, $stdsem); + $lehrveranstaltung->load_lva_student($prestudent_id, $stdsem); foreach($lehrveranstaltung->lehrveranstaltungen as $lv) { if($lv->lehrveranstaltung_id === $lehrveranstaltung->lehrveranstaltung_id) @@ -434,7 +448,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) return $data; } - $pruefung->getPruefungen($student->prestudent_id, NULL, $lehrveranstaltung->lehrveranstaltung_id); + $pruefung->getPruefungen($prestudent_id, NULL, $lehrveranstaltung->lehrveranstaltung_id); $anmeldung_moeglich = true; $anzahlPruefungen = count($pruefung->result); @@ -486,248 +500,247 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) if($anmeldung_moeglich) { - if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL) - { - $pruefung = new pruefungCis(); - $reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]); - $anmeldung = new pruefungsanmeldung(); - $anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; - $anmeldung->pruefungstermin_id = $_REQUEST["termin_id"]; - $anmeldung->wuensche = $_REQUEST["bemerkung"]; - $anmeldung->uid = $uid; - $anmeldung->reihung = $reihung+1; - $anmeldung->status_kurzbz = "angemeldet"; - $anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz; - $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]); - - $konto = new konto(); - $creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester); - if($creditpoints !== false) - { - if($creditpoints < $lehrveranstaltung->ects) + if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL) { - $data['error'] = 'true'; - $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints'); - return $data; - } - } + $pruefung = new pruefungCis(); + $reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]); + $anmeldung = new pruefungsanmeldung(); + $anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; + $anmeldung->pruefungstermin_id = $_REQUEST["termin_id"]; + $anmeldung->wuensche = $_REQUEST["bemerkung"]; + $anmeldung->uid = $prestudent->uid; + $anmeldung->reihung = $reihung+1; + $anmeldung->status_kurzbz = "angemeldet"; + $anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz; + $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]); - //Kollisionsprüfung - $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); - foreach($anmeldungen as $temp) - { - $datum = new datum(); - if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis))) - { - $data['result'][$temp->pruefungstermin_id] = "true"; - $data['error'] = 'true'; - $data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung'); + $konto = new konto(); + $creditpoints = $konto->getCreditPoints($prestudent->prestudent_id, $aktStudiensemester); + if($creditpoints !== false) + { + if($creditpoints < $lehrveranstaltung->ects) + { + $data['error'] = 'true'; + $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints'); + return $data; + } + } + + //Kollisionsprüfung + $anmeldungen = $anmeldung->getAnmeldungenByStudent($prestudent->uid, $aktStudiensemester); + foreach($anmeldungen as $temp) + { + $datum = new datum(); + if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis))) + { + $data['result'][$temp->pruefungstermin_id] = "true"; + $data['error'] = 'true'; + $data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung'); + } + } + if(isset($data['error']) && $data['error'] = 'true') + { + return $data; + } + } + else + { + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/keineFreienPlaetzeVorhanden'); + return $data; } - } - if(isset($data['error']) && $data['error'] = 'true') - { - return $data; - } } else { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/keineFreienPlaetzeVorhanden'); - return $data; + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/anmeldungAufgrundVonSperreNichtMoeglich'); + return $data; + } + + $anrechnung = new anrechnung(); + $lv_komp = new lehrveranstaltung($studienverpflichtung_id); + $person = new person(); + $person->getPersonFromBenutzer($prestudent->uid); + $prestudent = new prestudent(); + $prestudent->getPrestudenten($person->person_id); + + if(count($prestudent->result) > 0) + { + $prestudent_id = ""; + foreach($prestudent->result as $ps) + { + if($ps->getLaststatus($ps->prestudent_id, $stdsem)) + { + if(($ps->status_kurzbz == "Student")) + { + $prestudent_id = $ps->prestudent_id; + } + } + } + if($prestudent_id != "") + { + $anrechungSaveResult = false; + if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) + { + $anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id; + $anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id; + $anrechnung->prestudent_id = $prestudent_id; + $anrechnung->begruendung_id = "2"; + $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; + $anrechnung->new = true; + $anrechungSaveResult = $anrechnung->save(); + } + else + { + $anrechungSaveResult = true; + } + + if($anrechungSaveResult) + { + if($anrechnung->anrechnung_id == "") + $anmeldung->anrechnung_id = null; + else + $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; + + if($anmeldung->save(true)) + { + $pruefung = new pruefungCis($termin->pruefung_id); + if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== "")) + $to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN; + else + $to = $pruefung->mitarbeiter_uid."@".DOMAIN; + $from = "noreply@".DOMAIN; + $subject = $p->t('pruefung/emailLektorSubjectAnmeldung'); + $mail = new mail($to, $from, $subject, $p->t('pruefung/emailBodyBitteHtmlSicht')); + + $datum = new datum(); + + $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); + + $html = $p->t('pruefung/emailLektorStudentIn')." ".$prestudent->vorname." ".$prestudent->nachname." ".$p->t('pruefung/emailLektorHatSichZurPruefung')." ".$lv->bezeichnung." ".$p->t('pruefung/emailLektorAm')." ".$datum->formatDatum($termin->von, "m.d.Y")." ".$p->t('pruefung/emailLektorVon')." ".$datum->formatDatum($termin->von,"h:i")." ".$p->t('pruefung/emailLektorUhrBis')." ".$datum->formatDatum($termin->bis,"h:i")." ".$p->t('pruefung/emailLektorUhrAngemeldet'); + $mail->setHTMLContent($html); + $mail->send(); + + $data['result'] = $p->t('pruefung/anmeldungErfolgreich'); + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$anmeldung->errormsg; + } + } + else + { + $data['error']='true'; + $data['errormsg']=$anrechnung->errormsg; + } + } + else + { + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden'); + } + } + else + { + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden'); } - } - else - { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/anmeldungAufgrundVonSperreNichtMoeglich'); return $data; - } - - $anrechnung = new anrechnung(); - $lv_komp = new lehrveranstaltung($studienverpflichtung_id); - $person = new person(); - $person->getPersonFromBenutzer($uid); - $prestudent = new prestudent(); - $prestudent->getPrestudenten($person->person_id); - - if(count($prestudent->result) > 0) - { - $prestudent_id = ""; - foreach($prestudent->result as $ps) - { - if($ps->getLaststatus($ps->prestudent_id, $stdsem)) - { - if(($ps->status_kurzbz == "Student")) - { - $prestudent_id = $ps->prestudent_id; - } - } - } - if($prestudent_id != "") - { - $anrechungSaveResult = false; - if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) - { - $anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id; - $anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id; - $anrechnung->prestudent_id = $prestudent_id; - $anrechnung->begruendung_id = "2"; - $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; - $anrechnung->new = true; - $anrechungSaveResult = $anrechnung->save(); - } - else - { - $anrechungSaveResult = true; - } - - if($anrechungSaveResult) - { - if($anrechnung->anrechnung_id == "") - $anmeldung->anrechnung_id = null; - else - $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; - - if($anmeldung->save(true)) - { - $pruefung = new pruefungCis($termin->pruefung_id); - if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== "")) - $to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN; - else - $to = $pruefung->mitarbeiter_uid."@".DOMAIN; - $from = "noreply@".DOMAIN; - $subject = $p->t('pruefung/emailLektorSubjectAnmeldung'); - $mail = new mail($to, $from, $subject, $p->t('pruefung/emailBodyBitteHtmlSicht')); - - $student = new student($uid); - $datum = new datum(); - - $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); - - $html = $p->t('pruefung/emailLektorStudentIn')." ".$student->vorname." ".$student->nachname." ".$p->t('pruefung/emailLektorHatSichZurPruefung')." ".$lv->bezeichnung." ".$p->t('pruefung/emailLektorAm')." ".$datum->formatDatum($termin->von, "m.d.Y")." ".$p->t('pruefung/emailLektorVon')." ".$datum->formatDatum($termin->von,"h:i")." ".$p->t('pruefung/emailLektorUhrBis')." ".$datum->formatDatum($termin->bis,"h:i")." ".$p->t('pruefung/emailLektorUhrAngemeldet'); - $mail->setHTMLContent($html); - $mail->send(); - - $data['result'] = $p->t('pruefung/anmeldungErfolgreich'); - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$anmeldung->errormsg; - } - } - else - { - $data['error']='true'; - $data['errormsg']=$anrechnung->errormsg; - } - } - else - { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden'); - } - } - else - { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden'); - } - return $data; } /** * Lädt alle vorhandenen Prüfungen * @param type $aktStudiensemester kurzbz des Studiensemesters (Filter nach Studiensemester) - * @param type $uid UID eines Studenten + * @param type $uid eines Studenten * @return Array */ function getAllPruefungen($aktStudiensemester = null, $uid = null) { - $pruefung = new pruefungCis(); - if($pruefung->getAll()) - { - $pruefungen = array(); - foreach($pruefung->lehrveranstaltungen as $lv) + $pruefung = new pruefungCis(); + if($pruefung->getAll()) { - $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); - $lehrveranstaltung = $lehrveranstaltung->cleanResult(); - $lehreinheit = new lehreinheit(); - $lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester); - $lehreinheiten = $lehreinheit->lehreinheiten; - $prf = new stdClass(); - $temp = new pruefungCis($lv->pruefung_id); - $temp->getTermineByPruefung($lv->pruefung_id); - for($i=0; $i < sizeof($temp->termine); $i++) - { - $termin = new pruefungstermin($temp->termine[$i]->pruefungstermin_id); - $temp->termine[$i]->teilnehmer = $termin->getNumberOfParticipants(); - } - $prf->pruefung = $temp; - $prf->lehrveranstaltung = $lehrveranstaltung; - if(!empty($lehreinheiten)) - { - $lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id); - $oe = new organisationseinheit($lveranstaltung->oe_kurzbz); - $prf->organisationseinheit = $oe->bezeichnung; - array_push($pruefungen, $prf); - } - } + $pruefungen = array(); + foreach($pruefung->lehrveranstaltungen as $lv) + { + $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); + $lehrveranstaltung = $lehrveranstaltung->cleanResult(); + $lehreinheit = new lehreinheit(); + $lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester); + $lehreinheiten = $lehreinheit->lehreinheiten; + $prf = new stdClass(); + $temp = new pruefungCis($lv->pruefung_id); + $temp->getTermineByPruefung($lv->pruefung_id); + for($i=0; $i < sizeof($temp->termine); $i++) + { + $termin = new pruefungstermin($temp->termine[$i]->pruefungstermin_id); + $temp->termine[$i]->teilnehmer = $termin->getNumberOfParticipants(); + } + $prf->pruefung = $temp; + $prf->lehrveranstaltung = $lehrveranstaltung; + if(!empty($lehreinheiten)) + { + $lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id); + $oe = new organisationseinheit($lveranstaltung->oe_kurzbz); + $prf->organisationseinheit = $oe->bezeichnung; + array_push($pruefungen, $prf); + } + } - $anmeldung = new pruefungsanmeldung(); - $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); - $anmeldungsIds = array(); - foreach($anmeldungen as $anm) - { - $a = new stdClass(); - $a->pruefungsanmeldung_id = $anm->pruefungsanmeldung_id; - $a->pruefungstermin_id = $anm->pruefungstermin_id; - $a->lehrveranstaltung_id = $anm->lehrveranstaltung_id; - array_push($anmeldungsIds, $a); + $anmeldung = new pruefungsanmeldung(); + $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); + $anmeldungsIds = array(); + foreach($anmeldungen as $anm) + { + $a = new stdClass(); + $a->pruefungsanmeldung_id = $anm->pruefungsanmeldung_id; + $a->pruefungstermin_id = $anm->pruefungstermin_id; + $a->lehrveranstaltung_id = $anm->lehrveranstaltung_id; + array_push($anmeldungsIds, $a); + } + $return = new stdClass(); + $return->pruefungen = $pruefungen; + $return->anmeldungen = $anmeldungsIds; + $data['result']=$return; + $data['error']='false'; + $data['errormsg']=''; } - $return = new stdClass(); - $return->pruefungen = $pruefungen; - $return->anmeldungen = $anmeldungsIds; - $data['result']=$return; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$pruefung->errormsg; - } - return $data; + else + { + $data['error']='true'; + $data['errormsg']=$pruefung->errormsg; + } + return $data; } /** * Storniert eine Prüfungsanmeldung - * @param type $uid UID eines Studenten + * @param type $uid eines Studenten * @return Array */ function stornoAnmeldung($uid = null) { global $p; - $pruefungsanmeldung_id=$_REQUEST['pruefungsanmeldung_id']; - $pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); - $anrechnung = new anrechnung($pruefungsanmeldung->anrechnung_id); - if($pruefungsanmeldung->delete($pruefungsanmeldung_id, $uid)) - { - if($anrechnung->delete($anrechnung->anrechnung_id)) + $pruefungsanmeldung_id=$_REQUEST['pruefungsanmeldung_id']; + $pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); + $anrechnung = new anrechnung($pruefungsanmeldung->anrechnung_id); + if($pruefungsanmeldung->delete($pruefungsanmeldung_id, $uid)) { - $data['result'] = $p->t('pruefung/anmeldungErfolgreichGeloescht'); - $data['error'] = 'false'; - $data['errormsg'] = ''; + if($anrechnung->delete($anrechnung->anrechnung_id)) + { + $data['result'] = $p->t('pruefung/anmeldungErfolgreichGeloescht'); + $data['error'] = 'false'; + $data['errormsg'] = ''; + } } - } - else - { - $data['error']='true'; - $data['errormsg']=$pruefung->errormsg; - } - return $data; + else + { + $data['error']='true'; + $data['errormsg']=$pruefung->errormsg; + } + return $data; } @@ -739,39 +752,39 @@ function stornoAnmeldung($uid = null) function getAnmeldungenTermin() { global $p; - $lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; - $pruefungstermin_id = $_REQUEST["pruefungstermin_id"]; - $pruefungstermin = new pruefungstermin($pruefungstermin_id); - $pruefungsanmeldung = new pruefungsanmeldung(); - $pruefungstermin->anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id); - foreach($pruefungstermin->anmeldungen as $a) - { - $student = new student($a->uid); - $temp = new stdClass(); - $temp->vorname = $student->vorname; - $temp->nachname = $student->nachname; - $temp->uid = $student->uid; - $a->student = $temp; - } - if(!empty($pruefungstermin->anmeldungen)) - { - $data['result']=$pruefungstermin; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - if($pruefungsanmeldung->errormsg !== null) + $lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; + $pruefungstermin_id = $_REQUEST["pruefungstermin_id"]; + $pruefungstermin = new pruefungstermin($pruefungstermin_id); + $pruefungsanmeldung = new pruefungsanmeldung(); + $pruefungstermin->anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id); + foreach($pruefungstermin->anmeldungen as $a) { - $data['errormsg']=$pruefungsanmeldung->errormsg; + $student = new student($a->uid); + $temp = new stdClass(); + $temp->vorname = $student->vorname; + $temp->nachname = $student->nachname; + $temp->uid = $student->uid; + $a->student = $temp; + } + if(!empty($pruefungstermin->anmeldungen)) + { + $data['result']=$pruefungstermin; + $data['error']='false'; + $data['errormsg']=''; } else { - $data['errormsg']= $p->t('pruefung/keineAnmeldungenVorhanden'); + $data['error']='true'; + if($pruefungsanmeldung->errormsg !== null) + { + $data['errormsg']=$pruefungsanmeldung->errormsg; + } + else + { + $data['errormsg']= $p->t('pruefung/keineAnmeldungenVorhanden'); + } } - } - return $data; + return $data; } /** @@ -780,78 +793,79 @@ function getAnmeldungenTermin() */ function saveReihung() { - $anmeldung = new pruefungsanmeldung(); - $reihung = $_REQUEST["reihung"]; - if($anmeldung->saveReihung($reihung)) - { - $data['result']=true; - $data['error']='false'; - $data['errormsg']=$anmeldung->errormsg; - } - else - { - $data['error']='true'; - $data['errormsg']=$anmeldung->errormsg; - } - return $data; + $anmeldung = new pruefungsanmeldung(); + $reihung = $_REQUEST["reihung"]; + if($anmeldung->saveReihung($reihung)) + { + $data['result']=true; + $data['error']='false'; + $data['errormsg']=$anmeldung->errormsg; + } + else + { + $data['error']='true'; + $data['errormsg']=$anmeldung->errormsg; + } + return $data; } /** * Ändert den Status einer Prüfungsanmeldung auf "bestaetigt" + * @param $uid des Mitarbeiters * @return Array */ function anmeldungBestaetigen($uid) { global $p; - $pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"]; - $status = "bestaetigt"; - $anmeldung = new pruefungsanmeldung(); - if($anmeldung->changeState($pruefungsanmeldung_id, $status, $uid)) - { - $anmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); - $termin = new pruefungstermin($anmeldung->pruefungstermin_id); - $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); - $ma = new mitarbeiter($uid); - $datum = new datum(); - $ort = new ort($termin->ort_kurzbz); - $pruefung = new pruefungCis($termin->pruefung_id); - - $to = $anmeldung->uid."@".DOMAIN; - $from = "noreply@".DOMAIN; - $subject = $p->t('pruefung/emailSubjectAnmeldungBestaetigung'); - $html = $p->t('pruefung/emailBody1')." ".$ma->vorname." ".$ma->nachname." ".$p->t('pruefung/emailBody2')."
"; - $html .= "
"; - $html .= $p->t('pruefung/emailBodyPruefung')." ".$lv->bezeichnung."
"; - if($pruefung->einzeln) + $pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"]; + $status = "bestaetigt"; + $anmeldung = new pruefungsanmeldung(); + if($anmeldung->changeState($pruefungsanmeldung_id, $status, $uid)) { - $date = $datum->formatDatum($termin->von, "Y-m-d h:i:s"); - $date = strtotime($date); - $date = $date+(60*$pruefung->pruefungsintervall*($anmeldung->reihung-1)); - $von = date("h:i",$date); - $html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$von."
"; - $html .= $p->t('pruefung/emailBodyDauer')." ".$pruefung->pruefungsintervall." ".$p->t('pruefung/emailBodyMinuten')."
"; + $anmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); + $termin = new pruefungstermin($anmeldung->pruefungstermin_id); + $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); + $ma = new mitarbeiter($uid); + $datum = new datum(); + $ort = new ort($termin->ort_kurzbz); + $pruefung = new pruefungCis($termin->pruefung_id); + + $to = $anmeldung->uid."@".DOMAIN; + $from = "noreply@".DOMAIN; + $subject = $p->t('pruefung/emailSubjectAnmeldungBestaetigung'); + $html = $p->t('pruefung/emailBody1')." ".$ma->vorname." ".$ma->nachname." ".$p->t('pruefung/emailBody2')."
"; + $html .= "
"; + $html .= $p->t('pruefung/emailBodyPruefung')." ".$lv->bezeichnung."
"; + if($pruefung->einzeln) + { + $date = $datum->formatDatum($termin->von, "Y-m-d h:i:s"); + $date = strtotime($date); + $date = $date+(60*$pruefung->pruefungsintervall*($anmeldung->reihung-1)); + $von = date("h:i",$date); + $html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$von."
"; + $html .= $p->t('pruefung/emailBodyDauer')." ".$pruefung->pruefungsintervall." ".$p->t('pruefung/emailBodyMinuten')."
"; + } + else + $html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$datum->formatDatum($termin->von, "h:i")."
"; + $html .= $p->t('pruefung/anmeldungErfolgreich')." ".$ort->bezeichnung."
"; + $html .= "
"; + $html .= "".$p->t('pruefung/emailBodyLinkZurAnmeldung')."
"; + $html .= "
"; + + $mail = new mail($to, $from, $subject,$p->t('pruefung/emailBodyBitteHtmlSicht')); + $mail->setHTMLContent($html); + $mail->send(); + + $data['result']=true; + $data['error']='false'; + $data['errormsg']=''; } else - $html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$datum->formatDatum($termin->von, "h:i")."
"; - $html .= $p->t('pruefung/anmeldungErfolgreich')." ".$ort->bezeichnung."
"; - $html .= "
"; - $html .= "".$p->t('pruefung/emailBodyLinkZurAnmeldung')."
"; - $html .= "
"; - - $mail = new mail($to, $from, $subject,$p->t('pruefung/emailBodyBitteHtmlSicht')); - $mail->setHTMLContent($html); - $mail->send(); - - $data['result']=true; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$anmeldung->errormsg; - } - return $data; + { + $data['error']='true'; + $data['errormsg']=$anmeldung->errormsg; + } + return $data; } /** @@ -860,70 +874,70 @@ function anmeldungBestaetigen($uid) */ function getStudiengaenge() { - $studiengang = new studiengang(); - if($studiengang->getAll("bezeichnung", true)) - { - $result = array(); - foreach($studiengang->result as $stg) + $studiengang = new studiengang(); + if($studiengang->getAll("bezeichnung", true)) { - $studiengangTemp = new StdClass(); - $studiengangTemp->studiengang_kz = $stg->studiengang_kz; - $studiengangTemp->bezeichnung = $stg->bezeichnung; - $studiengangTemp->kurzbz = $stg->kurzbz; - $studiengangTemp->typ = $stg->typ; - array_push($result, $studiengangTemp); + $result = array(); + foreach($studiengang->result as $stg) + { + $studiengangTemp = new StdClass(); + $studiengangTemp->studiengang_kz = $stg->studiengang_kz; + $studiengangTemp->bezeichnung = $stg->bezeichnung; + $studiengangTemp->kurzbz = $stg->kurzbz; + $studiengangTemp->typ = $stg->typ; + array_push($result, $studiengangTemp); + } + $data['result']=$result; + $data['error']='false'; + $data['errormsg']=''; } - $data['result']=$result; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$studiengang->errormsg; - } - return $data; + else + { + $data['error']='true'; + $data['errormsg']=$studiengang->errormsg; + } + return $data; } /** * Lädt alle Prüfungen eines Studienganges * @return Array */ -function getPruefungenStudiengang($uid, $aktStudiensemester) +function getPruefungenStudiengang($aktStudiensemester) { - $lehrveranstaltung = new lehrveranstaltung(); - $lehrveranstaltung->load_lva($_REQUEST["studiengang_kz"], null, null, true, true); - $result = array(); - foreach($lehrveranstaltung->lehrveranstaltungen as $lv) - { - $pruefung = new pruefungCis(); - $pruefung->getPruefungByLv($lv->lehrveranstaltung_id); - if((!empty($pruefung->lehrveranstaltungen))) + $lehrveranstaltung = new lehrveranstaltung(); + $lehrveranstaltung->load_lva($_REQUEST["studiengang_kz"], null, null, true, true); + $result = array(); + foreach($lehrveranstaltung->lehrveranstaltungen as $lv) { - $lv->pruefung = array(); - foreach ($pruefung->lehrveranstaltungen as $key=>$prf) - { - $pruefung->load($prf->pruefung_id); -// var_dump($aktStudiensemester); -// var_dump($pruefung->studiensemester_kurzbz); - if(($pruefung->storniert === true)) + $pruefung = new pruefungCis(); + $pruefung->getPruefungByLv($lv->lehrveranstaltung_id); + if((!empty($pruefung->lehrveranstaltungen))) { - unset($pruefung->lehrveranstaltungen[$key]); + $lv->pruefung = array(); + foreach ($pruefung->lehrveranstaltungen as $key=>$prf) + { + $pruefung->load($prf->pruefung_id); + // var_dump($aktStudiensemester); + // var_dump($pruefung->studiensemester_kurzbz); + if(($pruefung->storniert === true)) + { + unset($pruefung->lehrveranstaltungen[$key]); + } + else + { + $pruefung->getTermineByPruefung(); + array_push($lv->pruefung, $pruefung); + } + } + if($pruefung->studiensemester_kurzbz === $aktStudiensemester) + array_push($result, $lv); } - else - { - $pruefung->getTermineByPruefung(); - array_push($lv->pruefung, $pruefung); - } - } - if($pruefung->studiensemester_kurzbz === $aktStudiensemester) - array_push($result, $lv); } - } - $data['result']=$result; - $data['error']='false'; - $data['errormsg']=''; - return $data; + $data['result']=$result; + $data['error']='false'; + $data['errormsg']=''; + return $data; } /** @@ -932,23 +946,23 @@ function getPruefungenStudiengang($uid, $aktStudiensemester) */ function saveKommentar() { - $kommentar = $_REQUEST["kommentar"]; - $pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"]; + $kommentar = $_REQUEST["kommentar"]; + $pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"]; - $pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); - $pruefungsanmeldung->kommentar = $kommentar; - if($pruefungsanmeldung->save()) - { - $data['result']=true; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$pruefungsanmeldung->errormsg; - } - return $data; + $pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); + $pruefungsanmeldung->kommentar = $kommentar; + if($pruefungsanmeldung->save()) + { + $data['result']=true; + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$pruefungsanmeldung->errormsg; + } + return $data; } /** @@ -956,38 +970,38 @@ function saveKommentar() */ function getAllFreieRaeume($terminId) { - $pruefungstermin = new pruefungstermin(); - $pruefungstermin->load($terminId); - $ort = new ort(); - $datum_von = explode(" ", $pruefungstermin->von); - $datum_bis = explode(" ", $pruefungstermin->bis); - $teilnehmer = $pruefungstermin->getNumberOfParticipants(); - $teilnehmer = $teilnehmer !== false ? $teilnehmer : 0; - $pruefungstermin->getAll($pruefungstermin->von, $pruefungstermin->bis, TRUE); + $pruefungstermin = new pruefungstermin(); + $pruefungstermin->load($terminId); + $ort = new ort(); + $datum_von = explode(" ", $pruefungstermin->von); + $datum_bis = explode(" ", $pruefungstermin->bis); + $teilnehmer = $pruefungstermin->getNumberOfParticipants(); + $teilnehmer = $teilnehmer !== false ? $teilnehmer : 0; + $pruefungstermin->getAll($pruefungstermin->von, $pruefungstermin->bis, TRUE); - if($ort->search($datum_von[0], $datum_von[1], $datum_bis[1], null, $teilnehmer, true)) - { - foreach($pruefungstermin->result as $termin) + if($ort->search($datum_von[0], $datum_von[1], $datum_bis[1], null, $teilnehmer, true)) { - if($termin->pruefungstermin_id != $pruefungstermin->pruefungstermin_id && !is_null($termin->ort_kurzbz)) - { - $o = new ort($termin->ort_kurzbz); - $o->ort_kurzbz .= " (Sammelklausur)"; - array_push($ort->result, $o); - } - } + foreach($pruefungstermin->result as $termin) + { + if($termin->pruefungstermin_id != $pruefungstermin->pruefungstermin_id && !is_null($termin->ort_kurzbz)) + { + $o = new ort($termin->ort_kurzbz); + $o->ort_kurzbz .= " (Sammelklausur)"; + array_push($ort->result, $o); + } + } - usort($ort->result, "compareRaeume"); - $data['result']=$ort->result; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$ort->errormsg; - } - return $data; + usort($ort->result, "compareRaeume"); + $data['result']=$ort->result; + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$ort->errormsg; + } + return $data; } /** @@ -998,111 +1012,111 @@ function getAllFreieRaeume($terminId) */ function compareRaeume($a, $b) { - return strcmp($a->ort_kurzbz, $b->ort_kurzbz); + return strcmp($a->ort_kurzbz, $b->ort_kurzbz); } function saveRaum($terminId, $ort_kurzbz, $uid) { - $pruefungstermin = new pruefungstermin($terminId); - $stunde = new stunde(); - $datum_von = explode(" ", $pruefungstermin->von); - $datum_bis = explode(" ", $pruefungstermin->bis); - $stunden = $stunde->getStunden($datum_von[1], $datum_bis[1]); - $reservierung = new reservierung(); - $reserviert = false; - foreach($stunden as $h) - { - if($reservierung->isReserviert($ort_kurzbz, $datum_von[0], $h)) - $reserviert = true; - } - if(!$reserviert || $pruefungstermin->sammelklausur == TRUE) - { - $pruefung = new pruefungCis($pruefungstermin->pruefung_id); - $mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid); - if($ort_kurzbz === "buero") + $pruefungstermin = new pruefungstermin($terminId); + $stunde = new stunde(); + $datum_von = explode(" ", $pruefungstermin->von); + $datum_bis = explode(" ", $pruefungstermin->bis); + $stunden = $stunde->getStunden($datum_von[1], $datum_bis[1]); + $reservierung = new reservierung(); + $reserviert = false; + foreach($stunden as $h) { - $pruefungstermin->ort_kurzbz = $mitarbeiter->ort_kurzbz; - if($pruefungstermin->save(false)) - { - $data['result']="reserviert"; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$pruefungstermin->errormsg; - } + if($reservierung->isReserviert($ort_kurzbz, $datum_von[0], $h)) + $reserviert = true; } - else + if(!$reserviert || $pruefungstermin->sammelklausur == TRUE) { - $reservierung->studiengang_kz = "0"; - $reservierung->ort_kurzbz = $ort_kurzbz; - $reservierung->uid = $pruefung->mitarbeiter_uid; - $reservierung->datum = $datum_von[0]; - $reservierung->titel = $pruefung->titel; - if(strlen($pruefung->titel) > 10) - { - $reservierung->titel = "Prüfung"; - } - $reservierung->beschreibung = "Prüfung"; - $reservierung->insertamum = date('Y-m-d G:i:s'); - $reservierung->insertvon = $uid; - $reservierungError = false; - - foreach($stunden as $h) - { - $reservierung->stunde = $h; - if(!$reservierung->save(true)) + $pruefung = new pruefungCis($pruefungstermin->pruefung_id); + $mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid); + if($ort_kurzbz === "buero") { - $reservierungError = true; - } - } - if(!$reservierungError) - { - $pruefungstermin->ort_kurzbz = $reservierung->ort_kurzbz; - if($pruefungstermin->save(false)) - { - $data['result']="reserviert"; - $data['error']='false'; - $data['errormsg']=''; + $pruefungstermin->ort_kurzbz = $mitarbeiter->ort_kurzbz; + if($pruefungstermin->save(false)) + { + $data['result']="reserviert"; + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$pruefungstermin->errormsg; + } } else { - $data['error']='true'; - $data['errormsg']=$pruefungstermin->errormsg; + $reservierung->studiengang_kz = "0"; + $reservierung->ort_kurzbz = $ort_kurzbz; + $reservierung->uid = $pruefung->mitarbeiter_uid; + $reservierung->datum = $datum_von[0]; + $reservierung->titel = $pruefung->titel; + if(strlen($pruefung->titel) > 10) + { + $reservierung->titel = "Prüfung"; + } + $reservierung->beschreibung = "Prüfung"; + $reservierung->insertamum = date('Y-m-d G:i:s'); + $reservierung->insertvon = $uid; + $reservierungError = false; + + foreach($stunden as $h) + { + $reservierung->stunde = $h; + if(!$reservierung->save(true)) + { + $reservierungError = true; + } + } + if(!$reservierungError) + { + $pruefungstermin->ort_kurzbz = $reservierung->ort_kurzbz; + if($pruefungstermin->save(false)) + { + $data['result']="reserviert"; + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$pruefungstermin->errormsg; + } + } + else + { + $data['error']='true'; + $data['errormsg']=$reservierung->errormsg; + } } - } - else - { - $data['error']='true'; - $data['errormsg']=$reservierung->errormsg; - } } - } - else - { - $data['error']='true'; - $data['errormsg']="Reservierung nicht möglich."; - } - return $data; + else + { + $data['error']='true'; + $data['errormsg']="Reservierung nicht möglich."; + } + return $data; } function getLvKompatibel($lvid) { - $lv = new lehrveranstaltung(); - if($lv->getLVkompatibel($lvid)) - { - $data['result']=$lv->lehrveranstaltungen; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['result']=""; - $data['error']='true'; - $data['errormsg']=$lv->errormsg; - } - return $data; + $lv = new lehrveranstaltung(); + if($lv->getLVkompatibel($lvid)) + { + $data['result']=$lv->lehrveranstaltungen; + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['result']=""; + $data['error']='true'; + $data['errormsg']=$lv->errormsg; + } + return $data; } ?> diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.json.php b/cis/private/lehre/pruefung/pruefungsbewertung.json.php index dc187975a..ef6724e70 100755 --- a/cis/private/lehre/pruefung/pruefungsbewertung.json.php +++ b/cis/private/lehre/pruefung/pruefungsbewertung.json.php @@ -236,58 +236,58 @@ function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $student = new student($student_uid); global $p; - $pruefungCis = new pruefungCis($pruefung_id); - $lehrveranstaltung = new lehrveranstaltung(); - $lehreinheiten = $lehrveranstaltung->getLehreinheitenOfLv($lehrveranstaltung_id, $student_uid); - $pruefung = new pruefung(); - $pruefung->new = true; - if(!empty($lehreinheiten)) - { - $pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); - $pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id); - - $pruefung->lehreinheit_id = $lehreinheiten[0]; - $pruefung->prestudent_id = $student->prestudent_id; - $pruefung->mitarbeiter_uid = $mitarbeiter_uid; - $pruefung->note = $note; - $pruefung->pruefungstyp_kurzbz = $pruefungsanmeldung->pruefungstyp_kurzbz; - $pruefung->datum = $datum; - $pruefung->anmerkung = $anmerkung; - $pruefung->pruefungsanmeldung_id = $pruefungsanmeldung_id; - $pruefung->insertvon = $uid; - $pruefung->insertamum = date('Y-m-d H:i:s'); - - $datum = new datum(); -// var_dump(date("Y-m-d", time())); -// var_dump($pruefungstermin->von); - if($datum->between("", date("Y-m-d", time()), $pruefungstermin->von)) + $pruefungCis = new pruefungCis($pruefung_id); + $lehrveranstaltung = new lehrveranstaltung(); + $lehreinheiten = $lehrveranstaltung->getLehreinheitenOfLv($lehrveranstaltung_id, $student_uid); + $pruefung = new pruefung(); + $pruefung->new = true; + if(!empty($lehreinheiten)) { - if($pruefung->save()) - { - $data['result']=$pruefung->pruefung_id; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$pruefung->errormsg; - } + $pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); + $pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id); + + $pruefung->lehreinheit_id = $lehreinheiten[0]; + $pruefung->prestudent_id = $student->prestudent_id; + $pruefung->mitarbeiter_uid = $mitarbeiter_uid; + $pruefung->note = $note; + $pruefung->pruefungstyp_kurzbz = $pruefungsanmeldung->pruefungstyp_kurzbz; + $pruefung->datum = $datum; + $pruefung->anmerkung = $anmerkung; + $pruefung->pruefungsanmeldung_id = $pruefungsanmeldung_id; + $pruefung->insertvon = $uid; + $pruefung->insertamum = date('Y-m-d H:i:s'); + + $datum = new datum(); + // var_dump(date("Y-m-d", time())); + // var_dump($pruefungstermin->von); + if($datum->between("", date("Y-m-d", time()), $pruefungstermin->von)) + { + if($pruefung->save()) + { + $data['result']=$pruefung->pruefung_id; + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$pruefung->errormsg; + } + } + else + { + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/terminNichtInDerVergangenheit'); + //$data['errormsg']='Nicht in der Vergangenheit'; + } } else { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/terminNichtInDerVergangenheit'); - //$data['errormsg']='Nicht in der Vergangenheit'; + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/keineLehreinheitenVorhanden'); } - } - else - { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/keineLehreinheitenVorhanden'); - } - return $data; + return $data; } /** diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index df0ac09b7..cd1bc95e0 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -34,6 +34,7 @@ require_once('../../../include/lvregel.class.php'); require_once('../../../include/studiensemester.class.php'); require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/prestudent.class.php'); +require_once('../../../include/student.class.php'); require_once('../../../include/zeugnisnote.class.php'); require_once('../../../include/lvangebot.class.php'); require_once('../../../include/datum.class.php'); @@ -104,7 +105,8 @@ if(isset($_GET['getAnmeldung'])) //Pruefen ob genug Credit Points zur Verfuegung stehen zur Anmeldung $konto = new konto(); - $cp = $konto->getCreditPoints($uid, $stsem); + $student = new student($uid); // TODO EINE + $cp = $konto->getCreditPoints($student->prestudent_id, $stsem); if($cp===false || $cp>=$lv->ects) echo '
'.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')'; else @@ -203,7 +205,8 @@ if(isset($_POST['action']) && $_POST['action']=='anmeldung') // Pruefen ob genug CP zur Verfuegung stehen falls diese reduziert sind $konto = new konto(); - $cp = $konto->getCreditPoints($uid, $stsem); + $student = new student($uid); // TODO EINE + $cp = $konto->getCreditPoints($student->prestudent_id, $stsem); if($cp===false || $cp>=$lv->ects) { $bngruppe->uid = $uid; @@ -349,7 +352,8 @@ foreach($stsem_arr as $stsem) echo $stsem; $konto = new konto(); - $cp = $konto->getCreditPoints($uid, $stsem); + $student = new student($uid); // TODO EINE + $cp = $konto->getCreditPoints($student->prestudent_id, $stsem); if($cp!==false) echo '
Information
'; echo ''; diff --git a/content/fas.xul.php b/content/fas.xul.php index 40d21ceaa..be8829301 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.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 , */ require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php index c87e6b586..51cec7dfa 100644 --- a/content/fasoverlay.js.php +++ b/content/fasoverlay.js.php @@ -17,8 +17,9 @@ * * Authors: Christian Paminger , * Andreas Oesterreicher , - * Rudolf Hangl and - * Gerald Simane-Sequens + * Rudolf Hangl , + * Gerald Simane-Sequens and + * Andreas Moik . */ require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); diff --git a/content/funktionen.js.php b/content/funktionen.js.php index 8ed84cf2e..bb109e7ef 100644 --- a/content/funktionen.js.php +++ b/content/funktionen.js.php @@ -1,473 +1,473 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../config/vilesci.config.inc.php'); -require_once('../include/functions.inc.php'); -require_once('../include/studiengang.class.php'); - -$user = get_uid(); -loadVariables($user); - -?> -// ********** GLOBALE VARIABLEN ********** // -var FunktionenTreeDatasource=''; // Datasource des Adressen Trees -var FunktionenSelectID=''; -var FunktionenUID=null; -var FunktionBezeichnungChanged=false; - -getAll(); - -echo 'var organisationseinheit = {'; -$content = ''; -foreach ($stg_obj->result as $stg) - $content .= '"'.$stg->studiengang_kz.'":"'.$stg->oe_kurzbz.'",'; -echo substr($content, 0, mb_strlen($content)-1).'};'; - -?> -// ********** LISTENER UND OBSERVER ********** // - -// **** -// * Observer fuer Adressen Tree -// * startet Rebuild nachdem das Refresh -// * der Datasource fertig ist -// **** -var FunktionenTreeSinkObserver = -{ - onBeginLoad : function(pSink) {}, - onInterrupt : function(pSink) {}, - onResume : function(pSink) {}, - onError : function(pSink, pStatus, pError) {}, - onEndLoad : function(pSink) - { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - document.getElementById('funktion-tree').builder.rebuild(); - } -}; - -// **** -// * Nach dem Rebuild wird der Eintrag wieder -// * markiert -// **** -var FunktionenTreeListener = -{ - willRebuild : function(builder) { }, - didRebuild : function(builder) - { - //timeout nur bei Mozilla notwendig da sonst die rows - //noch keine values haben. Ab Seamonkey funktionierts auch - //ohne dem setTimeout - window.setTimeout(FunktionenTreeSelectID,10); - } -}; - -// ********** FUNKTIONEN ********** // - -// **** -// * Laedt die Trees -// **** -function loadFunktionen(uid) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - FunktionenUID = uid; - - //Adressen laden - url = "rdf/benutzerfunktion.rdf.php?uid="+uid+"&"+gettimestamp(); - var tree=document.getElementById('funktion-tree'); - - try - { - FunktionenTreeDatasource.removeXMLSinkObserver(FunktionenTreeSinkObserver); - tree.builder.removeListener(FunktionenTreeListener); - } - catch(e) - {} - - //Alte DS entfernen - var oldDatasources = tree.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - tree.database.RemoveDataSource(oldDatasources.getNext()); - } - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - FunktionenTreeDatasource = rdfService.GetDataSource(url); - FunktionenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - FunktionenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); - tree.database.AddDataSource(FunktionenTreeDatasource); - FunktionenTreeDatasource.addXMLSinkObserver(FunktionenTreeSinkObserver); - tree.builder.addListener(FunktionenTreeListener); - FunktionDisableFields(false); - -} - -// **** -// * Selectiert eine Funktion nachdem der Tree -// * rebuildet wurde. -// **** -function FunktionenTreeSelectID() -{ - var tree=document.getElementById('funktion-tree'); - var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln - - //In der globalen Variable ist die zu selektierende Adresse gespeichert - if(FunktionenSelectID!=null) - { - for(var i=0;i, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/studiengang.class.php'); + +$user = get_uid(); +loadVariables($user); + +?> +// ********** GLOBALE VARIABLEN ********** // +var FunktionenTreeDatasource=''; // Datasource des Adressen Trees +var FunktionenSelectID=''; +var FunktionenUID=null; +var FunktionBezeichnungChanged=false; + +getAll(); + +echo 'var organisationseinheit = {'; +$content = ''; +foreach ($stg_obj->result as $stg) + $content .= '"'.$stg->studiengang_kz.'":"'.$stg->oe_kurzbz.'",'; +echo substr($content, 0, mb_strlen($content)-1).'};'; + +?> +// ********** LISTENER UND OBSERVER ********** // + +// **** +// * Observer fuer Adressen Tree +// * startet Rebuild nachdem das Refresh +// * der Datasource fertig ist +// **** +var FunktionenTreeSinkObserver = +{ + onBeginLoad : function(pSink) {}, + onInterrupt : function(pSink) {}, + onResume : function(pSink) {}, + onError : function(pSink, pStatus, pError) {}, + onEndLoad : function(pSink) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + document.getElementById('funktion-tree').builder.rebuild(); + } +}; + +// **** +// * Nach dem Rebuild wird der Eintrag wieder +// * markiert +// **** +var FunktionenTreeListener = +{ + willRebuild : function(builder) { }, + didRebuild : function(builder) + { + //timeout nur bei Mozilla notwendig da sonst die rows + //noch keine values haben. Ab Seamonkey funktionierts auch + //ohne dem setTimeout + window.setTimeout(FunktionenTreeSelectID,10); + } +}; + +// ********** FUNKTIONEN ********** // + +// **** +// * Laedt die Trees +// **** +function loadFunktionen(uid) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + FunktionenUID = uid; + + //Adressen laden + url = "rdf/benutzerfunktion.rdf.php?uid="+uid+"&"+gettimestamp(); + var tree=document.getElementById('funktion-tree'); + + try + { + FunktionenTreeDatasource.removeXMLSinkObserver(FunktionenTreeSinkObserver); + tree.builder.removeListener(FunktionenTreeListener); + } + catch(e) + {} + + //Alte DS entfernen + var oldDatasources = tree.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + tree.database.RemoveDataSource(oldDatasources.getNext()); + } + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + FunktionenTreeDatasource = rdfService.GetDataSource(url); + FunktionenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + FunktionenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); + tree.database.AddDataSource(FunktionenTreeDatasource); + FunktionenTreeDatasource.addXMLSinkObserver(FunktionenTreeSinkObserver); + tree.builder.addListener(FunktionenTreeListener); + FunktionDisableFields(false); + +} + +// **** +// * Selectiert eine Funktion nachdem der Tree +// * rebuildet wurde. +// **** +function FunktionenTreeSelectID() +{ + var tree=document.getElementById('funktion-tree'); + var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln + + //In der globalen Variable ist die zu selektierende Adresse gespeichert + if(FunktionenSelectID!=null) + { + for(var i=0;iprestudent_id)."' - AND tbl_benutzergruppe.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'"; + $qry_1 = "SELECT gruppe_kurzbz FROM public.tbl_prestudent JOIN public.tbl_benutzergruppe USING(prestudent_id) + WHERE tbl_prestudent.prestudent_id=".$db->db_add_param($row->prestudent_id, FHC_INTEGER)." + AND tbl_benutzergruppe.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz); if($db->db_query($qry_1)) { while($row_1 = $db->db_fetch_object()) diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index a760de9dd..317d7c088 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -3199,7 +3199,6 @@ if(!$error) if($_POST['pruefungstyp_kurzbz']=='Termin2') { - //Wenn ein 2. Termin angelegt wird, und kein 1. Termin vorhanden ist, //dann wird auch ein 1. Termin angelegt mit der derzeitigen Zeugnisnote $qry = "SELECT * FROM lehre.tbl_pruefung WHERE @@ -3211,7 +3210,7 @@ if(!$error) if($db->db_num_rows($result)==0) { $qry = "SELECT note,punkte, benotungsdatum FROM lehre.tbl_zeugnisnote JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE - prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." AND + prestudent_id=".$db->db_add_param($_POST["prestudent_id"], FHC_INTEGER)." AND tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." AND tbl_lehreinheit.studiensemester_kurzbz = tbl_zeugnisnote.studiensemester_kurzbz"; if($result = $db->db_query($qry)) @@ -3225,7 +3224,7 @@ if(!$error) $ersttermin->insertamum = date('Y-m-d H:i:s'); $ersttermin->insertvon = $user; $ersttermin->lehreinheit_id = $_POST['lehreinheit_id']; - $ersttermin->prestudent_id = $student->prestudent_id; + $ersttermin->prestudent_id = $_POST["prestudent_id"]; $ersttermin->mitarbeiter_uid = $_POST['mitarbeiter_uid']; $ersttermin->note = $row->note; $ersttermin->punkte = $row->punkte; diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index e700ba6ab..860082402 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -1378,7 +1378,7 @@ function StudentAuswahl() } if(parseInt(prestudent_id)) - {alert(prestudent_id + " zeugnisnote/lvgesamtnote"); // TODO EINE + { // *** ZeugnisNoten *** notentree = document.getElementById('student-noten-tree'); @@ -4307,7 +4307,7 @@ function StudentPruefungAuswahl() StudentPruefungDetailDisableFields(false); //Ausgewaehlte Nr holen - var col = tree.columns ? tree.columns["student-pruefung-tree-pruefung_id"] : "student-pruefung-tree-pruefung_id"; + var col = tree.columns ? tree.columns["student-pruefung-tree-pruefung_id"] : "student-pruefung-tree-pruefung_id"; var pruefung_id=tree.view.getCellText(tree.currentIndex,col); //Daten holen diff --git a/content/tempus.js.php b/content/tempus.js.php index eb948c830..7cb772b44 100644 --- a/content/tempus.js.php +++ b/content/tempus.js.php @@ -1,485 +1,485 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -require_once('../config/vilesci.config.inc.php'); -?> -var menuUndoDatasource=0; -var STPLlastDetailUrl='leer'; -var addon = Array(); -//Speichert die Position der Scrollbalken in der Wochenuebersicht -TimeTableWeekPositionX=0; -TimeTableWeekPositionY=0; - -// ---------------------------------------------------------- -// ------- CLASS Progressmeter ------------------------------ -function Progressmeter(progress_id) -{ - var id=progress_id; - var runningprogress=0; - this.StopPM=StopPM; - this.StartPM=StartPM; - - function StartPM() - { - // Progressmeter starten. - document.getElementById(id).setAttribute('mode','undetermined'); - runningprogress++; - } - - function StopPM() - { - runningprogress--; - if(runningprogress<0) - runningprogress=0; - - // Progressmeter stoppen wenn alle fertig sind - if(runningprogress==0) - document.getElementById(id).setAttribute('mode','determined'); - } -} -// ------ EndOf CLASS Progressmeter ------------------------------ - -var globalProgressmeter=new Progressmeter('statusbar-progressmeter'); -//globalProgressmeter.StartPM(); - -function closeWindow() -{ - //Warnung wenn Daten veraendert aber noch nicht gespeichert wurden - if(MitarbeiterDetailValueChanged) - { - if(!confirm('Achtung! Mitarbeiterdaten wurden veraendert aber noch nicht gespeichert. Programm wirklich beenden? \n(Die geaenderten Daten gehen dabei verloren)')) - return false; - } - - MitarbeiterDetailValueChanged=false; - - window.close(); -} - -function onLoad() -{ - try - { - initLektorTree(); - //Studenten Tab beim starten markieren - //document.getElementById('main-content-tabs').selectedItem=document.getElementById('tab-studenten'); - - for(i in addon) - { - addon[i].init(); - } - //Funktion ueberschreiben damit sie nicht nochmal aufgerufen wird - //wenn zb ein IFrame geladen wird - onLoad=function() {return false}; - - - if(document.getElementById('statusbarpanel-ignore_kollision')) - { - // Anzeige von DBTable und Ignorekoll. aktualisieren - window.setTimeout(updateignorekollision,20); - window.setTimeout(updatedbstpltable,20); - } - - //Notizen des Users laden - notiz = document.getElementById('box-notizen'); - if(notiz) - notiz.LoadNotizTree('','','','','','','', getUsername(),''); - } - catch(e) - { - debug('catched'+e); - onLoad=function() {return false}; - } -} - -function loadRightFrame() -{ - -} - -function loadURL(event) -{ - var contentFrame = document.getElementById('contentFrame'); - var url = event.target.getAttribute('value'); - - if (url) contentFrame.setAttribute('src', url); -} - -// **** -// * Aendert die Stundenplantabelle -// **** -function stpltableChange(db_stpl_table) -{ - variableChange('db_stpl_table', null, db_stpl_table); - return true; -} - -// **** -// * Wechselt von Studiensemester 'stsem' um 'wert' Studiensemester vor bzw zurueck -// **** -function studiensemesterChange(stsem, wert) -{ - if(typeof(wert)=='undefined') - { - wert=0; - if(typeof(stsem)=='undefined') - { - var items = document.getElementsByTagName('menuitem'); - - for(i in items) - { - if(items[i].id=='menu-properies-studiensemester-name' && items[i].getAttribute("checked")=='true') - stsem = items[i].label; - } - } - } - else - stsem = getStudiensemester(); - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - // Request absetzen - - var url = 'content/fasDBDML.php'; - - var req = new phpRequest(url,'',''); - - req.add('type', 'variablechange'); - req.add('stsem', stsem); - req.add('wert', wert); - - var response = req.executePOST(); - - var val = new ParseReturnValue(response) - - if (!val.dbdml_return) - { - if(val.dbdml_errormsg=='') - alert(response) - else - alert(val.dbdml_errormsg) - } - else - { - //Statusbar setzen - document.getElementById("statusbarpanel-text").label = "Studiensemester erfolgreich geaendert"; - document.getElementById("statusbarpanel-semester").label = val.dbdml_data; - //Menue setzen - var items = document.getElementsByTagName('menuitem'); - - for(i in items) - { - if(items[i].label==val.dbdml_data && items[i].id=='menu-properies-studiensemester-name') - { - items[i].setAttribute('checked',true); - break; - } - } - //MitarbeiterDetailStudiensemester_id = dbdml_errormsg; - //Ansichten Refreshen - try - { - StudentTreeRefresh(); - } - catch(e) - {} - - try - { - LvTreeRefresh(); - } - catch(e) - {} - } - - return true; -} - -// **** -// * Oeffnet ein Fenster zum Aendern eines Variablenwertes -// **** -function variableChangeValue(variable) -{ - var variablevalue = getvariable(variable); - - if(variablevalue = prompt('Bitte geben Sie den neuen Wert fuer '+variable+' ein', variablevalue)) - { - variableChange(variable, '', variablevalue); - } -} - -// **** -// * Aendert den Wert der Variable IgnoreKollision -// **** -function toggleIgnoreKollision() -{ - if(getvariable('ignore_kollision')=='true') - variableChange('ignore_kollision','menu-prefs-ignore_kollision', 'false'); - else - variableChange('ignore_kollision','menu-prefs-ignore_kollision', 'true'); -} - -// **** -// * Sendet einen Request zum Aendern einer Variable -// **** -function variableChange(variable, id, wert) -{ - if(id!=null) - item = document.getElementById(id); - - if(typeof(wert)==='undefined') - { - if(item.getAttribute('checked')=='true') - checked='true'; - else - checked='false'; - } - else - checked=wert; - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - // Request absetzen - - var url = 'content/fasDBDML.php'; - - var req = new phpRequest(url,'',''); - - req.add('type', 'variablechange'); - req.add('name', variable); - req.add('wert', checked); - - var response = req.executePOST(); - - var val = new ParseReturnValue(response) - - if (!val.dbdml_return) - { - if(val.dbdml_errormsg=='') - alert(response) - else - alert(val.dbdml_errormsg) - } - else - { - if(variable=='ignore_kollision') - updateignorekollision(); - if(variable=='db_stpl_table') - { - document.getElementById("statusbarpanel-db_table").label = wert; - updatedbstpltable(); - } - //Statusbar setzen - document.getElementById("statusbarpanel-text").label = "Variable erfolgreich geaendert"; - } -} - -// **** -// * Aktualisiert die IngnoreKollision Anzeige -// * sowohl in der Toolbar als auch im Menue -// **** -function updateignorekollision() -{ - var panel = document.getElementById('statusbarpanel-ignore_kollision'); - if(getvariable('ignore_kollision')=='true') - { - panel.label='Kollisionscheck AUS'; - panel.style.backgroundColor='#FF0000'; - panel.style.MozAppearance = "none" - document.getElementById('menu-prefs-ignore_kollision').setAttribute('checked','true'); - } - else - { - panel.label='Kollisionscheck AN'; - panel.style.backgroundColor=''; - panel.style.MozAppearance = "none" - document.getElementById('menu-prefs-ignore_kollision').setAttribute('checked','false'); - } -} - -// **** -// * Markiert den Eintrag in der Statusleiste rot wenn auf die -// * echte stpl tabelle zugegriffen wird -// **** -function updatedbstpltable() -{ - var panel = document.getElementById('statusbarpanel-db_table'); - - if(panel.label=='stundenplan') - { - panel.style.backgroundColor='#FF0000'; - panel.style.MozAppearance = "none" - } - else - { - panel.style.backgroundColor=''; - panel.style.MozAppearance = "none" - } -} - - -// **** -// * Liefert das eingestellte Studiensemester -// **** -function getStudiensemesterVariable() -{ - if(stsem = getvariable('semester_aktuell')) - { - //Statusbar setzen - document.getElementById("statusbarpanel-text").label = "Studiensemester erfolgreich geaendert"; - document.getElementById("statusbarpanel-semester").label = stsem; - //Menue setzen - var items = document.getElementsByTagName('menuitem'); - - for(i in items) - { - if(items[i].label==stsem && items[i].id=='menu-properies-studiensemester-name') - { - items[i].setAttribute('checked',true); - break; - } - } - - //Ansichten Refreshen - try - { - StudentTreeRefresh(); - } - catch(e) - {} - - try - { - LvTreeRefresh(); - } - catch(e) - {} - } -} - -// **** -// * Laedt das Undo Menue Neu -// **** -function loadUndoList() -{ - menu = document.getElementById('menu-edit-undo'); - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - if(menuUndoDatasource==0) - { - //Wenn noch keine Datasource angegeben ist, dann wird eine neue hinzugefuegt - var url = 'rdf/undo.rdf.php?'+gettimestamp(); - - //Alte DS entfernen - var oldDatasources = menu.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - menu.database.RemoveDataSource(oldDatasources.getNext()); - } - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - menuUndoDatasource = rdfService.GetDataSource(url); - menuUndoDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - menu.database.AddDataSource(menuUndoDatasource); - } - else - { - //Wenn die Datasource bereits geladen wurde dann nur neu laden - menuUndoDatasource.Refresh(true); //blocking - menu.builder.rebuild(); - } - - return true; -} - -// **** -// * Fuehrt den Undo Befehl aus -// **** -function UnDo(log_id, bezeichnung) -{ - if(confirm('Wollen Sie folgenden Befehl wirklich Rueckgaengig machen: '+bezeichnung)) - { - //Request absetzen - var req = new phpRequest('tempusDBDML.php','',''); - - req.add('type','undo'); - req.add('log_id',log_id); - - var response = req.executePOST(); - var val = new ParseReturnValue(response) - - if (!val.dbdml_return) - { - alert(val.dbdml_errormsg) - } - else - { - LvTreeRefresh(); - onJumpDate(0); - } - } -} - -// **** -// * Zeigt das Fenster zur Kollisionspruefung auf Studentenebene an -// **** -function KollisionStudentShow() -{ - window.open('vilesci/lehre/stpl_benutzer_kollision_frameset.html', 'Kollision Student'); -} -// **** -// * Zeigt das Fenster zur LVPlanWartung -// **** -function LVPlanWartungShow() -{ - window.open('vilesci/lehre/lvplanwartung.php', 'LVPLanWartung'); -} - -// **** -// * Zeigt das Fenster zur Kollisionspruefung mit Reservierungen -// **** -function ResCheckShow() -{ - window.open('vilesci/lehre/check/res_check.php', 'KollisionReservierung'); -} -// **** -// * Zeigt das Fenster zur Kollisionspruefung mit Reservierungen -// **** -function SyncLVPlan() -{ - window.open('vilesci/lehre/lvplan_custom_sync.php', 'LVPlan Sync'); -} - -// **** -// * Oeffnet das Handbuch -// **** -function OpenManualTempus() -{ - window.open('content/Tempus.pdf','Manual'); -} - -// **** -// * Oeffnet den About Dialog -// **** -function OpenAboutDialog() -{ - window.open('content/about.xul.php','About','height=520,width=500,left=350,top=350,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); -} +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +require_once('../config/vilesci.config.inc.php'); +?> +var menuUndoDatasource=0; +var STPLlastDetailUrl='leer'; +var addon = Array(); +//Speichert die Position der Scrollbalken in der Wochenuebersicht +TimeTableWeekPositionX=0; +TimeTableWeekPositionY=0; + +// ---------------------------------------------------------- +// ------- CLASS Progressmeter ------------------------------ +function Progressmeter(progress_id) +{ + var id=progress_id; + var runningprogress=0; + this.StopPM=StopPM; + this.StartPM=StartPM; + + function StartPM() + { + // Progressmeter starten. + document.getElementById(id).setAttribute('mode','undetermined'); + runningprogress++; + } + + function StopPM() + { + runningprogress--; + if(runningprogress<0) + runningprogress=0; + + // Progressmeter stoppen wenn alle fertig sind + if(runningprogress==0) + document.getElementById(id).setAttribute('mode','determined'); + } +} +// ------ EndOf CLASS Progressmeter ------------------------------ + +var globalProgressmeter=new Progressmeter('statusbar-progressmeter'); +//globalProgressmeter.StartPM(); + +function closeWindow() +{ + //Warnung wenn Daten veraendert aber noch nicht gespeichert wurden + if(MitarbeiterDetailValueChanged) + { + if(!confirm('Achtung! Mitarbeiterdaten wurden veraendert aber noch nicht gespeichert. Programm wirklich beenden? \n(Die geaenderten Daten gehen dabei verloren)')) + return false; + } + + MitarbeiterDetailValueChanged=false; + + window.close(); +} + +function onLoad() +{ + try + { + initLektorTree(); + //Studenten Tab beim starten markieren + //document.getElementById('main-content-tabs').selectedItem=document.getElementById('tab-studenten'); + + for(i in addon) + { + addon[i].init(); + } + //Funktion ueberschreiben damit sie nicht nochmal aufgerufen wird + //wenn zb ein IFrame geladen wird + onLoad=function() {return false}; + + + if(document.getElementById('statusbarpanel-ignore_kollision')) + { + // Anzeige von DBTable und Ignorekoll. aktualisieren + window.setTimeout(updateignorekollision,20); + window.setTimeout(updatedbstpltable,20); + } + + //Notizen des Users laden + notiz = document.getElementById('box-notizen'); + if(notiz) + notiz.LoadNotizTree('','','','','','','', getUsername(),''); + } + catch(e) + { + debug('catched'+e); + onLoad=function() {return false}; + } +} + +function loadRightFrame() +{ + +} + +function loadURL(event) +{ + var contentFrame = document.getElementById('contentFrame'); + var url = event.target.getAttribute('value'); + + if (url) contentFrame.setAttribute('src', url); +} + +// **** +// * Aendert die Stundenplantabelle +// **** +function stpltableChange(db_stpl_table) +{ + variableChange('db_stpl_table', null, db_stpl_table); + return true; +} + +// **** +// * Wechselt von Studiensemester 'stsem' um 'wert' Studiensemester vor bzw zurueck +// **** +function studiensemesterChange(stsem, wert) +{ + if(typeof(wert)=='undefined') + { + wert=0; + if(typeof(stsem)=='undefined') + { + var items = document.getElementsByTagName('menuitem'); + + for(i in items) + { + if(items[i].id=='menu-properies-studiensemester-name' && items[i].getAttribute("checked")=='true') + stsem = items[i].label; + } + } + } + else + stsem = getStudiensemester(); + + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + // Request absetzen + + var url = 'content/fasDBDML.php'; + + var req = new phpRequest(url,'',''); + + req.add('type', 'variablechange'); + req.add('stsem', stsem); + req.add('wert', wert); + + var response = req.executePOST(); + + var val = new ParseReturnValue(response) + + if (!val.dbdml_return) + { + if(val.dbdml_errormsg=='') + alert(response) + else + alert(val.dbdml_errormsg) + } + else + { + //Statusbar setzen + document.getElementById("statusbarpanel-text").label = "Studiensemester erfolgreich geaendert"; + document.getElementById("statusbarpanel-semester").label = val.dbdml_data; + //Menue setzen + var items = document.getElementsByTagName('menuitem'); + + for(i in items) + { + if(items[i].label==val.dbdml_data && items[i].id=='menu-properies-studiensemester-name') + { + items[i].setAttribute('checked',true); + break; + } + } + //MitarbeiterDetailStudiensemester_id = dbdml_errormsg; + //Ansichten Refreshen + try + { + StudentTreeRefresh(); + } + catch(e) + {} + + try + { + LvTreeRefresh(); + } + catch(e) + {} + } + + return true; +} + +// **** +// * Oeffnet ein Fenster zum Aendern eines Variablenwertes +// **** +function variableChangeValue(variable) +{ + var variablevalue = getvariable(variable); + + if(variablevalue = prompt('Bitte geben Sie den neuen Wert fuer '+variable+' ein', variablevalue)) + { + variableChange(variable, '', variablevalue); + } +} + +// **** +// * Aendert den Wert der Variable IgnoreKollision +// **** +function toggleIgnoreKollision() +{ + if(getvariable('ignore_kollision')=='true') + variableChange('ignore_kollision','menu-prefs-ignore_kollision', 'false'); + else + variableChange('ignore_kollision','menu-prefs-ignore_kollision', 'true'); +} + +// **** +// * Sendet einen Request zum Aendern einer Variable +// **** +function variableChange(variable, id, wert) +{ + if(id!=null) + item = document.getElementById(id); + + if(typeof(wert)==='undefined') + { + if(item.getAttribute('checked')=='true') + checked='true'; + else + checked='false'; + } + else + checked=wert; + + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + // Request absetzen + + var url = 'content/fasDBDML.php'; + + var req = new phpRequest(url,'',''); + + req.add('type', 'variablechange'); + req.add('name', variable); + req.add('wert', checked); + + var response = req.executePOST(); + + var val = new ParseReturnValue(response) + + if (!val.dbdml_return) + { + if(val.dbdml_errormsg=='') + alert(response) + else + alert(val.dbdml_errormsg) + } + else + { + if(variable=='ignore_kollision') + updateignorekollision(); + if(variable=='db_stpl_table') + { + document.getElementById("statusbarpanel-db_table").label = wert; + updatedbstpltable(); + } + //Statusbar setzen + document.getElementById("statusbarpanel-text").label = "Variable erfolgreich geaendert"; + } +} + +// **** +// * Aktualisiert die IngnoreKollision Anzeige +// * sowohl in der Toolbar als auch im Menue +// **** +function updateignorekollision() +{ + var panel = document.getElementById('statusbarpanel-ignore_kollision'); + if(getvariable('ignore_kollision')=='true') + { + panel.label='Kollisionscheck AUS'; + panel.style.backgroundColor='#FF0000'; + panel.style.MozAppearance = "none" + document.getElementById('menu-prefs-ignore_kollision').setAttribute('checked','true'); + } + else + { + panel.label='Kollisionscheck AN'; + panel.style.backgroundColor=''; + panel.style.MozAppearance = "none" + document.getElementById('menu-prefs-ignore_kollision').setAttribute('checked','false'); + } +} + +// **** +// * Markiert den Eintrag in der Statusleiste rot wenn auf die +// * echte stpl tabelle zugegriffen wird +// **** +function updatedbstpltable() +{ + var panel = document.getElementById('statusbarpanel-db_table'); + + if(panel.label=='stundenplan') + { + panel.style.backgroundColor='#FF0000'; + panel.style.MozAppearance = "none" + } + else + { + panel.style.backgroundColor=''; + panel.style.MozAppearance = "none" + } +} + + +// **** +// * Liefert das eingestellte Studiensemester +// **** +function getStudiensemesterVariable() +{ + if(stsem = getvariable('semester_aktuell')) + { + //Statusbar setzen + document.getElementById("statusbarpanel-text").label = "Studiensemester erfolgreich geaendert"; + document.getElementById("statusbarpanel-semester").label = stsem; + //Menue setzen + var items = document.getElementsByTagName('menuitem'); + + for(i in items) + { + if(items[i].label==stsem && items[i].id=='menu-properies-studiensemester-name') + { + items[i].setAttribute('checked',true); + break; + } + } + + //Ansichten Refreshen + try + { + StudentTreeRefresh(); + } + catch(e) + {} + + try + { + LvTreeRefresh(); + } + catch(e) + {} + } +} + +// **** +// * Laedt das Undo Menue Neu +// **** +function loadUndoList() +{ + menu = document.getElementById('menu-edit-undo'); + + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + if(menuUndoDatasource==0) + { + //Wenn noch keine Datasource angegeben ist, dann wird eine neue hinzugefuegt + var url = 'rdf/undo.rdf.php?'+gettimestamp(); + + //Alte DS entfernen + var oldDatasources = menu.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + menu.database.RemoveDataSource(oldDatasources.getNext()); + } + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + menuUndoDatasource = rdfService.GetDataSource(url); + menuUndoDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + menu.database.AddDataSource(menuUndoDatasource); + } + else + { + //Wenn die Datasource bereits geladen wurde dann nur neu laden + menuUndoDatasource.Refresh(true); //blocking + menu.builder.rebuild(); + } + + return true; +} + +// **** +// * Fuehrt den Undo Befehl aus +// **** +function UnDo(log_id, bezeichnung) +{ + if(confirm('Wollen Sie folgenden Befehl wirklich Rueckgaengig machen: '+bezeichnung)) + { + //Request absetzen + var req = new phpRequest('tempusDBDML.php','',''); + + req.add('type','undo'); + req.add('log_id',log_id); + + var response = req.executePOST(); + var val = new ParseReturnValue(response) + + if (!val.dbdml_return) + { + alert(val.dbdml_errormsg) + } + else + { + LvTreeRefresh(); + onJumpDate(0); + } + } +} + +// **** +// * Zeigt das Fenster zur Kollisionspruefung auf Studentenebene an +// **** +function KollisionStudentShow() +{ + window.open('vilesci/lehre/stpl_benutzer_kollision_frameset.html', 'Kollision Student'); +} +// **** +// * Zeigt das Fenster zur LVPlanWartung +// **** +function LVPlanWartungShow() +{ + window.open('vilesci/lehre/lvplanwartung.php', 'LVPLanWartung'); +} + +// **** +// * Zeigt das Fenster zur Kollisionspruefung mit Reservierungen +// **** +function ResCheckShow() +{ + window.open('vilesci/lehre/check/res_check.php', 'KollisionReservierung'); +} +// **** +// * Zeigt das Fenster zur Kollisionspruefung mit Reservierungen +// **** +function SyncLVPlan() +{ + window.open('vilesci/lehre/lvplan_custom_sync.php', 'LVPlan Sync'); +} + +// **** +// * Oeffnet das Handbuch +// **** +function OpenManualTempus() +{ + window.open('content/Tempus.pdf','Manual'); +} + +// **** +// * Oeffnet den About Dialog +// **** +function OpenAboutDialog() +{ + window.open('content/about.xul.php','About','height=520,width=500,left=350,top=350,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); +} diff --git a/include/konto.class.php b/include/konto.class.php index fcd6c9cbc..90505fec4 100644 --- a/include/konto.class.php +++ b/include/konto.class.php @@ -761,14 +761,15 @@ class konto extends basis_db * Die Gegenbuchung wird nicht beruecksichtigt. * @return Anzahl der Verfuegbaren CreditPoints oder false falls unbeschraenkt */ - public function getCreditPoints($uid, $studiensemester_kurzbz) + public function getCreditPoints($prestudent_id, $studiensemester_kurzbz) { $qry = "SELECT sum(credit_points) as cp FROM public.tbl_konto JOIN public.tbl_benutzer USING(person_id) + JOIN public.tbl_prestudent USING(uid) WHERE - uid=".$this->db_add_param($uid)." + prestudent_id=".$this->db_add_param($prestudent_id)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." AND buchungsnr_verweis is null AND credit_points is not null"; @@ -783,7 +784,7 @@ class konto extends basis_db { // Bereits verwendete CreditPoints ermitteln $lehrveranstaltung = new lehrveranstaltung(); - $verwendet = $lehrveranstaltung->getUsedECTS($uid, $studiensemester_kurzbz); + $verwendet = $lehrveranstaltung->getUsedECTS($prestudent_id, $studiensemester_kurzbz); return ($creditpoints-($verwendet)); } else diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index b13277b56..3abe2a10d 100755 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -527,7 +527,7 @@ class lehrveranstaltung extends basis_db WHERE lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM campus.vw_student_lehrveranstaltung WHERE prestudent_id=" . $this->db_add_param($prestudent_id); if($studiensemester_kurzbz !== NULL) - $qry .= " AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); + $qry .= " AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); $qry .= ") OR lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM lehre.tbl_zeugnisnote WHERE prestudent_id=" . $this->db_add_param($prestudent_id); if($studiensemester_kurzbz !== NULL) $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param ($studiensemester_kurzbz); @@ -1907,7 +1907,7 @@ class lehrveranstaltung extends basis_db FROM campus.vw_student_lehrveranstaltung WHERE - uid=".$this->db_add_param($uid)." + prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." UNION SELECT @@ -1939,86 +1939,83 @@ class lehrveranstaltung extends basis_db } } - /** - * lädt die Lehrveranstaltungen zum zugehörigen Mitarbeiter - * @param String $uid User ID des Mitarbeiters - * @param String $studiensemster_kurzbz Kurzbezeichnung des Studiensemesters - */ - public function getLVByMitarbeiter($uid, $studiensemester_kurzbz = null) - { - $qry = 'SELECT DISTINCT tbl_lehrveranstaltung.* FROM lehre.tbl_lehrveranstaltung - JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) - JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) - WHERE - mitarbeiter_uid='.$this->db_add_param($uid); + /** + * lädt die Lehrveranstaltungen zum zugehörigen Mitarbeiter + * @param String $uid User ID des Mitarbeiters + * @param String $studiensemster_kurzbz Kurzbezeichnung des Studiensemesters + */ + public function getLVByMitarbeiter($uid, $studiensemester_kurzbz = null) + { + $qry = 'SELECT DISTINCT tbl_lehrveranstaltung.* FROM lehre.tbl_lehrveranstaltung + JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) + JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) + WHERE + mitarbeiter_uid='.$this->db_add_param($uid); - if($studiensemester_kurzbz != null) - { - $qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).';'; - } + if($studiensemester_kurzbz != null) + { + $qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).';'; + } - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $lv_obj = new lehrveranstaltung(); + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $lv_obj = new lehrveranstaltung(); - $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $lv_obj->studiengang_kz = $row->studiengang_kz; - $lv_obj->bezeichnung = $row->bezeichnung; - $lv_obj->kurzbz = $row->kurzbz; - $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; - $lv_obj->semester = $row->semester; - $lv_obj->ects = $row->ects; - $lv_obj->semesterstunden = $row->semesterstunden; - $lv_obj->anmerkung = $row->anmerkung; - $lv_obj->lehre = $this->db_parse_bool($row->lehre); - $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; - $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); - $lv_obj->ext_id = $row->ext_id; - $lv_obj->insertamum = $row->insertamum; - $lv_obj->insertvon = $row->insertvon; - $lv_obj->planfaktor = $row->planfaktor; - $lv_obj->planlektoren = $row->planlektoren; - $lv_obj->planpersonalkosten = $row->planpersonalkosten; - $lv_obj->plankostenprolektor = $row->plankostenprolektor; - $lv_obj->updateamum = $row->updateamum; - $lv_obj->updatevon = $row->updatevon; - $lv_obj->sprache = $row->sprache; - $lv_obj->sort = $row->sort; - $lv_obj->incoming = $row->incoming; - $lv_obj->zeugnis = $this->db_parse_bool($row->zeugnis); - $lv_obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); - $lv_obj->zeugnis = $row->koordinator; - $lv_obj->bezeichnung_english = $row->bezeichnung_english; - $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; - $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; - $lv_obj->oe_kurzbz = $row->oe_kurzbz; - $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; - $lv_obj->anzahlsemester = $row->anzahlsemester; - $lv_obj->semesterwochen = $row->semesterwochen; - $lv_obj->lvnr = $row->lvnr; - $lv_obj->semester_alternativ = $row->semester_alternativ; - $lv_obj->farbe = $row->farbe; - $lv_obj->benotung = $this->db_parse_bool($row->benotung); - $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); - $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); + $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $lv_obj->studiengang_kz = $row->studiengang_kz; + $lv_obj->bezeichnung = $row->bezeichnung; + $lv_obj->kurzbz = $row->kurzbz; + $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; + $lv_obj->semester = $row->semester; + $lv_obj->ects = $row->ects; + $lv_obj->semesterstunden = $row->semesterstunden; + $lv_obj->anmerkung = $row->anmerkung; + $lv_obj->lehre = $this->db_parse_bool($row->lehre); + $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; + $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); + $lv_obj->ext_id = $row->ext_id; + $lv_obj->insertamum = $row->insertamum; + $lv_obj->insertvon = $row->insertvon; + $lv_obj->planfaktor = $row->planfaktor; + $lv_obj->planlektoren = $row->planlektoren; + $lv_obj->planpersonalkosten = $row->planpersonalkosten; + $lv_obj->plankostenprolektor = $row->plankostenprolektor; + $lv_obj->updateamum = $row->updateamum; + $lv_obj->updatevon = $row->updatevon; + $lv_obj->sprache = $row->sprache; + $lv_obj->sort = $row->sort; + $lv_obj->incoming = $row->incoming; + $lv_obj->zeugnis = $this->db_parse_bool($row->zeugnis); + $lv_obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); + $lv_obj->zeugnis = $row->koordinator; + $lv_obj->bezeichnung_english = $row->bezeichnung_english; + $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; + $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; + $lv_obj->oe_kurzbz = $row->oe_kurzbz; + $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; + $lv_obj->anzahlsemester = $row->anzahlsemester; + $lv_obj->semesterwochen = $row->semesterwochen; + $lv_obj->lvnr = $row->lvnr; + $lv_obj->semester_alternativ = $row->semester_alternativ; + $lv_obj->farbe = $row->farbe; + $lv_obj->benotung = $this->db_parse_bool($row->benotung); + $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); + $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); - $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; - $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; - if ($lv_obj->bezeichnung_arr['English'] == '') - $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; + $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; + $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; + if ($lv_obj->bezeichnung_arr['English'] == '') + $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; - $this->lehrveranstaltungen[] = $lv_obj; - } - return true; - } - else - { - $this->errormsg = "Lehrveranstaltungen konnten nicht geladen werden."; - } - - } + $this->lehrveranstaltungen[] = $lv_obj; + } + return true; + } + $this->errormsg = "Lehrveranstaltungen konnten nicht geladen werden."; + return false; + } /** * Lädt alle Studenten UIDs die die angegebenen LV besuchen (optional mit Studiensemester) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 4fee8e9ae..96702c9b2 100755 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -26,6 +26,7 @@ require_once(dirname(__FILE__).'/log.class.php'); require_once(dirname(__FILE__).'/phrasen.class.php'); require_once(dirname(__FILE__).'/globals.inc.php'); require_once(dirname(__FILE__).'/sprache.class.php'); +require_once(dirname(__FILE__).'/authentication.class.php'); $sprache = getSprache(); $lang = new sprache(); @@ -1866,4 +1867,48 @@ class prestudent extends person return false; } } + + /** + * Laedt die Rolle + * + * @param $studiengang_kz + * @return boolean + */ + public function loadActualFromStg($studiengang_kz) + { + + if(!is_numeric($studiengang_kz)) + { + $this->errormsg = 'studiengang_kz ist ungueltig'; + return false; + } + + $auth = new authentication(); + $uid = $auth->getUser(); + + + $qry = "SELECT prestudent_id FROM tbl_prestudent WHERE uid=".$this->db_add_param($uid)." AND studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER); + $result = $this->db_query($qry); + $count = $this->db_num_rows($result); + + switch($count) + { + case 0: + $this->errormsg = 'es wurde kein Prestudent gefunden'; + break; + case 1: + if(!$row = $this->db_fetch_object($result)) + { + $this->errormsg = 'Fehler beim Ermitteln des Prestudenten'; + break; + } + $this->load($row->prestudent_id); + return true; + default: + $this->errormsg = 'der Prestudent ist nicht eindeutig'; + break; + } + + return false; + } } diff --git a/include/pruefung.class.php b/include/pruefung.class.php index 425968b6d..27249a226 100755 --- a/include/pruefung.class.php +++ b/include/pruefung.class.php @@ -217,36 +217,36 @@ class pruefung extends basis_db return false; } - if($this->new) - { - //Neuen Datensatz anlegen - $qry = 'BEGIN;INSERT INTO lehre.tbl_pruefung (lehreinheit_id, prestudent_id, mitarbeiter_uid, note, pruefungstyp_kurzbz, - datum, anmerkung, insertamum, insertvon, updateamum, updatevon, pruefungsanmeldung_id, vertrag_id, punkte) VALUES ('. - $this->db_add_param($this->lehreinheit_id).', '. - $this->db_add_param($this->prestudent_id).', '. - $this->db_add_param($this->mitarbeiter_uid).', '. - $this->db_add_param($this->note).', '. - $this->db_add_param($this->pruefungstyp_kurzbz).', '. - $this->db_add_param($this->datum).', '. - $this->db_add_param($this->anmerkung).', '. - $this->db_add_param($this->insertamum).', '. - $this->db_add_param($this->insertvon).', '. - $this->db_add_param($this->updateamum).', '. - $this->db_add_param($this->updatevon).', '. - $this->db_add_param($this->pruefungsanmeldung_id).','. - $this->db_add_param($this->vertrag_id).','. - $this->db_add_param($this->punkte).');'; - } - else - { - //bestehenden Datensatz akualisieren + if($this->new) + { + //Neuen Datensatz anlegen + $qry = 'BEGIN;INSERT INTO lehre.tbl_pruefung (lehreinheit_id, prestudent_id, mitarbeiter_uid, note, pruefungstyp_kurzbz, + datum, anmerkung, insertamum, insertvon, updateamum, updatevon, pruefungsanmeldung_id, vertrag_id, punkte) VALUES ('. + $this->db_add_param($this->lehreinheit_id).', '. + $this->db_add_param($this->prestudent_id).', '. + $this->db_add_param($this->mitarbeiter_uid).', '. + $this->db_add_param($this->note).', '. + $this->db_add_param($this->pruefungstyp_kurzbz).', '. + $this->db_add_param($this->datum).', '. + $this->db_add_param($this->anmerkung).', '. + $this->db_add_param($this->insertamum).', '. + $this->db_add_param($this->insertvon).', '. + $this->db_add_param($this->updateamum).', '. + $this->db_add_param($this->updatevon).', '. + $this->db_add_param($this->pruefungsanmeldung_id).','. + $this->db_add_param($this->vertrag_id).','. + $this->db_add_param($this->punkte).');'; + } + else + { + //bestehenden Datensatz akualisieren - //Pruefen ob pruefung_id gueltig ist - if(!is_numeric($this->pruefung_id)) - { - $this->errormsg = 'pruefung_id ist ungueltig.'; - return false; - } + //Pruefen ob pruefung_id gueltig ist + if(!is_numeric($this->pruefung_id)) + { + $this->errormsg = 'pruefung_id ist ungueltig.'; + return false; + } $qry = 'UPDATE lehre.tbl_pruefung SET '. 'lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '. diff --git a/include/pruefungCis.class.php b/include/pruefungCis.class.php index 8704daa4b..e7854f4d1 100644 --- a/include/pruefungCis.class.php +++ b/include/pruefungCis.class.php @@ -583,7 +583,7 @@ class pruefungCis extends basis_db } return true; } - + /** * Lädt alle Prüfungen zur angebenen Lehrveranstaltung * @param String|Array $lehrveranstaltung_IDs einzelne ID einer Lehrveranstaltung oder ein Array von IDs diff --git a/include/pruefungsanmeldung.class.php b/include/pruefungsanmeldung.class.php index 49dd8dd54..7bdadeb63 100644 --- a/include/pruefungsanmeldung.class.php +++ b/include/pruefungsanmeldung.class.php @@ -19,28 +19,30 @@ * MA 02110-1301, USA. * * - * Authors: Stefan Puraner + * Authors: Stefan Puraner and + * Andreas Moik . */ require_once(dirname(__FILE__) . '/basis_db.class.php'); -class pruefungsanmeldung extends basis_db { - public $new; - public $result = array(); - - public $pruefungsanmeldung_id; //bigint - public $uid; //varchar(32) - public $pruefungstermin_id; //bigint - public $lehrveranstaltung_id; //bigint - public $status_kurzbz; //varchar(32) - public $wuensche; //text - public $reihung; //smallint - public $kommentar; //text - public $statusupdatevon; //varchar(32) - public $statusupdateamum; //timestamp - public $anrechnung_id; //integer - public $pruefungstyp_kurzbz; //varchar(32) - +class pruefungsanmeldung extends basis_db +{ + public $new; + public $result = array(); + + public $pruefungsanmeldung_id; //bigint + public $uid; //varchar(32) + public $pruefungstermin_id; //bigint + public $lehrveranstaltung_id; //bigint + public $status_kurzbz; //varchar(32) + public $wuensche; //text + public $reihung; //smallint + public $kommentar; //text + public $statusupdatevon; //varchar(32) + public $statusupdateamum; //timestamp + public $anrechnung_id; //integer + public $pruefungstyp_kurzbz; //varchar(32) + /** * Konstruktor * @param pruefung_id ID der zu ladenden Prüfung @@ -170,52 +172,52 @@ class pruefungsanmeldung extends basis_db { return true; } } - - /** - * Lädt alle Prüfungsanmeldungen eines Studenten - * @param type $uid UID eines Studenten - * @param type $studiensemester_kurbz Filter nach Studiensemester (zB 'WS2013') - * @param type $status_kurzbz Filter nach Status (zB 'angemeldet') - * @return boolean|array false, bei Fehler; Array mit Anmeldungen - */ - public function getAnmeldungenByStudent($uid, $studiensemester_kurbz=null, $status_kurzbz=null) - { - $qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung pa ' - . 'JOIN campus.tbl_pruefungstermin pt ON pa.pruefungstermin_id=pt.pruefungstermin_id ' - . 'JOIN campus.tbl_pruefung p ON p.pruefung_id=pt.pruefung_id ' - . 'WHERE uid='.$this->db_add_param($uid).';'; - - if(!$this->db_query($qry)) - { - $this->errormsg = 'Anmeldungen konnten nicht geladen werden.'; - return false; - } - else - { - $anmeldungen = array(); - while($row = $this->db_fetch_object()) - { - $anmeldung = new stdClass(); - $anmeldung->pruefungsanmeldung_id = $row->pruefungsanmeldung_id; - $anmeldung->uid = $row->uid; - $anmeldung->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $anmeldung->status_kurzbz = $row->status_kurzbz; - $anmeldung->pruefungstermin_id = $row->pruefungstermin_id; - $anmeldung->pruefung_id = $row->pruefung_id; - $anmeldung->von = $row->von; - $anmeldung->bis = $row->bis; - $anmeldung->reihung = $row->reihung; - $anmeldung->wuensche = $row->wuensche; - $anmeldung->kommentar = $row->kommentar; - $anmeldung->statusupdateamum = $row->statusupdateamum; - $anmeldung->statusupdatevon = $row->statusupdatevon; - $anmeldung->anrechnung_id = $row->anrechnung_id; - $anmeldung->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; - array_push($anmeldungen, $anmeldung); - } - return $anmeldungen; - } - } + + /** + * Lädt alle Prüfungsanmeldungen eines Studenten + * @param type $uid UID eines Studenten + * @param type $studiensemester_kurbz Filter nach Studiensemester (zB 'WS2013') + * @param type $status_kurzbz Filter nach Status (zB 'angemeldet') + * @return boolean|array false, bei Fehler; Array mit Anmeldungen + */ + public function getAnmeldungenByStudent($uid, $studiensemester_kurbz=null, $status_kurzbz=null) + { + $qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung pa ' + . 'JOIN campus.tbl_pruefungstermin pt ON pa.pruefungstermin_id=pt.pruefungstermin_id ' + . 'JOIN campus.tbl_pruefung p ON p.pruefung_id=pt.pruefung_id ' + . 'WHERE uid='.$this->db_add_param($uid).';'; + + if(!$this->db_query($qry)) + { + $this->errormsg = 'Anmeldungen konnten nicht geladen werden.'; + return false; + } + else + { + $anmeldungen = array(); + while($row = $this->db_fetch_object()) + { + $anmeldung = new stdClass(); + $anmeldung->pruefungsanmeldung_id = $row->pruefungsanmeldung_id; + $anmeldung->uid = $row->uid; + $anmeldung->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $anmeldung->status_kurzbz = $row->status_kurzbz; + $anmeldung->pruefungstermin_id = $row->pruefungstermin_id; + $anmeldung->pruefung_id = $row->pruefung_id; + $anmeldung->von = $row->von; + $anmeldung->bis = $row->bis; + $anmeldung->reihung = $row->reihung; + $anmeldung->wuensche = $row->wuensche; + $anmeldung->kommentar = $row->kommentar; + $anmeldung->statusupdateamum = $row->statusupdateamum; + $anmeldung->statusupdatevon = $row->statusupdatevon; + $anmeldung->anrechnung_id = $row->anrechnung_id; + $anmeldung->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; + array_push($anmeldungen, $anmeldung); + } + return $anmeldungen; + } + } /** * Lädt alle Anmeldungen eines Prüfungstermins @@ -276,33 +278,33 @@ class pruefungsanmeldung extends basis_db { } } - /** - * Löscht eine Prüfungsanmeldung - * @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung - * @param type $uid UID eines Studenten - * @return boolean true, wenn ok; false im Fehlerfall - */ - public function delete($pruefungsanmeldung_id, $uid=null) - { - $qry = 'DELETE FROM campus.tbl_pruefungsanmeldung WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id); - - if(!is_null($uid)) + /** + * Löscht eine Prüfungsanmeldung + * @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung + * @param type $uid UID eines Studenten + * @return boolean true, wenn ok; false im Fehlerfall + */ + public function delete($pruefungsanmeldung_id, $uid=null) { - $qry .= ' AND uid='.$this->db_add_param($uid); + $qry = 'DELETE FROM campus.tbl_pruefungsanmeldung WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id); + + if(!is_null($uid)) + { + $qry .= ' AND uid='.$this->db_add_param($uid); + } + + $qry .= ' ;'; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Anmeldung konnte nicht gelöscht werden.'; + return false; + } } - - $qry .= ' ;'; - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Anmeldung konnte nicht gelöscht werden.'; - return false; - } - } /** * speichert die Reihung eines Anmeldungstermins @@ -342,26 +344,26 @@ class pruefungsanmeldung extends basis_db { return false; } - - /** - * Ändert den Status einer Prüfungsanmeldung - * @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung - * @param type $status Status auf den geändert werden soll - * @return boolean true, wenn ok; false, im Fehlerfall - */ - public function changeState($pruefungsanmeldung_id, $status, $user) - { - $qry = 'UPDATE campus.tbl_pruefungsanmeldung SET ' - . 'status_kurzbz='.$this->db_add_param($status).', ' - . 'statusupdatevon='.$this->db_add_param($user).', ' - . 'statusupdateamum=NOW() ' - . ' WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';'; - - if(!$this->db_query($qry)) + + /** + * Ändert den Status einer Prüfungsanmeldung + * @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung + * @param type $status Status auf den geändert werden soll + * @return boolean true, wenn ok; false, im Fehlerfall + */ + public function changeState($pruefungsanmeldung_id, $status, $user) { - $this->errormsg = 'Status konnte nicht geändert werden.'; - return false; + $qry = 'UPDATE campus.tbl_pruefungsanmeldung SET ' + . 'status_kurzbz='.$this->db_add_param($status).', ' + . 'statusupdatevon='.$this->db_add_param($user).', ' + . 'statusupdateamum=NOW() ' + . ' WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';'; + + if(!$this->db_query($qry)) + { + $this->errormsg = 'Status konnte nicht geändert werden.'; + return false; + } + return true; } - return true; - } } diff --git a/include/tw/abgabe_lektor_benotung.php b/include/tw/abgabe_lektor_benotung.php index aed8fe2a9..43fd37618 100644 --- a/include/tw/abgabe_lektor_benotung.php +++ b/include/tw/abgabe_lektor_benotung.php @@ -46,6 +46,12 @@ require_once('../../include/pdf/fpdf.php'); require_once('../../include/pdf.inc.php'); $getuid=get_uid(); +/*TODO EINE + auf etwa zeile 720: public.tbl_prestudent.uid + sollte wohl eher auf die prestudent_id eingeschränkt werden! + dazu müsste diese hier mit perstudent->loadActualFromStg($stg_kz) geladen werden + hierfür wiederum müsste man hier die stg_kz übergeben +*/ $datum_obj = new datum(); $htmlstr = ""; $qualitaet=''; diff --git a/rdf/abschlusspruefung.rdf.php b/rdf/abschlusspruefung.rdf.php index f2c42166b..56c855a21 100755 --- a/rdf/abschlusspruefung.rdf.php +++ b/rdf/abschlusspruefung.rdf.php @@ -323,7 +323,7 @@ if ($xmlformat=='rdf') abschlusspruefung_id.']]> - student_uid.']]> + prestudent_id.']]> vorsitz.']]> pruefer1.']]> diff --git a/rdf/ausbildungsvertrag.xml.php b/rdf/ausbildungsvertrag.xml.php index db6566a76..babca7272 100755 --- a/rdf/ausbildungsvertrag.xml.php +++ b/rdf/ausbildungsvertrag.xml.php @@ -1,391 +1,392 @@ - - * Karl Burkhart - * Manfred Kindl - */ -header("Content-type: application/xhtml+xml"); -require_once('../config/vilesci.config.inc.php'); -require_once('../include/functions.inc.php'); -require_once('../include/studiengang.class.php'); -require_once('../include/student.class.php'); -require_once('../include/prestudent.class.php'); -require_once('../include/adresse.class.php'); -require_once('../include/lehrveranstaltung.class.php'); -require_once('../include/akadgrad.class.php'); -require_once('../include/studiensemester.class.php'); -require_once('../include/nation.class.php'); -require_once('../include/prestudent.class.php'); - -$uid_arr = (isset($_REQUEST['uid'])?$_REQUEST['uid']:null); -$prestudent_arr = (isset($_REQUEST['prestudent_id'])?$_REQUEST['prestudent_id']:null); - -$uid_arr = explode(";",$uid_arr); -$prestudent_arr = explode(";",$prestudent_arr); - -$db = new basis_db(); - -echo "\n"; -echo "\n"; - -$uid = isset($uid_arr[1])?$uid_arr[1]:$uid_arr[0]; - -$student_help = new student(); -// an 2ter stelle da im Aufruf vom FAS ;; der erste immer '' ist -if($student_help->load($uid)) -{ - $studiengang = new studiengang(); - $studiengang->load($student_help->studiengang_kz); - switch($studiengang->typ) - { - case 'b': - $studTyp = 'Bachelor'; - $titel_kurzbz = 'BSc'; - break; - case 'm': - $studTyp = 'Master'; - $titel_kurzbz ='MSc'; - break; - case 'd': - $studTyp = 'Diplom'; - break; - default: - $studTyp =''; - $titel_kurzbz = ''; - } - echo "\t".$studTyp."\n"; - echo "\t".$studiengang->bezeichnung."\n"; - echo "\t".$studiengang->english."\n"; -} - -foreach($uid_arr as $uid) -{ - if($uid=='') - continue; - - echo "\t\n"; - - $student = new student(); - if($student->load($uid)) - { - $datum_aktuell = date('d.m.Y'); - $gebdatum = date('d.m.Y',strtotime($student->gebdatum)); - $studiengang = new studiengang(); - $studiengang->load($student->studiengang_kz); - $staatsbuergerschaft = new nation(); - $staatsbuergerschaft->load($student->staatsbuergerschaft); - - $svnr = ($student->svnr == '')?'Ersatzkennzeichen: '.$student->ersatzkennzeichen:$student->svnr; - - //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen - if ($studiengang->studiengang_kz<0) - { - $stg = new studiengang(); - $stg->load($studiengang->studiengang_kz); - - $studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($studiengang->studiengang_kz)); - } - else - $studiengang_kz = sprintf("%04s", abs($studiengang->studiengang_kz)); - - echo "\t\t1\n"; - echo "\t\t".$student->anrede."\n"; - echo "\t\t".$student->vorname." ".$student->vornamen."\n"; - echo "\t\t".$student->vornamen."\n"; - echo "\t\t".$student->nachname."\n"; - echo "\t\t".$student->titelpre."\n"; - echo "\t\t".$student->titelpost."\n"; - echo "\t\t".$gebdatum."\n"; - echo "\t\t".$student->gebort."\n"; - echo "\t\t".$staatsbuergerschaft->langtext."\n"; - echo "\t\t".$svnr."\n"; - echo "\t\t".trim($student->matrikelnr)."\n"; - echo "\t\t".$studiengang->bezeichnung."\n"; - echo "\t\t".$studiengang->english."\n"; - echo "\t\t".$studiengang->kurzbzlang."\n"; - echo "\t\t".$studiengang_kz."\n"; - echo "\t\t".$studiengang->sprache.""; - - echo "\t\t".date('Y').""; - - // check ob Quereinsteiger - $prestudent = new prestudent(); - $ausbildungssemester = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->ausbildungssemester:'1'; - echo "\t\t".$ausbildungssemester.""; - - $studiensemester_beginn = new studiensemester(); - $studienbeginn = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->studiensemester_kurzbz:''; - $studiensemester_beginn->load($studienbeginn); - - echo "\t\t".$studiensemester_beginn->bezeichnung.""; - - $studiensemester_endedatum = new studiensemester(); - $studiensemester_endedatum->load($studiensemester_endedatum->getaktorNext(1)); - - echo "\t\t".date('d.m.Y',strtotime($studiensemester_endedatum->ende)).""; - - switch($studiengang->typ) - { - case 'b': - $studTyp = 'Bachelor'; - $titel_kurzbz = 'BSc'; - break; - case 'm': - $studTyp = 'Master'; - $titel_kurzbz ='MSc'; - break; - case 'd': - $studTyp = 'Diplom'; - break; - default: - $studTyp =''; - $titel_kurzbz = ''; - } - - echo "\t\t".$titel_kurzbz."\n"; - echo "\t\t".$studTyp."\n"; - echo "\t\t".$studiengang->sprache."\n"; - echo "\t\t".$studiengang->max_semester."\n"; - echo "\t\t".($studiengang->max_semester/2)."\n"; - - //Wenn Quereinsteiger stimmt studiengang_maxsemester nicht mit der tatsaechlichen Ausbildungsdauer ueberein - $student_maxsemester = ($studiengang->max_semester-$ausbildungssemester)+1; - echo "\t\t".$student_maxsemester."\n"; - echo "\t\t".($student_maxsemester/2)."\n"; - - $akadgrad = new akadgrad(); - $akadgrad->getAkadgradStudent($student->uid); - - echo "\t\t".$akadgrad->titel."\n"; - echo "\t\t".$akadgrad->akadgrad_kurzbz."\n"; - - //für ao. Studierende wird die StgKz der Lehrveranstaltungen benötigt, die sie besuchen - $lv_studiengang_kz=''; - $lv_studiengang_bezeichnung=''; - $lv_studiengang_typ=''; - - $stg_typ=new studiengang(); - $lv=new lehrveranstaltung(); - $lv->load_lva_student($student->uid); - if(count($lv->lehrveranstaltungen)>0) - { - $lv_studiengang_kz=$lv->lehrveranstaltungen[0]->studiengang_kz; - $lv_studiengang=new studiengang(); - $lv_studiengang->load($lv_studiengang_kz); - $lv_studiengang_bezeichnung=$lv_studiengang->bezeichnung; - $stg_typ->getStudiengangTyp($lv_studiengang->typ); - $lv_studiengang_typ=$stg_typ->bezeichnung; - } - - echo "\t\t".sprintf('%04s', $lv_studiengang_kz).""; - echo "\t\t$lv_studiengang_typ"; - echo "\t\t$lv_studiengang_bezeichnung"; - - echo "\t\t".$datum_aktuell."\n"; - - $adresse = new adresse(); - $adresse->load_pers($student->person_id); - - foreach($adresse->result as $row_adresse) - { - if($row_adresse->zustelladresse) - { - echo "\t\t".$row_adresse->strasse."\n"; - echo "\t\t".$row_adresse->plz." ".$row_adresse->ort."\n"; - echo "\t\t".$row_adresse->nation."\n"; - break; - } - } - $prestudent = new prestudent(); - $prestudent->getLastStatus($student->prestudent_id, null, 'Student'); - - if($prestudent->orgform_kurzbz!='') - $orgform = $prestudent->orgform_kurzbz; - else - $orgform = $studiengang->orgform_kurzbz; - echo "\t\t".$orgform."\n"; - } - echo "\t\n"; -} - -///// -// Wenn auch PrestudentIDs uebergeben werden -///// -$prest_id = isset($prestudent_arr[1])?$prestudent_arr[1]:$prestudent_arr[0]; - -$prestudent_help = new prestudent(); -// an 2ter stelle da im Aufruf vom FAS ;; der erste immer '' ist -if($prestudent_help->load($prest_id)) -{ - $studiengang = new studiengang(); - $studiengang->load($prestudent_help->studiengang_kz); - switch($studiengang->typ) - { - case 'b': - $studTyp = 'Bachelor'; - $titel_kurzbz = 'BSc'; - break; - case 'm': - $studTyp = 'Master'; - $titel_kurzbz ='MSc'; - break; - case 'd': - $studTyp = 'Diplom'; - break; - default: - $studTyp =''; - $titel_kurzbz = ''; - } - echo "\t".$studTyp."\n"; - echo "\t".$studiengang->bezeichnung."\n"; - echo "\t".$studiengang->english."\n"; -} - -foreach($prestudent_arr as $prest_id) -{ - if($prest_id=='') - continue; - - echo "\t\n"; - - $prestudent = new prestudent(); - if($prestudent->load($prest_id)) - { - $person = new person(); - if($person->load($prestudent->person_id)) - { - $datum_aktuell = date('d.m.Y'); - $gebdatum = date('d.m.Y',strtotime($person->gebdatum)); - $studiengang = new studiengang(); - $studiengang->load($prestudent->studiengang_kz); - $staatsbuergerschaft = new nation(); - $staatsbuergerschaft->load($person->staatsbuergerschaft); - - $svnr = ($person->svnr == '')?($person->ersatzkennzeichen != ''?'Ersatzkennzeichen: '.$person->ersatzkennzeichen:''):$person->svnr; - - //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen - if ($studiengang->studiengang_kz<0) - { - $stg = new studiengang(); - $stg->load($studiengang->studiengang_kz); - - $studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($studiengang->studiengang_kz)); - } - else - $studiengang_kz = sprintf("%04s", abs($studiengang->studiengang_kz)); - - echo "\t\t1\n"; - echo "\t\t".$person->anrede."\n"; - echo "\t\t".$person->vorname." ".$person->vornamen."\n"; - echo "\t\t".$person->vornamen."\n"; - echo "\t\t".$person->nachname."\n"; - echo "\t\t".$person->titelpre."\n"; - echo "\t\t".$person->titelpost."\n"; - echo "\t\t".$gebdatum."\n"; - echo "\t\t".$person->gebort."\n"; - echo "\t\t".$staatsbuergerschaft->langtext."\n"; - echo "\t\t".$svnr."\n"; - echo "\t\t".$studiengang->bezeichnung."\n"; - echo "\t\t".$studiengang->english."\n"; - echo "\t\t".$studiengang->kurzbzlang."\n"; - echo "\t\t".$studiengang_kz."\n"; - echo "\t\t".$studiengang->sprache.""; - - echo "\t\t".date('Y').""; - - switch($studiengang->typ) - { - case 'b': - $studTyp = 'Bachelor'; - $titel_kurzbz = 'BSc'; - break; - case 'm': - $studTyp = 'Master'; - $titel_kurzbz ='MSc'; - break; - case 'd': - $studTyp = 'Diplom'; - break; - default: - $studTyp =''; - $titel_kurzbz = ''; - } - - echo "\t\t".$titel_kurzbz."\n"; - echo "\t\t".$studTyp."\n"; - echo "\t\t".$studiengang->sprache."\n"; - echo "\t\t".$studiengang->max_semester."\n"; - echo "\t\t".($studiengang->max_semester/2)."\n"; - - - //Bis die Akadgrad-Tabelle an die Studienordnung angepasst ist, wird der Akadgrad hier ermittelt - - $akadgrad_titel = ''; - $akadgrad_kurzbz = ''; - - $qry = "SELECT * FROM lehre.tbl_akadgrad - WHERE studiengang_kz=".$db->db_add_param($studiengang->studiengang_kz, FHC_INTEGER)." - AND (geschlecht=".$db->db_add_param($person->geschlecht, FHC_STRING)." OR geschlecht IS NULL) - LIMIT 1"; - - if($db->db_query($qry)) - { - if($row = $db->db_fetch_object()) - { - $akadgrad_titel = $row->titel; - $akadgrad_kurzbz = $row->akadgrad_kurzbz; - } - } - - echo "\t\t".$akadgrad_titel."\n"; - echo "\t\t".$akadgrad_kurzbz."\n"; - - echo "\t\t".$datum_aktuell."\n"; - - $adresse = new adresse(); - $adresse->load_pers($person->person_id); - - foreach($adresse->result as $row_adresse) - { - if($row_adresse->zustelladresse) - { - echo "\t\t".$row_adresse->strasse."\n"; - echo "\t\t".$row_adresse->plz." ".$row_adresse->ort."\n"; - echo "\t\t".$row_adresse->nation."\n"; - break; - } - } - $prestudent_orgform = new prestudent(); - $prestudent_orgform->getLastStatus($prest_id, null, null); - - if($prestudent_orgform->orgform_kurzbz!='') - $orgform = $prestudent_orgform->orgform_kurzbz; - else - $orgform = $studiengang->orgform_kurzbz; - - echo "\t\t".$orgform."\n"; - - $ausbildungssemester = ($prestudent_orgform->ausbildungssemester!='')?$prestudent_orgform->ausbildungssemester:'1'; - echo "\t\t".$ausbildungssemester.""; - } - } - echo "\t\n"; -} -echo ""; - -?> \ No newline at end of file +, + * Karl Burkhart , + * Manfred Kindl 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/studiengang.class.php'); +require_once('../include/student.class.php'); +require_once('../include/prestudent.class.php'); +require_once('../include/adresse.class.php'); +require_once('../include/lehrveranstaltung.class.php'); +require_once('../include/akadgrad.class.php'); +require_once('../include/studiensemester.class.php'); +require_once('../include/nation.class.php'); +require_once('../include/prestudent.class.php'); + +$uid_arr = (isset($_REQUEST['uid'])?$_REQUEST['uid']:null); +$prestudent_arr = (isset($_REQUEST['prestudent_id'])?$_REQUEST['prestudent_id']:null); + +$uid_arr = explode(";",$uid_arr); +$prestudent_arr = explode(";",$prestudent_arr); + +$db = new basis_db(); + +echo "\n"; +echo "\n"; + +$uid = isset($uid_arr[1])?$uid_arr[1]:$uid_arr[0]; + +$student_help = new student(); +// an 2ter stelle da im Aufruf vom FAS ;; der erste immer '' ist +if($student_help->load($uid)) +{ + $studiengang = new studiengang(); + $studiengang->load($student_help->studiengang_kz); + switch($studiengang->typ) + { + case 'b': + $studTyp = 'Bachelor'; + $titel_kurzbz = 'BSc'; + break; + case 'm': + $studTyp = 'Master'; + $titel_kurzbz ='MSc'; + break; + case 'd': + $studTyp = 'Diplom'; + break; + default: + $studTyp =''; + $titel_kurzbz = ''; + } + echo "\t".$studTyp."\n"; + echo "\t".$studiengang->bezeichnung."\n"; + echo "\t".$studiengang->english."\n"; +} + +foreach($uid_arr as $uid) +{ + if($uid=='') + continue; + + echo "\t\n"; + + $student = new student(); + if($student->load($uid)) + { + $datum_aktuell = date('d.m.Y'); + $gebdatum = date('d.m.Y',strtotime($student->gebdatum)); + $studiengang = new studiengang(); + $studiengang->load($student->studiengang_kz); + $staatsbuergerschaft = new nation(); + $staatsbuergerschaft->load($student->staatsbuergerschaft); + + $svnr = ($student->svnr == '')?'Ersatzkennzeichen: '.$student->ersatzkennzeichen:$student->svnr; + + //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen + if ($studiengang->studiengang_kz<0) + { + $stg = new studiengang(); + $stg->load($studiengang->studiengang_kz); + + $studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($studiengang->studiengang_kz)); + } + else + $studiengang_kz = sprintf("%04s", abs($studiengang->studiengang_kz)); + + echo "\t\t1\n"; + echo "\t\t".$student->anrede."\n"; + echo "\t\t".$student->vorname." ".$student->vornamen."\n"; + echo "\t\t".$student->vornamen."\n"; + echo "\t\t".$student->nachname."\n"; + echo "\t\t".$student->titelpre."\n"; + echo "\t\t".$student->titelpost."\n"; + echo "\t\t".$gebdatum."\n"; + echo "\t\t".$student->gebort."\n"; + echo "\t\t".$staatsbuergerschaft->langtext."\n"; + echo "\t\t".$svnr."\n"; + echo "\t\t".trim($student->matrikelnr)."\n"; + echo "\t\t".$studiengang->bezeichnung."\n"; + echo "\t\t".$studiengang->english."\n"; + echo "\t\t".$studiengang->kurzbzlang."\n"; + echo "\t\t".$studiengang_kz."\n"; + echo "\t\t".$studiengang->sprache.""; + + echo "\t\t".date('Y').""; + + // check ob Quereinsteiger + $prestudent = new prestudent(); + $ausbildungssemester = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->ausbildungssemester:'1'; + echo "\t\t".$ausbildungssemester.""; + + $studiensemester_beginn = new studiensemester(); + $studienbeginn = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->studiensemester_kurzbz:''; + $studiensemester_beginn->load($studienbeginn); + + echo "\t\t".$studiensemester_beginn->bezeichnung.""; + + $studiensemester_endedatum = new studiensemester(); + $studiensemester_endedatum->load($studiensemester_endedatum->getaktorNext(1)); + + echo "\t\t".date('d.m.Y',strtotime($studiensemester_endedatum->ende)).""; + + switch($studiengang->typ) + { + case 'b': + $studTyp = 'Bachelor'; + $titel_kurzbz = 'BSc'; + break; + case 'm': + $studTyp = 'Master'; + $titel_kurzbz ='MSc'; + break; + case 'd': + $studTyp = 'Diplom'; + break; + default: + $studTyp =''; + $titel_kurzbz = ''; + } + + echo "\t\t".$titel_kurzbz."\n"; + echo "\t\t".$studTyp."\n"; + echo "\t\t".$studiengang->sprache."\n"; + echo "\t\t".$studiengang->max_semester."\n"; + echo "\t\t".($studiengang->max_semester/2)."\n"; + + //Wenn Quereinsteiger stimmt studiengang_maxsemester nicht mit der tatsaechlichen Ausbildungsdauer ueberein + $student_maxsemester = ($studiengang->max_semester-$ausbildungssemester)+1; + echo "\t\t".$student_maxsemester."\n"; + echo "\t\t".($student_maxsemester/2)."\n"; + + $akadgrad = new akadgrad(); + $akadgrad->getAkadgradStudent($student->uid); + + echo "\t\t".$akadgrad->titel."\n"; + echo "\t\t".$akadgrad->akadgrad_kurzbz."\n"; + + //für ao. Studierende wird die StgKz der Lehrveranstaltungen benötigt, die sie besuchen + $lv_studiengang_kz=''; + $lv_studiengang_bezeichnung=''; + $lv_studiengang_typ=''; + + $stg_typ=new studiengang(); + $lv=new lehrveranstaltung(); + $lv->load_lva_student($student->prestudent_id); + if(count($lv->lehrveranstaltungen)>0) + { + $lv_studiengang_kz=$lv->lehrveranstaltungen[0]->studiengang_kz; + $lv_studiengang=new studiengang(); + $lv_studiengang->load($lv_studiengang_kz); + $lv_studiengang_bezeichnung=$lv_studiengang->bezeichnung; + $stg_typ->getStudiengangTyp($lv_studiengang->typ); + $lv_studiengang_typ=$stg_typ->bezeichnung; + } + + echo "\t\t".sprintf('%04s', $lv_studiengang_kz).""; + echo "\t\t$lv_studiengang_typ"; + echo "\t\t$lv_studiengang_bezeichnung"; + + echo "\t\t".$datum_aktuell."\n"; + + $adresse = new adresse(); + $adresse->load_pers($student->person_id); + + foreach($adresse->result as $row_adresse) + { + if($row_adresse->zustelladresse) + { + echo "\t\t".$row_adresse->strasse."\n"; + echo "\t\t".$row_adresse->plz." ".$row_adresse->ort."\n"; + echo "\t\t".$row_adresse->nation."\n"; + break; + } + } + $prestudent = new prestudent(); + $prestudent->getLastStatus($student->prestudent_id, null, 'Student'); + + if($prestudent->orgform_kurzbz!='') + $orgform = $prestudent->orgform_kurzbz; + else + $orgform = $studiengang->orgform_kurzbz; + echo "\t\t".$orgform."\n"; + } + echo "\t\n"; +} + +///// +// Wenn auch PrestudentIDs uebergeben werden +///// +$prest_id = isset($prestudent_arr[1])?$prestudent_arr[1]:$prestudent_arr[0]; + +$prestudent_help = new prestudent(); +// an 2ter stelle da im Aufruf vom FAS ;; der erste immer '' ist +if($prestudent_help->load($prest_id)) +{ + $studiengang = new studiengang(); + $studiengang->load($prestudent_help->studiengang_kz); + switch($studiengang->typ) + { + case 'b': + $studTyp = 'Bachelor'; + $titel_kurzbz = 'BSc'; + break; + case 'm': + $studTyp = 'Master'; + $titel_kurzbz ='MSc'; + break; + case 'd': + $studTyp = 'Diplom'; + break; + default: + $studTyp =''; + $titel_kurzbz = ''; + } + echo "\t".$studTyp."\n"; + echo "\t".$studiengang->bezeichnung."\n"; + echo "\t".$studiengang->english."\n"; +} + +foreach($prestudent_arr as $prest_id) +{ + if($prest_id=='') + continue; + + echo "\t\n"; + + $prestudent = new prestudent(); + if($prestudent->load($prest_id)) + { + $person = new person(); + if($person->load($prestudent->person_id)) + { + $datum_aktuell = date('d.m.Y'); + $gebdatum = date('d.m.Y',strtotime($person->gebdatum)); + $studiengang = new studiengang(); + $studiengang->load($prestudent->studiengang_kz); + $staatsbuergerschaft = new nation(); + $staatsbuergerschaft->load($person->staatsbuergerschaft); + + $svnr = ($person->svnr == '')?($person->ersatzkennzeichen != ''?'Ersatzkennzeichen: '.$person->ersatzkennzeichen:''):$person->svnr; + + //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen + if ($studiengang->studiengang_kz<0) + { + $stg = new studiengang(); + $stg->load($studiengang->studiengang_kz); + + $studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($studiengang->studiengang_kz)); + } + else + $studiengang_kz = sprintf("%04s", abs($studiengang->studiengang_kz)); + + echo "\t\t1\n"; + echo "\t\t".$person->anrede."\n"; + echo "\t\t".$person->vorname." ".$person->vornamen."\n"; + echo "\t\t".$person->vornamen."\n"; + echo "\t\t".$person->nachname."\n"; + echo "\t\t".$person->titelpre."\n"; + echo "\t\t".$person->titelpost."\n"; + echo "\t\t".$gebdatum."\n"; + echo "\t\t".$person->gebort."\n"; + echo "\t\t".$staatsbuergerschaft->langtext."\n"; + echo "\t\t".$svnr."\n"; + echo "\t\t".$studiengang->bezeichnung."\n"; + echo "\t\t".$studiengang->english."\n"; + echo "\t\t".$studiengang->kurzbzlang."\n"; + echo "\t\t".$studiengang_kz."\n"; + echo "\t\t".$studiengang->sprache.""; + + echo "\t\t".date('Y').""; + + switch($studiengang->typ) + { + case 'b': + $studTyp = 'Bachelor'; + $titel_kurzbz = 'BSc'; + break; + case 'm': + $studTyp = 'Master'; + $titel_kurzbz ='MSc'; + break; + case 'd': + $studTyp = 'Diplom'; + break; + default: + $studTyp =''; + $titel_kurzbz = ''; + } + + echo "\t\t".$titel_kurzbz."\n"; + echo "\t\t".$studTyp."\n"; + echo "\t\t".$studiengang->sprache."\n"; + echo "\t\t".$studiengang->max_semester."\n"; + echo "\t\t".($studiengang->max_semester/2)."\n"; + + + //Bis die Akadgrad-Tabelle an die Studienordnung angepasst ist, wird der Akadgrad hier ermittelt + + $akadgrad_titel = ''; + $akadgrad_kurzbz = ''; + + $qry = "SELECT * FROM lehre.tbl_akadgrad + WHERE studiengang_kz=".$db->db_add_param($studiengang->studiengang_kz, FHC_INTEGER)." + AND (geschlecht=".$db->db_add_param($person->geschlecht, FHC_STRING)." OR geschlecht IS NULL) + LIMIT 1"; + + if($db->db_query($qry)) + { + if($row = $db->db_fetch_object()) + { + $akadgrad_titel = $row->titel; + $akadgrad_kurzbz = $row->akadgrad_kurzbz; + } + } + + echo "\t\t".$akadgrad_titel."\n"; + echo "\t\t".$akadgrad_kurzbz."\n"; + + echo "\t\t".$datum_aktuell."\n"; + + $adresse = new adresse(); + $adresse->load_pers($person->person_id); + + foreach($adresse->result as $row_adresse) + { + if($row_adresse->zustelladresse) + { + echo "\t\t".$row_adresse->strasse."\n"; + echo "\t\t".$row_adresse->plz." ".$row_adresse->ort."\n"; + echo "\t\t".$row_adresse->nation."\n"; + break; + } + } + $prestudent_orgform = new prestudent(); + $prestudent_orgform->getLastStatus($prest_id, null, null); + + if($prestudent_orgform->orgform_kurzbz!='') + $orgform = $prestudent_orgform->orgform_kurzbz; + else + $orgform = $studiengang->orgform_kurzbz; + + echo "\t\t".$orgform."\n"; + + $ausbildungssemester = ($prestudent_orgform->ausbildungssemester!='')?$prestudent_orgform->ausbildungssemester:'1'; + echo "\t\t".$ausbildungssemester.""; + } + } + echo "\t\n"; +} +echo ""; + +?> diff --git a/rdf/lehreinheit.rdf.php b/rdf/lehreinheit.rdf.php index f4d1a0f74..cb8282700 100644 --- a/rdf/lehreinheit.rdf.php +++ b/rdf/lehreinheit.rdf.php @@ -17,8 +17,9 @@ * * Authors: Christian Paminger , * Andreas Oesterreicher , - * Rudolf Hangl and - * Gerald Raab . + * Rudolf Hangl , + * Gerald Raab and + * Andreas Moik . */ // header für no cache header("Cache-Control: no-cache"); @@ -160,4 +161,4 @@ function draw_row($row) } ?> - \ No newline at end of file + diff --git a/rdf/lehrveranstaltung.rdf.php b/rdf/lehrveranstaltung.rdf.php index 8f8f06611..ce320fe4e 100644 --- a/rdf/lehrveranstaltung.rdf.php +++ b/rdf/lehrveranstaltung.rdf.php @@ -36,6 +36,7 @@ echo ''; require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../include/lehrveranstaltung.class.php'); +require_once('../include/student.class.php'); $uid=get_uid(); @@ -73,7 +74,11 @@ else $lehrveranstaltung=new lehrveranstaltung(); if($student_uid!='') - $lehrveranstaltung->load_lva_student($student_uid); +{ + //TODO EINE + $student = new student($student_uid); + $lehrveranstaltung->load_lva_student($student->prestudent_id); +} elseif($lehrveranstaltung_kompatibel_id!='') { // Laedt die Lehrveranstaltung und alle die dazu kompatibel sind diff --git a/rdf/pruefung.rdf.php b/rdf/pruefung.rdf.php index e0c093c14..c50effde7 100644 --- a/rdf/pruefung.rdf.php +++ b/rdf/pruefung.rdf.php @@ -42,9 +42,9 @@ if(!$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('admin')) die('Sie haben keine Berechtigung für diese Seite'); if(!isset($_GET['prestudent_id'])) - die('Es wurde keine prestudent_id übergeben!'); - -$prestudent_id = $_GET["prestudent_id"]; + $prestudent_id = ""; +else + $prestudent_id = $_GET["prestudent_id"]; if(isset($_GET['pruefung_id'])) diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php index 564b1240c..547c6236e 100644 --- a/rdf/student.rdf.php +++ b/rdf/student.rdf.php @@ -760,7 +760,7 @@ else $lv_studiengang_art=''; $lv=new lehrveranstaltung(); - $lv->load_lva_student($student->uid); + $lv->load_lva_student($student->prestudent_id); if(count($lv->lehrveranstaltungen)>0) { $lv_studiengang_kz=$lv->lehrveranstaltungen[0]->studiengang_kz; diff --git a/rdf/studienblatt.xml.php b/rdf/studienblatt.xml.php index f057865f6..5eedd3646 100644 --- a/rdf/studienblatt.xml.php +++ b/rdf/studienblatt.xml.php @@ -15,9 +15,10 @@ * 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 - * Karl Burkhart - * Manfred Kindl + * Authors: Andreas Oesterreicher , + * Karl Burkhart , + * Manfred Kindl and + * Andreas Moik . */ header("Content-type: application/xhtml+xml"); require_once('../config/vilesci.config.inc.php'); @@ -264,7 +265,7 @@ foreach($uid_arr as $uid) $stg_typ=new studiengang(); $lv=new lehrveranstaltung(); - $lv->load_lva_student($student->uid); + $lv->load_lva_student($student->prestudent_id); if(count($lv->lehrveranstaltungen)>0) { $lv_studiengang_kz=$lv->lehrveranstaltungen[0]->studiengang_kz; @@ -337,4 +338,4 @@ foreach($uid_arr as $uid) } echo ""; -?> \ No newline at end of file +?> diff --git a/system/abgabe2opus.php b/system/abgabe2opus.php index 5587307ae..0ac94ee2c 100644 --- a/system/abgabe2opus.php +++ b/system/abgabe2opus.php @@ -1163,7 +1163,7 @@ $qry="SELECT *, tbl_lehreinheit.studiensemester_kurzbz, tbl_projektarbeit.prestu JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) - LEFT JOIN lehre.tbl_zeugnisnote ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz AND tbl_projektarbeit.student_uid=tbl_zeugnisnote.student_uid) + LEFT JOIN lehre.tbl_zeugnisnote ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz AND tbl_projektarbeit.prestudent_id=tbl_zeugnisnote.prestudent_id) WHERE ((tbl_projektarbeit.note>0 AND tbl_projektarbeit.note<5) OR (tbl_zeugnisnote.note>0 AND tbl_zeugnisnote.note<5)) AND projekttyp_kurzbz='Diplom' AND to_char(tbl_projektarbeit.abgabedatum,'YYYYMMDD')>'".date('Ymd',mktime(0, 0, 0, date('m')-6, date('d'), date('Y')))."' AND (tbl_projektarbeit.freigegeben OR (to_char(tbl_projektarbeit.gesperrtbis,'YYYYMMDD')<'".date('Ymd',mktime(0, 0, 0, date('m'), date('d'), date('Y')))."'))"; diff --git a/vilesci/lehre/abgabe_assistenz.php b/vilesci/lehre/abgabe_assistenz.php index d3d10c592..723d56f59 100644 --- a/vilesci/lehre/abgabe_assistenz.php +++ b/vilesci/lehre/abgabe_assistenz.php @@ -64,7 +64,7 @@ if(!$rechte->isBerechtigt('admin', $stg_kz, 'suid') && !$rechte->isBerechtigt('a function showFarbcodes() { - $farbcodes = ''; + $farbcodes = ''; $farbcodes.= ""; $farbcodes.=""; @@ -75,7 +75,7 @@ function showFarbcodes() $farbcodes.="
Termin noch mehr als 12 Tage entfernt
"; return $farbcodes; } - + $trenner = new variable(); $trenner->loadVariables($getuid);