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");