, * 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'); require_once('../include/lehrveranstaltung.class.php'); require_once('../include/mitarbeiter.class.php'); require_once('../include/organisationsform.class.php'); require_once('../include/konto.class.php'); require_once('../include/reihungstest.class.php'); require_once('../include/studienordnung.class.php'); require_once('../include/studienplan.class.php'); require_once('../include/kontakt.class.php'); require_once('../include/notiz.class.php'); // *********** Funktionen ************************* function convdate($date) { list($d,$m,$y) = explode('.',$date); return $y.'-'.$m.'-'.$d; } function checkfilter($row, $filter2, $buchungstyp = null) { global $studiensemester_kurzbz, $kontofilterstg, $studiengang_kz; $db = new basis_db(); $studstatusgrund = array(); 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=".$db->db_add_param($row->prestudent_id).") AND studiengang_kz=".$db->db_add_param($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=".$db->db_add_param($row->person_id, FHC_INTEGER); if($kontofilterstg=='true') $qry.=" AND studiengang_kz=".$db->db_add_param($row->studiengang_kz); if($buchungstyp != null && $buchungstyp != "alle") $qry.=" AND buchungstyp_kurzbz=".$db->db_add_param($buchungstyp); 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=".$db->db_add_param($studiensemester_kurzbz)." AND person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." 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($filter2 == 'StudiengebuehrErhoeht') { // Alle Personen die eine erhöhte Studiengebuehrbelastung haben $prestudent = new prestudent(); $prestudent->getLastStatus($row->prestudent_id); $qry = "SELECT count(*) as anzahl FROM public.tbl_konto WHERE studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND buchungstyp_kurzbz='StudiengebuehrErhoeht'"; if($db->db_query($qry)) if($row_filter = $db->db_fetch_object()) if($row_filter->anzahl == 0) return false; } elseif(strstr($filter2,'buchungstyp;')) { // Alle Personen die keine Belastung auf den uebergebenen Buchungstyp haben // Incoming werden nicht beruecksichtigt list($filter, $buchungstyp) = explode(';',$filter2); $prestudent = new prestudent(); $prestudent->getLastStatus($row->prestudent_id); $qry = "SELECT count(*) as anzahl FROM public.tbl_konto WHERE studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND buchungstyp_kurzbz=".$db->db_add_param($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,zgvdoktor_code, zgvdoktordatum FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($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=='') || ($row_filter->zgvdoktor_code!='' && $row_filter->zgvdoktordatum=='') ) return true; else return false; } } } elseif($filter2=='ausbildungsvertragakzeptiert') { //Alle Personen die den archivierten Ausbildungsvertrag akzeptiert haben $qry = "SELECT count(*) as anzahl FROM public.tbl_akte WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND dokument_kurzbz='Ausbvert' AND archiv=true AND stud_selfservice=true AND akzeptiertamum IS NOT NULL"; if($db->db_query($qry)) { if($row_filter = $db->db_fetch_object()) { if($row_filter->anzahl > 0) return true; else return false; } } } elseif ( preg_match('/^stud-statusgrund-([0-9]+)$/', $filter2, $studstatusgrund) ) { // Alle Studenten mit Statusgrund in tbl_prestudentstatus $qry = "SELECT count(*) AS anzahl FROM public.tbl_prestudentstatus ps JOIN public.tbl_prestudent p ON p.prestudent_id = ps.prestudent_id AND ps. studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND p. person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND p.studiengang_kz=" . $db->db_add_param($studiengang_kz, FHC_INTEGER) . " AND ps.statusgrund_id = " . $db->db_add_param($studstatusgrund[1], FHC_INTEGER); //echo $qry . "\n"; $filtered = ( $db->db_query($qry) && ($row_filter = $db->db_fetch_object()) && ($row_filter->anzahl > 0) ) ? true : false; return $filtered; } else if ($filter2 === 'ueberfaelligebuchungen') { $qry = "SELECT sum(betrag) as summe FROM tbl_konto WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER) ." AND buchungsdatum < NOW() " ; if($kontofilterstg=='true') $qry.=" AND studiengang_kz=".$db->db_add_param($row->studiengang_kz); if($buchungstyp != null && $buchungstyp != "alle") $qry.=" AND buchungstyp_kurzbz=".$db->db_add_param($buchungstyp); 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; } 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; $studienplan_bezeichnung=$prestudent->studienplan_bezeichnung; echo ' person_id.']]> prestudent_id.']]> uid)?$row->uid:'').']]> titelpre.']]> titelpost.']]> wahlname.']]> vornamen.']]> vorname.']]> nachname.']]> geschlecht.']]> '.($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:'').']]> formatDatum($prestudent->datum,'d.m.Y').']]> bestaetigtam!=''?$datum_obj->formatDatum($prestudent->bestaetigtam,'d.m.Y'):'-').']]> formatDatum($prestudent->datum,'Y-m-d').']]> bestaetigtam!=''?$datum_obj->formatDatum($prestudent->bestaetigtam,'Y-m-d'):'-').']]> zugangscode.']]> bpk.']]> '.($row->anmerkungen==''?' ':'anmerkungen.']]>').' '.($row->anmerkung==''?' ':'anmerkung.']]>').' studiengang_kz.']]> studiengang_kz].']]> studienplan_id.']]> aufmerksamdurch_kurzbz.']]> punkte.']]> dual=='t'?'true':'false').']]> dual=='t'?'Ja':'Nein').']]> matr_nr.']]> mentor.']]> gsstudientyp_kurzbz).']]> aufnahmegruppe_kurzbz).']]> bnaktiv) && $row->bnaktiv=='t')?'true':'false').']]> '; } function draw_content($row) { global $rdf_url, $datum_obj; $db = new basis_db(); $status=''; $mail_privat = ''; $mail_unverifiziert = ''; $qry_mail = " SELECT DISTINCT ON (kontakttyp) kontakt, kontakttyp FROM public.tbl_kontakt WHERE zustellung=TRUE AND kontakttyp IN ('email', 'email_unverifiziert') AND person_id = ".$db->db_add_param($row->person_id)." ORDER BY kontakttyp, kontakt_id DESC"; if($db->db_query($qry_mail)) { if($row_mail = $db->db_fetch_object()) { if ($row_mail->kontakttyp == 'email') { $mail_privat = $row_mail->kontakt; } elseif ($row_mail->kontakttyp == 'email_unverifiziert') { $mail_unverifiziert = $row_mail->kontakt; } } } $aktiv = "-"; if(isset($row->bnaktiv)) { switch($row->bnaktiv) { case true: $aktiv = "true"; break; case false: $aktiv = "false"; break; default: $aktiv = "-"; } } $studiengang = new studiengang(); $stgleiter = $studiengang->getLeitung($row->studiengang_kz); $stgl=''; $i = 0; foreach ($stgleiter as $stgleiter_uid) { $stgl_ma = new mitarbeiter($stgleiter_uid); $stgl .= trim(($i>0?', ':'').$stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost); $i++; } // Anzahl Notizen der Person laden $notiz = new notiz(); $anzahl_notizen = $notiz->getAnzahlNotizen(null, null, null, null, null, $row->person_id, null, null, null, null, null); if($row->prestudent_id!='') { $prestudent = new prestudent(); $prestudent->getLastStatus($row->prestudent_id); $status = $prestudent->status_kurzbz; $orgform = $prestudent->orgform_kurzbz; $studienplan_bezeichnung=$prestudent->studienplan_bezeichnung; if($status=='Aufgenommener' || $status=='Bewerber' || $status=='Wartender' || $status=='Interessent') $semester_prestudent = $prestudent->ausbildungssemester; else $semester_prestudent = ''; echo ' person_id.']]> titelpre.']]> titelpost.']]> vornamen.']]> wahlname.']]> vorname.']]> nachname.']]> convertISODate($row->gebdatum).']]> gebdatum.']]> homepage.']]> gebort.']]> gebzeit.']]> '.($row->anmerkungen==''?' ':'anmerkungen.']]>').' anrede.']]> ersatzkennzeichen.']]> familienstand.']]> geschlecht.']]> anzahlkinder.']]> staatsbuergerschaft.']]> geburtsnation.']]> sprache.']]> formatDatum($prestudent->datum,'d.m.Y').']]> formatDatum($prestudent->datum,'Y-m-d').']]> bestaetigtam!=''?$datum_obj->formatDatum($prestudent->bestaetigtam,'d.m.Y'):'-').']]> bestaetigtam!=''?$datum_obj->formatDatum($prestudent->bestaetigtam,'Y-m-d'):'-').']]> studienplan_id.']]> uid)?$row->uid.'@'.DOMAIN:'').']]> zugangscode.']]> zugangscode.'&emailAdresse='.($mail_privat == '' ? $mail_unverifiziert : $mail_privat).'&keepEmailUnverified=true]]> bpk.']]> uid)?$row->uid:'').']]> matrikelnr)?$row->matrikelnr:'').']]> alias)?$row->alias:'').']]> semester)?$row->semester:$semester_prestudent).']]> verband)?$row->verband:'').']]> gruppe)?$row->gruppe:'').']]> studiengang_kz:'').']]> matr_nr.']]> '; } } function draw_prestudent($row) { global $rdf_url, $datum_obj, $stg_arr; $reihungstest = new reihungstest($row->reihungstest_id); $rt_datum = $reihungstest->datum; $prioRelativ = new prestudent(); $prioRelativ = $prioRelativ->getRelativePriorisierungFromAbsolut($row->prestudent_id, $row->priorisierung); if($row->prestudent_id!='') { $foerderrelevant = ''; if ($row->foerderrelevant === true) $foerderrelevant = 'true'; elseif ($row->foerderrelevant === false) $foerderrelevant = 'false'; echo ' prestudent_id.']]> studiengang_kz.']]> studiengang_kz.']]> aufmerksamdurch_kurzbz.']]> studiengang_kz].']]> berufstaetigkeit_code.']]> ausbildungcode.']]> zgv_code.']]> zgvort.']]> convertISODate($row->zgvdatum).']]> zgvdatum.']]> zgvnation.']]> zgv_erfuellt.']]> zgvmas_code.']]> zgvmaort.']]> convertISODate($row->zgvmadatum).']]> zgvmadatum.']]> zgvmanation.']]> zgvmas_erfuellt.']]> zgvdoktor_code.']]> zgvdoktorort.']]> convertISODate($row->zgvdoktordatum).']]> zgvdoktordatum.']]> zgvdoktornation.']]> zgvdoktor_erfuellt.']]> ausstellungsstaat.']]> aufnahmeschluessel.']]> facheinschlberuf?'true':'false').']]> reihungstest_id.']]> convertISODate($row->anmeldungreihungstest).']]> anmeldungreihungstest.']]> reihungstestangetreten?'true':'false').']]> punkte.']]> bismelden?'true':'false').']]> dual?'true':'false').']]> dual?'Ja':'Nein').']]> anmerkung.']]> mentor.']]> gsstudientyp_kurzbz.']]> aufnahmegruppe_kurzbz.']]> priorisierung.']]> priorisierung.')'.']]> standort_code.']]> '; } } function draw_empty_content() { echo ' '; } // ******* 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); $buchungstyp_filter = (isset($_GET['buchungstyp'])?$_GET['buchungstyp']: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=".$db->db_add_param($gruppe_kurzbz)." "; if($studiensemester_kurzbz!=null) $where.=" AND tbl_benutzergruppe.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz); } else { $where.=" tbl_studentlehrverband.studiengang_kz=".$db->db_add_param($studiengang_kz); if ($semester!=null) $where.=" AND tbl_studentlehrverband.semester=".$db->db_add_param($semester); if ($verband!=null) $where.=" AND tbl_studentlehrverband.verband=".$db->db_add_param($verband); if ($gruppe!=null) $where.=" AND tbl_studentlehrverband.gruppe=".$db->db_add_param($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=".$db->db_add_param($studiensemester_kurzbz); $where.=" ORDER BY datum desc, insertamum desc, ext_id desc LIMIT 1)"; } } //$where.=" AND tbl_studentlehrverband.studiensemester_kurzbz='$studiensemester_kurzbz'"; $sql_query=" SELECT p.person_id, tbl_student.prestudent_id, tbl_benutzer.uid, titelpre, titelpost,vorname, wahlname, vornamen, geschlecht, nachname, gebdatum, tbl_prestudent.anmerkung,ersatzkennzeichen, tbl_student.matrikelnr, p.anmerkung as anmerkungen, tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, tbl_student.studiengang_kz, aufmerksamdurch_kurzbz, mentor, public.tbl_benutzer.aktiv AS bnaktiv, ( 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, tbl_prestudent.dual as dual, tbl_prestudent.reihungstest_id, tbl_prestudent.anmeldungreihungstest, p.matr_nr, tbl_prestudent.gsstudientyp_kurzbz, tbl_prestudent.aufnahmegruppe_kurzbz, tbl_prestudent.priorisierung, p.zugangscode, p.bpk 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=".$db->db_add_param($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, $buchungstyp_filter)) 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=".$db->db_add_param($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>=".$db->db_add_param($stsem_obj->start)." AND tbl_bisio.von<=".$db->db_add_param($stsem_obj->ende).") OR (tbl_bisio.bis>=".$db->db_add_param($stsem_obj->start)." AND tbl_bisio.bis<=".$db->db_add_param($stsem_obj->ende).") OR (tbl_bisio.von<=".$db->db_add_param($stsem_obj->start)." AND tbl_bisio.bis>=".$db->db_add_param($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($typ=='gemeinsamestudien') { if($studiensemester_kurzbz=='') $studiensemester_kurzbz=$semester_aktuell; $qry = "SELECT prestudent_id FROM bis.tbl_mobilitaet WHERE studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz); 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', 'bewerberrtangemeldetteilgenommen', 'bewerberrtangemeldetnichtteilgenommen','absolvent', 'diplomand', 'bewerbungnichtabgeschickt', 'bewerbungabgeschickt', 'statusbestaetigt', 'statusbestaetigtrtnichtangemeldet', 'statusbestaetigtrtangemeldet', 'bewerberrtangemeldet', 'bewerberrtnichtangemeldet'))) { $prestd = new prestudent(); if($studiengang_kz!=null) { if($prestd->loadInteressentenUndBewerber($studiensemester_kurzbz, $studiengang_kz, $semester, $typ, $orgform)) { foreach ($prestd->result as $row) { if(checkfilter($row, $filter2, $buchungstyp_filter)) { $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 { // Sonderzeichen entfernen und String aufsplitten // Replace commas with whitespace $filter = str_replace(',', ' ', $filter); // Replace multiple whitespaces with just one $filter = preg_replace('/\s/', ' ', $filter); // Trim whitespaces and special characters from the string $filter = trim($filter,' !.?'); // Explode string $searchItems = explode(' ',$filter); $kriterienliste = array("#email","#name","#pid","#preid","#tel", "#ref"); $suchkriterium = ''; // Wenn der erste Array-Eintrag einem kriterium der $kriterienliste entspricht -> in $suchkriterium speichern und aus Array entfernen if (isset($searchItems[0]) && in_array($searchItems[0], $kriterienliste)) { $suchkriterium = $searchItems[0]; array_shift($searchItems); } // Wenn nach dem TRIM Zeichen uebrig bleiben, dann fortfahren if(implode(',', $searchItems) != '') { if($suchkriterium == '#ref') { foreach($searchItems as $ref) { $konto = new konto(); $konto->loadFromZahlungsreferenz($ref); $prestudent=new prestudent(); $prestudent->getPrestudenten($konto->person_id); if(!empty($prestudent->result)) { $prestudent_temp = new prestudent($prestudent->result[0]->prestudent_id); $student = new student(); $uid = $student->getUid($prestudent_temp->prestudent_id); if($uid!='' && $uid != false) { if(!$student->load($uid, $studiensemester_kurzbz)) $student->load($uid); draw_content($student); draw_prestudent($prestudent_temp); } else { draw_content($prestudent_temp); draw_prestudent($prestudent_temp); } } } } if($suchkriterium == '#tel' || $suchkriterium == '#email') { $searchItems_string_orig = implode(' ', $searchItems); $kontakt = new kontakt(); if ($suchkriterium == '#tel') $kontakt->searchKontakt($searchItems_string_orig, 'nummer'); elseif ($suchkriterium == '#email') $kontakt->searchKontakt($searchItems_string_orig, 'email'); else $kontakt->searchKontakt($searchItems_string_orig); foreach ($kontakt->result AS $row) { $prestudent=new prestudent(); $prestudent->getPrestudenten($row->person_id); if(!empty($prestudent->result)) { foreach ($prestudent->result AS $prest) { $prestudent_temp = new prestudent($prest->prestudent_id); $student = new student(); $uid = $student->getUid($prestudent_temp->prestudent_id); if($uid!='' && $uid != false) { if(!$student->load($uid, $studiensemester_kurzbz)) $student->load($uid); draw_content($student); draw_prestudent($prestudent_temp); } else { draw_content($prestudent_temp); draw_prestudent($prestudent_temp); } } } } } elseif($suchkriterium == '#name') { // String imploden und trimmen, um preg_split(Zeichenweise trennung) durchfuehren zu koennen $searchItems_string_orig = implode(' ', $searchItems); $searchItems_string_orig = mb_strtolower(TRIM($searchItems_string_orig)); $qry = "SELECT prestudent_id FROM public.tbl_person JOIN public.tbl_prestudent USING (person_id) LEFT JOIN public.tbl_student USING (prestudent_id) WHERE UPPER(nachname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR UPPER(vorname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR UPPER(wahlname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR UPPER(vorname || ' ' || nachname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR UPPER(nachname || ' ' || vorname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR UPPER(wahlname || ' ' || nachname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR UPPER(nachname || ' ' || wahlname) = UPPER(".$db->db_add_param($searchItems_string_orig).");"; 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); } } } } else { // String imploden und trimmen, um preg_split(Zeichenweise trennung) durchfuehren zu koennen $searchItems_string_orig = implode(' ', $searchItems); $searchItems_string = generateSpecialCharacterString($searchItems_string_orig); $qry = "SELECT prestudent_id FROM public.tbl_person JOIN public.tbl_prestudent USING (person_id) LEFT JOIN public.tbl_student USING (prestudent_id) WHERE 1=1 AND"; // Wenn der urspruengliche Suchbegriff NICHT numerisch ist, Namenssuche durchführen if (!is_numeric($searchItems_string_orig)) { $qry .= " UPPER(vorname || ' ' || nachname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR UPPER(nachname || ' ' || vorname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR UPPER(nachname || ' ' || wahlname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR UPPER(wahlname || ' ' || nachname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR UPPER(vorname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR UPPER(nachname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR student_uid ~* LOWER(".$db->db_add_param($searchItems_string).")"; } else { if ($suchkriterium == '#pid') $qry .= " person_id = ".$db->db_add_param($searchItems_string_orig).";"; elseif ($suchkriterium == '#preid') $qry .= " prestudent_id = ".$db->db_add_param($searchItems_string_orig).";"; else $qry .= " matrikelnr = ".$db->db_add_param($searchItems_string_orig)." OR matr_nr = ".$db->db_add_param($searchItems_string_orig).";"; } if($result = $db->db_query($qry)) { if ($db->db_num_rows($result) == 0) { draw_empty_content(); } else { 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 = explode(';',$uid); echo ''; foreach ($uids as $uid) { if($uid!='') { $student = new student(); $student->load($uid); $studiengang = new studiengang(); $studiengang->load($student->studiengang_kz); $stgleiter = $studiengang->getLeitung($student->studiengang_kz); $stgl=''; $i = 0; foreach ($stgleiter as $stgleiter_uid) { $stgl_ma = new mitarbeiter($stgleiter_uid); $stgl .= trim(($i>0?', ':'').$stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost); $i++; } // $stg_typ = new studiengang(); // $stg_typ->getStudiengangTyp($studiengang->typ); // $typ=$stg_typ->bezeichnung; 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 PUBLIC.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING (uid) WHERE funktion_kurzbz = 'rek' AND ( tbl_benutzerfunktion.datum_von <= now() OR tbl_benutzerfunktion.datum_von IS NULL ) AND ( tbl_benutzerfunktion.datum_bis >= now() OR tbl_benutzerfunktion.datum_bis IS NULL ) ORDER BY tbl_benutzerfunktion.insertamum DESC LIMIT 1"; $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; $studienplan_id = $row->studienplan_id; } } if(isset($studienplan_id) && $studienplan_id!='') { $stpl = new studienplan(); $stpl->loadStudienplan($studienplan_id); $sto = new studienordnung(); $sto->loadStudienordnung($stpl->studienordnung_id); $sto_studiengang_bezeichnung = $sto->studiengangbezeichnung; $sto_studiengang_bezeichnung_englisch = $sto->studiengangbezeichnung_englisch; } else { $sto_studiengang_bezeichnung=''; $sto_studiengang_bezeichnung_englisch=''; } //für ao. Studierende wird der Studiengang der Lehrveranstaltungen benötigt, die sie besuchen $lv_studiengang_kz=''; $lv_studiengang_bezeichnung=''; $lv_studiengang_typ=''; $lv_studiengang_art=''; $lv=new lehrveranstaltung(); $lv->load_lva_student($student->uid); if(count($lv->lehrveranstaltungen)>0) { $lv_studiengang_kz=$lv->lehrveranstaltungen[0]->studiengang_kz; //Wenn die LV an der ersten Stelle ein Freifach (Stg 0) ist, nimm die naechste sofern eine vorhanden if($lv_studiengang_kz==0) { for ($i = 0; $i < count($lv->lehrveranstaltungen); $i++) { $lv_studiengang_kz=$lv->lehrveranstaltungen[$i]->studiengang_kz; if ($lv_studiengang_kz!=0) break; } } $lv_studiengang=new studiengang(); $lv_studiengang->load($lv_studiengang_kz); $lv_studiengang_bezeichnung=$lv_studiengang->bezeichnung; $lv_studiengang_typ=$lv_studiengang->typ; switch($lv_studiengang->typ) { case 'd': $lv_studiengang_art = 'Diplom'; break; case 'm': $lv_studiengang_art = 'Master'; break; case 'b': $lv_studiengang_art = 'Bachelor'; break; } } $prestudent = new prestudent($student->prestudent_id); $prestudent->getLastStatus($student->prestudent_id); $orgform_bezeichnung = new organisationsform(); $orgform_bezeichnung->load($studiengang->orgform_kurzbz); $orgform_student_bezeichnung = new organisationsform(); $orgform_student_bezeichnung->load($prestudent->orgform_kurzbz); //Wenn Lehrgang, dann Erhalter-KZ vor die LV-Studiengangs-Kz hängen if ($lv_studiengang_kz<0) { $stg = new studiengang(); $stg->load($lv_studiengang_kz); $lv_studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($lv_studiengang_kz)); } else $lv_studiengang_kz = sprintf("%04s", abs($lv_studiengang_kz)); //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen if ($student->studiengang_kz<0) { $stg = new studiengang(); $stg->load($student->studiengang_kz); $stg_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($student->studiengang_kz)); } else $stg_kz = sprintf("%04s", abs($student->studiengang_kz)); if (($semester % 2) == 0) $studienjahr = $semester/2; else $studienjahr = intval($semester/2)+1; $abbrecher = ($prestudent->status_kurzbz === 'Abbrecher' ? 'true' : 'false'); $abbrecher_ende = ''; $studiensemester_abbrecher_kurzbz=''; $qry = "SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id='$student->prestudent_id' AND status_kurzbz = 'Abbrecher' ORDER BY datum LIMIT 1"; if($db->db_query($qry)) { if($row = $db->db_fetch_object()) { $abbrecher_ende = $row->datum; $studiensemester_abbrecher_kurzbz = $row->studiensemester_kurzbz; } } echo ' uid.']]> person_id.']]> titelpre.']]> titelpost.']]> vornamen.']]> wahlname.']]> vorname.']]> nachname.']]> matrikelnr.']]> matr_nr.']]> convertISODate($student->gebdatum).']]> gebdatum.']]> gebort.']]> verband.']]> gruppe.']]> orgform_kurzbz.']]> bezeichnung.']]> bezeichnung.']]> english.']]> typ.']]> orgform_kurzbz.']]> bezeichnung.']]> anrede.']]> geschlecht.']]> ersatzkennzeichen.']]> familienstand.']]> convertISODate($studienbeginn).']]> studiensemester_kurzbz.']]> studienjahr_kurzbz.']]> bezeichnung.']]> convertISODate($stsem->start).']]> convertISODate($abbrecher_ende).']]> max_semester.']]> anmerkung.']]> aktiv.']]> '; } } echo ''; } ?>