From 1a1d2de72c00a0c4e39c0942b9df4d5319f2d841 Mon Sep 17 00:00:00 2001 From: kindlm Date: Thu, 21 Jul 2016 11:38:39 +0200 Subject: [PATCH] Reihungstestverwaltung Aufnahmestufen --- include/ort.class.php | 21 +- include/reihungstest.class.php | 168 ++++++- vilesci/lehre/reservierung_autocomplete.php | 2 + vilesci/stammdaten/raum_details.php | 6 + vilesci/stammdaten/raum_uebersicht.php | 2 + vilesci/stammdaten/reihungstestverwaltung.php | 432 ++++++++++++++++-- 6 files changed, 573 insertions(+), 58 deletions(-) diff --git a/include/ort.class.php b/include/ort.class.php index db6d13dcb..8dbde68c8 100644 --- a/include/ort.class.php +++ b/include/ort.class.php @@ -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; diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php index 000f2af51..28d89fe2a 100644 --- a/include/reihungstest.class.php +++ b/include/reihungstest.class.php @@ -17,7 +17,8 @@ * * Authors: Christian Paminger , * Andreas Oesterreicher and - * Rudolf Hangl . + * Rudolf Hangl + * 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; + } + } } diff --git a/vilesci/lehre/reservierung_autocomplete.php b/vilesci/lehre/reservierung_autocomplete.php index a16ed8e3f..c2996419a 100644 --- a/vilesci/lehre/reservierung_autocomplete.php +++ b/vilesci/lehre/reservierung_autocomplete.php @@ -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); diff --git a/vilesci/stammdaten/raum_details.php b/vilesci/stammdaten/raum_details.php index 31fdffea8..9cceb4364 100644 --- a/vilesci/stammdaten/raum_details.php +++ b/vilesci/stammdaten/raum_details.php @@ -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 @@ Telefonklappe + Anz. Arbeitsplätze + Lageplan diff --git a/vilesci/stammdaten/raum_uebersicht.php b/vilesci/stammdaten/raum_uebersicht.php index fc726e622..f725bb9dd 100644 --- a/vilesci/stammdaten/raum_uebersicht.php +++ b/vilesci/stammdaten/raum_uebersicht.php @@ -117,6 +117,7 @@ $htmlstr = " Bezeichnung Planbezeichnung Max. Person + Arbeitsplaetze Lehre Reservieren Aktiv @@ -134,6 +135,7 @@ foreach ($sg->result as $twraum) $htmlstr .= " ".$twraum->bezeichnung."\n"; $htmlstr .= " ".$twraum->planbezeichnung."\n"; $htmlstr .= " ".$twraum->max_person."\n"; + $htmlstr .= " ".$twraum->arbeitsplaetze."\n"; // Lehre boolean setzen diff --git a/vilesci/stammdaten/reihungstestverwaltung.php b/vilesci/stammdaten/reihungstestverwaltung.php index 81baa7382..71ad1ac7b 100644 --- a/vilesci/stammdaten/reihungstestverwaltung.php +++ b/vilesci/stammdaten/reihungstestverwaltung.php @@ -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'])) + + + + @@ -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 'Daten wurden erfolgreich gespeichert '; + 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 'Daten wurden erfolgreich gespeichert '; + } + else + echo 'Fehler beim Speichern der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).''; + } + else + echo 'Der Raum '.$_POST['ort_kurzbz'].' ist bereits diesem Reihungstest zugeteilt'; + } + 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 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; + } + } + $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 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; + } + } + $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 'Fehler beim löschen der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).''; + + $reihungstest_id = $_POST['reihungstest_id']; + } + $neu=false; +} +//var_dump($_POST); + echo '
'; @@ -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 ?> ?stg_kz=&neu=true"' >
-
'> +'> @@ -491,8 +673,66 @@ else - - + + + + + + getOrteReihungstest($reihungstest->reihungstest_id); + echo ''; + //echo ''; + } + else + echo ''; + ?> @@ -500,17 +740,21 @@ else - + - + - + + + + + @@ -528,13 +772,22 @@ else (Kurz vor Testbeginn aktivieren) + + + + - +
OrtStufe + +
Ort'; + if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui')) + { + echo ''; + } + foreach ($orte->result AS $row) + { + //echo ''; + echo ''; + $arbeitsplaetze_sum = $arbeitsplaetze_sum + $arbeitsplaetze; + } + echo '
'; + echo ' '; + echo '
 '; + //echo '
'; + $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 '
'.$row->ort_kurzbz; + echo '
'.$row->ort_kurzbz.' ('.$arbeitsplaetze.' Personen)'; + //echo ' '; + echo ' '; + if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid')) + echo ''; + //echo '
Nach dem Anlegen eines Termins, können Sie Räume zuordnen
Anmerkung
Datum
Uhrzeit (Format: HH:MM) (Format: HH:MM)
max TeilnehmerAnmeldefrist
Max TeilnehmerInnen - - (optional - nur Zahlen) + + (optional; laut Raumkapazität)
 
@@ -550,25 +803,80 @@ if($reihungstest_id!='') echo '
'; //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 'Anzahl: '.$db->db_num_rows($result).''; - $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 " + $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 '
'; + + echo 'Anzahl: '.$db->db_num_rows($result).'/'.($reihungstest->max_teilnehmer!=''?$reihungstest->max_teilnehmer:$arbeitsplaetze_sum).''; + $pruefling = new pruefling(); + + $orte = new Reihungstest(); + $orte->getOrteReihungstest($reihungstest->reihungstest_id); + $cnt = 0; + foreach ($orte->result AS $ort) + { + $cnt++; + echo '
'; + echo '
'.$ort->ort_kurzbz.'
'; + echo '
'; + echo ''; + echo ' - - + + + + @@ -577,8 +885,9 @@ if($reihungstest_id!='') - "; - while($row = $db->db_fetch_object($result)) + '; + + 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 ' - - - - - - - - - - - - '; - - $mailto.= ($mailto!=''?',':'').$row->email; + if ($row->ort_kurzbz == $ort->ort_kurzbz) + { + echo ' + + + + + + + + + + + + + + '; + + $mailto.= ($mailto!=''?',':'').$row->email; + } } - echo "
ID
 ID Vorname Nachname StudiengangOrgForm Einstiegssemester Geburtsdatum EMailFAS
'.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($datum_obj->convertISODate($row->gebdatum)).''.$db->convert_html_chars($row->email).''.$rt_in_anderen_stg.''.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).''.($rtergebnis!=0 && $row->rt_punkte1==''?'übertragen':$row->rt_punkte1).'
'.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->orgform_kurzbz).''.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($datum_obj->convertISODate($row->gebdatum)).''.$rt_in_anderen_stg.''.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).''.($rtergebnis!=0 && $row->rt_punkte1==''?'übertragen':$row->rt_punkte1).'
"; - echo "Mail an alle senden"; + echo '
'; + + echo ''; + echo ''; + echo ''; + echo ''; } + + + + echo ''; + echo "Mail an alle senden"; } ?>