, * Andreas Oesterreicher and * Rudolf Hangl . */ // header fuer no cache header("Cache-Control: no-cache"); header("Cache-Control: post-check=0, pre-check=0",false); header("Expires Mon, 26 Jul 1997 05:00:00 GMT"); header("Pragma: no-cache"); // content type setzen header("Content-type: application/xhtml+xml"); // xml if(isset($_GET['xmlformat']) && $_GET['xmlformat']=='xml') echo ''; else echo ''; // DAO require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../include/person.class.php'); require_once('../include/benutzer.class.php'); require_once('../include/student.class.php'); require_once('../include/studiengang.class.php'); require_once('../include/datum.class.php'); require_once('../include/studiensemester.class.php'); require_once('../include/prestudent.class.php'); require_once('../include/studiengang.class.php'); // *********** Funktionen ************************* function convdate($date) { list($d,$m,$y) = explode('.',$date); return $y.'-'.$m.'-'.$d; } function checkfilter($row, $filter2) { global $studiensemester_kurzbz, $kontofilterstg; $db = new basis_db(); if($filter2=='dokumente') { // Alle Personen die noch nicht alle Dokumente gebracht haben $qry = "SELECT count(*) as anzahl FROM public.tbl_dokumentstudiengang WHERE dokument_kurzbz NOT IN( SELECT dokument_kurzbz FROM tbl_dokumentprestudent WHERE prestudent_id='$row->prestudent_id') AND studiengang_kz='$row->studiengang_kz'"; if($db->db_query($qry)) if($row_filter = $db->db_fetch_object()) if($row_filter->anzahl==0) return false; } elseif($filter2=='konto') { // Alle Personen die offene Buchungen haben $qry = "SELECT sum(betrag) as summe FROM tbl_konto WHERE person_id='$row->person_id'"; if($kontofilterstg=='true') $qry.=" AND studiengang_kz='$row->studiengang_kz'"; //echo $qry; if($db->db_query($qry)) if($row_filter = $db->db_fetch_object()) if($row_filter->summe=='0.00' || $row_filter->summe=='' || $row_filter->summe=='0') return false; } elseif($filter2=='studiengebuehr') { // Alle Personen die keine Studiengebuehrbelastung haben // Incoming werden nicht beruecksichtigt $prestudent = new prestudent(); $prestudent->getLastStatus($row->prestudent_id); $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($db->db_query($qry)) if($row_filter = $db->db_fetch_object()) if($row_filter->anzahl>0 || $prestudent->status_kurzbz=='Incoming') return false; } elseif(strstr($filter2,'buchungstyp;')) { // Alle Personen die keine Belastung auf den uebergebenen Buchungstyp haben // Incoming werden nicht beruecksichtigt list($filter, $buchungstyp) = split(';',$filter2); $prestudent = new prestudent(); $prestudent->getLastStatus($row->prestudent_id); $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='$buchungstyp'"; if($db->db_query($qry)) if($row_filter = $db->db_fetch_object()) if($row_filter->anzahl>0 || $prestudent->status_kurzbz=='Incoming') return false; } elseif($filter2=='zgvohnedatum') { //Alle Personen die den ZGV Typ eingetragen haben aber noch kein Datum $qry = "SELECT zgv_code, zgvdatum, zgvmas_code, zgvmadatum FROM public.tbl_prestudent WHERE prestudent_id='$row->prestudent_id'"; if($db->db_query($qry)) { if($row_filter = $db->db_fetch_object()) { if(($row_filter->zgv_code!='' && $row_filter->zgvdatum=='') || ($row_filter->zgvmas_code!='' && $row_filter->zgvmadatum=='')) return true; else return false; } } } return true; } function draw_content_liste($row) { global $rdf_url, $datum_obj, $stg_arr; $status=''; $prestudent = new prestudent(); $prestudent->getLastStatus($row->prestudent_id); $status = $prestudent->status_kurzbz; $orgform = $prestudent->orgform_kurzbz; echo ' person_id.']]> prestudent_id.']]> uid)?$row->uid:'').']]> titelpre.']]> titelpost.']]> vornamen.']]> vorname.']]> nachname.']]> geschlecht.']]> '.($row->svnr==''?' ':'svnr.']]>').' '.($row->ersatzkennzeichen==''?' ':'ersatzkennzeichen.']]>').' convertISODate($row->gebdatum).']]> gebdatum.']]> semester)?$row->semester:'').']]> verband)?$row->verband:'').']]> gruppe)?$row->gruppe:'').']]> matrikelnr)?$row->matrikelnr:'').']]> email_privat.']]> uid)?$row->uid.'@'.DOMAIN:'').']]> '.($row->anmerkungen==''?' ':'anmerkungen.']]>').' '.($row->anmerkung==''?' ':'anmerkung.']]>').' studiengang_kz.']]> studiengang_kz].']]> aufmerksamdurch_kurzbz.']]> punkte.']]> rt_punkte1.']]> rt_punkte2.']]> dual=='t'?'true':'false').']]> dual=='t'?'Ja':'Nein').']]> '; } function draw_content($row) { global $rdf_url, $datum_obj; $db = new basis_db(); $status=''; $mail_privat = ''; $qry_mail = "SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id='$row->person_id' AND zustellung=true ORDER BY kontakt_id DESC LIMIT 1"; if($db->db_query($qry_mail)) { if($row_mail = $db->db_fetch_object()) { $mail_privat = $row_mail->kontakt; } } if($row->prestudent_id!='') { $prestudent = new prestudent(); $prestudent->getLastStatus($row->prestudent_id); $status = $prestudent->status_kurzbz; $orgform = $prestudent->orgform_kurzbz; if($status=='Aufgenommener' || $status=='Bewerber' || $status=='Wartender' || $status=='Interessent') $semester_prestudent = $prestudent->ausbildungssemester; else $semester_prestudent = ''; echo ' person_id.']]> titelpre.']]> titelpost.']]> vornamen.']]> vorname.']]> nachname.']]> convertISODate($row->gebdatum).']]> gebdatum.']]> homepage.']]> gebort.']]> gebzeit.']]> '.($row->anmerkungen==''?' ':'anmerkungen.']]>').' anrede.']]> svnr.']]> ersatzkennzeichen.']]> familienstand.']]> geschlecht.']]> anzahlkinder.']]> staatsbuergerschaft.']]> geburtsnation.']]> sprache.']]> uid)?$row->uid.'@'.DOMAIN:'').']]> bnaktiv) && $row->bnaktiv)?'true':'false').']]> uid)?$row->uid:'').']]> matrikelnr)?$row->matrikelnr:'').']]> alias)?$row->alias:'').']]> semester)?$row->semester:$semester_prestudent).']]> verband)?$row->verband:'').']]> gruppe)?$row->gruppe:'').']]> studiengang_kz:'').']]>'; } } function draw_prestudent($row) { global $rdf_url, $datum_obj, $stg_arr; if($row->prestudent_id!='') { echo ' prestudent_id.']]> studiengang_kz.']]> studiengang_kz.']]> aufmerksamdurch_kurzbz.']]> studiengang_kz].']]> berufstaetigkeit_code.']]> ausbildungcode.']]> zgv_code.']]> zgvort.']]> convertISODate($row->zgvdatum).']]> zgvdatum.']]> zgvmas_code.']]> zgvmaort.']]> convertISODate($row->zgvmadatum).']]> zgvmadatum.']]> aufnahmeschluessel.']]> facheinschlberuf?'true':'false').']]> reihungstest_id.']]> convertISODate($row->anmeldungreihungstest).']]> anmeldungreihungstest.']]> reihungstestangetreten?'true':'false').']]> punkte.']]> rt_punkte1.']]> rt_punkte2.']]> bismelden?'true':'false').']]> dual?'true':'false').']]> dual?'Ja':'Nein').']]> anmerkung.']]> '; } } // ******* Init ************************** if(isset($_SERVER['REMOTE_USER'])) { $user = get_uid(); loadVariables($user); } $gruppe_kurzbz=(isset($_GET['gruppe_kurzbz'])?$_GET['gruppe_kurzbz']:null); $gruppe=(isset($_GET['gruppe'])?$_GET['gruppe']:null); $verband=(isset($_GET['verband'])?$_GET['verband']:null); $semester=(isset($_GET['semester'])?$_GET['semester']:null); $studiengang_kz=(isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:null); $studiensemester_kurzbz = (isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:null); $uid = (isset($_GET['uid'])?$_GET['uid']:null); $typ = (isset($_GET['typ'])?$_GET['typ']:null); $prestudent_id = (isset($_GET['prestudent_id'])?$_GET['prestudent_id']:null); $filter = (isset($_GET['filter'])?$_GET['filter']:null); $ss = (isset($_GET['ss'])?$_GET['ss']:null); $filter2 = (isset($_GET['filter2'])?$_GET['filter2']:null); $orgform = (isset($_GET['orgform'])?$_GET['orgform']:null); $db = new basis_db(); if($studiensemester_kurzbz=='aktuelles') $studiensemester_kurzbz = $semester_aktuell; if(isset($_GET['xmlformat']) && $_GET['xmlformat']=='xml') $xmlformat='xml'; else $xmlformat='rdf'; $datum_obj = new datum(); // ************ Beginn ************************** if($xmlformat=='rdf') { $stg_arr = array(); $stg_obj = new studiengang(); $stg_obj->getAll(null, false); foreach ($stg_obj->result as $row) $stg_arr[$row->studiengang_kz]=$row->kuerzel; $rdf_url='http://www.technikum-wien.at/student'; echo ' '; if(isset($uid)) { $student=new student(); $student->load($uid, $studiensemester_kurzbz); $prestd = new prestudent(); draw_content($student); $prestd->load($student->prestudent_id); draw_prestudent($prestd); } if($typ=='student') { // Studenten holen $where = ''; if ($gruppe_kurzbz!=null) { $where=" gruppe_kurzbz='".$gruppe_kurzbz."' "; if($studiensemester_kurzbz!=null) $where.=" AND tbl_benutzergruppe.studiensemester_kurzbz='$studiensemester_kurzbz'"; } else { $where.=" tbl_studentlehrverband.studiengang_kz=$studiengang_kz"; if ($semester!=null) $where.=" AND tbl_studentlehrverband.semester=$semester"; if ($verband!=null) $where.=" AND tbl_studentlehrverband.verband='".$verband."'"; if ($gruppe!=null) $where.=" AND tbl_studentlehrverband.gruppe='".$gruppe."'"; //Wenn eine Orgform uebergeben wird nur das Semester ausgewaehlt ist, dann //nach der Orgform filtern. Bei Verbaenden, Gruppen und Spezialgruppen wird auf //die Orgform keine ruecksicht genommen if($verband=='' && $gruppe=='' && $orgform!='') { $where.=" AND '$orgform' = (SELECT orgform_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id"; if($studiensemester_kurzbz!=null) $where.=" AND studiensemester_kurzbz='$studiensemester_kurzbz'"; $where.=" ORDER BY datum desc, insertamum desc, ext_id desc LIMIT 1)"; } } //$where.=" AND tbl_studentlehrverband.studiensemester_kurzbz='$studiensemester_kurzbz'"; $sql_query="SET CLIENT_ENCODING TO 'UNICODE'; SELECT p.person_id, tbl_student.prestudent_id, tbl_benutzer.uid, titelpre, titelpost, vorname, vornamen, geschlecht, nachname, gebdatum, tbl_prestudent.anmerkung,ersatzkennzeichen,svnr, tbl_student.matrikelnr, p.anmerkung as anmerkungen, tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, tbl_student.studiengang_kz, aufmerksamdurch_kurzbz, ( SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id=p.person_id AND zustellung LIMIT 1 ) AS email_privat, (SELECT rt_gesamtpunkte as punkte FROM public.tbl_prestudent WHERE prestudent_id=tbl_student.prestudent_id) as punkte, (SELECT rt_punkte1 as punkte FROM public.tbl_prestudent WHERE prestudent_id=tbl_student.prestudent_id) as rt_punkte1, (SELECT rt_punkte2 as punkte FROM public.tbl_prestudent WHERE prestudent_id=tbl_student.prestudent_id) as rt_punkte2, tbl_prestudent.dual as dual FROM public.tbl_student JOIN public.tbl_benutzer ON (student_uid=uid) JOIN public.tbl_person p USING (person_id) JOIN public.tbl_prestudent USING(prestudent_id) "; if($gruppe_kurzbz!=null) $sql_query.= "JOIN public.tbl_benutzergruppe USING (uid) "; $sql_query.="LEFT JOIN public.tbl_studentlehrverband ON (tbl_studentlehrverband.student_uid=tbl_student.student_uid AND tbl_studentlehrverband.studiensemester_kurzbz='$studiensemester_kurzbz')"; $sql_query.="WHERE ".$where.' ORDER BY nachname, vorname'; if($db->db_query($sql_query)) { while($row = $db->db_fetch_object()) { if(checkfilter($row, $filter2)) draw_content_liste($row); } } } elseif($typ=='incoming' || $typ=='outgoing') { if($studiensemester_kurzbz=='') $studiensemester_kurzbz=$semester_aktuell; if($typ=='incoming') { $qry = "SELECT prestudent_id FROM public.tbl_prestudentstatus WHERE status_kurzbz='Incoming' AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'"; } else { $stsem_obj = new studiensemester(); $stsem_obj->load($studiensemester_kurzbz); $qry = "SELECT prestudent_id FROM bis.tbl_bisio JOIN public.tbl_student USING(student_uid) WHERE ( (tbl_bisio.von>='".$stsem_obj->start."' AND tbl_bisio.von<='".$stsem_obj->ende."') OR (tbl_bisio.bis>='".$stsem_obj->start."' AND tbl_bisio.bis<='".$stsem_obj->ende."') ) AND NOT EXISTS(SELECT 1 FROM public.tbl_prestudentstatus WHERE status_kurzbz='Incoming' AND prestudent_id=tbl_student.prestudent_id) "; } if($db->db_query($qry)) { while($row = $db->db_fetch_object()) { $student=new student(); if($uid = $student->getUid($row->prestudent_id)) { //Wenn kein Eintrag fuers aktuelle Studiensemester da ist, dann //nochmal laden aber ohne studiensemester if(!$student->load($uid, $studiensemester_kurzbz)) $student->load($uid); } $prestd = new prestudent(); $prestd->load($row->prestudent_id); if($uid!='') { draw_content($student); draw_prestudent($prestd); } else { draw_content($prestd); draw_prestudent($prestd); } } } } elseif(in_array($typ, array('prestudent', 'interessenten','bewerber','aufgenommen', 'warteliste','absage','zgv','reihungstestangemeldet', 'reihungstestnichtangemeldet','absolvent','diplomand'))) { $prestd = new prestudent(); if($studiengang_kz!=null) { if($prestd->loadIntessentenUndBewerber($studiensemester_kurzbz, $studiengang_kz, $semester, $typ, $orgform)) { foreach ($prestd->result as $row) { if(checkfilter($row, $filter2)) { $student=new student(); if($uid = $student->getUid($row->prestudent_id)) { if(!$student->load($uid, $studiensemester_kurzbz)) $student->load($uid); draw_content($student); } else draw_content($row); draw_prestudent($row); } } } } elseif($prestudent_id!=null) { if($prestd->load($prestudent_id)) { draw_content($prestd); draw_prestudent($prestd); } else echo $prestd->errormsg; } else { echo 'Falsche Parameteruebergabe'; } } else { if($filter!='') { //$filter = utf8_decode($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)."' OR matrikelnr = '".addslashes($filter)."';"; if($db->db_query($qry)) { while($row = $db->db_fetch_object()) { $student=new student(); if($uid = $student->getUid($row->prestudent_id)) { //Wenn kein Eintrag fuers aktuelle Studiensemester da ist, dann //nochmal laden aber ohne studiensemester if(!$student->load($uid, $studiensemester_kurzbz)) $student->load($uid); } $prestd = new prestudent(); $prestd->load($row->prestudent_id); if($uid!='') { draw_content($student); draw_prestudent($prestd); } else { draw_content($prestd); draw_prestudent($prestd); } } } } elseif(isset($prestudent_id)) { $student=new student(); if($uid = $student->getUid($prestudent_id)) { //Wenn kein Eintrag fuers aktuelle Studiensemester da ist, dann //nochmal laden aber ohne studiensemester if(!$student->load($uid, $studiensemester_kurzbz)) $student->load($uid); } $prestd = new prestudent(); $prestd->load($prestudent_id); if($uid!='') { draw_content($student); draw_prestudent($prestd); } else { draw_content($prestd); draw_prestudent($prestd); } } } echo "\n"; } else { //XML $uids = split(';',$uid); echo ''; foreach ($uids as $uid) { if($uid!='') { $student = new student(); $student->load($uid); $studiengang = new studiengang(); $studiengang->load($student->studiengang_kz); $typ=''; switch($studiengang->typ) { case 'd': $typ = 'FH-Diplom-Studiengang'; break; case 'm': $typ = 'FH-Master-Studiengang'; break; case 'b': $typ = 'FH-Bachelor-Studiengang'; break; default: $typ = 'FH-Studiengang'; } $qry = "SELECT * FROM campus.vw_benutzer JOIN public.tbl_benutzerfunktion USING(uid) WHERE funktion_kurzbz='rek'"; $rektor = ''; if($db->db_query($qry)) { if($row = $db->db_fetch_object()) { $rektor = $row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost; } } $studiengbeginn = ''; $studiensemester_kurzbz=''; $qry = "SELECT * FROM public.tbl_prestudentstatus JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) WHERE prestudent_id='$student->prestudent_id' AND status_kurzbz in('Student','Incoming') ORDER BY datum LIMIT 1"; if($db->db_query($qry)) { if($row = $db->db_fetch_object()) { $studienbeginn = $row->start; $studiensemester = $row->studiensemester_kurzbz; } } $stsem = new studiensemester(); //$aktstsem = $stsem->getaktorNext(); $stsem->load($ss); $qry = "SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id='$student->prestudent_id' AND studiensemester_kurzbz='$ss' ORDER BY datum DESC"; $semester=0; if($db->db_query($qry)) { if($row = $db->db_fetch_object()) { $semester = $row->ausbildungssemester; } } echo ' uid.']]> person_id.']]> titelpre.']]> titelpost.']]> vornamen.']]> vorname.']]> nachname.']]> matrikelnr.']]> convertISODate($student->gebdatum).']]> gebdatum.']]> verband.']]> gruppe.']]> studiengang_kz).']]> bezeichnung.']]> anrede.']]> svnr.']]> ersatzkennzeichen.']]> familienstand.']]> convertISODate($studienbeginn).']]> studiensemester_kurzbz.']]> convertISODate($stsem->start).']]> '; } } echo ''; } ?>