diff --git a/cis/testtool/index.html b/cis/testtool/index.html
new file mode 100644
index 000000000..5ebc9f37a
--- /dev/null
+++ b/cis/testtool/index.html
@@ -0,0 +1,21 @@
+
+
+
+ TestTool - FH Technikum Wien
+
+
+
+
+
+
diff --git a/cis/testtool/login.php b/cis/testtool/login.php
new file mode 100644
index 000000000..10b49d4b0
--- /dev/null
+++ b/cis/testtool/login.php
@@ -0,0 +1,96 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+
+require_once('../config.inc.php');
+//require_once('../../include/functions.inc.php');
+require_once('../../include/person.class.php');
+require_once('../../include/prestudent.class.php');
+//require_once('../../include/studiengang.class.php');
+//require_once('../../include/lehrveranstaltung.class.php');
+
+session_start();
+if (isset($_POST['logout']))
+ session_destroy();
+
+//Connection Herstellen
+if(!$db_conn = pg_pconnect(CONN_STRING))
+ die('Fehler beim oeffnen der Datenbankverbindung');
+
+if (isset($_POST['prestudent']) && isset($_POST['gebdatum']))
+{
+ $ps=new prestudent($db_conn,$_POST['prestudent']);
+ if ($_POST['gebdatum']==$ps->gebdatum)
+ {
+ $_SESSION['prestudent_id']=$_POST['prestudent'];
+ $_SESSION['studiengang_kz']=$ps->studiengang_kz;
+ $_SESSION['nachname']=$ps->nachname;
+ $_SESSION['vorname']=$ps->vorname;
+ $_SESSION['gebdatum']=$ps->gebdatum;
+ }
+}
+
+if (isset($_SESSION['prestudent_id']))
+ $prestudent_id=$_SESSION['prestudent_id'];
+else
+{
+ //$prestudent_id=null;
+ $ps=new prestudent($db_conn);
+ $datum=date('Y-m-d');
+ $ps->getPrestudentRT($datum,true);
+ if ($ps->num_rows==0)
+ $ps->getPrestudentRT($datum);
+}
+
+?>
+
+
+
+
+
+
+
+
+Login
+Sie sind eingelogt als '.$_SESSION['vorname'].' '.$_SESSION['nachname'];
+ echo ' ('.$_SESSION['gebdatum'].') ID: '.$_SESSION['prestudent_id'];
+ echo '';
+ }
+ else
+ {
+ echo '';
+ }
+?>
+
+
+
diff --git a/cis/testtool/menu.php b/cis/testtool/menu.php
new file mode 100644
index 000000000..df97c2391
--- /dev/null
+++ b/cis/testtool/menu.php
@@ -0,0 +1,74 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+
+require_once('../config.inc.php');
+
+session_start();
+
+//Connection Herstellen
+if(!$db_conn = pg_pconnect(CONN_STRING))
+ die('Fehler beim oeffnen der Datenbankverbindung');
+?>
+
+
+
+
+
+
+
+
+
+';
+ echo ' Gebiet |
';
+ echo '';
+ echo '';
+
+ $qry = 'SELECT * FROM testtool.vw_ablauf WHERE studiengang_kz='.$_SESSION['studiengang_kz'].' ORDER BY reihung';
+ //echo $qry;
+ if($result = pg_query($db_conn, $qry))
+ while($row = pg_fetch_object($result))
+ echo '
+ | |
+
+ '.$row->gebiet_bez.'
+ |
+ ';
+ echo ' ';
+ echo ' |
';
+}
+else
+{
+ echo '';
+ echo '';
+}
+?>
+
+
diff --git a/cis/testtool/topbar.html b/cis/testtool/topbar.html
new file mode 100644
index 000000000..453df415e
--- /dev/null
+++ b/cis/testtool/topbar.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+ | |
+
+
+
+
+ |
+
+
+ | TestTool |
+
+
+ |
+ |
+
+
+
+
+
diff --git a/include/prestudent.class.php b/include/prestudent.class.php
new file mode 100644
index 000000000..7860de93a
--- /dev/null
+++ b/include/prestudent.class.php
@@ -0,0 +1,287 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+
+class prestudent extends person
+{
+ //Tabellenspalten
+ var $prestudent_id; // varchar(16)
+ var $aufmerksamdurch_kurzbz;
+ var $studiengang_kz;
+ var $berufstaetigkeit_code;
+ var $ausbildungcode;
+ var $zgv_code;
+ var $zgvort;
+ var $zgvdatum;
+ var $zgvmas_code;
+ var $zgvmaort;
+ var $zgvmadatum;
+ var $aufnahmeschluessel;
+ var $facheinschlberuf;
+ var $anmeldungreihungstest;
+ var $reihungstestangetreten;
+ var $punkte;
+ var $bismelden;
+
+ // ErgebnisArray
+ var $result=array();
+ var $num_rows=0;
+
+ // *************************************************************************
+ // * Konstruktor - Uebergibt die Connection und laedt optional einen Prestudent
+ // * @param $conn Datenbank-Connection
+ // * $prestudent_id Prestudent der geladen werden soll (default=null)
+ // * $unicode Gibt an ob die Daten mit UNICODE Codierung
+ // * oder LATIN9 Codierung verarbeitet werden sollen
+ // *************************************************************************
+ function benutzer($conn, $prestudent_id=null, $unicode=false)
+ {
+ $this->conn = $conn;
+
+ if($unicode)
+ $qry = "SET CLIENT_ENCODING TO 'UNICODE';";
+ else
+ $qry = "SET CLIENT_ENCODING TO 'LATIN9';";
+
+ if(!pg_query($conn,$qry))
+ {
+ $this->errormsg = 'Encoding konnte nicht gesetzt werden';
+ return false;
+ }
+
+ if($prestudent_id != null)
+ $this->load($prestudent_id);
+ }
+
+ // ***********************************************************
+ // * Laedt Prestudent mit der uebergebenen ID
+ // * @param $uid ID der Person die geladen werden soll
+ // ***********************************************************
+ function load($prestudent_id)
+ {
+ $qry = "SELECT * FROM public.tbl_prestudent WHERE prestudent_id='$prestudent_id'";
+ if($result = pg_query($this->conn, $qry))
+ {
+ if($row = pg_fetch_object($result))
+ {
+ $this->prestudent_id = $row->prestudent_id;
+ $this->aufmerksamdurch_kurzbz = $row->aufmerksamdurch_kurzbz;
+ $this->studiengang_kz = $row->studiengang_kz;
+ $this->berufstaetigkeit_code = $row->berufstaetigkeit_code;
+ $this->ausbildungcode = $row->ausbildungcode;
+ $this->zgv_code = $row->zgv_code;
+ $this->zgvort = $row->zgvort;
+ $this->zgvdatum = $row->zgvdatum;
+ $this->zgvmas_code = $row->zgvmas_code;
+ $this->zgvmaort = $row->zgvmaort;
+ $this->zgvmadatum = $row->zgvmadatum;
+ $this->aufnahmeschluessel = $row->aufnahmeschluessel;
+ $this->facheinschlberuf = $row->facheinschlberuf;
+ $this->anmeldungreihungstest = $row->anmeldungreihungstest;
+ $this->reihungstestangetreten = $row->reihungstestangetreten;
+ $this->punkte = $row->punkte;
+ $this->bismelden = $row->bismelden;
+ if(!person::load($row->person_id))
+ return false;
+ else
+ return true;
+ }
+ else
+ {
+ $this->errormsg = "Kein Eintrag gefunden fuer $prestudent_id";
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler beim laden: $qry";
+ return false;
+ }
+ }
+
+ // *******************************************
+ // * Prueft die Variablen vor dem Speichern
+ // * auf Gueltigkeit.
+ // * @return true wenn ok, false im Fehlerfall
+ // *******************************************
+ function validate()
+ {
+ if(strlen($this->uid)>16)
+ {
+ $this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
+ return false;
+ }
+ if($this->uid == '')
+ {
+ $this->errormsg = 'UID muss eingegeben werden '.$this->uid;
+ return false;
+ }
+ if(strlen($this->alias)>256)
+ {
+ $this->errormsg = 'Alias darf nicht laenger als 256 Zeichen sein';
+ return false;
+ }
+ if(!is_numeric($this->person_id))
+ {
+ $this->errormsg = 'person_id muss eine gueltige Zahl sein';
+ return false;
+ }
+ if(!is_bool($this->aktiv))
+ {
+ $this->errormsg = 'aktiv muss ein boolscher wert sein';
+ return false;
+ }
+ return true;
+ }
+
+ // ******************************************************************
+ // * Speichert die Benutzerdaten in die Datenbank
+ // * Wenn $new auf true gesetzt ist wird ein neuer Datensatz angelegt
+ // * ansonsten der Datensatz mit $uid upgedated
+ // * @return true wenn erfolgreich, false im Fehlerfall
+ // ******************************************************************
+ function save()
+ {
+ //Personen Datensatz speichern
+ if(!person::save())
+ return false;
+
+ //Variablen auf Gueltigkeit pruefen
+ if(!benutzer::validate())
+ return false;
+
+ if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
+ {
+ $qry = 'INSERT INTO public.tbl_benutzer (uid, aktiv, alias, person_id, insertamum, insertvon, updateamum, updatevon) VALUES('.
+ "'".addslashes($this->uid)."',".
+ ($this->aktiv?'true':'false').','.
+ $this->addslashes($this->alias).",'".
+ $this->person_id."',".
+ $this->addslashes($this->insertamum).",".
+ $this->addslashes($this->insertvon).",".
+ $this->addslashes($this->updateamum).",".
+ $this->addslashes($this->updatevon).");";
+ }
+ else
+ {
+ $qry = 'UPDATE public.tbl_benutzer SET'.
+ ' aktiv='.($this->aktiv?'true':'false').','.
+ ' alias='.$this->addslashes($this->alias).','.
+ " person_id='".$this->person_id."',".
+ ' updateamum='.$this->addslashes($this->updateamum).','.
+ ' updatevon='.$this->addslashes($this->updatevon).
+ " WHERE uid='".addslashes($this->uid)."';";
+ }
+
+ if(pg_query($this->conn,$qry))
+ {
+ //Log schreiben
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern des Benutzer-Datensatzes:'.$qry;
+ return false;
+ }
+ }
+
+ // ******************************************************************
+ // * Laden aller Prestudenten, die an $datum zum Reihungstest geladen sind.
+ // * Wenn $equal auf true gesetzt ist wird genau dieses Datum verwendet,
+ // * ansonsten werden auch alle mit späterem Datum geladen.
+ // * @return true wenn erfolgreich, false im Fehlerfall
+ // ******************************************************************
+ function getPrestudentRT($datum, $equal=false)
+ {
+ $sql_query='SELECT DISTINCT * FROM public.vw_prestudent WHERE rt_datum';
+ if ($equal)
+ $sql_query.='=';
+ else
+ $sql_query.='>=';
+ $sql_query.="'$datum' ORDER BY nachname,vorname";
+
+ if(!$result=pg_query($this->conn,$sql_query))
+ {
+ $this->errormsg = 'Fehler beim Speichern des Benutzer-Datensatzes:'.$sql_query;
+ return false;
+ }
+
+ $this->num_rows=0;
+
+ while($row = pg_fetch_object($result))
+ {
+ $ps=new prestudent($this->conn);
+ $ps->prestudent_id = $row->prestudent_id;
+ $ps->person_id = $row->person_id;
+ $ps->reihungstest_id = $row->reihungstest_id;
+ $ps->staatsbuergerschaft = $row->staatsbuergerschaft;
+ $ps->geburtsnation = $row->geburtsnation;
+ $ps->sprache = $row->sprache;
+ $ps->anrede = $row->anrede;
+ $ps->titelpost = $row->titelpost;
+ $ps->titelpre = $row->titelpre;
+ $ps->nachname = $row->nachname;
+ $ps->vorname = $row->vorname;
+ $ps->vornamen = $row->vornamen;
+ $ps->gebdatum = $row->gebdatum;
+ $ps->gebort = $row->gebort;
+ $ps->gebzeit = $row->gebzeit;
+ $ps->foto = $row->foto;
+ $ps->anmerkungen = $row->anmerkungen;
+ $ps->homepage = $row->homepage;
+ $ps->svnr = $row->svnr;
+ $ps->ersatzkennzeichen = $row->ersatzkennzeichen;
+ $ps->familienstand = $row->familienstand;
+ $ps->geschlecht = $row->geschlecht;
+ $ps->anzahlkinder = $row->anzahlkinder;
+ $ps->aktiv = $row->aktiv;
+ $ps->aufmerksamdurch_kurzbz = $row->aufmerksamdurch_kurzbz;
+ $ps->studiengang_kz = $row->studiengang_kz;
+ $ps->berufstaetigkeit_code = $row->berufstaetigkeit_code;
+ $ps->ausbildungcode = $row->ausbildungcode;
+ $ps->zgv_code = $row->zgv_code;
+ $ps->zgvort = $row->zgvort;
+ $ps->zgvdatum = $row->zgvdatum;
+ $ps->zgvmas_code = $row->zgvmas_code;
+ $ps->zgvmaort = $row->zgvmaort;
+ $ps->zgvmadatum = $row->zgvmadatum;
+ $ps->aufnahmeschluessel = $row->aufnahmeschluessel;
+ $ps->facheinschlberuf = $row->facheinschlberuf;
+ $ps->anmeldungreihungstest = $row->anmeldungreihungstest;
+ $ps->reihungstestangetreten = $row->reihungstestangetreten;
+ $ps->punkte = $row->punkte;
+ $ps->bismelden = $row->bismelden;
+ $ps->rt_studiengang_kz = $row->rt_studiengang_kz;
+ $ps->rt_ort = $row->rt_ort;
+ $ps->rt_datum = $row->rt_datum;
+ $ps->rt_uhrzeit = $row->rt_uhrzeit;
+ $ps->updateamum = $row->updateamum;
+ $ps->updatevon = $row->updatevon;
+ $ps->insertamum = $row->insertamum;
+ $ps->insertvon = $row->insertvon;
+ $ps->ext_id = $row->ext_id;
+ $this->result[]=$ps;
+ $this->num_rows++;
+ }
+
+ }
+}
+?>