Files
FHC-Core/rdf/diplomasupplement.xml.php
Andreas Österreicher 67d41f1df9 Note Bestanden am Diploamsupplement priorisiert damit diese als
"bessere" Note als Nicht Genügend gewertet wird
2025-11-05 14:26:45 +01:00

1289 lines
58 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Raab <gerald.raab@technikum-wien.at>.
*/
// 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/datum.class.php');
require_once('../include/basis_db.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/prestudent.class.php');
require_once('../include/studienordnung.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/studiensemester.class.php');
require_once('../include/student.class.php');
require_once('../include/firma.class.php');
require_once('../include/note.class.php');
require_once('../include/studienplan.class.php');
require_once('../include/lehrveranstaltung.class.php');
require_once('../include/lehrform.class.php');
require_once('../include/sprache.class.php');
$datum = new datum();
$db = new basis_db();
if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
if(isset($_GET['uid']))
$uid = $_GET['uid'];
else
$uid = null;
$uid_arr = explode(";", $uid);
echo "<?xml version='1.0' encoding='UTF-8' standalone='yes'?> ";
echo "<supplements>";
for ($i = 0; $i < sizeof($uid_arr); $i++)
{
if($uid_arr[$i]=='')
continue;
$query = "SELECT
vw_student.vorname, vw_student.nachname, vw_student.vornamen, vw_student.gebdatum,
vw_student.matrikelnr, vw_student.prestudent_id,
tbl_studiengang.bezeichnung, tbl_studiengang.english, tbl_studiengang.studiengang_kz,
tbl_studiengang.typ, tbl_studiengang.mischform, tbl_studiengang.max_semester,
tbl_studiengang.orgform_kurzbz, tbl_person.matr_nr
FROM
campus.vw_student JOIN public.tbl_studiengang USING(studiengang_kz)
JOIN
public.tbl_person USING (person_id)
WHERE
uid = ".$db->db_add_param($uid_arr[$i]);
if($db->db_query($query))
{
if(!$row = $db->db_fetch_object())
die('Student not found'.$uid_arr[$i]);
}
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;
//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));
echo ' <supplement>';
echo ' <nachname><![CDATA['.$row->nachname.']]></nachname>';
echo ' <vorname><![CDATA['.$row->vorname.']]></vorname>';
echo ' <vornamen><![CDATA['.$row->vornamen.']]></vornamen>';
echo ' <name><![CDATA['.$row->vorname.' '.$row->nachname.']]></name>';
echo ' <geburtsdatum><![CDATA['.$datum->convertISODate($row->gebdatum).']]></geburtsdatum>';
//Print in Transcript of Record
echo ' <matrikelnummer>'.TRIM($row->matrikelnr).'</matrikelnummer>';
//Angaben zur Person /Information identifying the holder of the qualification
echo ' <matr_nr><![CDATA['.$row->matr_nr.']]></matr_nr>';
echo ' <studiengang_kz>'.$studiengang_kz.'</studiengang_kz>';
$prestudent = new prestudent($row->prestudent_id);
if ($prestudent->getLastStatus($row->prestudent_id, null, 'Student'))
{
$studienplan_id = $prestudent->studienplan_id;
$studienordnung = new studienordnung();
if ($studienordnung->getStudienordnungFromStudienplan($studienplan_id))
{
$studiengangbezeichnung = $studienordnung->__get('studiengangbezeichnung');
$studiengangbezeichnung_englisch = $studienordnung->__get('studiengangbezeichnung_englisch');
$studienordnung_id =$studienordnung->__get('studienordnung_id');
}
}
$studiengang_bezeichnung = empty($studiengangbezeichnung) ? $row->bezeichnung : $studiengangbezeichnung;
$studiengang_bezeichnung_englisch = empty($studiengangbezeichnung_englisch) ? $row->english : $studiengangbezeichnung_englisch;
echo ' <studiengang_bezeichnung_deutsch><![CDATA['.$studiengang_bezeichnung.']]></studiengang_bezeichnung_deutsch>';
echo ' <studiengang_bezeichnung_englisch><![CDATA['.$studiengang_bezeichnung_englisch.']]></studiengang_bezeichnung_englisch>';
echo '<studienordnung_id>'.$studienordnung_id.'</studienordnung_id>';
$prestudent = new prestudent();
$prestudent->getFirstStatus($row->prestudent_id, 'Student');
$semesterNumberStart = $prestudent->ausbildungssemester;
//ECTS-Punkte die bei Quereinsteigern angerechnet werden
if($semesterNumberStart>1)
{
$angerechneteECTS=($semesterNumberStart-1)*30; // 30 ECTS pro Semester
echo ' <angerechnete_ects_quereinstieg>'.$angerechneteECTS.'</angerechnete_ects_quereinstieg>';
$end_semester_anrechnung = $semesterNumberStart - 1;
echo ' <start_semester_anrechnung_number>1</start_semester_anrechnung_number>';
echo ' <end_semester_anrechnung_number>'. $end_semester_anrechnung .'</end_semester_anrechnung_number>';
}
echo ' <start_semester>'.substr($prestudent->studiensemester_kurzbz, 2, 6).'</start_semester>';
echo ' <start_semester_number>'.$prestudent->ausbildungssemester.'</start_semester_number>';
$prestudent->getLastStatus($row->prestudent_id, null);
$semesterNumberEnd = $prestudent->ausbildungssemester;
echo ' <end_semester>'.substr($prestudent->studiensemester_kurzbz,2,6).'</end_semester>';
echo ' <end_semester_number>'.$prestudent->ausbildungssemester.'</end_semester_number>';
switch ($row->typ)
{
case 'b':
$bezeichnung = 'Bachelor';
break;
case 'm':
$bezeichnung = 'Master';
break;
case 'd':
$bezeichnung = 'Diplom';
break;
default:
$bezeichnung = '';
break;
}
echo ' <studiengang_typ>'.$bezeichnung.'</studiengang_typ>';
$bez = $row->typ;
//Unterrichtssprache
$sprache_deutsch='';
$sprache_englisch='';
if($row->mischform=='t')
{
//Bei Mischformen, die LVs auf Orgform filtern
$prestudent = new prestudent();
$prestudent->getLastStatus($row->prestudent_id);
if($prestudent->orgform_kurzbz!='')
$orgform_kurzbz=$prestudent->orgform_kurzbz;
else
$orgform_kurzbz=$row->orgform_kurzbz;
$qry_sprache = "
SELECT
sprache
FROM
lehre.tbl_lehrveranstaltung
WHERE
studiengang_kz=".$db->db_add_param($row->studiengang_kz)."
AND aktiv
AND orgform_kurzbz=".$db->db_add_param($orgform_kurzbz)."
GROUP BY sprache
ORDER BY sprache DESC";
}
else
{
$qry_sprache = "
SELECT
sprache
FROM
lehre.tbl_lehrveranstaltung
WHERE
studiengang_kz=".$db->db_add_param($row->studiengang_kz)."
AND aktiv
GROUP BY sprache
ORDER BY sprache DESC";
}
if($result_sprache = $db->db_query($qry_sprache))
{
while($row_sprache = $db->db_fetch_object($result_sprache))
{
if($sprache_englisch!='')
$sprache_englisch.=', ';
if($sprache_deutsch!='')
$sprache_deutsch.=', ';
$sprache_englisch .= $row_sprache->sprache;
switch ($row_sprache->sprache)
{
case 'German': $sprache_deutsch .= 'Deutsch'; break;
case 'English': $sprache_deutsch .= 'Englisch'; break;
}
}
}
echo ' <sprache_deutsch>'.$sprache_deutsch.'</sprache_deutsch>';
echo ' <sprache_englisch>'.$sprache_englisch.'</sprache_englisch>';
//Wenn Lehrgang, kommen die max-semester nicht aus tbl_studiengang,
// sondern aus dem höchsten prestudent-status-semester
if($row->studiengang_kz<0)
{
$lastPrestudentSemester=new prestudent();
$lastPrestudentSemester->getLastStatus($row->prestudent_id,null,'Student');
$maxsemester=$lastPrestudentSemester->ausbildungssemester;
}
else
$maxsemester=$row->max_semester;
echo ' <semester>'.$maxsemester.'</semester>';
echo ' <jahre>'.($maxsemester/2.0).'</jahre>';
echo ' <ects>'.($maxsemester*30+$angerechnete_sws).'</ects>';
if($angerechnete_sws!=0)
echo ' <ects_angerechnet>('.$angerechnete_sws.' ECTS angerechnet/credited)</ects_angerechnet>';
else
echo ' <ects_angerechnet></ects_angerechnet>';
//OrgForm aus dem Status nehmen
$prestudent = new prestudent();
$prestudent->getLastStatus($row->prestudent_id);
if($prestudent->orgform_kurzbz!='')
$row->orgform_kurzbz=$prestudent->orgform_kurzbz;
$anforderungen_praxis = 'Das Studium beinhaltet ein facheinschlägiges Berufspraktikum.';
$anforderungen_praxiseng = 'Included in the program is a relevant work placement.';
switch($row->orgform_kurzbz)
{
case 'BB': echo ' <studienart>Berufsbegleitendes Studium / Part-time degree programm</studienart>';
break;
case 'VZ': echo ' <studienart>Vollzeitstudium / Full-time degree programm</studienart>';
break;
case 'DL': echo ' <studienart>Fernstudium / Distance Learning</studienart>';
break;
case 'DUA': // andere praxisanforderungen bei dualem Studium
echo ' <studienart>Duales Studium / Integrated work/study degree program</studienart>';
$anforderungen_praxis = 'Das Studium ist als duales Studium konzipiert und weist einen hohen Anteil an Praxisphasen in Partnerunternehmen auf, die inhaltlich und organisatorisch im Studienplan verankert sind und die systematische Verschränkung von Wissen und Anwendung fördern.';
$anforderungen_praxiseng = 'The program is designed as integrated work study program and has a high proportion of practical phases in partner companies, which are embedded in the curriculum in terms of content and organisation and promote the systematic interconnection of knowledge and utilisation.';
break;
default: echo ' <studienart></studienart>';
break;
}
//Anforderungen durch Lernergebnisse des Studiums ersetzen
$addon_obj = new addon();
$addonStgAktiv = $addon_obj->checkActiveAddon("studiengangsverwaltung");
if($addonStgAktiv)
{
require_once('../addons/studiengangsverwaltung/include/qualifikationsziel.class.php');
$qualifikationsziel = new qualifikationsziel();
$qualifikationsziel->getAll($studienordnung_id);
if (isset($qualifikationsziel->result[0]))
{
$qualifikation_beschreibung = $qualifikationsziel->result[0]->data[1]->elements[0];
$qualifikation_beschreibung = json2odt($qualifikation_beschreibung);
echo "<lernergebnisse><![CDATA[$qualifikation_beschreibung]]></lernergebnisse>";
}
}
if($row->typ=='d')
{
echo ' <niveau_code>UNESCO ISCED 7</niveau_code>';
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Allgemeine Universitätsreife (vgl. §4 Abs. 3 FHG idgF), Berufsreifeprüfung bzw. Studienberechtigungsprüfung oder einschlägige berufliche Qualifikation (Lehrabschluss bzw. Abschluss einer berufsbildenden mittleren Schule mit Zusatzprüfungen). Die Aufnahme erfolgt auf Basis eines Auswahlverfahrens (Werdegang, Eignungstest, Bewerbungsgespräch).]]></zulassungsvoraussetzungen_deutsch>';
echo ' <zulassungsvoraussetzungen_englisch><![CDATA[Austrian or equivalent foreign school leaving certificate (Reifeprüfung), university entrance examination certificate (Studienberechtigungsprüfung), certificate or equivalent relevant professional qualification (Berufsreifeprüfung) plus entrance examination equal to the university entrance examination. Admission is on the basis of a selection process (including entrance exam and interview, professional background is considered).]]></zulassungsvoraussetzungen_englisch>';
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß von jeweils 30 ECTS pro Semester gemäß dem vorgeschriebenen Studienplan. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. '.$anforderungen_praxis.' Im Rahmen des Studiums ist eine Diplomarbeit zu verfassen und eine abschließende Prüfung (Diplomprüfung) zu absolvieren. Der Studiengang (Kennzahl '.$studiengang_kz.') ist von der AQ Austria akkreditiert.]]></anforderungen_deutsch>';
echo ' <anforderungen_englisch><![CDATA[The program requires the positive completion of all courses (lectures, labs, seminars, project work, and integrated courses) to the extend of 30 ECTS per semester according to the curriculum. The program integrates technical, economical, management and personal study elements. '.$anforderungen_praxiseng.' The degree is awarded upon the successful completion of a diploma theses and the final examination. The program (classification number '.$studiengang_kz.') is accredited by AQ Austria.]]></anforderungen_englisch>';
echo ' <zugangsberechtigung_deutsch><![CDATA[Der Abschluss des Diplomstudiengangs berechtigt zu einem facheinschlägigen Doktoratsstudium, Magister- bzw. Master-Studium oder postgradualen Studium (mit eventuellen Zusatzprüfungen). Die Qualifikation entspricht einem Master of Science in Engineering, MSc.]]></zugangsberechtigung_deutsch>';
echo ' <zugangsberechtigung_englisch><![CDATA[The successful completion of the Diploma Degree Program qualifies the graduate to apply for admission to a relevant Doctoral Degree Program, Master Degree Program or postgraduate studies (additional qualifying exams may be required). The Diploma Degree Program is a graduate program, the qualification is equivalent to Master of Science in Engineering, MSc.]]></zugangsberechtigung_englisch>';
echo ' <niveau_deutsch>Diplomstudium (UNESCO ISCED 7)</niveau_deutsch>';
echo ' <niveau_englisch>Diploma degree program (UNESCO ISCED 7)</niveau_englisch>';
}
elseif($row->typ=='m')
{
echo ' <niveau_code>UNESCO ISCED 7</niveau_code>';
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Die fachliche Zugangsvoraussetzung (vgl. §4 Abs. 2 FHG idgF) zu einem FH-Masterstudiengang ist ein abgeschlossener facheinschlägiger FH-Bachelorstudiengang oder der Abschluss eines gleichwertigen Studiums an einer anerkannten inländischen oder ausländischen postsekundären Bildungseinrichtung. Die Aufnahme in den Studiengang erfolgt auf Basis eines Auswahlverfahrens.]]></zulassungsvoraussetzungen_deutsch>';
echo ' <zulassungsvoraussetzungen_englisch><![CDATA[ Admission to the master\'s degree program is granted on the basis of the successful completion of a relevant bachelor\'s degree program or a comparable Austrian or foreign post-secondary degree acknowledged to be its equivalent. Admission is on the basis of a selection process. ]]></zulassungsvoraussetzungen_englisch>';
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß von jeweils 30 ECTS pro Semester gemäß dem vorgeschriebenen Studienplan. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. Im Rahmen des Studiums ist eine Masterarbeit zu verfassen und eine abschließende Prüfung (Masterprüfung) zu absolvieren. Der Studiengang (Kennzahl '.$studiengang_kz.') ist von der AQ Austria akkreditiert.]]></anforderungen_deutsch>';
echo ' <anforderungen_englisch><![CDATA[The program requires the positive completion of all courses (lectures, labs, seminars, project work, and integrated courses) to the extend of 30 ECTS per semester according to the curriculum. The program integrates technical, economical, management and personal study elements. The degree is awarded upon the successful completion of a Master´s Thesis and the final examination. The program (classification number '.$studiengang_kz.') is accredited by AQ Austria.]]></anforderungen_englisch>';
echo ' <zugangsberechtigung_deutsch><![CDATA[Der Abschluss des Masterstudiengangs berechtigt zu einem facheinschlägigen Doktoratsstudium an einer Universität (mit eventuellen Zusatzprüfungen).]]></zugangsberechtigung_deutsch>';
echo ' <zugangsberechtigung_englisch><![CDATA[The successful completion of the Master Degree Program qualifies the graduate to apply for admission to a relevant Doctoral Degree Program at a University (additional qualifying exams may be required). ]]></zugangsberechtigung_englisch>';
echo ' <niveau_deutsch>Masterstudium: UNESCO ISCED 7; Zuordnung nationaler Qualifikationsrahmen 7</niveau_deutsch>';
echo ' <niveau_englisch>Master degree program: UNESCO ISCED 7; Classification national qualification framework 7</niveau_englisch>';
}
elseif($row->typ=='b')
{
echo ' <niveau_code>UNESCO ISCED 6</niveau_code>';
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Allgemeine Universitätsreife (vgl. §4 Abs. 3 FHG idgF), Berufsreifeprüfung bzw. Studienberechtigungsprüfung oder einschlägige berufliche Qualifikation (Lehrabschluss bzw. Abschluss einer berufsbildenden mittleren Schule mit Zusatzprüfungen). Die Aufnahme erfolgt auf Basis eines Auswahlverfahrens (Werdegang, Eignungstest, Bewerbungsgespräch).]]></zulassungsvoraussetzungen_deutsch>';
echo ' <zulassungsvoraussetzungen_englisch><![CDATA[Austrian or equivalent foreign school leaving certificate (Reifeprüfung), university entrance examination certificate (Studienberechtigungsprüfung), certificate or equivalent relevant professional qualification (Berufsreifeprüfung) plus entrance examination equal to the university entrance examination. Admission is on the basis of a selection process. (including entrance exam and interview, professional background is considered).]]></zulassungsvoraussetzungen_englisch>';
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß von jeweils 30 ECTS pro Semester gemäß dem vorgeschriebenen Studienplan. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. '.$anforderungen_praxis.' Im Rahmen des Studiums ist eine Bachelorarbeit zu verfassen und eine abschließende Prüfung (Bachelorprüfung) zu absolvieren. Der Studiengang (Kennzahl '.$studiengang_kz.') ist von der AQ Austria akkreditiert.]]></anforderungen_deutsch>';
echo ' <anforderungen_englisch><![CDATA[The program requires the positive completion of all courses (lectures, labs, seminars, project work, and integrated courses) to the extend of 30 ECTS per semester according to the curriculum. The program integrates technical, economical, management and personal study elements. '.$anforderungen_praxiseng.' The degree is awarded upon the successful completion of 1 bachelor theses and the final examination. The program (classification number '.$studiengang_kz.') is accredited by AQ Austria.]]></anforderungen_englisch>';
echo ' <zugangsberechtigung_deutsch><![CDATA[Der Abschluss des Bachelorstudiengangs berechtigt zu einem facheinschlägigen Magister- bzw. Master-Studium an einer fachhochschulischen Einrichtung oder Universität (mit eventuellen Zusatzprüfungen).]]></zugangsberechtigung_deutsch>';
echo ' <zugangsberechtigung_englisch><![CDATA[The successful completion of the Bachelor Degree Program qualifies the graduate to apply for admission to a relevant Master Degree Program at a University of Applied Sciences or a University (additional qualifying exams may be required).]]></zugangsberechtigung_englisch>';
echo ' <niveau_deutsch>Bachelorstudium: UNESCO ISCED 6; Zuordnung nationaler Qualifikationsrahmen 6</niveau_deutsch>';
echo ' <niveau_englisch>Bachelor degree program: UNESCO ISCED 6; Classification national qualification framework 6</niveau_englisch>';
}
elseif($row->typ=='r')
{
echo ' <niveau_code>UNESCO ISCED 8</niveau_code>';
echo ' <niveau_deutsch>Doktoratsstudium (UNESCO ISCED 8)</niveau_deutsch>';
echo ' <niveau_englisch>University doctoral studies (UNESCO ISCED 8)</niveau_englisch>';
}
elseif($row->typ=='l' || $row->typ=='k' || $row->typ=='e')
{
echo ' <niveau_code>UNESCO ISCED 7</niveau_code>';
echo ' <niveau_deutsch>Lehrgang zur Weiterbildung nach §9 FHG idgF.</niveau_deutsch>';
echo ' <niveau_englisch>Certificate Program for Further Education subjected to § 9 FHG</niveau_englisch>';
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Facheinschlägiger Studienabschluss oder einschlägige Berufserfahrung]]></zulassungsvoraussetzungen_deutsch>';
echo ' <zulassungsvoraussetzungen_englisch><![CDATA[Appropriate university degree or appropriate work experience]]></zulassungsvoraussetzungen_englisch>';
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß der laut Studienplan vorgeschriebenen ECTS. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. Im Rahmen des Master-Lehrgangs ist eine Master Thesis zu verfassen und eine abschließende Prüfung (Masterprüfung) zu absolvieren. Der Lehrgang ist vom Kollegium der FH Technikum Wien genehmigt und der AQ Austria (Kennzahl '.$studiengang_kz.') gemeldet.]]></anforderungen_deutsch>';
echo ' <anforderungen_englisch><![CDATA[The program requires the positive completion of all courses (lectures, labs, seminars, project work, and integrated courses) to the ECTS according to the curriculum. The program integrates technical, economical, management and personal study elements. The degree for the Master Course is awarded upon the successful completion of a Master´s Thesis and the final examination. The program is accredited by the Council of the University of Applied Sciences Technikum Wien and reported to AQ Austria (classification number '.$studiengang_kz.')]]></anforderungen_englisch>';
}
$akadgrad_id='';
$qry = "SELECT
bezeichnung, akadgrad_id, bezeichnung_english
FROM
lehre.tbl_abschlusspruefung
LEFT JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz)
WHERE
student_uid=".$db->db_add_param($uid_arr[$i])."
ORDER BY datum DESC LIMIT 1";
if($db->db_query($qry))
{
if($row1 = $db->db_fetch_object())
{
$akadgrad_id = $row1->akadgrad_id;
}
echo " <beurteilung>In diesem Curriculum nicht zutreffend.</beurteilung>";
echo " <beurteilung_english>Not applicable within this curriculum.</beurteilung_english>";
}
echo " <zugangsber_reglementierte_berufe>Zugang zu reglementierten Berufen nach Maßgabe der berufsrechtlichen Vorschriften; Diplom im Sinne des Art.11 lit.c/d/e der Richtlinie 2005/36/EG über die Anerkennung von Berufsqualifikationen</zugangsber_reglementierte_berufe>";
echo " <zugangsber_reglementierte_berufe_englisch>Access to regulated professions according to professional regulations; diploma in the sense of Art.11 lit.(c)/(d)/(e) of directive 2005/36/EG</zugangsber_reglementierte_berufe_englisch>";
$qry = "SELECT * FROM lehre.tbl_akadgrad WHERE akadgrad_id=".$db->db_add_param($akadgrad_id);
$titel_de = '';
$titel_en = '';
$titel_kurzbz = '';
if($akadgrad_id!='')
{
if($db->db_query($qry))
{
if($row_titel = $db->db_fetch_object())
{
$titel_de = $row_titel->titel.($row_titel->akadgrad_kurzbz!=''?', ('.$row_titel->akadgrad_kurzbz.')':'');
$titel_en = $row_titel->titel.($row_titel->akadgrad_kurzbz!=''?', ('.$row_titel->akadgrad_kurzbz.')':'');
}
}
}
echo ' <titel_de>'.$titel_de.'</titel_de>';
echo ' <titel_en>'.$titel_en.'</titel_en>';
$praktikum = false;
$auslandssemester = false;
$internationalskills = false;
$qry = "SELECT
projektarbeit_id
FROM
lehre.tbl_projektarbeit
WHERE
student_uid=".$db->db_add_param($uid_arr[$i])."
AND (projekttyp_kurzbz='Praxis' OR projekttyp_kurzbz='Praktikum')";
if($db->db_query($qry))
{
if($row1 = $db->db_fetch_object())
{
echo " <praktikum>Berufspraktikum/Internship: absolviert/completed</praktikum>";
$praktikum = true;
}
}
if ($row->typ === 'b')
{
//check if extension international skills is active
$qry = "SELECT 1
FROM information_schema.tables
WHERE table_schema = 'extension' AND table_name = 'tbl_internat_massnahme'";
if($result = $db->db_query($qry))
{
if ($db->db_num_rows($result) === 1)
{
$qry = "SELECT bezeichnung_mehrsprachig[1] as \"internationalskill_deutsch\",
bezeichnung_mehrsprachig[2] as \"internationalskill_english\"
FROM extension.tbl_internat_massnahme_zuordnung zuordnung
JOIN extension.tbl_internat_massnahme massnahme ON zuordnung.massnahme_id = massnahme.massnahme_id
JOIN extension.tbl_internat_massnahme_zuordnung_status zstatus ON zuordnung.massnahme_zuordnung_id = zstatus.massnahme_zuordnung_id
JOIN tbl_prestudent ON zuordnung.prestudent_id = tbl_prestudent.prestudent_id
JOIN tbl_student ON tbl_prestudent.prestudent_id = tbl_student.prestudent_id
WHERE zstatus.massnahme_status_kurzbz = 'confirmed'
AND tbl_student.student_uid = ".$db->db_add_param($uid_arr[$i])."
AND zstatus.massnahme_zuordnung_status_id = (
SELECT MAX(sub_zstatus.massnahme_zuordnung_status_id)
FROM extension.tbl_internat_massnahme_zuordnung_status sub_zstatus
WHERE sub_zstatus.massnahme_zuordnung_id = zuordnung.massnahme_zuordnung_id
)
GROUP BY zuordnung.massnahme_zuordnung_id, tbl_student.student_uid, tbl_prestudent.prestudent_id, tbl_prestudent.studiengang_kz, bezeichnung_mehrsprachig;";
if($db->db_query($qry))
{
if($db->db_num_rows() > 0)
{
$internationalskills = true;
echo "<internationalskills>";
while($row1 = $db->db_fetch_object())
{
echo "<internationalskillsdeutsch>";
echo "<internationalskilldeutsch><![CDATA[$row1->internationalskill_deutsch]]></internationalskilldeutsch>";
echo "</internationalskillsdeutsch>";
echo "<internationalskillsenglisch>";
echo "<internationalskillenglish><![CDATA[$row1->internationalskill_english]]></internationalskillenglish>";
echo "</internationalskillsenglisch>";
}
echo "</internationalskills>";
}
}
}
}
}
$qry = "SELECT tbl_bisio.bisio_id, von, bis, lehreinheit_id,
(SELECT STRING_AGG (
tbl_zweck.bezeichnung,
', '
ORDER BY tbl_zweck.zweck_code
) FROM bis.tbl_bisio_zweck
JOIN bis.tbl_zweck USING(zweck_code)
WHERE tbl_bisio_zweck.bisio_id = tbl_bisio.bisio_id
) zweck, ort, universitaet
FROM bis.tbl_bisio
WHERE student_uid=".$db->db_add_param($uid_arr[$i]);
if($db->db_query($qry))
{
if($db->db_num_rows()>0)
{
echo "<auslandssemester>";
while($row1 = $db->db_fetch_object())
{
echo "<auslandssemesters>";
echo "<von>".$datum->convertISODate($row1->von)."</von>";
echo "<bis>".$datum->convertISODate($row1->bis)."</bis>";
echo "<zweck>$row1->zweck</zweck>";
echo "<ort>$row1->ort</ort>";
echo "<universitaet><![CDATA[$row1->universitaet]]></universitaet>";
echo "</auslandssemesters>";
}
echo "</auslandssemester>";
$auslandssemester=true;
}
}
$stg_oe_obj = new studiengang($row->studiengang_kz);
$stgleiter = $stg_oe_obj->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);
}
echo " <stgl>$stgl</stgl>";
$abschlussbeurteilung='';
// Hole Datum der Sponsion -> wenn keine vorhanden nimm aktuelles datum
$qry = "SELECT
sponsion, tbl_abschlussbeurteilung.bezeichnung_english, datum, pruefungstyp_kurzbz, bezeichnung
FROM
lehre.tbl_abschlusspruefung
JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz)
WHERE
student_uid=".$db->db_add_param($uid_arr[$i])."
ORDER BY datum DESC LIMIT 1";
$sponsion_datum = date('d.m.Y');
$abschlusspruefungsdatum = '';
$abschlussbeurteilung='';
$pruefungstyp_kurzbz='';
$abschlussbeurteilung_deutsch = '';
if($db->db_query($qry))
{
if($row1= $db->db_fetch_object())
{
$sponsion_datum = $datum->formatDatum($row1->sponsion, 'd.m.Y');
$abschlusspruefungsdatum = $datum->formatDatum($row1->datum, 'd.m.Y');
$abschlussbeurteilung = $row1->bezeichnung_english;
$abschlussbeurteilung_deutsch = $row1->bezeichnung;
$pruefungstyp_kurzbz = $row1->pruefungstyp_kurzbz;
}
}
echo " <pruefungstyp_kurzbz>$pruefungstyp_kurzbz</pruefungstyp_kurzbz>";
echo " <abschlussbeurteilung>$abschlussbeurteilung</abschlussbeurteilung>";
echo " <abschlussbeurteilung_deutsch>$abschlussbeurteilung_deutsch</abschlussbeurteilung_deutsch>";
echo " <abschlusspruefungsdatum>$abschlusspruefungsdatum</abschlusspruefungsdatum>";
echo " <sponsion_datum>$sponsion_datum</sponsion_datum>";
$qry = "SELECT telefonklappe FROM public.tbl_mitarbeiter JOIN tbl_benutzerfunktion ON(uid=mitarbeiter_uid)
WHERE funktion_kurzbz='ass' AND oe_kurzbz=".$db->db_add_param($stg_oe_obj->oe_kurzbz);
if($db->db_query($qry))
{
if($row1 = $db->db_fetch_object())
{
echo " <telefonklappe>$row1->telefonklappe</telefonklappe>";
}
}
echo ' <datum>'.date('d.m.Y').'</datum>';
/*
* 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 (".$db->db_add_param($lastStatusSemester).",".$db->db_add_param($studiensemesterPrev).")
AND studiengang_kz = ".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)."
)
AND studiensemester_kurzbz IN (".$db->db_add_param($lastStatusSemester).",".$db->db_add_param($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];
// Division durch 0 verhindern
if($noten_anzahl==0)
$noten_anzahl=1;
// Noten: 1-5, angerechnet, nicht beurteilt, erfolgreich absolviert anzeigen
echo " <gradeLastYear1>".sprintf("%01.1f",($noteArrayPrev[1]/$noten_anzahl*100))."</gradeLastYear1>";
echo " <gradeLastYear2>".sprintf("%01.1f",($noteArrayPrev[2]/$noten_anzahl*100))."</gradeLastYear2>";
echo " <gradeLastYear3>".sprintf("%01.1f",($noteArrayPrev[3]/$noten_anzahl*100))."</gradeLastYear3>";
echo " <gradeLastYear4>".sprintf("%01.1f",($noteArrayPrev[4]/$noten_anzahl*100))."</gradeLastYear4>";
echo " <gradeLastYear5>".sprintf("%01.1f",($noteArrayPrev[5]/$noten_anzahl*100))."</gradeLastYear5>";
echo " <gradeLastYearAr>".sprintf("%01.1f",($noteArrayPrev[6]/$noten_anzahl*100))."</gradeLastYearAr>";
echo " <gradeLastYearNb>".sprintf("%01.1f",($noteArrayPrev[7]/$noten_anzahl*100))."</gradeLastYearNb>";
echo " <gradeLastYearEa>".sprintf("%01.1f",($noteArrayPrev[12]/$noten_anzahl*100))."</gradeLastYearEa>";
// 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 (".$db->db_add_param($lastStatusSemester).",".$db->db_add_param($studiensemesterPrev).")
AND studiengang_kz = ".$db->db_add_param($row->studiengang_kz, FHC_INTEGER).")
AND studiensemester_kurzbz IN (".$db->db_add_param($lastStatusSemester).",".$db->db_add_param($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];
// Division durch 0 verhindern
if($noten_anzahl==0)
$noten_anzahl=1;
// Noten: 1-5, angerechnet, nicht beurteilt, erfolgreich absolviert anzeigen
echo " <gradePrevLastYear1>".sprintf("%01.1f",($noteArrayPrev[1]/$noten_anzahl*100))."</gradePrevLastYear1>";
echo " <gradePrevLastYear2>".sprintf("%01.1f",($noteArrayPrev[2]/$noten_anzahl*100))."</gradePrevLastYear2>";
echo " <gradePrevLastYear3>".sprintf("%01.1f",($noteArrayPrev[3]/$noten_anzahl*100))."</gradePrevLastYear3>";
echo " <gradePrevLastYear4>".sprintf("%01.1f",($noteArrayPrev[4]/$noten_anzahl*100))."</gradePrevLastYear4>";
echo " <gradePrevLastYear5>".sprintf("%01.1f",($noteArrayPrev[5]/$noten_anzahl*100))."</gradePrevLastYear5>";
echo " <gradePrevLastYearAr>".sprintf("%01.1f",($noteArrayPrev[6]/$noten_anzahl*100))."</gradePrevLastYearAr>";
echo " <gradePrevLastYearNb>".sprintf("%01.1f",($noteArrayPrev[7]/$noten_anzahl*100))."</gradePrevLastYearNb>";
echo " <gradePrevLastYearEa>".sprintf("%01.1f",($noteArrayPrev[12]/$noten_anzahl*100))."</gradePrevLastYearEa>";
$ects_total = 0;
$ects_total_positiv = 0;
//Anrechnung Quereinsteiger
echo ' <anrechnungen>';
//Version Studienordnung
if($semesterNumberStart>1)
{
$maxSemester = $semesterNumberStart;
$summe_ects_orgform = 0;
$summe_sws_orgform = 0;
for($j = 1; $j <$maxSemester; $j++)
{
$summe_ects_semester = 0;
$summe_sws_semester = 0;
echo ' <stosemester>';
echo ' <stosemester_nr><![CDATA['.$j.']]></stosemester_nr>';
$lv = new lehrveranstaltung();
$lv->loadLehrveranstaltungStudienplan($studienplan_id, $j);
$tree = $lv->getLehrveranstaltungTree();
printLehrveranstaltungTree($tree);
//if ($lv->lehrtyp_kurzbz!='modul')
// $summe += $lv->ects;
echo ' <lv_summe_ects_semester><![CDATA['.$summe_ects_semester.']]></lv_summe_ects_semester>';
echo ' <lv_summe_sws_semester><![CDATA['.round($summe_sws_semester, 2).']]></lv_summe_sws_semester>';
$summe_ects_orgform += $summe_ects_semester;
$summe_sws_orgform += $summe_sws_semester;
echo '</stosemester>';
}
}
echo ' </anrechnungen>';
echo "<studiensemester>";
for($start = $semesterNumberStart; $start <= $semesterNumberEnd; $start++)
{
$semester_ects = 0;
$semester_ects_positiv = 0;
echo "<semesters>";
// alle semester für das ausbildungssemester holen
// Semester wo Unterbrecher nicht holen
$qry_semester="
SELECT
distinct(status.studiensemester_kurzbz), datum
FROM
lehre.tbl_zeugnisnote zeugnis
JOIN lehre.tbl_note note USING(note)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN public.tbl_student student USING(student_uid)
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
WHERE
student_uid = ".$db->db_add_param($uid_arr[$i])."
AND zeugnis = true
AND status.ausbildungssemester = ".$db->db_add_param($start)."
AND status.status_kurzbz NOT IN('Unterbrecher', 'Interessent','Bewerber','Aufgenommener','Abgewiesener','Wartender')
ORDER BY datum ASC";
$semester_kurzbz = array();
if($result_semester = $db->db_query($qry_semester))
{
while($row_semester = $db->db_fetch_object($result_semester))
{
$semester_kurzbz[] = $row_semester->studiensemester_kurzbz;
}
}
// Array der Semester
$aktuellesSemester = $semester_kurzbz;
$semester = mb_substr($semester_kurzbz[0], 0, 2);
$year = mb_substr($semester_kurzbz[0], 2, 4);
if($semester == 'SS')
$semester_kurzbz = 'Summer Semester '.$year;
elseif($semester == 'WS')
{
$helpyear = mb_substr($year, 2, 2);
$helpyear +=1;
$helpyear = sprintf("%02d", $helpyear);
$semester_kurzbz = 'Winter Semester '.$year.'/'.$helpyear;
}
$sqlStudent = new student();
echo " <semesterKurzbz>Semester $start</semesterKurzbz>";
// alle lvs im semester holen
// Ohne LVs an denen ein Auslandssemester haengt. Diese werden spaeter separat geholt
$qry ="
SELECT
distinct(tbl_lehrveranstaltung.lehrveranstaltung_id),
tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.kurzbz,
tbl_lehrveranstaltung.bezeichnung, COALESCE(tbl_lehrveranstaltung.bezeichnung_english,
tbl_lehrveranstaltung.bezeichnung) as bezeichnung_english, tbl_lehrveranstaltung.semester,
tbl_lehrveranstaltung.semesterstunden, tbl_lehrveranstaltung.ects, zeugnis.studiensemester_kurzbz,
zeugnis.note, note.bezeichnung note_bezeichnung, note.anmerkung, note.offiziell, note.positiv, sort, tbl_lehrveranstaltung.sws
FROM
lehre.tbl_zeugnisnote zeugnis
JOIN lehre.tbl_note note USING(note)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
student_uid = ".$db->db_add_param($uid_arr[$i])."
AND zeugnis = true
AND studiensemester_kurzbz in (".$sqlStudent->implode4SQL($aktuellesSemester).")";
if (defined('ZEUGNISNOTE_NICHT_ANZEIGEN'))
{
$qry .="
AND note.anmerkung NOT IN (".$sqlStudent->implode4SQL(unserialize(ZEUGNISNOTE_NICHT_ANZEIGEN)).")
";
};
$qry .= "
AND NOT EXISTS(SELECT 1 FROM bis.tbl_bisio JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
AND student_uid=".$db->db_add_param($uid_arr[$i])."
AND tbl_lehreinheit.studiensemester_kurzbz in(".$sqlStudent->implode4SQL($aktuellesSemester)."))
ORDER BY sort, tbl_lehrveranstaltung.bezeichnung;";
$arrayLvAusbildungssemester= array();
$j = 0;
$wochen = 15;
if($result_stud = $db->db_query($qry))
{
while($row_stud = $db->db_fetch_object($result_stud))
{
// wenn es lv noch nicht gibt dann hinzufügen
if(!isset($arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]))
{
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['lehrveranstaltung_id'] = $row_stud->lehrveranstaltung_id;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['studiengang_kz'] = $row_stud->studiengang_kz;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['kurzbz'] = $row_stud->kurzbz;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['bezeichnung'] = $row_stud->bezeichnung;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['bezeichnung_english'] = $row_stud->bezeichnung_english;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['semester'] = $row_stud->semester;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['semesterstunden'] = $row_stud->semesterstunden;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['ects'] = $row_stud->ects;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['sws_lv'] = $row_stud->sws;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['studiensemester_kurzbz'] = $row_stud->studiensemester_kurzbz;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['note'] = $db->db_parse_bool($row_stud->offiziell) ? $row_stud->anmerkung : "";
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['note_positiv'] = $db->db_parse_bool($row_stud->positiv);
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['sort'] = $row_stud->sort;
$ects_total += $row_stud->ects;
$semester_ects +=$row_stud->ects;
if ($arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['note_positiv'] === true)
{
$ects_total_positiv += $row_stud->ects;
$semester_ects_positiv += $row_stud->ects;
}
}
else
{
$note_alt = $arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['note'];
$note_alt_positiv = $arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['note_positiv'];
$note_neu = $row_stud->anmerkung;
// alte oder neue note besser
if(checkNote($note_alt, $note_neu))
{
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['lehrveranstaltung_id'] = $row_stud->lehrveranstaltung_id;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['studiengang_kz'] = $row_stud->studiengang_kz;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['kurzbz'] = $row_stud->kurzbz;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['bezeichnung'] = $row_stud->bezeichnung;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['bezeichnung_english'] = $row_stud->bezeichnung_english;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['semester'] = $row_stud->semester;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['semesterstunden'] = $row_stud->semesterstunden;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['ects'] = $row_stud->ects;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['sws_lv'] = $row_stud->sws;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['studiensemester_kurzbz'] = $row_stud->studiensemester_kurzbz;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['note'] = $db->db_parse_bool($row_stud->offiziell) ? $row_stud->anmerkung : "";
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['note_positiv'] = $db->db_parse_bool($row_stud->positiv);
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['sort'] = $row_stud->sort;
// ects dazuzählen wenn alte Note negativ, neue positiv
if ($arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['note_positiv'] === true && $note_alt_positiv !== true)
{
$ects_total_positiv += $row_stud->ects;
$semester_ects_positiv += $row_stud->ects;
}
}
}
$test = false;
$qry_sws = "
SELECT
wochen
FROM
public.tbl_semesterwochen
WHERE
studiengang_kz = ".$db->db_add_param($row_stud->studiengang_kz)."
AND semester = ".$db->db_add_param($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;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['sws']= $ssp;
$qry_lehrform = "
SELECT
distinct(lehrform_kurzbz)
FROM
lehre.tbl_lehrveranstaltung
WHERE
lehrveranstaltung_id = ".$db->db_add_param($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++;
}
}
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['lehrform_kurzbz']= $lehrform_kurzbz;
// hole benotungsdatum von aktueller LV
$qry_benotung = "
SELECT
benotungsdatum
FROM
lehre.tbl_zeugnisnote
WHERE
lehrveranstaltung_id = ".$db->db_add_param($row_stud->lehrveranstaltung_id)."
AND studiensemester_kurzbz = ".$db->db_add_param($row_stud->studiensemester_kurzbz)."
AND student_uid = ".$db->db_add_param($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');
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['benotungsdatum']= $benotungsdatum;
$bezeichnung_englisch = $row_stud->bezeichnung_english;
$bezeichnung = $row_stud->bezeichnung;
// Check ob Lehrveranstaltung ein Praktikum mit eingetragener Firma besitzt
$qry = "
SELECT
tbl_firma.name, lehrveranstaltung_id, firma_id
FROM
lehre.tbl_projektarbeit
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN public.tbl_firma USING(firma_id)
WHERE
student_uid=".$db->db_add_param($uid_arr[$i])."
AND projekttyp_kurzbz in('Praktikum', 'Praxis')
AND tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($row_stud->lehrveranstaltung_id)."
ORDER BY beginn ASC, projektarbeit_id ASC;";
if($result_praktikum = $db->db_query($qry))
{
if($row_praktikum = $db->db_fetch_object($result_praktikum))
{
$bezeichnung.= ' absolviert in: '.$row_praktikum->name;
$bezeichnung_englisch .= ' at: '.$row_praktikum->name;
}
}
// Check ob an Lehrveranstaltung eine Thesis hängt
// Aber kein Auslandssemester war, sonst wirds spaeter hinzugefügt
$qry = "
SELECT
lehrveranstaltung_id, titel, themenbereich, note, titel_english
FROM
lehre.tbl_projektarbeit
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
student_uid=".$db->db_add_param($uid_arr[$i])."
AND projekttyp_kurzbz in('Bachelor', 'Diplom')
AND lehrveranstaltung_id=".$db->db_add_param($row_stud->lehrveranstaltung_id)."
AND NOT EXISTS(SELECT 1
FROM bis.tbl_bisio
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE lehrveranstaltung_id=".$db->db_add_param($row_stud->lehrveranstaltung_id)."
AND student_uid=".$db->db_add_param($uid_arr[$i]).")
ORDER BY beginn DESC, projektarbeit_id DESC LIMIT 1;";
if($result_thesis = $db->db_query($qry))
{
while($row_thesis = $db->db_fetch_object($result_thesis))
{
$bezeichnung.= ": \"".$row_thesis->titel."\"";
$bezeichnung_englisch.= ": \"".$row_thesis->titel."\"";
}
}
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['bezeichnung']= $bezeichnung;
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['bezeichnung_englisch']=$bezeichnung_englisch;
$note_eintragen = new note();
$note_eintragen->load($row_stud->note);
$test = false;
}
}
foreach($arrayLvAusbildungssemester as $lv_test)
{
$sws = number_format(sprintf('%.1F',$lv_test['sws']),2);
$sws_lv = number_format(sprintf('%.1F',$lv_test['sws_lv']),2);
if($sws == '0.0')
$sws = '';
if($sws_lv == '0.0')
$sws_lv = '';
echo '<lv>
<lehrform_kurzbz>'.$lv_test['lehrform_kurzbz'].'</lehrform_kurzbz>
<benotungsdatum>'.$lv_test['benotungsdatum'].'</benotungsdatum>
<sws>'.$sws.'</sws>
<sws_lv>'.$sws_lv.'</sws_lv>
<semester>'.$lv_test['semester'].'</semester>
<kurzbz>'.$lv_test['kurzbz'].'</kurzbz>
<stsem>'.$lv_test['studiensemester_kurzbz'].'</stsem>
<bezeichnung><![CDATA['.$lv_test['bezeichnung'].']]></bezeichnung>
<bezeichnung_englisch><![CDATA['.$lv_test['bezeichnung_englisch'].']]></bezeichnung_englisch>
<ects>'.$lv_test['ects'].'</ects>
<semesterstunden>'.$lv_test['semesterstunden'].'</semesterstunden>
<note>'.$lv_test['note'].'</note>
<note_positiv>'.$lv_test['note_positiv'].'</note_positiv>
<lv_id>'.$lv_test['lehrveranstaltung_id'].'</lv_id>
</lv>';
}
// Ist er Outgoing in diesem semester
$qry_outgoing = "
SELECT
studiensemester_kurzbz, ort, ects, semesterstunden, von, bis,
universitaet, lehrveranstaltung_id, tbl_lehrveranstaltung.sws,
(SELECT titel_english FROM lehre.tbl_projektarbeit
WHERE lehreinheit_id=tbl_bisio.lehreinheit_id
AND student_uid = ".$db->db_add_param($uid_arr[$i])." limit 1) as projektarbeitstitel
FROM
bis.tbl_bisio
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
student_uid = ".$db->db_add_param($uid_arr[$i]);
if($result_outgoing = $db->db_query($qry_outgoing))
{
if($row_outgoing = $db->db_fetch_object($result_outgoing))
{
// Outgoing eintrag ist vorhanden
if(in_array($row_outgoing->studiensemester_kurzbz, $aktuellesSemester))
{
$note_outgoing = 'ar';
$benotungsdatum_outgoing = '';
$lehrform_kurzbz_outgoing = '';
$qry_outgoing_note = "
SELECT
tbl_note.anmerkung, tbl_note.offiziell,
tbl_note.positiv, tbl_zeugnisnote.benotungsdatum,
tbl_lehrveranstaltung.lehrform_kurzbz
FROM
lehre.tbl_zeugnisnote
JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id)
JOIN lehre.tbl_note using(note)
WHERE
lehrveranstaltung_id = ".$db->db_add_param($row_outgoing->lehrveranstaltung_id)."
AND student_uid = ".$db->db_add_param($uid_arr[$i]);
if (defined('ZEUGNISNOTE_NICHT_ANZEIGEN'))
{
$qry_outgoing_note .= "
AND tbl_note.anmerkung NOT IN (".$db->implode4SQL(unserialize(ZEUGNISNOTE_NICHT_ANZEIGEN)).")
";
};
if($result_outgoing_note = $db->db_query($qry_outgoing_note))
{
if($row_outgoing_note = $db->db_fetch_object($result_outgoing_note))
{
$note_outgoing = $db->db_parse_bool($row_outgoing_note->offiziell) ? $row_outgoing_note->anmerkung : "";
$note_positiv_outgoing = $db->db_parse_bool($row_outgoing_note->positiv);
$benotungsdatum_outgoing = $datum->formatDatum($row_outgoing_note->benotungsdatum,'d/m/Y');
$lehrform_kurzbz_outgoing = $row_outgoing_note->lehrform_kurzbz;
}
}
$datum = new datum();
$datum_von = $datum->formatDatum($row_outgoing->von, 'Y.m.d');
$datum_bis = $datum->formatDatum($row_outgoing->bis, 'Y.m.d');
$auslandssemester_start = 'th'; //Zur englischen Nummerierung der Semester (1st, 2nd, 3rd, 4th, ...)
$sws = number_format(sprintf('%.1F',($row_outgoing->semesterstunden/$wochen)),2);
if($sws == '0.0')
$sws = '';
$sws_lv = number_format(sprintf('%.1F',($row_outgoing->sws)),2);
if($sws_lv == '0.0')
$sws_lv = '';
switch ($start)
{
case '1':
$auslandssemester_start = 'st';
break;
case '2':
$auslandssemester_start = 'nd';
break;
case '3':
$auslandssemester_start = 'rd';
break;
default:
$auslandssemester_start = 'th';
break;
}
if($row_outgoing->projektarbeitstitel != '')
{
$projektarbeitszusatz = 'Thesis: "'.$row_outgoing->projektarbeitstitel.'"';
}
else
$projektarbeitszusatz = '';
echo '<lv>
<lehrform_kurzbz></lehrform_kurzbz>
<benotungsdatum>'.$benotungsdatum_outgoing.'</benotungsdatum>
<sws>'.$sws.'</sws>
<sws_lv>'.$sws_lv.'</sws_lv>
<semester></semester>
<kurzbz>'.$lehrform_kurzbz_outgoing.'</kurzbz>
<stsem></stsem>
<bezeichnung><![CDATA[]]></bezeichnung>
<bezeichnung_englisch><![CDATA[International Semester Abroad: '.$datum_von.'-'.$datum_bis.', at '.$row_outgoing->ort.', '.$row_outgoing->universitaet.'. All credits earned during the International Semester Abroad (ISA) are fully credited for the '.$start.$auslandssemester_start.' semester at the UAS Technikum Wien. '.$projektarbeitszusatz.']]></bezeichnung_englisch>
<ects>'.$row_outgoing->ects.'</ects>
<semesterstunden>'.$row_outgoing->semesterstunden.'</semesterstunden>
<note>'.$note_outgoing.'</note>
<note_positiv>'.$note_positiv_outgoing.'</note_positiv>
<lv_id></lv_id>
</lv>';
$ects_total +=$row_outgoing->ects;
$semester_ects+=$row_outgoing->ects;
if ($note_positiv_outgoing === true)
{
$ects_total_positiv += $row_outgoing->ects;
$semester_ects_positiv += $row_outgoing->ects;
}
}
}
}
echo '<ects_gesamt>'.$semester_ects.'</ects_gesamt>';
echo '<ects_gesamt_positiv>'.$semester_ects_positiv.'</ects_gesamt_positiv>';
echo "</semesters>";
}
echo "</studiensemester>";
echo " <ects_total>$ects_total</ects_total>";
echo " <ects_total_positiv>$ects_total_positiv</ects_total_positiv>";
echo ' </supplement>';
}
}
echo "</supplements>";
// die beiden noten werden verglichen und die mit höherer priorität(niedrigerer index) wird genommen
// return true wenn neue note genommen werden soll
function checkNote($note_alt, $note_neu)
{
$priority_neu = 9999;
$priority_alt = 9999;
$arrayNotenPriority = array(
'0' => '1',
'1' => '2',
'2' => '3',
'3' => '4',
'4' => 'ea',
'5' => 'tg',
'6' => 'met',
'7' => 'b',
'8' => 'ar',
'9' => 'nb',
'10' => '5',
'11' => 'nea');
for($i = 0; $i<=11; $i++)
{
if($note_alt == $arrayNotenPriority[$i])
$priority_alt = $i;
if($note_neu == $arrayNotenPriority[$i])
$priority_neu = $i;
}
if($priority_neu <= $priority_alt)
return true;
else
return false;
}
//Funktionen für Andruck Studienordnung
function cmp($a, $b)
{
return strcmp($a->bezeichnung, $b->bezeichnung);
}
//newline \n durch string '\n' ersetzen (für Qualifikationsziele)
function json2odt($str)
{
$str = str_replace(array("\r\n", "\r", "\n"), '\n', $str);
return $str;
}
function printLehrveranstaltungTree($tree)
{
global $summe_ects_semester, $summe_sws_semester;
usort($tree, "cmp");
foreach($tree as $lv)
{
if ($lv->export)
{
$db = new basis_db();
$lv_alvs = new lehrveranstaltung();
if(!$alvs = $lv_alvs->getALVS($lv->lehrveranstaltung_id, $lv->semester))
$alvs = '';
//Semesterwochen zum berechnen der SWS ermitteln
$qry = ' SELECT
wochen
FROM
public.tbl_semesterwochen
WHERE
studiengang_kz='.$lv->studiengang_kz.'
AND
semester='.$lv->semester;
if($wochen_stg = $db->db_query($qry))
{
if($db->db_num_rows($wochen_stg)==1)
{
$row_wochen = $db->db_fetch_object($wochen_stg);
$wochen = $row_wochen->wochen;
}
else
$wochen = '15';
}
if ($lv->semesterstunden!='')
$sws = ($lv->semesterstunden / $wochen);
else
$sws = 0;
//Bezeichnung der Lehrform
$lehrform_kurzbz = new lehrform();
$lehrform_kurzbz->load($lv->lehrform_kurzbz);
//Klasse "sprache" instanzieren, um anschließend die Sprache(e.g. "German") in der richtigen Sprache zu bekommen("Deutsch")
$sp = new sprache();
echo ' <lehrveranstaltung>';
echo ' <lv_semester><![CDATA['.$lv->semester.']]></lv_semester>';
echo ' <lv_lehrtyp_kurzbz><![CDATA['.$lv->lehrtyp_kurzbz.']]></lv_lehrtyp_kurzbz>';
echo ' <lv_bezeichnung><![CDATA['.$lv->bezeichnung.']]></lv_bezeichnung>';
echo ' <lv_bezeichnung_en><![CDATA['.$lv->bezeichnung_english.']]></lv_bezeichnung_en>';
echo ' <lv_kurzbz><![CDATA['.$lv->kurzbz.']]></lv_kurzbz>';
echo ' <lv_lehrform_kurzbz><![CDATA['.$lv->lehrform_kurzbz.']]></lv_lehrform_kurzbz>';
echo ' <lv_lehrform_langbz><![CDATA['.$lehrform_kurzbz->bezeichnung.']]></lv_lehrform_langbz>';
echo ' <lv_gruppen><![CDATA[]]></lv_gruppen>';
echo ' <lv_ects><![CDATA['.$lv->ects.']]></lv_ects>';
echo ' <lv_semesterstunden><![CDATA['.$lv->semesterstunden.']]></lv_semesterstunden>';
echo ' <lv_sws><![CDATA['.$lv->sws.']]></lv_sws>';
echo ' <lv_lvs><![CDATA['.$lv->lvs.']]></lv_lvs>';
echo ' <lv_pflicht><![CDATA['.$lv->stpllv_pflicht.']]></lv_pflicht>';
echo ' <lv_studplan><![CDATA['.$lv->export.']]></lv_studplan>';
echo ' <lv_gen><![CDATA['.$lv->genehmigung.']]></lv_gen>';
echo ' <lv_anmerkung><![CDATA['.clearHtmlTags($lv->anmerkung).']]></lv_anmerkung>';
echo ' <lv_sprache><![CDATA['.$sp->getBezeichnung($lv->sprache, constant("DEFAULT_LANGUAGE")).']]></lv_sprache>';
//Wenn Modul verpflichtend und alle Childs frei wählbar, soll Modul für ects gezählt werden
$allChildsFree = true;
foreach ($lv->childs as $child)
{
if($child->stpllv_pflicht)
{
$allChildsFree = false;
}
}
if(($lv->lehrtyp_kurzbz!='modul' && $lv->stpllv_pflicht) || ($allChildsFree && $lv->lehrtyp_kurzbz=='modul' && $lv->stpllv_pflicht))
{
$summe_ects_semester += $lv->ects;
$summe_sws_semester += $sws;
}
// Darunterliegende LVs/Module
if(isset($lv->childs) && count($lv->childs)>0)
{
echo '<singlelehrveranstaltungen>';
printLehrveranstaltungTree($lv->childs, count($lv->childs));
echo '</singlelehrveranstaltungen>';
}
echo '</lehrveranstaltung>';
}
}
}
?>