mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
This commit is contained in:
@@ -300,9 +300,15 @@ function writePruefungsTable(e, data, anmeldung)
|
||||
termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear();
|
||||
frist = frist.getTime();
|
||||
frist = frist - (3*24*60*60*1000);
|
||||
frist = new Date(frist);
|
||||
frist = frist.getDate()+"."+(frist.getMonth()+1)+"."+frist.getFullYear();
|
||||
if(anmeldung || e.lehrveranstaltung[0].angemeldet)
|
||||
var fristDate = new Date(frist);
|
||||
frist = fristDate.getDate()+"."+(fristDate.getMonth()+1)+"."+fristDate.getFullYear();
|
||||
|
||||
if(fristDate < new Date())
|
||||
{
|
||||
if(!storno)
|
||||
button = "<p><span style='display: inline-block; width: 155px;'>Frist abgelaufen</span></br>";
|
||||
}
|
||||
else if(anmeldung || e.lehrveranstaltung[0].angemeldet)
|
||||
{
|
||||
if(storno)
|
||||
{
|
||||
@@ -631,13 +637,16 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id)
|
||||
|
||||
function writeAnmeldungen(data)
|
||||
{
|
||||
console.log(data);
|
||||
if(data.error === 'false')
|
||||
{
|
||||
var terminId = data.result[0].pruefungstermin_id;
|
||||
var lehrveranstaltung_id = data.result[0].lehrveranstaltung_id;
|
||||
var terminId = data.result.anmeldungen[0].pruefungstermin_id;
|
||||
var pruefung_id = data.result.anmeldungen[0].pruefung_id;
|
||||
var lehrveranstaltung_id = data.result.anmeldungen[0].lehrveranstaltung_id;
|
||||
var ort_kurzbz = data.result.ort_kurzbz;
|
||||
var liste = "<ul id='sortable'>";
|
||||
var count = 0;
|
||||
data.result.forEach(function(d){
|
||||
data.result.anmeldungen.forEach(function(d){
|
||||
count++;
|
||||
var vorname = d.student.vorname !== "null" ? d.student.vorname : "";
|
||||
var nachname = d.student.nachname !== "null" ? d.student.nachname : "";
|
||||
@@ -669,6 +678,15 @@ function writeAnmeldungen(data)
|
||||
liste += "</ul>";
|
||||
$("#reihungSpeichernButton").html("<input type='button' value='Reihung speichern' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>");
|
||||
$("#anmeldeDaten").html(liste);
|
||||
if(ort_kurzbz !== null)
|
||||
{
|
||||
$("#raumLink").html("<span>Prüfungsraum: </span>"+ort_kurzbz);
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#raumLink").html("<a href='#' onclick='openRaumDialog(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>Prüfungsort</a>");
|
||||
}
|
||||
|
||||
$(document).tooltip({
|
||||
position: {
|
||||
at: "right center",
|
||||
@@ -682,10 +700,19 @@ function writeAnmeldungen(data)
|
||||
$("#reihungSpeichernButton").empty();
|
||||
$("#kommentar").empty();
|
||||
$("#kommentarSpeichernButton").empty();
|
||||
$("#raumLink").empty();
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function openRaumDialog(terminId, lehrveranstaltung_id)
|
||||
{
|
||||
getRaeume(terminId);
|
||||
$("#raum").html('<h2>Prüfungsraum</h2><input onChange="changeStateOfRaumDropdown();" type="checkbox" /><span> im Büro</span></br><span style="font-weight: bold;">Raum: </span><select id="raeumeDropdown"></select>');
|
||||
$("#raumSpeichernButton").html("<input type='button' value='Raum speichern' onclick='saveRaum(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'/>");
|
||||
$("#raumDialog").dialog("open");
|
||||
}
|
||||
|
||||
/**
|
||||
* speichert die Reihung der Studenten einer Prüfungsanmeldung
|
||||
* @param {type} terminId ID des Prüfungstermines
|
||||
@@ -827,6 +854,7 @@ function loadPruefungStudiengang(studiengang_kz)
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
console.log(data);
|
||||
if(data.error === 'false')
|
||||
{
|
||||
$("#pruefungenListe").empty();
|
||||
@@ -1824,4 +1852,68 @@ function checkMinMaxTeilnehmer(min, max)
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function changeStateOfRaumDropdown()
|
||||
{
|
||||
console.log($("#raum input[type=checkbox]").prop("checked"));
|
||||
if($("#raum input[type=checkbox]").prop("checked") === true)
|
||||
{
|
||||
$("#raeumeDropdown").css("visibility", "hidden");
|
||||
$("#raeumeDropdown").prev().css("visibility", "hidden");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#raeumeDropdown").css("visibility", "visible");
|
||||
$("#raeumeDropdown").prev().css("visibility", "visible");
|
||||
}
|
||||
}
|
||||
|
||||
function saveRaum(terminId, lehrveranstaltung_id)
|
||||
{
|
||||
var ort_kurzbz;
|
||||
if($("#raum input[type=checkbox]").prop("checked") === true)
|
||||
{
|
||||
ort_kurzbz = "buero";
|
||||
}
|
||||
else
|
||||
{
|
||||
ort_kurzbz = $("#raeumeDropdown").val();
|
||||
}
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "saveRaum",
|
||||
ort_kurzbz: ort_kurzbz,
|
||||
terminId: terminId
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
console.log(data);
|
||||
$("#raumDialog").dialog("close");
|
||||
showAnmeldungen(terminId, lehrveranstaltung_id);
|
||||
});
|
||||
}
|
||||
|
||||
function getRaeume(terminId)
|
||||
{
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getAllFreieRaeume",
|
||||
terminId: terminId
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
console.log(data);
|
||||
var liste = "";
|
||||
data.result.forEach(function(d){
|
||||
liste += "<option value="+d.ort_kurzbz+">"+d.ort_kurzbz+"</option>"
|
||||
});
|
||||
$("#raeumeDropdown").html(liste);
|
||||
});
|
||||
}
|
||||
@@ -18,6 +18,11 @@ require_once('../../../../include/student.class.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/lehreinheit.class.php');
|
||||
require_once('../../../../include/studiengang.class.php');
|
||||
require_once('../../../../include/ort.class.php');
|
||||
require_once('../../../../include/stunde.class.php');
|
||||
require_once('../../../../include/reservierung.class.php');
|
||||
require_once('../../../../include/mitarbeiter.class.php');
|
||||
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
@@ -71,6 +76,15 @@ switch($method)
|
||||
case 'saveKommentar':
|
||||
$data = saveKommentar();
|
||||
break;
|
||||
case 'getAllFreieRaeume':
|
||||
$terminId = $_REQUEST["terminId"];
|
||||
$data = getAllFreieRaeume($terminId);
|
||||
break;
|
||||
case 'saveRaum':
|
||||
$terminId = $_REQUEST["terminId"];
|
||||
$ort_kurzbz = $_REQUEST["ort_kurzbz"];
|
||||
$data = saveRaum($terminId, $ort_kurzbz, $uid);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -471,9 +485,10 @@ function getAnmeldungenTermin()
|
||||
{
|
||||
$lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"];
|
||||
$pruefungstermin_id = $_REQUEST["pruefungstermin_id"];
|
||||
$pruefungstermin = new pruefungstermin($pruefungstermin_id);
|
||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id);
|
||||
foreach($anmeldungen as $a)
|
||||
$pruefungstermin->anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id);
|
||||
foreach($pruefungstermin->anmeldungen as $a)
|
||||
{
|
||||
$student = new student($a->uid);
|
||||
$temp = new stdClass();
|
||||
@@ -482,9 +497,9 @@ function getAnmeldungenTermin()
|
||||
$temp->uid = $student->uid;
|
||||
$a->student = $temp;
|
||||
}
|
||||
if(!empty($anmeldungen))
|
||||
if(!empty($pruefungstermin->anmeldungen))
|
||||
{
|
||||
$data['result']=$anmeldungen;
|
||||
$data['result']=$pruefungstermin;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
@@ -617,6 +632,10 @@ function getPruefungenStudiengang($uid, $aktStudiensemester)
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return typespeichert ein Kommentar zu einer Prüfungsanmeldung
|
||||
*/
|
||||
function saveKommentar()
|
||||
{
|
||||
$kommentar = $_REQUEST["kommentar"];
|
||||
@@ -637,4 +656,129 @@ function saveKommentar()
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* liefert alle freien Räume für einen Prüfungstermin
|
||||
*/
|
||||
function getAllFreieRaeume($terminId)
|
||||
{
|
||||
$pruefungstermin = new pruefungstermin();
|
||||
$pruefungstermin->load($terminId);
|
||||
$ort = new ort();
|
||||
$datum_von = explode(" ", $pruefungstermin->von);
|
||||
$datum_bis = explode(" ", $pruefungstermin->bis);
|
||||
$teilnehmer = $pruefungstermin->getNumberOfParticipants();
|
||||
$teilnehmer = $teilnehmer !== false ? $teilnehmer : 0;
|
||||
if($ort->search($datum_von[0], $datum_von[1], $datum_bis[1], null, $teilnehmer, true))
|
||||
{
|
||||
usort($ort->result, "compareRaeume");
|
||||
$data['result']=$ort->result;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$ort->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* vergleicht die Kurzbezeichnungen von 2 Räumen
|
||||
* @param $a Ort-Objekt
|
||||
* @param $b Ort-Objekt
|
||||
* @return $a < $b Wert < 0; $a > $b Wert > 0; $a = $b Wert 0
|
||||
*/
|
||||
function compareRaeume($a, $b)
|
||||
{
|
||||
return strcmp($a->ort_kurzbz, $b->ort_kurzbz);
|
||||
}
|
||||
|
||||
function saveRaum($terminId, $ort_kurzbz, $uid)
|
||||
{
|
||||
$pruefungstermin = new pruefungstermin($terminId);
|
||||
$stunde = new stunde();
|
||||
$datum_von = explode(" ", $pruefungstermin->von);
|
||||
$datum_bis = explode(" ", $pruefungstermin->bis);
|
||||
$stunden = $stunde->getStunden($datum_von[1], $datum_bis[1]);
|
||||
$reservierung = new reservierung();
|
||||
$reserviert = false;
|
||||
foreach($stunden as $h)
|
||||
{
|
||||
if($reservierung->isReserviert($ort_kurzbz, $datum_von[0], $h))
|
||||
$reserviert = true;
|
||||
}
|
||||
if(!$reserviert)
|
||||
{
|
||||
$pruefung = new pruefungCis($pruefungstermin->pruefung_id);
|
||||
$mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid);
|
||||
if($ort_kurzbz === "buero")
|
||||
{
|
||||
$pruefungstermin->ort_kurzbz = $ort_kurzbz;
|
||||
if($pruefungstermin->save(false))
|
||||
{
|
||||
$data['result']="reserviert";
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefungstermin->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$reservierung->studiengang_kz = "0";
|
||||
$reservierung->ort_kurzbz = $ort_kurzbz;
|
||||
$reservierung->uid = $pruefung->mitarbeiter_uid;
|
||||
$reservierung->datum = $datum_von[0];
|
||||
$reservierung->titel = $pruefung->titel;
|
||||
if(strlen($pruefung->titel) > 10)
|
||||
{
|
||||
$reservierung->titel = "Prüfung";
|
||||
}
|
||||
$reservierung->beschreibung = "Prüfung";
|
||||
$reservierung->insertamum = date('Y-m-d G:i:s');
|
||||
$reservierung->insertvon = $uid;
|
||||
$reservierungError = false;
|
||||
|
||||
foreach($stunden as $h)
|
||||
{
|
||||
$reservierung->stunde = $h;
|
||||
if(!$reservierung->save(true))
|
||||
{
|
||||
$reservierungError = true;
|
||||
}
|
||||
}
|
||||
if(!$reservierungError)
|
||||
{
|
||||
$pruefungstermin->ort_kurzbz = $reservierung->ort_kurzbz;
|
||||
if($pruefungstermin->save(false))
|
||||
{
|
||||
$data['result']="reserviert";
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefungstermin->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$reservierung->errormsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Reservierung nicht möglich.";
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
?>
|
||||
@@ -107,10 +107,8 @@ $benutzer = new student($uid);
|
||||
|
||||
#accordion p {
|
||||
margin: 0;
|
||||
height: 24px;
|
||||
}
|
||||
/* div {
|
||||
float: left;
|
||||
}*/
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
@@ -120,10 +120,14 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
#anmeldungen > div, h2 {
|
||||
#anmeldungen > * {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
#raum > * {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
#message {
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
@@ -199,12 +203,18 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
loadStudiengaenge();
|
||||
$("#raumDialog").dialog({
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: "400px"
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<h1>Anmeldungen Verwalten</h1>
|
||||
@@ -239,6 +249,17 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
<div id="kommentarSpeichernButton">
|
||||
|
||||
</div>
|
||||
<div id="raumLink">
|
||||
|
||||
</div>
|
||||
<div id="raumDialog">
|
||||
<div id="raum">
|
||||
|
||||
</div>
|
||||
<div id="raumSpeichernButton">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -459,6 +459,9 @@ class pruefungCis extends basis_db
|
||||
$obj->bis = $row->bis;
|
||||
$obj->max = $row->teilnehmer_max;
|
||||
$obj->min = $row->teilnehmer_min;
|
||||
$obj->anmeldung_von= $row->anmeldung_von;
|
||||
$obj->anmeldung_bis = $row->anmeldung_bis;
|
||||
$obj->ort_kurzbz = $row->ort_kurzbz;
|
||||
array_push($this->termine, $obj);
|
||||
}
|
||||
return true;
|
||||
@@ -495,7 +498,7 @@ class pruefungCis extends basis_db
|
||||
. '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).';';
|
||||
. 'WHERE pruefungstermin_id='.$this->db_add_param($pruefungstermin_id).';';
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
|
||||
@@ -34,6 +34,9 @@ class pruefungstermin extends basis_db{
|
||||
public $bis; //timestamp without timezone
|
||||
public $teilnehmer_max; //smallint
|
||||
public $teilnehmer_min; //smallint
|
||||
public $anmeldung_von; //date
|
||||
public $anmeldung_bis; //date
|
||||
public $ort_kurzbz; //varchar(16)
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -86,6 +89,9 @@ class pruefungstermin extends basis_db{
|
||||
$this->bis = $row->bis;
|
||||
$this->teilnehmer_max = $row->teilnehmer_max;
|
||||
$this->teilnehmer_min = $row->teilnehmer_min;
|
||||
$this->anmeldung_von= $row->anmeldung_von;
|
||||
$this->anmeldung_bis = $row->anmeldung_bis;
|
||||
$this->ort_kurzbz = $row->ort_kurzbz;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -151,4 +157,32 @@ class pruefungstermin extends basis_db{
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function save($new = false)
|
||||
{
|
||||
if($new)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE campus.tbl_pruefungstermin SET '
|
||||
. 'pruefung_id='.$this->db_add_param($this->pruefung_id).', '
|
||||
. 'von='.$this->db_add_param($this->von).', '
|
||||
. 'bis='.$this->db_add_param($this->bis).', '
|
||||
. 'teilnehmer_max='.$this->db_add_param($this->teilnehmer_max).', '
|
||||
. 'teilnehmer_min='.$this->db_add_param($this->teilnehmer_min).', '
|
||||
. 'anmeldung_von='.$this->db_add_param($this->anmeldung_von).', '
|
||||
. 'anmeldung_bis='.$this->db_add_param($this->anmeldung_bis).', '
|
||||
. 'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).' '
|
||||
. 'WHERE pruefungstermin_id='.$this->db_add_param($this->pruefungstermin_id).';';
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user