Bugfix, Plausibilitätsprüfung in Prüfungsverwaltung

This commit is contained in:
Stefan Puraner
2014-04-30 11:45:56 +00:00
parent 1ddf4b205e
commit 364ce97565
10 changed files with 304 additions and 111 deletions
+106 -31
View File
@@ -196,7 +196,7 @@ function loadPruefungen()
data.result.pruefungen.forEach(function(e){
if(e.pruefung.storniert === false)
{
var table = writePruefungsTable(e, data);
var table = writePruefungsTable(e, data, true);
$("#pruefungen").append(table);
}
});
@@ -230,7 +230,7 @@ function loadPruefungenOfStudiengang()
data.result.pruefungen.forEach(function(e){
if(e.pruefung.storniert === false)
{
var table = writePruefungsTable(e, data);
var table = writePruefungsTable(e, data, true);
$("#pruefungenStudiengang").append(table);
}
});
@@ -262,7 +262,7 @@ function loadPruefungenGesamt()
data.result.pruefungen.forEach(function(e){
if(e.pruefung.storniert === false)
{
var table = writePruefungsTable(e, data);
var table = writePruefungsTable(e, data, false);
$("#pruefungenGesamt").append(table);
}
});
@@ -277,27 +277,13 @@ function loadPruefungenGesamt()
* @param {type} data Daten der Anmeldungen
* @returns {String}
*/
function writePruefungsTable(e, data)
function writePruefungsTable(e, data, anmeldung)
{
var row = "";
var teilnehmer = "";
var button = "";
row += "<tr><td>"+e.organisationseinheit+"</td><td style='cursor: pointer;' onclick='showPruefungsDetails(\""+e.pruefung.pruefung_id+"\",\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\");'>"+e.lehrveranstaltung[0].bezeichnung+"</td><td>";
row += "<tr><td>"+e.organisationseinheit+"</td><td style='cursor: pointer; text-decoration: underline;' onclick='showPruefungsDetails(\""+e.pruefung.pruefung_id+"\",\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\");'>"+e.lehrveranstaltung[0].bezeichnung+"</td><td>";
e.pruefung.termine.forEach(function(d){
var termin = d.von.split(" ");
termin = termin[0].split("-");
termin = new Date(termin[0], termin[1]-1,termin[2]);
termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear();
row += termin+"</br>";
if(d.max === null)
{
teilnehmer += "unbegrenzt</br>";
}
else
{
teilnehmer += (d.max - d.teilnehmer)+"/"+d.max+"</br>";
}
var storno = false;
var anmeldung_id = null;
data.result.anmeldungen.forEach(function(anmeldung){
@@ -307,18 +293,44 @@ function writePruefungsTable(e, data)
anmeldung_id= anmeldung.pruefungsanmeldung_id;
}
});
if(storno)
var termin = d.von.split(" ");
termin = termin[0].split("-");
termin = new Date(termin[0], termin[1]-1,termin[2]);
var frist = termin;
termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear();
frist = frist.getTime();
frist = frist - (3*24*60*60*1000);
frist = new Date(frist);
frist = frist.getDate()+"."+(frist.getMonth()+1)+"."+frist.getFullYear();
if(anmeldung || e.lehrveranstaltung[0].angemeldet)
{
button += "<input type='button' value='Stornieren' onclick='stornoAnmeldung(\""+anmeldung_id+"\");'></br>";
if(storno)
{
button = "<p><span style='display: inline-block; width: 155px;'>Stornieren (bis "+frist+"): </span><input style='width: 90px;' type='button' value='"+termin+"' onclick='stornoAnmeldung(\""+anmeldung_id+"\");'></br>";
}
else
{
button = "<p><span style='display: inline-block; width: 155px;'>Anmelden (bis "+frist+"): </span><input style='width: 90px;' type='button' value='"+termin+"' onclick='openDialog(\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\", \""+d.pruefungstermin_id+"\", \""+e.lehrveranstaltung[0].bezeichnung+"\", \""+d.von+"\", \""+d.bis+"\");'></p>";
}
}
else
{
button += "<input type='button' value='zur Anmeldung' onclick='openDialog(\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\", \""+d.pruefungstermin_id+"\", \""+e.lehrveranstaltung[0].bezeichnung+"\", \""+d.von+"\", \""+d.bis+"\");'></br>";
button = "<p><span style='display: inline-block; width: 155px;'>Anmelden (bis "+frist+"): </span><input style='width: 90px;' type='button' value='"+termin+"' onclick='openAnmeldung(\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\", \""+e.pruefung.studiensemester_kurzbz+"\");'></p>";
}
row += button;
if(d.max === null)
{
teilnehmer += "unbegrenzt</br>";
}
else
{
teilnehmer += "<p><span style='line-height: 24px'>"+(d.max - d.teilnehmer)+"/"+d.max+"</span></p>";
}
});
row += "<td>"+teilnehmer+"</td>";
row += "</td><td></td><td>"+button+"</td></tr>";
return row;
}
@@ -354,10 +366,14 @@ function showPruefungsDetails(prfId, lvId)
if(p.einzeln === true)
{
$("#prfEinzeln").html("<b>Einzelprüfung!</b>");
$("#prfIntervall").html(p.pruefungsintervall+" min");
$("#prfIntervall").prev().css("visibility", "visible");
}
else
{
$("#prfEinzeln").html("");
$("#prfIntervall").html("");
$("#prfIntervall").prev().css("visibility", "hidden");
}
$("#lvBez").html(l.bezeichnung);
if(l.ects !== null)
@@ -629,7 +645,7 @@ function writeAnmeldungen(data)
{
case 'angemeldet':
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+vorname+"\",\""+nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+vorname+" "+nachname+"</a>";
liste += "<div style='width: 3%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 25%;'><input style='vertical-align: top;' type='button' value='Bestätigen' onclick='anmeldungBestaetigen(\""+d.pruefungsanmeldung_id+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'></div>";
liste += "<div style='width: 3%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 25%;'><input style='vertical-align: top; height: 24px;' 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>";
@@ -638,7 +654,7 @@ function writeAnmeldungen(data)
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 href='#' onclick='showKommentar(\""+vorname+"\",\""+nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+vorname+" "+nachname+"</a>";
liste += "<div style='width: 2%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 20%;'>bestätigt</div>";
liste += "<div style='width: 2%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 20%;'><a href='#' title='Satusänderung von: "+d.statusupdatevon+"'>bestätigt</a></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>";
@@ -996,6 +1012,7 @@ function savePruefungstermin()
var lehrveranstaltungen = [];
var error = false;
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
var pruefungsintervall = $("#pruefungsintervall").val();
$("#prfTermin tr").each(function(i,v){
var termin = {};
$(v).find("input").each(function(j, w){
@@ -1028,6 +1045,19 @@ function savePruefungstermin()
markMissingFormEntry("termin"+(i+1)+"min");
markMissingFormEntry("termin"+(i+1)+"max");
}
if(einzeln)
{
if(!checkPruefungsintervall(pruefungsintervall, termin))
{
error = true;
markMissingFormEntry("pruefungsintervall");
markMissingFormEntry($(v).attr("id"));
}
}
else
{
pruefungsintervall = false;
}
termine.push(termin);
});
@@ -1095,7 +1125,8 @@ function savePruefungstermin()
einzeln: einzeln,
termine: termine,
lehrveranstaltungen: lehrveranstaltungen,
mitarbeiter_uid: mitarbeiter_uid
mitarbeiter_uid: mitarbeiter_uid,
pruefungsintervall: pruefungsintervall
},
error: loadError
}).success(function(data){
@@ -1299,6 +1330,8 @@ function loadPruefungsDetails(prfId)
if(result.pruefung.einzeln)
{
$("#einzeln").prop("checked", "checked");
$("#pruefungsintervall").parent().parent().css("visibility", "visible");
$("#pruefungsintervall").val(result.pruefung.pruefungsintervall);
}
else
{
@@ -1363,12 +1396,13 @@ function updatePruefung(prfId)
var titel = $("#titel").val();
var beschreibung = $("#beschreibung").val();
var methode = $("#methode").val();
var einzeln = $("#einzeln").val();
var einzeln = $("#einzeln").prop("checked");
var termine = [];
var termineNeu = [];
var lehrveranstaltungen = [];
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
var pruefungsintervall = $("#pruefungsintervall").val();
var error = false;
$('#prfTermin tr').has("span").each(function(i,v){
var termin = {};
$(v).find("span").each(function(j, w){
@@ -1398,6 +1432,15 @@ function updatePruefung(prfId)
error = true;
markMissingFormEntry($(v).attr("id"));
}
if(einzeln)
{
if(!checkPruefungsintervall(pruefungsintervall, termin))
{
error = true;
markMissingFormEntry("pruefungsintervall");
markMissingFormEntry($(v).attr("id"));
}
}
termine.push(termin);
});
@@ -1422,9 +1465,23 @@ function updatePruefung(prfId)
break;
}
});
if(!checkTermin(termin))
{
error = true;
markMissingFormEntry($(v).attr("id"));
}
if(einzeln)
{
if(!checkPruefungsintervall(pruefungsintervall, termin))
{
error = true;
markMissingFormEntry("pruefungsintervall");
markMissingFormEntry($(v).attr("id"));
}
}
termineNeu.push(termin);
});
var error = false;
$("#lvDropdowns select").each(function(i,v){
if($(v).val() !== "null")
lehrveranstaltungen.push($(v).val());
@@ -1489,7 +1546,8 @@ function updatePruefung(prfId)
termine: termine,
termineNeu: termineNeu,
lehrveranstaltungen: lehrveranstaltungen,
mitarbeiter_uid: mitarbeiter_uid
mitarbeiter_uid: mitarbeiter_uid,
pruefungsintervall: pruefungsintervall
},
error: loadError
}).success(function(data){
@@ -1683,6 +1741,20 @@ function checkTermin(termin)
return true;
}
function checkPruefungsintervall(intervall, termin)
{
var beginn = stringToDate(termin.datum, termin.beginn);
var ende = stringToDate(termin.datum, termin.ende);
var maxTeilnehmer = ((ende - beginn) / 1000 / 60 / intervall);
console.log(maxTeilnehmer);
console.log(termin.max);
if(maxTeilnehmer < termin.max)
{
return false;
}
return true;
}
/**
* Formatiert eine Datum von String in eine Date-Objekt
* @param {string} datum Ein Datum als String im Format "DD.MM.YYYY"
@@ -1711,6 +1783,9 @@ function resetPruefungsverwaltung()
$("#methode").val("");
resetLehrveranstaltungen();
resetTermine();
$("#pruefungsintervall").val("15");
$("#einzeln").removeAttr("checked");
$("#pruefungsintervall").closest("tr").css("visibility", "hidden");
$("#modalOverlay").removeClass("modalOverlay");
$("#buttonSave").attr("onclick", "savePruefungstermin();");
}
@@ -59,13 +59,14 @@ switch($method)
$data = saveReihung();
break;
case 'anmeldungBestaetigen':
$data = anmeldungBestaetigen();
$data = anmeldungBestaetigen($uid);
break;
case 'getStudiengaenge':
$data = getStudiengaenge();
break;
case 'getPruefungenStudiengang':
$data = getPruefungenStudiengang();
$studiensemester = new studiensemester();
$data = getPruefungenStudiengang($uid, $studiensemester->getakt());
break;
case 'saveKommentar':
$data = saveKommentar();
@@ -87,7 +88,7 @@ echo json_encode($data);
function getPruefungByLv($aktStudiensemester = null, $uid = null)
{
$lehrveranstaltungen = new lehrveranstaltung();
$lehrveranstaltungen->load_lva_student($uid);
$lehrveranstaltungen->load_lva_student($uid, $aktStudiensemester);
$lvIds = array();
foreach($lehrveranstaltungen->lehrveranstaltungen as $lvs)
{
@@ -155,6 +156,13 @@ function getPruefungByLv($aktStudiensemester = null, $uid = null)
function getPruefungByLvFromStudiengang($aktStudiensemester = null, $uid = null)
{
$lehrveranstaltungen = new lehrveranstaltung();
$lv_angemeldet = new lehrveranstaltung();
$lv_angemeldet->load_lva_student($uid, $aktStudiensemester);
$lvIds_angemeldet = array();
foreach($lv_angemeldet->lehrveranstaltungen as $lv)
{
array_push($lvIds_angemeldet, $lv->lehrveranstaltung_id);
}
$student = new student($uid);
$lehrveranstaltungen->load_lva($student->studiengang_kz);
$lvIds = array();
@@ -167,10 +175,18 @@ function getPruefungByLvFromStudiengang($aktStudiensemester = null, $uid = null)
if($pruefung->getPruefungByLv($lehrveranstaltungen))
{
$pruefungen = array();
foreach($pruefung->lehrveranstaltungen as $lv)
foreach($pruefung->lehrveranstaltungen as $key=>$lv)
{
$lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id);
$lehrveranstaltung = $lehrveranstaltung->cleanResult();
if(in_array($lehrveranstaltung[0]->lehrveranstaltung_id, $lvIds_angemeldet))
{
$lehrveranstaltung[0]->angemeldet = true;
}
else
{
$lehrveranstaltung[0]->angemeldet = false;
}
$lehreinheit = new lehreinheit();
$lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester);
$lehreinheiten = $lehreinheit->lehreinheiten;
@@ -513,12 +529,12 @@ function saveReihung()
* Ändert den Status einer Prüfungsanmeldung auf "bestaetigt"
* @return Array
*/
function anmeldungBestaetigen()
function anmeldungBestaetigen($uid)
{
$pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"];
$status = "bestaetigt";
$anmeldung = new pruefungsanmeldung();
if($anmeldung->changeState($pruefungsanmeldung_id, $status))
if($anmeldung->changeState($pruefungsanmeldung_id, $status, $uid))
{
$data['result']=true;
$data['error']='false';
@@ -567,7 +583,7 @@ function getStudiengaenge()
* Lädt alle Prüfungen eines Studienganges
* @return Array
*/
function getPruefungenStudiengang()
function getPruefungenStudiengang($uid, $aktStudiensemester)
{
$lehrveranstaltung = new lehrveranstaltung();
$lehrveranstaltung->load_lva($_REQUEST["studiengang_kz"], null, null, true, true);
@@ -36,12 +36,6 @@ $db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$lehrveranstaltung = new lehrveranstaltung();
$lehrveranstaltung->load_lva_student($uid);
$studiensemester = new studiensemester();
$studiensemester->getAll();
$benutzer = new student($uid);
?>
@@ -80,7 +74,7 @@ $benutzer = new student($uid);
}
#accordion {
width: 80%;
width: 60%;
clear: left;
clear: right;
}
@@ -98,6 +92,22 @@ $benutzer = new student($uid);
font-weight: bold;
}
.columnheader1 {
width: 30%;
}
.columnheader2 {
width: 30%;
}
.columnheader3 {
width: 30%;
}
.columnheader4 {
width: 5%;
}
#accordion p {
margin: 0;
}
/* div {
float: left;
}*/
@@ -118,7 +128,7 @@ $benutzer = new student($uid);
{
$("#accordion").accordion({
header: "h2",
heightstyle: "content"
autoHeight: false
});
$("#accordion").attr("style", "visibility: visible;");
}
@@ -133,7 +143,17 @@ $benutzer = new student($uid);
autoOpen: false,
width: "400px"
});
$("#dialog").dialog({ autoOpen: false });
});
<?php
echo '
function openAnmeldung(lehrveranstaltung_id, stsem)
{
$("#dialog").load("../../profile/studienplan.php?getAnmeldung=true&lehrveranstaltung_id="+lehrveranstaltung_id+"&stsem="+stsem+"&uid='.$db->convert_html_chars($uid).'");
$("#dialog").dialog("open");
}'
;
?>
</script>
<h1>Prüfungsanmeldung für <?php echo $benutzer->vorname." ".$benutzer->nachname." (".$uid.")"; ?></h1>
<div id="details">
@@ -149,6 +169,7 @@ $benutzer = new student($uid);
<span class="titel">Methode: </span><span id="prfMethode"></span><br/>
<span class="titel">Beschreibung: </span><span id="prfBeschreibung"></span><br/>
<span id="prfEinzeln"></span><br/>
<span class="titel" style="visibility: hidden;">Intervall: </span><span id="prfIntervall"></span><br/>
</div>
</div>
<div id="message"></div>
@@ -158,12 +179,10 @@ $benutzer = new student($uid);
<table id="table1" class="tablesorter">
<thead>
<tr>
<th>Insitut</th>
<th>Lehrveranstaltung</th>
<th>Termin</th>
<th>freie Plätze</th>
<th>Frist</th>
<th>&nbsp;</th>
<th class="columnheader1">Insitut</th>
<th class="columnheader2">Lehrveranstaltung</th>
<th class="columnheader3">Termin</th>
<th class="columnheader4">freie Plätze</th>
</tr>
</thead>
<tbody id="pruefungen">
@@ -176,12 +195,10 @@ $benutzer = new student($uid);
<table id="table2" class="tablesorter">
<thead>
<tr>
<th>Insitut</th>
<th>Lehrveranstaltung</th>
<th>Termin</th>
<th>freie Plätze</th>
<th>Frist</th>
<th>&nbsp;</th>
<th class="columnheader1">Insitut</th>
<th class="columnheader2">Lehrveranstaltung</th>
<th class="columnheader3">Termin</th>
<th class="columnheader4">freie Plätze</th>
</tr>
</thead>
<tbody id="pruefungenStudiengang">
@@ -194,12 +211,10 @@ $benutzer = new student($uid);
<table id="table3" class="tablesorter">
<thead>
<tr>
<th>Insitut</th>
<th>Lehrveranstaltung</th>
<th>Termin</th>
<th>freie Plätze</th>
<th>Frist</th>
<th>&nbsp;</th>
<th class="columnheader1">Insitut</th>
<th class="columnheader2">Lehrveranstaltung</th>
<th class="columnheader3">Termin</th>
<th class="columnheader4">freie Plätze</th>
</tr>
</thead>
<tbody id="pruefungenGesamt">
@@ -249,5 +264,7 @@ $benutzer = new student($uid);
</table>
</form>
</div>
<div id="dialog">
</div>
</body>
</html>
@@ -174,7 +174,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
.anmerkungInfo {
text-align: right;
width: 5%;
width: 10%;
}
#progressbar {
@@ -49,6 +49,11 @@ switch($method)
$einzeln = (isset($_POST["einzeln"]) && $_POST["einzeln"] ==="true")?true:false;
$lehrveranstaltungen = isset($_POST["lehrveranstaltungen"]) ? $_POST["lehrveranstaltungen"] : null;
$termine = isset($_POST["termine"])?$_POST["termine"]:null;
$pruefungsintervall = NULL;
if(isset($_REQUEST["pruefungsintervall"]) && ($_REQUEST["pruefungsintervall"] !== "false"))
{
$pruefungsintervall = $_REQUEST["pruefungsintervall"];
}
if($rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
{
$mitarbeiter_uid = $_REQUEST["mitarbeiter_uid"];
@@ -57,7 +62,7 @@ switch($method)
{
$mitarbeiter_uid = $uid;
}
$data = savePruefungstermin($mitarbeiter_uid, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine);
$data = savePruefungstermin($mitarbeiter_uid, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $pruefungsintervall);
break;
case 'getLehrveranstaltungenByMitarbeiter':
$mitarbeiter_uid = $_POST["mitarbeiter_uid"];
@@ -76,6 +81,11 @@ switch($method)
$lehrveranstaltungen = isset($_POST["lehrveranstaltungen"]) ? $_POST["lehrveranstaltungen"] : null;
$termine = isset($_POST["termine"])?$_POST["termine"]:null;
$termineNeu = isset($_POST["termineNeu"])?$_POST["termineNeu"]:null;
$pruefungsintervall = NULL;
if((isset($_REQUEST["pruefungsintervall"]) && $_REQUEST["pruefungsintervall"] !== false))
{
$pruefungsintervall = $_REQUEST["pruefungsintervall"];
}
if($rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
{
$mitarbeiter_uid = $_REQUEST["mitarbeiter_uid"];
@@ -84,7 +94,7 @@ switch($method)
{
$mitarbeiter_uid = $uid;
}
$data = updatePruefungstermin($mitarbeiter_uid, $pruefung_id, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $termineNeu);
$data = updatePruefungstermin($mitarbeiter_uid, $pruefung_id, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $termineNeu, $pruefungsintervall);
break;
case 'deleteLehrveranstaltungFromPruefung':
$lvId = $_POST["lehrveranstaltung_id"];
@@ -201,7 +211,7 @@ function getPruefungsfensterByStudiensemester($studiensemester_kurzbz)
* @param Array $termine Termine zur Prüfung
* @return Array
*/
function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine)
function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $pruefungsintervall)
{
if($lehrveranstaltungen === null)
{
@@ -219,8 +229,8 @@ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id
$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(checkTerminPruefungsfenster($pruefungsfenster_id, $date))
// {
if(!(checkCollision($uid, $termin->beginn, $termin->ende)))
{
array_push($termineArray, $termin);
@@ -231,13 +241,13 @@ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id
$data['errormsg']="Kollision mit anderem Termin.";
return $data;
}
}
else
{
$data['error']='true';
$data['errormsg']="Termin ist nicht innerhalb des Prüfungsfensters.";
return $data;
}
// }
// else
// {
// $data['error']='true';
// $data['errormsg']="Termin ist nicht innerhalb des Prüfungsfensters.";
// return $data;
// }
}
$pruefung = new pruefungCis();
@@ -250,7 +260,8 @@ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id
$pruefung->beschreibung = $beschreibung;
$pruefung->methode = $methode;
$pruefung->einzeln = $einzeln;
$pruefung->insertvon = $uid;
$pruefung->insertvon = get_uid();
$pruefung->pruefungsintervall = $pruefungsintervall;
foreach ($lehrveranstaltungen as $lv) {
if($lv != "null")
@@ -340,7 +351,7 @@ function getLehrveranstaltungenByMitarbeiter($mitarbeiter_uid, $studiensemester_
* @param type $termineNeu Neu hinzugefügte Termine
* @return Array
*/
function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $termineNeu)
function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $termineNeu, $pruefungsintervall)
{
$pruefungsfenster = new pruefungsfenster();
$pruefungsfenster->load($pruefungsfenster_id);
@@ -361,8 +372,8 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru
$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(checkTerminPruefungsfenster($pruefungsfenster_id, $date))
// {
if(!(checkCollision($uid, $termin->beginn, $termin->ende)))
{
array_push($termineNeuArray, $termin);
@@ -373,13 +384,13 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru
$data['errormsg']="Kollision mit anderem Termin.";
return $data;
}
}
else
{
$data['error']='true';
$data['errormsg']="Termin ist nicht innerhalb des Prüfungsfensters.";
return $data;
}
// }
// else
// {
// $data['error']='true';
// $data['errormsg']="Termin ist nicht innerhalb des Prüfungsfensters.";
// return $data;
// }
}
foreach ($termineNeuArray as $t)
{
@@ -401,16 +412,16 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru
$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;
}
// 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)
{
@@ -427,7 +438,8 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru
$pruefung->beschreibung = $beschreibung;
$pruefung->methode = $methode;
$pruefung->einzeln = $einzeln;
$pruefung->updatevon = $uid;
$pruefung->updatevon = get_uid();
$pruefung->pruefungsintervall = $pruefungsintervall;
if($lehrveranstaltungen !== null)
{
foreach ($lehrveranstaltungen as $lv)
@@ -91,6 +91,16 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
<body>
<script>
$(document).ready(function() {
$("#einzeln").bind("change", function(){
if($("#einzeln").prop("checked") === true)
{
$("#pruefungsintervall").closest("tr").css("visibility", "visible");
}
else
{
$("#pruefungsintervall").closest("tr").css("visibility", "hidden");
}
});
var isFormHidden = true;
$("#lektor").autocomplete({
source: "lektor_autocomplete.php?autocomplete=lektor",
@@ -123,9 +133,10 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
$("#prfVerwaltung form").slideToggle("slow");
}
// loadAllPruefungen();
loadPruefungstypen("false");
loadStudiensemester();
loadAllPruefungen();
resetPruefungsverwaltung();
// loadPruefungstypen("false");
// loadStudiensemester();
// loadAllPruefungen();
}
});
});
@@ -204,6 +215,16 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
<td>Einzelprüfung:</td>
<td><input id='einzeln' type="checkbox" name="einzelpruefung"></td>
</tr>
<tr style="visibility:hidden;">
<td>Prüfungsintervall:</td>
<td>
<select id="pruefungsintervall">
<option value="15">15</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
</td>
</tr>
<tr>
<td style="vertical-align: top;">Lehrveranstaltungen:</td>
<td>
+5 -3
View File
@@ -481,12 +481,14 @@ class lehrveranstaltung extends basis_db
* @param $student_uid
* @return true wenn ok, false im Fehlerfall
*/
public function load_lva_student($student_uid)
public function load_lva_student($student_uid, $studiensemester_kurzbz=NULL)
{
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung
WHERE lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM campus.vw_student_lehrveranstaltung
WHERE uid=" . $this->db_add_param($student_uid) . ")
OR lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM lehre.tbl_zeugnisnote WHERE student_uid=" . $this->db_add_param($student_uid) . ")
WHERE uid=" . $this->db_add_param($student_uid);
if($studiensemester_kurzbz !== NULL)
$qry .= " AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
$qry .= ") OR lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM lehre.tbl_zeugnisnote WHERE student_uid=" . $this->db_add_param($student_uid) . ")
ORDER BY semester, bezeichnung";
//Datensaetze laden
+9 -3
View File
@@ -43,6 +43,7 @@ class pruefungCis extends basis_db
public $insertamum; //timestamp without timezone
public $updatevon; //varcahr(32)
public $updateamum; //timestamp without timezone
public $pruefungsintervall; //smallint
public $lehrveranstaltungen = array(); //Lehrveranstaltungen zur Prüfung
public $termine = array(); //Termine zur Prüfung
@@ -145,7 +146,7 @@ class pruefungCis extends basis_db
}
else if($new)
{
$qry = 'BEGIN; INSERT INTO campus.tbl_pruefung (mitarbeiter_uid, studiensemester_kurzbz, pruefungsfenster_id, pruefungstyp_kurzbz, titel, beschreibung, methode, einzeln, storniert, insertvon, insertamum) '
$qry = 'BEGIN; INSERT INTO campus.tbl_pruefung (mitarbeiter_uid, studiensemester_kurzbz, pruefungsfenster_id, pruefungstyp_kurzbz, titel, beschreibung, methode, einzeln, storniert, insertvon, insertamum, pruefungsintervall) '
. 'VALUES ('.$this->db_add_param($this->mitarbeiter_uid).', '
. $this->db_add_param($this->studiensemester_kurzbz).', '
. $this->db_add_param($this->pruefungsfenster_id).', '
@@ -156,7 +157,8 @@ class pruefungCis extends basis_db
. $this->db_add_param($this->einzeln, FHC_BOOLEAN).', '
. $this->db_add_param($this->storniert, FHC_BOOLEAN).', '
. $this->db_add_param($this->insertvon).', '
. 'now()'
. 'now(), '
. $this->db_add_param($this->pruefungsintervall).''
. ');';
}
else
@@ -172,7 +174,8 @@ class pruefungCis extends basis_db
. 'einzeln='.$this->db_add_param($this->einzeln,FHC_BOOLEAN).', '
. 'storniert='.$this->db_add_param($this->storniert,FHC_BOOLEAN).', '
. 'updatevon='.$this->db_add_param($this->updatevon).', '
. 'updateamum=now() '
. 'updateamum=now(), '
. 'pruefungsintervall='.$this->db_add_param($this->pruefungsintervall).' '
. 'WHERE pruefung_id='.$this->db_add_param($this->pruefung_id).';';
}
@@ -291,6 +294,7 @@ class pruefungCis extends basis_db
$this->methode = $row->methode;
$this->einzeln = $this->db_parse_bool($row->einzeln);
$this->storniert = $this->db_parse_bool($row->storniert);
$this->pruefungsintervall = $row->pruefungsintervall;
}
return true;
}
@@ -337,6 +341,7 @@ class pruefungCis extends basis_db
$obj->methode = $row->methode;
$obj->einzeln = $this->db_parse_bool($row->einzeln);
$obj->storniert = $this->db_parse_bool($row->storniert);
$this->pruefungsintervall = $row->pruefungsintervall;
$this->result[] = $obj;
}
return true;
@@ -678,6 +683,7 @@ class pruefungCis extends basis_db
$obj->methode = $row->methode;
$obj->einzeln = $this->db_parse_bool($row->einzeln);
$obj->storniert = $this->db_parse_bool($row->storniert);
$this->pruefungsintervall = $row->pruefungsintervall;
$this->result[] = $obj;
}
return true;
+14 -3
View File
@@ -35,7 +35,9 @@ class pruefungsanmeldung extends basis_db {
public $status_kurzbz; //varchar(32)
public $wuensche; //text
public $reihung; //smallint
public $kommentar; //text
public $kommentar; //text
public $statusupdatevon; //varchar(32)
public $statusupdateamum; //timestamp
/**
* Konstruktor
@@ -154,6 +156,8 @@ class pruefungsanmeldung extends basis_db {
$this->wuensche = $row->wuensche;
$this->reihung = $row->reihung;
$this->kommentar = $row->kommentar;
$this->statusupdateamum = $row->statusupdateamum;
$this->statusupdatevon = $row->statusupdatevon;
}
return true;
}
@@ -195,6 +199,8 @@ class pruefungsanmeldung extends basis_db {
$anmeldung->reihung = $row->reihung;
$anmeldung->wuensche = $row->wuensche;
$anmeldung->kommentar = $row->kommentar;
$anmeldung->statusupdateamum = $row->statusupdateamum;
$anmeldung->statusupdatevon = $row->statusupdatevon;
array_push($anmeldungen, $anmeldung);
}
return $anmeldungen;
@@ -245,6 +251,8 @@ class pruefungsanmeldung extends basis_db {
$anmeldung->reihung = $row->reihung;
$anmeldung->wuensche = $row->wuensche;
$anmeldung->kommentar = $row->kommentar;
$anmeldung->statusupdateamum = $row->statusupdateamum;
$anmeldung->statusupdatevon = $row->statusupdatevon;
array_push($anmeldungen, $anmeldung);
}
return $anmeldungen;
@@ -324,9 +332,12 @@ class pruefungsanmeldung extends basis_db {
* @param type $status Status auf den geändert werden soll
* @return boolean true, wenn ok; false, im Fehlerfall
*/
public function changeState($pruefungsanmeldung_id, $status)
public function changeState($pruefungsanmeldung_id, $status, $user)
{
$qry = 'UPDATE campus.tbl_pruefungsanmeldung SET status_kurzbz='.$this->db_add_param($status).''
$qry = 'UPDATE campus.tbl_pruefungsanmeldung SET '
. 'status_kurzbz='.$this->db_add_param($status).', '
. 'statusupdatevon='.$this->db_add_param($user).', '
. 'statusupdateamum=NOW() '
. ' WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';';
if(!$this->db_query($qry))
+33
View File
@@ -1487,6 +1487,39 @@ if(!$result = @$db->db_query("SELECT pruefungsanmeldung_id FROM lehre.tbl_pruefu
echo 'lehre.tbl_pruefung: Spalte pruefungsanmeldung_id hinzugefuegt';
}
// pruefungsintervall in campus.tbl_pruefung
if(!$result = @$db->db_query("SELECT pruefungsintervall FROM campus.tbl_pruefung LIMIT 1"))
{
$qry = "ALTER TABLE campus.tbl_pruefung ADD COLUMN pruefungsintervall smallint;";
if(!$db->db_query($qry))
echo '<strong>campus.tbl_pruefung: '.$db->db_last_error().'</strong><br>';
else
echo 'campus.tbl_pruefung: Spalte pruefungsintervall hinzugefuegt';
}
// statusupdatevon in campus.tbl_pruefungsanmeldung
if(!$result = @$db->db_query("SELECT statusupdatevon FROM campus.tbl_pruefungsanmeldung LIMIT 1"))
{
$qry = "ALTER TABLE campus.tbl_pruefungsanmeldung ADD COLUMN statusupdatevon varcahr(32);";
if(!$db->db_query($qry))
echo '<strong>campus.tbl_pruefungsanmeldung: '.$db->db_last_error().'</strong><br>';
else
echo 'campus.tbl_pruefungsanmeldung: Spalte statusupdatevon hinzugefuegt';
}
// statusupdateamum in campus.tbl_pruefungsanmeldung
if(!$result = @$db->db_query("SELECT statusupdateamum FROM campus.tbl_pruefungsanmeldung LIMIT 1"))
{
$qry = "ALTER TABLE campus.tbl_pruefungsanmeldung ADD COLUMN statusupdateamum timestamp;";
if(!$db->db_query($qry))
echo '<strong>campus.tbl_pruefungsanmeldung: '.$db->db_last_error().'</strong><br>';
else
echo 'campus.tbl_pruefungsanmeldung: Spalte statusupdateamum hinzugefuegt';
}
// Indizes für Tabelle Reservierung
if($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_reservierung_datum'"))
{