This commit is contained in:
Andreas Österreicher
2007-09-07 12:54:00 +00:00
parent 8d6d9bb615
commit 6ca6144983
16 changed files with 215 additions and 61 deletions
+1 -1
View File
@@ -385,7 +385,7 @@
</tr>
<tr>
<td class="tdwidth10" nowrap>&nbsp;</td>
<td class="tdwrap"><a class="Item" href="private/info/qm/organisation.html" target="content"><img src="../skin/images/menu_item.gif" width="7" height="9">&nbsp;Organisation</a></td>
<td class="tdwrap"><a class="Item" href="private/info/qm/organigramm.html" target="content"><img src="../skin/images/menu_item.gif" width="7" height="9">&nbsp;Organigramm</a></td>
</tr>
<tr>
<td class="tdwidth10" nowrap>&nbsp;</td>
+7
View File
@@ -71,6 +71,13 @@ H
<br>
<b><br>
Vertreter StudentInnen</b><br>
Walther Maria<br>
Neumann Eric<br>
Palatin Willibald<br>
Horvath Martin<br>
Mischling Barbara<br>
Lowatschek Karl<br>
Steinbrecher Helmut<br>
N.N.<br>
</td>
</tr>
+14 -8
View File
@@ -12,14 +12,7 @@ Auflistung nach Priorit&auml;t (h&ouml;chste oben).<br>
<li>Soll die Summe aller Zahlungen auf der Zahlungsbestätigung angezeigt werden?</li>
<li>Export für Studenten mit (offenen) Zahlungen</li>
<h2>&Auml;nderungen</h2>
<li>Excel-Export Bewerberstatistik (Kollmitzerstatistik) erstellen</li>
<li>Prüfungsprotokoll und Urkunde sollen für mehrere Studenten auf einmal druckbar sein</li>
<li>Am Zeugnis bei berufspraktikum zusätzlich die Firma anzeigen</li>
<li>neue Variable kontofilterstg=false wenn true dann nur die buchungen des jeweiligen Stg anzeigen</li>
<li>Filter für Studenten die im Aktuellen Studiensemester no keine Studiengebührbelastung haben</li>
<li>Notenspiegel als Excel</li>
<li>Für die Farbe der Noten im Notenspiegel diejenigen aus der Tabelle Note verwenden</li>
<li>Summer der Zahlungen auf der Zahlungsbestätigung anzeigen</lI>
<br>
<h2>Fehler</h2>
<li>Beim Starten kommt manchmal folgende Fehlermeldung in der Errorconsole: Error: can't decode principals (failure code 8007000e)</li>
@@ -54,7 +47,20 @@ content/statistik/lvplanung.php muss noch erstellt werden)</li>
<hr>
<h2>Erledigte Anforderungen</h2>
<ul>
<li>Studiengang und Semester bei LV-Ansicht anzeigen<br>
07.09.2007 oesi<br><br>
<li>Suche auch für Vorname und UID<br>
07.09.2007 oesi<br><br>
<li>Für die Farbe der Noten im Notenspiegel diejenigen aus der Tabelle Note verwenden<br>
07.09.2007 oesi<br><br></li>
<li>Notenspiegel als Excel<br>
07.09.2007 oesi<br><br></li>
<li>Filter für Studenten die im Aktuellen Studiensemester no keine Studiengebührbelastung haben<br>
07.09.2007 oesi<br><br></li>
<li>neue Variable kontofilterstg=false wenn true dann nur die buchungen des jeweiligen Stg anzeigen<br>
07.09.2007 oesi<br><br></li>
<li>Excel-Export Bewerberstatistik (Kollmitzerstatistik) erstellen<br>
07.09.2007 oesi<br><br></li>
<li>Anrede beim Interessentenimport hinzufügen<br>
03.09.2007 oesi<br><br></li>
<li>Reihenfolge der Spalten im Tree "merken"<br>
+10
View File
@@ -76,6 +76,7 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
<command id="menu-properties-studiensemester:command" oncommand="studiensemesterChange();"/>
<command id="menu-prefs-stpltable-stundenplan:command" oncommand="stpltableChange('stundenplan');"/>
<command id="menu-prefs-stpltable-stundenplandev:command" oncommand="stpltableChange('stundenplandev');"/>
<command id="menu-prefs-kontofilterstg:command" oncommand="EinstellungenKontoFilterStgChange();"/>
<command id="menu-statistic-koordinatorstunden:command" oncommand="StatistikPrintKoordinatorstunden();"/>
<command id="menu-statistic-lehrauftraege:command" oncommand="StatistikPrintLehrauftraege();"/>
<command id="menu-statistic-lvplanung:command" oncommand="StatistikPrintLVPlanung();"/>
@@ -173,6 +174,15 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
</menupopup>
</menu>
<menuitem
id ="menu-prefs-kontofilterstg"
type ="checkbox"
key ="menu-prefs-kontofilterstg:key"
label ="&menu-prefs-kontofilterstg.label;"
command ="menu-prefs-kontofilterstg:command"
accesskey ="&menu-prefs-kontofilterstg.accesskey;"
checkbox ="<?php echo $kontofilterstg;?>"
/>
</menupopup>
</menu>
<menu id="menu-statistic" label="&menu-statistic.label;" accesskey="&menu-statistic.accesskey;">
+17 -4
View File
@@ -262,16 +262,29 @@ if(!$error)
}
elseif(isset($_POST['type']) && $_POST['type']=='variablechange') /**********************SONSTIGES*****************/
{
$variable = new variable($conn, null, null, true);
$variable->uid = $user;
$variable->new = false;
// Aendert die Variable Studiensemester
if(isset($_POST['stsem']))
{
$variable = new variable($conn, null, null, true);
$variable->uid = $user;
$variable->name = 'semester_aktuell';
$variable->wert = $_POST['stsem'];
$variable->new = false;
}
elseif(isset($_POST['kontofilterstg']))
{
$variable->name = 'kontofilterstg';
$variable->wert = $_POST['kontofilterstg'];
}
else
{
$error = true;
}
if(!$error)
{
if($variable->save())
{
$return = true;
+55
View File
@@ -790,4 +790,59 @@ function ChangeTabVerband()
{
if(document.getElementById('main-content-tabs').selectedItem==document.getElementById('tab-mitarbeiter'))
document.getElementById('main-content-tabs').selectedItem=document.getElementById('tab-studenten');
}
// ****
// * Aendert die Variable kontofilterstg
// * Wenn kontofilterstg=true dann werden nur die Buchungen aus dem
// * aktuellen Studiengang angezeigt
// ****
function EinstellungenKontoFilterStgChange()
{
item = document.getElementById('menu-prefs-kontofilterstg');
if(item.getAttribute('checked')=='true')
checked='true';
else
checked='false';
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
// Request absetzen
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'variablechange');
req.add('kontofilterstg', checked);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
//Statusbar setzen
document.getElementById("statusbarpanel-text").label = "Variable wurde erfolgreich geaendert";
//Ansichten Refreshen
try
{
//Konto tree Refreshen
}
catch(e)
{
debug('catch: '+e);
}
}
return true;
}
@@ -139,6 +139,14 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#fachbereich"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-studiengang" label="Studiengang" flex="1" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#studiengang"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-semester" label="Semester" flex="1" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#semester"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-lehrveranstaltung_id" label="Lehrveranstaltung_id" flex="1" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehrveranstaltung_id" />
@@ -169,6 +177,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lektoren"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#anmerkung"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#fachbereich"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#studiengang"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#semester"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehrveranstaltung_id" />
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehreinheit_id"/>
</treerow>
@@ -93,7 +93,9 @@ $qry = "SELECT
tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
studiengang_kz='$studiengang_kz' AND studiensemester_kurzbz='$semester_aktuell'";
studiengang_kz='$studiengang_kz' AND studiensemester_kurzbz='$semester_aktuell' AND
tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND tbl_lehreinheitmitarbeiter.semesterstunden is not null
AND tbl_lehreinheitmitarbeiter.stundensatz<>0 AND tbl_lehreinheitmitarbeiter.faktor<>0";
if($semester!='')
$qry.=" AND semester='$semester'";
$qry.=" ORDER BY nachname, vorname, tbl_mitarbeiter.mitarbeiter_uid";
+2 -1
View File
@@ -54,7 +54,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<button id="student-konto-button-filter" value="alle" oncommand="StudentKontoFilter()" label="offene Anzeigen" disabled="true"/>
</hbox>
<hbox>
<button id="student-konto-button-filterstudenten" oncommand="StudentKontoFilterStudenten()" label="Studentenliste auf offene Buchungen filtern" tooltiptext="Liste aller Studenten mit offenen Buchungen"/>
<button id="student-konto-button-filterstudenten" oncommand="StudentKontoFilterStudenten('konto')" label="Studentenliste auf offene Buchungen filtern" tooltiptext="Liste aller Studenten mit offenen Buchungen"/>
<button id="student-konto-button-filterstudiengebuehr" oncommand="StudentKontoFilterStudenten('studiengebuehr')" label="nicht gebuchte Studiengebuehr" tooltiptext="Liste aller Studenten ohne Studiengebuehrbelastung"/>
</hbox>
</row>
+5 -4
View File
@@ -974,7 +974,7 @@ function StudentAuswahl()
// *** Konto ***
kontotree = document.getElementById('student-konto-tree');
filter = document.getElementById('student-konto-button-filter').value;
url='<?php echo APP_ROOT;?>rdf/konto.rdf.php?person_id='+person_id+"&filter="+filter+"&"+gettimestamp();
url='<?php echo APP_ROOT;?>rdf/konto.rdf.php?person_id='+person_id+"&filter="+filter+"&studiengang_kz="+studiengang_kz_prestudent+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = kontotree.database.GetDataSources();
@@ -1719,7 +1719,8 @@ function StudentKontoFilter()
//Konto Tree mit neuem Filter laden
kontotree = document.getElementById('student-konto-tree');
person_id = document.getElementById('student-prestudent-textbox-person_id').value
url='<?php echo APP_ROOT;?>rdf/konto.rdf.php?person_id='+person_id+"&filter="+filter.value+"&"+gettimestamp();
studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value
url='<?php echo APP_ROOT;?>rdf/konto.rdf.php?person_id='+person_id+"&filter="+filter.value+"&studiengang_kz="+studiengang_kz+"&"+gettimestamp();
var buchungsnr=null;
try
@@ -1765,7 +1766,7 @@ function StudentKontoFilter()
// ****
// * Zeigt im Studententree nur diejenigen Studenten an die noch nicht alle Dokumente abgegeben haben
// ****
function StudentKontoFilterStudenten()
function StudentKontoFilterStudenten(filter)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree=document.getElementById('tree-verband');
@@ -1795,7 +1796,7 @@ function StudentKontoFilterStudenten()
var stsem=tree.view.getCellText(tree.currentIndex,col);
stsem = getStudiensemester();
url = "<?php echo APP_ROOT; ?>rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ=student&filter2=konto&"+gettimestamp();
url = "<?php echo APP_ROOT; ?>rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ=student&filter2="+filter+"&"+gettimestamp();
var treeStudent=document.getElementById('student-tree');
//Alte DS entfernen
+6
View File
@@ -181,6 +181,12 @@ function loadVariables($conn, $user)
}
if (!isset($db_stpl_table))
$db_stpl_table='stundenplan';
if (!isset($kontofilterstg))
{
global $kontofilterstg;
$kontofilterstg='false';
}
return $error_msg;
}
+40 -36
View File
@@ -29,8 +29,8 @@ class konto
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var adresse Objekt
var $buch_nr = array();
var $result = array(); // @var adresse Objekt
var $buch_nr = array();
var $buch_date = array();
//Tabellenspalten
@@ -338,14 +338,18 @@ class konto
// * @param person_id, filter
// * @return true wenn ok, false wenn fehler
// ******************************************
function getBuchungen($person_id, $filter='alle')
function getBuchungen($person_id, $filter='alle', $studiengang_kz='')
{
if(!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
if($studiengang_kz!='')
$stgwhere = " AND tbl_konto.studiengang_kz='$studiengang_kz' ";
else
$stgwhere = '';
if($filter=='offene')
{
//Alle Buchungen und 'darunterliegende' holen die noch offen sind
@@ -360,12 +364,12 @@ class konto
(betrag + (SELECT CASE WHEN sum(betrag) is null THEN 0
ELSE sum(betrag) END
FROM public.tbl_konto WHERE buchungsnr_verweis=konto_a.buchungsnr))<>0
AND person_id='$person_id') ORDER BY buchungsdatum";
AND person_id='$person_id') $stgwhere ORDER BY buchungsdatum";
}
else
$qry = "SELECT tbl_konto.*, anrede, titelpost, titelpre, nachname, vorname, vornamen
FROM public.tbl_konto JOIN public.tbl_person USING (person_id)
WHERE person_id='".$person_id."' ORDER BY buchungsdatum";
WHERE person_id='".$person_id."' $stgwhere ORDER BY buchungsdatum";
if($result = pg_query($this->conn, $qry))
{
@@ -464,43 +468,43 @@ class konto
$this->errormsg = 'Fehler beim Ermitteln der Differenz';
return false;
}
}
// ******************************
// * Überprüft, ob studiengebühr gebucht ist für
// * student_uid und studiensemester
// * gibt true/false zurück und setzt bei true das buchungsdatum $this->buchungsdatum
// ******************************
}
// ******************************
// * Überprüft, ob studiengebühr gebucht ist für
// * student_uid und studiensemester
// * gibt true/false zurück und setzt bei true das buchungsdatum $this->buchungsdatum
// ******************************
function checkStudienbeitrag($uid, $stsem)
{
$subqry = "SELECT tbl_konto.buchungsnr, tbl_konto.buchungsdatum FROM public.tbl_konto, public.tbl_benutzer WHERE tbl_konto.studiensemester_kurzbz = '".$stsem."' AND tbl_benutzer.uid = '".$uid."' AND tbl_benutzer.person_id = tbl_konto.person_id and tbl_konto.buchungstyp_kurzbz = 'Studiengebuehr' ORDER BY buchungsnr";
$subres = pg_query($this->conn, $subqry);
if (pg_num_rows($subres)==0)
return false;
else
{
while ($subrow = pg_fetch_object($subres))
{
$buch_nr[] = $subrow->buchungsnr;
$buch_date[] = $subrow->buchungsdatum;
}
}
$subqry = "SELECT tbl_konto.buchungsnr, tbl_konto.buchungsdatum FROM public.tbl_konto, public.tbl_benutzer WHERE tbl_konto.studiensemester_kurzbz = '".$stsem."' AND tbl_benutzer.uid = '".$uid."' AND tbl_benutzer.person_id = tbl_konto.person_id and tbl_konto.buchungstyp_kurzbz = 'Studiengebuehr' ORDER BY buchungsnr";
$subres = pg_query($this->conn, $subqry);
if (pg_num_rows($subres)==0)
return false;
else
{
while ($subrow = pg_fetch_object($subres))
{
$buch_nr[] = $subrow->buchungsnr;
$buch_date[] = $subrow->buchungsdatum;
}
}
$qry = "SELECT sum(betrag) as differenz FROM public.tbl_konto WHERE buchungsnr='".$buch_nr[0]."' OR buchungsnr_verweis='".$buch_nr[0]."'";
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
{
if ($row->differenz == 0)
{
$this->buchungsdatum = $buch_date[1];
return true;
}
else
return false;
{
if ($row->differenz == 0)
{
$this->buchungsdatum = $buch_date[1];
return true;
}
else
return false;
}
else
{
+4
View File
@@ -36,6 +36,10 @@
<!ENTITY menu-prefs-stpltable-stundenplandev.label "stundenplandev">
<!ENTITY menu-prefs-stpltable-stundenplandev.accesskey "d">
<!ENTITY menu-prefs-kontofilterstg.key "B">
<!ENTITY menu-prefs-kontofilterstg.label "Buchungen auf Studiengang filtern">
<!ENTITY menu-prefs-kontofilterstg.accesskey "B">
<!ENTITY menu-statistic.label "Berichte">
<!ENTITY menu-statistic.accesskey "R">
+11 -4
View File
@@ -40,7 +40,7 @@ require_once('../include/konto.class.php');
require_once('../include/person.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/datum.class.php');
//require_once('../include/functions.inc.php');
require_once('../include/functions.inc.php');
// Datenbank Verbindung
if (!$conn = pg_pconnect(CONN_STRING))
@@ -84,7 +84,7 @@ if(isset($_GET['buchungsnummern']))
else
$buchungsnummern = '';
$studiengang_kz = (isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:'');
$datum = new datum();
if($xmlformat=='rdf')
@@ -92,9 +92,16 @@ if($xmlformat=='rdf')
else
$konto = new konto($conn, null, false);
if(isset($_SERVER['REMOTE_USER']))
{
$user = get_uid();
loadVariables($conn, $user);
if($kontofilterstg=='false')
$studiengang_kz='';
}
if($person_id!='')
{
$konto->getBuchungen($person_id, $filter);
$konto->getBuchungen($person_id, $filter, $studiengang_kz);
}
elseif($buchungsnr!='')
{
@@ -105,7 +112,7 @@ elseif($buchungsnr!='')
$rdf_url='http://www.technikum-wien.at/konto';
if ($xmlformat=='rdf')
{
?>
<RDF:RDF
+11
View File
@@ -38,6 +38,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
require_once('../vilesci/config.inc.php');
require_once('../include/lehrveranstaltung.class.php');
require_once('../include/lehreinheit.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/functions.inc.php');
// Datenbank Verbindung
@@ -66,6 +67,14 @@ $fachbereich_kurzbz=(isset($_GET['fachbereich_kurzbz'])?$_GET['fachbereich_kurzb
loadVariables($conn, $user);
$stg_arr = array();
$stg_obj = new studiengang($conn);
$stg_obj->getAll('typ, kurzbzlang', false);
foreach ($stg_obj->result as $row)
{
$stg_arr[$row->studiengang_kz]=$row->kuerzel;
}
// LVAs holen
$lvaDAO=new lehrveranstaltung($conn, null, true);
if($uid!='') // Alle LVs eines Mitarbeiters
@@ -148,6 +157,7 @@ if(!$result = pg_query($conn, $qry))
<LVA:kurzbz><![CDATA[".$row_lva->lv_kurzbz."]]></LVA:kurzbz>
<LVA:bezeichnung><![CDATA[".$row_lva->lv_bezeichnung."]]></LVA:bezeichnung>
<LVA:studiengang_kz>".$row_lva->studiengang_kz."</LVA:studiengang_kz>
<LVA:studiengang>".$stg_arr[$row_lva->studiengang_kz]."</LVA:studiengang>
<LVA:semester>".$row_lva->semester."</LVA:semester>
<LVA:sprache><![CDATA[".$row_lva->sprache."]]></LVA:sprache>
<LVA:ects>".$row_lva->lv_ects."</LVA:ects>
@@ -222,6 +232,7 @@ if(!$result = pg_query($conn, $qry))
<LVA:kurzbz><![CDATA[".$row_lf->kurzbz."]]></LVA:kurzbz>
<LVA:bezeichnung><![CDATA[".$row_lf->bezeichnung."]]></LVA:bezeichnung>
<LVA:studiengang_kz>".$row_lva->studiengang_kz."</LVA:studiengang_kz>
<LVA:studiengang>".$stg_arr[$row_lva->studiengang_kz]."</LVA:studiengang>
<LVA:semester>".$row_lva->semester."</LVA:semester>
<LVA:sprache><![CDATA[".$row_le->sprache."]]></LVA:sprache>
<LVA:ects></LVA:ects>
+19 -2
View File
@@ -32,7 +32,7 @@ function convdate($date)
}
function checkfilter($row, $filter2)
{
global $conn;
global $conn, $studiensemester_kurzbz;
if($filter2=='dokumente')
{
@@ -53,6 +53,17 @@ function convdate($date)
if($row_filter->summe=='0.00')
return false;
}
elseif($filter2=='studiengebuehr')
{
$qry = "SELECT count(*) as anzahl FROM public.tbl_konto WHERE
studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND
person_id='".addslashes($row->person_id)."' AND
buchungstyp_kurzbz='Studiengebuehr'";
if($result_filter = pg_query($conn, $qry))
if($row_filter = pg_fetch_object($result_filter))
if($row_filter->anzahl>0)
return false;
}
return true;
}
@@ -412,7 +423,13 @@ if($xmlformat=='rdf')
if($filter!='')
{
$filter = utf8_decode($filter);
$qry = "SELECT prestudent_id FROM public.tbl_person JOIN tbl_prestudent USING (person_id) WHERE nachname ~* '".addslashes($filter)."';";
$qry = "SELECT prestudent_id
FROM
public.tbl_person JOIN tbl_prestudent USING (person_id) LEFT JOIN tbl_student using(prestudent_id)
WHERE
nachname ~* '".addslashes($filter)."' OR
vorname ~* '".addslashes($filter)."' OR
student_uid ~* '".addslashes($filter)."';";
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))