mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-11 12:02:26 +00:00
Umbau Prüfungsverwaltung zu AJAX; Möglichkeit Prüfungen für alle Lektoren anzulegen
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/* Copyright (C) 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Manfred Kindl <kindlm@technikum-wien.at>,
|
||||
* Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/basis_db.class.php');
|
||||
require_once('../../../../include/mitarbeiter.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='lektor')
|
||||
{
|
||||
$search=trim((isset($_REQUEST['term']) ? $_REQUEST['term']:''));
|
||||
if (is_null($search) ||$search=='')
|
||||
exit();
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
$searchItems = explode(' ',$search);
|
||||
if($mitarbeiter->search($search))
|
||||
{
|
||||
$result_obj = array();
|
||||
foreach($mitarbeiter->result as $row)
|
||||
{
|
||||
$item['vorname']=html_entity_decode($row->vorname);
|
||||
$item['nachname']=html_entity_decode($row->nachname);
|
||||
$item['uid']=html_entity_decode($row->uid);
|
||||
$result_obj[]=$item;
|
||||
}
|
||||
echo json_encode($result_obj);
|
||||
}
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
@@ -52,15 +52,25 @@ function setDatePicker(ele)
|
||||
|
||||
/**
|
||||
* Fügt ein neunes Formularfeld für einen zusätzlichen Termin hinzu
|
||||
* @param {type} inputTag
|
||||
* @param {type} htmlTag
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function terminHinzufuegen(inputTag)
|
||||
function terminHinzufuegen(htmlTag)
|
||||
{
|
||||
inputTag = (inputTag===undefined ? "" : inputTag);
|
||||
var count = $("#prfTermin tr").length+1;
|
||||
$("#prfTermin").append('<tr><td><input type="text" id="termin'+count+'" name="termin'+(inputTag !== "" ? inputTag : "")+'[]"></td><td><input type="time" placeholder="00:00" name="terminBeginn'+(inputTag !== "" ? inputTag : "")+'[]"></td><td><input type="time" placeholder="00:00" name="terminEnde'+(inputTag !== "" ? inputTag : "")+'[]"></td><td><input type="number" placeholder="0" min="0" name="minTeilnehmer'+(inputTag !== "" ? inputTag : "")+'[]"></td><td><input type="number" placeholder="10" min="0" name="maxTeilnehmer'+(inputTag !== "" ? inputTag : "")+'[]"></td></tr>');
|
||||
setDatePicker();
|
||||
htmlTag = (htmlTag===undefined ? "input" : htmlTag);
|
||||
switch(htmlTag)
|
||||
{
|
||||
case 'input':
|
||||
var count = $("#prfTermin tr").length+1;
|
||||
$("#prfTermin").append('<tr id="row'+count+'"><td><input type="text" id="termin'+count+'" name="termin[]"></td><td><input type="time" id="termin'+count+'Beginn" placeholder="00:00" name="termin'+count+'Beginn[]"></td><td><input type="time" id="termin'+count+'Ende" placeholder="00:00" name="termin'+count+'Ende[]"></td><td><input type="number" id="termin'+count+'min" placeholder="0" min="0" name="termin'+count+'minTeilnehmer[]"></td><td><input type="number" id="termin'+count+'max" placeholder="10" min="0" name="termin'+count+'maxTeilnehmer[]"></td></tr>');
|
||||
setDatePicker();
|
||||
break;
|
||||
case 'span':
|
||||
var count = $("#prfTermin tr").length+1;
|
||||
$("#prfTermin").append('<tr id="row'+count+'"><td><span style="visibility: hidden;" id="termin'+count+'Id"></span><span id="termin'+count+'" name="termin[]"></span></td><td><span id="termin'+count+'Beginn" name="termin'+count+'Beginn[]"></span></td><td><span id="termin'+count+'Ende" name="termin'+count+'Ende[]"></span></td><td><span id="termin'+count+'min" name="termin'+count+'minTeilnehmer[]"></span></td><td><span id="termin'+count+'max" name="termin'+count+'maxTeilnehmer[]"></span></td></tr>');
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -104,17 +114,26 @@ function loadPruefungsfenster()
|
||||
var studiensemester_kurzbz = $("#studiensemester option:selected").val();
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "../../../../soap/fhcomplete.php",
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
typ: "json",
|
||||
class: "pruefungsfenster",
|
||||
method: "getByStudiensemester",
|
||||
parameter_0: studiensemester_kurzbz
|
||||
method: "getPruefungsfensterByStudiensemester",
|
||||
studiensemester_kurzbz: studiensemester_kurzbz
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
writePruefungsfenster(data);
|
||||
setDatePicker();
|
||||
if(data.result.length === 0)
|
||||
{
|
||||
messageBox("message", "Keine Prüfungsfenster vorhanden", "red", "highlight", 1000);
|
||||
$("#pruefungsfenster").html("<option value='null'></option>");
|
||||
}
|
||||
else
|
||||
{
|
||||
writePruefungsfenster(data);
|
||||
setDatePicker();
|
||||
}
|
||||
}).complete(function(){
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@@ -251,7 +270,6 @@ function loadPruefungenGesamt()
|
||||
}).complete(function(event, xhr, settings){
|
||||
setTablesorter("table3");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -541,35 +559,37 @@ function refresh()
|
||||
* 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);
|
||||
}
|
||||
});
|
||||
}
|
||||
//function loadPruefungenMitarbeiter()
|
||||
//{
|
||||
// var uid = $("#mitarbeiter_uid").val();
|
||||
// $.ajax({
|
||||
// dataType: 'json',
|
||||
// url: "./pruefungsanmeldung.json.php",
|
||||
// type: "POST",
|
||||
// data: {
|
||||
// method: "getPruefungMitarbeiter",
|
||||
// uid: uid
|
||||
// },
|
||||
// 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
|
||||
@@ -871,3 +891,723 @@ function saveKommentar(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id)
|
||||
showAnmeldungen(termin_id, lehrveranstaltung_id);
|
||||
});
|
||||
}
|
||||
|
||||
function loadPruefungstypen(abschluss)
|
||||
{
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "loadPruefungstypen",
|
||||
abschluss: abschluss
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
var selectData = "";
|
||||
data.result.forEach(function(d){
|
||||
if(d.beschreibung === null)
|
||||
d.beschreibung = "";
|
||||
selectData += "<option value='"+d.pruefungstyp_kurzbz+"'>"+d.beschreibung+"</option>";
|
||||
});
|
||||
$('#pruefungsTyp').html(selectData);
|
||||
});
|
||||
}
|
||||
|
||||
function loadStudiensemester()
|
||||
{
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "loadStudiensemester"
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
var selectData = "";
|
||||
data.result.forEach(function(d){
|
||||
selectData += "<option "+((d.studiensemester_kurzbz === data.aktSem) ? "selected" : "")+" value='"+d.studiensemester_kurzbz+"'>"+d.studiensemester_kurzbz+"</option>";
|
||||
});
|
||||
$('#studiensemester').html(selectData);
|
||||
}).complete(function(){
|
||||
loadPruefungsfenster();
|
||||
loadLehrveranstaltungen();
|
||||
});
|
||||
}
|
||||
|
||||
function is_null(variable)
|
||||
{
|
||||
if(variable === null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function is_undefined(variable)
|
||||
{
|
||||
if(variable === undefined)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function is_empty_String(string)
|
||||
{
|
||||
if(string.length === 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function savePruefungstermin()
|
||||
{
|
||||
unmarkMissingFormEntry();
|
||||
var studiensemester_kurzbz = $("#studiensemester").val();
|
||||
var pruefungsfenster_id = $("#pruefungsfenster").val();
|
||||
var pruefungstyp_kurzbz = $("#pruefungsTyp").val();
|
||||
var titel = $("#titel").val();
|
||||
var beschreibung = $("#beschreibung").val();
|
||||
var methode = $("#methode").val();
|
||||
var einzeln = $("#einzeln").prop("checked");
|
||||
var termine = [];
|
||||
var lehrveranstaltungen = [];
|
||||
var error = false;
|
||||
$("#prfTermin tr").each(function(i,v){
|
||||
var termin = {};
|
||||
$(v).find("input").each(function(j, w){
|
||||
switch (j) {
|
||||
case 0:
|
||||
termin.datum = $(w).val();
|
||||
break;
|
||||
case 1:
|
||||
termin.beginn = $(w).val();
|
||||
break;
|
||||
case 2:
|
||||
termin.ende = $(w).val();
|
||||
break;
|
||||
case 3:
|
||||
termin.min = $(w).val();
|
||||
break;
|
||||
case 4:
|
||||
termin.max = $(w).val();
|
||||
break;
|
||||
}
|
||||
});
|
||||
if(!checkTermin(termin))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry($(v).attr("id"));
|
||||
}
|
||||
termine.push(termin);
|
||||
});
|
||||
|
||||
|
||||
$("#lvDropdowns select").each(function(i,v){
|
||||
if($(v).val() !== "null")
|
||||
lehrveranstaltungen.push($(v).val());
|
||||
});
|
||||
|
||||
if(is_null(studiensemester_kurzbz) || is_undefined(studiensemester_kurzbz) || is_empty_String(studiensemester_kurzbz))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("studiensemester");
|
||||
}
|
||||
if(is_null(pruefungsfenster_id) || is_undefined(pruefungsfenster_id) || is_empty_String(pruefungsfenster_id) || (pruefungsfenster_id === "null"))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("pruefungsfenster");
|
||||
}
|
||||
if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert"))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("pruefungsTyp");
|
||||
}
|
||||
if(is_null(titel) || is_undefined(titel) || is_empty_String(titel))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("titel");
|
||||
}
|
||||
if(is_null(beschreibung) || is_undefined(beschreibung) || is_empty_String(beschreibung))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("beschreibung");
|
||||
}
|
||||
if(is_null(methode) || is_undefined(methode) || is_empty_String(methode))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("methode");
|
||||
}
|
||||
//TODO Kommentar entfernen
|
||||
// if(lehrveranstaltungen.length === 0)
|
||||
// {
|
||||
// error = true;
|
||||
// markMissingFormEntry("lvDropdowns");
|
||||
// }
|
||||
|
||||
|
||||
if(error)
|
||||
{
|
||||
messageBox("message", "Formulardaten sind nicht korrekt.", "red", "highlight", 3000);
|
||||
}
|
||||
else
|
||||
{
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "savePruefungstermin",
|
||||
studiensemester_kurzbz: studiensemester_kurzbz,
|
||||
pruefungsfenster_id: pruefungsfenster_id,
|
||||
pruefungstyp_kurzbz: pruefungstyp_kurzbz,
|
||||
titel: titel,
|
||||
beschreibung: beschreibung,
|
||||
methode: methode,
|
||||
einzeln: einzeln,
|
||||
termine: termine,
|
||||
lehrveranstaltungen: lehrveranstaltungen
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
unmarkMissingFormEntry();
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "Prüfung erfolgreich gespeichert.", "green", "highlight", 1000);
|
||||
resetPruefungsverwaltung();
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function markMissingFormEntry(eleId)
|
||||
{
|
||||
$("#"+eleId).addClass("missingFormData");
|
||||
$(".modalOverlay").each(function(i,v){
|
||||
$(v).removeClass("modalOverlay");
|
||||
});
|
||||
}
|
||||
|
||||
function unmarkMissingFormEntry()
|
||||
{
|
||||
$(".missingFormData").each(function(i, v){
|
||||
$(v).removeClass("missingFormData");
|
||||
});
|
||||
}
|
||||
|
||||
function loadLehrveranstaltungen()
|
||||
{
|
||||
var studiensemester_kurzbz = $("#studiensemester").val();
|
||||
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getLehrveranstaltungenByMitarbeiter",
|
||||
mitarbeiter_uid: mitarbeiter_uid,
|
||||
studiensemester_kurzbz: studiensemester_kurzbz
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
var selectData = '<option value="null">Lehrveranstaltung auswählen...</option>';
|
||||
data.result.forEach(function(d){
|
||||
selectData += '<option value="'+d.lehrveranstaltung_id+'">'+d.studiengang_bezeichnung+' | <b>'+d.bezeichnung+'</b> ('+d.lehrform_kurzbz+')</option>';
|
||||
});
|
||||
$("#lvDropdown1").html(selectData);
|
||||
}).complete(function(){
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function loadPruefungsDetails(prfId)
|
||||
{
|
||||
unmarkMissingFormEntry();
|
||||
$("#modalOverlay").addClass("modalOverlay");
|
||||
resetLehrveranstaltungen();
|
||||
var row = $("#row1").clone();
|
||||
resetTermine();
|
||||
$("#prfTermine").append(row);
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "loadStudiensemester"
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
var selectData = "";
|
||||
data.result.forEach(function(d){
|
||||
selectData += "<option "+((d.studiensemester_kurzbz === data.aktSem) ? "selected" : "")+" value='"+d.studiensemester_kurzbz+"'>"+d.studiensemester_kurzbz+"</option>";
|
||||
});
|
||||
$('#studiensemester').html(selectData);
|
||||
}).complete(function(){
|
||||
var studiensemester_kurzbz = $("#studiensemester option:selected").val();
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getPruefungsfensterByStudiensemester",
|
||||
studiensemester_kurzbz: studiensemester_kurzbz
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
if(data.result.length === 0)
|
||||
{
|
||||
messageBox("message", "Keine Prüfungsfenster vorhanden", "red", "highlight", 1000);
|
||||
$("#pruefungsfenster").html("<option value='null'></option>");
|
||||
}
|
||||
else
|
||||
{
|
||||
writePruefungsfenster(data);
|
||||
setDatePicker();
|
||||
}
|
||||
}).complete(function(){
|
||||
var studiensemester_kurzbz = $("#studiensemester").val();
|
||||
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getLehrveranstaltungenByMitarbeiter",
|
||||
mitarbeiter_uid: mitarbeiter_uid,
|
||||
studiensemester_kurzbz: studiensemester_kurzbz
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
var selectData = '<option value="null">Lehrveranstaltung auswählen...</option>';
|
||||
data.result.forEach(function(d){
|
||||
selectData += '<option value="'+d.lehrveranstaltung_id+'">'+d.studiengang_bezeichnung+' | <b>'+d.bezeichnung+'</b> ('+d.lehrform_kurzbz+')</option>';
|
||||
});
|
||||
$("#lvDropdown1").html(selectData);
|
||||
}).complete(function(){
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "loadPruefung",
|
||||
pruefung_id: prfId
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
var copy = $("#lvDropdown1").clone();
|
||||
$("#lvDropdowns").empty();
|
||||
$("#lvDropdowns").html(copy);
|
||||
var result = data.result[0];
|
||||
$("#titel").val(result.pruefung.titel);
|
||||
$("#beschreibung").val(result.pruefung.beschreibung);
|
||||
$("#studiensemester").val(result.pruefung.studiensemester_kurzbz);
|
||||
$("#pruefungsfenster").val(result.pruefung.pruefungsfenster_id);
|
||||
$("#pruefungsTyp").val(result.pruefung.pruefungstyp_kurzbz);
|
||||
$("#methode").val(result.pruefung.methode);
|
||||
var i = 0;
|
||||
$("#termin1").closest("tr").remove();
|
||||
terminHinzufuegen("span");
|
||||
data.result.forEach(function(d){
|
||||
i++;
|
||||
var lv = "<span value='"+d.lehrveranstaltung.lehrveranstaltung_id+"'>"+d.lehrveranstaltung.studiengang.kurzbzlang+" | <b>"+d.lehrveranstaltung.bezeichnung+"</b> ("+d.lehrveranstaltung.lehrform_kurzbz+")</span><a href='#' onclick='deleteLehrveranstaltungFromPruefung(\""+d.lehrveranstaltung.lehrveranstaltung_id+"\", \""+d.pruefung.pruefung_id+"\");'> löschen</a></br>";
|
||||
$("#lvDropdowns").children().first().before(lv);
|
||||
var j = 0;
|
||||
d.pruefung.termine.forEach(function(t){
|
||||
j++;
|
||||
if(i===1)
|
||||
{
|
||||
var date = convertDateTime(t.von, "date");
|
||||
var von = convertDateTime(t.von, "time");
|
||||
var bis = convertDateTime(t.bis, "time");
|
||||
var min = (t.min === null) ? "" : t.min;
|
||||
var max = (t.max === null) ? "" : t.max;
|
||||
$("#termin"+j+"Id").text(t.pruefungstermin_id);
|
||||
$("#termin"+j).text(date);
|
||||
$("#termin"+j+"Beginn").text(von);
|
||||
$("#termin"+j+"Ende").text(bis);
|
||||
$("#termin"+j+"min").text(min);
|
||||
$("#termin"+j+"max").text(max);
|
||||
$("#termin"+j+"Id").closest("tr").append("<td><a href='#' onclick='terminLoeschen(\""+d.pruefung.pruefung_id+"\", \""+t.pruefungstermin_id+"\");'>löschen</a></td>");
|
||||
terminHinzufuegen("span");
|
||||
}
|
||||
});
|
||||
});
|
||||
var ele = document.getElementById("lvDropdowns");
|
||||
// lehrveranstaltungDropdownhinzufuegen(ele, false);
|
||||
$("#prfTermin tr").last().remove();
|
||||
if(result.pruefung.einzeln)
|
||||
{
|
||||
$("#einzeln").prop("checked", "checked");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#einzeln").removeAttr("checked");
|
||||
}
|
||||
}).complete(function(){
|
||||
$("#buttonSave").attr("onclick", "updatePruefung(\""+prfId+"\");");
|
||||
if($("#buttonStorno").length === 0)
|
||||
{
|
||||
$("#buttonSave").after("<input type='button' id='buttonStorno' onclick='stornoPruefung(\""+prfId+"\");' value='Prüfung stornieren'></input>");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#buttonStorno").attr("onclick", "stornoPruefung(\""+prfId+"\");");
|
||||
}
|
||||
$("#modalOverlay").removeClass("modalOverlay");
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function resetLehrveranstaltungen()
|
||||
{
|
||||
$("#lvDropdowns").children().each(function(i,v){
|
||||
$("#lvDropdown"+(i+2)).next().remove();
|
||||
$("#lvDropdown"+(i+2)).remove();
|
||||
});
|
||||
}
|
||||
|
||||
function resetTermine()
|
||||
{
|
||||
$("#prfTermin tr").each(function(i,v){
|
||||
// if(i !== 0)
|
||||
// {
|
||||
$(v).remove();
|
||||
// }
|
||||
});
|
||||
}
|
||||
|
||||
function updatePruefung(prfId)
|
||||
{
|
||||
$("#modalOverlay").addClass("modalOverlay");
|
||||
//TODO Terminkollisionen überprüfen
|
||||
unmarkMissingFormEntry();
|
||||
var studiensemester_kurzbz = $("#studiensemester").val();
|
||||
var pruefungsfenster_id = $("#pruefungsfenster").val();
|
||||
var pruefungstyp_kurzbz = $("#pruefungsTyp").val();
|
||||
var titel = $("#titel").val();
|
||||
var beschreibung = $("#beschreibung").val();
|
||||
var methode = $("#methode").val();
|
||||
var einzeln = $("#einzeln").val();
|
||||
var termine = [];
|
||||
var termineNeu = [];
|
||||
var lehrveranstaltungen = [];
|
||||
|
||||
$('#prfTermin tr').has("span").each(function(i,v){
|
||||
var termin = {};
|
||||
$(v).find("span").each(function(j, w){
|
||||
switch (j) {
|
||||
case 0:
|
||||
termin.pruefungstermin_id = $(w).text();
|
||||
break;
|
||||
case 1:
|
||||
termin.datum = $(w).text();
|
||||
break;
|
||||
case 2:
|
||||
termin.beginn = $(w).text();
|
||||
break;
|
||||
case 3:
|
||||
termin.ende = $(w).text();
|
||||
break;
|
||||
case 4:
|
||||
termin.min = $(w).text();
|
||||
break;
|
||||
case 5:
|
||||
termin.max = $(w).text();
|
||||
break;
|
||||
}
|
||||
});
|
||||
if(!checkTermin(termin))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry($(v).attr("id"));
|
||||
}
|
||||
termine.push(termin);
|
||||
});
|
||||
|
||||
$('#prfTermin tr').has("input").each(function(i,v){
|
||||
var termin = {};
|
||||
$(v).find("input").each(function(j, w){
|
||||
switch (j) {
|
||||
case 0:
|
||||
termin.datum = $(w).val();
|
||||
break;
|
||||
case 1:
|
||||
termin.beginn = $(w).val();
|
||||
break;
|
||||
case 2:
|
||||
termin.ende = $(w).val();
|
||||
break;
|
||||
case 3:
|
||||
termin.min = $(w).val();
|
||||
break;
|
||||
case 4:
|
||||
termin.max = $(w).val();
|
||||
break;
|
||||
}
|
||||
});
|
||||
termineNeu.push(termin);
|
||||
});
|
||||
var error = false;
|
||||
$("#lvDropdowns select").each(function(i,v){
|
||||
if($(v).val() !== "null")
|
||||
lehrveranstaltungen.push($(v).val());
|
||||
});
|
||||
|
||||
if(is_null(studiensemester_kurzbz) || is_undefined(studiensemester_kurzbz) || is_empty_String(studiensemester_kurzbz))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("studiensemester");
|
||||
}
|
||||
if(is_null(pruefungsfenster_id) || is_undefined(pruefungsfenster_id) || is_empty_String(pruefungsfenster_id) || (pruefungsfenster_id === "null"))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("pruefungsfenster");
|
||||
}
|
||||
if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert"))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("pruefungsTyp");
|
||||
}
|
||||
if(is_null(titel) || is_undefined(titel) || is_empty_String(titel))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("titel");
|
||||
}
|
||||
if(is_null(beschreibung) || is_undefined(beschreibung) || is_empty_String(beschreibung))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("beschreibung");
|
||||
}
|
||||
if(is_null(methode) || is_undefined(methode) || is_empty_String(methode))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("methode");
|
||||
}
|
||||
if(lehrveranstaltungen[0] === "null")
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("lvDropdowns");
|
||||
}
|
||||
|
||||
if(error)
|
||||
{
|
||||
messageBox("message", "Formulardaten sind nicht korrekt.", "red", "highlight", 3000);
|
||||
}
|
||||
else
|
||||
{
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "updatePruefungstermin",
|
||||
pruefung_id: prfId,
|
||||
studiensemester_kurzbz: studiensemester_kurzbz,
|
||||
pruefungsfenster_id: pruefungsfenster_id,
|
||||
pruefungstyp_kurzbz: pruefungstyp_kurzbz,
|
||||
titel: titel,
|
||||
beschreibung: beschreibung,
|
||||
methode: methode,
|
||||
einzeln: einzeln,
|
||||
termine: termine,
|
||||
termineNeu: termineNeu,
|
||||
lehrveranstaltungen: lehrveranstaltungen
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
unmarkMissingFormEntry();
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "Prüfung erfolgreich gespeichert.", "green", "highlight", 1000);
|
||||
resetPruefungsverwaltung();
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
}
|
||||
}).complete(function(){
|
||||
loadAllPruefungen();
|
||||
$("#modalOverlay").removeClass("modalOverlay");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function deleteLehrveranstaltungFromPruefung(lvId, pruefung_id)
|
||||
{
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "deleteLehrveranstaltungFromPruefung",
|
||||
pruefung_id: pruefung_id,
|
||||
lehrveranstaltung_id: lvId
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "Lehrveranstaltung erfolgreich entfernt", "green", "highlight", 1000);
|
||||
}
|
||||
}).complete(function(){
|
||||
loadPruefungsDetails(pruefung_id);
|
||||
loadAllPruefungen();
|
||||
});
|
||||
}
|
||||
|
||||
function stornoPruefung(pruefung_id)
|
||||
{
|
||||
$("#modalOverlay").addClass("modalOverlay");
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "stornoPruefung",
|
||||
pruefung_id: pruefung_id
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "Prüfung storniert", "green", "highlight", 1000);
|
||||
}
|
||||
}).complete(function(){
|
||||
loadAllPruefungen();
|
||||
resetPruefungsverwaltung();
|
||||
});
|
||||
}
|
||||
|
||||
function terminLoeschen(pruefung_id, pruefungstermin_id)
|
||||
{
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "deleteTermin",
|
||||
pruefung_id: pruefung_id,
|
||||
pruefungstermin_id: pruefungstermin_id
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "Termin gelöscht", "green", "highlight", 1000);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
}
|
||||
}).complete(function(){
|
||||
loadPruefungsDetails(pruefung_id);
|
||||
loadAllPruefungen();
|
||||
});
|
||||
}
|
||||
|
||||
function loadAllPruefungen()
|
||||
{
|
||||
var uid = $("#mitarbeiter_uid").val();
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungstermin.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getAllPruefungen",
|
||||
uid: uid
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
$("#prfTable tbody").first().html("");
|
||||
var tableRow = "";
|
||||
data.result.forEach(function(e){
|
||||
if(e.storniert === false)
|
||||
{
|
||||
tableRow = "<tr><td><a href='#' onclick='loadPruefungsDetails(\""+e.pruefung_id+"\")'>"+e.titel+"</a></td>";
|
||||
tableRow += "<td>"+e.studiensemester_kurzbz+"</td>";
|
||||
tableRow += "<td>";
|
||||
e.lehrveranstaltungen.forEach(function(f){
|
||||
tableRow += f.bezeichnung+"<br/>";
|
||||
});
|
||||
tableRow+="</td>";
|
||||
tableRow+="<td>";
|
||||
e.termine.forEach(function(f){
|
||||
tableRow += convertDateTime(f.von, "date")+" von "+convertDateTime(f.von, "time")+" bis "+convertDateTime(f.bis, "time")+"<br/>";
|
||||
});
|
||||
tableRow+="</td>";
|
||||
tableRow += "<td>"+e.methode+"</td>";
|
||||
tableRow += "<td>"+e.pruefungstyp_kurzbz+"</td>";
|
||||
tableRow += "<td>"+e.einzeln+"</td>";
|
||||
tableRow += "<td>"+e.mitarbeiter_uid+"</td>";
|
||||
tableRow += "<td>"+e.storniert+"</td>";
|
||||
tableRow += "</tr>";
|
||||
$("#prfTable tbody").first().append(tableRow);
|
||||
}
|
||||
|
||||
});
|
||||
}).complete(function(event, xhr, settings){
|
||||
// $("#prfTable").tablesorter({
|
||||
// widgets: ["zebra"]
|
||||
// });
|
||||
if($("#prfTable")[0].hasInitialized !== true)
|
||||
{
|
||||
$("#prfTable").tablesorter({
|
||||
widgets: ["zebra"],
|
||||
sortList: [[1,0]]
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#prfTable").trigger("updateAll");
|
||||
var sorting = [[1,0],[0,0]];
|
||||
$("#prfTable").trigger("sorton",[sorting]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function checkTermin(termin)
|
||||
{
|
||||
var aktTime = new Date();
|
||||
var vonTime = stringToDate(termin.datum, termin.beginn);
|
||||
var bisTime = stringToDate(termin.datum, termin.ende);
|
||||
|
||||
if(!(aktTime < vonTime))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if(!(vonTime < bisTime))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function stringToDate(datum, time)
|
||||
{
|
||||
datum = datum.split(".");
|
||||
time = time.split(":");
|
||||
time = new Date(datum[2], (datum[1]-1), datum[0], time[0], time[1]);
|
||||
return time;
|
||||
}
|
||||
|
||||
function resetPruefungsverwaltung()
|
||||
{
|
||||
loadAllPruefungen();
|
||||
$("#titel").val("");
|
||||
$("#beschreibung").val("");
|
||||
loadPruefungstypen("false");
|
||||
loadStudiensemester();
|
||||
$("#methode").val("");
|
||||
resetLehrveranstaltungen();
|
||||
resetTermine();
|
||||
$("#modalOverlay").removeClass("modalOverlay");
|
||||
}
|
||||
@@ -52,9 +52,9 @@ switch($method)
|
||||
case 'stornoAnmeldung':
|
||||
$data = stornoAnmeldung($uid);
|
||||
break;
|
||||
case 'getPruefungMitarbeiter':
|
||||
$data = getPruefungMitarbeiter($uid);
|
||||
break;
|
||||
// case 'getPruefungMitarbeiter':
|
||||
// $data = getPruefungMitarbeiter($uid);
|
||||
// break;
|
||||
case 'getAnmeldungenTermin':
|
||||
$data = getAnmeldungenTermin();
|
||||
break;
|
||||
@@ -90,7 +90,6 @@ echo json_encode($data);
|
||||
function getPruefungByLv($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
$lehrveranstaltungen = new lehrveranstaltung();
|
||||
//TODO
|
||||
$lehrveranstaltungen->load_lva_student($uid);
|
||||
$lvIds = array();
|
||||
foreach($lehrveranstaltungen->lehrveranstaltungen as $lvs)
|
||||
@@ -234,10 +233,18 @@ function loadPruefung()
|
||||
{
|
||||
$temp = array();
|
||||
$pruefung->getLehrveranstaltungenByPruefung();
|
||||
$pruefung->getTermineByPruefung();
|
||||
$studiengang = new studiengang();
|
||||
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;
|
||||
@@ -445,42 +452,41 @@ function stornoAnmeldung($uid = null)
|
||||
* @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;
|
||||
}
|
||||
//function getPruefungMitarbeiter($uid = null)
|
||||
//{
|
||||
// $lehrveranstaltung = new lehrveranstaltung();
|
||||
// if($uid !== null)
|
||||
// {
|
||||
// $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
|
||||
|
||||
@@ -0,0 +1,513 @@
|
||||
<?php
|
||||
header( 'Expires: -1' );
|
||||
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||
header( 'Pragma: no-cache' );
|
||||
header('Content-Type: text/html;charset=UTF-8');
|
||||
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/functions.inc.php');
|
||||
require_once('../../../../include/pruefungCis.class.php');
|
||||
require_once('../../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../../include/pruefungstermin.class.php');
|
||||
require_once('../../../../include/datum.class.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/pruefungsfenster.class.php');
|
||||
require_once('../../../../include/pruefungsanmeldung.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
$method = isset($_REQUEST['method'])?$_REQUEST['method']:'';
|
||||
|
||||
switch($method)
|
||||
{
|
||||
case 'loadPruefungstypen':
|
||||
$data = loadPruefungstypen("false");
|
||||
break;
|
||||
case 'loadStudiensemester':
|
||||
$studiensemester = new studiensemester();
|
||||
$aktStudiensemester = $studiensemester->getakt();
|
||||
$data = loadStudiensemester($aktStudiensemester);
|
||||
break;
|
||||
case 'getPruefungsfensterByStudiensemester':
|
||||
$studiensemester = new studiensemester();
|
||||
$aktStudiensemester = $studiensemester->getakt();
|
||||
$studiensemester_kurzbz = isset($_REQUEST["studiensemester_kurzbz"]) ? $_REQUEST["studiensemester_kurzbz"] : $aktStudiensemester;
|
||||
$data = getPruefungsfensterByStudiensemester($studiensemester_kurzbz, $aktStudiensemester);
|
||||
break;
|
||||
case 'savePruefungstermin':
|
||||
$studiensemester_kurzbz = isset($_POST["studiensemester_kurzbz"])?$_POST["studiensemester_kurzbz"]:null;
|
||||
$pruefungsfenster_id = isset($_POST["pruefungsfenster_id"])?$_POST["pruefungsfenster_id"]:null;
|
||||
$pruefungstyp_kurzbz = isset($_POST["pruefungstyp_kurzbz"])?$_POST["pruefungstyp_kurzbz"]:null;
|
||||
$titel = isset($_POST["titel"])?$_POST["titel"]:null;
|
||||
$beschreibung = isset($_POST["beschreibung"])?$_POST["beschreibung"]:null;
|
||||
$methode = isset($_POST["methode"])?$_POST["methode"]:null;
|
||||
$einzeln = (isset($_POST["einzeln"]) && $_POST["einzeln"] ==="true")?true:false;
|
||||
$lehrveranstaltungen = isset($_POST["lehrveranstaltungen"]) ? $_POST["lehrveranstaltungen"] : null;
|
||||
$termine = isset($_POST["termine"])?$_POST["termine"]:null;
|
||||
$data = savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine);
|
||||
break;
|
||||
case 'getLehrveranstaltungenByMitarbeiter':
|
||||
$mitarbeiter_uid = $_POST["mitarbeiter_uid"];
|
||||
$studiensemester_kurzbz = $_POST["studiensemester_kurzbz"];
|
||||
$data = getLehrveranstaltungenByMitarbeiter($mitarbeiter_uid, $studiensemester_kurzbz);
|
||||
break;
|
||||
case 'updatePruefungstermin':
|
||||
$pruefung_id = isset($_POST["pruefung_id"])?$_POST["pruefung_id"]:null;
|
||||
$studiensemester_kurzbz = isset($_POST["studiensemester_kurzbz"])?$_POST["studiensemester_kurzbz"]:null;
|
||||
$pruefungsfenster_id = isset($_POST["pruefungsfenster_id"])?$_POST["pruefungsfenster_id"]:null;
|
||||
$pruefungstyp_kurzbz = isset($_POST["pruefungstyp_kurzbz"])?$_POST["pruefungstyp_kurzbz"]:null;
|
||||
$titel = isset($_POST["titel"])?$_POST["titel"]:null;
|
||||
$beschreibung = isset($_POST["beschreibung"])?$_POST["beschreibung"]:null;
|
||||
$methode = isset($_POST["methode"])?$_POST["methode"]:null;
|
||||
$einzeln = (isset($_POST["einzeln"]) && $_POST["einzeln"] ==="true")?true:false;
|
||||
$lehrveranstaltungen = isset($_POST["lehrveranstaltungen"]) ? $_POST["lehrveranstaltungen"] : null;
|
||||
$termine = isset($_POST["termine"])?$_POST["termine"]:null;
|
||||
$termineNeu = isset($_POST["termineNeu"])?$_POST["termineNeu"]:null;
|
||||
$data = updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $termineNeu);
|
||||
break;
|
||||
case 'deleteLehrveranstaltungFromPruefung':
|
||||
$lvId = $_POST["lehrveranstaltung_id"];
|
||||
$pruefung_id = $_POST["pruefung_id"];
|
||||
$data = deleteLehrveranstaltungFromPruefung($lvId, $pruefung_id);
|
||||
break;
|
||||
case 'stornoPruefung':
|
||||
$pruefung_id = $_REQUEST["pruefung_id"];
|
||||
$data = stornoPruefung($pruefung_id);
|
||||
break;
|
||||
case 'deleteTermin':
|
||||
$pruefung_id = $_REQUEST["pruefung_id"];
|
||||
$pruefungstermin_id = $_REQUEST["pruefungstermin_id"];
|
||||
$data = deleteTermin($pruefung_id, $pruefungstermin_id);
|
||||
break;
|
||||
case 'getAllPruefungen':
|
||||
if($rechte->isBerechtigt('lehre/pruefungsterminAll'))
|
||||
{
|
||||
$data = getAllPruefungen($_REQUEST["uid"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data = getAllPruefungen($uid);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
echo json_encode($data);
|
||||
|
||||
|
||||
|
||||
function loadPruefungstypen($abschluss)
|
||||
{
|
||||
$pruefungstermin = new pruefungstermin();
|
||||
$pruefungstypen = $pruefungstermin->getAllPruefungstypen($abschluss);
|
||||
if(!empty($pruefungstypen))
|
||||
{
|
||||
$data['result']=$pruefungstypen;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefungstermin->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function loadStudiensemester($aktStudiensemester = null)
|
||||
{
|
||||
$studiensemester = new studiensemester();
|
||||
if($studiensemester->getAll())
|
||||
{
|
||||
$data['result']=$studiensemester->studiensemester;
|
||||
if(!is_null($aktStudiensemester))
|
||||
{
|
||||
$data['aktSem']=$aktStudiensemester;
|
||||
}
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$studiensemester->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function getPruefungsfensterByStudiensemester($studiensemester_kurzbz)
|
||||
{
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
if($pruefungsfenster->getByStudiensemester($studiensemester_kurzbz))
|
||||
{
|
||||
$data['result']=$pruefungsfenster->result;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefungsfenster->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine)
|
||||
{
|
||||
if($lehrveranstaltungen === null)
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Keine Lehrverantaltung angegeben.";
|
||||
return $data;
|
||||
}
|
||||
$termineArray = array();
|
||||
foreach ($termine as $key => $t) {
|
||||
$termin = new stdClass();
|
||||
$date = $t["datum"];
|
||||
$beginn = $t["beginn"];
|
||||
$ende = $t["ende"];
|
||||
$termin->min = $t["min"];
|
||||
$termin->max = $t["max"];
|
||||
$termin->beginn = date('Y-m-d H:i', strtotime($date." ".$beginn));
|
||||
$termin->ende = date('Y-m-d H:i', strtotime($date." ".$ende));
|
||||
if(checkTerminPruefungsfenster($pruefungsfenster_id, $date))
|
||||
{
|
||||
if(!(checkCollision($uid, $termin->beginn, $termin->ende)))
|
||||
{
|
||||
array_push($termineArray, $termin);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Kollision mit anderem Termin.";
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Termin ist nicht innerhalb des Prüfungsfensters.";
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->termine = $termineArray;
|
||||
$pruefung->mitarbeiter_uid = $uid;
|
||||
$pruefung->studiensemester_kurzbz = $studiensemester_kurzbz;
|
||||
$pruefung->pruefungsfenster_id = $pruefungsfenster_id;
|
||||
$pruefung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz;
|
||||
$pruefung->titel = $titel;
|
||||
$pruefung->beschreibung = $beschreibung;
|
||||
$pruefung->methode = $methode;
|
||||
$pruefung->einzeln = $einzeln;
|
||||
$pruefung->insertvon = $uid;
|
||||
|
||||
foreach ($lehrveranstaltungen as $lv) {
|
||||
if($lv != "null")
|
||||
{
|
||||
array_push($pruefung->lehrveranstaltungen, $lv);
|
||||
}
|
||||
}
|
||||
|
||||
if($pruefung->save(true))
|
||||
{
|
||||
$data['result']="true";
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
|
||||
//TODO Mail-Inhalt fehlt
|
||||
// foreach ($pruefung->lehrveranstaltungen as $lvId)
|
||||
// {
|
||||
// $lv = new lehrveranstaltung($lvId);
|
||||
// $text = "Ein Prüfungstermin zu Ihrer Lehrveranstaltung ".$lv->bezeichnung." wurde angelegt.\n"
|
||||
// . "Die Prüfung kann am "
|
||||
// .date('d.m.Y', strtotime($pruefung->termine[0]->beginn))." "
|
||||
// . "in der Zeit von "
|
||||
// .date('H:i', strtotime($pruefung->termine[0]->beginn))." bis "
|
||||
// .date('H:i', strtotime($pruefung->termine[0]->ende))." abgelegt werden.";
|
||||
// //$text = "test";
|
||||
// $empfaenger = $lv->getStudentsOfLv($lvId, $pruefung->studiensemester_kurzbz);
|
||||
// $mailto = "";
|
||||
// foreach ($empfaenger as $e) {
|
||||
// $mailto .= $e.'@'.DOMAIN.', ';
|
||||
// }
|
||||
//
|
||||
// $email = new mail($mailto, "fhcomplete", "Prüfungstermin für ".$lv->bezeichnung, $text);
|
||||
// $email->setReplyTo($uid."@".DOMAIN);
|
||||
//// var_dump($email);
|
||||
// $email->send();
|
||||
// }
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function getLehrveranstaltungenByMitarbeiter($mitarbeiter_uid, $studiensemester_kurzbz)
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
if($lehrveranstaltung->getLVByMitarbeiter($mitarbeiter_uid, $studiensemester_kurzbz))
|
||||
{
|
||||
$stg = new studiengang();
|
||||
foreach($lehrveranstaltung->lehrveranstaltungen as $key=>$lv)
|
||||
{
|
||||
$stg->load($lv->studiengang_kz);
|
||||
$lv->studiengang_bezeichnung = $stg->kurzbzlang;
|
||||
}
|
||||
$data['result']=$lehrveranstaltung->lehrveranstaltungen;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$lehrveranstaltung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $termineNeu)
|
||||
{
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
$datum = new datum();
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->load($pruefung_id);
|
||||
|
||||
if($termineNeu !== null)
|
||||
{
|
||||
$termineNeuArray = array();
|
||||
foreach ($termineNeu as $key => $t) {
|
||||
$termin = new stdClass();
|
||||
$datum = new datum();
|
||||
$date = $t["datum"];
|
||||
$beginn = $t["beginn"];
|
||||
$ende = $t["ende"];
|
||||
$termin->min = $t["min"];
|
||||
$termin->max = $t["max"];
|
||||
$termin->beginn = date('Y-m-d H:i', strtotime($date." ".$beginn));
|
||||
$termin->ende = date('Y-m-d H:i', strtotime($date." ".$ende));
|
||||
if(checkTerminPruefungsfenster($pruefungsfenster_id, $date))
|
||||
{
|
||||
if(!(checkCollision($uid, $termin->beginn, $termin->ende)))
|
||||
{
|
||||
array_push($termineNeuArray, $termin);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Kollision mit anderem Termin.";
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Termin ist nicht innerhalb des Prüfungsfensters.";
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
foreach ($termineNeuArray as $t)
|
||||
{
|
||||
$pruefung->saveTerminPruefung($pruefung_id, $t->beginn, $t->ende, $t->max, $t->min);
|
||||
}
|
||||
}
|
||||
|
||||
if($termine !== null)
|
||||
{
|
||||
$termineArray = array();
|
||||
foreach ($termine as $key => $t) {
|
||||
$termin = new stdClass();
|
||||
$datum = new datum();
|
||||
$date = $t["datum"];
|
||||
$beginn = $t["beginn"];
|
||||
$ende = $t["ende"];
|
||||
$termin->pruefungstermin_id = $t["pruefungstermin_id"];
|
||||
$termin->min = $t["min"];
|
||||
$termin->max = ($t["max"] === "null") ? NULL : $t["max"];
|
||||
$termin->beginn = date('Y-m-d H:i', strtotime($date." ".$beginn));
|
||||
$termin->ende = date('Y-m-d H:i', strtotime($date." ".$ende));
|
||||
if(checkTerminPruefungsfenster($pruefungsfenster_id, $date))
|
||||
{
|
||||
array_push($termineArray, $termin);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Termin ist nicht innerhalb des Prüfungsfensters.";
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
foreach($termineArray as $key=>$t)
|
||||
{
|
||||
$termineArray[$key] = (object) $t;
|
||||
}
|
||||
$pruefung->termine = $termineArray;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$pruefung->mitarbeiter_uid = $uid;
|
||||
$pruefung->studiensemester_kurzbz = $studiensemester_kurzbz;
|
||||
$pruefung->pruefungsfenster_id = $pruefungsfenster_id;
|
||||
$pruefung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz;
|
||||
$pruefung->titel = $titel;
|
||||
$pruefung->beschreibung = $beschreibung;
|
||||
$pruefung->methode = $methode;
|
||||
$pruefung->einzeln = $einzeln;
|
||||
$pruefung->updatevon = $uid;
|
||||
if($lehrveranstaltungen !== null)
|
||||
{
|
||||
foreach ($lehrveranstaltungen as $lv)
|
||||
{
|
||||
if($lv != "null")
|
||||
{
|
||||
array_push($pruefung->lehrveranstaltungen, $lv);
|
||||
}
|
||||
}
|
||||
}
|
||||
if($pruefung->save(false))
|
||||
{
|
||||
$data['result']="true";
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
|
||||
//TODO Mail-Inhalt fehlt
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function deleteLehrveranstaltungFromPruefung($lvId, $pruefung_id)
|
||||
{
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->load($pruefung_id);
|
||||
if($pruefung->deleteLehrveranstaltungPruefung($lvId, $pruefung_id))
|
||||
{
|
||||
$data['result']="true";
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function stornoPruefung($pruefung_id)
|
||||
{
|
||||
$pruefung = new pruefungCis();
|
||||
if($pruefung->pruefungStornieren($pruefung_id))
|
||||
{
|
||||
$data['result']="true";
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function deleteTermin($pruefung_id, $pruefungstermin_id)
|
||||
{
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->load($pruefung_id);
|
||||
if($pruefung->deleteTerminPruefung($pruefungstermin_id))
|
||||
{
|
||||
$data['result']="true";
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function getAllPruefungen($mitarbeiter_uid)
|
||||
{
|
||||
//TODO Prüfungen des aktuellen Studiensemesters???
|
||||
$pruefung = new pruefungCis();
|
||||
if($pruefung->getAllPruefungen($mitarbeiter_uid))
|
||||
{
|
||||
foreach ($pruefung->result as $prf)
|
||||
{
|
||||
$prf->getLehrveranstaltungenByPruefung();
|
||||
foreach($prf->lehrveranstaltungen as $key=>$lv)
|
||||
{
|
||||
$temp = new lehrveranstaltung($lv->lehrveranstaltung_id);
|
||||
$array = $temp->cleanResult();
|
||||
$prf->lehrveranstaltungen[$key] = $array[0];
|
||||
}
|
||||
$prf->getTermineByPruefung();
|
||||
}
|
||||
$data['result']=$pruefung->result;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function checkTerminPruefungsfenster($pruefungsfenster_id, $datum)
|
||||
{
|
||||
$pruefungsfenster = new pruefungsfenster($pruefungsfenster_id);
|
||||
$date = new datum();
|
||||
if($date->between($pruefungsfenster->start, $pruefungsfenster->ende, $datum))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function checkCollision($uid, $beginn, $ende)
|
||||
{
|
||||
$collision = false;
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->getAllPruefungen($uid);
|
||||
$datum = new datum();
|
||||
foreach($pruefung->result as $prf)
|
||||
{
|
||||
$prf->getTermineByPruefung();
|
||||
foreach($prf->termine as $termin)
|
||||
{
|
||||
if(($datum->between($termin->von, $termin->bis, $beginn)) || ($datum->between($termin->von, $termin->bis, $ende)))
|
||||
{
|
||||
$collision = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if($collision)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
?>
|
||||
@@ -32,7 +32,7 @@ require_once('../../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../../include/pruefungstermin.class.php');
|
||||
require_once('../../../../include/studiengang.class.php');
|
||||
require_once('../../../../include/pruefungCis.class.php');
|
||||
require_once('../../../../include/mail.class.php');
|
||||
require_once('../../../../include/mitarbeiter.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
$db = new basis_db();
|
||||
@@ -42,420 +42,6 @@ $rechte->getBerechtigungen($uid);
|
||||
if(!$rechte->isBerechtigt('lehre/pruefungstermin'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
function compareLvIDs($a, $b)
|
||||
{
|
||||
if($a->lehrveranstaltung_id == $b->lehrveranstaltung_id)
|
||||
return 0;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
$studiensemester = new studiensemester();
|
||||
$studiensemester->getAll();
|
||||
|
||||
$studiensemester_kurzbz=null;
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->getAll("start");
|
||||
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
|
||||
//TODO
|
||||
$lehrveranstaltung->getLVByMitarbeiter($uid, $studiensemester->getSemesterFromDatum(date("Y-m-d")));
|
||||
//$lehrveranstaltung->getLVByMitarbeiter("leutgeb", $studiensemester->getSemesterFromDatum(date("Y-m-d")));
|
||||
|
||||
$pruefungstermin = new pruefungstermin();
|
||||
$pruefungstypen = $pruefungstermin->getAllPruefungstypen();
|
||||
|
||||
if(isset($_POST["method"]) && $_POST["method"] == "save")
|
||||
{
|
||||
$studiensemester_kurzbz = isset($_POST["studiensemester"])?$_POST["studiensemester"]:null;
|
||||
$pruefungsfenster_id = isset($_POST["pruefungsfenster"])?$_POST["pruefungsfenster"]:null;
|
||||
$pruefungstyp_kurzbz = isset($_POST["pruefungsTyp"])?$_POST["pruefungsTyp"]:null;
|
||||
$titel = isset($_POST["titel"])?$_POST["titel"]:null;
|
||||
$beschreibung = isset($_POST["beschreibung"])?$_POST["beschreibung"]:null;
|
||||
$methode = isset($_POST["methode"])?$_POST["methode"]:null;
|
||||
$einzeln = isset($_POST["einzelpruefung"])?true:false;
|
||||
$lehrveranstaltungen = isset($_POST["lv"]) ? $_POST["lv"] : null;
|
||||
$termine = array();
|
||||
$error = false;
|
||||
if($pruefungsfenster_id === "null")
|
||||
{
|
||||
$error = true;
|
||||
echo "Bitte geben Sie ein Prüfungsfenster an.";
|
||||
}
|
||||
|
||||
if(isset($_POST["termin"]))
|
||||
{
|
||||
if(!$error)
|
||||
{
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
$datum = new datum();
|
||||
}
|
||||
for($i = 0; $i< sizeof($_POST["termin"]); $i++)
|
||||
{
|
||||
if(!$error)
|
||||
{
|
||||
$termin = new stdClass();
|
||||
$datum = new datum();
|
||||
$date = (isset($_POST["termin"][$i]) && $datum->checkDatum($_POST["termin"][$i])) ? $_POST["termin"][$i] : null;
|
||||
$beginn = (isset($_POST["terminBeginn"][$i]) && $datum->checkUhrzeit($_POST["terminBeginn"][$i])) ? $_POST["terminBeginn"][$i] : null;
|
||||
$ende = (isset($_POST["terminEnde"][$i]) && $datum->checkUhrzeit($_POST["terminEnde"][$i])) ? $_POST["terminEnde"][$i] : null;
|
||||
$termin->min = (isset($_POST["minTeilnehmer"][$i]) && is_numeric($_POST["minTeilnehmer"][$i]) && strlen($_POST["minTeilnehmer"][$i]) > 0) ? $_POST["minTeilnehmer"][$i] : 0;
|
||||
$termin->max = (isset($_POST["maxTeilnehmer"][$i]) && is_numeric($_POST["maxTeilnehmer"][$i]) && strlen($_POST["maxTeilnehmer"][$i]) > 0) ? $_POST["maxTeilnehmer"][$i] : null;
|
||||
|
||||
if($datum == null)
|
||||
{
|
||||
echo "Fehler: Ungültiges Datum angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if($beginn == null)
|
||||
{
|
||||
echo "Fehler: Ungültige Beginnzeit angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if($ende == null)
|
||||
{
|
||||
echo "Fehler: Ungültige Endzeit angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if($termin->min === null)
|
||||
{
|
||||
echo "Fehler: Ungültige Mindestteilnehmerzahl angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if(!(mktime(substr($beginn,0,2), substr($beginn,-2)) < mktime(substr($ende,0,2), substr($ende,-2))))
|
||||
{
|
||||
echo "Endzeit liegt vor der Startzeit!</br>";
|
||||
$error = true;
|
||||
}
|
||||
if(!($termin->min < $termin->max) && $termin->max !== null)
|
||||
{
|
||||
echo "Maximalteilnehmerzahlt ist kleiner der Mindestteilnehmerzahl.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if(!$datum->between($pruefungsfenster->start, $pruefungsfenster->ende, $date))
|
||||
{
|
||||
echo "Prüfungstermin liegt nicht innheralb des Prüfungsfensters.</br>";
|
||||
$error = true;
|
||||
}
|
||||
$termin->beginn = date('Y-m-d H:i', strtotime($date." ".$beginn));
|
||||
$termin->ende = date('Y-m-d H:i', strtotime($date." ".$ende));
|
||||
array_push($termine, $termin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->termine = $termine;
|
||||
$pruefung->mitarbeiter_uid = $uid;
|
||||
$pruefung->studiensemester_kurzbz = $studiensemester_kurzbz;
|
||||
$pruefung->pruefungsfenster_id = $pruefungsfenster_id;
|
||||
$pruefung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz;
|
||||
$pruefung->titel = $titel;
|
||||
$pruefung->beschreibung = $beschreibung;
|
||||
$pruefung->methode = $methode;
|
||||
$pruefung->einzeln = $einzeln;
|
||||
$pruefung->insertvon = $uid;
|
||||
|
||||
if(mb_strlen($pruefung->titel) > 0)
|
||||
{
|
||||
if($pruefung->pruefungstyp_kurzbz != "undefiniert")
|
||||
{
|
||||
if($lehrveranstaltungen != null && sizeof($lehrveranstaltungen) > 0)
|
||||
{
|
||||
$i=0;
|
||||
foreach ($lehrveranstaltungen as $lv) {
|
||||
if($lv != "null")
|
||||
{
|
||||
array_push($pruefung->lehrveranstaltungen, $lv);
|
||||
}
|
||||
}
|
||||
if($pruefung->save(true))
|
||||
{
|
||||
//TODO Mail-Inhalt fehlt
|
||||
// foreach ($pruefung->lehrveranstaltungen as $lvId)
|
||||
// {
|
||||
// $lv = new lehrveranstaltung($lvId);
|
||||
// $text = "Ein Prüfungstermin zu Ihrer Lehrveranstaltung ".$lv->bezeichnung." wurde angelegt.\n"
|
||||
// . "Die Prüfung kann am "
|
||||
// .date('d.m.Y', strtotime($pruefung->termine[0]->beginn))." "
|
||||
// . "in der Zeit von "
|
||||
// .date('H:i', strtotime($pruefung->termine[0]->beginn))." bis "
|
||||
// .date('H:i', strtotime($pruefung->termine[0]->ende))." abgelegt werden.";
|
||||
// //$text = "test";
|
||||
// $empfaenger = $lv->getStudentsOfLv($lvId, $pruefung->studiensemester_kurzbz);
|
||||
// $mailto = "";
|
||||
// foreach ($empfaenger as $e) {
|
||||
// $mailto .= $e.'@'.DOMAIN.', ';
|
||||
// }
|
||||
//
|
||||
// $email = new mail($mailto, "fhcomplete", "Prüfungstermin für ".$lv->bezeichnung, $text);
|
||||
// $email->setReplyTo($uid."@".DOMAIN);
|
||||
//// var_dump($email);
|
||||
// $email->send();
|
||||
// }
|
||||
|
||||
echo "Datensatz erfolgreich gespeichert!";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler: ".$pruefung->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Bitte Lehrveranstaltungen angeben.";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Bitte einen Prüfungstyp auswählen";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Bitte einen Titel angeben.";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else if(isset($_POST["method"]) && $_POST["method"] == "update")
|
||||
{
|
||||
$studiensemester_kurzbz = isset($_POST["studiensemester"])?$_POST["studiensemester"]:null;
|
||||
$pruefungsfenster_id = isset($_POST["pruefungsfenster"])?$_POST["pruefungsfenster"]:null;
|
||||
$pruefungstyp_kurzbz = isset($_POST["pruefungsTyp"])?$_POST["pruefungsTyp"]:null;
|
||||
$titel = isset($_POST["titel"])?$_POST["titel"]:null;
|
||||
$beschreibung = isset($_POST["beschreibung"])?$_POST["beschreibung"]:null;
|
||||
$methode = isset($_POST["methode"])?$_POST["methode"]:null;
|
||||
$einzeln = isset($_POST["einzelpruefung"])?true:false;
|
||||
$lehrveranstaltungen = isset($_POST["lv"]) ? $_POST["lv"] : null;
|
||||
$termine = array();
|
||||
$termineNeu = array();
|
||||
$error = false;
|
||||
if(!$error)
|
||||
{
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
$datum = new datum();
|
||||
}
|
||||
|
||||
if(isset($_POST["terminNeu"]))
|
||||
{
|
||||
|
||||
for($i = 0; $i< sizeof($_POST["terminNeu"]); $i++)
|
||||
{
|
||||
if(!$error)
|
||||
{
|
||||
$termin = new stdClass();
|
||||
$datum = new datum();
|
||||
$date = (isset($_POST["terminNeu"][$i]) && $datum->checkDatum($_POST["terminNeu"][$i])) ? $_POST["terminNeu"][$i] : null;
|
||||
$beginn = (isset($_POST["terminBeginnNeu"][$i]) && $datum->checkUhrzeit($_POST["terminBeginnNeu"][$i])) ? $_POST["terminBeginnNeu"][$i] : null;
|
||||
$ende = (isset($_POST["terminEndeNeu"][$i]) && $datum->checkUhrzeit($_POST["terminEndeNeu"][$i])) ? $_POST["terminEndeNeu"][$i] : null;
|
||||
$termin->min = (isset($_POST["minTeilnehmerNeu"][$i]) && is_numeric($_POST["minTeilnehmerNeu"][$i]) && strlen($_POST["minTeilnehmerNeu"][$i]) > 0) ? $_POST["minTeilnehmerNeu"][$i] : 0;
|
||||
$termin->max = (isset($_POST["maxTeilnehmerNeu"][$i]) && is_numeric($_POST["maxTeilnehmerNeu"][$i]) && strlen($_POST["maxTeilnehmerNeu"][$i]) > 0) ? $_POST["maxTeilnehmerNeu"][$i] : null;
|
||||
|
||||
if($datum == null)
|
||||
{
|
||||
echo "Fehler: Ungültiges Datum angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if($beginn == null)
|
||||
{
|
||||
echo "Fehler: Ungültige Beginnzeit angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if($ende == null)
|
||||
{
|
||||
echo "Fehler: Ungültige Endzeit angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if($termin->min === null)
|
||||
{
|
||||
echo "Fehler: Ungültige Mindestteilnehmerzahl angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if(!(mktime(substr($beginn,0,2), substr($beginn,-2)) < mktime(substr($ende,0,2), substr($ende,-2))))
|
||||
{
|
||||
echo "Endzeit liegt vor der Startzeit!</br>";
|
||||
$error = true;
|
||||
}
|
||||
if(!($termin->min < $termin->max) && $termin->max !== null)
|
||||
{
|
||||
echo "Maximalteilnehmerzahlt ist kleiner der Mindestteilnehmerzahl.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if(!$datum->between($pruefungsfenster->start, $pruefungsfenster->ende, $date))
|
||||
{
|
||||
echo "Prüfungstermin liegt nicht innheralb des Prüfungsfensters.</br>";
|
||||
$error = true;
|
||||
}
|
||||
$termin->beginn = date('Y-m-d H:i', strtotime($date." ".$beginn));
|
||||
$termin->ende = date('Y-m-d H:i', strtotime($date." ".$ende));
|
||||
array_push($termineNeu, $termin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_POST["termin"]))
|
||||
{
|
||||
$error = false;
|
||||
for($i = 0; $i< sizeof($_POST["termin"]); $i++)
|
||||
{
|
||||
if(!$error)
|
||||
{
|
||||
$termin = new stdClass();
|
||||
$datum = new datum();
|
||||
$terminId = (isset($_POST["termin_id"][$i])) ? $_POST["termin_id"][$i] : null;
|
||||
$date = (isset($_POST["termin"][$i]) && $datum->checkDatum($_POST["termin"][$i])) ? $_POST["termin"][$i] : null;
|
||||
$beginn = (isset($_POST["terminBeginn"][$i]) && $datum->checkUhrzeit($_POST["terminBeginn"][$i])) ? $_POST["terminBeginn"][$i] : null;
|
||||
$ende = (isset($_POST["terminEnde"][$i]) && $datum->checkUhrzeit($_POST["terminEnde"][$i])) ? $_POST["terminEnde"][$i] : null;
|
||||
$termin->min = (isset($_POST["minTeilnehmer"][$i]) && is_numeric($_POST["minTeilnehmer"][$i]) && strlen($_POST["minTeilnehmer"][$i]) > 0) ? $_POST["minTeilnehmer"][$i] : 0;
|
||||
$termin->max = (isset($_POST["maxTeilnehmer"][$i]) && is_numeric($_POST["maxTeilnehmer"][$i]) && strlen($_POST["maxTeilnehmer"][$i]) > 0) ? $_POST["maxTeilnehmer"][$i] : null;
|
||||
|
||||
if($datum == null)
|
||||
{
|
||||
echo "Fehler: Ungültiges Datum angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if($beginn == null)
|
||||
{
|
||||
echo "Fehler: Ungültige Beginnzeit angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if($ende == null)
|
||||
{
|
||||
echo "Fehler: Ungültige Endzeit angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if($termin->min === null)
|
||||
{
|
||||
echo "Fehler: Ungültige Mindestteilnehmerzahl angegeben.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if(!(mktime(substr($beginn,0,2), substr($beginn,-2)) < mktime(substr($ende,0,2), substr($ende,-2))))
|
||||
{
|
||||
echo "Endzeit liegt vor der Startzeit!</br>";
|
||||
$error = true;
|
||||
}
|
||||
if(!($termin->min < $termin->max) && $termin->max !== null)
|
||||
{
|
||||
echo "Maximalteilnehmerzahlt ist kleiner der Mindestteilnehmerzahl.</br>";
|
||||
$error = true;
|
||||
}
|
||||
if(!$datum->between($pruefungsfenster->start, $pruefungsfenster->ende, $date))
|
||||
{
|
||||
echo "Prüfungstermin liegt nicht innheralb des Prüfungsfensters.</br>";
|
||||
$error = true;
|
||||
}
|
||||
$termin->pruefungstermin_id = $terminId;
|
||||
$termin->beginn = date('Y-m-d H:i', strtotime($date." ".$beginn));
|
||||
$termin->ende = date('Y-m-d H:i', strtotime($date." ".$ende));
|
||||
array_push($termine, $termin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung_id = $_POST["id"];
|
||||
$pruefung->load($pruefung_id);
|
||||
$pruefung->termine = $termine;
|
||||
foreach ($termineNeu as $t)
|
||||
{
|
||||
$pruefung->saveTerminPruefung($pruefung_id, $t->beginn, $t->ende, $t->max, $t->min);
|
||||
}
|
||||
$pruefung->mitarbeiter_uid = $uid;
|
||||
$pruefung->studiensemester_kurzbz = $studiensemester_kurzbz;
|
||||
$pruefung->pruefungsfenster_id = $pruefungsfenster_id;
|
||||
$pruefung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz;
|
||||
$pruefung->titel = $titel;
|
||||
$pruefung->beschreibung = $beschreibung;
|
||||
$pruefung->methode = $methode;
|
||||
$pruefung->einzeln = $einzeln;
|
||||
$pruefung->updatevon = $uid;
|
||||
|
||||
if(mb_strlen($pruefung->titel) > 0)
|
||||
{
|
||||
if($pruefung->pruefungstyp_kurzbz != "undefiniert")
|
||||
{
|
||||
if($lehrveranstaltungen != null && sizeof($lehrveranstaltungen) > 0)
|
||||
{
|
||||
$i=0;
|
||||
foreach ($lehrveranstaltungen as $lv)
|
||||
{
|
||||
if($lv != "null")
|
||||
{
|
||||
array_push($pruefung->lehrveranstaltungen, $lv);
|
||||
}
|
||||
}
|
||||
if($pruefung->save(false))
|
||||
{
|
||||
echo "Datensatz erfolgreich gespeichert!";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler: ".$pruefung->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Bitte Lehrveranstaltungen angeben.";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Bitte einen Prüfungstyp auswählen";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Bitte einen Titel angeben.";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else if(isset ($_GET["method"]) && isset ($_GET["action"]) && $_GET["action"] === "deleteTermin")
|
||||
{
|
||||
$pruefungstermin_id = $_GET["termin_id"];
|
||||
$pruefung_id = $_GET["id"];
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->load($pruefung_id);
|
||||
$pruefung->deleteTerminPruefung($pruefungstermin_id);
|
||||
}
|
||||
|
||||
else if(isset ($_GET["method"]) && isset ($_GET["action"]) && $_GET["action"] === "deleteLv")
|
||||
{
|
||||
$lvId = $_GET["lvId"];
|
||||
$pruefung_id = $_GET["id"];
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->load($pruefung_id);
|
||||
$pruefung->deleteLehrveranstaltungPruefung($lvId, $pruefung_id);
|
||||
}
|
||||
|
||||
else if(isset ($_GET["action"]) && isset ($_GET["action"]) && $_GET["action"] === "storno")
|
||||
{
|
||||
$pruefung_id = $_GET["id"];
|
||||
$pruefung = new pruefungCis();
|
||||
// $pruefung->load($pruefung_id);
|
||||
$pruefung->pruefungStornieren($pruefung_id);
|
||||
header("Location: pruefungstermin_festlegen.php");
|
||||
}
|
||||
|
||||
$pruefungen = new pruefungCis();
|
||||
$pruefungen->getPruefungByMitarbeiter($uid, $studiensemester_kurzbz);
|
||||
|
||||
foreach($pruefungen->result as $tempPrf)
|
||||
{
|
||||
$tempPrf->getLehrveranstaltungenByPruefung();
|
||||
$tempPrf->getTermineByPruefung();
|
||||
}
|
||||
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
@@ -463,63 +49,128 @@ foreach($pruefungen->result as $tempPrf)
|
||||
<title>Prüfungstermin festlegen</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">
|
||||
<style type="text/css">
|
||||
#message {
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
width: 50%;
|
||||
height: 2em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.missingFormData {
|
||||
border: 2px solid red;
|
||||
outline: 2px solid red;
|
||||
}
|
||||
|
||||
.modalOverlay {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||
}
|
||||
|
||||
#prfDetails, #prfVerwaltung {
|
||||
margin: 1em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// $("#termin1").datepicker({
|
||||
// minDate: new Date()
|
||||
// });
|
||||
// $("#prfTable").tablesorter({
|
||||
// widgets: ["zebra"]
|
||||
// });
|
||||
loadPruefungsfenster();
|
||||
var isFormHidden = true;
|
||||
loadPruefungstypen("false");
|
||||
loadStudiensemester();
|
||||
loadAllPruefungen();
|
||||
$("#lektor").autocomplete({
|
||||
source: "lektor_autocomplete.php?autocomplete=lektor",
|
||||
minLength:2,
|
||||
response: function(event, ui)
|
||||
{
|
||||
//Value und Label fuer die Anzeige setzen
|
||||
for(i in ui.content)
|
||||
{
|
||||
ui.content[i].value=ui.content[i].vorname+" "+ui.content[i].nachname+" ("+ui.content[i].uid+")";
|
||||
ui.content[i].label=ui.content[i].vorname+" "+ui.content[i].nachname+" ("+ui.content[i].uid+")";
|
||||
}
|
||||
},
|
||||
select: function(event, ui)
|
||||
{
|
||||
//Ausgeaehlte Ressource zuweisen und Textfeld wieder leeren
|
||||
if (ui.item.mitarbeiter_uid=='')
|
||||
{
|
||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||
$("#uid").val("student");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||
$("#uid").val("lektor");
|
||||
}
|
||||
if(isFormHidden)
|
||||
{
|
||||
isFormHidden = false;
|
||||
$("#prfVerwaltung form").slideToggle("slow");
|
||||
}
|
||||
loadAllPruefungen();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
if(!isset($_GET["method"]))
|
||||
{
|
||||
?>
|
||||
<h1>Prüfungen verwalten</h1>
|
||||
<div>
|
||||
<form method="post" action="pruefungstermin_festlegen.php">
|
||||
<div id="prfVerwaltung">
|
||||
<h1>Prüfungen verwalten</h1>
|
||||
<table>
|
||||
<tr>
|
||||
<?php
|
||||
if(!$rechte->isBerechtigt('lehre/pruefungsterminAll'))
|
||||
{
|
||||
echo '<input id="mitarbeiter_uid" type="hidden" value="'.$uid.'"/>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#prfVerwaltung form").attr("style", "display: block");
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td width="116px">Lektor:</td>';
|
||||
echo '<td width="250px"><input placeholder="UID" type="text" id="lektor" value="" size="30"/></td>';
|
||||
echo '<input type="hidden" id="uid" value="" />';
|
||||
echo '<input type="hidden" id="mitarbeiter_uid" value="" />';
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
</table>
|
||||
<form method="post" action="pruefungstermin_festlegen.php" style="display: none;">
|
||||
|
||||
<input type="hidden" name="method" value="save">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Titel:</td>
|
||||
<td>
|
||||
<input type="text" name="titel">
|
||||
<input id='titel' type="text" name="titel" size="30">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">Beschreibung:</td>
|
||||
<td>
|
||||
<textarea name="beschreibung" rows="5" cols="20"></textarea>
|
||||
<textarea id='beschreibung' name="beschreibung" rows="5" cols="20"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Studiensemester:</td>
|
||||
<td>
|
||||
<select id="studiensemester" name="studiensemester" onchange="loadPruefungsfenster();" onload="loadPruefungsfenster();">
|
||||
<?php
|
||||
$aktuellesSemester = $studiensemester->getSemesterFromDatum(date("Y-m-d"));
|
||||
foreach ($studiensemester->studiensemester as $result)
|
||||
{
|
||||
if($aktuellesSemester == $result->studiensemester_kurzbz)
|
||||
{
|
||||
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -531,47 +182,28 @@ foreach($pruefungen->result as $tempPrf)
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr>
|
||||
<td>Prüfungsfenster Details:</td>
|
||||
<td><div id="prfFensterDetails"></div></td>
|
||||
</tr>-->
|
||||
<tr>
|
||||
<td>Prüfungstyp:</td>
|
||||
<td>
|
||||
<select name="pruefungsTyp">
|
||||
<?php
|
||||
if($pruefungstypen !== false)
|
||||
{
|
||||
foreach ($pruefungstypen as $typ) {
|
||||
echo '<option value="'.$typ->pruefungstyp_kurzbz.'">'.$typ->beschreibung.'</option>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
<select id='pruefungsTyp' name="pruefungsTyp">
|
||||
<!-- Daten werden per JavaScript geladen-->
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">Methode:</td>
|
||||
<td><textarea placeholder="Multiple Choice, etc." rows="5" cols="20" name="methode"></textarea></td>
|
||||
<td><textarea id='methode' placeholder="Multiple Choice, etc." rows="5" cols="20" name="methode"></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Einzelprüfung:</td>
|
||||
<td><input type="checkbox" name="einzelpruefung"></td>
|
||||
<td><input id='einzeln' type="checkbox" name="einzelpruefung"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">Lehrveranstaltungen:</td>
|
||||
<td>
|
||||
<div id="lvDropdowns">
|
||||
<select id="lvDropdown1" onchange="lehrveranstaltungDropdownhinzufuegen(this, false);" name="lv[]">
|
||||
<option value="null">Lehrveranstaltung auswählen...</option>
|
||||
<?php
|
||||
$studiengang = new studiengang();
|
||||
foreach($lehrveranstaltung->lehrveranstaltungen as $result)
|
||||
{
|
||||
$studiengang->load($result->studiengang_kz);
|
||||
echo '<option value="'.$result->lehrveranstaltung_id.'">'.$studiengang->kurzbzlang.' | <b>'.$result->bezeichnung.'</b> ('.$result->lehrform_kurzbz.')</option>';
|
||||
}
|
||||
?>
|
||||
<!--Daten werden per JavaScript geladen-->
|
||||
</select></br>
|
||||
</div>
|
||||
</td>
|
||||
@@ -580,7 +212,7 @@ foreach($pruefungen->result as $tempPrf)
|
||||
<td style="vertical-align: top;"><a name="termin">Termin:</a></td>
|
||||
<td>
|
||||
<div>
|
||||
<table>
|
||||
<table width="500px" style="text-align: right;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
@@ -588,24 +220,25 @@ foreach($pruefungen->result as $tempPrf)
|
||||
<th>bis</th>
|
||||
<th>min. Teilnehmer</th>
|
||||
<th>max. Teilnehmer</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="prfTermin">
|
||||
<tr>
|
||||
<tr id="row1">
|
||||
<td>
|
||||
<input type="text" id="termin1" name="termin[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="time" placeholder="00:00" name="terminBeginn[]">
|
||||
<input type="time" id="termin1Beginn" placeholder="00:00" name="termin1Beginn[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="time" placeholder="00:00" name="terminEnde[]">
|
||||
<input type="time" id="termin1Ende" placeholder="00:00" name="termin1Ende[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" placeholder="0" min="0" name="minTeilnehmer[]">
|
||||
<input type="number" id="termin1min" placeholder="0" min="0" name="termin1minTeilnehmer[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" placeholder="10" min="0" name="maxTeilnehmer[]">
|
||||
<input type="number" id="termin1max" placeholder="10" min="0" name="termin1maxTeilnehmer[]">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -615,12 +248,12 @@ foreach($pruefungen->result as $tempPrf)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td><td><input type="submit" value="Speichern"></td>
|
||||
<td> </td><td><input id="buttonSave" type="button" value="Speichern" onclick='savePruefungstermin();'></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<div>
|
||||
<div id="prfDetails">
|
||||
<h2>Prüfungen</h2>
|
||||
<div style="width: 75%;">
|
||||
<table class="tablesorter" id="prfTable">
|
||||
@@ -638,245 +271,12 @@ foreach($pruefungen->result as $tempPrf)
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($pruefungen->result as $prf)
|
||||
{
|
||||
echo
|
||||
'<tr '.(($prf->storniert == true) ? "style='text-decoration: line-through'" : "").'>
|
||||
<td><a href="pruefungstermin_festlegen.php?method=update&id='.$prf->pruefung_id.'&prfFensterId='.$prf->pruefungsfenster_id.'">'.$prf->titel.'</a></td>
|
||||
<td>'.$prf->studiensemester_kurzbz.'</td>
|
||||
<td>';
|
||||
foreach($prf->lehrveranstaltungen as $lv)
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lv->lehrveranstaltung_id);
|
||||
echo $lehrveranstaltung->bezeichnung.'</br>';
|
||||
}
|
||||
echo '</td>
|
||||
<td>
|
||||
<table>
|
||||
<tbody>';
|
||||
foreach($prf->termine as $termine)
|
||||
{
|
||||
echo '<tr><td>'.date('d.m.Y H:i', strtotime($termine->von))."</td><td>".date('d.m.Y H:i', strtotime($termine->bis)).'</td></tr>';
|
||||
//date('Y-m-d H:i', strtotime($termine->von));
|
||||
}
|
||||
echo '</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td>'.(($prf->methode == null) ? "keine Methode angegeben" : $prf->methode).'</td>
|
||||
<td>'.$prf->pruefungstyp_kurzbz.'</td>
|
||||
<td>'.(($prf->einzeln == true) ? "TRUE" : "FALSE").'</td>
|
||||
<td>'.$prf->mitarbeiter_uid.'</td>
|
||||
<td>'.(($prf->storniert == true) ? "TRUE" : "FALSE").'</td>
|
||||
</tr>';
|
||||
}
|
||||
?>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
else if ($_GET["method"] == "update")
|
||||
{
|
||||
$pruefung_id = isset($_GET["id"]) ? $_GET["id"] : false;
|
||||
|
||||
if(is_numeric($pruefung_id))
|
||||
{
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->load($pruefung_id);
|
||||
$pruefung->getLehrveranstaltungenByPruefung();
|
||||
$pruefung->getTermineByPruefung();
|
||||
}
|
||||
else
|
||||
{
|
||||
header("Location: pruefungstermin_festlegen.php");
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<h1>Prüfung bearbeiten</h1>
|
||||
<div>
|
||||
<form method="post" action="pruefungstermin_festlegen.php">
|
||||
<input type="hidden" name="id" value="<?php echo $pruefung->pruefung_id;?>">
|
||||
<input type="hidden" name="method" value="update">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Titel:</td>
|
||||
<td>
|
||||
<input type="text" name="titel" value="<?php echo $pruefung->titel;?>">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">Beschreibung:</td>
|
||||
<td>
|
||||
<textarea name="beschreibung" rows="5" cols="20"><?php echo $pruefung->beschreibung; ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Studiensemester:</td>
|
||||
<td>
|
||||
<select id="studiensemester" name="studiensemester" onchange="loadPruefungsfenster();" onload="loadPruefungsfenster();">
|
||||
<?php
|
||||
foreach ($studiensemester->studiensemester as $result)
|
||||
{
|
||||
if($pruefung->studiensemester_kurzbz == $result->studiensemester_kurzbz)
|
||||
{
|
||||
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Prüfungsfenster:</td>
|
||||
<td>
|
||||
<select id="pruefungsfenster" name="pruefungsfenster">
|
||||
<!--Daten werden durch JavaScript geladen-->
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Prüfungstyp:</td>
|
||||
<td>
|
||||
<select name="pruefungsTyp">
|
||||
<?php
|
||||
if($pruefungstypen !== false)
|
||||
{
|
||||
foreach ($pruefungstypen as $typ) {
|
||||
if($typ->pruefungstyp_kurzbz == $pruefung->pruefungstyp_kurzbz)
|
||||
{
|
||||
echo '<option selected value="'.$typ->pruefungstyp_kurzbz.'">'.$typ->beschreibung.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option value="'.$typ->pruefungstyp_kurzbz.'">'.$typ->beschreibung.'</option>';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">Methode:</td>
|
||||
<td><textarea placeholder="Multiple Choice, etc." rows="5" cols="20" name="methode"><?php echo $pruefung->methode; ?></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Einzelprüfung:</td>
|
||||
<td><input type="checkbox" <?php echo (($pruefung->einzeln == true) ? " checked ": "") ?> name="einzelpruefung"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">Lehrveranstaltungen:</td>
|
||||
<td>
|
||||
<div id="lvDropdowns">
|
||||
<?php
|
||||
$studiengang = new studiengang();
|
||||
$lv_temp = array();
|
||||
foreach($pruefung->lehrveranstaltungen as $lv)
|
||||
{
|
||||
array_push($lv_temp, $lv->lehrveranstaltung_id);
|
||||
}
|
||||
foreach($lehrveranstaltung->lehrveranstaltungen as $result)
|
||||
{
|
||||
$studiengang->load($result->studiengang_kz);
|
||||
|
||||
if(in_array($result->lehrveranstaltung_id, $lv_temp))
|
||||
{
|
||||
echo '<span value="'.$result->lehrveranstaltung_id.'">'.$studiengang->kurzbzlang.' | <b>'.$result->bezeichnung.'</b> ('.$result->lehrform_kurzbz.')</span><a href="pruefungstermin_festlegen.php?method=update&action=deleteLv&lvId='.$result->lehrveranstaltung_id.'&id='.$pruefung_id.'"> löschen</a></br>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
<div id="lvDropdowns">
|
||||
<select id="lvDropdown1" onchange="lehrveranstaltungDropdownhinzufuegen(this, false);" name="lv[]">
|
||||
<option value="null">Lehrveranstaltung auswählen...</option>
|
||||
<?php
|
||||
$studiengang = new studiengang();
|
||||
foreach($lehrveranstaltung->lehrveranstaltungen as $result)
|
||||
{
|
||||
$studiengang->load($result->studiengang_kz);
|
||||
echo '<option value="'.$result->lehrveranstaltung_id.'">'.$studiengang->kurzbzlang.' | <b>'.$result->bezeichnung.'</b> ('.$result->lehrform_kurzbz.')</option>';
|
||||
}
|
||||
?>
|
||||
</select></br>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a name="termin">Termin:</a></td>
|
||||
<td>
|
||||
<div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Von</th>
|
||||
<th>bis</th>
|
||||
<th>min. Teilnehmer</th>
|
||||
<th>max. Teilnehmer</th>
|
||||
<th>Aktion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="prfTermin">
|
||||
<?php
|
||||
foreach($pruefung->termine as $prfTermin)
|
||||
{
|
||||
echo '<tr>
|
||||
<input type="hidden" name="termin_id[]" value='.$prfTermin->pruefungstermin_id.'>
|
||||
<td>
|
||||
<input type="text" id="termin1" name="termin[]" value="'.date("d.m.Y",strtotime($prfTermin->von)).'">
|
||||
</td>
|
||||
<td>
|
||||
<input type="time" placeholder="00:00" name="terminBeginn[]" value="'.date("H:i",strtotime($prfTermin->von)).'">
|
||||
</td>
|
||||
<td>
|
||||
<input type="time" placeholder="00:00" name="terminEnde[]" value="'.date("H:i",strtotime($prfTermin->bis)).'">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" placeholder="0" min="0" name="minTeilnehmer[]" value="'.$prfTermin->min.'">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" placeholder="10" min="0" name="maxTeilnehmer[]" value="'.$prfTermin->max.'">
|
||||
</td>
|
||||
<td>
|
||||
<a href="pruefungstermin_festlegen.php?method=update&action=deleteTermin&termin_id='.$prfTermin->pruefungstermin_id.'&id='.$pruefung->pruefung_id.'">löschen</a>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
?>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<a href="#termin" onclick="terminHinzufuegen('Neu');">Termin hinzufügen</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<a href="pruefungstermin_festlegen.php?action=storno&id=<?php echo $pruefung->pruefung_id; ?>">Prüfung stornieren</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<input type="submit" value="Speichern">
|
||||
<a href="pruefungstermin_festlegen.php"><input type="button" value="Abbrechen"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<div id='message'></div>
|
||||
<div id="modalOverlay"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user