, * Andreas Oesterreicher and * Rudolf Hangl and * Gerald Raab . */ 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/studiensemester.class.php'); require_once('../include/studiengang.class.php'); require_once('../include/mitarbeiter.class.php'); require_once('../include/prestudent.class.php'); require_once('../include/student.class.php'); require_once('../include/studienordnung.class.php'); require_once('../include/studienplan.class.php'); $datum = new datum(); $db = new basis_db(); function draw_studienerfolg($uid, $studiensemester_kurzbz) { global $xml, $note_arr, $datum, $note_wert; $db = new basis_db(); $query = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.bezeichnung, tbl_studentlehrverband.semester, tbl_person.titelpre, tbl_person.titelpost, tbl_person.vorname, tbl_person.nachname,tbl_person.gebdatum, tbl_studiensemester.bezeichnung as sembezeichnung, tbl_studiengang.english as bezeichnung_englisch, tbl_studiengang.typ, tbl_studiengang.orgform_kurzbz, tbl_studiengangstyp.bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache='German')] as studiengangstypbezeichnung, tbl_studiengangstyp.bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache='English')] as studiengangstypbezeichnung_englisch, tbl_person.matr_nr FROM public.tbl_person, public.tbl_student, public.tbl_studiengang, public.tbl_studiengangstyp, public.tbl_benutzer, public.tbl_studentlehrverband, public.tbl_studiensemester WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz and tbl_studiengang.typ = tbl_studiengangstyp.typ 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)." 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($db->db_query($query)) { if(!$row = $db->db_fetch_object()) return false; } else return false; $studiensemester = new studiensemester(); $studiensemester_aktuell = $studiensemester->getNearest(); $student = new student(); $student->load($uid); $prestudentstatus = new prestudent(); $prestudentstatus->getLastStatus($student->prestudent_id,'','Student'); $prestudent = new prestudent(); $prestudent->getLastStatus($student->prestudent_id); $last_status = $prestudent->status_kurzbz; if($studiensemester_aktuell!=$prestudentstatus->studiensemester_kurzbz) $studiensemester_aktuell = $prestudentstatus->studiensemester_kurzbz; $studiensemester->load($studiensemester_aktuell); $semester_aktuell=''; $qry_semester = "SELECT tbl_prestudentstatus.ausbildungssemester as semester FROM public.tbl_student, public.tbl_prestudentstatus WHERE tbl_student.prestudent_id=tbl_prestudentstatus.prestudent_id AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming','Outgoing','Praktikant','Diplomand') AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_aktuell)." AND tbl_student.student_uid = ".$db->db_add_param($uid); if($db->db_query($qry_semester)) if($row_semester = $db->db_fetch_object()) $semester_aktuell=$row_semester->semester; if($semester_aktuell=='') $studiensemester_aktuell=''; $qry_semester = "SELECT tbl_prestudentstatus.ausbildungssemester as semester, tbl_prestudentstatus.orgform_kurzbz, tbl_prestudentstatus.studienplan_id FROM public.tbl_student, public.tbl_prestudentstatus WHERE tbl_student.prestudent_id=tbl_prestudentstatus.prestudent_id AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming','Outgoing','Praktikant','Diplomand') AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND tbl_student.student_uid = ".$db->db_add_param($uid); $orgform=''; $studiengang_bezeichnung_sto=''; $studiengang_bezeichnung_sto_englisch=''; if($db->db_query($qry_semester)) { if($row_semester = $db->db_fetch_object()) { $row->semester=$row_semester->semester; $orgform = $row_semester->orgform_kurzbz; $stpl = new studienplan(); $stpl->loadStudienplan($row_semester->studienplan_id); $sto = new studienordnung(); $sto->loadStudienordnung($stpl->studienordnung_id); $studiengang_bezeichnung_sto = $sto->studiengangbezeichnung; $studiengang_bezeichnung_sto_englisch = $sto->studiengangbezeichnung_englisch; } } // Wenn der Studierende keine Orgform eingetragen hat, wird die Orgform des Studiengangs genommen if($orgform=='') $orgform = $row->orgform_kurzbz; $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 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)); $stdsem = new studiensemester($studiensemester_kurzbz); $xml .= " "; $xml .= " ".DOC_ROOT."skin/images/"; $xml .= " ".$row->sembezeichnung.""; $xml .= " ".$last_status.""; $xml .= " ".$studiensemester_aktuell.""; $xml .= " ".(($studiensemester->beschreibung != NULL) ? $studiensemester->beschreibung : $studiensemester_aktuell).""; $xml .= " ".$row->semester.""; $xml .= " ".$semester_aktuell.($semester_aktuell!=''?'. Semester':'').""; $xml .= " ".$semester_aktuell.""; $xml .= " bezeichnung."]]>"; $xml .= " bezeichnung_englisch."]]>"; $xml .= " "; $xml .= " "; $xml .= " ".$row->studiengangstypbezeichnung.""; $xml .= " ".$row->studiengangstypbezeichnung_englisch.""; $xml .= " ".$studiengang_kz.""; $xml .= " titelpre."]]>"; $xml .= " titelpost."]]>"; $xml .= " vorname."]]>"; $xml .= " nachname."]]>"; $gebdatum = date('d.m.Y',strtotime($row->gebdatum)); $xml .= " ".$gebdatum.""; $xml .= " ".$row->matrikelnr.""; $xml .= " ".$row->matr_nr.""; $xml .= " ".(($stdsem->beschreibung != NULL) ? $stdsem->beschreibung : $studiensemester_kurzbz).""; $datum_aktuell = date('d.m.Y'); $xml .= " ".$datum_aktuell.""; $xml .= " ".$orgform.""; $xml .= " ".$stgl.""; if(isset($_REQUEST['typ']) && $_REQUEST['typ']=='finanzamt') $xml .= " (gemäß §2 Abs. 1 lit.b des Familienlastenausgleichsgesetzes 1967 zur Vorlage beim Wohnsitzfinanzamt)"; else $xml .= " "; $obj = new zeugnisnote(); if(!$obj->getZeugnisnoten($lehrveranstaltung_id=null, $uid, $studiensemester_kurzbz)) die('Fehler beim Laden der Noten:'.$obj->errormsg); $gesamtstunden=0; $gesamtstunden_positiv=0; $gesamtstunden_lv=0; $gesamtstunden_lv_positiv=0; $gesamtects=0; $gesamtects_positiv=0; $notensumme=0; $notensumme_positiv=0; $anzahl=0; $anzahl_positiv=0; foreach ($obj->result as $row) { if($row->zeugnis) { if (trim($row->note)!=='' && isset($note_arr[$row->note])) $note = $note_arr[$row->note]; else $note = ""; if($note!='') { $qry = "SELECT wochen FROM public.tbl_semesterwochen JOIN lehre.tbl_lehrveranstaltung USING(studiengang_kz, semester) WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id); $wochen = 15; if($db->db_query($qry)) if($row_wochen = $db->db_fetch_object()) $wochen = $row_wochen->wochen; $xml .= " "; $xml .= " lehrveranstaltung_bezeichnung."]]>"; $xml .= " lehrveranstaltung_bezeichnung_english."]]>"; $xml .= " ".$note.""; $xml .= " ".$row->note.""; $xml .= " ".$row->note_positiv.""; $sws = sprintf('%.1F',$row->semesterstunden/$wochen); $xml .= " ".number_format($sws,2).""; $sws_lv = sprintf('%.1F',$row->sws); $xml .= " ".number_format($sws_lv,2).""; $xml .= " ".number_format($row->ects,2).""; $xml .= " lv_lehrform_kurzbz."]]>"; if($row->benotungsdatum!='') $xml .= " ".date('d.m.Y',$datum->mktime_fromtimestamp($row->benotungsdatum)).""; $xml .= " "; $gesamtstunden +=$sws; $gesamtstunden_lv +=$sws_lv; $gesamtects += $row->ects; if ($row->note_positiv === true) { $gesamtstunden_positiv += $sws; $gesamtstunden_lv_positiv += $sws_lv; $gesamtects_positiv += $row->ects; } if($note_wert[$row->note]!='') { $notensumme += $note_wert[$row->note]; $anzahl++; if ($row->note_positiv) { $notensumme_positiv += $note_wert[$row->note]; $anzahl_positiv++; } } } } } if($anzahl!=0) { $schnitt = ($notensumme/$anzahl); } else $schnitt = 0; if($anzahl_positiv!=0) { $schnitt_positiv = ($notensumme_positiv/$anzahl_positiv); } else $schnitt_positiv = 0; $xml .= " ".$gesamtstunden.""; $xml .= " ".$gesamtstunden_positiv.""; $xml .= " ".number_format($gesamtstunden_lv,2).""; $xml .= " ".number_format($gesamtstunden_lv_positiv,2).""; $xml .= " ".number_format($gesamtects,2).""; $xml .= " ".number_format($gesamtects_positiv,2).""; $xml .= " ".sprintf('%.2f',$schnitt).""; $xml .= " ".sprintf('%.2f',$schnitt_positiv).""; $xml .= " "; } 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_wert = array(); $note = new note(); $note->getAll($offiziell = true); foreach ($note->result as $n) { $note_arr[$n->note] = $n->anmerkung; $note_wert[$n->note] = $n->notenwert; } if(isset($_GET['ss'])) $studiensemester_kurzbz = $_GET['ss']; else die('Studiensemester nicht uebergeben'); //Daten holen $xml = "\n"; $xml .= ""; if(isset($_GET['all'])) { for ($i = 0; $i < sizeof($uid_arr); $i++) { //Studienbestaetigung fuer alle Semester dieses Studenten $qry = "SELECT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz in( SELECT studiensemester_kurzbz FROM public.tbl_prestudentstatus JOIN public.tbl_student USING(prestudent_id) WHERE student_uid='".addslashes($uid_arr[$i])."') ORDER BY start"; if($db->db_query($qry)) while($row = $db->db_fetch_object()) draw_studienerfolg($uid_arr[$i], $row->studiensemester_kurzbz); } } else { //Studienbestaetigung fuer ein bestimmtes Semester for ($i = 0; $i < sizeof($uid_arr); $i++) { draw_studienerfolg($uid_arr[$i], $studiensemester_kurzbz); } } $xml .= ""; echo $xml; } ?>