Reihungstestverwaltung Aufnahmestufen

This commit is contained in:
kindlm
2016-07-21 11:38:39 +02:00
parent ed6152dc46
commit 1a1d2de72c
6 changed files with 573 additions and 58 deletions
+18 -3
View File
@@ -60,6 +60,7 @@ class ort extends Ort_model
public $oe_kurzbz; // varchar(32)
public $m2; // numeric(8,2)
public $gebteil; // varchar(32)
public $arbeitsplaetze; // integer
public $ort_kurzbz_old; // string
@@ -126,6 +127,7 @@ class ort extends Ort_model
$ort_obj->m2 = $row->m2;
$ort_obj->oe_kurzbz = $row->oe_kurzbz;
$ort_obj->gebteil = $row->gebteil;
$ort_obj->arbeitsplaetze = $row->arbeitsplaetze;
$this->result[] = $ort_obj;
}
return true;
@@ -173,6 +175,7 @@ class ort extends Ort_model
$this->gebteil = $row->gebteil;
$this->oe_kurzbz = $row->oe_kurzbz;
$this->m2 = $row->m2;
$this->arbeitsplaetze = $row->arbeitsplaetze;
}
else
{
@@ -228,7 +231,7 @@ class ort extends Ort_model
{
//Neuen Datensatz anlegen
$qry = 'INSERT INTO public.tbl_ort (ort_kurzbz, bezeichnung, planbezeichnung, max_person, aktiv, lehre, reservieren, lageplan,
dislozierung, kosten, stockwerk, standort_id, telefonklappe, insertamum, insertvon, updateamum, updatevon, content_id,ausstattung,m2,gebteil,oe_kurzbz) VALUES ('.
dislozierung, kosten, stockwerk, standort_id, telefonklappe, insertamum, insertvon, updateamum, updatevon, content_id,ausstattung,m2,gebteil,oe_kurzbz,arbeitsplaetze) VALUES ('.
$this->db_add_param($this->ort_kurzbz).', '.
$this->db_add_param($this->bezeichnung).', '.
$this->db_add_param($this->planbezeichnung).', '.
@@ -250,7 +253,8 @@ class ort extends Ort_model
$this->db_add_param($this->ausstattung).','.
$this->db_add_param($this->m2).','.
$this->db_add_param($this->gebteil).','.
$this->db_add_param($this->oe_kurzbz).');';
$this->db_add_param($this->oe_kurzbz).','.
$this->db_add_param($this->arbeitsplaetze).');';
}
else
{
@@ -276,7 +280,8 @@ class ort extends Ort_model
'content_id='.$this->db_add_param($this->content_id).', '.
'm2='.$this->db_add_param($this->m2).', '.
'gebteil='.$this->db_add_param($this->gebteil).', '.
'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).' '.
'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '.
'arbeitsplaetze='.$this->db_add_param($this->arbeitsplaetze).' '.
'WHERE ort_kurzbz = '.$this->db_add_param(($this->ort_kurzbz_old!='')?$this->ort_kurzbz_old:$this->ort_kurzbz).';';
}
@@ -390,6 +395,10 @@ class ort extends Ort_model
$ort_obj->standort_id = $row->standort_id;
$ort_obj->telefonklappe = $row->telefonklappe;
$ort_obj->content_id = $row->content_id;
$ort_obj->m2 = $row->m2;
$ort_obj->gebteil = $row->gebteil;
$ort_obj->oe_kurzbz = $row->oe_kurzbz;
$ort_obj->arbeitsplaetze = $row->arbeitsplaetze;
$this->result[] = $ort_obj;
}
@@ -454,6 +463,10 @@ class ort extends Ort_model
$ort_obj->standort_id = $row->standort_id;
$ort_obj->telefonklappe = $row->telefonklappe;
//$ort_obj->content_id = $row->content_id;
$ort_obj->m2 = $row->m2;
$ort_obj->gebteil = $row->gebteil;
$ort_obj->oe_kurzbz = $row->oe_kurzbz;
$ort_obj->arbeitsplaetze = $row->arbeitsplaetze;
$this->result[] = $ort_obj;
}
@@ -507,6 +520,7 @@ class ort extends Ort_model
$ort_obj->m2 = $row->m2;
$ort_obj->oe_kurzbz = $row->oe_kurzbz;
$ort_obj->gebteil = $row->gebteil;
$ort_obj->arbeitsplaetze = $row->arbeitsplaetze;
$this->result[] = $ort_obj;
}
return true;
@@ -563,6 +577,7 @@ class ort extends Ort_model
$ort_obj->m2 = $row->m2;
$ort_obj->oe_kurzbz = $row->oe_kurzbz;
$ort_obj->gebteil = $row->gebteil;
$ort_obj->arbeitsplaetze = $row->arbeitsplaetze;
$this->result[] = $ort_obj;
}
return true;
+162 -6
View File
@@ -17,7 +17,8 @@
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>
* Manfred Kindl < manfred.kindl@technikum-wien.at >
*/
/**
* Klasse Reihungstest
@@ -47,6 +48,8 @@ class reihungstest extends basis_db
public $oeffentlich=false; // boolean
public $max_teilnehmer; // integer
public $studiensemester_kurzbz; //string
public $stufe; //smallint
public $anmeldefrist; //date
/**
* Konstruktor
@@ -95,6 +98,7 @@ class reihungstest extends basis_db
$this->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->studiensemester_kurzbz =$row->studiensemester_kurzbz;
$this->stufe = $row->stufe;
$this->anmeldefrist = $row->anmeldefrist;
return true;
}
else
@@ -143,6 +147,8 @@ class reihungstest extends basis_db
$obj->oeffentlich = $this->db_parse_bool($row->oeffentlich);
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$obj->studiensemester_kurzbz =$row->studiensemester_kurzbz;
$obj->stufe = $row->stufe;
$obj->anmeldefrist = $row->anmeldefrist;
$this->result[] = $obj;
}
@@ -199,7 +205,7 @@ class reihungstest extends basis_db
//Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO public.tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit,
insertamum, insertvon, updateamum, updatevon, max_teilnehmer, oeffentlich, freigeschaltet, studiensemester_kurzbz) VALUES('.
insertamum, insertvon, updateamum, updatevon, max_teilnehmer, oeffentlich, freigeschaltet, studiensemester_kurzbz, stufe, anmeldefrist) VALUES('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->ort_kurzbz).', '.
$this->db_add_param($this->anmerkung).', '.
@@ -210,7 +216,9 @@ class reihungstest extends basis_db
$this->db_add_param($this->max_teilnehmer).','.
$this->db_add_param($this->oeffentlich, FHC_BOOLEAN).','.
$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).','.
$this->db_add_param($this->studiensemester_kurzbz).');';
$this->db_add_param($this->studiensemester_kurzbz).','.
$this->db_add_param($this->stufe, FHC_INTEGER).','.
$this->db_add_param($this->anmeldefrist).');';
}
else
{
@@ -225,7 +233,9 @@ class reihungstest extends basis_db
'max_teilnehmer='.$this->db_add_param($this->max_teilnehmer).', '.
'oeffentlich='.$this->db_add_param($this->oeffentlich, FHC_BOOLEAN).', '.
'freigeschaltet='.$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).', '.
'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).' '.
'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '.
'stufe='.$this->db_add_param($this->stufe, FHC_INTEGER).', '.
'anmeldefrist='.$this->db_add_param($this->anmeldefrist).' '.
'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';';
}
@@ -305,7 +315,9 @@ class reihungstest extends basis_db
$obj->max_teilnehmer = $row->max_teilnehmer;
$obj->oeffentlich = $this->db_parse_bool($row->oeffentlich);
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$obj->studiensemester_kurzbz =$row->studiensemester_kurzbz;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->stufe = $row->stufe;
$obj->anmeldefrist = $row->anmeldefrist;
$this->result[] = $obj;
}
@@ -360,6 +372,8 @@ class reihungstest extends basis_db
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$obj->studiensemester_kurzbz =$row->studiensemester_kurzbz;
$obj->angemeldete_teilnehmer = $row->angemeldete_teilnehmer;
$obj->stufe = $row->stufe;
$obj->anmeldefrist = $row->anmeldefrist;
$this->result[] = $obj;
}
@@ -400,7 +414,9 @@ class reihungstest extends basis_db
$obj->max_teilnehmer = $row->max_teilnehmer;
$obj->oeffentlich = $this->db_parse_bool($row->oeffentlich);
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$obj->studiensemester_kurzbz =$row->studiensemester_kurzbz;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->stufe = $row->stufe;
$obj->anmeldefrist = $row->anmeldefrist;
$this->result[] = $obj;
}
@@ -557,4 +573,144 @@ class reihungstest extends basis_db
return false;
}
}
/**
* Liefert die Orte, die einem Reihungstest zugeordnet sind
* @param integer $reihungstest_id ID des Reihungstests, dessen Ort zurueckgegeben werden sollen
* @return true wenn ok, sonst false
*/
public function getOrteReihungstest($reihungstest_id)
{
$qry = "SELECT
*
FROM
public.tbl_rt_ort
WHERE
tbl_rt_ort.rt_id=".$this->db_add_param($reihungstest_id)."
ORDER BY
ort_kurzbz";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new stdClass();
$obj->rt_id = $row->rt_id;
$obj->ort_kurzbz = $row->ort_kurzbz;
$obj->uid = $row->uid;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/*
public function getPersonReihungstest($person_id, $rt_id)
{
$qry = "SELECT
*
FROM
public.tbl_rt_person
WHERE
tbl_rt_person.person_id=".$this->db_add_param($person_id)."
AND rt_id=".$this->db_add_param($rt_id);
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->rt_id = $row->rt_id;
$this->person_id = $row->person_id;
$this->anmeldedatum = $row->anmeldedatum;
$this->teilgenommen = $this->db_parse_bool($row->teilgenommen);
$this->ort_kurzbz = $row->ort_kurzbz;
$this->punkte = $row->punkte;
return true;
}
else
{
$this->errormsg = 'Eintrag nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}*/
/**
* Speichert eine Raumzuteilung zu einem Reihungstesttermin
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz mit der ID $reihungstest_id und $ort_kurzbz aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
public function saveOrtReihungstest()
{
if($this->new)
{
$qry = "INSERT INTO public.tbl_rt_ort(rt_id, ort_kurzbz, uid) VALUES(".
$this->db_add_param($this->rt_id, FHC_INTEGER).','.
$this->db_add_param($this->ort_kurzbz).','.
$this->db_add_param($this->uid).');';
}
else
{
$qry = "UPDATE public.tbl_rt_ort SET ".
' ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).','.
' uid='.$this->db_add_param($this->uid).' '.
' WHERE rt_id='.$this->db_add_param($this->rt_id, FHC_INTEGER).' AND '.
' ort_kurzbz='.$this->db_add_param($this->ort_kurzbz);
}
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return false;
}
}
/**
* Loescht einen Ort zu einem Reihungstest Eintrag
*/
public function deleteOrtReihungstest($reihungstest_id, $ort_kurzbz)
{
$qry = "DELETE FROM public.tbl_rt_ort
WHERE rt_id=".$this->db_add_param($reihungstest_id, FHC_INTEGER)."
AND ort_kurzbz=".$this->db_add_param($ort_kurzbz);
if($this->db_query($qry))
{
return true;
}
else
{
$this->erromsg='Fehler beim Löschen der Daten';
return false;
}
}
}
@@ -40,6 +40,7 @@ if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='ort')
{
$item['ort_kurzbz']=html_entity_decode($row->ort_kurzbz);
$item['planbezeichnung']=html_entity_decode($row->planbezeichnung);
$item['bezeichnung']=html_entity_decode($row->bezeichnung);
$result_obj[]=$item;
}
echo json_encode($result_obj);
@@ -61,6 +62,7 @@ if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='ort_aktiv')
{
$item['ort_kurzbz']=html_entity_decode($row->ort_kurzbz);
$item['planbezeichnung']=html_entity_decode($row->planbezeichnung);
$item['bezeichnung']=html_entity_decode($row->bezeichnung);
$result_obj[]=$item;
}
echo json_encode($result_obj);
+6
View File
@@ -66,6 +66,7 @@
$oe_kurzbz='';
$gebteil='';
$m2='';
$arbeitsplaetze='';
$neu = "true";
@@ -91,6 +92,7 @@
$m2 = str_replace(',','.',$_POST["m2"]);
$oe_kurzbz = $_POST["oe_kurzbz"];
$gebteil = $_POST["gebteil"];
$arbeitsplaetze = $_POST["arbeitsplaetze"];
$sg_update = new ort();
$sg_update->ort_kurzbz = $ort_kurzbz;
@@ -112,6 +114,7 @@
$sg_update->m2 = $m2;
$sg_update->gebteil = $gebteil;
$sg_update->oe_kurzbz = $oe_kurzbz;
$sg_update->arbeitsplaetze = $arbeitsplaetze;
if ($_POST["neu"] == "true")
$sg_update->new = 1;
@@ -151,6 +154,7 @@
$gebteil = $sg->gebteil;
$m2 = $sg->m2;
$oe_kurzbz = $sg->oe_kurzbz;
$arbeitsplaetze = $sg->arbeitsplaetze;
$neu = "false";
}
@@ -374,6 +378,8 @@
<tr>
<td>Telefonklappe</td>
<td><input class="detail" type="text" name="telefonklappe" size="3" maxlength="8" value="'.$telefonklappe.'" onchange="submitable()"></td>
<td>Anz. Arbeitsplätze</td>
<td><input class="detail" type="text" name="arbeitsplaetze" size="3" maxlength="8" value="'.$arbeitsplaetze.'" onchange="submitable()"></td>
</tr>
<tr>
<td valign="top">Lageplan</td>
+2
View File
@@ -117,6 +117,7 @@ $htmlstr = "
<th>Bezeichnung</th>
<th>Planbezeichnung</th>
<th>Max. Person</th>
<th>Arbeitsplaetze</th>
<th>Lehre</th>
<th>Reservieren</th>
<th>Aktiv</th>
@@ -134,6 +135,7 @@ foreach ($sg->result as $twraum)
$htmlstr .= " <td>".$twraum->bezeichnung."</td>\n";
$htmlstr .= " <td>".$twraum->planbezeichnung."</td>\n";
$htmlstr .= " <td>".$twraum->max_person."</td>\n";
$htmlstr .= " <td>".$twraum->arbeitsplaetze."</td>\n";
// Lehre boolean setzen
+383 -49
View File
@@ -26,7 +26,7 @@
*
* - Anlegen und Bearbeiten von Terminen
* - Export von Anwesenheitslisten als Excel
* - Uebertragung der Ergebniss-Punkte ins FAS
* - Uebertragung der Ergebnis-Punkte ins FAS
*
* Parameter:
* excel ... wenn gesetzt, dann wird die Anwesenheitsliste als Excel exportiert
@@ -45,6 +45,8 @@ require_once('../../include/prestudent.class.php');
require_once('../../include/Excel/excel.php');
require_once('../../include/adresse.class.php');
define('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND', '5');
if (!$db = new basis_db())
{
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -65,7 +67,7 @@ $rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('lehre/reihungstest'))
{
die('Sie haben keine Berechtigung fuer diese Seite');
die($rechte->errormsg);
}
$studiengang = new studiengang();
@@ -223,10 +225,22 @@ if(isset($_GET['excel']))
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
<script src="../../include/js/jquery1.9.min.js" type="text/javascript"></script>
<link href="../../skin/jquery.ui.timepicker.css" rel="stylesheet" type="text/css"/>
<script src="../../include/js/jquery.ui.timepicker.js" type="text/javascript" ></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#datepicker_datum").datepicker($.datepicker.regional['de']);
$(".datepicker_datum").datepicker($.datepicker.regional['de']);
$( ".timepicker" ).timepicker({
showPeriodLabels: false,
hourText: "Stunde",
minuteText: "Minute",
hours: {starts: 7,ends: 22},
rows: 4,
});
$("#ort").autocomplete({
source: "../lehre/reservierung_autocomplete.php?autocomplete=ort_aktiv",
@@ -237,7 +251,7 @@ if(isset($_GET['excel']))
for(i in ui.content)
{
ui.content[i].value=ui.content[i].ort_kurzbz;
ui.content[i].label=ui.content[i].ort_kurzbz;
ui.content[i].label=ui.content[i].ort_kurzbz+" "+ui.content[i].bezeichnung;
}
},
select: function(event, ui)
@@ -247,11 +261,42 @@ if(isset($_GET['excel']))
}
});
$(".aufsicht_uid").autocomplete({
source: "../../cis/private/tools/zeitaufzeichnung_autocomplete.php?autocomplete=kunde",
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].uid;
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
$(this.id).val(ui.item.uid);
}
});
$("#t1").tablesorter(
{
sortList: [[3,0]],
widgets: ["zebra"]
});
$(".tablesorter").each(function(i,v)
{
$("#"+v.id).tablesorter(
{
widgets: ["zebra"],
sortList: [[3,0]],
headers: {0: { sorter: false}}
})
});
});
</script>
</head>
@@ -264,7 +309,7 @@ if(isset($_POST['speichern']))
if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui'))
{
die('Sie haben keine Berechtigung fuer diese Aktion');
die($rechte->errormsg);
}
$reihungstest = new reihungstest();
@@ -302,7 +347,7 @@ if(isset($_POST['speichern']))
if(!$error)
{
$reihungstest->studiengang_kz = $_POST['studiengang_kz'];
$reihungstest->ort_kurzbz = $_POST['ort_kurzbz'];
//$reihungstest->ort_kurzbz = $_POST['ort_kurzbz'];
$reihungstest->anmerkung = $_POST['anmerkung'];
$reihungstest->datum = $datum_obj->formatDatum($_POST['datum']);
$reihungstest->uhrzeit = $_POST['uhrzeit'];
@@ -310,11 +355,49 @@ if(isset($_POST['speichern']))
$reihungstest->freigeschaltet = isset($_POST['freigeschaltet']);
$reihungstest->max_teilnehmer = filter_input(INPUT_POST, 'max_teilnehmer', FILTER_VALIDATE_INT);
$reihungstest->oeffentlich = filter_input(INPUT_POST, 'oeffentlich', FILTER_VALIDATE_BOOLEAN);
$reihungstest->stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT);
$reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']);
$reihungstest->updatevon = $user;
if($reihungstest->save())
{
echo '<b>Daten wurden erfolgreich gespeichert</b> <script>window.opener.StudentReihungstestDropDownRefresh();</script>';
if (isset($_POST['ort_kurzbz']) && $_POST['ort_kurzbz']!='')
{
if($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui'))
{
$orte_zugeteilt = new reihungstest();
$orte_zugeteilt->getOrteReihungstest($reihungstest->reihungstest_id);
$zugeteilt = false;
foreach ($orte_zugeteilt->result AS $row)
{
if ($row->ort_kurzbz == $_POST['ort_kurzbz'])
{
$zugeteilt = true;
break;
}
}
// Check, ob der Raum schon diesem RT zugeteilt ist
if ($zugeteilt == false)
{
$add_ort = new reihungstest();
$add_ort->new = true;
$add_ort->rt_id = $reihungstest->reihungstest_id;
$add_ort->ort_kurzbz = $_POST['ort_kurzbz'];
$add_ort->uid = null;
if ($add_ort->saveOrtReihungstest())
{
echo '<b>Daten wurden erfolgreich gespeichert</b> <script>window.opener.StudentReihungstestDropDownRefresh();</script>';
}
else
echo '<span class="input_error">Fehler beim Speichern der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).'</span>';
}
else
echo '<span class="input_error">Der Raum '.$_POST['ort_kurzbz'].' ist bereits diesem Reihungstest zugeteilt</span>';
}
else
die($rechte->errormsg);
}
$reihungstest_id = $reihungstest->reihungstest_id;
$stg_kz = $reihungstest->studiengang_kz;
}
@@ -326,6 +409,46 @@ if(isset($_POST['speichern']))
$neu=false;
}
if(isset($_POST['raumzuteilung_speichern']))
{
if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su'))
{
die($rechte->errormsg);
}
$raumzuteilung = new reihungstest();
if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='')
{
//Reihungstest laden
if(!$raumzuteilung->load($_POST['reihungstest_id']))
{
die($raumzuteilung->errormsg);
}
$prestudent_ids = $_POST['checkbox'];
foreach ($prestudent_ids AS $key=>$value)
{
// UID aus POST-String auslesen
$raumzuteilung->new = false;
$raumzuteilung->rt_id = $_POST['reihungstest_id'];
$raumzuteilung->rt_id_old = $_POST['reihungstest_id'];
$raumzuteilung->person_id = $key;
$raumzuteilung->anmeldedatum = date('Y-m-d H:i:s');;
$raumzuteilung->teilgenommen = false;
$raumzuteilung->ort_kurzbz = $_POST['raumzuteilung'];
$raumzuteilung->punkte = 0;
if (!$raumzuteilung->savePersonReihungstest())
{
echo '<span class="input_error">Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).'</span>';
}
}
$reihungstest_id = $_POST['reihungstest_id'];
//$stg_kz = $save_aufsicht->studiengang_kz;
}
$neu=false;
}
// Uebertraegt die Punkte eines Prestudenten ins FAS
if(isset($_GET['type']) && $_GET['type']=='savertpunkte')
{
@@ -386,6 +509,64 @@ if(isset($_GET['type']) && $_GET['type']=='saveallrtpunkte')
}
}
if(isset($_POST['aufsicht']))
{
if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su'))
{
die($rechte->errormsg);
}
$save_aufsicht = new reihungstest();
if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='')
{
//Reihungstest laden
if(!$save_aufsicht->load($_POST['reihungstest_id']))
{
die($save_aufsicht->errormsg);
}
$aufsichtspersonen = $_POST['aufsicht'];
foreach ($aufsichtspersonen AS $key=>$value)
{
// UID aus POST-String auslesen
$length = (strrpos($value, ')')) - (strpos($value, '('));
$uid = substr($value,strpos($value, '(')+1, $length-1);
$save_aufsicht->new = false;
$save_aufsicht->rt_id = $_POST['reihungstest_id'];
$save_aufsicht->ort_kurzbz = $key;
$save_aufsicht->uid = $uid;
if (!$save_aufsicht->saveOrtReihungstest())
{
echo '<span class="input_error">Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).'</span>';
}
}
$reihungstest_id = $save_aufsicht->reihungstest_id;
$stg_kz = $save_aufsicht->studiengang_kz;
}
$neu=false;
}
if(isset($_POST['delete_ort']))
{
if(!$rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid'))
{
die($rechte->errormsg);
}
if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='')
{
$delete_ort = new reihungstest();
if (!$delete_ort->deleteOrtReihungstest($_POST['reihungstest_id'], $_POST['delete_ort']))
echo '<span class="input_error">Fehler beim löschen der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).'</span>';
$reihungstest_id = $_POST['reihungstest_id'];
}
$neu=false;
}
//var_dump($_POST);
echo '<br><table width="100%"><tr><td>';
@@ -459,12 +640,13 @@ else
$reihungstest_id='';
$reihungstest->datum = date('Y-m-d');
$reihungstest->uhrzeit = date('H:i:s');
$reihungstest->anmeldefrist = date('Y-m-d', time() - 60 * 60 * 24);
}
//Formular zum Bearbeiten des Reihungstests
?>
<input type='button' value='Neuen Termin anlegen' onclick='window.location.href="<?php echo $_SERVER['PHP_SELF'] ?>?stg_kz=<?php echo $stg_kz ?>&neu=true"' >
<hr>
<form method='POST' action='<?php echo $_SERVER['PHP_SELF'] ?>'>
<form id='rt_form' method='POST' action='<?php echo $_SERVER['PHP_SELF'] ?>'>
<input type='hidden' value='<?php echo $reihungstest->reihungstest_id ?>' name='reihungstest_id' />
<table>
@@ -491,8 +673,66 @@ else
</td>
</tr>
<tr>
<td>Ort</td>
<td><input id="ort" type="text" name="ort_kurzbz" placeholder="Ort eingeben" value="<?php echo $db->convert_html_chars($reihungstest->ort_kurzbz) ?>"></td>
<td>Stufe</td>
<td>
<select name='stufe'>
<option value=''>-- keine Auswahl --</option>
<?php for($i=1; $i<=3; $i++)
{
if($reihungstest->stufe==$i)
$selected = 'selected="selected"';
else
$selected = ''; ?>
<option value="<?php echo $i ?>" <?php echo $selected ?>><?php echo $i ?></option>
<?php } ?>
</select>
</td>
</tr>
<tr>
<td style="vertical-align: top">Ort</td>
<?php
$arbeitsplaetze_sum = 0;
if(!$neu)
{
$orte = new Reihungstest();
$orte->getOrteReihungstest($reihungstest->reihungstest_id);
echo '<td><table>';
if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui'))
{
echo '<tr><td colspan="2"><input id="ort" type="text" name="ort_kurzbz" placeholder="Ort eingeben" value="">';
echo '&nbsp;<button type="submit" name="speichern"><img src="../../skin/images/list-add.png" alt="Ort hinzufügen" height="13px"></button>';
echo '</td></tr>';
}
foreach ($orte->result AS $row)
{
//echo '<tr><td>&nbsp;</td><td>';
//echo '<br>';
$ort = new ort();
$ort->load($row->ort_kurzbz);
$arbeitsplaetze = $ort->arbeitsplaetze - (ceil(($ort->arbeitsplaetze/100)*REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND));
$person = new Person();
$person->getPersonFromBenutzer($row->uid);
if ($row->uid != '')
$anzeigename = $person->vorname.' '.$person->nachname.' ('.$row->uid.')';
else
$anzeigename = '';
//echo '<div style="border: 1px solid grey; padding: 2px; margin: 2px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; width: content;">'.$row->ort_kurzbz;
echo '<tr><td>'.$row->ort_kurzbz.' ('.$arbeitsplaetze.' Personen)</td><td>';
//echo ' <input type="hidden" id="aufsicht_'.$row->ort_kurzbz.'" name="aufsicht['.$row->ort_kurzbz.']" value="'.$db->convert_html_chars($row->uid).'">';
echo ' <input type="text" id="aufsicht_'.$row->ort_kurzbz.'" class="aufsicht_uid" name="aufsicht['.$row->ort_kurzbz.']" value="'.$anzeigename.'" placeholder="Aufsichtsperson" size="32">';
if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid'))
echo '<button type="submit" name="delete_ort" value="'.$row->ort_kurzbz.'"><img src="../../skin/images/delete_x.png" alt="Ort hinzufügen" height="13px"></button>';
//echo '</div></td></tr>';
echo '</td></tr>';
$arbeitsplaetze_sum = $arbeitsplaetze_sum + $arbeitsplaetze;
}
echo '</table></td>';
//echo '<td><input id="ort" type="text" name="ort_kurzbz" placeholder="Ort eingeben" value="'.$db->convert_html_chars($reihungstest->ort_kurzbz).'"></td>';
}
else
echo '<td>Nach dem Anlegen eines Termins, können Sie Räume zuordnen</td>';
?>
</tr>
<tr>
<td>Anmerkung</td>
@@ -500,17 +740,21 @@ else
</tr>
<tr>
<td>Datum</td>
<td><input id="datepicker_datum" type="text" name="datum" value="<?php echo $datum_obj->convertISODate($reihungstest->datum) ?>"></td>
<td><input class="datepicker_datum" type="text" name="datum" value="<?php echo $datum_obj->convertISODate($reihungstest->datum) ?>"></td>
</tr>
<tr>
<td>Uhrzeit</td>
<td><input type="text" name="uhrzeit" value="<?php echo $db->convert_html_chars($datum_obj->formatDatum($reihungstest->uhrzeit,'H:i')) ?>"> (Format: HH:MM)</td>
<td><input type="text" class="timepicker" name="uhrzeit" value="<?php echo $db->convert_html_chars($datum_obj->formatDatum($reihungstest->uhrzeit,'H:i')) ?>" placeholder="HH:MM"> (Format: HH:MM)</td>
</tr>
<tr>
<td>max Teilnehmer</td>
<td>Anmeldefrist</td>
<td><input class="datepicker_datum" type="text" name="anmeldefrist" value="<?php echo $datum_obj->convertISODate($reihungstest->anmeldefrist) ?>"></td>
</tr>
<tr>
<td>Max TeilnehmerInnen</td>
<td>
<input type="number" name="max_teilnehmer" id="max_teilnehmer" value="<?php echo $db->convert_html_chars($reihungstest->max_teilnehmer) ?>">
(optional - nur Zahlen)
<input type="number" name="max_teilnehmer" id="max_teilnehmer" value="<?php echo ($reihungstest->max_teilnehmer!=''?$reihungstest->max_teilnehmer:'') ?>">
(optional; <?php echo $arbeitsplaetze_sum; ?> laut Raumkapazität)
</td>
</tr>
<tr>
@@ -528,13 +772,22 @@ else
(Kurz vor Testbeginn aktivieren)
</td>
</tr>
<!--<tr>
<td>Plätze</td>
<td>
<?php echo $arbeitsplaetze_sum ?> (inkl. Schwund)
</td>
</tr>-->
<tr>
<td>&nbsp;</td>
</tr>
<?php if(!$neu)
$val = 'Änderung Speichern';
else
$val = 'Neu anlegen'; ?>
<tr>
<td></td>
<td><input type="submit" name="speichern" value="<?php echo $val ?>"></td>
<td><button type="submit" name="speichern"><?php echo $val ?></button></td>
</tr>
</table>
</form>
@@ -550,25 +803,80 @@ if($reihungstest_id!='')
echo '</td></tr></table>';
//Liste der Interessenten die zum Reihungstest angemeldet sind
$qry = "SELECT *, (SELECT kontakt FROM tbl_kontakt WHERE kontakttyp='email' AND person_id=tbl_prestudent.person_id AND zustellung=true LIMIT 1) as email,
(SELECT ausbildungssemester FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND datum=(SELECT MAX(datum) FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND status_kurzbz='Interessent') LIMIT 1) as ausbildungssemester
FROM public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
WHERE reihungstest_id=".$db->db_add_param($reihungstest_id, FHC_INTEGER)."
ORDER BY nachname, vorname";
$mailto = '';
if($result = $db->db_query($qry))
{
echo '<span style="font-size: 9pt">Anzahl: '.$db->db_num_rows($result).'</span>';
$pruefling = new pruefling();
$qry = "SELECT
prestudent_id,
person_id,
vorname,
nachname,
ort_kurzbz,
studiengang_kz,
gebdatum,
rt_punkte1
,(
SELECT kontakt
FROM tbl_kontakt
WHERE kontakttyp = 'email'
AND person_id = tbl_prestudent.person_id
AND zustellung = true LIMIT 1
) AS email
,(
SELECT ausbildungssemester
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND datum = (
SELECT MAX(datum)
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Interessent'
) LIMIT 1
) AS ausbildungssemester
,(
SELECT orgform_kurzbz
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND datum = (
SELECT MAX(datum)
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Interessent'
) LIMIT 1
) AS orgform_kurzbz
FROM public.tbl_prestudent
JOIN public.tbl_person USING (person_id)
LEFT JOIN public.tbl_rt_person USING (person_id)
WHERE reihungstest_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)."
ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname ";
echo "<table class='tablesorter' id='t1'>
$mailto = '';
$result_arr = array();
if($result = $db->db_query($qry))
while($row = $db->db_fetch_object($result))
$result_arr[] = $row;
//var_dump($result_arr);
echo '<table><tr>';
echo '<span style="font-size: 9pt">Anzahl: '.$db->db_num_rows($result).'/'.($reihungstest->max_teilnehmer!=''?$reihungstest->max_teilnehmer:$arbeitsplaetze_sum).'</span>';
$pruefling = new pruefling();
$orte = new Reihungstest();
$orte->getOrteReihungstest($reihungstest->reihungstest_id);
$cnt = 0;
foreach ($orte->result AS $ort)
{
$cnt++;
echo '<td style="vertical-align: top">';
echo '<div align="center"><b>'.$ort->ort_kurzbz.'</b></div>';
echo '<form id="raumzuteilung_form['.$ort->ort_kurzbz.']" method="POST" action="'.$_SERVER['PHP_SELF'].'">';
echo '<input type="hidden" value="'.$reihungstest->reihungstest_id.'" name="reihungstest_id">';
echo '<table class="tablesorter" id="t'.$cnt.'">
<thead>
<tr class='liste'>
<th title='PrestudentID'>ID</th>
<tr class="liste">
<th>&nbsp;</th>
<th title="PrestudentID">ID</th>
<th>Vorname</th>
<th>Nachname</th>
<th>Studiengang</th>
<th>OrgForm</th>
<th>Einstiegssemester</th>
<th>Geburtsdatum</th>
<th>EMail</th>
@@ -577,8 +885,9 @@ if($reihungstest_id!='')
<th>FAS</th>
</tr>
</thead>
<tbody>";
while($row = $db->db_fetch_object($result))
<tbody>';
foreach ($result_arr AS $row)
{
if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE)
$rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id,true);
@@ -602,25 +911,50 @@ if($reihungstest_id!='')
}
}
echo '
<tr>
<td>'.$db->convert_html_chars($row->prestudent_id).'</td>
<td>'.$db->convert_html_chars($row->vorname).'</td>
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td>'.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).'</td>
<td>'.$db->convert_html_chars($row->ausbildungssemester).'</td>
<td>'.$db->convert_html_chars($datum_obj->convertISODate($row->gebdatum)).'</td>
<td><a href="mailto:'.$db->convert_html_chars($row->email).'">'.$db->convert_html_chars($row->email).'</a></td>
<td>'.$rt_in_anderen_stg.'</td>
<td align="right">'.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).'</td>
<td align="right">'.($rtergebnis!=0 && $row->rt_punkte1==''?'<a href="'.$_SERVER['PHP_SELF'].'?reihungstest_id='.$reihungstest_id.'&stg_kz='.$stg_kz.'&type=savertpunkte&prestudent_id='.$row->prestudent_id.'&rtpunkte='.$rtergebnis.'" >&uuml;bertragen</a>':$row->rt_punkte1).'</td>
</tr>';
$mailto.= ($mailto!=''?',':'').$row->email;
if ($row->ort_kurzbz == $ort->ort_kurzbz)
{
echo '
<tr>
<td><input type="checkbox" id="checkbox_'.$row->person_id.'" name="checkbox['.$row->person_id.']"></td>
<td>'.$db->convert_html_chars($row->prestudent_id).'</td>
<td>'.$db->convert_html_chars($row->vorname).'</td>
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td>'.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).'</td>
<td>'.$db->convert_html_chars($row->orgform_kurzbz).'</td>
<td>'.$db->convert_html_chars($row->ausbildungssemester).'</td>
<td>'.$db->convert_html_chars($datum_obj->convertISODate($row->gebdatum)).'</td>
<td align="center"><a href="mailto:'.$db->convert_html_chars($row->email).'"><img src="../../skin/images/button_mail.gif" name="mail"></a></td>
<td>'.$rt_in_anderen_stg.'</td>
<td align="right">'.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).'</td>
<td align="right">'.($rtergebnis!=0 && $row->rt_punkte1==''?'<a href="'.$_SERVER['PHP_SELF'].'?reihungstest_id='.$reihungstest_id.'&stg_kz='.$stg_kz.'&type=savertpunkte&prestudent_id='.$row->prestudent_id.'&rtpunkte='.$rtergebnis.'" >&uuml;bertragen</a>':$row->rt_punkte1).'</td>
</tr>';
$mailto.= ($mailto!=''?',':'').$row->email;
}
}
echo "</tbody></table>";
echo "<span style='font-size: 9pt'><a href='mailto:?bcc=$mailto'>Mail an alle senden</a></span>";
echo '</tbody></table>';
echo '<select name="raumzuteilung">';
echo '<option value="">-- keine Auswahl --</option>';
foreach ($orte->result AS $item)
{
if($item->ort_kurzbz==$reihungstest->studiengang_kz)
$selected = 'selected="selected"';
else
$selected = '';
echo '<option value="'.$item->ort_kurzbz.'" '.$selected.'>'.$item->ort_kurzbz.'</option>';
}
echo '</select>';
echo '<button type="submit" name="raumzuteilung_speichern">Speichern</button>';
echo '</form>';
echo '</td>';
}
echo '</tr></table>';
echo "<span style='font-size: 9pt'><a href='mailto:?bcc=$mailto'>Mail an alle senden</a></span>";
} ?>
</body>