Prüfungsverwaltung

This commit is contained in:
Stefan Puraner
2014-03-05 13:31:49 +00:00
parent b478d1f3b6
commit f906843430
6 changed files with 2396 additions and 0 deletions
+140
View File
@@ -0,0 +1,140 @@
/* Copyright (C) 2013 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>
*/
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
function setDatePicker(ele)
{
var start = $("#pruefungsfenster option:selected").attr("start");
// console.log(start);
start = start.split('-');
// console.log(start);
// console.log(new Date(start[0],start[1]-1,start[2]));
var ende = $("#pruefungsfenster option:selected").attr("ende");
// console.log(ende);
ende = ende.split('-');
// console.log(ende);
// console.log(new Date(ende[0],ende[1]-1,ende[2]));
$("#prfTermin input[type=text]").each(function(i,v){
$("#"+v.id).datepicker("destroy");
$("#"+v.id).datepicker({
minDate: new Date(start[0],start[1]-1,start[2]),
maxDate: new Date(ende[0],ende[1]-1,ende[2])
});
});
$("#pruefungsfenster").attr("onchange", "setDatePicker()");
}
function terminHinzufuegen(inputTag)
{
inputTag = (inputTag===undefined ? "" : inputTag);
// var start = $("#pruefungsfenster option:selected").attr("start");
// start = start.split('-');
// var ende = $("#pruefungsfenster option:selected").attr("ende");
// ende = ende.split('-');
var count = $("#prfTermin tr").length+1;
$("#prfTermin").append('<tr><td><input type="text" id="termin'+count+'" name="termin'+(inputTag !== "" ? inputTag : "")+'[]"></td><td><input type="time" placeholder="00:00" name="terminBeginn'+(inputTag !== "" ? inputTag : "")+'[]"></td><td><input type="time" placeholder="00:00" name="terminEnde'+(inputTag !== "" ? inputTag : "")+'[]"></td><td><input type="number" placeholder="0" min="0" name="minTeilnehmer'+(inputTag !== "" ? inputTag : "")+'[]"></td><td><input type="number" placeholder="10" min="0" name="maxTeilnehmer'+(inputTag !== "" ? inputTag : "")+'[]"></td></tr>');
// $("#termin"+count).datepicker({
// minDate: new Date(start[0],start[1]-1,start[2]),
// maxDate: new Date(ende[0],ende[1]-1,ende[2])
// });
setDatePicker();
}
function lehrveranstaltungDropdownhinzufuegen(element, isChanged)
{
if(!isChanged)
{
var newSelect = $("#lvDropdown1").clone();
var id = $("#lvDropdowns select").length+1;
newSelect.attr("id", "lvDropdown"+id);
element.setAttribute("onchange", "lehrveranstaltungDropdownhinzufuegen(this, true);");
newSelect.appendTo("#lvDropdowns");
$("#lvDropdowns").append("</br>");
}
}
/**
* 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);
}
function loadPruefungsfenster()
{
var studiensemester_kurzbz = $("#studiensemester option:selected").val();
$.ajax({
dataType: 'json',
url: "../../../../soap/fhcomplete.php",
data: {
typ: "json",
class: "pruefungsfenster",
method: "getByStudiensemester",
parameter_0: studiensemester_kurzbz
},
error: loadError
}).success(function(data){
writePruefungsfenster(data);
setDatePicker();
});
}
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)
{
if(v.pruefungsfenster_id === prfFensterId)
{
$("#pruefungsfenster").append("<option selected start='"+v.start+"' ende='"+v.ende+"' value='"+v.pruefungsfenster_id+"'>" + v.oe_kurzbz + "</option>");
}
else
{
$("#pruefungsfenster").append("<option start='"+v.start+"' ende='"+v.ende+"' value='"+v.pruefungsfenster_id+"'>" + v.oe_kurzbz + "</option>");
}
}
else
{
$("#pruefungsfenster").html("<option>Kein Prüfungsfenster vorhanden.</option>");
}
});
}
@@ -0,0 +1,449 @@
<!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/organisationseinheit.class.php');
require_once('../../../../include/studiensemester.class.php');
require_once('../../../../include/datum.class.php');
require_once('../../../../include/pruefungsfenster.class.php');
$uid = get_uid();
$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');
function compareOe($a, $b)
{
if($a->organisationseinheittyp_kurzbz == $b->organisationseinheittyp_kurzbz)
return 0;
return ($a->organisationseinheittyp_kurzbz < $b->organisationseinheittyp_kurzbz) ? -1 : 1;
}
?>
<html>
<head>
<meta charset="UTF-8">
<title>Prüfungsfenster anlegen</title>
<script src="../../../../include/js/datecheck.js"></script>
<script src="../../../../include/js/jquery1.9.min.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">
</head>
<body>
<script>
$(document).ready(function() {
$("#startDate").datepicker({
minDate: new Date()
});
$("#endDate").datepicker({
minDate: +1
});
$("#prfTable").tablesorter({
widgets: ["zebra"]
});
});
</script>
<?php
$datum = new datum();
$method = "";
//Organisationseinheiten, für die der Benutzer berechtigt ist
$oe = $rechte->getOEkurzbz("lehre/pruefungsfenster");
$studiensemester = new studiensemester();
$studiensemester->getAll();
if (isset($_POST["method"]) && $_POST["method"] == "save")
{
$method = $_POST["method"];
$studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : "");
$oe_kurzbz = (isset($_POST["oe_kurzbz"]) ? $_POST["oe_kurzbz"] : "");
$startDate = (isset($_POST["startDate"]) ? $datum->formatDatum($_POST["startDate"], "Y-m-d") : "");
$endDate = (isset($_POST["endDate"]) ? $datum->formatDatum($_POST["endDate"], "Y-m-d") : "");
if ($endDate != false && $startDate != false)
{
if ($datum->DateDiff($startDate, $endDate) >= 0)
{
if ($datum->DateDiff(date("Y-m-d"), $endDate) >= 0)
{
// if ($datum->DateDiff($startDate, date("Y-m-d")) <= 0)
// {
$pruefungsfenster = new pruefungsfenster();
$pruefungsfenster->new = true;
$pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected;
$pruefungsfenster->oe_kurzbz = $oe_kurzbz;
$pruefungsfenster->start = $startDate;
$pruefungsfenster->ende = $endDate;
if ($pruefungsfenster->save())
{
echo "Datensatz erfolgreich gespeichert";
}
else {
echo "Fehler: ".$pruefungsfenster->errormsg;
}
// }
// else
// {
// echo "Fehler: Startdatum liegt in der Vergangenheit.";
// }
}
else
{
echo "Fehler: Enddatum liegt in der Vergangenheit.";
}
}
else
{
echo "Fehler: Enddatum liegt nicht nach dem Startdatum.";
}
}
else
{
echo "Fehler: Datumseingabe nicht korrekt.";
}
}
else if(isset($_POST["method"]) && $_POST["method"] == "update")
{
$studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : "");
$oe_kurzbz = (isset($_POST["oe_kurzbz"]) ? $_POST["oe_kurzbz"] : "");
$startDate = (isset($_POST["startDate"]) ? $datum->formatDatum($_POST["startDate"], "Y-m-d") : "");
$endDate = (isset($_POST["endDate"]) ? $datum->formatDatum($_POST["endDate"], "Y-m-d") : "");
if ($endDate != false && $startDate != false)
{
if ($datum->DateDiff($startDate, $endDate) >= 0)
{
if ($datum->DateDiff(date("Y-m-d"), $endDate) >= 0)
{
// if ($datum->DateDiff($startDate, date("Y-m-d")) <= 0)
// {
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
{
$pruefungsfenster_id = $_POST["id"];
$pruefungsfenster = new pruefungsfenster();
$pruefungsfenster->load($pruefungsfenster_id);
$pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected;
$pruefungsfenster->oe_kurzbz = $oe_kurzbz;
$pruefungsfenster->start = $startDate;
$pruefungsfenster->ende = $endDate;
if ($pruefungsfenster->save())
{
echo "Datensatz erfolgreich geändert.";
}
else {
echo "Fehler: ".$pruefungsfenster->errormsg;
}
}
else
{
echo "Keine Berechtigung zum Ändern dieses Datensatzes.";
}
// }
// else
// {
// echo "Fehler: Startdatum liegt in der Vergangenheit.";
// }
}
else
{
echo "Fehler: Enddatum liegt in der Vergangenheit.";
}
}
else
{
echo "Fehler: Enddatum liegt nicht nach dem Startdatum.";
}
}
else
{
echo "Fehler: Datumseingabe nicht korrekt.";
}
}
else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="update")
{
$pruefungsfenster_id = $_GET["id"];
$pruefungsfenster = new pruefungsfenster();
$pruefungsfenster->load($pruefungsfenster_id);
if(!in_array($pruefungsfenster->oe_kurzbz, $oe))
{
echo "Keine Berechtigung zum Anzeigen dieses Datensatzes.";
$pruefungsfenster = new pruefungsfenster();
}
$method = $_GET["method"];
}
else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="delete")
{
$pruefungsfenster_id = $_GET["id"];
$pruefungsfenster = new pruefungsfenster();
$pruefungsfenster->load($pruefungsfenster_id);
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
{
if(!$pruefungsfenster->hasPruefungen($pruefungsfenster_id) && $pruefungsfenster->errormsg === null)
{
if($pruefungsfenster->delete($pruefungsfenster_id))
{
echo "Datensatz erfolgreich gelöscht.";
}
else
{
echo "Fehler: ".$pruefungsfenster->errormsg;
}
}
else
{
echo "Prüfungsfenster konnte nicht gelöscht werden, da Prüfungen verknüpft sind.";
}
$method = $_GET["method"];
}
else
{
echo "Keine Berechtigung zum Löschen dieses Datensatzes.";
}
}
$prfFenster = new pruefungsfenster();
$prfFenster->getAll("start");
if($method != "update")
{
?>
<h1>Prüfungsfenster-Verwaltung</h1>
<h2>Neues Prüfungsfenster anlegen</h2>
<div>
<form method="POST" action="pruefungsfenster_anlegen.php">
<table>
<tr>
<td><input type="hidden" name="method" value="save"></td>
</tr>
<tr>
<td>Studiensemester: </td>
<td>
<select id="studiensemester" name="studiensemester">
<?php
$aktuellesSemester = $studiensemester->getSemesterFromDatum(date("Y-m-d"));
foreach ($studiensemester->studiensemester as $result)
{
if($aktuellesSemester == $result->studiensemester_kurzbz)
{
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
}
else
{
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
}
}
?>
</select>
</td>
</tr>
<tr>
<td>Organisationseinheit: </td>
<td>
<select id="oe_kurzbz" name="oe_kurzbz">
<?php
$oe_array = array();
foreach ($oe as $result)
{
$organisationseinheit = new organisationseinheit();
$organisationseinheit->load($result);
array_push($oe_array, $organisationseinheit);
}
usort($oe_array, "compareOe");
foreach ($oe_array as $result)
{
echo '<option value="'.$result->oe_kurzbz.'">'.$result->organisationseinheittyp_kurzbz.' '.$result->bezeichnung.'</option>';
}
?>
</select>
</td>
</tr>
<tr>
<td>Start: </td>
<td><input type="text" id="startDate" name="startDate"></td>
</tr>
<tr>
<td>Ende: </td>
<td><input type="text" id="endDate" name="endDate"></td>
</tr>
<tr>
<td><input type="submit" value="speichern"></td>
</tr>
</table>
</form>
</div>
<?php
}
else
{
?>
<h1>Prüfungsfenster-Verwaltung</h1>
<h2>Prüfungsfenster bearbeiten</h2>
<div>
<form method="POST" action="pruefungsfenster_anlegen.php">
<table>
<tr>
<td><input type="hidden" name="method" value="update"></td>
</tr>
<tr>
<td><input type="hidden" name="id" value="<?php echo $pruefungsfenster->pruefungsfenster_id; ?>"></td>
</tr>
<tr>
<td>Studiensemester: </td>
<td>
<select id="studiensemester" name="studiensemester">
<?php
foreach ($studiensemester->studiensemester as $result)
{
if($result->studiensemester_kurzbz == $pruefungsfenster->studiensemester_kurzbz)
{
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
}
else
{
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
}
}
?>
</select>
</td>
</tr>
<tr>
<td>Organisationseinheit: </td>
<td>
<select id="oe_kurzbz" name="oe_kurzbz">
<?php
foreach ($oe as $result)
{
if($result == $pruefungsfenster->oe_kurzbz)
{
echo '<option selected>'.$result.'</option>';
}
else
{
echo '<option>'.$result.'</option>';
}
}
?>
</select>
</td>
</tr>
<tr>
<td>Start: </td>
<td><input type="text" id="startDate" name="startDate" value="<?php echo $pruefungsfenster->start; ?>"></td>
</tr>
<tr>
<td>Ende: </td>
<td><input type="text" id="endDate" name="endDate" value="<?php echo $pruefungsfenster->ende; ?>"></td>
</tr>
<tr>
<td><input type="submit" value="Speichern"></td>
<td><a href="pruefungsfenster_anlegen.php"><input type="button" value="Abbrechen"></a></td>
</tr>
</table>
</form>
</div>
<?php
}
/*
* Wenn ein Datensatz um bearbeiten ausgewählt wurde,
* wird dieser Block nicht angezeigt.
*/
if((isset($_GET["id"]) && $method!="update") || !isset($_GET["id"]))
{
?>
<h2>Prüfungsfenster bearbeiten</h2>
<div style="width: 50%;">
<?php
if(!empty($prfFenster->result)){
?>
<table class="tablesorter" id="prfTable">
<thead>
<tr>
<th>Studiensemester</th>
<th>Organisationseinheit</th>
<th>Startdatum</th>
<th>Enddatum</th>
<th>Bearbeiten</th>
<th>Löschen</th>
</tr>
</thead>
<tbody>
<?php
$organisationseinheit = new organisationseinheit();
foreach ($prfFenster->result as $result)
{
if(in_array($result->oe_kurzbz, $oe))
{
$organisationseinheit->load($result->oe_kurzbz);
echo
'<tr>
<td>'.$result->studiensemester_kurzbz.'</td>
<td>'.$organisationseinheit->organisationseinheittyp_kurzbz." ".$organisationseinheit->bezeichnung.'</td>
<td>'.$result->start.'</td>
<td>'.$result->ende.'</td>
<td><a href="pruefungsfenster_anlegen.php?method=update&id='.$result->pruefungsfenster_id.'">bearbeiten</a></td>
<td><a href="pruefungsfenster_anlegen.php?method=delete&id='.$result->pruefungsfenster_id.'">löschen</a></td>
</tr>';
}
}
?>
</tbody>
</table>
<?php
}
else
{
echo
'<tr>
<td>Keine Prüfungsfenster gespeichert.</td>
</tr>';
}
?>
</div>
<?php
}
?>
</body>
</html>
@@ -0,0 +1,873 @@
<!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/mail.class.php');
$uid = get_uid();
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('lehre/pruefungstermin'))
die('Sie haben keine Berechtigung für diese Seite');
function compareLvIDs($a, $b)
{
if($a->lehrveranstaltung_id == $b->lehrveranstaltung_id)
return 0;
return -1;
}
$studiensemester = new studiensemester();
$studiensemester->getAll();
$pruefungsfenster = new pruefungsfenster();
$pruefungsfenster->getAll("start");
$lehrveranstaltung = new lehrveranstaltung();
//TODO
$lehrveranstaltung->getLVByMitarbeiter($uid, $studiensemester->getSemesterFromDatum(date("Y-m-d")));
$lehrveranstaltung->getLVByMitarbeiter("leutgeb", $studiensemester->getSemesterFromDatum(date("Y-m-d")));
$pruefungstermin = new pruefungstermin();
$pruefungstypen = $pruefungstermin->getAllPruefungstypen();
if($_POST["method"] == "save")
{
$studiensemester_kurzbz = isset($_POST["studiensemester"])?$_POST["studiensemester"]:null;
$pruefungsfenster_id = isset($_POST["pruefungsfenster"])?$_POST["pruefungsfenster"]:null;
$pruefungstyp_kurzbz = isset($_POST["pruefungsTyp"])?$_POST["pruefungsTyp"]:null;
$titel = isset($_POST["titel"])?$_POST["titel"]:null;
$beschreibung = isset($_POST["beschreibung"])?$_POST["beschreibung"]:null;
$methode = isset($_POST["methode"])?$_POST["methode"]:null;
$einzeln = isset($_POST["einzelpruefung"])?true:false;
$lehrveranstaltungen = isset($_POST["lv"]) ? $_POST["lv"] : null;
$termine = array();
$error = false;
if($pruefungsfenster_id === "null")
{
$error = true;
echo "Bitte geben Sie ein Prüfungsfenster an.";
}
if(isset($_POST["termin"]))
{
if(!$error)
{
$pruefungsfenster = new pruefungsfenster();
$pruefungsfenster->load($pruefungsfenster_id);
$datum = new datum();
}
for($i = 0; $i< sizeof($_POST["termin"]); $i++)
{
if(!$error)
{
$termin = new stdClass();
$datum = new datum();
$date = (isset($_POST["termin"][$i]) && $datum->checkDatum($_POST["termin"][$i])) ? $_POST["termin"][$i] : null;
$beginn = (isset($_POST["terminBeginn"][$i]) && $datum->checkUhrzeit($_POST["terminBeginn"][$i])) ? $_POST["terminBeginn"][$i] : null;
$ende = (isset($_POST["terminEnde"][$i]) && $datum->checkUhrzeit($_POST["terminEnde"][$i])) ? $_POST["terminEnde"][$i] : null;
$termin->min = (isset($_POST["minTeilnehmer"][$i]) && is_numeric($_POST["minTeilnehmer"][$i]) && strlen($_POST["minTeilnehmer"][$i]) > 0) ? $_POST["minTeilnehmer"][$i] : 0;
$termin->max = (isset($_POST["maxTeilnehmer"][$i]) && is_numeric($_POST["maxTeilnehmer"][$i]) && strlen($_POST["maxTeilnehmer"][$i]) > 0) ? $_POST["maxTeilnehmer"][$i] : null;
if($datum == null)
{
echo "Fehler: Ung&uuml;ltiges Datum angegeben.</br>";
$error = true;
}
if($beginn == null)
{
echo "Fehler: Ung&uuml;ltige Beginnzeit angegeben.</br>";
$error = true;
}
if($ende == null)
{
echo "Fehler: Ung&uuml;ltige Endzeit angegeben.</br>";
$error = true;
}
if($termin->min === null)
{
echo "Fehler: Ung&uuml;ltige Mindestteilnehmerzahl angegeben.</br>";
$error = true;
}
if(!(mktime(substr($beginn,0,2), substr($beginn,-2)) < mktime(substr($ende,0,2), substr($ende,-2))))
{
echo "Endzeit liegt vor der Startzeit!</br>";
$error = true;
}
if(!($termin->min < $termin->max) && $termin->max !== null)
{
echo "Maximalteilnehmerzahlt ist kleiner der Mindestteilnehmerzahl.</br>";
$error = true;
}
if(!$datum->between($pruefungsfenster->start, $pruefungsfenster->ende, $date))
{
echo "Prüfungstermin liegt nicht innheralb des Prüfungsfensters.</br>";
$error = true;
}
$termin->beginn = date('Y-m-d H:i', strtotime($date." ".$beginn));
$termin->ende = date('Y-m-d H:i', strtotime($date." ".$ende));
array_push($termine, $termin);
}
}
}
if(!$error)
{
$pruefung = new pruefungCis();
$pruefung->termine = $termine;
$pruefung->mitarbeiter_uid = $uid;
$pruefung->studiensemester_kurzbz = $studiensemester_kurzbz;
$pruefung->pruefungsfenster_id = $pruefungsfenster_id;
$pruefung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz;
$pruefung->titel = $titel;
$pruefung->beschreibung = $beschreibung;
$pruefung->methode = $methode;
$pruefung->einzeln = $einzeln;
$pruefung->insertvon = $uid;
if(mb_strlen($pruefung->titel) > 0)
{
if($pruefung->pruefungstyp_kurzbz != "undefiniert")
{
if($lehrveranstaltungen != null && sizeof($lehrveranstaltungen) > 0)
{
$i=0;
foreach ($lehrveranstaltungen as $lv) {
if($lv != "null")
{
array_push($pruefung->lehrveranstaltungen, $lv);
}
}
if($pruefung->save(true))
{
//TODO Absender und Inhalt fehlen
foreach ($pruefung->lehrveranstaltungen as $lvId)
{
$lv = new lehrveranstaltung($lvId);
$text = "Ein Prüfungstermin zu Ihrer Lehrveranstaltung ".$lv->bezeichnung." wurde angelegt.\n"
. "Die Prüfung kann am "
.date('d.m.Y', strtotime($pruefung->termine[0]->beginn))." "
. "in der Zeit von "
.date('H:i', strtotime($pruefung->termine[0]->beginn))." bis "
.date('H:i', strtotime($pruefung->termine[0]->ende))." abgelegt werden.";
//$text = "test";
$empfaenger = $lv->getStudentsOfLv($lvId, $pruefung->studiensemester_kurzbz);
$mailto = "";
foreach ($empfaenger as $e) {
$mailto .= $e.'@'.DOMAIN.', ';
}
$email = new mail($mailto, "unknown", "Prüfungstermin für ".$lv->bezeichnung, $text);
var_dump($email);
echo $email->send();
}
echo "Datensatz erfolgreich gespeichert!";
}
else
{
echo "Fehler: ".$pruefung->errormsg;
}
}
else
{
echo "Bitte Lehrveranstaltungen angeben.";
}
}
else
{
echo "Bitte einen Prüfungstyp auswählen";
}
}
else
{
echo "Bitte einen Titel angeben.";
}
}
}
else if($_POST["method"] == "update")
{
$studiensemester_kurzbz = isset($_POST["studiensemester"])?$_POST["studiensemester"]:null;
$pruefungsfenster_id = isset($_POST["pruefungsfenster"])?$_POST["pruefungsfenster"]:null;
$pruefungstyp_kurzbz = isset($_POST["pruefungsTyp"])?$_POST["pruefungsTyp"]:null;
$titel = isset($_POST["titel"])?$_POST["titel"]:null;
$beschreibung = isset($_POST["beschreibung"])?$_POST["beschreibung"]:null;
$methode = isset($_POST["methode"])?$_POST["methode"]:null;
$einzeln = isset($_POST["einzelpruefung"])?true:false;
$lehrveranstaltungen = isset($_POST["lv"]) ? $_POST["lv"] : null;
$termine = array();
$termineNeu = array();
$error = false;
if(!$error)
{
$pruefungsfenster = new pruefungsfenster();
$pruefungsfenster->load($pruefungsfenster_id);
$datum = new datum();
}
if(isset($_POST["terminNeu"]))
{
for($i = 0; $i< sizeof($_POST["terminNeu"]); $i++)
{
if(!$error)
{
$termin = new stdClass();
$datum = new datum();
$date = (isset($_POST["terminNeu"][$i]) && $datum->checkDatum($_POST["terminNeu"][$i])) ? $_POST["terminNeu"][$i] : null;
$beginn = (isset($_POST["terminBeginnNeu"][$i]) && $datum->checkUhrzeit($_POST["terminBeginnNeu"][$i])) ? $_POST["terminBeginnNeu"][$i] : null;
$ende = (isset($_POST["terminEndeNeu"][$i]) && $datum->checkUhrzeit($_POST["terminEndeNeu"][$i])) ? $_POST["terminEndeNeu"][$i] : null;
$termin->min = (isset($_POST["minTeilnehmerNeu"][$i]) && is_numeric($_POST["minTeilnehmerNeu"][$i]) && strlen($_POST["minTeilnehmerNeu"][$i]) > 0) ? $_POST["minTeilnehmerNeu"][$i] : 0;
$termin->max = (isset($_POST["maxTeilnehmerNeu"][$i]) && is_numeric($_POST["maxTeilnehmerNeu"][$i]) && strlen($_POST["maxTeilnehmerNeu"][$i]) > 0) ? $_POST["maxTeilnehmerNeu"][$i] : null;
if($datum == null)
{
echo "Fehler: Ung&uuml;ltiges Datum angegeben.</br>";
$error = true;
}
if($beginn == null)
{
echo "Fehler: Ung&uuml;ltige Beginnzeit angegeben.</br>";
$error = true;
}
if($ende == null)
{
echo "Fehler: Ung&uuml;ltige Endzeit angegeben.</br>";
$error = true;
}
if($termin->min === null)
{
echo "Fehler: Ung&uuml;ltige Mindestteilnehmerzahl angegeben.</br>";
$error = true;
}
if(!(mktime(substr($beginn,0,2), substr($beginn,-2)) < mktime(substr($ende,0,2), substr($ende,-2))))
{
echo "Endzeit liegt vor der Startzeit!</br>";
$error = true;
}
if(!($termin->min < $termin->max) && $termin->max !== null)
{
echo "Maximalteilnehmerzahlt ist kleiner der Mindestteilnehmerzahl.</br>";
$error = true;
}
if(!$datum->between($pruefungsfenster->start, $pruefungsfenster->ende, $date))
{
echo "Prüfungstermin liegt nicht innheralb des Prüfungsfensters.</br>";
$error = true;
}
$termin->beginn = date('Y-m-d H:i', strtotime($date." ".$beginn));
$termin->ende = date('Y-m-d H:i', strtotime($date." ".$ende));
array_push($termineNeu, $termin);
}
}
}
if(isset($_POST["termin"]))
{
$error = false;
for($i = 0; $i< sizeof($_POST["termin"]); $i++)
{
if(!$error)
{
$termin = new stdClass();
$datum = new datum();
$terminId = (isset($_POST["termin_id"][$i])) ? $_POST["termin_id"][$i] : null;
$date = (isset($_POST["termin"][$i]) && $datum->checkDatum($_POST["termin"][$i])) ? $_POST["termin"][$i] : null;
$beginn = (isset($_POST["terminBeginn"][$i]) && $datum->checkUhrzeit($_POST["terminBeginn"][$i])) ? $_POST["terminBeginn"][$i] : null;
$ende = (isset($_POST["terminEnde"][$i]) && $datum->checkUhrzeit($_POST["terminEnde"][$i])) ? $_POST["terminEnde"][$i] : null;
$termin->min = (isset($_POST["minTeilnehmer"][$i]) && is_numeric($_POST["minTeilnehmer"][$i]) && strlen($_POST["minTeilnehmer"][$i]) > 0) ? $_POST["minTeilnehmer"][$i] : 0;
$termin->max = (isset($_POST["maxTeilnehmer"][$i]) && is_numeric($_POST["maxTeilnehmer"][$i]) && strlen($_POST["maxTeilnehmer"][$i]) > 0) ? $_POST["maxTeilnehmer"][$i] : null;
if($datum == null)
{
echo "Fehler: Ung&uuml;ltiges Datum angegeben.</br>";
$error = true;
}
if($beginn == null)
{
echo "Fehler: Ung&uuml;ltige Beginnzeit angegeben.</br>";
$error = true;
}
if($ende == null)
{
echo "Fehler: Ung&uuml;ltige Endzeit angegeben.</br>";
$error = true;
}
if($termin->min === null)
{
echo "Fehler: Ung&uuml;ltige Mindestteilnehmerzahl angegeben.</br>";
$error = true;
}
if(!(mktime(substr($beginn,0,2), substr($beginn,-2)) < mktime(substr($ende,0,2), substr($ende,-2))))
{
echo "Endzeit liegt vor der Startzeit!</br>";
$error = true;
}
if(!($termin->min < $termin->max) && $termin->max !== null)
{
echo "Maximalteilnehmerzahlt ist kleiner der Mindestteilnehmerzahl.</br>";
$error = true;
}
if(!$datum->between($pruefungsfenster->start, $pruefungsfenster->ende, $date))
{
echo "Prüfungstermin liegt nicht innheralb des Prüfungsfensters.</br>";
$error = true;
}
$termin->pruefungstermin_id = $terminId;
$termin->beginn = date('Y-m-d H:i', strtotime($date." ".$beginn));
$termin->ende = date('Y-m-d H:i', strtotime($date." ".$ende));
array_push($termine, $termin);
}
}
}
if(!$error)
{
$pruefung = new pruefungCis();
$pruefung_id = $_POST["id"];
$pruefung->load($pruefung_id);
$pruefung->termine = $termine;
foreach ($termineNeu as $t)
{
$pruefung->saveTerminPruefung($pruefung_id, $t->beginn, $t->ende, $t->max, $t->min);
}
$pruefung->mitarbeiter_uid = $uid;
$pruefung->studiensemester_kurzbz = $studiensemester_kurzbz;
$pruefung->pruefungsfenster_id = $pruefungsfenster_id;
$pruefung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz;
$pruefung->titel = $titel;
$pruefung->beschreibung = $beschreibung;
$pruefung->methode = $methode;
$pruefung->einzeln = $einzeln;
$pruefung->updatevon = $uid;
if(mb_strlen($pruefung->titel) > 0)
{
if($pruefung->pruefungstyp_kurzbz != "undefiniert")
{
if($lehrveranstaltungen != null && sizeof($lehrveranstaltungen) > 0)
{
$i=0;
foreach ($lehrveranstaltungen as $lv)
{
if($lv != "null")
{
array_push($pruefung->lehrveranstaltungen, $lv);
}
}
if($pruefung->save(false))
{
echo "Datensatz erfolgreich gespeichert!";
}
else
{
echo "Fehler: ".$pruefung->errormsg;
}
}
else
{
echo "Bitte Lehrveranstaltungen angeben.";
}
}
else
{
echo "Bitte einen Prüfungstyp auswählen";
}
}
else
{
echo "Bitte einen Titel angeben.";
}
}
}
else if(isset ($_GET["method"]) && $_GET["action"] === "deleteTermin")
{
$pruefungstermin_id = $_GET["termin_id"];
$pruefung_id = $_GET["id"];
$pruefung = new pruefungCis();
$pruefung->load($pruefung_id);
$pruefung->deleteTerminPruefung($pruefungstermin_id);
}
else if(isset ($_GET["method"]) && $_GET["action"] === "deleteLv")
{
$lvId = $_GET["lvId"];
$pruefung_id = $_GET["id"];
$pruefung = new pruefungCis();
$pruefung->load($pruefung_id);
$pruefung->deleteLehrveranstaltungPruefung($lvId, $pruefung_id);
}
else if(isset ($_GET["action"]) && $_GET["action"] === "storno")
{
$pruefung_id = $_GET["id"];
$pruefung = new pruefungCis();
// $pruefung->load($pruefung_id);
$pruefung->pruefungStornieren($pruefung_id);
header("Location: pruefungstermin_festlegen.php");
}
$pruefungen = new pruefungCis();
$pruefungen->getPruefungByMitarbeiter($uid, $studiensemester_kurzbz);
foreach($pruefungen->result as $tempPrf)
{
$tempPrf->getLehrveranstaltungenByPruefung();
$tempPrf->getTermineByPruefung();
}
?>
<html>
<head>
<meta charset="UTF-8">
<title>Prüfungstermin festlegen</title>
<script src="../../../../include/js/datecheck.js"></script>
<script src="../../../../include/js/jquery1.9.min.js"></script>
<script src="./pruefung.js"></script>
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
<link rel="stylesheet" href="../../../../skin/style.css.php">
<link rel="stylesheet" href="../../../../skin/tablesort.css">
</head>
<body>
<script>
$(document).ready(function() {
// $("#termin1").datepicker({
// minDate: new Date()
// });
// $("#prfTable").tablesorter({
// widgets: ["zebra"]
// });
loadPruefungsfenster();
});
</script>
<?php
if(!isset($_GET["method"]))
{
?>
<h1>Prüfungen verwalten</h1>
<div>
<form method="post" action="pruefungstermin_festlegen.php">
<input type="hidden" name="method" value="save">
<table>
<tr>
<td>Titel:</td>
<td>
<input type="text" name="titel">
</td>
</tr>
<tr>
<td style="vertical-align: top;">Beschreibung:</td>
<td>
<textarea name="beschreibung" rows="5" cols="20"></textarea>
</td>
</tr>
<tr>
<td>Studiensemester:</td>
<td>
<select id="studiensemester" name="studiensemester" onchange="loadPruefungsfenster();" onload="loadPruefungsfenster();">
<?php
$aktuellesSemester = $studiensemester->getSemesterFromDatum(date("Y-m-d"));
foreach ($studiensemester->studiensemester as $result)
{
if($aktuellesSemester == $result->studiensemester_kurzbz)
{
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
}
else
{
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
}
}
?>
</select>
</td>
</tr>
<tr>
<td>Prüfungsfenster:</td>
<td>
<select id="pruefungsfenster" name="pruefungsfenster" onchange="setDatePicker(this);">
<!--Daten werden durch JavaScript geladen-->
</select>
</td>
</tr>
<tr>
<td>Prüfungstyp:</td>
<td>
<select name="pruefungsTyp">
<?php
if($pruefungstypen !== false)
{
foreach ($pruefungstypen as $typ) {
echo '<option value="'.$typ->pruefungstyp_kurzbz.'">'.$typ->beschreibung.'</option>';
}
}
?>
</select>
</td>
</tr>
<tr>
<td style="vertical-align: top;">Methode:</td>
<td><textarea placeholder="Multiple Choice, etc." rows="5" cols="20" name="methode"></textarea></td>
</tr>
<tr>
<td>Einzelprüfung:</td>
<td><input type="checkbox" name="einzelpruefung"></td>
</tr>
<tr>
<td style="vertical-align: top;">Lehrveranstaltungen:</td>
<td>
<div id="lvDropdowns">
<select id="lvDropdown1" onchange="lehrveranstaltungDropdownhinzufuegen(this, false);" name="lv[]">
<option value="null">Lehrveranstaltung auswählen...</option>
<?php
$studiengang = new studiengang();
foreach($lehrveranstaltung->lehrveranstaltungen as $result)
{
$studiengang->load($result->studiengang_kz);
echo '<option value="'.$result->lehrveranstaltung_id.'">'.$studiengang->kurzbzlang.' | <b>'.$result->bezeichnung.'</b> ('.$result->lehrform_kurzbz.')</option>';
}
?>
</select></br>
</div>
</td>
</tr>
<tr>
<td style="vertical-align: top;"><a name="termin">Termin:</a></td>
<td>
<div>
<table>
<thead>
<tr>
<th>Datum</th>
<th>Von</th>
<th>bis</th>
</tr>
</thead>
<tbody id="prfTermin">
<tr>
<td>
<input type="text" id="termin1" name="termin[]">
</td>
<td>
<input type="time" placeholder="00:00" name="terminBeginn[]">
</td>
<td>
<input type="time" placeholder="00:00" name="terminEnde[]">
</td>
<td>
<input type="number" placeholder="0" min="0" name="minTeilnehmer[]">
</td>
<td>
<input type="number" placeholder="10" min="0" name="maxTeilnehmer[]">
</td>
</tr>
</tbody>
</table>
</div>
<a href="#termin" onclick="terminHinzufuegen();">Termin hinzufügen</a>
</td>
</tr>
<tr>
<td>&nbsp;</td><td><input type="submit" value="Speichern"></td>
</tr>
</table>
</form>
</div>
<div>
<h2>Prüfungen</h2>
<div style="width: 75%;">
<table class="tablesorter" id="prfTable">
<thead>
<tr>
<th>Titel</th>
<th>Studiensemester</th>
<th>Lehrveranstaltungen</th>
<th>Termine</th>
<th>Methode</th>
<th>Prüfungstyp</th>
<th>Einzelprüfung</th>
<th>Mitarbeiter</th>
<th>storniert</th>
</tr>
</thead>
<tbody>
<?php
foreach ($pruefungen->result as $prf)
{
echo
'<tr '.(($prf->storniert == true) ? "style='text-decoration: line-through'" : "").'>
<td><a href="pruefungstermin_festlegen.php?method=update&id='.$prf->pruefung_id.'&prfFensterId='.$prf->pruefungsfenster_id.'">'.$prf->titel.'</a></td>
<td>'.$prf->studiensemester_kurzbz.'</td>
<td>';
foreach($prf->lehrveranstaltungen as $lv)
{
$lehrveranstaltung = new lehrveranstaltung();
$lehrveranstaltung->load($lv->lehrveranstaltung_id);
echo $lehrveranstaltung->bezeichnung.'</br>';
}
echo '</td>
<td>
<table>
<tbody>';
foreach($prf->termine as $termine)
{
echo '<tr><td>'.date('d.m.Y H:i', strtotime($termine->von))."</td><td>".date('d.m.Y H:i', strtotime($termine->bis)).'</td></tr>';
//date('Y-m-d H:i', strtotime($termine->von));
}
echo '</tbody>
</table>
</td>
<td>'.(($prf->methode == null) ? "keine Methode angegeben" : $prf->methode).'</td>
<td>'.$prf->pruefungstyp_kurzbz.'</td>
<td>'.(($prf->einzeln == true) ? "TRUE" : "FALSE").'</td>
<td>'.$prf->mitarbeiter_uid.'</td>
<td>'.(($prf->storniert == true) ? "TRUE" : "FALSE").'</td>
</tr>';
}
?>
</tbody>
</table>
</div>
</div>
<?php
}
else if ($_GET["method"] == "update")
{
$pruefung_id = isset($_GET["id"]) ? $_GET["id"] : false;
if(is_numeric($pruefung_id))
{
$pruefung = new pruefungCis();
$pruefung->load($pruefung_id);
$pruefung->getLehrveranstaltungenByPruefung();
$pruefung->getTermineByPruefung();
}
else
{
header("Location: pruefungstermin_festlegen.php");
}
?>
<h1>Prüfung bearbeiten</h1>
<div>
<form method="post" action="pruefungstermin_festlegen.php">
<input type="hidden" name="id" value="<?php echo $pruefung->pruefung_id;?>">
<input type="hidden" name="method" value="update">
<table>
<tr>
<td>Titel:</td>
<td>
<input type="text" name="titel" value="<?php echo $pruefung->titel;?>">
</td>
</tr>
<tr>
<td style="vertical-align: top;">Beschreibung:</td>
<td>
<textarea name="beschreibung" rows="5" cols="20"><?php echo $pruefung->beschreibung; ?></textarea>
</td>
</tr>
<tr>
<td>Studiensemester:</td>
<td>
<select id="studiensemester" name="studiensemester" onchange="loadPruefungsfenster();" onload="loadPruefungsfenster();">
<?php
foreach ($studiensemester->studiensemester as $result)
{
if($pruefung->studiensemester_kurzbz == $result->studiensemester_kurzbz)
{
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
}
else
{
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
}
}
?>
</select>
</td>
</tr>
<tr>
<td>Prüfungsfenster:</td>
<td>
<select id="pruefungsfenster" name="pruefungsfenster">
<!--Daten werden durch JavaScript geladen-->
</select>
</td>
</tr>
<tr>
<td>Prüfungstyp:</td>
<td>
<select name="pruefungsTyp">
<?php
if($pruefungstypen !== false)
{
foreach ($pruefungstypen as $typ) {
if($typ->pruefungstyp_kurzbz == $pruefung->pruefungstyp_kurzbz)
{
echo '<option selected value="'.$typ->pruefungstyp_kurzbz.'">'.$typ->beschreibung.'</option>';
}
else
{
echo '<option value="'.$typ->pruefungstyp_kurzbz.'">'.$typ->beschreibung.'</option>';
}
}
}
?>
</select>
</td>
</tr>
<tr>
<td style="vertical-align: top;">Methode:</td>
<td><textarea placeholder="Multiple Choice, etc." rows="5" cols="20" name="methode"><?php echo $pruefung->methode; ?></textarea></td>
</tr>
<tr>
<td>Einzelprüfung:</td>
<td><input type="checkbox" <?php echo (($pruefung->einzeln == true) ? " checked ": "") ?> name="einzelpruefung"></td>
</tr>
<tr>
<td style="vertical-align: top;">Lehrveranstaltungen:</td>
<td>
<div id="lvDropdowns">
<?php
$studiengang = new studiengang();
$lv_temp = array();
foreach($pruefung->lehrveranstaltungen as $lv)
{
array_push($lv_temp, $lv->lehrveranstaltung_id);
}
foreach($lehrveranstaltung->lehrveranstaltungen as $result)
{
$studiengang->load($result->studiengang_kz);
if(in_array($result->lehrveranstaltung_id, $lv_temp))
{
echo '<span value="'.$result->lehrveranstaltung_id.'">'.$studiengang->kurzbzlang.' | <b>'.$result->bezeichnung.'</b> ('.$result->lehrform_kurzbz.')</span><a href="pruefungstermin_festlegen.php?method=update&action=deleteLv&lvId='.$result->lehrveranstaltung_id.'&id='.$pruefung_id.'"> löschen</a></br>';
}
}
?>
<div id="lvDropdowns">
<select id="lvDropdown1" onchange="lehrveranstaltungDropdownhinzufuegen(this, false);" name="lv[]">
<option value="null">Lehrveranstaltung auswählen...</option>
<?php
$studiengang = new studiengang();
foreach($lehrveranstaltung->lehrveranstaltungen as $result)
{
$studiengang->load($result->studiengang_kz);
echo '<option value="'.$result->lehrveranstaltung_id.'">'.$studiengang->kurzbzlang.' | <b>'.$result->bezeichnung.'</b> ('.$result->lehrform_kurzbz.')</option>';
}
?>
</select></br>
</div>
</div>
</td>
</tr>
<tr>
<td style="vertical-align: top;"><a name="termin">Termin:</a></td>
<td>
<div>
<table>
<thead>
<tr>
<th>Datum</th>
<th>Von</th>
<th>bis</th>
<th>min. Teilnehmer</th>
<th>max. Teilnehmer</th>
<th>Aktion</th>
</tr>
</thead>
<tbody id="prfTermin">
<?php
foreach($pruefung->termine as $prfTermin)
{
echo '<tr>
<input type="hidden" name="termin_id[]" value='.$prfTermin->pruefungstermin_id.'>
<td>
<input type="text" id="termin1" name="termin[]" value="'.date("d.m.Y",strtotime($prfTermin->von)).'">
</td>
<td>
<input type="time" placeholder="00:00" name="terminBeginn[]" value="'.date("H:i",strtotime($prfTermin->von)).'">
</td>
<td>
<input type="time" placeholder="00:00" name="terminEnde[]" value="'.date("H:i",strtotime($prfTermin->bis)).'">
</td>
<td>
<input type="number" placeholder="0" min="0" name="minTeilnehmer[]" value="'.$prfTermin->min.'">
</td>
<td>
<input type="number" placeholder="10" min="0" name="maxTeilnehmer[]" value="'.$prfTermin->max.'">
</td>
<td>
<a href="pruefungstermin_festlegen.php?method=update&action=deleteTermin&termin_id='.$prfTermin->pruefungstermin_id.'&id='.$pruefung->pruefung_id.'">löschen</a>
</td>
</tr>';
}
?>
</tbody>
</table>
</div>
<a href="#termin" onclick="terminHinzufuegen('Neu');">Termin hinzufügen</a>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<a href="pruefungstermin_festlegen.php?action=storno&id=<?php echo $pruefung->pruefung_id; ?>">Prüfung stornieren</a>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<input type="submit" value="Speichern">
<a href="pruefungstermin_festlegen.php"><input type="button" value="Abbrechen"></a>
</td>
</tr>
</table>
</form>
</div>
<?php
}
?>
</body>
</html>
+504
View File
@@ -0,0 +1,504 @@
<?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(dirname(__FILE__) . '/basis_db.class.php');
class pruefungCis extends basis_db
{
public $new;
public $result = array();
public $pruefung_id; //bigint
public $mitarbeiter_uid; //varchar(32)
public $studiensemester_kurzbz; //varchar(16)
public $pruefungsfenster_id; //bigint
public $pruefungstyp_kurzbz; //varchar(16)
public $titel; //varchar(256)
public $beschreibung; //beschreibung(text)
public $methode; //varchar(64)
public $einzeln; //boolean
public $storniert = false; //boolean
public $insertvon; //varcahr(32)
public $insertamum; //timestamp without timezone
public $updatevon; //varcahr(32)
public $updateamum; //timestamp without timezone
public $lehrveranstaltungen = array(); //Lehrveranstaltungen zur Prüfung
public $termine = array(); //Termine zur Prüfung
/**
* Konstruktor
* @param pruefung_id ID der zu ladenden Prüfung
*/
public function __construct($pruefung_id = null)
{
parent::__construct();
if ($pruefung_id != null)
$this->load($pruefung_id);
}
public function __set($name, $value)
{
switch ($name) {
case 'pruefung_id':
if (!is_numeric($value))
throw new Exception('Attribute pruefung_id must be numeric!"');
$this->$name = $value;
break;
case 'methode':
if(mb_strlen($value) > 64)
throw new Exception('Attribute methode must not be longer than 64 characters!"');
$this->$name = $value;
break;
case 'titel':
if(mb_strlen($value) > 256)
throw new Exception('Attribute methode must not be longer than 256 characters!"');
$this->$name = $value;
break;
default:
$this->$name = $value;
}
}
public function __get($name)
{
return $this->$name;
}
public function validate()
{
if(!is_numeric($this->pruefungsfenster_id) && $this->pruefungsfenster_id != null)
{
$this->errormsg = "pruefungsfenster_id muss eine gültige Zahl sein.";
return false;
}
if(mb_strlen($this->mitarbeiter_uid) > 32)
{
$this->errormsg = "mitarbeiter_uid darf nicht länger als 32 Zeichen sein.";
return false;
}
if(mb_strlen($this->studiensemester_kurzbz) > 16 && $this->studiensemester_kurzbz != null)
{
$this->errormsg = "studiensemester_kurzbz darf nicht länger als 16 Zeichen sein.";
return false;
}
if(mb_strlen($this->pruefungstyp_kurzbz) > 16 && $this->pruefungstyp_kurzbz != null)
{
$this->errormsg = "pruefungstyp_kurzbz darf nicht länger als 16 Zeichen sein.";
return false;
}
if(mb_strlen($this->titel) > 256)
{
$this->errormsg = "pruefungstyp_kurzbz darf nicht länger als 256 Zeichen sein.";
return false;
}
if(mb_strlen($this->methode) > 64)
{
$this->errormsg = "methode darf nicht länger als 64 Zeichen sein.";
return false;
}
return true;
}
public function save($new = null)
{
if(!$this->validate())
{
return false;
}
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) '
. 'VALUES ('.$this->db_add_param($this->mitarbeiter_uid).', '
. $this->db_add_param($this->studiensemester_kurzbz).', '
. $this->db_add_param($this->pruefungsfenster_id).', '
. $this->db_add_param($this->pruefungstyp_kurzbz).', '
. $this->db_add_param($this->titel).', '
. $this->db_add_param($this->beschreibung).', '
. $this->db_add_param($this->methode).', '
. $this->db_add_param($this->einzeln, FHC_BOOLEAN).', '
. $this->db_add_param($this->storniert, FHC_BOOLEAN).', '
. $this->db_add_param($this->insertvon).', '
. 'now()'
. ');';
}
else
{
$qry = 'UPDATE campus.tbl_pruefung SET '
. 'mitarbeiter_uid='.$this->db_add_param($this->mitarbeiter_uid).', '
. 'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '
. 'pruefungsfenster_id='.$this->db_add_param($this->pruefungsfenster_id).', '
. 'pruefungstyp_kurzbz='.$this->db_add_param($this->pruefungstyp_kurzbz).', '
. 'titel='.$this->db_add_param($this->titel).', '
. 'beschreibung='.$this->db_add_param($this->titel).', '
. 'methode='.$this->db_add_param($this->methode).', '
. '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() '
. 'WHERE pruefung_id='.$this->db_add_param($this->pruefung_id).';';
}
if($this->db_query($qry))
{
if ($new)
{
$qry = "SELECT currval('campus.seq_pruefung_pruefung_id') as id";
if ($this->db_query($qry))
{
if ($row = $this->db_fetch_object())
{
$this->pruefung_id = $row->id;
foreach ($this->lehrveranstaltungen as $lv)
{
if(!$this->saveLehrveranstaltungPruefung($lv, $this->pruefung_id))
{
$this->errormsg = 'Fehler beim Speichern der Lehrveranstaltungen.';
$this->db_query('ROLLBACK');
return false;
}
}
foreach ($this->termine as $termin)
{
if(!$this->saveTerminPruefung($this->pruefung_id, $termin->beginn, $termin->ende, $termin->max, $termin->min))
{
$this->errormsg = 'Fehler beim Speichern der Termine.';
$this->db_query('ROLLBACK');
return false;
}
}
$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;
}
}
else
{
foreach ($this->termine as $termin)
{
if(!$this->updateTerminPruefung($termin->pruefungstermin_id, $this->pruefung_id, $termin->beginn, $termin->ende, $termin->max, $termin->min))
{
$this->errormsg = 'Fehler beim ändern der Termine.ID'.$termin->pruefungstermin_id;
$this->db_query('ROLLBACK');
return false;
}
}
foreach ($this->lehrveranstaltungen as $lv)
{
if(!$this->saveLehrveranstaltungPruefung($lv, $this->pruefung_id))
{
$this->errormsg = 'Fehler beim Speichern der Lehrveranstaltungen.';
$this->db_query('ROLLBACK');
return false;
}
}
$this->db_query('COMMIT;');
return true;
}
return true;
}
else
{
$this->db_query('ROLLBACK');
$this->errormsg = 'Prüfung konnte nicht gespeichert werden.';
return false;
}
}
public function load($pruefung_id)
{
if(!is_numeric($pruefung_id))
{
$this->errormsg = "Prüfung ID ist keine gültige Zahl";
return false;
}
$qry = 'SELECT * FROM campus.tbl_pruefung WHERE pruefung_id='.$this->db_add_param($pruefung_id).';';
if(!$this->db_query($qry))
{
$this->errormsg = "Prüfung konnte nicht geladen werden";
return false;
}
else
{
while($row = $this->db_fetch_object())
{
$this->pruefung_id = $row->pruefung_id;
$this->mitarbeiter_uid = $row->mitarbeiter_uid;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->pruefungsfenster_id = $row->pruefungsfenster_id;
$this->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
$this->titel = $row->titel;
$this->beschreibung = $row->beschreibung;
$this->methode = $row->methode;
$this->einzeln = $this->db_parse_bool($row->einzeln);
$this->storniert = $this->db_parse_bool($row->storniert);
}
return true;
}
}
public function getPruefungByMitarbeiter($uid, $studiensemester_kurzbz=null)
{
$qry = 'SELECT * FROM campus.tbl_pruefung '
. 'WHERE mitarbeiter_uid='.$this->db_add_param($uid);
if($studiensemester_kurzbz!=null)
{
$qry .= ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).';';
}
else
{
$qry .= ';';
}
if(!$this->db_query($qry))
{
$this->errormsg = "Prüfungen konnten nicht geladen werden";
return false;
}
else
{
while($row = $this->db_fetch_object())
{
$obj = new pruefungCis();
$obj->pruefung_id = $row->pruefung_id;
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->pruefungsfenster_id = $row->pruefungsfenster_id;
$obj->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
$obj->titel = $row->titel;
$obj->beschreibung = $row->beschreibung;
$obj->methode = $row->methode;
$obj->einzeln = $this->db_parse_bool($row->einzeln);
$obj->storniert = $this->db_parse_bool($row->storniert);
$this->result[] = $obj;
}
return true;
}
}
protected function saveLehrveranstaltungPruefung($lehrveranstaltung_id, $pruefung_id)
{
if(!is_numeric($lehrveranstaltung_id))
{
$this->errormsg = "Lehrveranstaltung ID muss eine gültige Zahl sein";
return false;
}
if(!is_numeric($pruefung_id))
{
$this->errormsg = "Prüfung ID muss eine gültige Zahl sein";
return false;
}
$qry = 'INSERT INTO campus.tbl_lehrveranstaltung_pruefung (lehrveranstaltung_id, pruefung_id) VALUES ('
.$this->db_add_param($lehrveranstaltung_id).', '
.$this->db_add_param($pruefung_id).');';
if(!$this->db_query($qry))
{
$this->errormsg = "Lehrveranstaltungen konnten nicht gespeichert werden.";
return false;
}
return true;
}
public function getLehrveranstaltungenByPruefung()
{
$qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung WHERE pruefung_id='.$this->db_add_param($this->pruefung_id).';';
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new stdClass();
$obj->lehrveranstaltung_pruefung_id = $row->lehrveranstaltung_pruefung_id;
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$obj->pruefung_id = $row->pruefung_id;
array_push($this->lehrveranstaltungen, $obj);
}
return true;
}
else
{
$this->errormsg = "Zugehörige Lehrveranstaltungen konnten nicht geladen werden.";
return false;
}
}
public function saveTerminPruefung($pruefung_id, $beginn, $ende, $max, $min)
{
if(!is_numeric($pruefung_id))
{
$this->errormsg = "Pruefung ID muss eine gültige Zahl sein";
return false;
}
$qry = 'INSERT INTO campus.tbl_pruefungstermin (pruefung_id, von, bis, teilnehmer_max, teilnehmer_min) VALUES ('
. $this->db_add_param($pruefung_id).', '
. $this->db_add_param($beginn).', '
. $this->db_add_param($ende).', '
. $this->db_add_param($max).', '
. $this->db_add_param($min).');';
if(!$this->db_query($qry))
{
$this->errormsg = "Termine konnten nicht gespeichert werden!";
return false;
}
return true;
}
public function getTermineByPruefung()
{
$qry = 'SELECT * FROM campus.tbl_pruefungstermin WHERE pruefung_id='.$this->db_add_param($this->pruefung_id).';';
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new stdClass();
$obj->pruefungstermin_id = $row->pruefungstermin_id;
$obj->pruefung_id = $row->pruefung_id;
$obj->von = $row->von;
$obj->bis = $row->bis;
$obj->max = $row->teilnehmer_max;
$obj->min = $row->teilnehmer_min;
array_push($this->termine, $obj);
}
return true;
}
else
{
$this->errormsg = "Zugehörige Termine konnten nicht geladen werden.";
return false;
}
}
public function updateTerminPruefung($pruefungstermin_id, $pruefung_id, $beginn, $ende, $max, $min)
{
if(!is_numeric($pruefungstermin_id))
{
$this->errormsg = "Pruefungstermin ID muss eine gültige Zahl sein.";
return false;
}
$qry = 'UPDATE campus.tbl_pruefungstermin SET '
. 'pruefung_id='.$this->db_add_param($pruefung_id).', '
. 'von='.$this->db_add_param($beginn).', '
. 'bis='.$this->db_add_param($ende).', '
. 'teilnehmer_max='.$this->db_add_param($max).', '
. 'teilnehmer_min='.$this->db_add_param($min).' '
. 'WHERE pruefungstermin_id='.$this->db_add_param($pruefungstermin_id).';';
if(!$this->db_query($qry))
{
$this->errormsg = "Termin konnte nicht geändert werden.";
return false;
}
return true;
}
public function pruefungStornieren($pruefung_id)
{
if(!is_numeric($pruefung_id))
{
$this->errormsg = "Pruefung ID muss eine gültige Zahl sein.";
return false;
}
$qry = 'UPDATE campus.tbl_pruefung SET storniert=true WHERE pruefung_id='.$this->db_add_param($pruefung_id).';';
if(!$this->db_query($qry))
{
$this->errormsg = "Prüfung konnte nicht storniert werden.";
return false;
}
return true;
}
public function deleteLehrveranstaltungPruefung($lehrveranstaltung_id, $pruefung_id){
if(!is_numeric($lehrveranstaltung_id))
{
$this->errormsg = "Lehrveranstaltung ID muss eine gültige Zahl sein.";
return false;
}
if(!is_numeric($pruefung_id))
{
$this->errormsg = "Prüfung ID muss eine gültige Zahl sein.";
return false;
}
$qry = 'DELETE FROM campus.tbl_lehrveranstaltung_pruefung WHERE lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id).' AND pruefung_id='.$this->db_add_param($pruefung_id).';';
if(!$this->db_query($qry))
{
$this->errormsg = 'Lehrveranstaltung konnte nicht gelöscht werden.';
return false;
}
return true;
}
public function deleteTerminPruefung($pruefungstermin_id)
{
if(!is_numeric($pruefungstermin_id))
{
$this->errormsg = "Pruefungstermin ID muss eine gültige Zahl sein.";
return false;
}
$qry = 'DELETE FROM campus.tbl_pruefungstermin WHERE pruefungstermin_id='.$this->db_add_param($pruefungstermin_id).';';
if(!$this->db_query($qry))
{
$this->errormsg = 'Termin konnte nicht gelöscht werden.';
return false;
}
return true;
}
}
+310
View File
@@ -0,0 +1,310 @@
<?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(dirname(__FILE__) . '/basis_db.class.php');
class pruefungsfenster extends basis_db {
public $new; // boolean
public $result = array(); // pruefungsfenster Objekt
//Tabellenspalten in DB
public $pruefungsfenster_id; //bigint
public $studiensemester_kurzbz; //varchar(16)
public $oe_kurzbz; //varchar(32)
public $start; //date
public $ende; //date
/**
* Konstruktor
* @param pruefungsfenster_id ID des zu ladenden Pruefungfensters
*/
public function __construct($pruefungsfenster_id = null) {
parent::__construct();
if ($pruefungsfenster_id != null)
$this->load($pruefungsfenster_id);
}
public function __set($name, $value) {
switch ($name) {
case 'pruefungsfenster_id':
if (!is_numeric($value))
throw new Exception('Attribute pruefungsfenster_id must be numeric!"');
$this->$name = $value;
break;
default:
$this->$name = $value;
}
}
public function __get($name) {
return $this->$name;
}
/**
* Lädt einen Pruefungsfensterdatensatz
* @param $pruefungsfenster_id ID des Prüfungsfensters
* @return true, wenn ok; false im Fehlerfall
*/
public function load($pruefungsfenster_id) {
if(!is_numeric($pruefungsfenster_id))
{
$this->errormsg = "Prüfungsfenster ID ist keine gültige Zahl.";
return false;
}
$qry = 'SELECT * FROM campus.tbl_pruefungsfenster'
. ' WHERE pruefungsfenster_id='.$this->db_add_param($pruefungsfenster_id).';';
if(!$this->db_query($qry))
{
$this->errormsg = "Fehler beim Laden des Prüfungsfensters.";
return false;
}
if($row = $this->db_fetch_object())
{
$this->pruefungsfenster_id = $row->pruefungsfenster_id;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->oe_kurzbz = $row->oe_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
}
else
{
$this->errormsg = "Keine Datensatz mit dieser ID vorhanden.";
return false;
}
return true;
}
/**
* speichert den aktuellen Datensatz
*/
public function save() {
if ($this->new) {
$qry = 'INSERT INTO campus.tbl_pruefungsfenster (studiensemester_kurzbz, oe_kurzbz, start, ende) VALUES (' .
$this->db_add_param($this->studiensemester_kurzbz) . ', ' .
$this->db_add_param($this->oe_kurzbz) . ', ' .
$this->db_add_param($this->start) . ', ' .
$this->db_add_param($this->ende) . ');';
} else {
$qry = 'UPDATE campus.tbl_pruefungsfenster SET '.
'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '.
'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '.
'start='.$this->db_add_param($this->start).', '.
'ende='.$this->db_add_param($this->ende).' '.
'WHERE pruefungsfenster_id='.$this->db_add_param($this->pruefungsfenster_id).';';
}
if (!$this->db_query($qry)) {
$this->errormsg = "Datensatz konnte nicht gespeichert werden";
return false;
}
return true;
}
/**
* lädt alle vorhandenen Prüfungsfenster
* @param Datenbankspalte nach der sortiert werden soll
* @return true, wenn ok; false im Fehlerfall
*/
public function getAll($sort=null) {
$qry = "SELECT * FROM campus.tbl_pruefungsfenster";
if($sort != null)
{
$qry.= " ORDER BY ".$sort." ASC;";
}
else
{
$qry .= ";";
}
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new pruefungsfenster();
$obj->pruefungsfenster_id = $row->pruefungsfenster_id;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->start = $row->start;
$obj->ende = $row->ende;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Prüfungsfenster';
return false;
}
}
/**
* lädt alle Prüfungsfenster zu den angebenen Organisationseinheiten
* Es kann auch ein Array mit mehreren OEs übergeben werden.
* @param type $oe_kurzbz
*/
public function getByOe($oe_kurzbz) {
}
/**
* löscht das Prüfungsfenster mit der angegebenen ID
* @param $pruefungsfenster_id ID des Prüfungsfensters
* @return true, wenn ok; false, im Fehlerfall
*/
public function delete($pruefungsfenster_id)
{
if(!is_numeric($pruefungsfenster_id))
{
$this->errormsg = "Fehler: Die ID ist keine gültige Zahl.";
return false;
}
$qry = 'DELETE FROM campus.tbl_pruefungsfenster'
. ' WHERE pruefungsfenster_id='.$this->db_add_param($pruefungsfenster_id)
. ';';
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler: Datensatz konnte nicht gelöscht werden.';
return false;
}
return true;
}
/**
* prüft die Attribute dieser Klasse auf Gültigkeit
* @return true, wenn ok; false, im Fehlerfall
*/
protected function validate() {
}
/**
*
* @param String $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
* @param String $sort Spaltenname, nachdem sortiert werden soll
* @return boolean true, wenn ok; false im Fehlerfall
*/
public function getByStudiensemester($studiensemester_kurzbz, $sort=null)
{
$qry = "SELECT * FROM campus.tbl_pruefungsfenster WHERE studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if($sort != null)
{
$qry.= " ORDER BY ".$sort." ASC;";
}
else
{
$qry .= ";";
}
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new pruefungsfenster();
$obj->pruefungsfenster_id = $row->pruefungsfenster_id;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->start = $row->start;
$obj->ende = $row->ende;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Prüfungsfenster';
return false;
}
}
/**
* Baut die Datenstruktur für senden als JSON Objekt auf
*/
public function cleanResult()
{
$data = array();
if(count($this->result)>0)
{
foreach($this->result as $prfFenster)
{
$obj = new stdClass();
$obj->pruefungsfenster_id = $prfFenster->pruefungsfenster_id;
$obj->studiensemester_kurzbz = $prfFenster->studiensemester_kurzbz;
$obj->oe_kurzbz = $prfFenster->oe_kurzbz;
$obj->start = $prfFenster->start;
$obj->ende = $prfFenster->ende;
$data[]=$obj;
}
}
else
{
$obj = new stdClass();
$obj->pruefungsfenster_id = $this->pruefungsfenster_id;
$obj->studiensemester_kurzbz = $this->studiensemester_kurzbz;
$obj->oe_kurzbz = $this->oe_kurzbz;
$obj->start = $this->start;
$obj->ende = $this->ende;
$data[]=$obj;
}
return $data;
}
public function hasPruefungen($pruefungsfenster_id)
{
if(!is_numeric($pruefungsfenster_id))
{
$this->errormsg = "Die Prüfungsfenster ID ist keine gültige Zahl.";
return false;
}
$qry = 'SELECT * FROM campus.tbl_pruefung WHERE pruefungsfenster_id='.$this->db_add_param($pruefungsfenster_id).';';
if($this->db_query($qry))
{
if($this->db_num_rows()>0)
{
return true;
}
return false;
}
else
{
$this->errormsg = 'Daten konnten nicht gelsesen werden.';
return false;
}
}
}
?>
+120
View File
@@ -0,0 +1,120 @@
<?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(dirname(__FILE__) . '/basis_db.class.php');
class pruefungstermin extends basis_db{
public $new;
public $result = array();
public $pruefungstermin_id; //bigint
public $pruefung_id; //bigint
public $von; //timestamp without timezone
public $bis; //timestamp without timezone
public $teilnehmer_max; //smallint
public $teilnehmer_min; //smallint
/**
* Konstruktor
* @param pruefungsfenster_id ID des zu ladenden Pruefungfensters
*/
public function __construct($pruefungstermin_id = null) {
parent::__construct();
if ($pruefungstermin_id != null)
$this->load($pruefungstermin_id);
}
public function __set($name, $value) {
switch ($name) {
case 'pruefungstermin_id':
if (!is_numeric($value))
throw new Exception('Attribute pruefungstermin_id must be numeric!"');
$this->$name = $value;
break;
default:
$this->$name = $value;
}
}
public function __get($name) {
return $this->$name;
}
/**
* Lädt einen Prüfungstermin
* @param Integer Prüfungstermin ID
*/
public function load($pruefungstermin_id)
{
if(!is_numeric($pruefungstermin_id))
{
$this->errormsg = "Pruefungstermin ID muss eine gültige Zahl sein";
return false;
}
}
public function save()
{
}
/**
* Lädt alle Prüfungstermine
*/
public function getAll()
{
}
/**
* Lädt alle Prüfungstypen aus der Datenbank
* @return Array/Boolean Ein Array mit den Daten, wenn ok; ansonsten false
*/
public function getAllPruefungstypen()
{
$qry = 'SELECT * FROM lehre.tbl_pruefungstyp;';
if($this->db_query($qry))
{
$result = array();
while($row = $this->db_fetch_object())
{
$obj = new stdClass();
$obj->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
$obj->beschreibung = $row->beschreibung;
$obj->abschluss = $row->abschluss;
array_push($result, $obj);
}
}
else
{
$this->errormsg = "Prüfungstypen konnten nicht geladen werden.";
return false;
}
return $result;
}
}