Prüfungsanmeldung

This commit is contained in:
Stefan Puraner
2014-03-19 15:34:30 +00:00
parent 98d00c2981
commit 3fe3601893
6 changed files with 214 additions and 23 deletions
+20 -6
View File
@@ -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("<b>Einzelprüfung!</b>");
$("#prfEinzeln").html("<b>Einzelprüfung!</b>");
}
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();
}
@@ -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!";
@@ -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."</br>";
//}
//var_dump($lehrveranstaltung->lehrveranstaltungen[1]);
$studiensemester = new studiensemester();
$studiensemester->getAll();
?>
<html>
@@ -58,12 +58,12 @@ $lehrveranstaltung->load_lva_student("if11b044");
<link rel="stylesheet" href="../../../../skin/style.css.php">
<link rel="stylesheet" href="../../../../skin/tablesort.css">
<style type="text/css">
#prfDetails {
/*border: 1px solid black;*/
#pruefungen, #prfTermine {
max-width: 50%;
}
#anmeldung {
width: 30%;
#details {
margin-left: 1.5em;
}
div {
@@ -82,11 +82,32 @@ $lehrveranstaltung->load_lva_student("if11b044");
<div id="anmeldung">
<form action="pruefungsanmeldung.php" method="POST">
<table>
<tr>
<td>Studiensemester:</td>
<td>
<select id="studiensemester">
<?php
foreach($studiensemester->studiensemester as $stdSem)
{
if($stdSem->studiensemester_kurzbz == $studiensemester->getakt())
{
echo '<option selected value='.$stdSem->studiensemester_kurzbz.'>'.$stdSem->studiensemester_kurzbz.'</option>';
}
else
{
echo '<option value='.$stdSem->studiensemester_kurzbz.'>'.$stdSem->studiensemester_kurzbz.'</option>';
}
}
?>
</select>
</td>
</tr>
<tr>
<td>
Prüfung:
</td>
<td>
<input id="uid" type="hidden" name="uid" value="<?php echo $uid;?>">
<select id="pruefungen" onChange="showPruefungsDetails();">
<!--Prüfungen werden durch Js geladen-->
<option value="null">Prüfung auswählen</option>
@@ -122,12 +143,13 @@ $lehrveranstaltung->load_lva_student("if11b044");
</div>
</div>
<div>
<div id="details">
<h1>Prüfungsdetails</h1>
<div id="prfDetails">
<span>Typ: </span><span id="prfTyp"></span></br>
<span>Methode: </span><span id="prfMethode"></span></br>
<span>Beschreibung: </span><span id="prfBeschreibung"></span></br>
<span id="prfEinzeln"></span></br>
</div>
</div>
<?php
+1 -1
View File
@@ -276,7 +276,7 @@ class pruefungCis extends basis_db
}
else
{
while($row = $this->db_fetch_object())
if($row = $this->db_fetch_object())
{
$this->pruefung_id = $row->pruefung_id;
$this->mitarbeiter_uid = $row->mitarbeiter_uid;
+69
View File
@@ -109,4 +109,73 @@ class pruefungsanmeldung extends basis_db {
}
}
public function load($pruefungsanmeldung_id)
{
if(!is_numeric($pruefungsanmeldung_id))
{
$this->errormsg = "Anmeldung ID muss eine gültige Zahl sein";
return false;
}
$qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';';
if(!$this->db_query($qry))
{
$this->errormsg = 'Anmeldungsdaten konnten nicht geladen werden.';
return false;
}
else
{
if($row = $this->db_fetch_object())
{
$this->pruefungsanmeldung_id = $row->pruefunganmeldung_id;
$this->uid = $row->uid;
$this->pruefungstermin_id = $row->pruefungstermin_id;
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->status_kurzbz = $row->status_kurzbz;
$this->wuensche = $row->wuensche;
$this->reihung = $row->reihung;
$this->kommentar = $row->kommentar;
}
return true;
}
}
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;
array_push($anmeldungen, $anmeldung);
}
return $anmeldungen;
}
}
public function checkAnmeldung()
{
}
}
+37
View File
@@ -74,6 +74,27 @@ class pruefungstermin extends basis_db{
return false;
}
$qry = 'SELECT * FROM campus.tbl_pruefungstermin WHERE pruefungstermin_id='.$this->db_add_param($pruefungstermin_id).';';
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->pruefungstermin_id = $row->pruefungstermin_id;
$this->pruefung_id = $row->pruefung_id;
$this->von = $row->von;
$this->bis = $row->bis;
$this->teilnehmer_max = $row->teilnehmer_max;
$this->teilnehmer_min = $row->teilnehmer_min;
}
return true;
}
else
{
$this->errormsg = 'Termin konnte nicht geladen werden.';
return false;
}
}
/**
@@ -104,4 +125,20 @@ class pruefungstermin extends basis_db{
return $result;
}
public function getNumberOfParticipants()
{
$qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung WHERE pruefungstermin_id='.$this->db_add_param($this->pruefungstermin_id).';';
if($this->db_query($qry))
{
return $this->db_num_rows();
}
else
{
$this->errormsg = 'Teilnehmeranzahl konnte nicht geladen werden.';
return false;
}
return false;
}
}