mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
Prüfungsverwaltung; Student kann sich anmelden; Prüfer kann bestätigen
This commit is contained in:
@@ -17,6 +17,12 @@
|
||||
* Authors: Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
|
||||
var progressBarCount = 0;
|
||||
|
||||
/**
|
||||
* Liest GET Variablen einer URL aus
|
||||
* @returns {String|value|Element.value|document@arr;all.value}
|
||||
*/
|
||||
function getUrlVars() {
|
||||
var vars = {};
|
||||
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
|
||||
@@ -25,6 +31,11 @@ function getUrlVars() {
|
||||
return vars;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialisiert den Datepicker
|
||||
* @param {type} ele
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function setDatePicker(ele)
|
||||
{
|
||||
var start = $("#pruefungsfenster option:selected").attr("start");
|
||||
@@ -41,6 +52,11 @@ function setDatePicker(ele)
|
||||
$("#pruefungsfenster").attr("onchange", "setDatePicker()");
|
||||
}
|
||||
|
||||
/**
|
||||
* Fügt ein neunes Formularfeld für einen zusätzlichen Termin hinzu
|
||||
* @param {type} inputTag
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function terminHinzufuegen(inputTag)
|
||||
{
|
||||
inputTag = (inputTag===undefined ? "" : inputTag);
|
||||
@@ -49,6 +65,12 @@ function terminHinzufuegen(inputTag)
|
||||
setDatePicker();
|
||||
}
|
||||
|
||||
/**
|
||||
* Fügt ein neues Dropdownfeld zur Auswahl der Lehrveranstaltung hinzu
|
||||
* @param {type} element
|
||||
* @param {type} isChanged
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function lehrveranstaltungDropdownhinzufuegen(element, isChanged)
|
||||
{
|
||||
if(!isChanged)
|
||||
@@ -75,6 +97,10 @@ function loadError(xhr, textStatus, errorThrown)
|
||||
alert('Fehler beim Laden der Daten. ErrorNr:'+xhr.status);
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt die Prüfungstenster eines Studiensemesters
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function loadPruefungsfenster()
|
||||
{
|
||||
var studiensemester_kurzbz = $("#studiensemester option:selected").val();
|
||||
@@ -94,6 +120,11 @@ function loadPruefungsfenster()
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Schreibt die Daten des geladenen Prüfungsfensters
|
||||
* @param {type} data
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function writePruefungsfenster(data)
|
||||
{
|
||||
var prfFensterId = getUrlVars()["prfFensterId"];
|
||||
@@ -128,22 +159,30 @@ function writePruefungsfenster(data)
|
||||
});
|
||||
}
|
||||
|
||||
function writePrfFensterDetails(){
|
||||
var id = $("#pruefungsfenster option:selected").val();
|
||||
if(id !== null)
|
||||
{
|
||||
var start = $("#pruefungsfenster option:selected").attr("start");
|
||||
var ende = $("#pruefungsfenster option:selected").attr("ende");
|
||||
start = start.split('-');
|
||||
ende = ende.split('-');
|
||||
start = new Date(start[0], start[1]-1,start[2]);
|
||||
ende = new Date(ende[0], ende[1]-1,ende[2]);
|
||||
start = start.getDate()+"."+(start.getMonth()+1)+"."+start.getFullYear();
|
||||
ende = ende.getDate()+"."+(ende.getMonth()+1)+"."+ende.getFullYear();
|
||||
$("#prfFensterDetails").html("Beginn: "+start+"</br>Ende: "+ende);
|
||||
}
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @returns {undefined}
|
||||
*/
|
||||
//function writePrfFensterDetails(){
|
||||
// var id = $("#pruefungsfenster option:selected").val();
|
||||
// if(id !== null)
|
||||
// {
|
||||
// var start = $("#pruefungsfenster option:selected").attr("start");
|
||||
// var ende = $("#pruefungsfenster option:selected").attr("ende");
|
||||
// start = start.split('-');
|
||||
// ende = ende.split('-');
|
||||
// start = new Date(start[0], start[1]-1,start[2]);
|
||||
// ende = new Date(ende[0], ende[1]-1,ende[2]);
|
||||
// start = start.getDate()+"."+(start.getMonth()+1)+"."+start.getFullYear();
|
||||
// ende = ende.getDate()+"."+(ende.getMonth()+1)+"."+ende.getFullYear();
|
||||
// $("#prfFensterDetails").html("Beginn: "+start+"</br>Ende: "+ende);
|
||||
// }
|
||||
//}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfungen eines Studenten zu deren LVs er angemeldet ist
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function loadPruefungen()
|
||||
{
|
||||
$.ajax({
|
||||
@@ -172,6 +211,10 @@ function loadPruefungen()
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfungen eines Studienganges
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function loadPruefungenOfStudiengang()
|
||||
{
|
||||
$.ajax({
|
||||
@@ -199,6 +242,10 @@ function loadPruefungenOfStudiengang()
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfungen
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function loadPruefungenGesamt()
|
||||
{
|
||||
$.ajax({
|
||||
@@ -220,6 +267,12 @@ function loadPruefungenGesamt()
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Schreibt die Daten der Prüfungen in eine Tabelle
|
||||
* @param {type} e Daten der Prüfungen
|
||||
* @param {type} data Daten der Anmeldungen
|
||||
* @returns {String}
|
||||
*/
|
||||
function writePruefungsTable(e, data)
|
||||
{
|
||||
var row = "";
|
||||
@@ -266,6 +319,12 @@ function writePruefungsTable(e, data)
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt die Details zu einer Prüfung
|
||||
* @param {type} prfId ID einer Prüfung
|
||||
* @param {type} lvId ID einer Lehrveranstaltung
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function showPruefungsDetails(prfId, lvId)
|
||||
{
|
||||
var prfId = prfId;
|
||||
@@ -318,6 +377,15 @@ function showPruefungsDetails(prfId, lvId)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Öffnet einen Dialog zur Anmeldung zu einer Prüfung
|
||||
* @param {type} lehrveranstaltung_id ID einer Lehrveransaltung
|
||||
* @param {type} termin_id ID des Prüfungstermines
|
||||
* @param {type} lvBezeichnung Bezeichnung der Lehrveranstaltung
|
||||
* @param {type} terminVon Beginn der Prüfung
|
||||
* @param {type} terminBis Ende der Prüfung
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, terminBis)
|
||||
{
|
||||
$("#lehrveranstaltungHidden").val(lehrveranstaltung_id);
|
||||
@@ -344,6 +412,12 @@ function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, t
|
||||
$("#saveDialog").dialog("open");
|
||||
}
|
||||
|
||||
/**
|
||||
* speichert eine Prüfungsanmeldung
|
||||
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @param {type} termin_id ID des Prüfungstermines
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
{
|
||||
var lehrveranstaltung_id = $("#lehrveranstaltungHidden").val();
|
||||
@@ -366,19 +440,21 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
}).success(function(data){
|
||||
if(data.error === 'false')
|
||||
{
|
||||
$("#message").html(data.result);
|
||||
$("#message").effect("highlight", {
|
||||
duration: 4000,
|
||||
color: "green"
|
||||
});
|
||||
messageBox("message", data.result, "green", "highlight", 4000);
|
||||
// $("#message").html(data.result);
|
||||
// $("#message").effect("highlight", {
|
||||
// duration: 4000,
|
||||
// color: "green"
|
||||
// });
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#message").html(data.errormsg);
|
||||
$("#message").effect("highlight", {
|
||||
duration: 4000,
|
||||
color: "red"
|
||||
});
|
||||
messageBox("message", data.errormsg, "red", "highlight", 4000);
|
||||
// $("#message").html(data.errormsg);
|
||||
// $("#message").effect("highlight", {
|
||||
// duration: 4000,
|
||||
// color: "red"
|
||||
// });
|
||||
}
|
||||
resetForm();
|
||||
}).complete(function(event, xhr, settings){
|
||||
@@ -387,6 +463,11 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* storniert eine Prüfungsanmeldung
|
||||
* @param {type} pruefungsanmeldung_id ID einer Prüfungsanmeldung
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function stornoAnmeldung(pruefungsanmeldung_id)
|
||||
{
|
||||
if(confirm("Anmeldung wirklich stornieren?"))
|
||||
@@ -403,19 +484,21 @@ function stornoAnmeldung(pruefungsanmeldung_id)
|
||||
}).success(function(data){
|
||||
if(data.error === 'false')
|
||||
{
|
||||
$("#message").html(data.result);
|
||||
$("#message").effect("highlight", {
|
||||
duration: 4000,
|
||||
color: "green"
|
||||
});
|
||||
messageBox("message", data.result, "green", "highlight", 4000);
|
||||
// $("#message").html(data.result);
|
||||
// $("#message").effect("highlight", {
|
||||
// duration: 4000,
|
||||
// color: "green"
|
||||
// });
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#message").html(data.errormsg);
|
||||
$("#message").effect("highlight", {
|
||||
duration: 4000,
|
||||
color: "red"
|
||||
});
|
||||
messageBox("message", data.errormsg, "red", "highlight", 4000);
|
||||
// $("#message").html(data.errormsg);
|
||||
// $("#message").effect("highlight", {
|
||||
// duration: 4000,
|
||||
// color: "red"
|
||||
// });
|
||||
}
|
||||
}).complete(function(event, xhr, settings){
|
||||
refresh();
|
||||
@@ -423,6 +506,10 @@ function stornoAnmeldung(pruefungsanmeldung_id)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Leer das DIV-Element der Prüfungsdetails
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function clearPrfDetails()
|
||||
{
|
||||
$("#prfTyp").empty();
|
||||
@@ -431,12 +518,21 @@ function clearPrfDetails()
|
||||
$("#prfEinzeln").empty();
|
||||
}
|
||||
|
||||
/**
|
||||
* Setzt ein Formular auf den Urzustand zurück
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function resetForm()
|
||||
{
|
||||
$("form").find("input[type=text], textarea").val("");
|
||||
clearPrfDetails();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialisiert den tablesorter für eine Tabelle
|
||||
* @param {type} tableId ID eines "table"-Elements
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function setTablesorter(tableId)
|
||||
{
|
||||
if($("#"+tableId)[0].hasInitialized !== true)
|
||||
@@ -454,6 +550,10 @@ function setTablesorter(tableId)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Leert die Daten eines table-bodys
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function clearAccordion()
|
||||
{
|
||||
$("#accordion tbody").each(function(i, v){
|
||||
@@ -461,10 +561,365 @@ function clearAccordion()
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt die Seite der Prüfungsanmeldung neu
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function refresh()
|
||||
{
|
||||
clearAccordion();
|
||||
loadPruefungen();
|
||||
loadPruefungenOfStudiengang();
|
||||
loadPruefungenGesamt();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfungen eines Mitarbeiters
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function loadPruefungenMitarbeiter()
|
||||
{
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getPruefungMitarbeiter"
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
if(data.error === 'false')
|
||||
{
|
||||
var liste = "";
|
||||
data.result.forEach(function(e){
|
||||
liste += "<li>"+e.bezeichnung+"<ul>";
|
||||
e.pruefung.termine.forEach(function(d){
|
||||
liste += "<li> <a onclick='showAnmeldungen(\""+d.pruefungstermin_id+"\", \""+e.lehrveranstaltung_id+"\");'>"+convertDateTime(d.von)+"</a></li>";
|
||||
})
|
||||
liste += "</li></ul>";
|
||||
});
|
||||
$("#pruefungenListe").append(liste);
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#pruefungenListe").html(data.errormsg);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Konvertiert einen String im Fromat JJJJ-MM-TT hh:mm:ss zu DD.MM.JJJJ oder HH:MM
|
||||
* @param {String} string Format: JJJJ-MM-TT hh:mm:ss
|
||||
* @param {String} type spezifiziet die Ausgabe ("time"|"date")
|
||||
* @returns {String} Format: date: DD.MM.JJJJ; time: HH:MM
|
||||
*/
|
||||
function convertDateTime(string, type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case 'date':
|
||||
string = string.split(' ');
|
||||
string = string[0].split('-');
|
||||
string = new Date(string[0], string[1]-1,string[2]);
|
||||
string = string.getDate()+"."+(string.getMonth()+1)+"."+string.getFullYear();
|
||||
break;
|
||||
case 'time':
|
||||
string = string.split(' ');
|
||||
string = string[1].split(':');
|
||||
string = string[0]+":"+string[1];
|
||||
break;
|
||||
default:
|
||||
string = string.split(' ');
|
||||
string = string[0].split('-');
|
||||
string = new Date(string[0], string[1]-1,string[2]);
|
||||
string = string.getDate()+"."+(string.getMonth()+1)+"."+string.getFullYear();
|
||||
break;
|
||||
}
|
||||
return string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt die Anmeldungen zu einer Prüfung
|
||||
* @param {type} pruefungstermin_id ID des Prüfungstermins
|
||||
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id)
|
||||
{
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getAnmeldungenTermin",
|
||||
pruefungstermin_id: pruefungstermin_id,
|
||||
lehrveranstaltung_id: lehrveranstaltung_id
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
if(data.error === 'false')
|
||||
{
|
||||
var terminId = data.result[0].pruefungstermin_id;
|
||||
var lehrveranstaltung_id = data.result[0].lehrveranstaltung_id;
|
||||
var liste = "<ul id='sortable'>";
|
||||
var count = 0;
|
||||
data.result.forEach(function(d){
|
||||
count++;
|
||||
switch(d.status_kurzbz)
|
||||
{
|
||||
case 'angemeldet':
|
||||
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a>"+d.student.vorname+" "+d.student.nachname+"</a>";
|
||||
liste += "<div style='width: 5%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 20%;'><input type='button' value='Bestätigen' onclick='anmeldungBestaetigen(\""+d.pruefungsanmeldung_id+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'></div>";
|
||||
if(d.wuensche !== null)
|
||||
{
|
||||
liste += "<div class='anmerkungInfo'><a href='#' title='Anmerkung des Studenten:</br>"+d.wuensche+"'><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>";
|
||||
}
|
||||
liste += "</li>";
|
||||
break;
|
||||
case 'bestaetigt':
|
||||
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a>"+d.student.vorname+" "+d.student.nachname+"</a>";
|
||||
liste += "<div style='width: 5%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 20%;'>bestätigt</div>";
|
||||
if(d.wuensche !== null)
|
||||
{
|
||||
liste += "<div class='anmerkungInfo'><a href='#' title='Anmerkung des Studenten:</br>"+d.wuensche+"'><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>";
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
});
|
||||
liste += "</ul>";
|
||||
$("#reihungSpeichernButton").html("<input type='button' value='Reihung speichern' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>");
|
||||
$("#anmeldeDaten").html(liste);
|
||||
$(document).tooltip({
|
||||
position: {
|
||||
at: "right center",
|
||||
my: "left+15 center"
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
// $("#message").html(data.errormsg);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 4000);
|
||||
}
|
||||
}).complete(function(event, xhr, settings){
|
||||
$("#sortable").sortable();
|
||||
$("#sortable").disableSelection();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* speichert die Reihung der Studenten einer Prüfungsanmeldung
|
||||
* @param {type} terminId ID des Prüfungstermines
|
||||
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function saveReihung(terminId, lehrveranstaltung_id)
|
||||
{
|
||||
var reihung = [];
|
||||
$("#anmeldeDaten ul").children().each(function(i, v){
|
||||
var anmeldung = new Object();
|
||||
anmeldung.terminId = terminId;
|
||||
anmeldung.lehrveranstaltung_id = lehrveranstaltung_id;
|
||||
anmeldung.reihung = (i+1);
|
||||
anmeldung.uid = v.id;
|
||||
reihung.push(anmeldung);
|
||||
});
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "saveReihung",
|
||||
reihung: reihung
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
if(data.error === 'false' && data.result === true)
|
||||
{
|
||||
messageBox("message", "Reihung erfolgreich geändert.", "green", "highlight", 4000);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 4000);
|
||||
}
|
||||
}).complete(function(){
|
||||
showAnmeldungen(terminId, lehrveranstaltung_id);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Ändert den Status einer Anmeldung auf "bestätigt"
|
||||
* @param {type} pruefungsanmeldung_id ID der Prüfungsanmeldung
|
||||
* @param {type} termin_id ID des Prüfungstermines
|
||||
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function anmeldungBestaetigen(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id)
|
||||
{
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "anmeldungBestaetigen",
|
||||
pruefungsanmeldung_id: pruefungsanmeldung_id
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
if(data.error === 'false' && data.result === true)
|
||||
{
|
||||
if(termin_id !== 'undefined' && lehrveranstaltung_id !== 'undefined')
|
||||
{
|
||||
showAnmeldungen(termin_id, lehrveranstaltung_id);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 4000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Anzeige eines DIVs zur Darstellung von Fehlermeldungen, etc.
|
||||
* @param {type} divId ID des DIVs in dem die Meldung dargestellt werden soll
|
||||
* @param {type} data Daten die angezeigt werden sollen
|
||||
* @param {type} color Hintergrundfarbe des DIVs
|
||||
* @param {type} effect Anzeigeeffekt (siehe jQuery UI)
|
||||
* @param {type} duration Dauer des Effektes
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function messageBox(divId, data, color, effect, duration)
|
||||
{
|
||||
$("#"+divId).html(data);
|
||||
$("#"+divId).effect(effect, {
|
||||
duration: duration,
|
||||
color: color
|
||||
});
|
||||
$("#"+divId).hide("blind",{
|
||||
duration: 4000,
|
||||
queue: false
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Studiengänge
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function loadStudiengaenge()
|
||||
{
|
||||
// $("body").append("<div class='modalOverlay'></div>");
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getStudiengaenge"
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
$("#stgListe").empty();
|
||||
if(data.error === 'false')
|
||||
{
|
||||
var liste = "";
|
||||
data.result.forEach(function(e){
|
||||
progressBarCount++;
|
||||
});
|
||||
// $("#progressbar").progressbar({
|
||||
// value: 0,
|
||||
// max: progressBarCount
|
||||
// }).bind('progressbarchange', function(event, ui) {
|
||||
// var selector = "#" + this.id + " > div";
|
||||
// var value = this.getAttribute( "aria-valuenow" );
|
||||
//
|
||||
// if (value < (progressBarCount / 6)){
|
||||
// $(selector).css({ 'background': 'Red' });
|
||||
// } else if (value < (progressBarCount / 3)){
|
||||
// $(selector).css({ 'background': 'Orange' });
|
||||
// } else if (value < (progressBarCount / 1.5)){
|
||||
// $(selector).css({ 'background': 'Yellow' });
|
||||
// } else{
|
||||
// $(selector).css({ 'background': 'LightGreen' });
|
||||
// }
|
||||
// });
|
||||
|
||||
data.result.forEach(function(e){
|
||||
var kuerzel = e.typ+e.kurzbz
|
||||
liste += "<li id='stg"+e.studiengang_kz+"'><span class='studiengang'><a href='#' onclick='loadPruefungStudiengang(\""+e.studiengang_kz+"\");'>"+e.bezeichnung+" ("+kuerzel.toUpperCase()+")</a></span></li>";
|
||||
// loadPruefungStudiengang(e.studiengang_kz);
|
||||
});
|
||||
$("#stgListe").append(liste);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 4000);
|
||||
}
|
||||
}).complete(function(event, xhr, settings){
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfungen zu einem Studiengang
|
||||
* @param {type} studiengang_kz Studiengangskennzahl
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function loadPruefungStudiengang(studiengang_kz)
|
||||
{
|
||||
var progressBarStep = 100/progressBarCount;
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getPruefungenStudiengang",
|
||||
studiengang_kz: studiengang_kz
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
console.log(data);
|
||||
if(data.error === 'false')
|
||||
{
|
||||
$("#pruefungenListe").empty();
|
||||
if(data.result.length > 0)
|
||||
{
|
||||
var liste = "";
|
||||
data.result.forEach(function(e){
|
||||
liste += "<ul><li>"+e.bezeichnung+"<ul>";
|
||||
e.pruefung.termine.forEach(function(d){
|
||||
liste += "<li> <a onclick='showAnmeldungen(\""+d.pruefungstermin_id+"\", \""+e.lehrveranstaltung_id+"\");'>"+convertDateTime(d.von)+" "+convertDateTime(d.von, "time")+" - "+convertDateTime(d.bis, "time")+"</a></li>";
|
||||
})
|
||||
liste += "</li></ul></ul>";
|
||||
});
|
||||
// $("#stg"+studiengang_kz).append(liste);
|
||||
$("#pruefungenListe").append(liste);
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#pruefungenListe").html("Keine Prüfungen vorhanden.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 4000);
|
||||
}
|
||||
}).complete(function(event, xhr, settings){
|
||||
// var value = $("#progressbar").progressbar("option", "value");
|
||||
// $("#progressbar").progressbar({
|
||||
// value: (value += 1)
|
||||
// });
|
||||
// if(value === progressBarCount)
|
||||
// {
|
||||
// $(".modalOverlay").remove();
|
||||
// $("#progressbar").hide();
|
||||
////
|
||||
//// var width = $("#prfWrapper").width();
|
||||
//// $("#prfWrapper").width(width+40);
|
||||
//// $("#anmWrapper").css("left", width+80+"px");
|
||||
// }
|
||||
});
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ require_once('../../../../include/konto.class.php');
|
||||
require_once('../../../../include/student.class.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/lehreinheit.class.php');
|
||||
require_once('../../../../include/studiengang.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
@@ -31,314 +32,593 @@ $method = isset($_REQUEST['method'])?$_REQUEST['method']:'';
|
||||
switch($method)
|
||||
{
|
||||
case 'getPruefungByLv':
|
||||
$lehrveranstaltungen = new lehrveranstaltung();
|
||||
//TODO
|
||||
$lehrveranstaltungen->load_lva_student($uid);
|
||||
$lvIds = array();
|
||||
foreach($lehrveranstaltungen->lehrveranstaltungen as $lvs)
|
||||
{
|
||||
array_push($lvIds, $lvs->lehrveranstaltung_id);
|
||||
}
|
||||
$lehrveranstaltungen=$lvIds;
|
||||
$pruefung = new pruefungCis();
|
||||
//TODO nur Prüfungen des aktuellen Studiensemesters
|
||||
if($pruefung->getPruefungByLv($lehrveranstaltungen))
|
||||
{
|
||||
$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;
|
||||
$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);
|
||||
}
|
||||
$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;
|
||||
}
|
||||
$data = getPruefungByLv($aktStudiensemester, $uid);
|
||||
break;
|
||||
case 'getPruefungByLvFromStudiengang':
|
||||
$lehrveranstaltungen = new lehrveranstaltung();
|
||||
$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();
|
||||
//TODO nur Prüfungen des aktuellen Studiensemesters
|
||||
if($pruefung->getPruefungByLv($lehrveranstaltungen))
|
||||
{
|
||||
$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;
|
||||
$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);
|
||||
}
|
||||
$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;
|
||||
}
|
||||
$data = getPruefungByLvFromStudiengang($aktStudiensemester, $uid);
|
||||
break;
|
||||
case 'loadPruefung':
|
||||
$pruefung_id=$_REQUEST["pruefung_id"];
|
||||
$pruefung = new pruefungCis();
|
||||
if($pruefung->load($pruefung_id))
|
||||
{
|
||||
$temp = array();
|
||||
$pruefung->getLehrveranstaltungenByPruefung();
|
||||
foreach($pruefung->lehrveranstaltungen as $lv)
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id);
|
||||
$lehrveranstaltung = $lehrveranstaltung->cleanResult();
|
||||
$prf = new stdClass();
|
||||
$prf->lehrveranstaltung = $lehrveranstaltung[0];
|
||||
$prf->pruefung = $pruefung;
|
||||
array_push($temp, $prf);
|
||||
}
|
||||
|
||||
$data['result'] = array();
|
||||
$data['result'] = $temp;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
|
||||
$data = loadPruefung();
|
||||
break;
|
||||
case '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;
|
||||
}
|
||||
|
||||
$data = loadTermine();
|
||||
break;
|
||||
case 'saveAnmeldung':
|
||||
$termin = new pruefungstermin($_REQUEST["termin_id"]);
|
||||
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";
|
||||
|
||||
// $studiensemester_kurbz = $_REQUEST['studiensemester_kurzbz'];
|
||||
|
||||
$lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]);
|
||||
|
||||
$konto = new konto();
|
||||
$creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester);
|
||||
// $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, $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'] = '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))
|
||||
// if(true)
|
||||
{
|
||||
$data['result'] = "Anmeldung erfolgreich!";
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$anmeldung->errormsg;
|
||||
}
|
||||
$data = saveAnmeldung($aktStudiensemester, $uid);
|
||||
break;
|
||||
case 'getAllPruefungen':
|
||||
$pruefung = new pruefungCis();
|
||||
//TODO Prüfungen des aktuellen Studiensemesters???
|
||||
if($pruefung->getAll())
|
||||
{
|
||||
$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;
|
||||
$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);
|
||||
}
|
||||
$return = new stdClass();
|
||||
$return->pruefungen = $pruefungen;
|
||||
$return->anmeldungen = $anmeldungsIds;
|
||||
$data['result']=$return;
|
||||
|
||||
// $data['result']=$pruefungen;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
$data = getAllPruefungen($aktStudiensemester, $uid);
|
||||
break;
|
||||
case 'stornoAnmeldung':
|
||||
$pruefungsanmeldung_id=$_REQUEST['pruefungsanmeldung_id'];
|
||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||
if($pruefungsanmeldung->delete($pruefungsanmeldung_id, $uid))
|
||||
{
|
||||
$data['result']='Anmeldung erfolgreich gelöscht.';
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
$data = stornoAnmeldung($uid);
|
||||
break;
|
||||
case 'getPruefungMitarbeiter':
|
||||
$data = getPruefungMitarbeiter($uid);
|
||||
break;
|
||||
case 'getAnmeldungenTermin':
|
||||
$data = getAnmeldungenTermin();
|
||||
break;
|
||||
case 'saveReihung':
|
||||
$data = saveReihung();
|
||||
break;
|
||||
case 'anmeldungBestaetigen':
|
||||
$data = anmeldungBestaetigen();
|
||||
break;
|
||||
case 'getStudiengaenge':
|
||||
$data = getStudiengaenge();
|
||||
break;
|
||||
case 'getPruefungenStudiengang':
|
||||
$data = getPruefungenStudiengang();
|
||||
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
|
||||
* @return Array
|
||||
*/
|
||||
function getPruefungByLv($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
$lehrveranstaltungen = new lehrveranstaltung();
|
||||
//TODO
|
||||
$lehrveranstaltungen->load_lva_student($uid);
|
||||
$lvIds = array();
|
||||
foreach($lehrveranstaltungen->lehrveranstaltungen as $lvs)
|
||||
{
|
||||
array_push($lvIds, $lvs->lehrveranstaltung_id);
|
||||
}
|
||||
$lehrveranstaltungen=$lvIds;
|
||||
$pruefung = new pruefungCis();
|
||||
//TODO nur Prüfungen des aktuellen Studiensemesters
|
||||
if($pruefung->getPruefungByLv($lehrveranstaltungen))
|
||||
{
|
||||
$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;
|
||||
$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);
|
||||
}
|
||||
$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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
* @return Array
|
||||
*/
|
||||
function getPruefungByLvFromStudiengang($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
$lehrveranstaltungen = new lehrveranstaltung();
|
||||
$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();
|
||||
//TODO nur Prüfungen des aktuellen Studiensemesters
|
||||
if($pruefung->getPruefungByLv($lehrveranstaltungen))
|
||||
{
|
||||
$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;
|
||||
$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);
|
||||
}
|
||||
$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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt die Daten zu einer einzelnen Prüfung
|
||||
* @return Array
|
||||
*/
|
||||
function loadPruefung()
|
||||
{
|
||||
$pruefung_id=$_REQUEST["pruefung_id"];
|
||||
$pruefung = new pruefungCis();
|
||||
if($pruefung->load($pruefung_id))
|
||||
{
|
||||
$temp = array();
|
||||
$pruefung->getLehrveranstaltungenByPruefung();
|
||||
foreach($pruefung->lehrveranstaltungen as $lv)
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id);
|
||||
$lehrveranstaltung = $lehrveranstaltung->cleanResult();
|
||||
$prf = new stdClass();
|
||||
$prf->lehrveranstaltung = $lehrveranstaltung[0];
|
||||
$prf->pruefung = $pruefung;
|
||||
array_push($temp, $prf);
|
||||
}
|
||||
|
||||
$data['result'] = array();
|
||||
$data['result'] = $temp;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt die Termine zu einer Prüfung
|
||||
* @return Array
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
* @return Array
|
||||
*/
|
||||
function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
$termin = new pruefungstermin($_REQUEST["termin_id"]);
|
||||
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";
|
||||
|
||||
// $studiensemester_kurbz = $_REQUEST['studiensemester_kurzbz'];
|
||||
|
||||
$lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]);
|
||||
|
||||
$konto = new konto();
|
||||
$creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester);
|
||||
// $creditpoints = 1.5;
|
||||
if($creditpoints !== false)
|
||||
{
|
||||
if($creditpoints < $lehrveranstaltung->ects)
|
||||
{
|
||||
$data['error'] = 'true';
|
||||
$data['errormsg'] = 'Credit-Points-Guthaben ist zu gering.';
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
//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'] = 'Kollision mit anderer Anmeldung.';
|
||||
}
|
||||
}
|
||||
if(isset($data['error']) && $data['error'] = 'true')
|
||||
{
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Keine freien Plätze vorhanden.';
|
||||
return $data;
|
||||
}
|
||||
|
||||
if($anmeldung->save(true))
|
||||
{
|
||||
$data['result'] = "Anmeldung erfolgreich!";
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$anmeldung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle vorhandenen Prüfungen
|
||||
* @param type $aktStudiensemester kurzbz des Studiensemesters (Filter nach Studiensemester)
|
||||
* @param type $uid UID eines Studenten
|
||||
* @return Array
|
||||
*/
|
||||
function getAllPruefungen($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
$pruefung = new pruefungCis();
|
||||
//TODO Prüfungen des aktuellen Studiensemesters???
|
||||
if($pruefung->getAll())
|
||||
{
|
||||
$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;
|
||||
$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);
|
||||
}
|
||||
$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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Storniert eine Prüfungsanmeldung
|
||||
* @param type $uid UID eines Studenten
|
||||
* @return Array
|
||||
*/
|
||||
function stornoAnmeldung($uid = null)
|
||||
{
|
||||
$pruefungsanmeldung_id=$_REQUEST['pruefungsanmeldung_id'];
|
||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||
if($pruefungsanmeldung->delete($pruefungsanmeldung_id, $uid))
|
||||
{
|
||||
$data['result']='Anmeldung erfolgreich gelöscht.';
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfungen eines Lektors/Mitarbeiters
|
||||
* @param type $uid UID des Lektors/Mitarbeiters
|
||||
* @return Array
|
||||
*/
|
||||
function getPruefungMitarbeiter($uid = null)
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
if($uid !== null)
|
||||
{
|
||||
//TODO UID
|
||||
$lehrveranstaltung->getLVByMitarbeiter($uid);
|
||||
// $lehrveranstaltung->getLVByMitarbeiter("neubauer");
|
||||
$result = array();
|
||||
foreach($lehrveranstaltung->lehrveranstaltungen as $lv)
|
||||
{
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->getPruefungByLv($lv->lehrveranstaltung_id);
|
||||
if($pruefung->lehrveranstaltungen[0]->pruefung_id !== null)
|
||||
{
|
||||
$pruefung->load($pruefung->lehrveranstaltungen[0]->pruefung_id);
|
||||
$pruefung->getTermineByPruefung();
|
||||
$lv->pruefung = $pruefung;
|
||||
array_push($result, $lv);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($result))
|
||||
{
|
||||
$data['result']=$result;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Keine Prüfungen vorhanden.";
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Anmeldungen zu einem Prüfungstermin
|
||||
* @return Array
|
||||
*/
|
||||
function getAnmeldungenTermin()
|
||||
{
|
||||
$lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"];
|
||||
$pruefungstermin_id = $_REQUEST["pruefungstermin_id"];
|
||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id);
|
||||
foreach($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($anmeldungen))
|
||||
{
|
||||
$data['result']=$anmeldungen;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
if($pruefungsanmeldung->errormsg !== null)
|
||||
{
|
||||
$data['errormsg']=$pruefungsanmeldung->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['errormsg']= 'Keine Anmeldungen vorhanden';
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* speichert die Reihung der Studenten eines Prüfungstermines
|
||||
* @return Array
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ändert den Status einer Prüfungsanmeldung auf "bestaetigt"
|
||||
* @return Array
|
||||
*/
|
||||
function anmeldungBestaetigen()
|
||||
{
|
||||
$pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"];
|
||||
$status = "bestaetigt";
|
||||
$anmeldung = new pruefungsanmeldung();
|
||||
if($anmeldung->changeState($pruefungsanmeldung_id, $status))
|
||||
{
|
||||
$data['result']=true;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$anmeldung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Studiengänge
|
||||
* @return Array
|
||||
*/
|
||||
function getStudiengaenge()
|
||||
{
|
||||
$studiengang = new studiengang();
|
||||
if($studiengang->getAll("bezeichnung", true))
|
||||
{
|
||||
$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']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$studiengang->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfungen eines Studienganges
|
||||
* @return Array
|
||||
*/
|
||||
function getPruefungenStudiengang()
|
||||
{
|
||||
$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($pruefung->lehrveranstaltungen[0]->pruefung_id !== null)
|
||||
{
|
||||
$pruefung->load($pruefung->lehrveranstaltungen[0]->pruefung_id);
|
||||
$pruefung->getTermineByPruefung();
|
||||
$lv->pruefung = $pruefung;
|
||||
array_push($result, $lv);
|
||||
}
|
||||
}
|
||||
$data['result']=$result;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
return $data;
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,230 @@
|
||||
<!DOCTYPE html>
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*
|
||||
*
|
||||
* Authors: Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/functions.inc.php');
|
||||
require_once('../../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
$db = new basis_db();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Prüfungsanmeldung Verwaltung</title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script src="../../../../include/js/jquery1.9.min.js"></script>
|
||||
<script src="../../../../include/js/jquery.tablesorter.min.js"></script>
|
||||
<script src="./pruefung.js"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../skin/tablesort.css">
|
||||
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
|
||||
<style type="text/css">
|
||||
#stgWrapper {
|
||||
position: absolute;
|
||||
height: 80%;
|
||||
width: 450px;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
border-radius: 25px;
|
||||
/*border: 1px solid black;*/
|
||||
box-shadow: 0em 0em 2em 0.5em #888888 inset;
|
||||
}
|
||||
|
||||
#studiengaenge {
|
||||
/*border: 1px solid black;*/
|
||||
width: 94%;
|
||||
position: relative;
|
||||
float: left;
|
||||
padding: 0 1em 0em 1em;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
|
||||
#prfWrapper {
|
||||
position: absolute;
|
||||
height: 80%;
|
||||
width: 300px;
|
||||
left: 500px;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
border-radius: 25px;
|
||||
/*border: 1px solid black;*/
|
||||
box-shadow: 0em 0em 2em 0.5em #888888 inset;
|
||||
}
|
||||
|
||||
#pruefungen {
|
||||
/*border: 1px solid black;*/
|
||||
width: 94%;
|
||||
position: relative;
|
||||
float: left;
|
||||
padding: 0 1em 0em 1em;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
#anmWrapper {
|
||||
position: fixed;
|
||||
top: 45px;
|
||||
left: 850px;
|
||||
width: 500px;
|
||||
height: 80%;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
border-radius: 25px;
|
||||
/*border: 1px solid black;*/
|
||||
box-shadow: 0em 0em 2em 0.5em #888888 inset;
|
||||
}
|
||||
|
||||
#anmeldungen {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
#anmeldungen > div, h2 {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
#message {
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
width: 100%;
|
||||
height: 2em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#sortable {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
#sortable li {
|
||||
margin: 0 3px 3px 3px;
|
||||
padding: 0.4em;
|
||||
padding-left: 1.5em;
|
||||
font-size: 1.4em;
|
||||
height: 18px;
|
||||
list-style-image: none;
|
||||
display: block;
|
||||
}
|
||||
#sortable li span {
|
||||
/*position: absolute;*/
|
||||
margin-left: -1.3em;
|
||||
float:left;
|
||||
}
|
||||
|
||||
.resultOK {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.resultNotOK {
|
||||
color: red;
|
||||
}
|
||||
|
||||
#sortable li a {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#sortable li div {
|
||||
float: right;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.anmerkungInfo {
|
||||
text-align: right;
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
#progressbar {
|
||||
position: fixed;
|
||||
width: 300px;
|
||||
top: 30%;
|
||||
left: 50%;
|
||||
margin-left: -150px;
|
||||
z-index: 100;
|
||||
background: '#9CFF29';
|
||||
}
|
||||
.modalOverlay {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||
}
|
||||
|
||||
.studiengang {
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
loadStudiengaenge();
|
||||
// loadPruefungenMitarbeiter();
|
||||
});
|
||||
</script>
|
||||
<h1>Anmeldungen Verwalten</h1>
|
||||
<div id='stgWrapper'>
|
||||
<div id='studiengaenge'>
|
||||
<h2>Studiengänge</h2>
|
||||
<ul id='stgListe'>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id='prfWrapper'>
|
||||
<div id='pruefungen'>
|
||||
<h2>Prüfungen</h2>
|
||||
<ul id="pruefungenListe">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id='anmWrapper'>
|
||||
<div id="anmeldungen">
|
||||
<h2>Anmeldungen</h2>
|
||||
<div id="anmeldeDaten">
|
||||
|
||||
</div>
|
||||
<div id="reihungSpeichernButton">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="message"></div>
|
||||
<div id="progressbar"></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -517,6 +517,11 @@ class organisationseinheit extends basis_db
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt Organisationseinheiten nach ihrem Typ
|
||||
* @param type $oetyp_kurzbz
|
||||
* @return boolean true, wenn ok; false, im Fehlerfall
|
||||
*/
|
||||
public function getByTyp($oetyp_kurzbz)
|
||||
{
|
||||
$qry = 'SELECT * FROM public.tbl_organisationseinheit WHERE organisationseinheittyp_kurzbz='.$this->db_add_param($oetyp_kurzbz).';';
|
||||
|
||||
@@ -571,20 +571,34 @@ class pruefungCis extends basis_db
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getPruefungByLv($lehrveranstaltung_IDs = array())
|
||||
/**
|
||||
* Lädt alle Prüfungen zur angebenen Lehrveranstaltung
|
||||
* @param String|Array $lehrveranstaltung_IDs einzelne ID einer Lehrveranstaltung oder ein Array von IDs
|
||||
* @return boolean true, wenn ok; false, im Fehlerfall
|
||||
*/
|
||||
public function getPruefungByLv($lehrveranstaltung_IDs)
|
||||
{
|
||||
if(empty($lehrveranstaltung_IDs))
|
||||
{
|
||||
$this->errormsg = "Keine Lehrveranstaltungen übergeben.</br>";
|
||||
return false;
|
||||
}
|
||||
|
||||
$in = "";
|
||||
if (is_array($lehrveranstaltung_IDs))
|
||||
{
|
||||
foreach($lehrveranstaltung_IDs as $id)
|
||||
{
|
||||
$in.= $id.', ';
|
||||
}
|
||||
$in = substr($in, 0, -2);
|
||||
}
|
||||
else
|
||||
{
|
||||
$in = $lehrveranstaltung_IDs;
|
||||
}
|
||||
|
||||
|
||||
$in = "";
|
||||
foreach($lehrveranstaltung_IDs as $id)
|
||||
{
|
||||
$in.= $id.', ';
|
||||
}
|
||||
$in = substr($in, 0, -2);
|
||||
|
||||
$qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung WHERE lehrveranstaltung_id IN ('.$in.');';
|
||||
|
||||
@@ -603,6 +617,10 @@ class pruefungCis extends basis_db
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfung-Lehrveranstaltung Kombinationen
|
||||
* @return boolean true, wenn ok; false, im Fehlerfall
|
||||
*/
|
||||
public function getAll()
|
||||
{
|
||||
$qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung;';
|
||||
@@ -622,6 +640,11 @@ class pruefungCis extends basis_db
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt den Wert des letzten Studenten in der Anmeldereihung
|
||||
* @param type $pruefungstermin_id Id eines Prüfungstermines
|
||||
* @return boolean|integer Wert des Letzten in der Reihung oder false, wenn ein Fehler auftritt
|
||||
*/
|
||||
public function getLastOfReihung($pruefungstermin_id)
|
||||
{
|
||||
$qry = 'SELECT MAX(reihung) FROM campus.tbl_pruefungsanmeldung WHERE '
|
||||
|
||||
@@ -77,6 +77,11 @@ class pruefungsanmeldung extends basis_db {
|
||||
return $this->$name;
|
||||
}
|
||||
|
||||
/**
|
||||
* speichert eine Prüfungsanmeldung
|
||||
* @param type $new
|
||||
* @return boolean true, wenn erfolgreich; false im Fehlerfall
|
||||
*/
|
||||
public function save($new = null)
|
||||
{
|
||||
if ($new == null)
|
||||
@@ -109,6 +114,11 @@ class pruefungsanmeldung extends basis_db {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt eine Prüfungsanmeldung
|
||||
* @param type $pruefungsanmeldung_id
|
||||
* @return boolean true, wenn erfolgreich; false im Fehlerfall
|
||||
*/
|
||||
public function load($pruefungsanmeldung_id)
|
||||
{
|
||||
if(!is_numeric($pruefungsanmeldung_id))
|
||||
@@ -141,6 +151,13 @@ class pruefungsanmeldung extends basis_db {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 '
|
||||
@@ -167,12 +184,71 @@ class pruefungsanmeldung extends basis_db {
|
||||
$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;
|
||||
array_push($anmeldungen, $anmeldung);
|
||||
}
|
||||
return $anmeldungen;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Anmeldungen eines Prüfungstermins
|
||||
* @param type $pruefungstermin_id ID des Prüfungstermins
|
||||
* @param type $lehrveranstaltung_id Filter nach Lehrveranstaltung
|
||||
* @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 getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id=null, $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 pa.pruefungstermin_id='.$this->db_add_param($pruefungstermin_id);
|
||||
|
||||
if($lehrveranstaltung_id !== null)
|
||||
{
|
||||
$qry .= ' AND lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id);
|
||||
}
|
||||
$qry .=' ORDER BY reihung';
|
||||
$qry .=';';
|
||||
|
||||
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;
|
||||
array_push($anmeldungen, $anmeldung);
|
||||
}
|
||||
return $anmeldungen;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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);
|
||||
@@ -195,4 +271,61 @@ class pruefungsanmeldung extends basis_db {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* speichert die Reihung eines Anmeldungstermins
|
||||
* WICHTIG: Auf den Aufbau des übergebenen arrays muss geachtet werden
|
||||
* @param Array $reihung Ein Array mit Objekten (Attribute: lehrveranstaltung_id, reihung, terminId, uid)
|
||||
* @return boolean true, wenn ok; false, im Fehlerfall
|
||||
*/
|
||||
public function saveReihung($reihung)
|
||||
{
|
||||
if(is_array($reihung))
|
||||
{
|
||||
foreach($reihung as $key=>$anmeldung)
|
||||
{
|
||||
if($key === 0)
|
||||
{
|
||||
$qry = 'BEGIN; UPDATE campus.tbl_pruefungsanmeldung SET reihung='.$this->db_add_param($anmeldung["reihung"]).' WHERE '
|
||||
. 'uid='.$this->db_add_param($anmeldung["uid"]).' AND '
|
||||
. 'pruefungstermin_id='.$this->db_add_param($anmeldung["terminId"]).' AND '
|
||||
. 'lehrveranstaltung_id='.$this->db_add_param($anmeldung["lehrveranstaltung_id"]).';';
|
||||
} else {
|
||||
$qry = 'UPDATE campus.tbl_pruefungsanmeldung SET reihung='.$this->db_add_param($anmeldung["reihung"]).' WHERE '
|
||||
. 'uid='.$this->db_add_param($anmeldung["uid"]).' AND '
|
||||
. 'pruefungstermin_id='.$this->db_add_param($anmeldung["terminId"]).' AND '
|
||||
. 'lehrveranstaltung_id='.$this->db_add_param($anmeldung["lehrveranstaltung_id"]).';';
|
||||
}
|
||||
if((!$this->db_query($qry)) || ($this->db_affected_rows()===0))
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
$this->errormsg = "Reihung konnte nicht geändert werden.";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$this->db_query('COMMIT;');
|
||||
return true;
|
||||
}
|
||||
$this->errormsg = "No Array";
|
||||
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)
|
||||
{
|
||||
$qry = 'UPDATE campus.tbl_pruefungsanmeldung SET status_kurzbz='.$this->db_add_param($status).''
|
||||
. ' 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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,6 +126,10 @@ class pruefungstermin extends basis_db{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt die Anzahl der Anmeldungen zu eine Prüfung
|
||||
* @return boolean|integer Anzahl der Teilnehmer; false, wenn Fehler
|
||||
*/
|
||||
public function getNumberOfParticipants()
|
||||
{
|
||||
$qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung WHERE pruefungstermin_id='.$this->db_add_param($this->pruefungstermin_id).';';
|
||||
|
||||
Reference in New Issue
Block a user