From 3fe3601893a1b9c4813ea86d202d7d5e78082627 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Wed, 19 Mar 2014 15:34:30 +0000 Subject: [PATCH] =?UTF-8?q?Pr=C3=BCfungsanmeldung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/pruefung/pruefung.js | 26 +++++-- .../pruefung/pruefungsanmeldung.json.php | 59 ++++++++++++++-- .../lehre/pruefung/pruefungsanmeldung.php | 44 +++++++++--- include/pruefungCis.class.php | 2 +- include/pruefungsanmeldung.class.php | 69 +++++++++++++++++++ include/pruefungstermin.class.php | 37 ++++++++++ 6 files changed, 214 insertions(+), 23 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefung.js b/cis/private/lehre/pruefung/pruefung.js index def177236..2dad5aefd 100644 --- a/cis/private/lehre/pruefung/pruefung.js +++ b/cis/private/lehre/pruefung/pruefung.js @@ -161,6 +161,7 @@ function writePrfFensterDetails(){ function loadPruefungen() { //TODO student_uid + var student_uid = $("#uid").val(); var student_uid = "if11b044"; $.ajax({ dataType: 'json', @@ -196,7 +197,6 @@ function loadPruefungen() function loadTermine(pruefung_id) { - console.log(pruefung_id); if($("#prfTermine").attr("disabled") === "disabled") { $("#prfTermine").attr("disabled", false); @@ -252,7 +252,11 @@ function showPruefungsDetails() $("#prfBeschreibung").html(e.beschreibung); if(e.einzeln === true) { - $("#prfDetails").append("Einzelprüfung!"); + $("#prfEinzeln").html("Einzelprüfung!"); + } + else + { + $("#prfEinzeln").html(""); } }); } @@ -269,6 +273,7 @@ function saveAnmeldung() var lehrveranstaltung_id = $("#pruefungen option:selected").attr("lv"); var termin_id = $("#prfTermine option:selected").val(); var bemerkungen = $("#prfWuensche").val(); + var studiensemester_kurzbz = $("#studiensemester").val(); $.ajax({ dataType: 'json', @@ -278,11 +283,19 @@ function saveAnmeldung() method: "saveAnmeldung", termin_id: termin_id, lehrveranstaltung_id: lehrveranstaltung_id, - bemerkung: bemerkungen + bemerkung: bemerkungen, + studiensemester_kurzbz: studiensemester_kurzbz }, error: loadError }).success(function(data){ - $("#message").html(data.result); + if(data.error === 'false') + { + $("#message").html(data.result); + } + else + { + $("#message").html(data.errormsg); + } resetForm(); }); @@ -293,13 +306,14 @@ function clearPrfDetails() $("#prfTyp").empty(); $("#prfMethode").empty(); $("#prfBeschreibung").empty(); + $("#prfEinzeln").empty(); } function resetForm() { - $("form").find("input[type=text], textarea").val(""); - $("form").find("select").val("null"); + $("#prfTermine").val("null"); + $("#pruefungen").val("null"); $("#prfTermine").attr("disabled", true); clearPrfDetails(); } \ No newline at end of file diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 2e79ef3fc..da765fc81 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -11,6 +11,9 @@ require_once('../../../../include/pruefungCis.class.php'); require_once('../../../../include/lehrveranstaltung.class.php'); require_once('../../../../include/benutzerberechtigung.class.php'); require_once('../../../../include/pruefungsanmeldung.class.php'); +require_once('../../../../include/pruefungstermin.class.php'); +require_once('../../../../include/datum.class.php'); +require_once('../../../../include/konto.class.php'); $uid = get_uid(); @@ -85,11 +88,57 @@ switch($method) break; case 'saveAnmeldung': - $anmeldung = new pruefungsanmeldung(); - $anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; - $anmeldung->pruefungstermin_id = $_REQUEST["termin_id"]; - $anmeldung->wuensche = $_REQUEST["bemerkung"]; - $anmeldung->uid = $uid; + $termin = new pruefungstermin($_REQUEST["termin_id"]); + if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL) + { + $anmeldung = new pruefungsanmeldung(); + $anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; + $anmeldung->pruefungstermin_id = $_REQUEST["termin_id"]; + $anmeldung->wuensche = $_REQUEST["bemerkung"]; + $anmeldung->uid = $uid; + $anmeldung->status = "angemeldet"; + + $studiensemester_kurbz = $_REQUEST['studiensemester_kurzbz']; + + $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]); + + $konto = new konto(); + $creditpoints = $konto->getCreditPoints($uid, $studiensemester_kurzbz); + $creditpoints = 1.5; + if($creditpoints !== false) + { + if($creditpoints < $lehrveranstaltung->ects) + { + $data['error'] = 'true'; + $data['errormsg'] = 'Credit-Points-Guthaben ist zu gering.'; + break; + } + } + + //Kollisionsprüfung + $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid); + 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'] = 'Kollision mit anderer Anmeldung.'; + } + } + if(isset($data['error']) && $data['error'] = 'true') + { + break; + } + } + else + { + $data['error']='true'; + $data['errormsg']='Keine freien Plätze vorhanden.'; + break; + } + if($anmeldung->save(true)) { $data['result'] = "Anmeldung erfolgreich!"; diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.php b/cis/private/lehre/pruefung/pruefungsanmeldung.php index cfd8017e4..e259a6595 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.php @@ -26,6 +26,8 @@ require_once('../../../../config/cis.config.inc.php'); require_once('../../../../include/functions.inc.php'); require_once('../../../../include/benutzerberechtigung.class.php'); require_once('../../../../include/lehrveranstaltung.class.php'); +require_once('../../../../include/konto.class.php'); +require_once('../../../../include/studiensemester.class.php'); $uid = get_uid(); @@ -36,14 +38,12 @@ $rechte->getBerechtigungen($uid); //if(!$rechte->isBerechtigt('lehre/pruefungsanmeldung')) // die('Sie haben keine Berechtigung für diese Seite'); - +//TODO $lehrveranstaltung = new lehrveranstaltung(); $lehrveranstaltung->load_lva_student("if11b044"); -//foreach ($lehrveranstaltung->lehrveranstaltungen as $lv) -//{ -// echo $lv->bezeichnung."
"; -//} -//var_dump($lehrveranstaltung->lehrveranstaltungen[1]); + +$studiensemester = new studiensemester(); +$studiensemester->getAll(); ?> @@ -58,12 +58,12 @@ $lehrveranstaltung->load_lva_student("if11b044");