Prüfungsverwaltung: Prüfer kann Beurteilungen eintragen

This commit is contained in:
Stefan Puraner
2014-04-17 06:40:43 +00:00
parent 2002cefb0a
commit 431f7eed82
13 changed files with 1516 additions and 546 deletions
+177 -108
View File
@@ -146,7 +146,6 @@ function writePruefungsfenster(data)
{
var prfFensterId = getUrlVars()["prfFensterId"];
$("#pruefungsfenster").empty();
// $("#pruefungsfenster").append("<option value='null'>Prüfungsfenster auswählen...</option>");
$.each(data.result, function(i, v)
{
if(v.oe_kurzbz !== null)
@@ -555,42 +554,6 @@ function refresh()
loadPruefungenGesamt();
}
/**
* Lädt alle Prüfungen eines Mitarbeiters
* @returns {undefined}
*/
//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
* @param {String} string Format: JJJJ-MM-TT hh:mm:ss
@@ -643,60 +606,65 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id)
},
error: loadError
}).success(function(data){
if(data.error === 'false')
{
var terminId = data.result[0].pruefungstermin_id;
var lehrveranstaltung_id = data.result[0].lehrveranstaltung_id;
var liste = "<ul id='sortable'>";
var count = 0;
data.result.forEach(function(d){
count++;
switch(d.status_kurzbz)
{
case 'angemeldet':
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+d.student.vorname+"\",\""+d.student.nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+d.student.vorname+" "+d.student.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>";
if(d.wuensche !== null)
{
liste += "<div class='anmerkungInfo'><a href='#' title='Anmerkung des Studenten:</br>"+d.wuensche+"'><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>";
}
liste += "</li>";
break;
case 'bestaetigt':
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+d.student.vorname+"\",\""+d.student.nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+d.student.vorname+" "+d.student.nachname+"</a>";
liste += "<div style='width: 2%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 20%;'>bestätigt</div>";
if(d.wuensche !== null)
{
liste += "<div class='anmerkungInfo'><a href='#' title='Anmerkung des Studenten:</br>"+d.wuensche+"'><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>";
}
break;
default:
break;
}
});
liste += "</ul>";
$("#reihungSpeichernButton").html("<input type='button' value='Reihung speichern' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>");
$("#anmeldeDaten").html(liste);
$(document).tooltip({
position: {
at: "right center",
my: "left+15 center"
}
});
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 1000);
}
writeAnmeldungen(data);
}).complete(function(event, xhr, settings){
$("#sortable").sortable();
$("#sortable").disableSelection();
});
}
function writeAnmeldungen(data)
{
if(data.error === 'false')
{
var terminId = data.result[0].pruefungstermin_id;
var lehrveranstaltung_id = data.result[0].lehrveranstaltung_id;
var liste = "<ul id='sortable'>";
var count = 0;
data.result.forEach(function(d){
count++;
switch(d.status_kurzbz)
{
case 'angemeldet':
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+d.student.vorname+"\",\""+d.student.nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+d.student.vorname+" "+d.student.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>";
if(d.wuensche !== null)
{
liste += "<div class='anmerkungInfo'><a href='#' title='Anmerkung des Studenten:</br>"+d.wuensche+"'><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>";
}
liste += "</li>";
break;
case 'bestaetigt':
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+d.student.vorname+"\",\""+d.student.nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+d.student.vorname+" "+d.student.nachname+"</a>";
liste += "<div style='width: 2%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 20%;'>bestätigt</div>";
if(d.wuensche !== null)
{
liste += "<div class='anmerkungInfo'><a href='#' title='Anmerkung des Studenten:</br>"+d.wuensche+"'><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>";
}
break;
default:
break;
}
});
liste += "</ul>";
$("#reihungSpeichernButton").html("<input type='button' value='Reihung speichern' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>");
$("#anmeldeDaten").html(liste);
$(document).tooltip({
position: {
at: "right center",
my: "left+15 center"
}
});
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 1000);
}
}
/**
* speichert die Reihung der Studenten einer Prüfungsanmeldung
* @param {type} terminId ID des Prüfungstermines
@@ -864,6 +832,16 @@ function loadPruefungStudiengang(studiengang_kz)
});
}
/**
* Zeigt das Formularfeld zur Eingabe eines Kommentars in der Anmeldungsverwaltung an.
* @param {String} vorname Vorname des Studenten
* @param {String} nachname Nachname des Studenten
* @param {int} pruefungsanmeldung_id ID der Anmeldung
* @param {String} kommentar Kommentar zur Anmeldung (wenn bereits vorhanden)
* @param {int} termin_id ID des Prüfungstermins
* @param {int} lehrveranstaltung_id ID der Lehrveranstaltung
* @returns {void}
*/
function showKommentar(vorname, nachname, pruefungsanmeldung_id, kommentar, termin_id, lehrveranstaltung_id)
{
if(kommentar === "null")
@@ -872,6 +850,13 @@ function showKommentar(vorname, nachname, pruefungsanmeldung_id, kommentar, term
$("#kommentarSpeichernButton").html("<input type='button' value='Kommentar speichern' onclick='saveKommentar(\""+pruefungsanmeldung_id+"\", \""+termin_id+"\", \""+lehrveranstaltung_id+"\");'>");
}
/**
* Speichert ein Kommentar zu einer Anmeldung
* @param {int} pruefungsanmeldung_id ID der Anmeldung
* @param {int} termin_id ID des Termins
* @param {int} lehrveranstaltung_id ID der Lehrveranstaltung
* @returns {void}
*/
function saveKommentar(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id)
{
var kommentar = $("#kommentarText").val();
@@ -892,6 +877,11 @@ function saveKommentar(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id)
});
}
/**
* lädt alle Prüfungstypen per AJAX aus der Datenbank
* @param {boolean} abschluss
* @returns {void}
*/
function loadPruefungstypen(abschluss)
{
$.ajax({
@@ -914,6 +904,10 @@ function loadPruefungstypen(abschluss)
});
}
/**
* Lädt alle Studiensemester per AJAX aus der Datenbank
* @returns {void}
*/
function loadStudiensemester()
{
$.ajax({
@@ -936,6 +930,11 @@ function loadStudiensemester()
});
}
/**
* Prüft eine Variable ob diese NULL ist
* @param {type} variable
* @returns {boolean} TRUE, wenn die Variable NULL ist, ansonsten FALSE
*/
function is_null(variable)
{
if(variable === null)
@@ -945,6 +944,11 @@ function is_null(variable)
return false;
}
/**
* Prüft eine Variable ob diese undefined ist
* @param {type} variable
* @returns {boolean} TRUE, wenn die Variable undefined ist, ansonsten FALSE
*/
function is_undefined(variable)
{
if(variable === undefined)
@@ -954,6 +958,11 @@ function is_undefined(variable)
return false;
}
/**
* Prüft einen String ob dieser die Länge 0 hat
* @param {string} string
* @returns {boolean} TRUE, wenn die Länge des Strings 0 ist, ansonsten FALSE
*/
function is_empty_String(string)
{
if(string.length === 0)
@@ -963,6 +972,10 @@ function is_empty_String(string)
return false;
}
/**
* Speichert einen Prüfungstermin
* @returns {void}
*/
function savePruefungstermin()
{
unmarkMissingFormEntry();
@@ -1006,7 +1019,6 @@ function savePruefungstermin()
if(!checkMinMaxTeilnehmer(termin.min, termin.max))
{
error = true;
console.log("termin"+(i+1)+"min");
markMissingFormEntry("termin"+(i+1)+"min");
markMissingFormEntry("termin"+(i+1)+"max");
}
@@ -1056,7 +1068,6 @@ function savePruefungstermin()
markMissingFormEntry("lvDropdowns");
}
if(error)
{
messageBox("message", "Formulardaten sind nicht korrekt.", "red", "highlight", 3000);
@@ -1096,6 +1107,12 @@ function savePruefungstermin()
}
}
/**
* Fügt einem Element die Klasse "missingFormData" hinzu
* CSS-Klasse "missingFormData" wird benötigt
* @param {string} eleId ID des zu markierenden Formularfeldes
* @returns {void}
*/
function markMissingFormEntry(eleId)
{
$("#"+eleId).addClass("missingFormData");
@@ -1104,6 +1121,11 @@ function markMissingFormEntry(eleId)
});
}
/**
* Entfernt die Klasse "missingFormData" von einem Element.
* @param {string} eleId ID des Formularfeldes
* @returns {void}
*/
function unmarkMissingFormEntry()
{
$(".missingFormData").each(function(i, v){
@@ -1111,6 +1133,10 @@ function unmarkMissingFormEntry()
});
}
/**
* Lädt alle Lehrveranstaltungen eine Mitarbeiters
* @returns {void}
*/
function loadLehrveranstaltungen()
{
var studiensemester_kurzbz = $("#studiensemester").val();
@@ -1136,6 +1162,11 @@ function loadLehrveranstaltungen()
});
}
/**
* Lädt die Details zu eine Prüfung
* @param {int} prfId ID der Prüfung
* @returns {void}
*/
function loadPruefungsDetails(prfId)
{
unmarkMissingFormEntry();
@@ -1258,7 +1289,6 @@ function loadPruefungsDetails(prfId)
});
});
var ele = document.getElementById("lvDropdowns");
// lehrveranstaltungDropdownhinzufuegen(ele, false);
$("#prfTermin tr").last().remove();
if(result.pruefung.einzeln)
{
@@ -1285,6 +1315,10 @@ function loadPruefungsDetails(prfId)
});
}
/**
* Setzt den Bereich Lehrveranstaltungen in der Anmeldungsverwaltung auf den Ausgangszustand
* @returns {void}
*/
function resetLehrveranstaltungen()
{
$("#lvDropdown1").attr("onchange", "lehrveranstaltungDropdownhinzufuegen(this, false);")
@@ -1297,16 +1331,22 @@ function resetLehrveranstaltungen()
});
}
/**
* Setzt den Bereich Termine in der Ammeldungsverwaltung auf den Ausgangszustand
* @returns {void}
*/
function resetTermine()
{
$("#prfTermin tr").each(function(i,v){
// if(i !== 0)
// {
$(v).remove();
// }
$(v).remove();
});
}
/**
* Aktualisiert die Daten einer Prüfung in der Datenbank
* @param {int} prfId ID der Prüfung
* @returns {void}
*/
function updatePruefung(prfId)
{
$("#modalOverlay").addClass("modalOverlay");
@@ -1464,6 +1504,12 @@ function updatePruefung(prfId)
}
}
/**
* Löscht eine Lehrveranstaltung von einer Prüfung
* @param {int} lvId ID der Lehrveranstaltung
* @param {int} pruefung_id ID der Prüfung
* @returns {void}
*/
function deleteLehrveranstaltungFromPruefung(lvId, pruefung_id)
{
$.ajax({
@@ -1483,10 +1529,14 @@ function deleteLehrveranstaltungFromPruefung(lvId, pruefung_id)
}
}).complete(function(){
loadPruefungsDetails(pruefung_id);
// loadAllPruefungen();
});
}
/**
* Storniert eine Prüfung
* @param {int} pruefung_id ID der Prüfung
* @returns {void}
*/
function stornoPruefung(pruefung_id)
{
$("#modalOverlay").addClass("modalOverlay");
@@ -1510,6 +1560,12 @@ function stornoPruefung(pruefung_id)
});
}
/**
* Löscht einen Termin
* @param {int} pruefung_id ID der Prüfung
* @param {int} pruefungstermin_id ID des Prüfungstermines
* @returns {undefined}
*/
function terminLoeschen(pruefung_id, pruefungstermin_id)
{
$.ajax({
@@ -1537,6 +1593,10 @@ function terminLoeschen(pruefung_id, pruefungstermin_id)
});
}
/**
* Lädt alle Prüfungen
* @returns {void}
*/
function loadAllPruefungen()
{
var uid = $("#mitarbeiter_uid").val();
@@ -1578,9 +1638,6 @@ function loadAllPruefungen()
});
}).complete(function(event, xhr, settings){
// $("#prfTable").tablesorter({
// widgets: ["zebra"]
// });
if($("#prfTable")[0].hasInitialized !== true)
{
$("#prfTable").tablesorter({
@@ -1597,6 +1654,12 @@ function loadAllPruefungen()
});
}
/**
* Prüft die Daten eines Termins auf deren Richtigkeit
* Prüft ob die Beginnzeit vor der Endzeit liegt und ob beide Daten in der Zukunft liegen.
* @param {Object} termin Object mit den Attributen datum (DD.MM.YYYY), beginn (HH:mm) und ende (HH:mm)
* @returns {Boolean} TRUE, wenn die Daten korrekt sind, ansonsten FALSE
*/
function checkTermin(termin)
{
var aktTime = new Date();
@@ -1614,6 +1677,12 @@ function checkTermin(termin)
return true;
}
/**
* Formatiert eine Datum von String in eine Date-Objekt
* @param {string} datum Ein Datum als String im Format "DD.MM.YYYY"
* @param {string} time eine Uhrzeit als String im Format " HH:mm:ss"
* @returns {Date} Dateobjekt
*/
function stringToDate(datum, time)
{
datum = datum.split(".");
@@ -1622,6 +1691,10 @@ function stringToDate(datum, time)
return time;
}
/**
* Setzt die Oberfläche der Prüfungsverwaltung auf den Ausgangszustand zurück
* @returns {void}
*/
function resetPruefungsverwaltung()
{
loadAllPruefungen();
@@ -1636,40 +1709,36 @@ function resetPruefungsverwaltung()
$("#buttonSave").attr("onclick", "savePruefungstermin();");
}
/**
* Prüft ob eine Zahl "min" kleiner als eine Zahl "max" ist.
* @param {String} min
* @param {String} max
* @returns {Boolean} TRUE, wenn min kleiner als max ist und beide einen positiven Wert haben
*/
function checkMinMaxTeilnehmer(min, max)
{
// console.log(isNum(min));
// console.log(isNum(max));
console.log(parseInt(min));
min = parseInt(min);
max = parseInt(max);
console.log(min+max);
if(((min !== null) && (max !== null)) && ((min !== "") && (max !== "")))
{
console.log(0);
min = parseInt(min);
max = parseInt(max);
if(max < min)
{
console.log(1);
return false;
}
if(max < 0)
{
console.log(2);
return false;
}
if(min < 0)
{
console.log(3);
return false;
}
if(isNaN(min))
{
console.log(4);
return false;
}
if(isNaN(max))
{
console.log(5);
return false;
}
}
@@ -52,9 +52,6 @@ switch($method)
case 'stornoAnmeldung':
$data = stornoAnmeldung($uid);
break;
// case 'getPruefungMitarbeiter':
// $data = getPruefungMitarbeiter($uid);
// break;
case 'getAnmeldungenTermin':
$data = getAnmeldungenTermin();
break;
@@ -312,14 +309,10 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$anmeldung->uid = $uid;
$anmeldung->reihung = $reihung+1;
$anmeldung->status_kurzbz = "angemeldet";
// $studiensemester_kurbz = $_REQUEST['studiensemester_kurzbz'];
$lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]);
$konto = new konto();
$creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester);
// $creditpoints = 1.5;
if($creditpoints !== false)
{
if($creditpoints < $lehrveranstaltung->ects)
@@ -452,46 +445,7 @@ function stornoAnmeldung($uid = null)
return $data;
}
/**
* Lädt alle Prüfungen eines Lektors/Mitarbeiters
* @param type $uid UID des Lektors/Mitarbeiters
* @return Array
*/
//function getPruefungMitarbeiter($uid = null)
//{
// $lehrveranstaltung = new lehrveranstaltung();
// if($uid !== null)
// {
// $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
@@ -36,11 +36,6 @@ $db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
//TODO Berechtigung
//if(!$rechte->isBerechtigt('lehre/pruefungsanmeldung'))
// die('Sie haben keine Berechtigung für diese Seite');
$lehrveranstaltung = new lehrveranstaltung();
$lehrveranstaltung->load_lva_student($uid);
@@ -221,7 +216,6 @@ $benutzer = new student($uid);
<td>
<input type="hidden" id="lehrveranstaltungHidden" disabled="true">
<input type="hidden" id="terminHidden" disabled="true">
<!--<input type="hidden" id="studiensemesterHidden" value="<?php // echo $studiensemester->getakt(); ?>" disabled="true">-->
</td>
</tr>
<tr>
@@ -31,9 +31,8 @@ $db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
//TODO Berechtigung
//if(!$rechte->isBerechtigt('lehre/pruefungsanmeldung'))
// die('Sie haben keine Berechtigung für diese Seite');
if(!$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
die('Sie haben keine Berechtigung für diese Seite');
?>
<html>
@@ -201,7 +200,6 @@ $rechte->getBerechtigungen($uid);
<script>
$(document).ready(function(){
loadStudiengaenge();
// loadPruefungenMitarbeiter();
});
</script>
<h1>Anmeldungen Verwalten</h1>
@@ -0,0 +1,247 @@
/* 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: Stefan Puraner <puraner@technikum-wien.at>
*/
/**
* Error-Behandlung bei Ajax Requests
*/
function loadError(xhr, textStatus, errorThrown)
{
if(xhr.status==200)
alert('Fehler:'+xhr.responseText);
else
alert('Fehler beim Laden der Daten. ErrorNr:'+xhr.status);
}
/**
* Lädt alle Prüfungen eines Mitarbeiters
* @returns {undefined}
*/
function loadPruefungenMitarbeiter()
{
var uid = $("#mitarbeiter_uid").val();
$.ajax({
dataType: 'json',
url: "./pruefungsbewertung.json.php",
type: "POST",
data: {
method: "getPruefungMitarbeiter",
mitarbeiter_uid: uid
},
error: loadError
}).success(function(data){
$("#pruefungen").find("h2").first().text("Prüfungen ("+uid+")");
if(data.error === 'false')
{
var liste = "";
data.result.forEach(function(e){
liste += "<li>"+e.bezeichnung+"<ul>";
e.pruefung.lehrveranstaltungen.forEach(function(d)
{
d.pruefung.termine.forEach(function(f){
liste += "<li> <a onclick='showTeilnehmer(\""+f.pruefungstermin_id+"\", \""+e.lehrveranstaltung_id+"\", \""+e.bezeichnung+"\", \""+convertDateTime(f.von)+"\");'>"+convertDateTime(f.von)+"</a></li>";
});
})
liste += "</li></ul>";
});
$("#pruefungenListe").html(liste);
}
else
{
$("#pruefungenListe").html(data.errormsg);
}
});
}
/**
* Lädt die Anmeldungen zu einer Prüfung
* @param {type} pruefungstermin_id ID des Prüfungstermins
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
* @returns {undefined}
*/
function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstaltung, datum)
{
$("#modalOverlay").addClass("modalOverlay");
$("#anmeldeDaten").empty();
$("#anmeldungen").children("h2").text("Bewertungen zu "+lehrveranstaltung+" ("+datum+")");
var noten = "<select onchange='markAsUnsaved(this);'>";
$.ajax({
dataType: 'json',
url: "./pruefungsbewertung.json.php",
type: "POST",
data: {
method: "getNoten"
},
error: loadError
}).success(function(data){
data.result.forEach(function(d)
{
noten += "<option value="+d.note+">"+d.bezeichnung+"</option>";
});
noten += "</select>";
}).complete(function(event, xhr, settings){
var notenSelect = noten;
$.ajax({
dataType: 'json',
url: "./pruefungsbewertung.json.php",
type: "POST",
data: {
method: "getAnmeldungenTermin",
pruefungstermin_id: pruefungstermin_id,
lehrveranstaltung_id: lehrveranstaltung_id
},
error: loadError
}).success(function(data){
var entry = "";
if(data.error === "false")
{
data.result.forEach(function(d)
{
if(d.status_kurzbz === "bestaetigt")
{
var datum = d.von.split(" ");
if(d.pruefung.note===null)
{
entry = "<div class='anmeldung' id="+d.student.uid+"><div>"+d.student.vorname+" "+d.student.nachname+"</div>"+notenSelect+"<input type='button' onclick='saveBeurteilung(this,\""+datum[0]+"\",\""+d.pruefungsanmeldung_id+"\",\""+d.pruefung_id+"\",\""+d.lehrveranstaltung_id+"\");' value='speichern'/></div>";
}
else
{
entry = "<div class='anmeldung' id="+d.student.uid+"><div>"+d.student.vorname+" "+d.student.nachname+"</div>"+notenSelect+"<input type='button' onclick='updateBeurteilung(this,\""+d.pruefung.pruefung_id+"\");' value='speichern'/></div>";
}
$("#anmeldeDaten").append(entry);
if(d.pruefung.note!==null)
{
markAsSaved(document.getElementById(d.student.uid).firstChild);
$("#"+d.student.uid).find("select").val(d.pruefung.note);
}
else
{
markAsUnsaved(document.getElementById(d.student.uid).firstChild);
}
}
});
if(entry === "")
{
entry = "<div><div>Keine Anmeldungen vorhanden.</div></div>";
$("#anmeldeDaten").html(entry);
}
}
else
{
entry = "<div><div>"+data.errormsg+"</div></div>";
$("#anmeldeDaten").html(entry);
}
}).complete(function(event, xhr, settings){
$("#modalOverlay").removeClass("modalOverlay");
});
});
}
/**
* Speichert eine Beurteilung
* @param {type} ele Element das die Funtkion aufruft
* @param {type} datum
* @param {type} pruefungsanmeldung_id ID der Anmeldung
* @param {type} pruefung_id ID der Prüfung
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
* @returns {void}
*/
function saveBeurteilung(ele, datum, pruefungsanmeldung_id, pruefung_id, lehrveranstaltung_id)
{
var student_uid = $(ele).parent().attr("id");
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
var note = $(ele).parent().find("select").val();
var anmerkung = "";
$.ajax({
dataType: 'json',
url: "./pruefungsbewertung.json.php",
type: "POST",
data: {
method: "saveBeurteilung",
pruefung_id: pruefung_id,
lehrveranstaltung_id: lehrveranstaltung_id,
student_uid: student_uid,
mitarbeiter_uid: mitarbeiter_uid,
note: note,
//TODO Datum der Prüfung oder der Beurteilung?????
datum: datum,
anmerkung: anmerkung,
pruefungsanmeldung_id: pruefungsanmeldung_id
},
error: loadError
}).success(function(data){
markAsSaved(ele);
$(ele).attr("onclick", "updateBeurteilung(this,\""+data.result+"\")");
}).complete(function(event, xhr, settings){
});
}
/**
* Aktualisiert eine Beurteilung
* @param {type} ele Element das die Funtkion aufruft
* @param {type} pruefung_id ID der Prüfung
* @returns {undefined}
*/
function updateBeurteilung(ele, pruefung_id)
{
var student_uid = $(ele).parent().attr("id");
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
var note = $(ele).parent().find("select").val();
var anmerkung = "";
$.ajax({
dataType: 'json',
url: "./pruefungsbewertung.json.php",
type: "POST",
data: {
method: "updateBeurteilung",
pruefung_id: pruefung_id,
note: note,
anmerkung: anmerkung
},
error: loadError
}).success(function(data){
markAsSaved(ele);
}).complete(function(event, xhr, settings){
});
}
/**
* Markiert einen Datensatz als gespeichert
* @param {type} ele Element das die Funtkion aufruft
* @returns {undefined}
*/
function markAsSaved(ele)
{
$(ele).parent().removeClass("unsaved");
$(ele).parent().addClass("saved");
}
/**
* Markiert einen Datensatz als ungespeichert
* @param {type} ele Element das die Funtkion aufruft
* @returns {undefined}
*/
function markAsUnsaved(ele)
{
$(ele).parent().removeClass("saved");
$(ele).parent().addClass("unsaved");
}
@@ -0,0 +1,285 @@
<?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/studiensemester.class.php');
require_once('../../../../include/note.class.php');
require_once('../../../../include/pruefung.class.php');
require_once('../../../../include/pruefungsanmeldung.class.php');
require_once('../../../../include/student.class.php');
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$studiensemester = new studiensemester();
$aktStudiensemester = $studiensemester->getakt();
$method = isset($_REQUEST['method'])?$_REQUEST['method']:'';
switch($method)
{
case 'getPruefungMitarbeiter':
if($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
{
$mitarbeiter_uid = $_REQUEST["mitarbeiter_uid"];
}
else
{
$mitarbeiter_uid = $uid;
}
$data = getPruefungMitarbeiter($mitarbeiter_uid);
break;
case 'getNoten':
$data = getNoten();
break;
case 'saveBeurteilung':
$lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"];
$student_uid = $_REQUEST["student_uid"];
if($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
{
$mitarbeiter_uid = $_REQUEST["mitarbeiter_uid"];
}
else
{
$mitarbeiter_uid = $uid;
}
$note = $_REQUEST["note"];
$pruefung_id = $_REQUEST["pruefung_id"];
$datum = $_REQUEST["datum"];
$anmerkung = $_REQUEST["anmerkung"];
$pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"];
$data = saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $note, $pruefung_id, $datum, $anmerkung, $pruefungsanmeldung_id, $uid);
break;
case 'updateBeurteilung':
$pruefung_id = $_REQUEST["pruefung_id"];
$note = $_REQUEST["note"];
$data = updateBeurteilung($pruefung_id, $note, $uid);
break;
case 'loadPruefung':
$pruefung_id=$_REQUEST["pruefung_id"];
$data = loadPruefung($pruefung_id);
break;
case 'getBeurteilung':
$pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"];
$data = getBeurteilung($pruefungsanmeldung_id);
break;
case 'getAnmeldungenTermin':
$lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"];
$pruefungstermin_id = $_REQUEST["pruefungstermin_id"];
$data = getAnmeldungenTermin($lehrveranstaltung_id, $pruefungstermin_id);
break;
default:
break;
}
echo json_encode($data);
/**
* Lädt alle Prüfungen eines Lektors/Mitarbeiters
* @param type $uid UID des Lektors/Mitarbeiters
* @return Array
*/
function getPruefungMitarbeiter($uid = null)
{
$lehrveranstaltung = new lehrveranstaltung();
if($uid !== null)
{
$lehrveranstaltung->getLVByMitarbeiter($uid);
$result = array();
foreach($lehrveranstaltung->lehrveranstaltungen as $lv)
{
$pruefung = new pruefungCis();
$pruefung->getPruefungByLv($lv->lehrveranstaltung_id);
if(!empty($pruefung->lehrveranstaltungen))
{
foreach($pruefung->lehrveranstaltungen as $tempLv)
{
$prf = new pruefungCis($tempLv->pruefung_id);
$prf->getTermineByPruefung();
$tempLv->pruefung = $prf;
}
$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 Noten per AJAX aus der Datenbank
* @return Array
*/
function getNoten()
{
$note = new note();
if($note->getAll())
{
$data['result']=$note->result;
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['error']='true';
$data['errormsg']=$note->errormsg;
}
return $data;
}
/**
* Speichert eine Beurteilung
* @param int $lehrveranstaltung_id ID der Lehrveranstaltung
* @param String $student_uid UID des Studenten
* @param String $mitarbeiter_uid UID des Lektors
* @param int $note Prüfungsnote
* @param int $pruefung_id ID der Prüfung
* @param String $datum Datum (YYYY-MM-DD)
* @param String $anmerkung Anmerkung zur Beurteilung
* @param int $pruefungsanmeldung_id ID der Anmeldung
* @param String $uid UID des aktuellen Benutzers
* @return Arrray
*/
function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $note, $pruefung_id, $datum, $anmerkung, $pruefungsanmeldung_id, $uid)
{
$pruefungCis = new pruefungCis($pruefung_id);
$lehrveranstaltung = new lehrveranstaltung();
$lehreinheiten = $lehrveranstaltung->getLehreinheitenOfLv($lehrveranstaltung_id, $student_uid);
$pruefung = new pruefung();
$pruefung->new = true;
$pruefung->lehreinheit_id = $lehreinheiten[0];
$pruefung->student_uid = $student_uid;
$pruefung->mitarbeiter_uid = $mitarbeiter_uid;
$pruefung->note = $note;
$pruefung->pruefungstyp_kurzbz = $pruefungCis->pruefungstyp_kurzbz;
$pruefung->datum = $datum;
$pruefung->anmerkung = $anmerkung;
$pruefung->pruefungsanmeldung_id = $pruefungsanmeldung_id;
$pruefung->insertvon = $uid;
$pruefung->insertamum = date('Y-m-d H:i:s');
if($pruefung->save())
{
$data['result']=$pruefung->pruefung_id;
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['error']='true';
$data['errormsg']=$pruefung->errormsg;
}
return $data;
}
/**
* Aktualisiert den Datensatz einer Beurteilung
* @param int $pruefung_id ID der Prüfung
* @param int $note Prüfungsnote
* @param String $uid UID des aktuellen Benutzers
* @return Array
*/
function updateBeurteilung($pruefung_id, $note, $uid)
{
$pruefung = new pruefung($pruefung_id);
$pruefung->new = FALSE;
$pruefung->note = $note;
$pruefung->updatevon = $uid;
$pruefung->updateamum = date('Y-m-d H:i:s');
if($pruefung->save())
{
$data['result']=$pruefung->pruefung_id;
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['error']='true';
$data['errormsg']=$pruefung->errormsg;
}
return $data;
}
/**
* Lädt die Beurteilung zu einer Anmeldung
* @param int $pruefungsanmeldung_id ID einer Anmeldung
* @return Array
*/
function getBeurteilung($pruefungsanmeldung_id)
{
$pruefung = new pruefung();
if($pruefung->getPruefungByAnmeldung($pruefungsanmeldung_id))
{
$data['result']=$pruefung->pruefung_id;
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['error']='true';
$data['errormsg']=$pruefung->errormsg;
}
return $data;
}
/**
* Lädt alle Anmeldungen zu einem Prüfungstermin
* @return Array
*/
function getAnmeldungenTermin($lehrveranstaltung_id, $pruefungstermin_id)
{
$pruefungsanmeldung = new pruefungsanmeldung();
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id);
foreach($anmeldungen as $a)
{
$student = new student($a->uid);
$temp = new stdClass();
$temp->vorname = $student->vorname;
$temp->nachname = $student->nachname;
$temp->uid = $student->uid;
$a->student = $temp;
$pruefung = new pruefung();
$pruefung->getPruefungByAnmeldung($a->pruefungsanmeldung_id);
$a->pruefung = $pruefung;
}
if(!empty($anmeldungen))
{
$data['result']=$anmeldungen;
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['error']='true';
if($pruefungsanmeldung->errormsg !== null)
{
$data['errormsg']=$pruefungsanmeldung->errormsg;
}
else
{
$data['errormsg']= 'Keine Anmeldungen vorhanden';
}
}
return $data;
}
@@ -0,0 +1,256 @@
<!DOCTYPE html>
<?php
/*
* Copyright 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
* Authors: Stefan Puraner <puraner@technikum-wien.at>
*/
require_once('../../../../config/cis.config.inc.php');
require_once('../../../../include/functions.inc.php');
require_once('../../../../include/benutzerberechtigung.class.php');
require_once('../../../../include/studiensemester.class.php');
require_once('../../../../include/datum.class.php');
require_once('../../../../include/pruefungsfenster.class.php');
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/mitarbeiter.class.php');
$uid = get_uid();
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
die('Sie haben keine Berechtigung für diese Seite');
?>
<html>
<head>
<meta charset="UTF-8">
<title>Prüfungsbewertung</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>
<script src="./pruefungsbewertung.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">
body {
padding: 10px 0 0 10px;
}
#prfWrapper {
position: absolute;
height: 80%;
width: 300px;
padding: 1.8em 1.5em 1.8em 1em;
border-radius: 25px;
/*border: 1px solid black;*/
box-shadow: 0em 0em 2em 0.5em #888888 inset;
}
#pruefungen {
/*border: 1px solid black;*/
width: 94%;
position: relative;
float: left;
padding: 0 1em 0em 1em;
height: 100%;
overflow: auto;
overflow-x: hidden;
}
#anmWrapper {
position: absolute;
/*top: 45px;*/
left: 360px;
width: 600px;
height: 80%;
padding: 1.8em 1.5em 1.8em 1em;
border-radius: 25px;
/*border: 1px solid black;*/
box-shadow: 0em 0em 2em 0.5em #888888 inset;
}
#anmeldungen {
height: 100%;
overflow: auto;
overflow-x: hidden;
}
#anmeldungen > div, h2 {
padding: 0.5em;
}
#message {
position: fixed;
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 */
}
.anmeldung {
font-size: 1.2em;
border-bottom: 1px solid black;
height: 1.8em;
clear: both;
padding: 0.5em 0 0 0.5em;
}
.anmeldung > *{
margin: 0 1em 0 0;
float: left;
}
.anmeldung:last-child {
clear: both;
}
.anmeldung div:first-child {
width: 250px;
height: 100%;
}
.saved {
background-color: green;
}
.unsaved {
background-color: red;
}
#wrapper {
display: none;
}
#lektor {
margin: 0 0 1em 0;
}
</style>
</head>
<body>
<script>
$(document).ready(function() {
var isFormHidden = true;
$("#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;
$("#wrapper").slideToggle("slow");
}
loadPruefungenMitarbeiter();
}
});
});
</script>
<div>
<h1>Prüfungsbewertung</h1>
<div>
<?php
if(!$rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
{
echo '<input id="mitarbeiter_uid" type="hidden" value="'.$uid.'"/>
<script>
$(document).ready(function() {
$("#wrapper").attr("style", "display: block");
loadPruefungenMitarbeiter();
});
</script>';
}
else
{
echo '<span width="116px">Lektor: </span>';
echo '<input placeholder="UID" type="text" id="lektor" value="" size="30"/>';
echo '<input type="hidden" id="uid" value="" />';
echo '<input type="hidden" id="mitarbeiter_uid" value="" />';
}
?>
</div>
<div id="wrapper">
<div id='prfWrapper'>
<div id='pruefungen'>
<h2>Prüfungen</h2>
<ul id="pruefungenListe">
</ul>
</div>
</div>
<div id='anmWrapper'>
<div id="anmeldungen">
<h2>Anmeldungen</h2>
<div id="anmeldeDaten">
</div>
</div>
</div>
</div>
<div id="message"></div>
<div id="progressbar"></div>
<div id="modalOverlay"></div>
</div>
</body>
</html>
@@ -35,9 +35,6 @@ $db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
/**
* TODO
*/
if(!$rechte->isBerechtigt('lehre/pruefungsfenster'))
die('Sie haben keine Berechtigung für diese Seite');
@@ -49,7 +49,7 @@ 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;
if($rechte->isBerechtigt('lehre/pruefungsterminAll'))
if($rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
{
$mitarbeiter_uid = $_REQUEST["mitarbeiter_uid"];
}
@@ -76,7 +76,7 @@ switch($method)
$lehrveranstaltungen = isset($_POST["lehrveranstaltungen"]) ? $_POST["lehrveranstaltungen"] : null;
$termine = isset($_POST["termine"])?$_POST["termine"]:null;
$termineNeu = isset($_POST["termineNeu"])?$_POST["termineNeu"]:null;
if($rechte->isBerechtigt('lehre/pruefungsterminAll'))
if($rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
{
$mitarbeiter_uid = $_REQUEST["mitarbeiter_uid"];
}
@@ -101,7 +101,7 @@ switch($method)
$data = deleteTermin($pruefung_id, $pruefungstermin_id);
break;
case 'getAllPruefungen':
if($rechte->isBerechtigt('lehre/pruefungsterminAll'))
if($rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
{
$data = getAllPruefungen($_REQUEST["uid"]);
}
@@ -116,7 +116,11 @@ switch($method)
echo json_encode($data);
/**
* Lädt alle Prüfungstypen aus der Datenbank
* @param boolean $abschluss Gibt an ob Prüfungstypen einer Abschlussprüfunge geladen werden sollen oder nicht
* @return Array
*/
function loadPruefungstypen($abschluss)
{
$pruefungstermin = new pruefungstermin();
@@ -135,6 +139,11 @@ function loadPruefungstypen($abschluss)
return $data;
}
/**
* Lädt alle Studiensemester aus der Datenbank
* @param String $aktStudiensemester das Aktuelle Studiensemester
* @return Array
*/
function loadStudiensemester($aktStudiensemester = null)
{
$studiensemester = new studiensemester();
@@ -156,6 +165,11 @@ function loadStudiensemester($aktStudiensemester = null)
return $data;
}
/**
* Lädt alle Prüfungsfenster eines Studiensemesters
* @param String $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
* @return Array
*/
function getPruefungsfensterByStudiensemester($studiensemester_kurzbz)
{
$pruefungsfenster = new pruefungsfenster();
@@ -173,6 +187,20 @@ function getPruefungsfensterByStudiensemester($studiensemester_kurzbz)
return $data;
}
/**
* Speichet einen Prüfungstermin
* @param int $uid UID des Lektors
* @param String $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
* @param int $pruefungsfenster_id ID des Prüfungsfensters
* @param String $pruefungstyp_kurzbz Kurzbezeichnung des Prüfungstyps
* @param String $titel Titel der Prüfung
* @param String $beschreibung Beschreibung zur Prüfung
* @param String $methode Methode der Prüfung
* @param boolen $einzeln TRUE, wenn Einzelprüfung
* @param Array $lehrveranstaltungen Lehrveranstaltungen zur Prüfung
* @param Array $termine Termine zur Prüfung
* @return Array
*/
function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine)
{
if($lehrveranstaltungen === null)
@@ -268,6 +296,12 @@ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id
return $data;
}
/**
* Lädt alle Lehrveranstaltungen eines Mitarbeiters
* @param int $mitarbeiter_uid UID des Mitarbeiters
* @param String $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
* @return Array
*/
function getLehrveranstaltungenByMitarbeiter($mitarbeiter_uid, $studiensemester_kurzbz)
{
$lehrveranstaltung = new lehrveranstaltung();
@@ -291,6 +325,21 @@ function getLehrveranstaltungenByMitarbeiter($mitarbeiter_uid, $studiensemester_
return $data;
}
/**
* Speichet einen Prüfungstermin
* @param int $uid UID des Lektors
* @param String $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
* @param int $pruefungsfenster_id ID des Prüfungsfensters
* @param String $pruefungstyp_kurzbz Kurzbezeichnung des Prüfungstyps
* @param String $titel Titel der Prüfung
* @param String $beschreibung Beschreibung zur Prüfung
* @param String $methode Methode der Prüfung
* @param boolen $einzeln TRUE, wenn Einzelprüfung
* @param Array $lehrveranstaltungen Lehrveranstaltungen zur Prüfung
* @param Array $termine Termine zur Prüfung (bestehende)
* @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)
{
$pruefungsfenster = new pruefungsfenster();
@@ -370,11 +419,6 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru
$pruefung->termine = $termineArray;
}
$pruefung->mitarbeiter_uid = $uid;
$pruefung->studiensemester_kurzbz = $studiensemester_kurzbz;
$pruefung->pruefungsfenster_id = $pruefungsfenster_id;
@@ -410,6 +454,12 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru
return $data;
}
/**
* Löscht Lehrveranstaltungen von einer Prüfung
* @param int $lvId ID der Lehrveranstaltung
* @param int $pruefung_id ID der Prüfung
* @return Array
*/
function deleteLehrveranstaltungFromPruefung($lvId, $pruefung_id)
{
$pruefung = new pruefungCis();
@@ -428,6 +478,11 @@ function deleteLehrveranstaltungFromPruefung($lvId, $pruefung_id)
return $data;
}
/**
* Storniert eine Prüfung
* @param int $pruefung_id ID der Prüfung
* @return Array
*/
function stornoPruefung($pruefung_id)
{
$pruefung = new pruefungCis();
@@ -445,6 +500,12 @@ function stornoPruefung($pruefung_id)
return $data;
}
/**
* Löscht einen Termin einer Prüfung
* @param int $pruefung_id ID der Prüfung
* @param int $pruefungstermin_id ID des Termins
* @return Array
*/
function deleteTermin($pruefung_id, $pruefungstermin_id)
{
$pruefung = new pruefungCis();
@@ -463,6 +524,11 @@ function deleteTermin($pruefung_id, $pruefungstermin_id)
return $data;
}
/**
* Lädt alle Prüfungen eines Mitarbeiters
* @param String $mitarbeiter_uid UID des Mitarbeiters
* @return Array
*/
function getAllPruefungen($mitarbeiter_uid)
{
$pruefung = new pruefungCis();
@@ -491,6 +557,12 @@ function getAllPruefungen($mitarbeiter_uid)
return $data;
}
/**
* Überprüft ob das angegebene Datum innerhalb eines Prüfungsfensters ist
* @param int $pruefungsfenster_id ID des Prüfungsfensters
* @param String $datum
* @return boolean
*/
function checkTerminPruefungsfenster($pruefungsfenster_id, $datum)
{
$pruefungsfenster = new pruefungsfenster($pruefungsfenster_id);
@@ -502,6 +574,13 @@ function checkTerminPruefungsfenster($pruefungsfenster_id, $datum)
return false;
}
/**
* Überprüft ob es eine Kollision zu anderen Prüfungen des Mitarbeiters gibt
* @param String $uid UID des Mitarbeiters
* @param String $beginn Beginn des Termins
* @param String $ende Ende des Termins
* @return boolean
*/
function checkCollision($uid, $beginn, $ende)
{
$collision = false;
@@ -132,7 +132,7 @@ if(!$rechte->isBerechtigt('lehre/pruefungstermin'))
<table>
<tr>
<?php
if(!$rechte->isBerechtigt('lehre/pruefungsterminAll'))
if(!$rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
{
echo '<input id="mitarbeiter_uid" type="hidden" value="'.$uid.'"/>
<script>
+38 -1
View File
@@ -1937,7 +1937,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->semesterwochen = $row->semesterwochen;
$lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe;
$lv_obj->farbe = $row->farbe;
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -2048,5 +2048,42 @@ class lehrveranstaltung extends basis_db
return false;
}
}
/**
* Lädt alle Lehreinheit_IDs eine Lehrveranstaltung (optional mit Studiensemester)
* @param integer $lehrveranstaltung_id ID der Lehrveranstaltung
* @param string $uid UID eines Studenten
* @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
* @return boolean|array false, wenn eine Fehler auftritt; Array mit UIDs wenn erfolgreich
*/
public function getLehreinheitenOfLv($lehrveranstaltung_id, $uid, $studiensemester_kurzbz=null)
{
if(!is_numeric($lehrveranstaltung_id))
{
$this->errormsg = "Lehrveranstaltung ID muss eine gültige Zahl sein.";
return false;
}
$qry = 'SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung WHERE '
. 'lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id)
. ' AND uid='.$this->db_add_param($uid);
if(!is_null($studiensemester_kurzbz))
{
$qry .= ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz);
}
$qry .= ' ORDER BY lehreinheit_id;';
if($this->db_query($qry))
{
$result = array();
while($row = $this->db_fetch_object())
{
array_push($result, $row->lehreinheit_id);
}
return $result;
}
return false;
}
}
?>
+416 -367
View File
@@ -24,381 +24,430 @@ require_once(dirname(__FILE__).'/basis_db.class.php');
class pruefung extends basis_db
{
public $new; // boolean
public $result = array(); // pruefung Objekt
public $new; // boolean
public $result = array(); // pruefung Objekt
public $pruefung_id;
public $lehreinheit_id; // integer
public $student_uid; // varchar(16)
public $mitarbeiter_uid; // varchar(16)
public $note; // smallint
public $pruefungstyp_kurzbz; // varchar(16)
public $datum; // Date
public $anmerkung; // varchar(256)
public $insertamum; // timestamp)
public $insertvon; // varchar(16)
public $updateamum; // timestamp
public $updatevon; // varchar(16)
public $ext_id; // bigint
public $pruefung_id;
public $lehreinheit_id; // integer
public $student_uid; // varchar(16)
public $mitarbeiter_uid; // varchar(16)
public $note; // smallint
public $pruefungstyp_kurzbz; // varchar(16)
public $datum; // Date
public $anmerkung; // varchar(256)
public $insertamum; // timestamp)
public $insertvon; // varchar(16)
public $updateamum; // timestamp
public $updatevon; // varchar(16)
public $ext_id; // bigint
public $pruefungsanmeldung_id; // bigint
public $lehrveranstaltung_bezeichnung;
public $lehrveranstaltung_id;
public $note_bezeichnung;
public $pruefungstyp_beschreibung;
public $studiensemester_kurzbz;
public $lehrveranstaltung_bezeichnung;
public $lehrveranstaltung_id;
public $note_bezeichnung;
public $pruefungstyp_beschreibung;
public $studiensemester_kurzbz;
/**
* Konstruktor
* @param pruefung_id ID der zu ladenden Pruefung
*/
public function __construct($pruefung_id=null)
/**
* Konstruktor
* @param pruefung_id ID der zu ladenden Pruefung
*/
public function __construct($pruefung_id=null)
{
parent::__construct();
if($pruefung_id!=null)
$this->load($pruefung_id);
}
/**
* Laedt einen Pr&uuml;fungsdatensatz
* @param pruefung_id ID
* @return true wenn ok, false im Fehlerfall
*/
public function load($pruefung_id)
{
if(!is_numeric($pruefung_id))
{
$this->errormsg = 'pruefung_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT tbl_pruefung.*, tbl_lehreinheit.lehrveranstaltung_id, tbl_lehreinheit.studiensemester_kurzbz as studiensemester_kurzbz
FROM lehre.tbl_pruefung JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) WHERE pruefung_id=$pruefung_id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->pruefung_id = $row->pruefung_id;
$this->lehreinheit_id=$row->lehreinheit_id;
$this->student_uid=$row->student_uid;
$this->mitarbeiter_uid=$row->mitarbeiter_uid;
$this->note=$row->note;
$this->pruefungstyp_kurzbz=$row->pruefungstyp_kurzbz;
$this->datum=$row->datum;
$this->anmerkung=$row->anmerkung;
$this->insertamum=$row->insertamum;
$this->insertvon=$row->insertvon;
$this->updateamum=$row->updateamum;
$this->updatevon=$row->updatevon;
$this->ext_id=$row->ext_id;
$this->pruefungsanmeldung_id=$row->pruefungsanmeldung_id;
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
}
}
else
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
return true;
}
/**
* Liefert alle Pruefungen
* @return true wenn ok, false im Fehlerfall
*/
public function getAll($order=null, $student=null)
{
$qry = 'SELECT * FROM lehre.tbl_pruefung';
if ($student)
$qry.=' WHERE student ="'.addslashes($student).'"';
if($order!=null)
$qry .=" ORDER BY $order";
if(!$this->db_query($qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = $this->db_fetch_object())
{
$pruef_obj = new pruefung();
$pruef_obj->lehreinheit_id=$row->lehreinheit_id;
$pruef_obj->student_uid=$row->student_uid;
$pruef_obj->mitarbeiter_uid=$row->mitarbeiter_uid;
$pruef_obj->note=$row->note;
$pruef_obj->pruefungstyp_kurzbz=$row->pruefungstyp_kurzbz;
$pruef_obj->datum=$row->datum;
$pruef_obj->anmerkung=$row->anmerkung;
$pruef_obj->insertamum=$row->insertamum;
$pruef_obj->insertvon=$row->insertvon;
$pruef_obj->updateamum=$row->updateamum;
$pruef_obj->updatevon=$row->updatevon;
$pruef_obj->ext_id=$row->ext_id;
$pruef_obj->pruefungsanmeldung_id=$row->pruefungsanmeldung_id;
$this->result[] = $pruef_obj;
}
return true;
}
/**
* Loescht eine Pruefung
* @param $preufung_id ID der zu loeschenden Pruefung
* @return true wenn ok, false im Fehlerfall
*/
public function delete($pruefung_id)
{
if(!is_numeric($pruefung_id))
{
$this->errormsg = 'Pruefung_id ist ungueltig';
return false;
}
$qry = "DELETE FROM lehre.tbl_pruefung WHERE pruefung_id='$pruefung_id'";
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Loeschen der Pruefung';
return false;
}
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
public function validate()
{
//Laenge Pruefen
if(mb_strlen($this->anmerkung)>256)
{
$this->errormsg = 'Anmerkung darf nicht laenger als 256 Zeichen sein';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
public function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->validate())
{
return false;
}
if($this->new)
{
//Neuen Datensatz anlegen
$qry = 'BEGIN;INSERT INTO lehre.tbl_pruefung (lehreinheit_id, student_uid, mitarbeiter_uid, note, pruefungstyp_kurzbz, datum, anmerkung, insertamum, insertvon, updateamum, updatevon, ext_id, pruefungsanmeldung_id) VALUES ('.
$this->addslashes($this->lehreinheit_id).', '.
$this->addslashes($this->student_uid).', '.
$this->addslashes($this->mitarbeiter_uid).', '.
$this->addslashes($this->note).', '.
$this->addslashes($this->pruefungstyp_kurzbz).', '.
$this->addslashes($this->datum).', '.
$this->addslashes($this->anmerkung).', '.
$this->addslashes($this->insertamum).', '.
$this->addslashes($this->insertvon).', '.
$this->addslashes($this->updateamum).', '.
$this->addslashes($this->updatevon).', '.
$this->addslashes($this->ext_id).', '.
$this->addslashes($this->pruefungsanmeldung_id).');';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob pruefung_id gueltig ist
if(!is_numeric($this->pruefung_id))
{
$this->errormsg = 'pruefung_id ist ungueltig.';
return false;
}
$qry = 'UPDATE lehre.tbl_pruefung SET '.
'lehreinheit_id='.$this->addslashes($this->lehreinheit_id).', '.
'student_uid='.$this->addslashes($this->student_uid).', '.
'mitarbeiter_uid='.$this->addslashes($this->mitarbeiter_uid).', '.
'note='.$this->addslashes($this->note).', '.
'pruefungstyp_kurzbz='.$this->addslashes($this->pruefungstyp_kurzbz).', '.
'datum='.$this->addslashes($this->datum).', '.
'anmerkung='.$this->addslashes($this->anmerkung).', '.
'insertamum='.$this->addslashes($this->insertamum).', '.
'insertvon='.$this->addslashes($this->insertvon).', '.
'updateamum='.$this->addslashes($this->updateamum).', '.
'updatevon='.$this->addslashes($this->updatevon).', '.
'ext_id='.$this->addslashes($this->ext_id).', '.
'pruefungsanmeldung_id='.$this->addslashes($this->pruefungsanmeldung_id).' '.
'WHERE pruefung_id='.$this->addslashes($this->pruefung_id).';';
}
if($this->db_query($qry))
{
if($this->new)
{
//Sequence auslesen
$qry = "SELECT currval('lehre.tbl_pruefung_pruefung_id_seq') as id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->pruefung_id = $row->id;
$this->db_query('COMMIT');
return true;
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK');
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK');
return false;
}
}
return true;
}
else
{
$this->db_query('ROLLBACK');
$this->errormsg = 'Fehler beim Speichern der Pruefung:'.$this->db_last_error();
return false;
}
}
/**
* Liefert alle Pruefungen eines Studenten
* @param student_uid
* @return true wenn ok, false wenn Fehler
*/
public function getPruefungen($student_uid, $pruefungstyp=null,$lv_id=null,$stsem=null)
{
$qry = "SELECT tbl_pruefung.*, tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id,
tbl_note.bezeichnung as note_bezeichnung, tbl_pruefungstyp.beschreibung as typ_beschreibung, tbl_lehreinheit.studiensemester_kurzbz as studiensemester_kurzbz
FROM lehre.tbl_pruefung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_note, lehre.tbl_pruefungstyp
WHERE student_uid='".addslashes($student_uid)."'
AND tbl_pruefung.lehreinheit_id=tbl_lehreinheit.lehreinheit_id
AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
AND tbl_pruefung.note = tbl_note.note
AND tbl_pruefung.pruefungstyp_kurzbz=tbl_pruefungstyp.pruefungstyp_kurzbz";
if ($pruefungstyp != null)
$qry .= " AND tbl_pruefungstyp.pruefungstyp_kurzbz = '".addslashes($pruefungstyp)."'";
if ($lv_id != null)
$qry .= " AND tbl_lehrveranstaltung.lehrveranstaltung_id = '".addslashes($lv_id)."'";
if ($stsem != null)
$qry .= " AND tbl_lehreinheit.studiensemester_kurzbz = '".addslashes($stsem)."'";
$qry .= " ORDER BY datum DESC";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new pruefung();
$obj->pruefung_id = $row->pruefung_id;
$obj->lehreinheit_id = $row->lehreinheit_id;
$obj->student_uid = $row->student_uid;
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
$obj->note = $row->note;
$obj->note_bezeichnung = $row->note_bezeichnung;
$obj->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
$obj->pruefungstyp_beschreibung = $row->typ_beschreibung;
$obj->datum = $row->datum;
$obj->anmerkung = $row->anmerkung;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->lehrveranstaltung_bezeichnung = $row->lehrveranstaltung_bezeichnung;
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Laedt die Pruefungen zu einer Lehrveranstaltung
*
* @param $lv_id
* @param $pruefungstyp
* @param $stsem
* @return boolean
*/
public function getPruefungenLV($lv_id, $pruefungstyp=null, $stsem=null)
{
$qry = "SELECT tbl_pruefung.*, tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id,
tbl_note.bezeichnung as note_bezeichnung, tbl_pruefungstyp.beschreibung as typ_beschreibung, tbl_lehreinheit.studiensemester_kurzbz as studiensemester_kurzbz
FROM lehre.tbl_pruefung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_note, lehre.tbl_pruefungstyp
WHERE tbl_pruefung.lehreinheit_id=tbl_lehreinheit.lehreinheit_id
AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
AND tbl_pruefung.note = tbl_note.note
AND tbl_pruefung.pruefungstyp_kurzbz=tbl_pruefungstyp.pruefungstyp_kurzbz";
if ($pruefungstyp != null)
$qry .= " AND tbl_pruefungstyp.pruefungstyp_kurzbz = '".addslashes($pruefungstyp)."'";
if ($lv_id != null)
$qry .= " AND tbl_lehrveranstaltung.lehrveranstaltung_id = '".addslashes($lv_id)."'";
if ($stsem != null)
$qry .= " AND tbl_lehreinheit.studiensemester_kurzbz = '".addslashes($stsem)."'";
$qry .= " ORDER BY datum DESC";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new pruefung();
$obj->pruefung_id = $row->pruefung_id;
$obj->lehreinheit_id = $row->lehreinheit_id;
$obj->student_uid = $row->student_uid;
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
$obj->note = $row->note;
$obj->note_bezeichnung = $row->note_bezeichnung;
$obj->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
$obj->pruefungstyp_beschreibung = $row->typ_beschreibung;
$obj->datum = $row->datum;
$obj->anmerkung = $row->anmerkung;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->lehrveranstaltung_bezeichnung = $row->lehrveranstaltung_bezeichnung;
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Lädt die Prüfunge zur übergebenen Prüfungsanmeldung
* @param int $pruefungsanmeldung_id ID der Prüfungsanmeldung
* @return boolean
*/
public function getPruefungByAnmeldung($pruefungsanmeldung_id)
{
if(!is_numeric($pruefungsanmeldung_id))
{
parent::__construct();
if($pruefung_id!=null)
$this->load($pruefung_id);
$this->errormsg = 'pruefungsanmeldung_id muss eine gueltige Zahl sein';
return false;
}
/**
* Laedt einen Pr&uuml;fungsdatensatz
* @param pruefung_id ID
* @return true wenn ok, false im Fehlerfall
*/
public function load($pruefung_id)
$qry = "SELECT * FROM lehre.tbl_pruefung WHERE pruefungsanmeldung_id=".$this->db_add_param($pruefungsanmeldung_id).";";
if($this->db_query($qry))
{
if(!is_numeric($pruefung_id))
{
$this->errormsg = 'pruefung_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT tbl_pruefung.*, tbl_lehreinheit.lehrveranstaltung_id, tbl_lehreinheit.studiensemester_kurzbz as studiensemester_kurzbz
FROM lehre.tbl_pruefung JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) WHERE pruefung_id=$pruefung_id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->pruefung_id = $row->pruefung_id;
$this->lehreinheit_id=$row->lehreinheit_id;
$this->student_uid=$row->student_uid;
$this->mitarbeiter_uid=$row->mitarbeiter_uid;
$this->note=$row->note;
$this->pruefungstyp_kurzbz=$row->pruefungstyp_kurzbz;
$this->datum=$row->datum;
$this->anmerkung=$row->anmerkung;
$this->insertamum=$row->insertamum;
$this->insertvon=$row->insertvon;
$this->updateamum=$row->updateamum;
$this->updatevon=$row->updatevon;
$this->ext_id=$row->ext_id;
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
}
}
else
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
return true;
if($row = $this->db_fetch_object())
{
$this->pruefung_id = $row->pruefung_id;
$this->lehreinheit_id=$row->lehreinheit_id;
$this->student_uid=$row->student_uid;
$this->mitarbeiter_uid=$row->mitarbeiter_uid;
$this->note=$row->note;
$this->pruefungstyp_kurzbz=$row->pruefungstyp_kurzbz;
$this->datum=$row->datum;
$this->anmerkung=$row->anmerkung;
$this->insertamum=$row->insertamum;
$this->insertvon=$row->insertvon;
$this->updateamum=$row->updateamum;
$this->updatevon=$row->updatevon;
$this->ext_id=$row->ext_id;
$this->pruefungsanmeldung_id=$row->pruefungsanmeldung_id;
}
}
else
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
/**
* Liefert alle Pruefungen
* @return true wenn ok, false im Fehlerfall
*/
public function getAll($order=null, $student=null)
{
$qry = 'SELECT * FROM lehre.tbl_pruefung';
if ($student)
$qry.=' WHERE student ="'.addslashes($student).'"';
if($order!=null)
$qry .=" ORDER BY $order";
if(!$this->db_query($qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = $this->db_fetch_object())
{
$pruef_obj = new pruefung();
$pruef_obj->lehreinheit_id=$row->lehreinheit_id;
$pruef_obj->student_uid=$row->student_uid;
$pruef_obj->mitarbeiter_uid=$row->mitarbeiter_uid;
$pruef_obj->note=$row->note;
$pruef_obj->pruefungstyp_kurzbz=$row->pruefungstyp_kurzbz;
$pruef_obj->datum=$row->datum;
$pruef_obj->anmerkung=$row->anmerkung;
$pruef_obj->insertamum=$row->insertamum;
$pruef_obj->insertvon=$row->insertvon;
$pruef_obj->updateamum=$row->updateamum;
$pruef_obj->updatevon=$row->updatevon;
$pruef_obj->ext_id=$row->ext_id;
$this->result[] = $pruef_obj;
}
return true;
}
/**
* Loescht eine Pruefung
* @param $preufung_id ID der zu loeschenden Pruefung
* @return true wenn ok, false im Fehlerfall
*/
public function delete($pruefung_id)
{
if(!is_numeric($pruefung_id))
{
$this->errormsg = 'Pruefung_id ist ungueltig';
return false;
}
$qry = "DELETE FROM lehre.tbl_pruefung WHERE pruefung_id='$pruefung_id'";
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Loeschen der Pruefung';
return false;
}
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
public function validate()
{
//Laenge Pruefen
if(mb_strlen($this->anmerkung)>256)
{
$this->errormsg = 'Anmerkung darf nicht laenger als 256 Zeichen sein';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
public function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->validate())
{
return false;
}
if($this->new)
{
//Neuen Datensatz anlegen
$qry = 'BEGIN;INSERT INTO lehre.tbl_pruefung (lehreinheit_id, student_uid, mitarbeiter_uid, note, pruefungstyp_kurzbz, datum, anmerkung, insertamum, insertvon, updateamum, updatevon, ext_id) VALUES ('.
$this->addslashes($this->lehreinheit_id).', '.
$this->addslashes($this->student_uid).', '.
$this->addslashes($this->mitarbeiter_uid).', '.
$this->addslashes($this->note).', '.
$this->addslashes($this->pruefungstyp_kurzbz).', '.
$this->addslashes($this->datum).', '.
$this->addslashes($this->anmerkung).', '.
$this->addslashes($this->insertamum).', '.
$this->addslashes($this->insertvon).', '.
$this->addslashes($this->updateamum).', '.
$this->addslashes($this->updatevon).', '.
$this->addslashes($this->ext_id).');';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob pruefung_id gueltig ist
if(!is_numeric($this->pruefung_id))
{
$this->errormsg = 'pruefung_id ist ungueltig.';
return false;
}
$qry = 'UPDATE lehre.tbl_pruefung SET '.
'lehreinheit_id='.$this->addslashes($this->lehreinheit_id).', '.
'student_uid='.$this->addslashes($this->student_uid).', '.
'mitarbeiter_uid='.$this->addslashes($this->mitarbeiter_uid).', '.
'note='.$this->addslashes($this->note).', '.
'pruefungstyp_kurzbz='.$this->addslashes($this->pruefungstyp_kurzbz).', '.
'datum='.$this->addslashes($this->datum).', '.
'anmerkung='.$this->addslashes($this->anmerkung).', '.
'insertamum='.$this->addslashes($this->insertamum).', '.
'insertvon='.$this->addslashes($this->insertvon).', '.
'updateamum='.$this->addslashes($this->updateamum).', '.
'updatevon='.$this->addslashes($this->updatevon).', '.
'ext_id='.$this->addslashes($this->ext_id).' '.
'WHERE pruefung_id='.$this->addslashes($this->pruefung_id).';';
}
if($this->db_query($qry))
{
if($this->new)
{
//Sequence auslesen
$qry = "SELECT currval('lehre.tbl_pruefung_pruefung_id_seq') as id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->pruefung_id = $row->id;
$this->db_query('COMMIT');
return true;
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK');
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK');
return false;
}
}
return true;
}
else
{
$this->db_query('ROLLBACK');
$this->errormsg = 'Fehler beim Speichern der Pruefung:'.$this->db_last_error();
return false;
}
}
/**
* Liefert alle Pruefungen eines Studenten
* @param student_uid
* @return true wenn ok, false wenn Fehler
*/
public function getPruefungen($student_uid, $pruefungstyp=null,$lv_id=null,$stsem=null)
{
$qry = "SELECT tbl_pruefung.*, tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id,
tbl_note.bezeichnung as note_bezeichnung, tbl_pruefungstyp.beschreibung as typ_beschreibung, tbl_lehreinheit.studiensemester_kurzbz as studiensemester_kurzbz
FROM lehre.tbl_pruefung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_note, lehre.tbl_pruefungstyp
WHERE student_uid='".addslashes($student_uid)."'
AND tbl_pruefung.lehreinheit_id=tbl_lehreinheit.lehreinheit_id
AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
AND tbl_pruefung.note = tbl_note.note
AND tbl_pruefung.pruefungstyp_kurzbz=tbl_pruefungstyp.pruefungstyp_kurzbz";
if ($pruefungstyp != null)
$qry .= " AND tbl_pruefungstyp.pruefungstyp_kurzbz = '".addslashes($pruefungstyp)."'";
if ($lv_id != null)
$qry .= " AND tbl_lehrveranstaltung.lehrveranstaltung_id = '".addslashes($lv_id)."'";
if ($stsem != null)
$qry .= " AND tbl_lehreinheit.studiensemester_kurzbz = '".addslashes($stsem)."'";
$qry .= " ORDER BY datum DESC";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new pruefung();
$obj->pruefung_id = $row->pruefung_id;
$obj->lehreinheit_id = $row->lehreinheit_id;
$obj->student_uid = $row->student_uid;
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
$obj->note = $row->note;
$obj->note_bezeichnung = $row->note_bezeichnung;
$obj->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
$obj->pruefungstyp_beschreibung = $row->typ_beschreibung;
$obj->datum = $row->datum;
$obj->anmerkung = $row->anmerkung;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->lehrveranstaltung_bezeichnung = $row->lehrveranstaltung_bezeichnung;
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Laedt die Pruefungen zu einer Lehrveranstaltung
*
* @param $lv_id
* @param $pruefungstyp
* @param $stsem
* @return boolean
*/
public function getPruefungenLV($lv_id, $pruefungstyp=null, $stsem=null)
{
$qry = "SELECT tbl_pruefung.*, tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id,
tbl_note.bezeichnung as note_bezeichnung, tbl_pruefungstyp.beschreibung as typ_beschreibung, tbl_lehreinheit.studiensemester_kurzbz as studiensemester_kurzbz
FROM lehre.tbl_pruefung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_note, lehre.tbl_pruefungstyp
WHERE tbl_pruefung.lehreinheit_id=tbl_lehreinheit.lehreinheit_id
AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
AND tbl_pruefung.note = tbl_note.note
AND tbl_pruefung.pruefungstyp_kurzbz=tbl_pruefungstyp.pruefungstyp_kurzbz";
if ($pruefungstyp != null)
$qry .= " AND tbl_pruefungstyp.pruefungstyp_kurzbz = '".addslashes($pruefungstyp)."'";
if ($lv_id != null)
$qry .= " AND tbl_lehrveranstaltung.lehrveranstaltung_id = '".addslashes($lv_id)."'";
if ($stsem != null)
$qry .= " AND tbl_lehreinheit.studiensemester_kurzbz = '".addslashes($stsem)."'";
$qry .= " ORDER BY datum DESC";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new pruefung();
$obj->pruefung_id = $row->pruefung_id;
$obj->lehreinheit_id = $row->lehreinheit_id;
$obj->student_uid = $row->student_uid;
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
$obj->note = $row->note;
$obj->note_bezeichnung = $row->note_bezeichnung;
$obj->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
$obj->pruefungstyp_beschreibung = $row->typ_beschreibung;
$obj->datum = $row->datum;
$obj->anmerkung = $row->anmerkung;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->lehrveranstaltung_bezeichnung = $row->lehrveranstaltung_bezeichnung;
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
return true;
}
}
?>
+5
View File
@@ -641,6 +641,11 @@ class pruefungCis extends basis_db
return false;
}
/**
* Lädt alle Prüfungen
* @param String $mitarbeiter_uid UID des Mitarbeiters (optional)
* @return boolean
*/
public function getAllPruefungen($mitarbeiter_uid = NULL)
{
$qry = 'SELECT * FROM campus.tbl_pruefung';