diff --git a/rdf/diplomasupplement.xml.php b/rdf/diplomasupplement.xml.php index f2efe5de6..1fc535480 100644 --- a/rdf/diplomasupplement.xml.php +++ b/rdf/diplomasupplement.xml.php @@ -29,6 +29,8 @@ require_once('../include/basis_db.class.php'); require_once('../include/studiengang.class.php'); require_once('../include/prestudent.class.php'); require_once('../include/mitarbeiter.class.php'); +require_once('../include/studiensemester.class.php'); +require_once('../include/student.class.php'); $datum = new datum(); $db = new basis_db(); @@ -42,10 +44,10 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $uid = null; $uid_arr = explode(";",$uid); - - echo "\n"; + + echo " "; echo ""; - + for ($i = 0; $i < sizeof($uid_arr); $i++) { if($uid_arr[$i]=='') @@ -56,7 +58,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") campus.vw_student JOIN public.tbl_studiengang USING(studiengang_kz) WHERE uid = '".$uid_arr[$i]."'"; - + if($db->db_query($query)) { if(!$row = $db->db_fetch_object()) @@ -64,22 +66,55 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } else die('Student not found'.$uid_arr[$i]); - + //Bei DEW und DPW werden 60 ECTS angerechnet if($row->studiengang_kz==92 || $row->studiengang_kz==91) $angerechnete_sws=60; else $angerechnete_sws=0; + + $studiengang_kz = sprintf("%04s", $row->studiengang_kz); echo ' '; echo ' nachname.']]>'; echo ' '.$row->vorname.''; echo ' '.$row->vornamen.''; + echo ' vorname.' '.$row->nachname.']]>'; echo ' '.$datum->convertISODate($row->gebdatum).''; echo ' '.$row->matrikelnr.''; - echo ' '.sprintf("%04s", $row->studiengang_kz).''; + echo ' '.$studiengang_kz.''; echo ' '.$row->bezeichnung.''; echo ' '.$row->english.''; + $prestudent = new prestudent(); + $prestudent->getFirstStatus($row->prestudent_id, 'Student'); + $semesterNumberStart = $prestudent->ausbildungssemester; + echo ' '.substr($prestudent->studiensemester_kurzbz,2,6).''; + echo ' '.$prestudent->ausbildungssemester.''; + $prestudent->getLastStatus($row->prestudent_id, null, 'Student'); + $semesterNumberEnd = $prestudent->ausbildungssemester; + echo ' '.substr($prestudent->studiensemester_kurzbz,2,6).''; + echo ' '.$prestudent->ausbildungssemester.''; + + $studiengang = new studiengang(); + $studiengang->load($studiengang_kz); + switch ($studiengang->typ) + { + case 'b': + $bezeichnung = 'Bachelor'; + break; + case 'm': + $bezeichnung = 'Master'; + break; + case 'd': + $bezeichnung = 'Diplom'; + break; + default: + $bezeichnung = ''; + break; + } + echo ' '.$bezeichnung.''; + + $bez = $row->typ; //Unterrichtssprache $sprache_deutsch=''; $sprache_englisch=''; @@ -170,34 +205,34 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") if($row->typ=='d') { - echo ' '; - echo ' '; - echo ' studiengang_kz).' genehmigten Antrag.]]>'; + echo ' '; + echo ' '; + echo ' studiengang_kz).' genehmigten Antrag.]]>'; echo ' studiengang_kz).')]]>'; - echo ' '; + echo ' '; echo ' '; echo ' Diplomstudium (UNESCO ISCED 5A)'; echo ' Diploma degree program (UNESCO ISCED 5A)'; } elseif($row->typ=='m') { - echo ' '; - echo ' '; - echo ' studiengang_kz).' genehmigten Antrag.\n]]>'; - echo ' studiengang_kz).')\n]]>'; + echo ' '; + echo ' '; + echo ' studiengang_kz).' genehmigten Antrag. ]]>'; + echo ' studiengang_kz).') ]]>'; echo ' '; - echo ' '; + echo ' '; echo ' Masterstudium (UNESCO ISCED 5A)'; echo ' Master degree program (UNESCO ISCED 5A)'; } elseif($row->typ=='b') { - echo ' '; - echo ' '; - echo ' studiengang_kz).' genehmigten Antrag.]]>'; + echo ' '; + echo ' '; + echo ' studiengang_kz).' genehmigten Antrag.]]>'; echo ' studiengang_kz).')]]>'; echo ' '; - echo ' '; + echo ' '; echo ' Bachelorstudium (UNESCO ISCED 5A)'; echo ' Bachelor degree program (UNESCO ISCED 5A)'; @@ -249,7 +284,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo " "; while($row1 = $db->db_fetch_object()) { - echo "Auslandssemester/International semester ".$datum->convertISODate($row1->von)." - ".$datum->convertISODate($row1->bis)."\n"; + echo "Auslandssemester/International semester ".$datum->convertISODate($row1->von)." - ".$datum->convertISODate($row1->bis); } echo ""; } @@ -275,6 +310,348 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } echo ' '.date('d.m.Y').''; + + /* + * Hole Notendurchschnitt vom Jahr nach dem letzten Status und 2 Jahre davor, + */ + $student = new student(); + $student->load($uid_arr[$i]); + $prestudent = new prestudent(); + $prestudent->getLastStatus($student->prestudent_id, null, 'Student'); + + $lastStatusSemester = $prestudent->studiensemester_kurzbz; + $studiensemester = new studiensemester(); + $studiensemesterPrev = $studiensemester->getPreviousFrom($lastStatusSemester); + $noteArrayPrev = array(); + $noteArrayPrev[1] = 0; + $noteArrayPrev[2] = 0; + $noteArrayPrev[3] = 0; + $noteArrayPrev[4] = 0; + $noteArrayPrev[5] = 0; + $noteArrayPrev[6] = 0; + $noteArrayPrev[7] = 0; + $noteArrayPrev[12] = 0; + + // letztes Jahr + $qry_prevYear = "SELECT note, count(note) FROM lehre.tbl_zeugnisnote + WHERE lehrveranstaltung_id + IN(select distinct(lehrveranstaltung_id) FROM lehre.tbl_lehreinheit + JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id) + WHERE studiensemester_kurzbz IN ('$lastStatusSemester','$studiensemesterPrev') and studiengang_kz = '$studiengang_kz') + AND studiensemester_kurzbz IN ('$lastStatusSemester','$studiensemesterPrev') group by note order by note"; + if($result_prevYear = $db->db_query($qry_prevYear)) + { + while($row_prevYear = $db->db_fetch_object($result_prevYear)) + { + $noteArrayPrev[$row_prevYear->note] = $row_prevYear->count; + } + } + + $noten_anzahl =0; + $noten_anzahl += $noteArrayPrev[1]; + $noten_anzahl += $noteArrayPrev[2]; + $noten_anzahl += $noteArrayPrev[3]; + $noten_anzahl += $noteArrayPrev[4]; + $noten_anzahl += $noteArrayPrev[5]; + $noten_anzahl += $noteArrayPrev[6]; + $noten_anzahl += $noteArrayPrev[7]; + $noten_anzahl += $noteArrayPrev[12]; + + // Noten: 1-5, angerechnet, nicht beurteilt, erfolgreich absolviert anzeigen + echo " ".sprintf("%01.1f",($noteArrayPrev[1]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[2]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[3]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[4]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[5]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[6]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[7]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[12]/$noten_anzahl*100)).""; + + // vorletztes Jahr + $studiensemester = new studiensemester(); + $lastStatusSemester = $studiensemester->getPreviousFrom($studiensemesterPrev); + $studiensemesterPrev = $studiensemester->getPreviousFrom($lastStatusSemester); + $qry_prevYear = "SELECT note, count(note) FROM lehre.tbl_zeugnisnote + WHERE lehrveranstaltung_id + IN(select distinct(lehrveranstaltung_id) FROM lehre.tbl_lehreinheit + JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id) + WHERE studiensemester_kurzbz IN ('$lastStatusSemester','$studiensemesterPrev') and studiengang_kz = '$studiengang_kz') + AND studiensemester_kurzbz IN ('$lastStatusSemester','$studiensemesterPrev') group by note order by note"; + if($result_prevYear = $db->db_query($qry_prevYear)) + { + while($row_prevYear = $db->db_fetch_object($result_prevYear)) + { + $noteArrayPrev[$row_prevYear->note] = $row_prevYear->count; + } + } + + $noten_anzahl =0; + $noten_anzahl += $noteArrayPrev[1]; + $noten_anzahl += $noteArrayPrev[2]; + $noten_anzahl += $noteArrayPrev[3]; + $noten_anzahl += $noteArrayPrev[4]; + $noten_anzahl += $noteArrayPrev[5]; + $noten_anzahl += $noteArrayPrev[6]; + $noten_anzahl += $noteArrayPrev[7]; + $noten_anzahl += $noteArrayPrev[12]; + + // Noten: 1-5, angerechnet, nicht beurteilt, erfolgreich absolviert anzeigen + echo " ".sprintf("%01.1f",($noteArrayPrev[1]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[2]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[3]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[4]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[5]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[6]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[7]/$noten_anzahl*100)).""; + echo " ".sprintf("%01.1f",($noteArrayPrev[12]/$noten_anzahl*100)).""; + + $qry_projektarbeit = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english + FROM lehre.tbl_projektarbeit + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE student_uid='$uid_arr[$i]' + AND projekttyp_kurzbz in('Bachelor', 'Diplom') + ORDER BY beginn ASC, projektarbeit_id ASC;"; + + $projektarbeit = array(); + + if($result_projektarbeit = $db->db_query($qry_projektarbeit)) + { + while($row_projektarbeit = $db->db_fetch_object($result_projektarbeit)) + { + $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['titel']=$row_projektarbeit->titel; + $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['titel_en']=$row_projektarbeit->titel_english; + $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['themenbereich']=$row_projektarbeit->themenbereich; + $projektarbeit[$row_projektarbeit->lehrveranstaltung_id]['note']=$row_projektarbeit->note; + } + } + + + $ects_total = 0; +/* $anzahl_fussnoten=0; + $fussnotenzeichen=array('¹)','²)','³)'); + $xml_fussnote = '';*/ + echo ""; + for($start = $semesterNumberStart; $start <= $semesterNumberEnd; $start++) + { + //$thesis_beschreibung = ''; + echo ""; + + // hole Semesterbezeichnung für aktuelles Semester + $qry_semester = "Select distinct(student.semester), student.studiensemester_kurzbz + from campus.vw_student_lehrveranstaltung student + left join lehre.tbl_zeugnisnote zeugnis on(student.lehrveranstaltung_id = zeugnis.lehrveranstaltung_id AND student.uid = zeugnis.student_uid AND student.studiensemester_kurzbz = zeugnis.studiensemester_kurzbz) + join lehre.tbl_note note using(note) where uid = '$uid_arr[$i]' and zeugnis = true and + semester = '$start';"; + + if($result_semester = $db->db_query($qry_semester)) + { + if($row_semester = $db->db_fetch_object($result_semester)) + { + $semester_kurzbz = $row_semester->studiensemester_kurzbz; + } + } +// $aktuellesSemester = $semester_kurzbz; + + $semester = mb_substr($semester_kurzbz,0,2); + $year = mb_substr($semester_kurzbz, 2,4); + + if($semester == 'SS') + $semester_kurzbz = 'Summer Semester '.$year; + else if($semester == 'WS') + { + $helpyear = mb_substr($year, 2,2); + $helpyear +=1; + $helpyear = sprintf("%02d",$helpyear); + $semester_kurzbz = 'Winter Semester '.$year.'/'.$helpyear; + } + + echo " Semester $start | $semester_kurzbz"; + + $qry ="Select distinct(student.lehrveranstaltung_id), student.uid, student.studiengang_kz, student.kurzbz, student.bezeichnung, student.bezeichnung_english, student.semester, student.semesterstunden, student.ects, student.studiensemester_kurzbz, zeugnis.note, note.bezeichnung note_bezeichnung, note.anmerkung + from campus.vw_student_lehrveranstaltung student + left join lehre.tbl_zeugnisnote zeugnis on(student.lehrveranstaltung_id = zeugnis.lehrveranstaltung_id AND student.uid = zeugnis.student_uid AND student.studiensemester_kurzbz = zeugnis.studiensemester_kurzbz) + join lehre.tbl_note note using(note) + + where uid = '$uid_arr[$i]' and zeugnis = true and + semester = '$start';"; + + $j = 0; + $wochen = 15; + if($result_stud = $db->db_query($qry)) + { + while($row_stud = $db->db_fetch_object($result_stud)) + { + $test = false; + $qry_sws = "SELECT wochen from public.tbl_semesterwochen where studiengang_kz = '".addslashes($row_stud->studiengang_kz)."' + and semester = '".addslashes($row_stud->semester)."';"; + + if($result_sws = $db->db_query($qry_sws)) + { + if($row_sws = $db->db_fetch_object($result_sws)) + { + $wochen = $row_sws->wochen; + } + } + $ssp = $row_stud->semesterstunden / $wochen; + + /* Fussnote nicht mehr notwendig -> Thesisbezeichnung wird gleich in LV geschrieben + if(array_key_exists($row_stud->lehrveranstaltung_id, $projektarbeit)) + { + //$bezeichnung = $row_stud->lehrveranstaltung_bezeichnung.$firma.' '.$fussnotenzeichen[$anzahl_fussnoten]; + //$bezeichnung_englisch = $row_stud->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_stud->lehrveranstaltung_id]['titel'],'\n'); + $nl2=''; + if($projektarbeit[$row_stud->lehrveranstaltung_id]['themenbereich']!='') + { + $xml_fussnote .=" Themenbereich: "; + $xml_fussnote .=" lehrveranstaltung_id]['themenbereich'].'\n]]>'; + $anzahl_nl++; + $nl2='\n'; + } + + if($bez=='b') + $typ = "Bachelor's Thesis:"; + else + $typ = 'Master Thesis:'; + + $nl=''; + $nl2=''; + $xml_fussnote .=" $typ"; + $xml_fussnote .=" lehrveranstaltung_id]['titel'].$nl2."]]>"; + $xml_fussnote .=" lehrveranstaltung_id]['titel_en'].$nl2."]]>"; + $thesis_beschreibung .= "¹) ".$projektarbeit[$row_stud->lehrveranstaltung_id]['titel']." + ".(isset($note_arr[$note])?$note_arr[$note]:$note).$nl.""; + //$note = $note_arr[$projektarbeit[$row->lehrveranstaltung_id]['note']]; + $note = $projektarbeit[$row_stud->lehrveranstaltung_id]['note']; + //$nl = str_repeat('\n',($anzahl_nl)); + $xml_fussnote .=' '.(isset($note_arr[$note])?$note_arr[$note]:$note).$nl.''; + $xml_fussnote .=' '.$nl.''; + $xml_fussnote .=' '.$nl.''; + $xml_fussnote .=' '.$nl.''; + + $xml_fussnote .=" "; + $anzahl_fussnoten++; + $test = true; + }*/ + + echo " "; + + // hole lehrform_kz von aktueller LV + $qry_lehrform = "SELECT distinct(lehrform_kurzbz) FROM + lehre.tbl_lehreinheit WHERE studiensemester_kurzbz='$row_stud->studiensemester_kurzbz' and lehrveranstaltung_id = '$row_stud->lehrveranstaltung_id' + ORDER BY lehrform_kurzbz"; + + $lehrform_kurzbz = ''; + $y = 0; + if($result_lehrform = $db->db_query($qry_lehrform)) + { + while($row_lehrform = $db->db_fetch_object($result_lehrform)) + { if($y != 0) + $lehrform_kurzbz = $lehrform_kurzbz.', '.$row_lehrform->lehrform_kurzbz; + else + $lehrform_kurzbz = $row_lehrform->lehrform_kurzbz; + $y++; + } + } + + echo " $lehrform_kurzbz"; + + // hole benotungsdatum von aktueller LV + $qry_benotung = "SELECT benotungsdatum FROM + lehre.tbl_zeugnisnote WHERE lehrveranstaltung_id = '$row_stud->lehrveranstaltung_id' + AND studiensemester_kurzbz = '$row_stud->studiensemester_kurzbz' + AND student_uid = '$uid_arr[$i]';"; + if($result_benotung = $db->db_query($qry_benotung)) + { + if($row_benotung = $db->db_fetch_object($result_benotung)) + { + $benotungsdatum = $row_benotung->benotungsdatum; + } + } + + $datum = new datum(); + $benotungsdatum = $datum->formatDatum($benotungsdatum,'d/m/Y'); + + $bezeichnung = $row_stud->bezeichnung; + $bezeichnung_englisch = $row_stud->bezeichnung_english; + + // Check ob an Lehrveranstaltung eine Thesis hängt + $qry = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english + FROM lehre.tbl_projektarbeit + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE student_uid='".$uid_arr[$i]."' + AND projekttyp_kurzbz in('Bachelor', 'Diplom') + ORDER BY beginn ASC, projektarbeit_id ASC;"; + + if($result_thesis = $db->db_query($qry)) + { + while($row_thesis = $db->db_fetch_object($result_thesis)) + { + if($row_thesis->lehrveranstaltung_id == $row_stud->lehrveranstaltung_id) + { + $bezeichnung.= ": \"".$row_thesis->titel."\""; + $bezeichnung_englisch.= ": \"".$row_thesis->titel."\""; + } + } + } + + + echo " $benotungsdatum"; + echo " ".number_format($ssp,2).""; + echo " $row_stud->semester"; + echo " $row_stud->kurzbz"; + echo " $row_stud->studiensemester_kurzbz"; + echo " "; + echo " "; + /* + if($test == true) + echo " bezeichnung_english]]>¹)"; + else + echo " bezeichnung_english]]>"; + */ + echo " $row_stud->ects"; + $ects_total += $row_stud->ects; + echo " $row_stud->semesterstunden"; + $note = $row_stud->note; + switch ($note) + { + case 6: $note = 'ar'; + break; + case 7: $note = 'nb'; + break; + case 8: $note = 'tg'; + break; + case 12: $note = 'ea'; + break; + case 13: $note = 'nea'; + break; + case 14: $note = 'nbe'; + break; + } + echo " $note"; + echo " $row_stud->note_bezeichnung"; + echo " $row_stud->anmerkung"; + echo " $row_stud->lehrveranstaltung_id"; + echo " "; + + $test = false; + + } + /*echo ""; + echo $thesis_beschreibung; + echo "";*/ + echo ""; + } + } + echo ""; + //echo $xml_fussnote; + echo " $ects_total"; + echo ' '; } echo "";