reihungstest: max. teilnehmer, anmeldung durch bewerber

This commit is contained in:
Robert Hofer
2015-01-08 11:42:15 +00:00
parent 877bd6bfb0
commit f86191f825
6 changed files with 5700 additions and 5539 deletions
+84 -47
View File
@@ -96,9 +96,9 @@ if($method=='delete')
if(isset($_GET['rt_id']))
{
$rt_id = isset($_GET['rt_id'])?$_GET['rt_id']:'';
$pre_id = isset($_GET['pre'])?$_GET['pre']:'';
$rt_id = filter_input(INPUT_GET, 'rt_id', FILTER_VALIDATE_INT);
$pre_id = filter_input(INPUT_GET, 'pre', FILTER_VALIDATE_INT);
if(isset($_GET['delete']))
{
@@ -123,6 +123,14 @@ if(isset($_GET['rt_id']))
}
else
{
$reihungstest = new reihungstest;
$reihungstest->load($rt_id);
if($reihungstest->max_teilnehmer && $reihungstest->getTeilnehmerAnzahl($rt_id) >= $reihungstest->max_teilnehmer)
{
die("max. Teilnehmeranzahl erreicht.");
}
$timestamp = time();
$prestudent = new prestudent();
@@ -545,31 +553,31 @@ function activeTab(tab_nr)
function checkKontakt()
{
if($("#telefonnummer").val() == '')
if($("#telefonnummer").val() === '')
{
alert("Telefonnummer darf nicht leer sein!");
return false;
}
if($("#email").val() == '')
if($("#email").val() === '')
{
alert("Email-Adresse darf nicht leer sein!");
return false;
}
if($("#strasse").val() == '')
if($("#strasse").val() === '')
{
alert("Strasse darf nicht leer sein!");
return false;
}
if($("#plz").val() == '')
if($("#plz").val() === '')
{
alert("Postleitzahl darf nicht leer sein!");
return false;
}
if($("#ort").val() == '')
if($("#ort").val() === '')
{
alert("Ort darf nicht leer sein!");
return false;
@@ -580,24 +588,24 @@ function checkKontakt()
function checkPerson()
{
if($("#nachname").val() == '')
if($("#nachname").val() === '')
{
alert("Ungültiger Nachname!");
return false;
}
if($("#vorname").val() == '')
if($("#vorname").val() === '')
{
alert("Ungültiger Vorname!");
return false;
}
if($("#staatsbuergerschaft").val() == '')
if($("#staatsbuergerschaft").val() === '')
{
alert("Bitte Staatsbürgerschaft auswählen");
return false;
}
if($("#gebdatum").val() != '')
if($("#gebdatum").val() !== '')
{
var patt1=new RegExp("([0-9]{1,2}).([0-9]{1,2}).([0-9]{4})");
if(!patt1.test($("#gebdatum").val()))
@@ -608,9 +616,9 @@ function checkPerson()
}
// Berechnung der Sozialversicherungsnummer wenn AT
if($("#staatsbuergerschaft").val() == 'A')
if($("#staatsbuergerschaft").val() === 'A')
{
if($("#svnr").val().length != '10')
if($("#svnr").val().length !== '10')
{
alert("Ungültige Sozialversicherungsnummer!");
return false;
@@ -619,10 +627,10 @@ function checkPerson()
var checksum = 0;
var soz_nr = $("#svnr").val();
checksum = (3*soz_nr[0])+(7*soz_nr[1])+(9*soz_nr[2])+(5*soz_nr[4])+(8*soz_nr[5])+(4*soz_nr[6])+(2*soz_nr[7])+(1*soz_nr[8])+(6*soz_nr[9])
checksum = (3*soz_nr[0])+(7*soz_nr[1])+(9*soz_nr[2])+(5*soz_nr[4])+(8*soz_nr[5])+(4*soz_nr[6])+(2*soz_nr[7])+(1*soz_nr[8])+(6*soz_nr[9]);
checksum = checksum%11;
if(checksum != soz_nr[3])
if(checksum !== soz_nr[3])
{
alert("Ungültige Sozialversicherungsnummer!");
return false;
@@ -724,23 +732,23 @@ padding: 5px;
</style>
</head>
<body>
<body class="bewerbung">
<div id="tabs" style="width:auto">
<div id="tabs-0" style="width:100%">
<ul>
<li><a href="#tabs-1">&gt;|1| Allgemein <br> </a></li>
<li><a href="#tabs-2">&gt;|2| Persönliche Daten <br> <?php echo $status_person_text;?></a></li>
<!--<li><a href="#tabs-3">&gt;|3| Zugangsvoraussetzungen<br> <?php echo $status_zgv_text; ?></a></li>-->
<li><a href="#tabs-4">&gt;|3| Kontaktinformationen <br> <?php echo $status_kontakt_text;?></a></li>
<li><a href="#tabs-5">&gt;|4| Dokumente <br> <?php echo $status_dokumente_text;?></a></li>
<li><a href="#tabs-6">&gt;|5| Zahlungen <br> <?php echo $status_zahlungen_text;?></a></li>
<li><a href="#tabs-7">&gt;|6| Aufnahmeverfahren <br> <?php echo $status_aufnahmeverfahren_text;?></a></li>
<li><a href="#tabs-8">&gt;|7| Bewerbung abschicken <br> </a></li>
</ul>
<ul>
<li><a href="#tabs-1">&gt;|1| Allgemein <br> </a></li>
<li><a href="#tabs-2">&gt;|2| Persönliche Daten <br> <?php echo $status_person_text;?></a></li>
<!--<li><a href="#tabs-3">&gt;|3| Zugangsvoraussetzungen<br> <?php //echo $status_zgv_text; ?></a></li>-->
<li><a href="#tabs-4">&gt;|3| Kontaktinformationen <br> <?php echo $status_kontakt_text;?></a></li>
<li><a href="#tabs-5">&gt;|4| Dokumente <br> <?php echo $status_dokumente_text;?></a></li>
<li><a href="#tabs-6">&gt;|5| Zahlungen <br> <?php echo $status_zahlungen_text;?></a></li>
<li><a href="#tabs-7">&gt;|6| Aufnahmeverfahren <br> <?php echo $status_aufnahmeverfahren_text;?></a></li>
<li><a href="#tabs-8">&gt;|7| Bewerbung abschicken <br> </a></li>
</ul>
</div>
<div id="tabs-1">
<h2>Allgemein</h2>
<p>Wir freuen uns dass Sie sich für einen oder mehrere unserer Studiengänge bewerben. <br><br>
<h2>Allgemein</h2>
<p>Wir freuen uns dass Sie sich für einen oder mehrere unserer Studiengänge bewerben. <br><br>
Bitte füllen Sie das Formular vollständig aus und schicken Sie es danach ab.<br><br>
<b>Bewerbungsmodus:</b><br>
<p style="text-align:justify;">Füllen Sie alle Punkte aus. Sind alle Werte vollständig eingetragen, können Sie unter "Bewerbung abschicken" Ihre Bewerbung and die zuständige Assistenz schicken.<br>
@@ -1352,33 +1360,65 @@ $studiengang = new studiengang();
$reihungstest = new reihungstest();
if(!$reihungstest->getStgZukuenftige($row->studiengang_kz))
echo "Fehler aufgetreten";
$stg = new studiengang();
$stg->load($row->studiengang_kz);
echo "<h3>Studiengang ".$stg->bezeichnung."</h3>";
echo "<table border='1' width='150%'>
$stg->load($row->studiengang_kz); ?>
<h3>Studiengang <?php echo $stg->bezeichnung ?></h3>
<table class="reihungstest">
<tr>
<th width='10%'>ID</th><th>Datum</th><th>Uhrzeit</th><th>Ort</th><th width='90%'>Studiengang</th><th>&nbsp;</th>
</tr>";
<th>angemeldet / Plätze</th>
<th>Datum</th>
<th>Uhrzeit</th>
<th>Ort</th>
<th title="<?php echo $row->studiengang_kz ?>">Studiengang</th>
<th>&nbsp;</th>
</tr>
<?php
foreach($reihungstest->result as $rt)
{
$teilnehmer_anzahl = $reihungstest->getTeilnehmerAnzahl($rt->reihungstest_id);
$spalte1 = $rt->max_teilnehmer ? $teilnehmer_anzahl . '/' . $rt->max_teilnehmer : '';
// bereits angenommen
if($row->reihungstest_id == $rt->reihungstest_id)
{
$rt_help = true;
echo "<tr style='background-color:lightgrey;'>
<td>".$rt->reihungstest_id."</td><td>".$rt->datum."</td><td>".$rt->uhrzeit."</td><td>".$rt->ort_kurzbz."</td><td>".$stg->bezeichnung."</td><td><input type='button' name='btn_stg' value='Stornieren' onclick='location.href=\"".$_SERVER['PHP_SELF']."?active=5&rt_id=".$rt->reihungstest_id."&pre=".$row->prestudent_id."&delete\" '></td>
</tr>";
$rt_help = true; ?>
<tr style='background-color:lightgrey;'>
<td><?php echo $spalte1 ?></td>
<td><?php echo $rt->datum ?></td>
<td><?php echo $rt->uhrzeit ?></td>
<td><?php echo $rt->ort_kurzbz ?></td>
<td><?php echo $stg->bezeichnung ?></td>
<td>
<input type='button' name='btn_stg'
value='Stornieren'
onclick='location.href="<?php echo $_SERVER['PHP_SELF'] ?>?active=5&rt_id=<?php echo $rt->reihungstest_id ?>&pre=<?php echo $row->prestudent_id ?>&delete"'>
</td>
</tr>
<?php
}
else
{
echo "<tr>
<td>".$rt->reihungstest_id."</td><td>".$rt->datum."</td><td>".$rt->uhrzeit."</td><td>".$rt->ort_kurzbz."</td><td>".$stg->bezeichnung."</td><td><input type='button' name='btn_stg' value='Anmelden' onclick='location.href=\"".$_SERVER['PHP_SELF']."?active=5&rt_id=".$rt->reihungstest_id."&pre=".$row->prestudent_id."\" '></td>
</tr>";
?>
<tr>
<td><?php echo $spalte1 ?></td>
<td><?php echo $rt->datum ?></td>
<td><?php echo $rt->uhrzeit ?></td>
<td><?php echo $rt->ort_kurzbz ?></td>
<td><?php echo $stg->bezeichnung ?></td>
<td>
<input type='button' name='btn_stg'
<?php echo isset($rt->max_teilnehmer) && $teilnehmer_anzahl >= $rt->max_teilnehmer ? 'disabled' : '' ?>
value='Anmelden'
onclick='location.href="<?php echo $_SERVER['PHP_SELF'] ?>?active=5&rt_id=<?php echo $rt->reihungstest_id ?>&pre=<?php echo $row->prestudent_id ?>"'>
</td>
</tr>
<?php
}
}
echo "</table><br>";
?>
</table><br>
<?php
}
?>
@@ -1465,6 +1505,3 @@ function sendBewerbung($prestudent_id)
return true;
}
?>
File diff suppressed because it is too large Load Diff
+407 -375
View File
@@ -1,375 +1,407 @@
<?php
/* Copyright (C) 2007 Technikum-Wien
*
* 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: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse Reihungstest
* @create 10-01-2007
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class reihungstest extends basis_db
{
public $new; // boolean
public $done=false; // boolean
public $result = array();
//Tabellenspalten
public $reihungstest_id;// integer
public $studiengang_kz; // integer
public $ort_kurzbz; // string
public $anmerkung; // string
public $datum; // date
public $uhrzeit; // time without time zone
public $ext_id; // integer
public $insertamum; // timestamp
public $insertvon; // bigint
public $updateamum; // timestamp
public $updatevon; // bigint
public $freigeschaltet=false; // boolean
/**
* Konstruktor
* @param $reihungstest_id ID der Adresse die geladen werden soll (Default=null)
*/
public function __construct($reihungstest_id=null)
{
parent::__construct();
if(!is_null($reihungstest_id))
$this->load($reihungstest_id);
}
/**
* Laedt den Reihungstest mit der ID $reihungstest_id
* @param $sreihungstest_id ID des zu ladenden Reihungstests
* @return true wenn ok, false im Fehlerfall
*/
public function load($reihungstest_id)
{
if(!is_numeric($reihungstest_id))
{
$this->errormsg = 'Reihungstest_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM public.tbl_reihungstest WHERE reihungstest_id=".$this->db_add_param($reihungstest_id, FHC_INTEGER, false);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->reihungstest_id = $row->reihungstest_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->ort_kurzbz = $row->ort_kurzbz;
$this->anmerkung = $row->anmerkung;
$this->datum = $row->datum;
$this->uhrzeit = $row->uhrzeit;
$this->ext_id = $row->ext_id;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
return true;
}
else
{
$this->errormsg = 'Reihungstest existiert nicht';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Reihungstests';
return false;
}
}
/**
* Liefert alle Reihungstests
* wenn ein Datum uebergeben wird, dann werden alle Reihungstests ab diesem
* Datum zurueckgeliefert
*/
public function getAll($datum=null)
{
$qry = "SELECT * FROM public.tbl_reihungstest ";
if($datum!=null)
$qry.=" WHERE datum>=".$this->db_add_param($datum);
$qry.=" ORDER BY datum DESC, uhrzeit";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new reihungstest();
$obj->reihungstest_id = $row->reihungstest_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->ort_kurzbz = $row->ort_kurzbz;
$obj->anmerkung = $row->anmerkung;
$obj->datum = $row->datum;
$obj->uhrzeit = $row->uhrzeit;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Reihungstests';
return false;
}
}
/**
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
private function validate()
{
//Zahlenfelder pruefen
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg='studiengang_kz enthaelt ungueltige Zeichen';
return false;
}
//Gesamtlaenge pruefen
if(mb_strlen($this->ort_kurzbz)>32)
{
$this->errormsg = 'Ort_kurzbz darf nicht länger als 16 Zeichen sein';
return false;
}
if(mb_strlen($this->anmerkung)>64)
{
$this->errormsg = 'Anmerkung darf nicht länger als 64 Zeichen sein';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz mit der ID in $reihungstest_id aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
public function save()
{
if(!$this->validate())
return false;
if($this->new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO public.tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit,
ext_id, insertamum, insertvon, updateamum, updatevon, freigeschaltet) VALUES('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->ort_kurzbz).', '.
$this->db_add_param($this->anmerkung).', '.
$this->db_add_param($this->datum).', '.
$this->db_add_param($this->uhrzeit).', '.
$this->db_add_param($this->ext_id, FHC_INTEGER).', now(), '.
$this->db_add_param($this->insertvon).', now(), '.
$this->db_add_param($this->updatevon).','.
$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).');';
}
else
{
$qry='UPDATE public.tbl_reihungstest SET '.
'studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).', '.
'anmerkung='.$this->db_add_param($this->anmerkung).', '.
'datum='.$this->db_add_param($this->datum).', '.
'uhrzeit='.$this->db_add_param($this->uhrzeit).', '.
'ext_id='.$this->db_add_param($this->ext_id, FHC_INTEGER).', '.
'updateamum= now(), '.
'updatevon='.$this->db_add_param($this->updatevon).', '.
'freigeschaltet='.$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).' '.
'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';';
}
if($this->db_query($qry))
{
if($this->new)
{
$qry = "SELECT currval('public.tbl_reihungstest_reihungstest_id_seq') as id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->reihungstest_id = $row->id;
$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;
}
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return false;
}
}
/**
* Liefert die Reihungstests eines Studienganges
*
* @param $studiengang_kz
* @param $order (optional)
* @return true wenn ok, sonst false
*/
public function getReihungstest($studiengang_kz,$order=null)
{
$qry = "SELECT * FROM public.tbl_reihungstest WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
if ($order!=null)
$qry .=" ORDER BY ".$order.";";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new reihungstest();
$obj->reihungstest_id = $row->reihungstest_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->ort_kurzbz = $row->ort_kurzbz;
$obj->anmerkung = $row->anmerkung;
$obj->datum = $row->datum;
$obj->uhrzeit = $row->uhrzeit;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Reihungstests';
return false;
}
}
/**
* Liefert die Reihungstests der Zukunft und einer bestimmten ID
* Und sortiert diese so, dass die des uebergebenen Studienganges zuerst geliefert werden
* @param $include_id
* @param $studiengang_kz
* @return true wenn ok, sonst false
*/
public function getZukuenftige($include_id, $studiengang_kz)
{
$qry = "SELECT *, '1' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE datum>=now()-'1 days'::interval AND studiengang_kz=".$this->db_add_param($studiengang_kz)."
UNION
SELECT *, '2' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE datum>=now()-'1 days'::interval AND studiengang_kz!=".$this->db_add_param($studiengang_kz)."
UNION
SELECT *, '0' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE reihungstest_id=".$this->db_add_param($include_id)."
ORDER BY sortierung, stg, datum";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new reihungstest();
$obj->reihungstest_id = $row->reihungstest_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->ort_kurzbz = $row->ort_kurzbz;
$obj->anmerkung = $row->anmerkung;
$obj->datum = $row->datum;
$obj->uhrzeit = $row->uhrzeit;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Reihungstests';
return false;
}
}
public function getStgZukuenftige($stg)
{
$qry = "SELECT * from public.tbl_reihungstest where studiengang_kz = ".$this->db_add_param($stg, FHC_INTEGER)." AND datum>=now()-'1 days'::interval;";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new reihungstest();
$obj->reihungstest_id = $row->reihungstest_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->ort_kurzbz = $row->ort_kurzbz;
$obj->anmerkung = $row->anmerkung;
$obj->datum = $row->datum;
$obj->uhrzeit = $row->uhrzeit;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->result[] = $obj;
}
return true;
}
else
return false;
}
}
?>
<?php
/* Copyright (C) 2007 Technikum-Wien
*
* 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: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse Reihungstest
* @create 10-01-2007
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class reihungstest extends basis_db
{
public $new; // boolean
public $done=false; // boolean
public $result = array();
//Tabellenspalten
public $reihungstest_id;// integer
public $studiengang_kz; // integer
public $ort_kurzbz; // string
public $anmerkung; // string
public $datum; // date
public $uhrzeit; // time without time zone
public $ext_id; // integer
public $insertamum; // timestamp
public $insertvon; // bigint
public $updateamum; // timestamp
public $updatevon; // bigint
public $freigeschaltet=false; // boolean
public $oeffentlich=false; // boolean
public $max_teilnehmer; // integer
/**
* Konstruktor
* @param $reihungstest_id ID der Adresse die geladen werden soll (Default=null)
*/
public function __construct($reihungstest_id=null)
{
parent::__construct();
if(!is_null($reihungstest_id))
$this->load($reihungstest_id);
}
/**
* Laedt den Reihungstest mit der ID $reihungstest_id
* @param $reihungstest_id ID des zu ladenden Reihungstests
* @return true wenn ok, false im Fehlerfall
*/
public function load($reihungstest_id)
{
if(!is_numeric($reihungstest_id))
{
$this->errormsg = 'Reihungstest_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM public.tbl_reihungstest WHERE reihungstest_id=".$this->db_add_param($reihungstest_id, FHC_INTEGER, false);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->reihungstest_id = $row->reihungstest_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->ort_kurzbz = $row->ort_kurzbz;
$this->anmerkung = $row->anmerkung;
$this->datum = $row->datum;
$this->uhrzeit = $row->uhrzeit;
$this->ext_id = $row->ext_id;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->max_teilnehmer = $row->max_teilnehmer;
$this->oeffentlich = $row->oeffentlich;
$this->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
return true;
}
else
{
$this->errormsg = 'Reihungstest existiert nicht';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Reihungstests';
return false;
}
}
/**
* Liefert alle Reihungstests
* wenn ein Datum uebergeben wird, dann werden alle Reihungstests ab diesem
* Datum zurueckgeliefert
*/
public function getAll($datum=null)
{
$qry = "SELECT * FROM public.tbl_reihungstest ";
if($datum!=null)
$qry.=" WHERE datum>=".$this->db_add_param($datum);
$qry.=" ORDER BY datum DESC, uhrzeit";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new reihungstest();
$obj->reihungstest_id = $row->reihungstest_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->ort_kurzbz = $row->ort_kurzbz;
$obj->anmerkung = $row->anmerkung;
$obj->datum = $row->datum;
$obj->uhrzeit = $row->uhrzeit;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->max_teilnehmer = $row->max_teilnehmer;
$obj->oeffentlich = $row->oeffentlich;
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Reihungstests';
return false;
}
}
/**
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
private function validate()
{
//Zahlenfelder pruefen
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg='studiengang_kz enthaelt ungueltige Zeichen';
return false;
}
//Gesamtlaenge pruefen
if(mb_strlen($this->ort_kurzbz)>32)
{
$this->errormsg = 'Ort_kurzbz darf nicht länger als 16 Zeichen sein';
return false;
}
if(mb_strlen($this->anmerkung)>64)
{
$this->errormsg = 'Anmerkung darf nicht länger als 64 Zeichen sein';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz mit der ID in $reihungstest_id aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
public function save()
{
if(!$this->validate())
return false;
if($this->new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO public.tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit,
ext_id, insertamum, insertvon, updateamum, updatevon, max_teilnehmer, oeffentlich, freigeschaltet) VALUES('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->ort_kurzbz).', '.
$this->db_add_param($this->anmerkung).', '.
$this->db_add_param($this->datum).', '.
$this->db_add_param($this->uhrzeit).', '.
$this->db_add_param($this->ext_id, FHC_INTEGER).', now(), '.
$this->db_add_param($this->insertvon).', now(), '.
$this->db_add_param($this->updatevon).','.
$this->db_add_param($this->max_teilnehmer).','.
$this->db_add_param($this->oeffentlich).','.
$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).');';
}
else
{
$qry='UPDATE public.tbl_reihungstest SET '.
'studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).', '.
'anmerkung='.$this->db_add_param($this->anmerkung).', '.
'datum='.$this->db_add_param($this->datum).', '.
'uhrzeit='.$this->db_add_param($this->uhrzeit).', '.
'ext_id='.$this->db_add_param($this->ext_id, FHC_INTEGER).', '.
'updateamum= now(), '.
'updatevon='.$this->db_add_param($this->updatevon).', '.
'max_teilnehmer='.$this->db_add_param($this->max_teilnehmer).', '.
'oeffentlich='.$this->db_add_param($this->oeffentlich).', '.
'freigeschaltet='.$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).' '.
'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';';
}
if($this->db_query($qry))
{
if($this->new)
{
$qry = "SELECT currval('public.tbl_reihungstest_reihungstest_id_seq') as id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->reihungstest_id = $row->id;
$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;
}
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return false;
}
}
/**
* Liefert die Reihungstests eines Studienganges
*
* @param $studiengang_kz
* @param $order (optional)
* @return true wenn ok, sonst false
*/
public function getReihungstest($studiengang_kz,$order=null)
{
$qry = "SELECT * FROM public.tbl_reihungstest WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
if ($order!=null)
$qry .=" ORDER BY ".$order.";";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new reihungstest();
$obj->reihungstest_id = $row->reihungstest_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->ort_kurzbz = $row->ort_kurzbz;
$obj->anmerkung = $row->anmerkung;
$obj->datum = $row->datum;
$obj->uhrzeit = $row->uhrzeit;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->max_teilnehmer = $row->max_teilnehmer;
$obj->oeffentlich = $row->oeffentlich;
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Reihungstests';
return false;
}
}
/**
* Liefert die Reihungstests der Zukunft und einer bestimmten ID
* Und sortiert diese so, dass die des uebergebenen Studienganges zuerst geliefert werden
* @param $include_id
* @param $studiengang_kz
* @return true wenn ok, sonst false
*/
public function getZukuenftige($include_id, $studiengang_kz)
{
$qry = "SELECT *, '1' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE datum>=now()-'1 days'::interval AND studiengang_kz=".$this->db_add_param($studiengang_kz)."
UNION
SELECT *, '2' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE datum>=now()-'1 days'::interval AND studiengang_kz!=".$this->db_add_param($studiengang_kz)."
UNION
SELECT *, '0' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE reihungstest_id=".$this->db_add_param($include_id)."
ORDER BY sortierung, stg, datum";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new reihungstest();
$obj->reihungstest_id = $row->reihungstest_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->ort_kurzbz = $row->ort_kurzbz;
$obj->anmerkung = $row->anmerkung;
$obj->datum = $row->datum;
$obj->uhrzeit = $row->uhrzeit;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->max_teilnehmer = $row->max_teilnehmer;
$obj->oeffentlich = $row->oeffentlich;
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Reihungstests';
return false;
}
}
public function getStgZukuenftige($stg)
{
$qry = "SELECT * "
. "FROM public.tbl_reihungstest "
. "WHERE studiengang_kz = ".$this->db_add_param($stg, FHC_INTEGER)." "
. "AND datum>=now()-'1 days'::interval "
. "AND oeffentlich;";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new reihungstest();
$obj->reihungstest_id = $row->reihungstest_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->ort_kurzbz = $row->ort_kurzbz;
$obj->anmerkung = $row->anmerkung;
$obj->datum = $row->datum;
$obj->uhrzeit = $row->uhrzeit;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->max_teilnehmer = $row->max_teilnehmer;
$obj->oeffentlich = $row->oeffentlich;
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->result[] = $obj;
}
return true;
}
else
return false;
}
public function getTeilnehmerAnzahl($reihungstest_id) {
$qry = 'SELECT count(*) AS anzahl '
. 'FROM public.tbl_prestudent '
. 'WHERE reihungstest_id = ' . $reihungstest_id;
$result = $this->db_query($qry);
$obj = $this->db_fetch_object($result);
return $obj->anzahl;
}
}
+36
View File
@@ -971,3 +971,39 @@ table.hoverbox
border-color:grey;
}
*/
body.bewerbung table {
border-collapse: collapse;
width: 100%;
}
body.bewerbung table.reihungstest {
table-layout: fixed;
}
body.bewerbung table th,
body.bewerbung table td {
padding: 3px;
border: 1px solid black;
text-align: center;
}
body.bewerbung table.reihungstest td:nth-child(5) {
text-align: left;
}
body.bewerbung .ui-tabs-vertical .ui-tabs-panel {
width: 75em;
}
body.bewerbung table.reihungstest th:nth-child(1),
body.bewerbung table.reihungstest th:nth-child(2),
body.bewerbung table.reihungstest th:nth-child(3),
body.bewerbung table.reihungstest th:nth-child(4),
body.bewerbung table.reihungstest th:nth-child(6) {
width: 10%;
}
body.bewerbung table.reihungstest th:nth-child(5) {
width: 50%;
}
+13 -2
View File
@@ -2256,7 +2256,7 @@ if(!$result = @$db->db_query("SELECT anmerkung FROM lehre.tbl_pruefung LIMIT 1;"
echo ' lehre.tbl_pruefung: Spalte anmerkung hinzugefuegt!<br>';
}
// Spalte max_teilnehmer in public.tbl_benutzerrolle
// Spalte max_teilnehmer in public.tbl_reihungstest
if(!$result = @$db->db_query("SELECT max_teilnehmer FROM public.tbl_reihungstest LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_reihungstest ADD COLUMN max_teilnehmer integer;";
@@ -2267,6 +2267,17 @@ if(!$result = @$db->db_query("SELECT max_teilnehmer FROM public.tbl_reihungstest
echo ' public.tbl_reihungstest: Spalte max_teilnehmer hinzugefuegt!<br>';
}
// Spalte oeffentlich in public.tbl_reihungstest
if(!$result = @$db->db_query("SELECT oeffentlich FROM public.tbl_reihungstest LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_reihungstest ADD COLUMN oeffentlich boolean NOT NULL DEFAULT FALSE;";
if(!$db->db_query($qry))
echo '<strong>public.tbl_reihungstest '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_reihungstest: Spalte oeffentlich hinzugefuegt!<br>';
}
echo '<br><br><br>';
$tabellen=array(
@@ -2457,7 +2468,7 @@ $tabellen=array(
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor"),
"public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv"),
"public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung"),
"public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer"),
"public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich"),
"public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id"),
"public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"),
"public.tbl_service" => array("service_id", "bezeichnung","beschreibung","ext_id","oe_kurzbz","content_id"),
File diff suppressed because it is too large Load Diff