, * Andreas Oesterreicher and * Rudolf Hangl and * Gerald Raab . */ //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"); require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../include/zeugnisnote.class.php'); require_once('../include/datum.class.php'); require_once('../include/note.class.php'); require_once('../include/studiengang.class.php'); require_once('../include/mitarbeiter.class.php'); require_once('../include/anrechnung.class.php'); require_once('../include/prestudent.class.php'); require_once('../include/nation.class.php'); $datum = new datum(); $db = new basis_db(); $projektarbeit=array(); $fussnotenzeichen=array('¹)','²)','³)'); $anzahl_fussnoten=0; $studiengang_typ=''; $xml_fussnote=''; function breaktext($text, $zeichen) { $arr = explode(' ',$text); $ret = ''; $teilstring=''; foreach($arr as $elem) { if(strlen($teilstring.$elem)>$zeichen) { $ret.=' '.$teilstring.'\n'; $teilstring=$elem; } else $teilstring .=' '.$elem; } $ret.=$teilstring; return $ret; } if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") { if(isset($_GET['uid'])) $uid = $_GET['uid']; else $uid = null; $uid_arr = explode(";",$uid); if ($uid_arr[0] == "") { unset($uid_arr[0]); $uid_arr = array_values($uid_arr); } $note_arr = array(); $note = new note(); $note->getAll($offiziell = true); foreach ($note->result as $n) $note_arr[$n->note] = $n->anmerkung; if(isset($_GET['ss'])) $studiensemester_kurzbz = $_GET['ss']; else die('Studiensemester wurde nicht uebergeben'); //Daten holen $xml = ""; $xml .= ""; for ($i = 0; $i < sizeof($uid_arr); $i++) { $anzahl_fussnoten=0; $studiengang_typ=''; $xml_fussnote=''; $projektarbeit=array(); $query = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.projektarbeit_note_anzeige, tbl_studiengang.bezeichnung, tbl_studiengang.english, tbl_studentlehrverband.semester, tbl_person.vorname, tbl_person.vornamen, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, tbl_person.titelpost, tbl_person.anrede, tbl_studiensemester.bezeichnung as sembezeichnung, tbl_studiensemester.studiensemester_kurzbz as stsem, tbl_student.prestudent_id, tbl_studiengang.max_semester, tbl_person.gebort, tbl_person.geburtsnation, tbl_person.geschlecht FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer, tbl_studentlehrverband, tbl_studiensemester WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz AND tbl_student.student_uid = tbl_benutzer.uid AND tbl_benutzer.person_id = tbl_person.person_id AND tbl_student.student_uid = ".$db->db_add_param($uid_arr[$i])." AND tbl_studentlehrverband.student_uid=tbl_student.student_uid AND tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz AND tbl_studentlehrverband.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz); if($result = $db->db_query($query)) { $xml .= "\n "; if($row = $db->db_fetch_object($result)) { $studiengang = new studiengang(); $stgleiter = $studiengang->getLeitung($row->studiengang_kz); $stgl=''; foreach ($stgleiter as $stgleiter_uid) { $stgl_ma = new mitarbeiter($stgleiter_uid); $stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost); } //Wenn das Semester 0 ist, dann wird das Semester aus der Rolle geholt. (Ausnahme: Incoming) //damit bei Outgoing Studenten die im 0. Semester angelegt sind das richtige Semester aufscheint $qry ="SELECT ausbildungssemester as semester, tbl_studienordnung.studiengangbezeichnung, tbl_studienordnung.studiengangbezeichnung_englisch FROM public.tbl_prestudentstatus LEFT JOIN lehre.tbl_studienplan USING (studienplan_id) LEFT JOIN lehre.tbl_studienordnung USING (studienordnung_id) WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND tbl_prestudentstatus.status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent', 'Abgewiesener') ORDER BY DATUM DESC LIMIT 1"; if($result_sem = $db->db_query($qry)) { if($row_sem = $db->db_fetch_object($result_sem)) { $row->semester = $row_sem->semester; $row->studiengangbezeichnung = $row_sem->studiengangbezeichnung; $row->studiengangbezeichnung_englisch = $row_sem->studiengangbezeichnung_englisch; $bezeichnung = $row_sem->semester.'. Semester'; } else $bezeichnung = ''; } else $bezeichnung = ''; $studiengangbezeichnung = empty($row->studiengangbezeichnung) ? $row->bezeichnung : $row->studiengangbezeichnung; $studiengangbezeichnung_englisch = empty($row->studiengangbezeichnung_englisch) ? $row->english : $row->studiengangbezeichnung_englisch; $xml .= " sembezeichnung."]]>"; $xml .= " stsem."]]>"; $xml .= " semester."]]>"; $xml .= " "; $xml .= " "; $xml .= " "; if($row->typ=='b') $bezeichnung='Bachelor'; elseif($row->typ=='m') $bezeichnung='Master'; elseif($row->typ=='d') $bezeichnung='Diplom'; else $bezeichnung=''; $studiengang_typ=$row->typ; $semester = $row->semester; //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen if ($row->studiengang_kz<0) { $stg = new studiengang(); $stg->load($row->studiengang_kz); $studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($row->studiengang_kz)); } else $studiengang_kz = sprintf("%04s", abs($row->studiengang_kz)); $nation = new nation($row->geburtsnation); $geburtsnation = $nation->kurztext; $xml .= " "; $xml .= " "; $xml .= "\n anrede."]]>"; $xml .= "\n vorname."]]>"; $xml .= " nachname."]]>"; $xml .= " titelpre.' '.trim($row->vorname.' '.$row->vornamen).' '.$row->nachname.($row->titelpost!=''?', '.$row->titelpost:''))."]]>"; $gebdatum = date('d.m.Y',strtotime($row->gebdatum)); $xml .= " "; $xml .= " gebort."]]>"; $xml .= " "; $xml .= " geschlecht."]]>"; $xml .= " matrikelnr)."]]>"; $xml .= " "; $datum_aktuell = date('d.m.Y'); $xml .= " "; $xml .= " ".($row->projektarbeit_note_anzeige=='t'?'true':'false').""; $qry_proj = " SELECT lehre.tbl_projektarbeit.lehrveranstaltung_id, titel, themenbereich, note, titel_english, tbl_projekttyp.bezeichnung, projekttyp_kurzbz FROM lehre.tbl_projektarbeit JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) WHERE student_uid=".$db->db_add_param($uid_arr[$i])." AND lehre.tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND projekttyp_kurzbz in('Bachelor', 'Diplom') ORDER BY beginn ASC, projektarbeit_id ASC"; if($result_proj = $db->db_query($qry_proj)) { while($row_proj = $db->db_fetch_object($result_proj)) { $projektarbeit[$row_proj->lehrveranstaltung_id]['titel']=$row_proj->titel; $projektarbeit[$row_proj->lehrveranstaltung_id]['titel_en']=$row_proj->titel_english; $projektarbeit[$row_proj->lehrveranstaltung_id]['themenbereich']=$row_proj->themenbereich; $projektarbeit[$row_proj->lehrveranstaltung_id]['note']=$row_proj->note; $projektarbeit[$row_proj->lehrveranstaltung_id]['projekttyp_bezeichnung']=$row_proj->bezeichnung; $projektarbeit[$row_proj->lehrveranstaltung_id]['projekttyp_kurzbz']=$row_proj->projekttyp_kurzbz; } } // Wenn es das letzte Semesterzeugnis ist, wird zusaetzlich die Abschlusspruefung geliefert if($row->semester==$row->max_semester) { $qry_abschlusspruefung = "SELECT tbl_abschlusspruefung.datum, tbl_abschlusspruefung.pruefungstyp_kurzbz, tbl_abschlussbeurteilung.bezeichnung, tbl_abschlussbeurteilung.bezeichnung_english FROM lehre.tbl_abschlusspruefung LEFT JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz) WHERE tbl_abschlusspruefung.student_uid=".$db->db_add_param($uid_arr[$i])." ORDER BY datum DESC LIMIT 1"; if($result_abschlusspruefung = $db->db_query($qry_abschlusspruefung)) { if($row_abschlusspruefung = $db->db_fetch_object($result_abschlusspruefung)) { $xml .= " pruefungstyp_kurzbz."]]>"; $xml .= " formatDatum($row_abschlusspruefung->datum,'d.m.Y')."]]>"; $xml .= " bezeichnung."]]>"; $xml .= " bezeichnung_english."]]>"; } } } $obj = new zeugnisnote(); $obj->getZeugnisnoten($lehrveranstaltung_id=null, $uid_arr[$i], $studiensemester_kurzbz, (defined('ZEUGNISNOTE_NICHT_ANZEIGEN')) ? unserialize(ZEUGNISNOTE_NICHT_ANZEIGEN) : null); $ects_gesamt = $ects_gesamt_positiv = 0; $prestudent_id = $row->prestudent_id; $prestudent = new prestudent(); $showAllNoten = false; $lastPrestudentStatus = $prestudent->getLastStatus($prestudent_id, $studiensemester_kurzbz); //wenn Incoming, sollen am Zeugnis alle Noten gedruckt werden if ($lastPrestudentStatus) $showAllNoten = $prestudent->status_kurzbz === 'Incoming'; $lastBenotungsdatum = ''; $dates = array_column($obj->result, 'benotungsdatum'); if (!empty($dates)) { $lastBenotungsdatum = max($dates); $xml .= ""; } foreach ($obj->result as $row) { if($showAllNoten || $row->zeugnis) { if (trim($row->note)!=='' && isset($note_arr[$row->note])) $note = $note_arr[$row->note]; else $note = ""; $note2=$note; //Firma fuer Berufspraktikum $qry = "SELECT tbl_firma.name FROM lehre.tbl_projektarbeit JOIN lehre.tbl_lehrveranstaltung ON(lehre.tbl_projektarbeit.lehrveranstaltung_id = lehre.tbl_lehrveranstaltung.lehrveranstaltung_id) JOIN public.tbl_firma ON(lehre.tbl_projektarbeit.firma_id = public.tbl_firma.firma_id) WHERE tbl_projektarbeit.student_uid=".$db->db_add_param($uid_arr[$i])." AND tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id); $firma = ''; $firma_eng = ''; if($result_firma = $db->db_query($qry)) { if($row_firma = $db->db_fetch_object($result_firma)) { if($row_firma->name!='') { $firma = " bei Firma: $row_firma->name"; $firma_eng = " at: $row_firma->name"; } } } //Bakk/Dipl Fussnoten if(array_key_exists($row->lehrveranstaltung_id, $projektarbeit)) { $bezeichnung = $row->lehrveranstaltung_bezeichnung.$firma.' '.$fussnotenzeichen[$anzahl_fussnoten]; $bezeichnung_englisch = $row->lehrveranstaltung_bezeichnung_english.$firma_eng.' '.$fussnotenzeichen[$anzahl_fussnoten]; $xml_fussnote .="\n "; $xml_fussnote .=" ".$fussnotenzeichen[$anzahl_fussnoten].""; //$projektarbeit[$row->lehrveranstaltung_id]['titel'] = breaktext($projektarbeit[$row->lehrveranstaltung_id]['titel'], 40); $anzahl_nl = substr_count($projektarbeit[$row->lehrveranstaltung_id]['titel'],'\n'); $nl2=''; if($projektarbeit[$row->lehrveranstaltung_id]['themenbereich']!='') { //$xml_fussnote .=" Themenbereich: "; $xml_fussnote .=" lehrveranstaltung_id]['themenbereich'].']]>'; $anzahl_nl++; $nl2='\n'; } /*if($studiengang_typ=='b') $typ = 'Bachelorarbeit:'; else $typ = 'Master Thesis:';*/ $nl=''; $nl2=''; $xml_fussnote .=" lehrveranstaltung_id]['projekttyp_bezeichnung']."]]>"; $xml_fussnote .=" lehrveranstaltung_id]['projekttyp_kurzbz']."]]>"; $xml_fussnote .=" lehrveranstaltung_id]['titel'].$nl2."]]>"; $xml_fussnote .=" lehrveranstaltung_id]['titel_en'].$nl2."]]>"; //$note = $note_arr[$projektarbeit[$row->lehrveranstaltung_id]['note']]; $note = $projektarbeit[$row->lehrveranstaltung_id]['note']; //$nl = str_repeat('\n',($anzahl_nl)); $xml_fussnote .=' '.(isset($note_arr[$note])?$note_arr[$note]:"").$nl.''; $xml_fussnote .=' '.$nl.''; $xml_fussnote .=' '.$nl.''; $xml_fussnote .=' '.$nl.''; $xml_fussnote .=' '.$nl.''; $xml_fussnote .=" "; $anzahl_fussnoten++; } else { $bezeichnung = $row->lehrveranstaltung_bezeichnung.$firma; $bezeichnung_englisch = $row->lehrveranstaltung_bezeichnung_english.$firma_eng; } $bisio_von = ''; $bisio_bis = ''; $bisio_ort = ''; $bisio_universitaet = ''; $auslandssemester=false; $qry = "SELECT tbl_bisio.* FROM bis.tbl_bisio JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) WHERE tbl_lehreinheit.lehrveranstaltung_id='$row->lehrveranstaltung_id' AND student_uid=".$db->db_add_param($uid_arr[$i]); if($result_bisio = $db->db_query($qry)) { if($row_bisio = $db->db_fetch_object($result_bisio)) { $bisio_von = $row_bisio->von; $bisio_bis = $row_bisio->bis; $bisio_ort = $row_bisio->ort; $bisio_universitaet = $row_bisio->universitaet; $auslandssemester=true; $note2 = 'ar'; } } $qry = "SELECT wochen FROM public.tbl_semesterwochen WHERE (studiengang_kz, semester) in (SELECT studiengang_kz, semester FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id).")"; $wochen = 15; if($result_wochen = $db->db_query($qry)) { if($row_wochen = $db->db_fetch_object($result_wochen)) { $wochen = $row_wochen->wochen; } } $xml .= "\n "; $xml .= " benotungsdatum))."]]>"; $xml .= " "; $xml .= " "; $xml .= " note_positiv."]]>"; $xml .= " "; $xml .= " semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1))."]]>"; $xml .= " sws==0?'':number_format(sprintf('%.1F',$row->sws),1))."]]>"; $xml .= " lehrveranstaltung_id."]]>"; $ectspunkte=''; $anrechnung = new anrechnung(); $anrechnung->getAnrechnungPrestudent($prestudent_id, null, $row->lehrveranstaltung_id); if($anrechnung->result != null) { $lv = new lehrveranstaltung($anrechnung->result[0]->lehrveranstaltung_id); if(($lv->ects !== $row->ects) && ($lv->ects != "") && ($lv->ects != null)) { $row->ects = $lv->ects; } } if($row->ects==0 || $row->ects=='') $ectspunkte=''; else { //Bei 2 Nachkommastellen beide anzeigen, sonst nur 1 if(number_format($row->ects,1)==number_format($row->ects,2)) $ectspunkte=number_format($row->ects,1); else $ectspunkte=number_format($row->ects,2); } $ects_gesamt+=$ectspunkte; if ($row->note_positiv === true) $ects_gesamt_positiv += $ectspunkte; $xml .= " "; $xml .= " lv_lehrform_kurzbz."]]>"; if($auslandssemester) { $xml .= " mktime_fromdate($bisio_von))."]]>"; $xml .= " mktime_fromdate($bisio_bis))."]]>"; $xml .= " "; $xml .= " "; } $xml .= " "; } } $xml .= ""; $xml .= ""; $xml .= $xml_fussnote; } else { $xml .="PERSON NICHT GEFUNDEN / KEIN STATUS"; } $xml .= " "; } } $xml .= ""; echo $xml; } ?>