From 08fafe9559470f16993e76d8d49d13c3a91dc75f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 22 Apr 2014 12:17:31 +0000 Subject: [PATCH] =?UTF-8?q?Entwurf=20f=C3=BCr=20Erfolgsnachweis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/studiensemester.class.php | 13 + include/zeugnisnote.class.php | 120 ++++- rdf/erfolgsnachweis.rdf.php | 263 ++++++++++ system/vorlage_zip/Erfolgsnachweis.odt | Bin 0 -> 20314 bytes system/xsl/FHB_erfolgsnachweis_0_v1.xsl | 577 ++++++++++++++++++++++ system/xsl/FHB_erfolgsnachweis_head_0.xsl | 266 ++++++++++ 6 files changed, 1238 insertions(+), 1 deletion(-) create mode 100755 rdf/erfolgsnachweis.rdf.php create mode 100644 system/vorlage_zip/Erfolgsnachweis.odt create mode 100755 system/xsl/FHB_erfolgsnachweis_0_v1.xsl create mode 100755 system/xsl/FHB_erfolgsnachweis_head_0.xsl diff --git a/include/studiensemester.class.php b/include/studiensemester.class.php index 14070fd80..ef25507c2 100644 --- a/include/studiensemester.class.php +++ b/include/studiensemester.class.php @@ -735,5 +735,18 @@ class studiensemester extends basis_db return false; } } + + /** + * Liefert das dazupassende Studiensemester im Studienjahr + * @param $studiensemester_kurzbz + * @return $studiensemester_kurzbz + */ + public function getStudienjahrStudiensemester($studiensemester_kurzbz) + { + if(mb_substr($studiensemester_kurzbz,0,2)=='WS') + return $this->getNextFrom($studiensemester_kurzbz); + else + return $this->getPreviousFrom($studiensemester_kurzbz); + } } ?> diff --git a/include/zeugnisnote.class.php b/include/zeugnisnote.class.php index 7ea6c3472..dc3e473d9 100644 --- a/include/zeugnisnote.class.php +++ b/include/zeugnisnote.class.php @@ -338,5 +338,123 @@ class zeugnisnote extends basis_db return false; } } + + /** + * Laedt die Noten Studienjahr + * @param $lehrveranstaltung_id + * $student_uid + * $studiensemester_kurzbz + * @return true wenn ok, false wenn Fehler + */ + public function getZeugnisnotenStudienplan($student_uid, $studiensemester_arr, $studienplan_id) + { + + $stsem = $this->db_implode4SQL($studiensemester_arr); + + /* + * Alle Lehrveranstaltungen holen zu denen eine Note eingetragen ist und alle zu denen der Studierende zugeteilt ist. + * Danach wird im Studienplan gesucht und eventuell darbueberliegenden Module zusaetzlich geladen + */ + $qry = " + WITH RECURSIVE data(lvid, studienplan_lehrveranstaltung_id, studienplan_lehrveranstaltung_id_parent) as + ( + SELECT + vw_student_lehrveranstaltung.lehrveranstaltung_id, + tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id, + tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent + FROM + ( + campus.vw_student_lehrveranstaltung LEFT JOIN lehre.tbl_zeugnisnote + ON(uid=student_uid + AND vw_student_lehrveranstaltung.studiensemester_kurzbz=tbl_zeugnisnote.studiensemester_kurzbz + AND vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id + ) + ) + LEFT JOIN lehre.tbl_note USING(note) + LEFT JOIN lehre.tbl_studienplan_lehrveranstaltung ON(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id) + WHERE + uid=".$this->db_add_param($student_uid)." + AND vw_student_lehrveranstaltung.studiensemester_kurzbz IN(".$stsem.") + AND tbl_studienplan_lehrveranstaltung.studienplan_id=".$this->db_add_param($studienplan_id, FHC_INTEGER)." + UNION + SELECT lehre.tbl_lehrveranstaltung.lehrveranstaltung_id, + tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id, + tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent + FROM + lehre.tbl_zeugnisnote + JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id) + JOIN lehre.tbl_note USING(note) + LEFT JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id) + WHERE + student_uid=".$this->db_add_param($student_uid)." + AND studiensemester_kurzbz IN(".$stsem.") + AND tbl_studienplan_lehrveranstaltung.studienplan_id=".$this->db_add_param($studienplan_id, FHC_INTEGER)." + + UNION ALL + SELECT stpllv.lehrveranstaltung_id, stpllv.studienplan_lehrveranstaltung_id, stpllv.studienplan_lehrveranstaltung_id_parent + FROM lehre.tbl_studienplan_lehrveranstaltung stpllv, data + WHERE stpllv.studienplan_lehrveranstaltung_id=data.studienplan_lehrveranstaltung_id_parent + ) + SELECT + tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id, + tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent, tbl_studienplan_lehrveranstaltung.semester, + tbl_lehrveranstaltung.lehrveranstaltung_id,tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, tbl_lehrveranstaltung.bezeichnung_english as lehrveranstaltung_bezeichnung_english, + tbl_lehrveranstaltung.semesterstunden, tbl_lehrveranstaltung.ects, tbl_lehrveranstaltung.sort, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.zeugnis, + tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz, + tbl_zeugnisnote.studiensemester_kurzbz, tbl_zeugnisnote.uebernahmedatum, tbl_zeugnisnote.benotungsdatum, + tbl_zeugnisnote.note, tbl_zeugnisnote.updateamum, tbl_zeugnisnote.updatevon, tbl_zeugnisnote.insertamum, tbl_zeugnisnote.insertvon, + tbl_note.bezeichnung as note_bezeichnung, tbl_zeugnisnote.bemerkung, tbl_lehrveranstaltung.lvnr + FROM + lehre.tbl_lehrveranstaltung + LEFT JOIN lehre.tbl_zeugnisnote ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND student_uid=".$this->db_add_param($student_uid).") + LEFT JOIN lehre.tbl_studienplan_lehrveranstaltung ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id AND tbl_studienplan_lehrveranstaltung.studienplan_id=".$this->db_add_param($studienplan_id).") + LEFT JOIN lehre.tbl_note USING(note) + WHERE + (tbl_zeugnisnote.studiensemester_kurzbz IN(".$stsem.") OR tbl_zeugnisnote.studiensemester_kurzbz is null) + AND tbl_lehrveranstaltung.lehrveranstaltung_id in(SELECT lvid FROM data) + ORDER BY studienplan_lehrveranstaltung_id_parent desc, studienplan_lehrveranstaltung_id + "; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new zeugnisnote(); + + $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $obj->student_uid = $student_uid; + $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $obj->note = $row->note; + $obj->uebernahmedatum = $row->uebernahmedatum; + $obj->benotungsdatum = $row->benotungsdatum; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->note_bezeichnung = $row->note_bezeichnung; + $obj->lehrveranstaltung_bezeichnung = $row->lehrveranstaltung_bezeichnung; + $obj->lehrveranstaltung_bezeichnung_english = $row->lehrveranstaltung_bezeichnung_english; + $obj->bemerkung = $row->bemerkung; + $obj->semesterstunden = $row->semesterstunden; + $obj->ects = $row->ects; + $obj->sort = $row->sort; + $obj->studiengang_kz = $row->studiengang_kz; + $obj->zeugnis = $this->db_parse_bool($row->zeugnis); + $obj->lv_lehrform_kurzbz = $row->lv_lehrform_kurzbz; + $obj->lehrveranstaltung_lvnr = $row->lvnr; + $obj->studienplan_lehrveranstaltung_id = $row->studienplan_lehrveranstaltung_id; + $obj->studienplan_lehrveranstaltung_id_parent = $row->studienplan_lehrveranstaltung_id_parent; + $obj->studienplan_lehrveranstaltung_semester = $row->semester; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } -?> \ No newline at end of file +?> diff --git a/rdf/erfolgsnachweis.rdf.php b/rdf/erfolgsnachweis.rdf.php new file mode 100755 index 000000000..16b01c13a --- /dev/null +++ b/rdf/erfolgsnachweis.rdf.php @@ -0,0 +1,263 @@ + + */ +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/studiensemester.class.php'); +require_once('../include/studienordnung.class.php'); +require_once('../include/studienplan.class.php'); +require_once('../include/student.class.php'); +require_once('../include/prestudent.class.php'); + +$datum = new datum(); +$db = new basis_db(); + + 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); + } + + // Noten laden + $note_arr = array(); + $note = new note(); + $note->getAll(); + foreach ($note->result as $n) + { + $note_arr[$n->note]['anmerkung'] = $n->anmerkung; + $note_arr[$n->note]['positiv'] = $n->positiv; + } + $note_arr['']['anmerkung'] = ''; + $note_arr['']['positiv'] = false; + + // Studienjahr ermitteln + if(isset($_GET['ss'])) + $studiensemester_kurzbz = $_GET['ss']; + else + $studiensemester_kurzbz = $semester_aktuell; + + $studiensemester = new studiensemester(); + $studiensemester_kurzbz2 = $studiensemester->getStudienjahrStudiensemester($studiensemester_kurzbz); + + + //Daten holen + + $xml = ""; + $xml .= ""; + + foreach($uid_arr as $uid) + { + $student = new student(); + if(!$student->load($uid)) + die($student->errormsg); + + $studiengang = new studiengang(); + $stgleiter = $studiengang->getLeitung($student->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); + } + + $ausbildungssemester = 0; + + //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 FROM public.tbl_prestudentstatus + WHERE + prestudent_id=".$db->db_add_param($student->prestudent_id)." AND + studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND + status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent') + ORDER BY DATUM DESC LIMIT 1"; + if($result_sem = $db->db_query($qry)) + { + if($row_sem = $db->db_fetch_object($result_sem)) + { + $ausbildungssemester = $row_sem->semester; + } + } + + $student_studienjahr = round($ausbildungssemester/2); + + $jahr1=mb_substr($studiensemester_kurzbz,1); + $jahr2=mb_substr($studiensemester_kurzbz2,1); + $studienjahr = ($jahr1>$jahr2?$jahr2.'/'.$jahr1:$jahr1.'/'.$jahr2); + + $studiengang = new studiengang(); + $studiengang->load($student->studiengang_kz); + + $prestudent = new prestudent(); + $prestudent->getLastStatus($student->prestudent_id, $studiensemester_kurzbz); + + if($prestudent->studienplan_id=='') + { + die('keine Studienplan Zuordnung fuer '.$student->nachname); + } + $studienplan = new studienplan(); + if(!$studienplan->loadStudienplan($prestudent->studienplan_id)) + die('Studienplan ungueltig'); + + $studienordnung = new studienordnung(); + if(!$studienordnung->loadStudienordnung($studienplan->studienordnung_id)) + die('Studienordnung ungueltig'); + + + $xml .= "\n "; + $xml .= "\n ".$ausbildungssemester.""; + $xml .= "\n ".$studienjahr.""; + $xml .= "\n ".$student_studienjahr.""; + $xml .= "\n ".$studienordnung->studiengangbezeichnung.""; + $xml .= "\n ".$studienordnung->studiengangbezeichnung_englisch.""; + $xml .= "\n ".$studiengang->typ.""; + $xml .= "\n ".sprintf('%04s', abs($studiengang->studiengang_kz)).""; + $xml .= "\n ".$student->anrede.""; + $xml .= "\n ".$student->vorname.""; + $xml .= "\n ".$student->nachname.""; + $xml .= "\n ".trim($student->titelpre.' '.trim($student->vorname.' '.$student->vornamen).' '.mb_strtoupper($student->nachname).($student->titelpost!=''?', '.$student->titelpost:'')).""; + $gebdatum = date('d.m.Y',strtotime($student->gebdatum)); + $xml .= "\n ".$gebdatum.""; + $xml .= "\n ".$student->matrikelnr.""; + $xml .= "\n ".$stgl.""; + $datum_aktuell = date('d.m.Y'); + $xml .= "\n ".$datum_aktuell.""; + + $obj = new zeugnisnote(); + + + $obj->getZeugnisnotenStudienplan($uid, array($studiensemester_kurzbz, $studiensemester_kurzbz2),$prestudent->studienplan_id); + + foreach ($obj->result as $row) + { + $stpllv[$row->studienplan_lehrveranstaltung_id] = $row->lehrveranstaltung_id; + } + + foreach($obj->result as $row) + { + //Gruppieren der Module + //$lvs['1']['childs']['2']=$obj; + if($row->studienplan_lehrveranstaltung_id_parent=='') + { + $lehrveranstaltungen[$row->lehrveranstaltung_id]['data']=$row; + } + else + { + if(isset($lehrveranstaltungen[$stpllv[$row->studienplan_lehrveranstaltung_id_parent]])) + { + $lehrveranstaltungen[$stpllv[$row->studienplan_lehrveranstaltung_id_parent]]['childs'][$row->lehrveranstaltung_id]['data'] = $row; + } + else + { + foreach($lehrveranstaltungen as $key=>$row_module) + { + if(isset($lehrveranstaltungen[$key]['childs'][$stpllv[$row->studienplan_lehrveranstaltung_id_parent]])) + { + $lehrveranstaltungen[$key]['childs'][$stpllv[$row->studienplan_lehrveranstaltung_id_parent]]['childs'][$row->lehrveranstaltung_id]['data']=$row; + } + } + } + } + } + + $ects_gesamt = 0; + $ects_absolviert = 0; + foreach ($lehrveranstaltungen as $row_lehrveranstaltungen) + { + $xml.=getLVRow($row_lehrveranstaltungen); + } + $xml .= "".$ects_gesamt.""; + $xml .= "".$ects_absolviert.""; + $xml .= " "; + } + $xml .= ""; + echo $xml; + +function getLVRow($obj) +{ + global $ects_gesamt, $ects_absolviert,$studienplan,$note_arr; + $xml=''; + $row = $obj['data']; + if($row->zeugnis) + { + if ($row->note) + $note = $note_arr[$row->note]['anmerkung']; + else + $note = ""; + + $bezeichnung = $row->lehrveranstaltung_bezeichnung; + $bezeichnung_englisch = $row->lehrveranstaltung_bezeichnung_english; + + $wochen = $studienplan->semesterwochen; + + $xml .= "\n "; + $xml .= "\n "; + $xml .= "\n "; + $xml .= "\n ".$row->lehrveranstaltung_lvnr.""; + $xml .= "\n studiensemester_kurzbz,0,2)."]]>"; + $xml .= "\n studienplan_lehrveranstaltung_semester."]]>"; + $xml .= "\n ".$note.""; + $xml .= "\n ".($note_arr[$row->note]['positiv']?'Ja':'Nein').""; + $xml .= "\n ".($row->semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1)).""; + $ectspunkte=''; + + 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($note_arr[$row->note]['positiv']) + $ects_absolviert+=$ectspunkte; + + $xml .= "\n ".$ectspunkte.""; + $xml .= "\n ".$row->lv_lehrform_kurzbz.""; + + if(isset($obj['childs'])) + { + foreach($obj['childs'] as $row_childs) + { + $xml.=getLVRow($row_childs); + } + } + + $xml .= "\n "; + } + + return $xml; +} +?> diff --git a/system/vorlage_zip/Erfolgsnachweis.odt b/system/vorlage_zip/Erfolgsnachweis.odt new file mode 100644 index 0000000000000000000000000000000000000000..73eb0ec81f1648e0c16da6b5688e0e6d0b1df69b GIT binary patch literal 20314 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 literal 0 HcmV?d00001 diff --git a/system/xsl/FHB_erfolgsnachweis_0_v1.xsl b/system/xsl/FHB_erfolgsnachweis_0_v1.xsl new file mode 100755 index 000000000..cb6a2a097 --- /dev/null +++ b/system/xsl/FHB_erfolgsnachweis_0_v1.xsl @@ -0,0 +1,577 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lehrveranstaltungen + + + + + LV-Art + + + Sem. + + + SWS + + + ECTS + + + Note + + + Grade + + + + + + + + + + + + + + ECTS absolviert + + + + + + + + + + + + + + + + + + + ECTS verpflichtend + + + + + + + + + + + + + + + + + Legende: WS=Wintersemester, SS=Sommersemester, SWS=Semesterwochenstunden, LV-Art=Lehrveranstaltungsart, VO=Vorlesung, UE=Übung, BP=Praktikum, SE=Seminar, EX=Exkursion, PT=Projekt, AWPF=Wahlpflichtfach, RU=Rechenübung, ILV=integr. LV, LB=Laborübung, PS=Proseminar, WK=Workshop, WA=Wiss. Arbeit, WP=Wirtschaftspraktikum, MT=Managementtechniken, MODUL=gemeinsame Bewertung mehrerer Lehrveranstaltungen mit einer Modulnote + + 1 SWS=15 Lehrveranstaltungsstunden, m.E.tg.=mit Erfolg teilgenommen, o.E.tg.=ohne Erfolg teilgenommen + Nationale Beurteilung: 1=Sehr Gut, 2=Gut, 3=Befriedigend, 4=Genügend, 5=Nicht Genügend + Internationale Beurteilung (ECTS Notenskala): A/B=Sehr Gut, C=Gut, D=Befriedigend, E=Genügend, F=Nicht Genügend + + + Pinkafeld, am + + + + + + + + + + + + + + + + + Leitung Fachhochschul-Studiengang + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TODO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TODO + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + TODO + + + + + diff --git a/system/xsl/FHB_erfolgsnachweis_head_0.xsl b/system/xsl/FHB_erfolgsnachweis_head_0.xsl new file mode 100755 index 000000000..fc24224a8 --- /dev/null +++ b/system/xsl/FHB_erfolgsnachweis_head_0.xsl @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Erfolgsnachweis + Fachhochschul-Masterstudiengang + + Studienjahr + + + + + + + + + Zuname: + + + + + + Personenkennzeichen: + + + + + + + + Vorname: + + + + + + Studienjahr: + + + + + + + + Geburtsdatum: + + + + + + + + + + + + + + + + + + +