, * Andreas Oesterreicher and * Rudolf Hangl . */ /* Erstellt einen Lehrauftrag im PDF Format * * Erstellt ein XML File fuer den Lehrauftrag */ require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../include/benutzerberechtigung.class.php'); require_once('../include/studiengang.class.php'); require_once('../include/lehreinheit.class.php'); require_once('../include/fachbereich.class.php'); require_once('../include/mitarbeiter.class.php'); // header für 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"); //Parameter holen if(isset($_GET['uid'])) $uid = $_GET['uid']; else $uid=null; if(isset($_GET['stg_kz'])) $studiengang_kz = $_GET['stg_kz']; else die('Fehlerhafte Parameteruebergabe'); if(isset($_GET['ss'])) $ss = $_GET['ss']; else die('Fehlerhafte Parameteruebergabe'); $ANZAHL_ZEILEN_PRO_SEITE=25; //String der laenger als limit ist wird //abgeschnitten und '...' angehaengt function CutString($strVal, $limit) { if(mb_strlen($strVal) > $limit+3) return mb_substr($strVal, 0, $limit) . "..."; else return $strVal; } // GENERATE XML $xml = ''; $stg_arr = array(); $studiengang = new studiengang(); $studiengang->getAll(); foreach ($studiengang->result as $row) $stg_arr[$row->studiengang_kz] = $row->kuerzel; //Studiengang laden $studiengang = new studiengang($studiengang_kz); //Fachbereiche laden $fb_arr = array(); $fachbereich_obj = new fachbereich(); $fachbereich_obj->getAll(); foreach ($fachbereich_obj->result as $fb) $fb_arr[$fb->fachbereich_kurzbz] = $fb->bezeichnung; //Studiengangsleiter holen $stgl=''; $db = new basis_db(); if($studiengang_kz!='') { $studiengang_obj = new studiengang(); $stgleiter = $studiengang_obj->getLeitung($studiengang_kz); foreach ($stgleiter as $stgleiter_uid) { $row = new mitarbeiter($stgleiter_uid); $stgl .= trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost); } } if($uid==null) { $qry = " SELECT distinct mitarbeiter_uid FROM ( SELECT tbl_lehreinheitmitarbeiter.mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung WHERE tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang_kz)."' AND tbl_lehreinheit.studiensemester_kurzbz='".addslashes($ss)."' UNION SELECT tbl_benutzer.uid as mitarbeiter_uid FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student, public.tbl_mitarbeiter WHERE tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND student_uid=vw_student.uid AND tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_lehreinheit.studiensemester_kurzbz='".addslashes($ss)."' AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_lehrveranstaltung.studiengang_kz=".addslashes($studiengang_kz)." AND tbl_projektbetreuer.stunden!='0' AND tbl_projektbetreuer.faktor!='0' AND tbl_projektbetreuer.stundensatz!='0' ) as mitarbeiter ORDER BY mitarbeiter_uid"; if($db->db_query($qry)) { while($row = $db->db_fetch_object()) { drawLehrauftrag($row->mitarbeiter_uid); } } } else drawLehrauftrag($uid); function drawLehrauftrag($uid) { global $studiengang; global $studiengang_kz; global $fb_arr; global $stg_arr; global $ss; global $xml; global $stgl; global $ANZAHL_ZEILEN_PRO_SEITE; $xml.=' FH-'; //Studiengang if($studiengang->typ=='d') $xml.= 'Diplom-'; elseif($studiengang->typ=='m') $xml.= 'Master-'; elseif($studiengang->typ=='b') $xml.= 'Bachelor-'; $xml.= 'Studiengang '.$studiengang->bezeichnung.''; //Studiensemester if(substr($ss,0,2)=='WS') $studiensemester = 'Wintersemester '.substr($ss,2); else $studiensemester = 'Sommersemester '.substr($ss,2); $xml.="$ss $studiensemester"; //Lektor $qry = "SELECT * FROM campus.vw_mitarbeiter LEFT JOIN public.tbl_adresse USING(person_id) WHERE uid='".addslashes($uid)."' ORDER BY zustelladresse DESC, firma_id LIMIT 1"; $db = new basis_db(); if($result = $db->db_query($qry)) { if($row = $db->db_fetch_object($result)) { $firmenanschrift=false; if($row->firma_id!='') { $qry ="SELECT tbl_firma.name, tbl_adresse.strasse, tbl_adresse.plz, tbl_adresse.ort FROM public.tbl_firma JOIN public.tbl_adresse USING(firma_id) WHERE tbl_firma.firma_id='$row->firma_id' AND person_id='$row->person_id' LIMIT 1"; if($result_firma = $db->db_query($qry)) { if($row_firma = $db->db_fetch_object($result_firma)) { $name_gesamt = $row_firma->name; $strasse = $row_firma->strasse; $plz = $row_firma->plz; $ort = $row_firma->ort; $zuhanden = "zu Handen ".trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost); $firmenanschrift=true; } } } if(!$firmenanschrift) { $strasse = $row->strasse; $plz = $row->plz; $ort = $row->ort; $name_gesamt = trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost); $zuhanden=''; } $xml.=' '.$row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost.' '.$strasse.' '.$zuhanden.' '.$plz.' '.$ort.' '.$row->svnr.' '.$row->personalnummer.' '; } } //Lehreinheiten $qry = "SELECT * FROM campus.vw_lehreinheit WHERE mitarbeiter_uid='".addslashes($uid)."' AND studiensemester_kurzbz='$ss'"; if($studiengang_kz!='') //$studiengang_kz!='0' && $qry .= "AND lv_studiengang_kz='".addslashes($studiengang_kz)."'"; //$qry.=" ORDER BY lehreinheit_id"; $qry.=" ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id"; $lv = array(); $anzahl_lvs=0; if($result = $db->db_query($qry)) { $last_le=''; $gesamtkosten = 0; $gesamtstunden = 0; $gruppen = array(); $grp=''; while($row = $db->db_fetch_object($result)) { if($last_le!=$row->lehreinheit_id && $last_le!='') { array_unique($gruppen); foreach ($gruppen as $gruppe) $grp.=$gruppe.' '; $lv[$anzahl_lvs]['lehreinheit_id'] = $lehreinheit_id; $lv[$anzahl_lvs]['lehrveranstaltung'] = $lehrveranstaltung; $lv[$anzahl_lvs]['fachbereich'] = $fb_arr[$fachbereich]; $lv[$anzahl_lvs]['gruppe'] = ($grp!=''?trim($grp):' '); $lv[$anzahl_lvs]['stunden'] = ($stunden!=''?$stunden:' '); $lv[$anzahl_lvs]['satz'] = ($satz!=''?$satz:' '); $lv[$anzahl_lvs]['faktor'] = ($faktor!=''?$faktor:' '); $lv[$anzahl_lvs]['brutto'] = number_format($brutto,2,',','.'); $anzahl_lvs++; /*$xml.=' '.$lehreinheit_id.' '.$fb_arr[$fachbereich].' '.trim($grp).' '.$stunden.' '.$satz.' '.$faktor.' '.number_format($brutto,2,',','.').' ';*/ $gesamtkosten = $gesamtkosten + $brutto; $gesamtstunden = $gesamtstunden + $stunden; $lehreinheit_id=''; $lehrveranstaltung = ''; $fachbereich = ''; $gruppen= array(); $stunden = ''; $satz = ''; $faktor = ''; $brutto = ''; $grp=''; } $lehreinheit_id=$row->lehreinheit_id; $lehrveranstaltung = CutString($row->lv_bezeichnung,30).' '.$row->lehrform_kurzbz.' '.$row->lv_semester.'. Semester'; $fachbereich = $row->fachbereich_kurzbz; if($row->gruppe_kurzbz!='') $gruppen[] = $row->gruppe_kurzbz; else $gruppen[] = trim($stg_arr[$row->studiengang_kz].'-'.$row->semester.$row->verband.$row->gruppe).' '; $stunden = $row->semesterstunden; $satz = $row->stundensatz; $faktor = $row->faktor; $brutto = $row->semesterstunden*$row->stundensatz*$row->faktor; $last_le=$row->lehreinheit_id; } array_unique($gruppen); foreach ($gruppen as $gruppe) $grp.=$gruppe.' '; if(isset($lehreinheit_id)) { $lv[$anzahl_lvs]['lehreinheit_id'] = (isset($lehreinheit_id)?$lehreinheit_id:' '); $lv[$anzahl_lvs]['lehrveranstaltung'] = (isset($lehrveranstaltung)?$lehrveranstaltung:' '); $lv[$anzahl_lvs]['fachbereich'] = (isset($fachbereich)?$fb_arr[$fachbereich]:' '); $lv[$anzahl_lvs]['gruppe'] = ($grp!=''?trim($grp):' '); $lv[$anzahl_lvs]['stunden'] = (isset($stunden)?$stunden:' '); $lv[$anzahl_lvs]['satz'] = (isset($satz)?$satz:' '); $lv[$anzahl_lvs]['faktor'] = (isset($faktor)?$faktor:' '); $lv[$anzahl_lvs]['brutto'] = (isset($brutto)?number_format($brutto,2,',','.'):' '); $anzahl_lvs++; /* $xml.=' '.(isset($lehreinheit_id)?$lehreinheit_id:'').' '.(isset($fachbereich)?$fb_arr[$fachbereich]:'').' '.trim($grp).' '.(isset($stunden)?$stunden:'').' '.(isset($satz)?$satz:'').' '.(isset($faktor)?$faktor:'').' '.(isset($brutto)?number_format($brutto,2,',','.'):'').' '; */ if(isset($brutto)) $gesamtkosten = $gesamtkosten + $brutto; if(isset($stunden)) $gesamtstunden = $gesamtstunden + $stunden; } } $qry = "SELECT tbl_projektarbeit.projektarbeit_id, tbl_projektbetreuer.faktor, tbl_projektbetreuer.stunden, tbl_projektbetreuer.stundensatz, tbl_lehrveranstaltung.semester, vorname, nachname, vw_student.studiengang_kz, projekttyp_kurzbz, tbl_lehrfach.fachbereich_kurzbz FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrfach, lehre.tbl_lehrveranstaltung, public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student WHERE tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_benutzer.uid='$uid' AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND student_uid=vw_student.uid AND tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_lehreinheit.lehrfach_id=tbl_lehrfach.lehrfach_id AND tbl_lehreinheit.studiensemester_kurzbz='$ss' AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id "; if($studiengang_kz!='') $qry.=" AND tbl_lehrveranstaltung.studiengang_kz='$studiengang_kz'"; if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { $brutto = $row->stunden*$row->stundensatz*$row->faktor; if($brutto!=0) { switch($row->projekttyp_kurzbz) { case 'Bachelor': $kuerzel='BA'; break; case 'Diplom': $kuerzel='DA'; break; case 'Projekt': $kuerzel='PJ'; break; case 'Praktikum': $kuerzel='PX'; break; case 'Praxis': $kuerzel='PX'; break; default: $kuerzel='PA'; break; } $lv[$anzahl_lvs]['lehreinheit_id'] = (isset($row->projektarbeit_id)?$kuerzel.$row->projektarbeit_id:' '); $lv[$anzahl_lvs]['lehrveranstaltung'] = 'Betreuung '.$row->vorname.' '.$row->nachname.' '.$row->semester.'. Semester'; $lv[$anzahl_lvs]['fachbereich'] = (isset($row->fachbereich_kurzbz)?$fb_arr[$row->fachbereich_kurzbz]:' '); $lv[$anzahl_lvs]['gruppe'] = ' '; $lv[$anzahl_lvs]['stunden'] = (isset($row->stunden)?number_format($row->stunden,2):' '); $lv[$anzahl_lvs]['satz'] = (isset($row->stundensatz)?$row->stundensatz:' '); $lv[$anzahl_lvs]['faktor'] = (isset($row->faktor)?$row->faktor:''); $lv[$anzahl_lvs]['brutto'] = (isset($brutto)?number_format($brutto,2,',','.'):' '); $anzahl_lvs++; /* $xml.=' '.(isset($row->projektarbeit_id)?$kuerzel.$row->projektarbeit_id:'').' vorname.' '.$row->nachname.' '.$row->semester.'. Semester]]> '.(isset($row->fachbereich_kurzbz)?$fb_arr[$row->fachbereich_kurzbz]:'').' '.(isset($row->stunden)?number_format($row->stunden,2):'').' '.(isset($row->stundensatz)?$row->stundensatz:'').' '.(isset($row->faktor)?$row->faktor:'').' '.(isset($brutto)?number_format($brutto,2,',','.'):'').' '; */ $gesamtkosten = $gesamtkosten + $brutto; $gesamtstunden = $gesamtstunden + $row->stunden; } } } $anz=0; $newsite=false; foreach ($lv as $lv_row) { if($anz>$ANZAHL_ZEILEN_PRO_SEITE) { if($newsite) $xml.=''; $xml.=''; $newsite=true; $anz=0; } $xml.=' '.$lv_row['lehreinheit_id'].' '.$lv_row['fachbereich'].' '.$lv_row['gruppe'].' '.$lv_row['stunden'].' '.$lv_row['satz'].' '.$lv_row['faktor'].' '.$lv_row['brutto'].' '; $anz++; } if($newsite) $xml.=''; // Gesamtstunden und Gesamtkosten $xml.=" ".number_format($gesamtstunden,2)." ".number_format($gesamtkosten,2,',','.').""; $xml.=" $stgl"; $xml.= ' '.date('d.m.Y').' '; } // END GENERATE XML echo $xml.''; ?>