From b9c1bddb1495216b8e21eb4c6971811aff4f2555 Mon Sep 17 00:00:00 2001 From: kindlm Date: Mon, 18 Jul 2016 12:01:41 +0200 Subject: [PATCH 001/140] =?UTF-8?q?LV-Anmeldung=20in=20Incoming-Plattform?= =?UTF-8?q?=20vor=C3=BCbergehend=20deaktiviert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/public/incoming/incoming.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cis/public/incoming/incoming.php b/cis/public/incoming/incoming.php index 01d57cfdf..7017860cb 100644 --- a/cis/public/incoming/incoming.php +++ b/cis/public/incoming/incoming.php @@ -515,7 +515,11 @@ else if($method=="lehrveranstaltungen")

';*/ - echo ' + echo ' + + +
Course application is currently disabled. Please contact the office to apply for courses.
'; + /*echo '
@@ -625,7 +629,7 @@ else if($method=="lehrveranstaltungen") * |----------------------- Bis ist NULL und von innerhalb SS */ - $qry = "SELECT + /*$qry = "SELECT tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.ects, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache, tbl_lehrveranstaltung.bezeichnung_english, tbl_lehrveranstaltung.incoming, tbl_lehrveranstaltung.orgform_kurzbz, @@ -749,7 +753,7 @@ else if($method=="lehrveranstaltungen") //} } } - echo '
'; + echo '';*/ } } else if ($method == "university") From 96f3f1a243608efb600af33a2491e6089a42ba4f Mon Sep 17 00:00:00 2001 From: kindlm Date: Mon, 18 Jul 2016 12:04:21 +0200 Subject: [PATCH 002/140] Interpunktionskorrekturen allg. Ausb.-Vertrag Diverse Anpassungen und Korrekturen Ausb.-Vertrag AOs --- system/xsl/AusbVerEngHead_9005.xsl | 49 +- system/xsl/AusbVerEng_0.xsl | 10 +- system/xsl/AusbVerEng_9005.xsl | 2093 +++++++++++++--------------- system/xsl/Ausbildungsver_0.xsl | 12 +- system/xsl/Ausbildungsver_9005.xsl | 1283 ++++++++--------- 5 files changed, 1679 insertions(+), 1768 deletions(-) diff --git a/system/xsl/AusbVerEngHead_9005.xsl b/system/xsl/AusbVerEngHead_9005.xsl index dca264a3a..2234bc022 100644 --- a/system/xsl/AusbVerEngHead_9005.xsl +++ b/system/xsl/AusbVerEngHead_9005.xsl @@ -34,7 +34,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + @@ -48,7 +48,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + @@ -58,7 +58,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + @@ -66,39 +66,39 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + - + - + - + - + - + - + - + - + @@ -139,11 +139,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + - + @@ -159,9 +159,8 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - - + + @@ -286,6 +285,9 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn + + + @@ -876,7 +878,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + @@ -891,18 +893,15 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - + + - - - - - + + diff --git a/system/xsl/AusbVerEng_0.xsl b/system/xsl/AusbVerEng_0.xsl index 4b4e2cffd..da59cec66 100644 --- a/system/xsl/AusbVerEng_0.xsl +++ b/system/xsl/AusbVerEng_0.xsl @@ -837,7 +837,7 @@ 1. Ausbildungsort - Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort in Wien festlegen, außerhochschulische Aktivitäten (zB Exkursionen) können auch außerhalb von Wien stattfinden. + Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort in Wien festlegen, außerhochschulische Aktivitäten (z.B. Exkursionen) können auch außerhalb von Wien stattfinden. 2. Vertragsgrundlage @@ -1103,7 +1103,7 @@ Diese Dokumente sind öffentlich zugänglich unter www.technikum-wien.at. 6.2.2 Studienbeitrag - Die Studentin bzw. der Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters (StudienanfängerInnen: bis 20. August vor Studienbeginn) einen Studienbeitrag gemäß Fachhochschul-Studiengesetz in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Dies gilt auch in Semestern mit DiplomandInnenenstatus o.ä. Im Falle einer Erhöhung des gesetzlichen Studienbeitrags-satzes erhöht sich der angeführte Betrag entsprechend. Die vollständige Bezahlung des Studienbeitrags ist Voraussetzung für die Aufnahme bzw. die Fortsetzung des Studiums. Bei Nichtantritt des Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. + Die Studentin bzw. der Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters (StudienanfängerInnen: bis 20. August vor Studienbeginn) einen Studienbeitrag gemäß Fachhochschul-Studiengesetz idgF in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Dies gilt auch in Semestern mit DiplomandInnenenstatus o.ä. Im Falle einer Erhöhung des gesetzlichen Studienbeitrags-satzes erhöht sich der angeführte Betrag entsprechend. Die vollständige Bezahlung des Studienbeitrags ist Voraussetzung für die Aufnahme bzw. die Fortsetzung des Studiums. Bei Nichtantritt des Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. 6.2 Duties @@ -1131,7 +1131,7 @@ These documents are publically available at www.technikum-wien.at. 6.2.2 Tuition Fees - Two weeks before the beginning of each semester (new students: up to August 20 before taking up studies) the student undertakes to pay tuition fees according to the University of Applied Sciences Studies Act currently to the sum of € 363.36 net payable per semester. This also applies in semesters with graduand status etc. In the event of an increase in the legal tuition fees rate, the amount quoted will increase accordingly. Full payment of the tuition fees is a prerequisite both for enrolling on the course and continuing with the degree program. For non-commencement or termination of the study at the beginning or during the semester, the tuition fee is forfeited. + Two weeks before the beginning of each semester (new students: up to August 20 before taking up studies) the student undertakes to pay tuition fees according to the University of Applied Sciences Studies Act as amended currently to the sum of € 363.36 net payable per semester. This also applies in semesters with graduand status etc. In the event of an increase in the legal tuition fees rate, the amount quoted will increase accordingly. Full payment of the tuition fees is a prerequisite both for enrolling on the course and continuing with the degree program. For non-commencement or termination of the study at the beginning or during the semester, the tuition fee is forfeited. 6.2.3 ÖH-Beitrag Gemäß § 4 Abs 10 FHStG sind Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. @@ -1220,7 +1220,7 @@ Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der Studentin oder dem Studenten getroffen wurden, ist die Studentin oder der Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten. 6.2.10 Aufzeichnungen und Mitschnitte - Es ist der/dem Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc, aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikations-mittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. + Es ist der/dem Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc., aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikations-mittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. @@ -1235,7 +1235,7 @@ 6.2.10 Recordings - It is expressly forbidden for the student to record lectures in part or in total (e.g. by using film and / or sound recordings or other audio-visual means suitable for this purpose). In addition, any form of making the aforementioned recordings publically available (wired or wireless) for example in social networks such as Facebook, StudiVZ etc, but also on Youtube, etc., or by other means of communication designed for these purposes is strictly prohibited. These regulations shall apply correspondingly to scripts, other learning aids and examination data. + It is expressly forbidden for the student to record lectures in part or in total (e.g. by using film and / or sound recordings or other audio-visual means suitable for this purpose). In addition, any form of making the aforementioned recordings publically available (wired or wireless) for example in social networks such as Facebook, StudiVZ etc., but also on Youtube, etc., or by other means of communication designed for these purposes is strictly prohibited. These regulations shall apply correspondingly to scripts, other learning aids and examination data. The only exception is a recording exclusively for the purpose of learning, study and research and for personal use, provided that the lecturer has expressly granted his / her prior written consent. diff --git a/system/xsl/AusbVerEng_9005.xsl b/system/xsl/AusbVerEng_9005.xsl index 493db37fc..7b0d6d6bc 100644 --- a/system/xsl/AusbVerEng_9005.xsl +++ b/system/xsl/AusbVerEng_9005.xsl @@ -9,14 +9,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - + - + @@ -44,32 +43,21 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + - + - - - - - - - - - - - - + @@ -77,7 +65,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + @@ -85,56 +73,33 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + - + - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -142,33 +107,152 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - - - - + - + - + - + + + + + - + + + + + + + + + @@ -176,487 +260,256 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + - + - + + + + + - + - + - + - - - - + - + - - + + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - + + - + - + - + - + - - - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - + + + - - - + + + - + - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -665,130 +518,160 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -819,7 +702,9 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + + + @@ -827,689 +712,661 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - Ausbildungsvertrag - außerordentliches Studium (Besuch einzelner Lehrveranstaltungen eines Studiengangs) - - - Dieser Vertrag regelt das Rechtsverhältnis zwischen - - dem Verein Fachhochschule Technikum Wien, - 1060 Wien, Mariahilfer Straße 37-39 (kurz „Erhalter“ genannt) einerseits - und + Ausbildungsvertrag + außerordentliches Studium (Besuch einzelner Lehrveranstaltungen eines Studiengangs) + + Keine Sozialversicherungsnummer oder Ersatzkennzeichen vorhanden + Kein Geburtsdatum vorhanden + Keine Ausbildungsdauer vorhanden + + + + Dieser Vertrag regelt das Rechtsverhältnis zwischen + dem Verein Fachhochschule Technikum Wien, + 1060 Wien, Mariahilfer Straße 37-39 (kurz „Erhalter“ genannt) einerseits + und - - - Training Contract + + + Training Contract - for external students (attending individual courses of a degree program) - - - This contract governs the legal relationship between - - the University of Applied Sciences Technikum Wien Association, 1060 Vienna, Mariahilferstraße 37-39 (referred to as "operator") on the one hand and + for external students (attending individual courses of a degree program) + + + This contract governs the legal relationship between the University of Applied Sciences Technikum Wien Association, 1060 Vienna, Mariahilferstraße 37-39 (referred to as "operator") on the one hand and - + + + - - Familienname (Surname): + + Familienname (Surname): - Vorname (First Name): - - Akademischer Titel (Academic degree): + Vorname (First Name): + + Akademischer Titel (Academic degree): - - Adresse (Address): - ; + + Adresse (Address): - - + + - - Geburtsdatum (Date of birth): + + Geburtsdatum (Date of birth): - - Sozialversicherungsnr. + + Sozialversicherungsnr. - + 1 - - + + - Gemäß § 3 Absatz 1 des Bildungsdokumentationsgesetzes (BGBl. I Nr. 12/2002 idgF) und der Bildungsdokumentationsverordnung-Fachhochschulen (BGBl. II Nr. 29/2004 idgF) hat der Erhalter die Sozialversicherungsnummer zu erfassen und gemäß § 7 Absatz 2 im Wege der Agentur für Qualitätssicherung und Akkreditierung Austria an das zuständige Bundesministerium und die Bundesanstalt Statistik Österreich zu übermitteln. + Gemäß § 3 Absatz 1 des Bildungsdokumentationsgesetzes idgF und der Bildungsdokumentationsverordnung-Fachhochschulen idgF hat der Erhalter die Sozialversicherungsnummer zu erfassen und gemäß § 7 Absatz 2 im Wege der Agentur für Qualitätssicherung und Akkreditierung Austria an das zuständige Bundesministerium und die Bundesanstalt Statistik Österreich zu übermitteln. - + - + - : + : - - + + (Social security number) - + 2 - + - Pursuant to § 3 section 1 of the Education Documentation Act (Federal Law Gazette I No. 12/2002 as amended) and the Education Documentation Regulation for Universities of Applied Sciences (Federal Law Gazette II No. 29/2004 as amended), the operator shall record the social security number pursuant to § 7 paragraph 2 and shall transfer it via the Agency for Quality Assurance and Accreditation Austria to the competent Ministry and Statistics Austria. + Pursuant to § 3 section 1 of the Education Documentation Act as amended and the Education Documentation Regulation for Universities of Applied Sciences as amended, the operator shall record the social security number pursuant to § 7 paragraph 2 and shall transfer it via the Agency for Quality Assurance and Accreditation Austria to the competent Ministry and Statistics Austria. - + - : + : - - Personenkennz. (Personal identifier): + + + (kurz „ao. Studentin“ bzw. „ao. Student“ genannt)(referred to as "external student") + on the andererseits, + other, - - - - (kurz „ao. Studentin“ bzw. „ao. Student“ genannt) - (referred to as "external student") - - - andererseits, - on the other, - - - + - - im Rahmen des außerordentlichen Studiums bzw. des Besuchs einzelner Lehrveranstaltungen an der FH Technikum Wien + + im Rahmen des außerordentlichen Studiums bzw. des Besuchs einzelner Lehrveranstaltungen an der FH Technikum Wien. Die konkreten Lehrveranstaltungen des außerordentlichen Studiums sind in der Information über die Zulassung zum außerordentlichen Studium angeführt. - - as part of an external course of study or attending individual courses at the UAS Technikum Wien + as part of an external course of study or attending individual courses at the UAS Technikum Wien. The specific courses of an external study program are included in the Information about Admission to an External Study Program. + + 1. Ausbildungsort - + + Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort in Wien festlegen, außerhochschulische Aktivitäten (z.B. Exkursionen) können auch außerhalb von Wien stattfinden. + - 1. Ausbildungsort + 2. Vertragsgrundlage - - Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort festlegen. - - - 2. Vertragsgrundlage - - - Die Ausbildung erfolgt auf der Grundlage von § 4 Abs. 2 und 3 des Fachhochschul-Studiengesetzes, BGBl. Nr. 340/1993 idgF, des Hochschul-Qualitätssicherungsgesetzes, BGBl. I Nr. 74/2011 idgF, und des Akkreditierungsbescheides des Board der AQ Austria vom 9.5.2012, GZ FH12020016 idgF. - - + + Die Ausbildung erfolgt auf der Grundlage von § 4 Abs. 2 und 3 des Fachhochschul-Studiengesetzes, BGBl. Nr. 340/1993 idgF, des Hochschul-Qualitätssicherungsgesetzes, BGBl. I Nr. 74/2011 idgF, und des Akkreditierungs-bescheides des Board der AQ Austria vom 9.5.2012, GZ FH12020016 idgF und der Satzung der Fachhochschule Technikum Wien idgF. + + - 3. Ausbildungsdauer + 3. Ausbildungsdauer - - Die Ausbildungsdauer des außerordentlichen Studiums ist durch die Dauer der Lehrveranstaltung/en, zu der bzw. denen die ao. Studentin bzw. der ao. Student zugelassen ist, definiert. - - - + + Die Ausbildungsdauer des außerordentlichen Studiums ist durch die Dauer der Lehrveranstaltung/en, zu der bzw. denen die ao. Studentin bzw. der ao. Student zugelassen ist, definiert. + + - 1. Place of Training + 4. Ausbildungsabschluss - + - - Places of training are the premises of the UAS Technikum Wien, 1200 Vienna, Höchstädt-platz and 1210 Vienna, Giefinggasse. If necessary, the operator may specify a different place of study. - - + + Die Ausbildung endet mit der positiven Absolvierung der das jeweilige Studium abschließenden kommissionellen Prüfung. Nach dem Abschluss der vorgeschriebenen Prüfungen wird der akademische Grad Bachelor of Science in Engineering (BSc) durch das FH-Kollegium verliehen. + - 2. Contractual Basis + 1. Place of Training - + - - The training is based on § 4 paras. 2 and 3 of the University of Applied Sciences Studies Act, Federal Law Gazette No. 340/1993 as amended, the Higher Education Quality Assurance Act, Federal Law Gazette I No. 74/2011 as amended and the notification of accreditation by the Board of AQ Austria from 9.5.2012, GZ FH12020016 as amended. - + + Places of training are the premises of the UAS Technikum Wien, 1200 Vienna, Höchstädt-platz and 1210 Vienna, Giefinggasse. If necessary, the operator may specify a different place of study in Vienna. Non-university activities (e.g. excursions) may take place away from Vienna. + - 3. Duration of Training + 2. Contractual Basis - - - - The duration of the external course of study is defined by the duration of the courses that the external student is allowed to attend. - - - - 4. Ausbildungsabschluss - - + - Das außerordentliche Studium endet mit der positiven Absolvierung der in den jeweiligen Lehrveranstaltungen vorgesehenen Leistungsanforderungen. Nach dem positiven Abschluss wird der für die jeweilige Lehrveranstaltung vorgesehene Leistungs-nachweis ausgestellt. - + The training is based on § 4 paras. 2 and 3 of the University of Applied Sciences Studies Act, Federal Law Gazette No. 340/1993 as amended, the Higher Education Quality Assurance Act, Federal Law Gazette I No. 74/2011 as amended and the notification of accreditation by the Board of AQ Austria from 9.5.2012, GZ FH12020016 as amended and the statutes of the University of Applied Sciences Technikum Wien. + - 5. Rechte und Pflichten des Erhalters + + 3. Duration of Training + + + + + + The duration of the external course of study is defined by the duration of the courses that the + external student is allowed to attend. + + + + + + + 4. Formal Completion of Training + + + + + The training ends with the positive completion of the final examination before a committee for the respective course. After completion of the required examinations, the academic degree Bachelor of Science in Engineering (BSc) is awarded by the University of Applied Sciences Council. + + 5. Rechte und Pflichten des Erhalters - + - 5.1 Rechte + 5.1 Rechte - + - - Der Erhalter führt eine periodische Überprüfung des Studiums im Hinblick auf Relevanz und Aktualität durch und ist im Einvernehmen mit dem FH-Kollegium berechtigt, daraus Änderungen des akkreditierten Studienganges abzuleiten. - - Der Erhalter ist berechtigt, die Daten der/des ao. Studierenden an den FH Technikum Wien Alumni Club zu übermitteln. Der Alumni Club ist der AbsolventInnenverein der FH Technikum Wien. Er hat zum Ziel, AbsolventInnen, Studierende und Lehrende miteinander zu vernetzen sowie AbsolventInnen laufend über Aktivitäten an der FH Technikum Wien zu informieren. Einer Zusendung von Informationen durch den Alumni Club kann jederzeit widersprochen werden. - + + Der Erhalter führt eine periodische Überprüfung des Studiums im Hinblick auf Relevanz und Aktualität durch und ist im Einvernehmen mit dem FH-Kollegium berechtigt, daraus Änderungen des akkreditierten Studienganges abzuleiten. + + + Der Erhalter ist berechtigt, die Daten der/des ao. Studierenden an den FH Technikum Wien Alumni Club zu übermitteln. Der Alumni Club ist der AbsolventInnenverein der FH Technikum Wien. Er hat zum Ziel, AbsolventInnen, Studierende und Lehrende miteinander zu vernetzen sowie AbsolventInnen laufend über Aktivitäten an der FH Technikum Wien zu informieren. Einer Zusendung von Informationen durch den Alumni Club kann jederzeit widersprochen werden. + + - 5.2 Pflichten + 5.2 Pflichten - + - + - + - Der Erhalter ist verpflichtet, all jene Voraussetzungen zu bieten, damit das Studium innerhalb der Ausbildungsdauer (Pkt. 3) erfolgreich abgeschlossen werden kann. + Der Erhalter verpflichtet sich zur ordnungsgemäßen Planung und Durchführung der Lehrveranstaltung/en in der vorgesehenen Zeit. Der Erhalter ist verpflichtet, allfällige Änderungen des akkreditierten Studienganges zeitgerecht bekannt zu geben. + + + + Der Erhalter verpflichtet sich zur sorgfaltsgemäßen Verwendung der personenbezogenen Daten der ao. Studierenden. Die Daten werden nur im Rahmen der gesetzlichen und vertraglichen Verpflichtungen sowie des Studienbetriebes verwendet und nicht an nicht berechtigte Dritte weitergegeben. + - - + - 4. Formal Completion of Training + 5. Rights and Duties of the Operator - + - - The external course of study ends when the course requirements defined in the respective courses have been successfully completed. In the event of a course being successfully completed the respective performance record provided will be issued. - - - + - 5. Rights and Duties of the Operator - - - - - - + - + - + - + - 5.1 Rights + 5.1 Rights - + - + - + - The operator performs a periodic review of the course in terms of relevance and topicality, and is authorized, in consultation with the University of Applied Sciences Council, to deduce from this changes in the accredited degree program. - - The operator is entitled to communicate an external student’s data to the UAS Technikum Wien Alumni Club. The Alumni Club is the graduate association of the UAS Technikum Wien. Its goal is to provide links between graduates, students and lecturers as well as to keep graduates informed of the activities at the UAS Technikum Wien. A mailing of information from the Alumni Club can be vetoed at any time. - - - - + The operator performs a periodic review of the course in terms of relevance and topicality, and is authorized, in consultation with the University of Applied Sciences Council, to deduce from this changes in the accredited degree program. + + + The operator is entitled to communicate an external student’s data to the UAS Technikum Wien Alumni Club. The Alumni Club is the graduate association of the UAS Technikum Wien. Its goal is to provide links between graduates, students and lecturers as well as to keep graduates informed of the activities at the UAS Technikum Wien. A mailing of information from the Alumni Club can be vetoed at any time. + + + + + - 5.2 Duties + 5.2 Duties - + - + - + - The operator undertakes to provide all the necessary conditions for the study to be successfully completed within the duration of training (point 3). + The operator undertakes to plan and hold the degree program in a proper manner within the expected time period. The operator is obliged to give adequate notice of any changes to the accredited degree program. + + + + The operator is committed to use the personal data of the external students carefully. The data is only to be used within the operator’s legal and contractual obligations as well as its program of studies and is not to be handed on to unauthorized third parties. - + + 6. Rechte und Pflichten der ao. Studierenden - + + + + + + + + 6.1 Rechte + + + + + + + + + Die ao. Studentin bzw. der ao. Student hat das Recht auf + - Die Voraussetzungen zur Erfüllung dieser Verpflichtung sind Gegenstand des akkreditierten Studienganges idgF, der Satzung der FH Technikum Wien idgF und der Hausordnung idgF. + einen Lehrveranstaltungsbetrieb gemäß den im akkreditierten Studiengang idgF und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen; - Der Erhalter ist weiters verpflichtet, das Studium auf der Grundlage höchster Qualitätsansprüche hinsichtlich der Erreichung der Ausbildungsziele zu gestalten und allfällige Änderungen des akkreditierten Studienganges bekannt zu geben. - - - Der Erhalter verpflichtet sich zur sorgfaltsgemäßen Verwendung der personenbezogenen Daten der ao. Studierenden. Die Daten werden nur im Rahmen der gesetzlichen und vertraglichen Verpflichtungen sowie des Studienbetriebes verwendet und nicht an nicht berechtigte Dritte weitergegeben. + ein Zeugnis über die im laufenden Semester abgelegten Prüfungen. - - + + + + + 6.2 Pflichten + + + 6.2.1 Einhaltung studienrelevanter Bestimmungen + Die ao. Studentin bzw. der ao. Student ist verpflichtet, insbesondere folgende Bestimmungen einzuhalten: + - - The conditions for the fulfillment of this obligation are the subject of the accredited study program as amended, the Statutes of the UAS Technikum Wien as amended, and the House Rules as amended. + Studienordnung und Studienrechtliche Bestimmungen / Prüfungsordnung idgF - The operator also undertakes to design the study on the basis of the highest possible quality standards as regards the achievement of the educational goals and to make known any changes to the accredited degree program. + Hausordnung idgF - The operator is committed to use the personal data of the external students carefully. The data is only to be used within the operator’s legal and contractual obligations as well as its program of studies and is not to be handed on to unauthorized third parties. + Brandschutzordnung idgF + + + Bibliotheksordnung idgF + + + Die für den jeweiligen Studiengang geltende/n Laborordnung/en idgF - - - - 6. Rechte und Pflichten der Studierenden - - - - - - - - - 6.1 Rechte - - - - - - - - - Die ao. Studentin bzw. der ao. Student hat das Recht auf - - - einen Lehrveranstaltungsbetrieb gemäß den im akkreditierten Studiengang idgF und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen; - - - - ein Zeugnis über die im laufenden Semester abgelegten Prüfungen. - - - - - - 6.2 Pflichten - - 6.2.1 Studienbeitrag - - Die ao. Studentin bzw. der ao. Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters einen Studienbeitrag gemäß Fachhochschul-Studiengesetz (BGBl. Nr. 340/1993 idgF) in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Im Falle einer Erhöhung des gesetzlichen Studienbeitragssatzes erhöht sich der angeführte Betrag entsprechend. Bei Nichtantritt des Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. - - - 6.2.2 Studierendenbeitrag („ÖH-Beitrag“) - - Gemäß § 4 Abs. 10 des Fachhochschul-Studiengesetzes (BGBl. Nr. 340/1993 idgF) gehören ordentliche und außerordentliche Studierende der Österreichischen Hochschülerinnen- und Hochschülerschaft (ÖH) gemäß Hochschülerinnen- und Hochschülerschaftsgesetz 2014 - HSG 2014, BGBl. I Nr. 45/2014, an. Daraus resultiert die Verpflichtung der ao. Studentin oder des ao. Studenten zur Entrichtung des ÖH-Beitrags. - - - - - - - - 6. Rights and Duties of the Students - - - - - - - - - - - - - - - - 6.1 Rights - - - - - - - - The external student has the right to - - - attend a course being run in accordance with the conditions laid down in the accredited degree program as amended and in the statute of the UAS Technikum Wien as amended - - - - a certificate showing the examinations successfully passed in the current semester. - - - - - - 6.2 Duties - - 6.2.1 Tuition Fees - Two weeks before the beginning of each semester the external student undertakes to pay tuition fees according to the University of Applied Sciences Studies Act (Federal Law Gazette No 340/1993 as amended) currently to the sum of € 363.36 net payable per semester. In the event of an increase in the legal tuition fees rate, the amount quoted will increase accordingly. For non-commencement or termination of the study at the beginning or during the semester, the tuition fee is forfeited. - - 6.2.2 Student fee ("Austrian Student Union fee") - Pursuant to § 4 section 10 of the Universities of Applied Sciences Studies Act (Federal Law Gazette No 340/1993 as amended and the Federal Ministries Act - 2007 amendment, Federal Law Gazette I No. 6/2007), internal and external students at universities of applied sciences degree programs are members of the Austrian Students Union in accordance with the Students Act (HSG 2014).This results in the external student being obliged to pay the Austrian Student Union fee. This also applies in semesters with graduand status. - - - Der Studierendenbeitrag kann jährlich durch die ÖH indexiert werden; die genaue Höhe des Studierendenbeitrags wird von der ÖH jährlich für das folgende Studienjahr bekannt gegeben. Die Einhebung des Betrags erfolgt durch die Fachhochschule. Der Erhalter überweist in Folge die eingezahlten Beträge der ao. Studierenden ohne Abzüge an die ÖH. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum ao. Studium bzw. für dessen Fortsetzung. - - - 6.2.3 Unkostenbeitrag - Pro Semester ist ein Unkostenbeitrag zu entrichten, wobei es sich nicht um einen Pauschalbetrag handelt. Der Unkostenbeitrag stellt eine Abgeltung für über das Normalmaß hinausgehende Serviceleistungen der FH dar, z.B. Freifächer, Vorträge / Job-börse, Mensa etc. - - Die Höhe des Unkostenbeitrages beträgt derzeit € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht. - Der Unkostenbeitrag ist gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten. - - Bei Vertragsauflösung vor Studienabschluss aus Gründen, die die ao. Studentin bzw. der ao. Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten. - - - The student fee can be annually indexed by the Austrian Students' Union; the exact amount of the student fee for the following year is announced annually by the Austrian Students' Union. - - The amount is levied by the University of Applied Sciences. The operator then transfers the amounts paid by the external students without deductions to the Students' Union. Payment of the student fee is a pre-requisite for admission to the course or for its continuation. - - - 6.2.3 Contribution towards Expenses - A contribution towards expenses, which is not a lump sum, is payable per semester. The contribution towards expenses represents compensation for the services provided by the UAS that go beyond the normal level, such as electives, lectures/job market, cafeteria, etc. - - - The amount of the contribution is currently € 75,– per semester. Any possible adjustment is posted on the noticeboard. - The contribution towards expenses must be paid together with the tuition fees before the start of the semester. - - If the contract is cancelled before graduation for reasons that are the fault of the external student, or on their wishes, the contribution towards expenses shall be deducted to cover the additional administrative costs borne by the operator. - - 6.2.4 Lehr- und Lernbehelfe - Die Anschaffung unterrichtsbezogener Literatur und individueller Lernbehelfe ist durch den Unkostenbeitrag nicht abgedeckt. Eventuelle zusätzliche Kosten, die sich beispielsweise durch die studiengangsbezogene, gemeinsame Anschaffung von Lehr- bzw. Lernbehelfen (Skripten, CDs, Bücher, Projektmaterialien, Kopierpapier etc.) oder durch Exkursionen ergeben, werden von jedem Studiengang individuell eingehoben. - - 6.2.5 Beibringung persönlicher Daten - Die ao. Studentin bzw. der ao. Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw. für den Studienbetrieb unerlässlich sind. - - - 6.2.6 Aktualisierung eigener Daten und Bezug von Informationen - Die ao. Studentin bzw. der ao. Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Studiengangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen. - - - 6.2.7 Verwertungsrechte - - Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der ao. Studentin oder dem ao. Studenten getroffen wurden, ist die ao. Studentin oder der ao. Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten. - - - 6.2.4 Teaching Aids and Learning Tools - The acquisition of teaching-related literature and individual learning tools is not covered by the contribution towards expenses. Any additional costs, which arise for example from the course-related, joint purchase of teaching and / or learning materials (scripts, CDs, books, project materials, copying paper, etc.) or result from field trips, are levied by each individual degree program. - - - - 6.2.5 Providing Personal Data - The external student is obliged to produce personal data which must be registered because of a law, regulation or a decision by the operator, or is essential fort he fulfilling of the training contract or fort he program of studies. - - - 6.2.6 Updating personal data and the retrieval of information - Without being reminded, the external student must ensure that the data provided by them is up-to-date. Changes are to be immediately communicated to the administrative assistant in writing. Furthermore, it is the external students’ responsibility to make themselves suitably aware of information relating to their studies which has been sent to them at the email address provided for them by the operator. - - - - 6.2.7 Exploitation Rights - Unless other arrangements have been agreed between the operator and the external student at an individual level, on written request, the external student undertakes to offer the operator the rights to research and development results. - - - - 6.2.8 Aufzeichnungen und Mitschnitte - Es ist der/dem ao. Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc, aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikations-mittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. - Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. - - - 6.2.9 Geheimhaltungspflicht - - Die ao. Studentin bzw. der ao. Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet. - - 6.2.10 Unfallmeldung - Im Falle eines Unfalles mit körperlicher Verletzung des/der ao. Studierenden im Zusammenhang mit dem ao. Studium ist die/der ao. Studierende verpflichtet, innerhalb von drei Tagen eine Meldung am Studiengangssekretariat einzubringen. Dies betrifft auch Wegunfälle zur oder von der FH. - - 6.2.8 Recordings - It is expressly forbidden for the external student to record lectures in part or in total (e.g. by using film and / or sound recordings or other audio-visual means suitable for this purpose). In addition, any form of making the aforementioned recordings publically available (wired or wireless) for example in social networks such as Facebook, StudiVZ etc, but also on Youtube, etc., or by other means of communication designed for these purposes is strictly prohibited. These regulations shall apply correspondingly to scripts, other learning aids and examination data. - The only exception is a recording exclusively for the purpose of learning, study and research and for personal use, provided that the lecturer has expressly granted his / her prior written consent. - - - - - - 6.2.9 Confidentiality - The external student is required to maintain confidentiality towards third parties of research and development activities and results. - - - 6.2.10 Accident Report - In the event of an accident with bodily injury to an external student in connection with his / her studies, he / she is obliged to bring a report to the administrative assistant of the degree program within three days. This also applies to accidents on the way to or from the UAS. - - - 7. Beendigung des Vertrages - - - 7.1 Auflösung im beiderseitigen Einvernehmen - - Im beiderseitigen Einvernehmen ist die Auflösung des Ausbildungsvertrages jederzeit ohne Angabe von Gründen möglich. Die einvernehmliche Auflösung bedarf der Schriftform. - - - 7.2 Kündigung durch die Studentin bzw. den Studenten - - Die ao. Studentin bzw. der ao. Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen. - - - 7.3 Ausschluss durch den Erhalter - - Der Erhalter kann die ao. Studentin bzw. den ao. Studenten aus wichtigem Grund mit sofortiger Wirkung vom weiteren Studium ausschließen, und zwar beispielsweise wegen - - - nicht genügender Leistung im Sinne der Prüfungsordnung; - - - mehrmaligem unentschuldigten Verletzen der Anwesenheitspflicht ; - - - wiederholtem Nichteinhalten von Prüfungsterminen und Abgabeterminen für Seminararbeiten, Projektarbeiten etc.; - - - schwerwiegender bzw. wiederholter Verstöße gegen die Hausordnung; - - - persönlichem Verhalten, das zu einer Beeinträchtigung des Images und/oder Betriebes des Studienganges, der Fach-hochschule bzw. des Erhalters oder von Personen führt, die für die Fachhochschule bzw. den Erhalter tätig sind; - - - Verletzung der Verpflichtung, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen anzubieten (siehe Pkt. 6.2.7); - - - - - + Diese Dokumente sind öffentlich zugänglich unter www.technikum-wien.at. + - 7. Termination of the contract + 6. Rights and Duties of the external Students + + + + + + + + + - + + + 6.1 Rights + + + + + + + + The external student has the right to + + + attend a course being run in accordance with the conditions laid down in the accredited degree program as amended and in the statute of the UAS Technikum Wien as amended + + + a certificate showing the examinations successfully passed in the current semester. + + + + + + + 6.2 Duties + + + 6.2.1 Compliance with regulations relevant to the studies + In particular the external student undertakes to comply with the following regulations: + + + Study Regulations and Studies Act Provisions / Examination Regulations as amended + + + General Rules of Conduct as amended + + + Fire Regulations as amended + + + Library Regulations as amended + + + The Laboratory Regulations applicable to the respective degree program as amended + + + + These documents are publically available at www.technikum-wien.at. + 6.2.2 Studienbeitrag + + Die ao. Studentin bzw. der ao. Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters (StudienanfängerInnen: bis 20. August vor Studienbeginn) einen Studienbeitrag gemäß Fachhochschul-Studiengesetz in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Im Falle einer Erhöhung des gesetzlichen Studienbeitragssatzes erhöht sich der angeführte Betrag entsprechend. + Die vollständige Bezahlung des Studienbeitrags ist Voraussetzung für die Aufnahme bzw. die Fortsetzung des ao. Studiums. Bei Nichtantritt des ao. Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. + + 6.2.3 ÖH-Beitrag + Gemäß § 4 Abs 10 FHStG sind Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die ao. Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum ao. Studium bzw. für dessen Fortsetzung. + + + 6.2.4 Unkostenbeitrag + Pro Semester ist ein Unkostenbeitrag zu entrichten, wobei es sich nicht um einen Pauschalbetrag handelt. Der Unkostenbeitrag stellt eine Abgeltung für über das Normalmaß hinausgehende Serviceleistungen der FH dar, z.B. Freifächer, Beratung/Info Auslands-studium, Sponsionsfeiern, Vorträge / Job-börse, Mensa etc. + 6.2.2 Tuition Fees + Two weeks before the beginning of each semester (new students: up to August 20 before taking up studies) the external student undertakes to pay tuition fees according to the University of Applied Sciences Studies Act currently to the sum of € 363.36 net payable per semester. In the event of an increase in the legal tuition fees rate, the amount quoted will increase accordingly. + + Full payment of the tuition fees is a prerequisite both for enrolling on the course and continuing with the degree program. For non-commencement or termination of the external + study at the beginning or during the semester, the tuition fee is forfeited. + + 6.2.3 Austrian Student Union fee + In accordance with § 4 para.10 FHStG (University of Applied Sciences Studies Act) students at Universities of Applied Sciences are members of the Austrian National Union of Students (ÖH). Each semester the external student is required to pay an ÖH fee to the operator. This fee is then paid to the ÖH. Payment of this fee is a prerequisite for admission to the course of external study or its continuation. + + 6.2.4 Contribution towards Expenses + A contribution towards expenses, which is not a lump sum, is payable per semester. The contribution towards expenses represents compensation for the services provided by the UAS that go beyond the normal level, such as electives, counseling/ information about studying abroad, graduation ceremonies, lectures/job market, cafeteria, etc. + + Die Höhe des Unkostenbeitrages beträgt derzeit € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht. + Der Unkostenbeitrag ist gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten. + + Bei Vertragsauflösung vor dem Ende der besuchten Lehrveranstaltungen aus Gründen, die die ao. Studentin bzw. der ao. Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten. + + 6.2.5 Lehr- und Lernbehelfe + Die Anschaffung unterrichtsbezogener Literatur und individueller Lernbehelfe ist durch den Unkostenbeitrag nicht abgedeckt. Eventuelle zusätzliche Kosten, die sich beispielsweise durch die studiengangsbezogene, gemeinsame Anschaffung von Lehr- bzw. Lernbehelfen (Skripten, CDs, Bücher, Projektmaterialien, Kopierpapier etc.) oder durch Exkursionen ergeben, werden von jedem Studiengang individuell eingehoben. + + 6.2.6 Beibringung persönlicher Daten + Die ao. Studentin bzw. der ao. Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw. für den Studienbetrieb unerlässlich sind. + The amount of the contribution is currently € 75,– per semester. Any possible adjustment is posted on the noticeboard. + The contribution towards expenses must be paid together with the tuition fees before the start of the semester. + + + If the contract is cancelled before graduation for reasons that are the fault of the external student, or on their wishes, the contribution towards expenses shall be deducted to cover the additional administrative costs borne by the operator. + + + 6.2.5 Teaching Aids and Learning Tools + The acquisition of teaching-related literature and individual learning tools is not covered by the contribution towards expenses. Any additional costs, which arise for example from the course-related, joint purchase of teaching and / or learning materials (scripts, CDs, books, project materials, copying paper, etc.) or result from field trips, are levied by each individual degree program. + + + + 6.2.6 Providing Personal Data + The external student is obliged to produce personal data which must be registered because of a law, regulation or a decision by the operator, or is essential fort he fulfilling of the training contract or fort he program of studies. + 6.2.7 Aktualisierung eigener Daten und Bezug von Informationen + + Die ao. Studentin bzw. der ao. Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Studiengangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen. + + 6.2.8 Verwertungsrechte + Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der ao. Studentin oder dem ao. Studenten getroffen wurden, ist die ao. Studentin oder der ao. Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten. + + 6.2.9 Aufzeichnungen und Mitschnitte + Es ist der/dem ao. Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc, aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikations-mittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. + + 6.2.7 Updating personal data and the retrieval of information + + Without being reminded, the external student must ensure that the data provided by them is up-to-date. Changes are to be immediately communicated to the administrative assistant in writing. Furthermore, it is the students’ responsibility to make themselves suitably aware of information relating to their studies which has been sent to them at the email address provided for them by the operator. + + + + + 6.2.8 Exploitation Rights + Unless other arrangements have been agreed between the operator and the external student at an individual level, on written request, the external student undertakes to offer the operator the rights to research and development results. + + + 6.2.9 Recordings + It is expressly forbidden for the external student to record lectures in part or in total (e.g. by using film and / or sound recordings or other audio-visual means suitable for this purpose). In addition, any form of making the aforementioned recordings publically available (wired or wireless) for example in social networks such as Facebook, StudiVZ etc, but also on Youtube, etc., or by other means of communication designed for these purposes is strictly prohibited. These regulations shall apply correspondingly to scripts, other learning aids and examination data. + Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. + + 6.2.10 Geheimhaltungspflicht + Die ao. Studentin bzw. der ao. Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet. + + 6.2.11 Unfallmeldung + Im Falle eines Unfalles mit körperlicher Verletzung des/der ao. Studierenden im Zusammenhang mit dem ao. Studium ist die/der ao. Studierende verpflichtet, diesen innerhalb von drei Tagen dem Studiengangssekretariat zu melden. Dies betrifft auch Wegunfälle zur oder von der FH. + + 6.2.12 Schadensmeldung + Im Falle des Eintretens eines Schadens am Inventar der Fachhochschule ist der/die ao. Studierende verpflichtet, diesen innerhalb von drei Tagen dem Studiengangssekretariat zu melden. Allfällige Haftungsansprüche bleiben hiervon unberührt. + + 6.2.13 Rückgabeverpflichtung bei Studienende + Die ao. Studentin bzw. der ao. Student ist verpflichtet, bei einer Beendigung des ao. Studiums unverzüglich alle zur Verfügung gestellten Gerätschaften, Bücher, Schlüssel und sonstige Materialien zurückzugeben. + The only exception is a recording exclusively for the purpose of learning, study and research and for personal use, provided that the lecturer has expressly granted his / her prior written consent. + + + 6.2.10 Confidentiality + The external student is required to maintain confidentiality towards third parties of research and development activities and results. + + + 6.2.11 Accident Report + In the event of an accident with bodily injury to an external student in connection with his / her external studies, he / she is obliged to report this to the administrative assistant of the degree program within three days. This also applies to accidents on the way to or from the UAS. + + 6.2.12 Damage Report + If any damage should be caused to the inventory of the University of Applied Sciences, the external student undertakes to report this to the administrative assistant of the degree program within three days. Any liability claims shall remain unaffected. + + 6.2.13 Obligation to Return Borrowed Items + The external student undertakes to return promptly all equipment, books, keys and other materials that have been made available, when the course is finished or broken off. + + 7. Beendigung des Vertrages + + + + + + 7.1 Auflösung im beiderseitigen Einvernehmen + Im beiderseitigen Einvernehmen ist die Auflösung des Ausbildungsvertrages jederzeit ohne Angabe von Gründen möglich. Die einvernehmliche Auflösung bedarf der Schriftform. + + + 7.2 Kündigung durch die ao. Studentin bzw. den ao. Studenten + + Die ao. Studentin bzw. der ao. Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen. + + + 7.3 + Ausschluss durch den Erhalter + + Der Erhalter kann die ao. Studentin bzw. den ao. Studenten aus wichtigem Grund mit sofortiger Wirkung vom weiteren Studium ausschließen, und zwar beispielsweise wegen + + + nicht genügender Leistung im Sinne der Prüfungsordnung; + + + mehrmaligem unentschuldigten Verletzen der Anwesenheitspflicht; + + + wiederholtem Nichteinhalten von Prüfungsterminen und Abgabeterminen für Seminararbeiten, Projektarbeiten etc.; + + + schwerwiegender bzw. wiederholter Verstöße gegen die Hausordnung; + + + persönlichem Verhalten, das zu einer Beeinträchtigung des Images und/oder Betriebes des Studienganges, der Fach-hochschule bzw. des Erhalters oder von Personen führt, die für die Fachhochschule bzw. den Erhalter tätig sind; + + + Verletzung der Verpflichtung, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen anzubieten (siehe Pkt. 6.2.8); + + + + + 7. Termination of the contract + + + + + + + + 7.1 Annulment by Mutual Agreement - - By mutual consent, the annulment of the training contract is possible at any time, without notice and for any reason. The amicable annulment must be put down in writing. - - - - 7.2 Termination by the Student - - - - - The external student may terminate the training contract in writing at the end of each semester. - + + By mutual consent, the annulment of the training contract is possible at any time, without notice and for any reason. The amicable annulment must be put down in writing. + - 7.3 Expulsion by the Operator + + 7.2 Termination by the external Student + - The operator may exclude the external student from further study with immediate effect for good cause, for example because of - - + + + + + + The external student may terminate the training contract in writing at the end of each semester. + + 7.3 Expulsion by the Operator + The operator may exclude the student from further study with immediate effect for good cause, for example because of + + - insufficient achievement for the purposes of the examination regulations; + insufficient achievement for the purposes of the examination regulations; - repeated unexcused violation of the compulsory attendance regulation; + repeated unexcused violation of the compulsory attendance regulation; - repeated non-compliance with examination dates and deadlines for seminar papers, project work etc.; + repeated non-compliance with examination dates and deadlines for seminar papers, project work etc.; - serious or repeated violation of the house rules; + serious or repeated violation of the house rules; - personal behavior, which leads to an adverse effect on the image and / or operation of the course, the university or the operator or on persons who are working for the university or the operator; + personal behavior, which leads to an adverse effect on the image and / or operation of the course, the university or the operator or on persons who are working for the university or the operator; + - breach of the obligation to offer the operator the rights to research and development results (see Section 6.2.7); + breach of the obligation to offer the operator the rights to research and development results (see Section 6.2.8); + + + + Verletzung der Geheimhaltungspflicht (siehe Pkt. 6.2.10); + + + strafgerichtlicher Verurteilung (wobei die Art des Deliktes und der Grad der Schuld berücksichtigt werden); + + + Nichterfüllung finanzieller Verpflichtungen trotz Mahnung (z.B. Unkostenbeitrag, Studienbeitrag etc.); + + + Weigerung zur Beibringung von Daten (siehe Pkt. 6.2.6); + + + Plagiieren im Rahmen wissenschaftlicher Arbeiten. - - - + + Besucht die ao. Studentin bzw. der ao. Student nur eine Lehrveranstaltung, so ist damit zugleich der Ausschluss vom ao. Studium verbunden. + + Der Ausschluss kann mündlich erklärt werden. Mit Ausspruch des Ausschlusses endet der Ausbildungsvertrag, es sei denn, es wird ausdrücklich auf einen anderen Endtermin hingewiesen. Eine schriftliche Bestätigung des Ausschlusses wird innerhalb von zwei Wochen nach dessen Ausspruch per Post an die bekannt gegebene Adresse abgeschickt oder auf andere geeignete Weise übermittelt. + Gleichzeitig mit dem Ausspruch des Ausschlusses kann auch ein Hausverbot verhängt werden. + + 7.4 Erlöschen + + Der Ausbildungsvertrag erlischt mit der Beendigung der besuchten Lehrveranstaltungen durch die Ausstellung eines Zeugnisses oder einer Teilnahmebestätigung. Im Fall des Besuchs mehrerer Lehrveranstaltungen während eines Semesters gibt die Lehrveranstaltung mit der spätesten Ausstellung des Zeugnisses oder der Teilnahmebestätigung den Ausschlag. + + - Verletzung der Geheimhaltungspflicht (siehe Pkt. 6.2.9); + breach of confidentiality (see Section 6.2.10); - strafgerichtlicher Verurteilung (wobei die Art des Deliktes und der Grad der Schuld berücksichtigt werden); + a criminal conviction (whereby the nature of the offence and the level of culpability are taken into account); - Nichterfüllung finanzieller Verpflichtungen trotz Mahnung (z.B. Unkostenbeitrag, Studienbeitrag etc.); + non-fulfilment of the financial obligations, despite a reminder (e.g. contribution towards expenses, tuition fees , etc.); - Weigerung zur Beibringung von Daten (siehe Pkt. 6.2.6) + refusal to provide any data (see section 6.2.6); - Plagiieren im Rahmen wissenschaftlicher Arbeiten + plagiarism in academic work. - - - Besucht die ao. Studentin bzw. der ao. Student nur eine Lehrveranstaltung, so ist damit zugleich der Ausschluss vom ao. Studium verbunden. + + + If external students attend only one course, they are simultaneously excluded from an external course of study. + + + The expulsion can be explained verbally. Once notice of the expulsion has been given the training contract ends unless another deadline is explicitly made clear. Within two weeks of notice being given, written confirmation of the expulsion is mailed by post to the address provided or transmitted in any other appropriate manner. + + Simultaneously with notice of expulsion being given an exclusion order from entering the building may also be imposed. - - Der Ausschluss kann mündlich erklärt werden. Mit Ausspruch des Ausschlusses endet der Ausbildungsvertrag, es sei denn, es wird ausdrücklich auf einen anderen Endtermin hingewiesen. Eine schriftliche Bestätigung des Ausschlusses wird innerhalb von zwei Wochen nach dessen Ausspruch per Post an die bekannt gegebene Adresse abgeschickt oder auf andere geeignete Weise übermittelt. - Gleichzeitig mit dem Ausspruch des Ausschlusses kann auch ein Hausverbot verhängt werden. - - - 7.4 Erlöschen - - Der Ausbildungsvertrag erlischt mit der Beendigung der besuchten Lehrveranstaltungen durch die Ausstellung eines Zeugnisses oder einer Teilnahmebestätigung. Im Fall des Besuchs mehrerer Lehrveranstaltungen während eines Semesters gibt die Lehrveranstaltung mit der spätesten Ausstellung des Zeugnisses oder der Teilnahmebestätigung den Ausschlag. - - - - breach of confidentiality (see Section 6.2.9); - - - a criminal conviction (whereby the nature of the offence and the level of culpability are taken into account); - - - non-fulfilment of the financial obligations, despite a reminder (e.g. contribution towards expenses, tuition fees , etc.); - - - refusal to provide any data (see section 6.2.6); - - - plagiarism in academic work. - - - - - - - If external students attend only one course, they are simultaneously excluded from an external course of study. - - - - The expulsion can be explained verbally. Once notice of the expulsion has been given the training contract ends unless another deadline is explicitly made clear. Within two weeks of notice being given, written confirmation of the expulsion is mailed by post to the address provided or transmitted in any other appropriate manner. - Simultaneously with notice of expulsion being given an exclusion order from entering the building may also be imposed. - - - - 7.4 Expiry - - - The training contract comes to an end when the courses visited are shown to be completed by means of a certificate of achievement or an attendance certificate. If several courses have been attended during one semester, the course which is the last to issue its certificate of achievement or attendance certificate is the deciding factor. - - - - - 8. Ergänzende Vereinbarungen - - - - Das gesamte Studienprogramm wird in englischer Sprache angeboten. Die ao. Studentin bzw. der ao. Student erklärt, die englische Sprache in Wort und Schrift in dem für eine akademische Ausbildung erforderlichen Ausmaß zu beherrschen. - - - Ao. Studierende des Studiengangs sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und e-mail) trägt der ao. Student bzw. die ao. Studentin. - + + + 7.4 Expiry + The training contract comes to an end when the courses visited are shown to be completed by means of a certificate of achievement or an attendance certificate. If several courses have been attended during one semester, the course which is the last to issue its certificate of achievement or attendance certificate is the deciding factor. + + + + 8. Ergänzende Vereinbarungen + + Das gesamte Studienprogramm wird in englischer Sprache angeboten. Die ao. Studentin bzw. der ao. Student erklärt, die englische Sprache in Wort und Schrift in dem für eine akademische Ausbildung erforderlichen Ausmaß zu beherrschen. + + Ao. Studierende des Studiengangs sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und e-mail) trägt der ao. Student bzw. die ao. Studentin. + + 8. Supplementary Agreements + + The entire degree program is offered in English. The external student declares he / she masters the English language in word and in writing to the extent necessary for an academic degree program. + + + External students in the program are required to obtain and maintain computer equipment which allows them to participate in the distance learning elements. The total cost of acquisition and operation (including costs for Internet and e-mail) shall be borne by the external student. - - + + - - 9. - - - 8. - - - Unwirksamkeit von Vertrags-bestimmungen, Vertragslücke - - - Sollten einzelne Bestimmungen dieses Vertrages unwirksam oder nichtig sein oder werden, so berührt dies die Gültigkeit der übrigen Bestimmungen dieses Vertrages nicht. - Die Vertragsparteien verpflichten sich, unwirksame oder nichtige Bestimmungen durch neue Bestimmungen zu ersetzen, die dem in den unwirksamen oder nichtigen Bestimmungen enthaltenen Regelungsgehalt in rechtlich zulässiger Weise gerecht werden. Zur Ausfüllung einer allfälligen Lücke verpflichten sich die Vertragsparteien, auf die Etablierung angemessener Regelungen in diesem Vertrag hinzuwirken, die dem am nächsten kommen, was sie nach dem Sinn und Zweck des Vertrages bestimmt hätten, wenn der Punkt von ihnen bedacht worden wäre. - - - - - - - - - 8. Supplementary Agreements - - - - The entire degree program is offered in English. The external student declares he / she masters the - English language in word and in writing to the extent necessary for an academic degree program. - - - - External students in the program are required to obtain and maintain computer equipment which allows them to participate in the distance learning elements. The total cost of acquisition and operation (including costs for Internet and e-mail) shall be borne by the external student. - - - - - - - + 9. @@ -1517,108 +1374,126 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - Invalidity of Contractual Provisions, Contractual Gap + Unwirksamkeit von Vertrags-bestimmungen - - If any provision of this agreement should be or become invalid or void, this shall not affect the validity of the remaining provisions of this agreement. - The parties undertake to replace the invalid or void provisions with new provisions that meet the content of the rules contained in the invalid or void provisions in a legally permissible manner. To fill a possible gap, the parties undertake to work towards the establishment of appropriate regulations in this contract, which come closest to what they would have determined in terms of meaning and purpose of the contract, if the point had been considered by them. - - - - + + Sollten einzelne Bestimmungen dieses Vertrages unwirksam oder nichtig sein oder werden, so berührt dies die Gültigkeit der übrigen Bestimmungen dieses Vertrages nicht. + + + - + 10. 9. - Ausfertigungen, Gebühren, Gerichtsstand + + Ausfertigungen, Gebühren, Gerichtsstand, geltendes Recht - - Die Ausfertigung dieses Vertrages erfolgt in zweifacher Ausführung. Ein Original verbleibt im zuständigen Administrationsbüro des Fachhochschul-Studienganges. Eine Ausfertigung wird der ao. Studentin bzw. dem ao. Studenten übergeben. - - Die englische Übersetzung des deutschsprachigen Vertrages dient nur als Referenz. Rechtsgültigkeit hat ausschließlich der deutsche Vertrag. - + + Die Ausfertigung dieses Vertrages erfolgt in zweifacher Ausführung. Ein Original verbleibt im zuständigen Administrationsbüro des Fachhochschul-Studienganges. Eine Ausfertigung wird der ao. Studentin bzw. dem ao. Studenten übergeben. + + Für Streitigkeiten aus diesem Vertrag gilt österreichisches Recht als vereinbart, allfällige Klagen gegen den Erhalter sind beim sachlich zuständigen Gericht in Wien einzubringen. + + Die englische Übersetzung des deutschsprachigen Vertrages dient nur als Referenz. Rechtsgültigkeit hat ausschließlich der deutsche Vertrag. + Der Ausbildungsvertrag ist gebührenfrei. - Gerichtsstand ist Wien, Innere Stadt. - - - - - + + - - 10. + + 9. - 9. + 8. - Copies, Fees, Place of Jurisdiction + Invalidity of Contractual Provisions - - This contract is provided in duplicate. An original remains with the competent administrations office of the University of Applied Sciences’ Degree Program. A copy is given to the external student. - - - The English translation of the German contract is intended as a reference only. Only the German version of this contract is legally valid in a Court of Law. - - The training contract is free of charge. - Place of Jurisdiction is Vienna, Inner City. - - - + + If any provision of this agreement should be or become invalid or void, this shall not affect the validity of the remaining provisions of this agreement. + + + + + + 10. + + + 9. + + + + Copies, Fees, Place of Jurisdiction, Applicable Law + + + This contract is provided in duplicate. An original remains with the competent administrations office of the University of Applied Sciences’ Degree Program. A copy is given to the external student. + + + In respect of any disputes arising from this contract, Austrian law shall apply. Any complaints about the operator should be introduced at the competent court in Vienna. + + The English translation of the German contract is intended as a reference only. Only the German version of this contract is legally valid in a Court of Law. + + The training contract is free of charge. + - - Wien (Vienna), - Ort, Datum (City, Date) - + + - + - + - - - + Wien (Vienna), - - Die ao. Studentin/der ao. Student /ggf. gesetzliche VertreterInnen + Ort, Datum (City, Date) + + + + + + Ort, Datum (City, Date) + + + + + + + + + + Die ao. Studentin/der ao. Student /ggf. gesetzliche VertreterInnen - - (The external student / - - - - if necessary legal representatives) + + (The external student /if necessary legal representatives) - + - - Für die FH Technikum Wien - - - (For the UAS Technikum Wien) + + Für die FH Technikum Wien + + (For the UAS Technikum Wien) - + diff --git a/system/xsl/Ausbildungsver_0.xsl b/system/xsl/Ausbildungsver_0.xsl index c55a2f38e..5a372020c 100644 --- a/system/xsl/Ausbildungsver_0.xsl +++ b/system/xsl/Ausbildungsver_0.xsl @@ -427,7 +427,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort in Wien festlegen, außerhochschulische Aktivitäten (zB Exkursionen) können auch außerhalb von Wien stattfinden. + Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort in Wien festlegen, außerhochschulische Aktivitäten (z.B. Exkursionen) können auch außerhalb von Wien stattfinden. @@ -519,7 +519,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn 6.2 Pflichten 6.2.1 Einhaltung studienrelevanter Bestimmungen - Die Studentin bzw der Student ist verpflichtet, insbesondere folgende Bestimmungen einzuhalten: + Die Studentin bzw. der Student ist verpflichtet, insbesondere folgende Bestimmungen einzuhalten: Studienordnung und Studienrechtliche Bestimmungen / Prüfungsordnung idgF @@ -541,7 +541,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Diese Dokumente sind öffentlich zugänglich unter www.technikum-wien.at. 6.2.2 Studienbeitrag - Die Studentin bzw. der Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters (StudienanfängerInnen: bis 20. August vor Studienbeginn) einen Studienbeitrag gemäß Fachhochschul-Studiengesetz in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Dies gilt auch in Semestern mit DiplomandInnenstatus o.ä. Im Falle einer Erhöhung des gesetzlichen Studienbeitragssatzes erhöht sich der angeführte Betrag entsprechend. Die vollständige Bezahlung des Studienbeitrags ist Voraussetzung für die Aufnahme bzw. die Fortsetzung des Studiums. Bei Nichtantritt des Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. + Die Studentin bzw. der Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters (StudienanfängerInnen: bis 20. August vor Studienbeginn) einen Studienbeitrag gemäß Fachhochschul-Studiengesetz idgF in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Dies gilt auch in Semestern mit DiplomandInnenstatus o.ä. Im Falle einer Erhöhung des gesetzlichen Studienbeitragssatzes erhöht sich der angeführte Betrag entsprechend. Die vollständige Bezahlung des Studienbeitrags ist Voraussetzung für die Aufnahme bzw. die Fortsetzung des Studiums. Bei Nichtantritt des Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. 6.2.3 ÖH-Beitrag Gemäß § 4 Abs 10 FHStG sind Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. @@ -571,7 +571,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Die Anschaffung unterrichtsbezogener Literatur und individueller Lernbehelfe ist durch den Unkostenbeitrag nicht abgedeckt. Eventuelle zusätzliche Kosten, die sich beispielsweise durch die studiengangsbezogene, gemeinsame Anschaffung von Lehr- bzw. Lernbehelfen (Skripten, CDs, Bücher, Projektmaterialien, Kopierpapier etc.) oder durch Exkursionen ergeben, werden von jedem Studiengang individuell eingehoben. 6.2.7 Beibringung persönlicher Daten - Die Studentin bzw. der Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw für den Studienbetrieb unerlässlich sind. + Die Studentin bzw. der Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw. für den Studienbetrieb unerlässlich sind. 6.2.8 Aktualisierung eigener Daten und Bezug von Informationen Die Studentin bzw. der Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Studiengangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen. @@ -580,7 +580,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der Studentin oder dem Studenten getroffen wurden, ist die Studentin oder der Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten. 6.2.10 Aufzeichnungen und Mitschnitte - Es ist der/dem Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc, aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikationsmittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. + Es ist der/dem Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc., aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikationsmittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. 6.2.11 Geheimhaltungspflicht @@ -596,7 +596,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn 6.2.14 Rückgabeverpflichtung bei Studienende - Die Studentin bzw der Student ist verpflichtet, bei einer Beendigung des Studiums unverzüglich alle zur Verfügung gestellten Gerätschaften, Bücher, Schlüssel und sonstige Materialien zurückzugeben. + Die Studentin bzw. der Student ist verpflichtet, bei einer Beendigung des Studiums unverzüglich alle zur Verfügung gestellten Gerätschaften, Bücher, Schlüssel und sonstige Materialien zurückzugeben. diff --git a/system/xsl/Ausbildungsver_9005.xsl b/system/xsl/Ausbildungsver_9005.xsl index 7db6e7f06..17a77a4ae 100644 --- a/system/xsl/Ausbildungsver_9005.xsl +++ b/system/xsl/Ausbildungsver_9005.xsl @@ -7,639 +7,676 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - Ausbildungsvertrag außerordentliches Studium (Besuch einzelner Lehrveranstaltungen eines Studiengangs) - - Dieser Vertrag regelt das Rechtsverhältnis zwischen dem - Verein Fachhochschule Technikum Wien, 1060 Wien, Mariahilfer Straße 37-39 (kurz „Erhalter“ genannt) einerseits und - - Familienname: - Vorname: - Akademische/r Titel: + + + + + + + + Ausbildungsvertrag außerordentliches Studium (Besuch einzelner Lehrveranstaltungen eines Studiengangs) + + Keine Sozialversicherungsnummer oder Ersatzkennzeichen vorhanden + Kein Geburtsdatum vorhanden + Keine Ausbildungsdauer vorhanden + + Dieser Vertrag regelt das Rechtsverhältnis zwischen dem + Verein Fachhochschule Technikum Wien, 1060 Wien, Mariahilfer Straße 37-39 (kurz „Erhalter“ genannt) einerseits und + + Familienname: + Vorname: + Akademische/r Titel: - - - - - - - - Adresse: ; - Geburtsdatum: - - Sozialversicherungsnummer: - - - - 1 - - - - - - Gemäß § 3 Absatz 1 des Bildungsdokumentationsgesetzes (BGBl. I Nr. 12/2002 idgF) und der Bildungsdokumentationsverordnung-Fachhochschulen (BGBl. II Nr. 29/2004 idgF) hat der Erhalter die Sozialversicherungsnummer zu erfassen und gemäß § 7 Absatz 2 im Wege der Agentur für Qualitätssicherung und Akkreditierung Austria an das zuständige Bundesministerium und die Bundesanstalt Statistik Österreich zu übermitteln. - - - - - - - - Personenkennzeichen: - - (kurz „ao. Studentin“ bzw. „ao. Student“ genannt) andererseits im Rahmen des außerordentlichen Studiums bzw. des Besuchs einzelner Lehrveranstaltungen an der FH Technikum Wien. + + + + - + + + Adresse: ; + Geburtsdatum: + + Sozialversicherungsnummer: + + + + 1 + + + + + + Gemäß § 3 Absatz 1 des Bildungsdokumentationsgesetzes idgF und der Bildungsdokumentationsverordnung-Fachhochschulen idgF hat der Erhalter die Sozialversicherungsnummer zu erfassen und gemäß § 7 Absatz 2 im Wege der Agentur für Qualitätssicherung und Akkreditierung Austria an das zuständige Bundesministerium und die Bundesanstalt Statistik Österreich zu übermitteln. + + + + + + + + + (kurz „ao. Studentin“ bzw. „ao. Student“ genannt) andererseits im Rahmen des außerordentlichen Studiums bzw. des Besuchs einzelner Lehrveranstaltungen an der FH Technikum Wien. Die konkreten Lehrveranstaltungen des außerordentlichen Studiums sind in der Information über die Zulassung zum außerordentlichen Studium angeführt. - - - - - - Ausbildungsort - - - - - Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort festlegen. - - - - - - Vertragsgrundlage - - - - - Die Ausbildung erfolgt auf der Grundlage von § 4 Abs. 2 und 3 des Fachhochschul-Studiengesetzes, BGBl. Nr. 340/1993 idgF, des Hochschul-Qualitätssicherungsgesetzes, BGBl. I Nr. 74/2011 idgF und des Akkreditierungsbescheides des Board der AQ Austria vom 9.5.2012, GZ FH12020016 idgF. - - - - - Ausbildungsdauer - - - - - Die Ausbildungsdauer des außerordentlichen Studiums ist durch die Dauer der Lehrveranstaltung/en, zu der bzw. denen die ao. Studentin bzw. der ao. Student zugelassen ist, definiert. - - - - - Ausbildungsabschluss - - - - - Das außerordentliche Studium endet mit der positiven Absolvierung der in den jeweiligen Lehrveranstaltungen vorgesehenen Leistungsanforderungen. Nach dem positiven Abschluss wird der für die jeweilige Lehrveranstaltung vorgesehene Leistungsnachweis ausgestellt. - - - - - - Rechte und Pflichten des Erhalters - - - - - 5.1 Rechte - Der Erhalter führt eine periodische Überprüfung des die Lehrveranstaltungen anbietenden Studiengangs im Hinblick auf Relevanz und Aktualität durch und ist im Einvernehmen mit dem FH-Kollegium berechtigt, daraus Änderungen im Lehrangebot des Studienganges abzuleiten. - - Der Erhalter ist berechtigt, die Daten der/des ao. Studierenden an den FH Technikum Wien Alumni Club zu übermitteln. Der Alumni Club ist der AbsolventInnenverein der FH Technikum Wien. Er hat zum Ziel, AbsolventInnen, Studierende und Lehrende miteinander zu vernetzen sowie AbsolventInnen laufend über Aktivitäten an der FH Technikum Wien zu informieren. Einer Zusendung von Informationen durch den Alumni Club kann jederzeit widersprochen werden. - - - - - - 5.2 Pflichten - - - Der Erhalter ist verpflichtet, all jene Voraussetzungen zu bieten, damit die besuchten Lehrveranstaltungen in der vorgesehenen Zeit erfolgreich abgeschlossen werden können. Die Voraussetzungen zur Erfüllung dieser Verpflichtung sind Gegenstand des akkreditierten Studienganges idgF, der Satzung der FH Technikum Wien idgF und der Hausordnung idgF. - - - Der Erhalter ist weiters verpflichtet, die Lehrveranstaltungen auf der Grundlage höchster Qualitätsansprüche hinsichtlich der Erreichung der Ausbildungsziele zu gestalten und allfällige Änderungen des akkreditierten Studienganges bekannt zu geben. - - - Der Erhalter verpflichtet sich zur sorgfaltsgemäßen Verwendung der personenbezogenen Daten der ao. Studierenden. Die Daten werden nur im Rahmen der gesetzlichen und vertraglichen Verpflichtungen sowie des Studienbetriebes verwendet und nicht an nicht berechtigte Dritte weitergegeben. - - - - - - - - Rechte und Pflichten der Studierenden - - - - - 6.1 Rechte - Die ao. Studentin bzw. der ao. Student hat das Recht auf - - - einen Lehrveranstaltungsbetrieb gemäß den im akkreditierten Studiengang idgF und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen; - - - ein Zeugnis über die im laufenden Semester abgelegten Prüfungen. - - - - 6.2 Pflichten - 6.2.1 Studienbeitrag - Die ao. Studentin bzw. der ao. Student ist verpflichtet, vor Beginn jedes Semesters bis zum jeweils bekannt gegebenen Termin einen Studienbeitrag gemäß Fachhochschul-Studiengesetz (BGBl. Nr. 340/1993 idgF) in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Im Falle einer Erhöhung des gesetzlichen Studienbeitragssatzes erhöht sich der angeführte Betrag entsprechend. Bei Nichtantritt des ao. Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. - 6.2.2 Studierendenbeitrag („ÖH-Beitrag“) - Gemäß § 4 Abs. 10 des Fachhochschul-Studiengesetzes (BGBl. Nr. 340/1993 idgF) gehören ordentliche und außerordentliche Studierende der Österreichischen Hochschülerinnen- und Hochschülerschaft (ÖH) gemäß Hochschülerinnen- und Hochschülerschaftsgesetz 2014 - HSG 2014, BGBl. I Nr. 45/2014, an. Daraus resultiert die Verpflichtung der ao. Studentin oder des ao. Studenten zur Entrichtung des ÖH-Beitrags. Der Studierendenbeitrag kann jährlich durch die ÖH indexiert werden; die genaue Höhe des Studierendenbeitrags wird von der ÖH jährlich für das folgende Studienjahr bekannt gegeben. Die Einhebung des Betrags erfolgt durch die Fachhochschule. Der Erhalter überweist in Folge die eingezahlten Beträge der ao. Studierenden ohne Abzüge an die ÖH. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum ao. Studium bzw. für dessen Fortsetzung. - 6.2.3 Unkostenbeitrag - Pro Semester ist ein Unkostenbeitrag zu entrichten. Die Höhe des Unkostenbeitrages beträgt € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht. Der Unkostenbeitrag ist gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten. Bei Vertragsauflösung vor dem Ende der besuchten Lehrveranstaltungen aus Gründen, die die ao. Studentin bzw. der ao. Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten. - 6.2.4 Lehr- und Lernbehelfe - Die Anschaffung unterrichtsbezogener Literatur und individueller Lernbehelfe ist durch den Unkostenbeitrag nicht abgedeckt. Eventuelle zusätzliche Kosten, die sich beispielsweise durch die lehrveranstaltungsbezogene, gemeinsame Anschaffung von Lehr- bzw. Lernbehelfen (Skripten, CDs, Bücher, Projektmaterialien, Kopierpapier etc.) oder durch Exkursionen ergeben, werden von jedem Studiengang individuell eingehoben. - 6.2.5 Beibringung persönlicher Daten - Die ao. Studentin bzw. der ao. Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw für den Studienbetrieb unerlässlich sind. - 6.2.6 Aktualisierung eigener Daten und Bezug von Informationen - Die ao. Studentin bzw. der ao. Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Studiengangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen. - 6.2.7 Verwertungsrechte - Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der ao. Studentin oder dem ao. Studenten getroffen wurden, ist die ao. Studentin oder der ao. Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten. - 6.2.8 Aufzeichnungen und Mitschnitte - Es ist der/dem ao. Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc, aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikationsmittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. - Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. - 6.2.9 Geheimhaltungspflicht - Die ao. Studentin bzw. der ao. Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet. - 6.2.10 Unfallmeldung - Im Falle eines Unfalles mit körperlicher Verletzung des/der ao. Studierenden im Zusammenhang mit dem ao. Studium ist die/der ao. Studierende verpflichtet, innerhalb von drei Tagen eine Meldung am Studiengangssekretariat einzubringen. Dies betrifft auch Wegunfälle zur oder von der FH. - - - - - - Beendigung des Vertrages - - - - - 7.1 Auflösung im beiderseitigen Einvernehmen - Im beiderseitigen Einvernehmen ist die Auflösung des Ausbildungsvertrages jederzeit ohne Angabe von Gründen möglich. Die einvernehmliche Auflösung bedarf der Schriftform. - - 7.2 Kündigung durch die ao. Studentin bzw. den ao. Studenten - Die ao. Studentin bzw. der ao. Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen. - - 7.3 Ausschluss durch den Erhalter - Der Erhalter kann die ao. Studentin bzw. den ao. Studenten aus wichtigem Grund mit sofortiger Wirkung vom weiteren Besuch einer bestimmten Lehrveranstaltung ausschließen, und zwar beispielsweise wegen - - - nicht genügender Leistung im Sinne der Prüfungsordnung; - - - mehrmaligem unentschuldigten Verletzen der Anwesenheitspflicht ; - - - wiederholtem Nichteinhalten von Prüfungsterminen und Abgabeterminen für Seminararbeiten, Projektarbeiten etc.; - - - schwerwiegender bzw. wiederholter Verstöße gegen die Hausordnung; - - - persönlichem Verhalten, das zu einer Beeinträchtigung des Images und/oder Betriebes des Studienganges, der Fachhochschule bzw. des Erhalters oder von Personen führt, die für die Fachhochschule bzw. den Erhalter tätig sind; - - - Verletzung der Verpflichtung, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen anzubieten (siehe Pkt. 6.2.7); - - - Verletzung der Geheimhaltungspflicht (siehe Pkt. 6.2.9); - - - strafgerichtlicher Verurteilung (wobei die Art des Deliktes und der Grad der Schuld berücksichtigt werden); - - - Nichterfüllung finanzieller Verpflichtungen trotz Mahnung (z.B. Unkostenbeitrag, Studienbeitrag etc.); - - - Weigerung zur Beibringung von Daten (siehe Pkt. 6.2.6) - - - Plagiieren im Rahmen wissenschaftlicher Arbeiten - - - - Besucht die ao. Studentin bzw. der ao. Student nur eine Lehrveranstaltung, so ist damit zugleich der Ausschluss vom ao. Studium verbunden. - Der Ausschluss kann mündlich erklärt werden. Mit Ausspruch des Ausschlusses vom ao. Studium endet der Ausbildungsvertrag, es sei denn, es wird ausdrücklich auf einen anderen Endtermin hingewiesen. Eine schriftliche Bestätigung des Ausschlusses wird innerhalb von zwei Wochen nach dessen Ausspruch per Post an die bekannt gegebene Adresse abgeschickt oder auf andere geeignete Weise übermittelt. Gleichzeitig mit dem Ausspruch des Ausschlusses kann auch ein Hausverbot verhängt werden. - - 7.4 Erlöschen - Der Ausbildungsvertrag erlischt mit der Beendigung der besuchten Lehrveranstaltungen durch die Ausstellung eines Zeugnisses oder einer Teilnahmebestätigung. Im Fall des Besuchs mehrerer Lehrveranstaltungen während eines Semesters gibt die Lehrveranstaltung mit der spätesten Ausstellung des Zeugnisses oder der Teilnahmebestätigung den Ausschlag. - - - + + - - - - Ergänzende Vereinbarungen - - - - - - Das gesamte Studienprogramm wird in englischer Sprache angeboten. Die ao. Studentin bzw. der ao. Student erklärt, die englische Sprache in Wort und Schrift in dem für eine akademische Ausbildung erforderlichen Ausmaß zu beherrschen. - - Ao. Studierende des Studiengangs sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und e-mail) trägt der ao. Student bzw. die ao. Studentin. - + + + Ausbildungsort + + + + + Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort in Wien festlegen, außerhochschulische Aktivitäten (zB Exkursionen) können auch außerhalb von Wien stattfinden. + + + + + + Vertragsgrundlage + + + + + Die Ausbildung erfolgt auf der Grundlage von § 4 Abs. 2 und 3 des Fachhochschul-Studiengesetzes, BGBl. Nr. 340/1993 idgF, des Hochschul-Qualitätssicherungsgesetzes, BGBl. I Nr. 74/2011 idgF und des Akkreditierungsbescheides des Board der AQ Austria vom 9.5.2012, GZ FH12020016 idgF und der Satzung der Fachhochschule Technikum Wien idgF. + + + + + + Ausbildungsdauer + + + + + Die Ausbildungsdauer des außerordentlichen Studiums ist durch die Dauer der Lehrveranstaltung/en, zu der bzw. denen die ao. Studentin bzw. der ao. Student zugelassen ist, definiert. + + + + + + Ausbildungsabschluss + + + + + Das außerordentliche Studium endet mit der positiven Absolvierung der in den jeweiligen Lehrveranstaltungen vorgesehenen Leistungsanforderungen. Nach dem positiven Abschluss wird der für die jeweilige Lehrveranstaltung vorgesehene Leistungsnachweis ausgestellt. + + + + + + Rechte und Pflichten des Erhalters + + + + + 5.1 Rechte + Der Erhalter führt eine periodische Überprüfung des die Lehrveranstaltungen anbietenden Studiengangs im Hinblick auf Relevanz und Aktualität durch und ist im Einvernehmen mit dem FH-Kollegium berechtigt, daraus Änderungen im Lehrangebot des Studienganges abzuleiten. + + Der Erhalter ist berechtigt, die Daten der/des ao. Studierenden an den FH Technikum Wien Alumni Club zu übermitteln. Der Alumni Club ist der AbsolventInnenverein der FH Technikum Wien. Er hat zum Ziel, AbsolventInnen, Studierende und Lehrende miteinander zu vernetzen sowie AbsolventInnen laufend über Aktivitäten an der FH Technikum Wien zu informieren. Einer Zusendung von Informationen durch den Alumni Club kann jederzeit widersprochen werden. + + + + + + 5.2 Pflichten + + + Der Erhalter verpflichtet sich zur ordnungsgemäßen Planung und Durchführung der Lehrveranstaltung/en in der vorgesehenen Zeit. Der Erhalter ist verpflichtet, allfällige Änderungen des akkreditierten Studienganges zeitgerecht bekannt zu geben. + + + Der Erhalter verpflichtet sich zur sorgfaltsgemäßen Verwendung der personenbezogenen Daten der ao. Studierenden. Die Daten werden nur im Rahmen der gesetzlichen und vertraglichen Verpflichtungen sowie des Studienbetriebes verwendet und nicht an nicht berechtigte Dritte weitergegeben. + + + + + + + + Rechte und Pflichten der Studierenden + + + + + 6.1 Rechte + Die ao. Studentin bzw. der ao. Student hat das Recht auf + + + einen Lehrveranstaltungsbetrieb gemäß den im akkreditierten Studiengang idgF und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen; + + + ein Zeugnis über die im laufenden Semester abgelegten Prüfungen. + + + + 6.2 Pflichten + 6.2.1 Einhaltung studienrelevanter Bestimmungen + Die ao. Studentin bzw der ao. Student ist verpflichtet, insbesondere folgende Bestimmungen einzuhalten: + + + Studienordnung und Studienrechtliche Bestimmungen / Prüfungsordnung idgF + + + Hausordnung idgF + + + Brandschutzordnung idgF + + + Bibliotheksordnung idgF + + + Die für den jeweiligen Studiengang geltende/n Laborordnung/en idgF + + + + Diese Dokumente sind öffentlich zugänglich unter www.technikum-wien.at. + 6.2.2 Studienbeitrag + Die ao. Studentin bzw. der ao. Student ist verpflichtet, vor Beginn jedes Semesters bis zum jeweils bekannt gegebenen Termin einen Studienbeitrag gemäß Fachhochschul-Studiengesetz idgF in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Im Falle einer Erhöhung des gesetzlichen Studienbeitragssatzes erhöht sich der angeführte Betrag entsprechend. Die vollständige Bezahlung des Studienbeitrags ist Voraussetzung für die Aufnahme bzw. die Fortsetzung des ao. Studiums. Bei Nichtantritt des ao. Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. + 6.2.3 ÖH-Beitrag + Gemäß § 4 Abs 10 FHStG sind ao. Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die ao. Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum ao. Studium bzw. für dessen Fortsetzung. + 6.2.4 Unkostenbeitrag + Pro Semester ist ein Unkostenbeitrag zu entrichten. Die Höhe des Unkostenbeitrages beträgt € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht. Der Unkostenbeitrag ist gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten. Bei Vertragsauflösung vor dem Ende der besuchten Lehrveranstaltungen aus Gründen, die die ao. Studentin bzw. der ao. Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten. + 6.2.5 Lehr- und Lernbehelfe + Die Anschaffung unterrichtsbezogener Literatur und individueller Lernbehelfe ist durch den Unkostenbeitrag nicht abgedeckt. Eventuelle zusätzliche Kosten, die sich beispielsweise durch die lehrveranstaltungsbezogene, gemeinsame Anschaffung von Lehr- bzw. Lernbehelfen (Skripten, CDs, Bücher, Projektmaterialien, Kopierpapier etc.) oder durch Exkursionen ergeben, werden von jedem Studiengang individuell eingehoben. + 6.2.6 Beibringung persönlicher Daten + Die ao. Studentin bzw. der ao. Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw für den Studienbetrieb unerlässlich sind. + 6.2.7 Aktualisierung eigener Daten und Bezug von Informationen + Die ao. Studentin bzw. der ao. Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Studiengangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen. + 6.2.8 Verwertungsrechte + Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der ao. Studentin oder dem ao. Studenten getroffen wurden, ist die ao. Studentin oder der ao. Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten. + 6.2.9 Aufzeichnungen und Mitschnitte + Es ist der/dem ao. Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc, aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikationsmittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. + Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. + 6.2.10 Geheimhaltungspflicht + Die ao. Studentin bzw. der ao. Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet. + 6.2.11 Unfallmeldung + Im Falle eines Unfalles mit körperlicher Verletzung des/der ao. Studierenden im Zusammenhang mit dem ao. Studium ist die/der ao. Studierende verpflichtet, diesen innerhalb von drei Tagen dem Studiengangssekretariat zu melden. Dies betrifft auch Wegunfälle zur oder von der FH. + 6.2.12 Schadensmeldung + Im Falle des Eintretens eines Schadens am Inventar der Fachhochschule ist der/die ao. Studierende verpflichtet, diesen innerhalb von drei Tagen dem Studiengangssekretariat zu melden. Allfällige Haftungsansprüche bleiben hiervon unberührt. + 6.2.13 Rückgabeverpflichtung bei Studienende + Die ao. Studentin bzw der ao. Student ist verpflichtet, bei einer Beendigung des ao. Ausbildungsverhältnisses unverzüglich alle zur Verfügung gestellten Gerätschaften, Bücher, Schlüssel und sonstige Materialien zurückzugeben. + + + + + + Beendigung des Vertrages + + + + + 7.1 Auflösung im beiderseitigen Einvernehmen + Im beiderseitigen Einvernehmen ist die Auflösung des Ausbildungsvertrages jederzeit ohne Angabe von Gründen möglich. Die einvernehmliche Auflösung bedarf der Schriftform. + + 7.2 Kündigung durch die ao. Studentin bzw. den ao. Studenten + Die ao. Studentin bzw. der ao. Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen. + + 7.3 Ausschluss durch den Erhalter + Der Erhalter kann die ao. Studentin bzw. den ao. Studenten aus wichtigem Grund mit sofortiger Wirkung vom weiteren Besuch einer bestimmten Lehrveranstaltung ausschließen, und zwar beispielsweise wegen + + + nicht genügender Leistung im Sinne der Prüfungsordnung; + + + mehrmaligem unentschuldigten Verletzen der Anwesenheitspflicht ; + + + wiederholtem Nichteinhalten von Prüfungsterminen und Abgabeterminen für Seminararbeiten, Projektarbeiten etc.; + + + schwerwiegender bzw. wiederholter Verstöße gegen die Hausordnung; + + + persönlichem Verhalten, das zu einer Beeinträchtigung des Images und/oder Betriebes des Studienganges, der Fachhochschule bzw. des Erhalters oder von Personen führt, die für die Fachhochschule bzw. den Erhalter tätig sind; + + + Verletzung der Verpflichtung, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen anzubieten (siehe Pkt. 6.2.8); + + + Verletzung der Geheimhaltungspflicht (siehe Pkt. 6.2.10); + + + strafgerichtlicher Verurteilung (wobei die Art des Deliktes und der Grad der Schuld berücksichtigt werden); + + + Nichterfüllung finanzieller Verpflichtungen trotz Mahnung (z.B. Unkostenbeitrag, Studienbeitrag etc.); + + + Weigerung zur Beibringung von Daten (siehe Pkt. 6.2.5) + + + Plagiieren im Rahmen wissenschaftlicher Arbeiten + + + + Besucht die ao. Studentin bzw. der ao. Student nur eine Lehrveranstaltung, so ist damit zugleich der Ausschluss vom ao. Studium verbunden. + Der Ausschluss kann mündlich erklärt werden. Mit Ausspruch des Ausschlusses vom ao. Studium endet der Ausbildungsvertrag, es sei denn, es wird ausdrücklich auf einen anderen Endtermin hingewiesen. Eine schriftliche Bestätigung des Ausschlusses wird innerhalb von zwei Wochen nach dessen Ausspruch per Post an die bekannt gegebene Adresse abgeschickt oder auf andere geeignete Weise übermittelt. Gleichzeitig mit dem Ausspruch des Ausschlusses kann auch ein Hausverbot verhängt werden. + + 7.4 Erlöschen + Der Ausbildungsvertrag erlischt mit der Beendigung der besuchten Lehrveranstaltungen durch die Ausstellung eines Zeugnisses oder einer Teilnahmebestätigung. Im Fall des Besuchs mehrerer Lehrveranstaltungen während eines Semesters gibt die Lehrveranstaltung mit der spätesten Ausstellung des Zeugnisses oder der Teilnahmebestätigung den Ausschlag. + + + + + + + + Ergänzende Vereinbarungen + + + + + + Das gesamte Studienprogramm wird in englischer Sprache angeboten. Die ao. Studentin bzw. der ao. Student erklärt, die englische Sprache in Wort und Schrift in dem für eine akademische Ausbildung erforderlichen Ausmaß zu beherrschen. + + Ao. Studierende des Studiengangs sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und e-mail) trägt der ao. Student bzw. die ao. Studentin. + - - - - - Unwirksamkeit von Vertragsbestimmungen, Vertragslücke - - - - - Sollten einzelne Bestimmungen dieses Vertrages unwirksam oder nichtig sein oder werden, so berührt dies die Gültigkeit der übrigen Bestimmungen dieses Vertrages nicht. - Die Vertragsparteien verpflichten sich, unwirksame oder nichtige Bestimmungen durch neue Bestimmungen zu ersetzen, die dem in den unwirksamen oder nichtigen Bestimmungen enthaltenen Regelungsgehalt in rechtlich zulässiger Weise gerecht werden. Zur Ausfüllung einer allfälligen Lücke verpflichten sich die Vertragsparteien, auf die Etablierung angemessener Regelungen in diesem Vertrag hinzuwirken, die dem am nächsten kommen, was sie nach dem Sinn und Zweck des Vertrages bestimmt hätten, wenn der Punkt von ihnen bedacht worden wäre. - - - - - - Ausfertigungen, Gebühren, Gerichtsstand - - - - - Die Ausfertigung dieses Vertrages erfolgt in zweifacher Ausführung. Ein Original verbleibt im zuständigen Administrationsbüro des Fachhochschul-Studienganges. Eine Ausfertigung wird der ao. Studentin bzw. dem ao. Studenten übergeben. - Der Ausbildungsvertrag ist gebührenfrei. - Gerichtsstand ist Wien, Innere Stadt. - - - - - Wien, - - - - - - - Ort, Datum - - - - - - Ort, Datum - - - - - - - - - Die ao. Studentin/der ao. Studentggf. gesetzliche VertreterInnen - - - - - - Für die FH Technikum Wien - - - - - + + + + + Unwirksamkeit von Vertragsbestimmungen + + + + + Sollten einzelne Bestimmungen dieses Vertrages unwirksam oder nichtig sein oder werden, so berührt dies die Gültigkeit der übrigen Bestimmungen dieses Vertrages nicht. + + + + + + Ausfertigungen, Gebühren, Gerichtsstand, geltendes Recht + + + + + Die Ausfertigung dieses Vertrages erfolgt in zweifacher Ausführung. Ein Original verbleibt im zuständigen Administrationsbüro des Fachhochschul-Studienganges. Eine Ausfertigung wird der ao. Studentin bzw. dem ao. Studenten übergeben. Für Streitigkeiten aus diesem Vertrag gilt österreichisches Recht als vereinbart, allfällige Klagen gegen den Erhalter sind beim sachlich zuständigen Gericht in Wien einzubringen. + Der Ausbildungsvertrag ist gebührenfrei. + + + + + Wien, + + + + + + + Ort, Datum + + + + + + Ort, Datum + + + + + + + + + Die ao. Studentin/der ao. Studentggf. gesetzliche VertreterInnen + + + + + + Für die FH Technikum Wien + + + + + \ No newline at end of file From 60e1e444e973e8bf4874f6f42448ac8cf1bca8c6 Mon Sep 17 00:00:00 2001 From: kindlm Date: Mon, 18 Jul 2016 12:05:28 +0200 Subject: [PATCH 003/140] =?UTF-8?q?Link=20zum=20DMS-File=20in=20Bildpr?= =?UTF-8?q?=C3=BCfung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/fhausweis/bildpruefung.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/vilesci/fhausweis/bildpruefung.php b/vilesci/fhausweis/bildpruefung.php index 5df40c11f..cf44746cd 100755 --- a/vilesci/fhausweis/bildpruefung.php +++ b/vilesci/fhausweis/bildpruefung.php @@ -294,11 +294,11 @@ if (isset($_GET['ansicht'])) { if ($_GET['ansicht'] == 'mitarbeiter') { - $ansicht = 'AND uid IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter)'; + $ansicht = 'AND tbl_benutzer.uid IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter)'; $mitarbeiterSubmit = ''; } if ($_GET['ansicht'] == 'studenten') - $ansicht = 'AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter)'; + $ansicht = 'AND tbl_benutzer.uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter)'; } else { @@ -320,7 +320,7 @@ $qry_anzahl_mitarbeiter = " WHERE person_id=tbl_person.person_id ORDER BY datum desc, person_fotostatus_id desc LIMIT 1) AND 'abgewiesen' NOT IN (SELECT fotostatus_kurzbz FROM public.tbl_person_fotostatus WHERE person_id=tbl_person.person_id ORDER BY datum desc, person_fotostatus_id desc LIMIT 1) - AND uid IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter) + AND tbl_benutzer.uid IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter) "; $anzahl_ma = ''; if($result_anzahl = $db->db_query($qry_anzahl_mitarbeiter)) @@ -388,9 +388,11 @@ $qry = " FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) + JOIN public.tbl_akte USING (person_id) WHERE foto is not NULL AND tbl_benutzer.aktiv + AND tbl_akte.dokument_kurzbz='Lichtbil' ".$ansicht; @@ -453,6 +455,8 @@ if($result = $db->db_query($qry)) echo ''; echo '


'; echo 'Bild Upload'; + echo '

'; + echo 'DMS Download'; echo ''; } else From 7b89d4dbbea45f2de75530f0f65ff714379c6dc2 Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 1 Aug 2016 14:25:06 +0200 Subject: [PATCH 004/140] =?UTF-8?q?Bugfix=20f=C3=BCr=20das=20L=C3=B6schen?= =?UTF-8?q?=20von=20Kursen=20mit=20Moodle=203.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/moodle24_course.class.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/moodle24_course.class.php b/include/moodle24_course.class.php index 5e2c943cd..8f43c5413 100644 --- a/include/moodle24_course.class.php +++ b/include/moodle24_course.class.php @@ -734,6 +734,15 @@ class moodle24_course extends basis_db $data = array($mdl_course_id); $response = $client->core_course_delete_courses(array($mdl_course_id)); + + if(is_object($response)) + { + $response_obj = $response; + unset($response); + if(isset($response_obj->warnings) && isset($response_obj->warnings->message)) + $response[0] = $response_obj->warnings->message; + } + if(isset($response[0])) { $this->errormsg = $response[0]; From 0f48d7996a64814b585a1f9f8c1b4944ca87a468 Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 1 Aug 2016 16:46:34 +0200 Subject: [PATCH 005/140] =?UTF-8?q?Config=20Eintrag=20f=C3=BCr=20Menu=20da?= =?UTF-8?q?mit=20keine=20Links=20angezeigt=20werden=20bei=20Modulen=20ohne?= =?UTF-8?q?=20Lehrauftrag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/menu.php | 1 + cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php | 6 +++++- config/global.config-default.inc.php | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/cis/menu.php b/cis/menu.php index 5627f7b3b..089271e44 100644 --- a/cis/menu.php +++ b/cis/menu.php @@ -23,6 +23,7 @@ */ require_once('../config/cis.config.inc.php'); +require_once('../config/global.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../cms/menu.inc.php'); require_once('../include/phrasen.class.php'); diff --git a/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php b/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php index a9d11ccfd..0455b87c6 100644 --- a/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php +++ b/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php @@ -329,7 +329,11 @@ class menu_addon_lehrveranstaltungen_studienplan extends menu_addon $bold='font-weight:bold;'; else $bold=''; - $this->block.= "
  • bezeichnung_arr[$sprache]."\" href=\"private/lehre/lesson.php?lvid=$row->lehrveranstaltung_id&studiensemester_kurzbz=$studiensemester_kurzbz\" target=\"content\">".$this->CutString($row->bezeichnung_arr[$sprache], 21).' '.$row->lehrform_kurzbz."
  • "; + if(!$row->lehrauftrag && defined('CIS_LEHRVERANSTALTUNG_MODULE_LINK') && !CIS_LEHRVERANSTALTUNG_MODULE_LINK) + $this->block.= "
  • ".$this->CutString($row->bezeichnung_arr[$sprache], 21).' '.$row->lehrform_kurzbz."
  • "; + else + $this->block.= "
  • bezeichnung_arr[$sprache]."\" href=\"private/lehre/lesson.php?lvid=$row->lehrveranstaltung_id&studiensemester_kurzbz=$studiensemester_kurzbz\" target=\"content\">".$this->CutString($row->bezeichnung_arr[$sprache], 21).' '.$row->lehrform_kurzbz."
  • "; + if(isset($row->childs)) $this->printTree($row->childs, $sprache, $studiensemester_kurzbz); } diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index 75a31a31c..e9183f358 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -25,6 +25,9 @@ define('CIS_LEHRVERANSTALTUNG_SEMESTERINFO_ANZEIGEN',true); define('CIS_LEHRVERANSTALTUNG_LEHRFACH_ANZEIGEN',false); define('CIS_LEHRVERANSTALTUNG_GESAMTNOTE_ANZEIGEN', true); +// Im CIS Menue Links bei Modulen anzeigen wenn Lehrauftrag +define('CIS_LEHRVERANSTALTUNG_MODULE_LINK',true); + // Legt fest, ob bei den LV-Infos der Block mit den Terminen zu den einzelnen LVs (laut Stundenplan) angezeigt werden soll define ('CIS_LVINFO_TERMINE_ANZEIGEN', false); From 4d800a39d3d416dda7591ee512b760567cc28f40 Mon Sep 17 00:00:00 2001 From: kindlm Date: Tue, 2 Aug 2016 11:38:12 +0200 Subject: [PATCH 006/140] Zutrittskarte.php Wenn kein Lichtbild in den Akten vorhanden ist, Foto aus tbl_person holen; Wenn der Inhalt des Lichtbilds leer ist, Foto aus tbl_person holen; Wenn auch kein Foto in tbl_person gespeichert ist, mit der naechsten UID fortfahren --- content/zutrittskarte.php | 42 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/content/zutrittskarte.php b/content/zutrittskarte.php index d825ba3b8..83fd0e4b4 100755 --- a/content/zutrittskarte.php +++ b/content/zutrittskarte.php @@ -101,8 +101,46 @@ if(copy($zipfile, $tempname_zip)) $cTmpHEX='/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q=='; if($result = $db->db_query($qry)) { - if($row = $db->db_fetch_object($result)) - $cTmpHEX=$row->foto; + //Wenn kein Lichtbild in den Akten vorhanden ist, Foto aus tbl_person holen + if ($db->db_num_rows($result) == 0) + { + $qry_person = "SELECT foto FROM public.tbl_person WHERE person_id=".$db->db_add_param($bn->person_id, FHC_INTEGER); + + if($result_person = $db->db_query($qry_person)) + { + if($row_person = $db->db_fetch_object($result_person)) + { + //Wenn auch kein Foto in tbl_person gespeichert ist, mit der naechsten UID fortfahren + if($row_person->foto == '') + continue; + else + $cTmpHEX = $row_person->foto; + } + } + } + + if($row = $db->db_fetch_object($result)) + { + //Wenn der Inhalt des Lichtbilds leer ist, Foto aus tbl_person holen + if ($row->foto =='') + { + $qry_person = "SELECT foto FROM public.tbl_person WHERE person_id=".$db->db_add_param($bn->person_id, FHC_INTEGER); + + if($result_person = $db->db_query($qry_person)) + { + if($row_person = $db->db_fetch_object($result_person)) + { + //Wenn auch kein Foto in tbl_person gespeichert ist, mit der naechsten UID fortfahren + if($row_person->foto == '') + continue; + else + $cTmpHEX = $row_person->foto; + } + } + } + else + $cTmpHEX = $row->foto; + } } // Bild in den Temp Ordner zwischenspeichern From 243b4ece992e697fddf6d46d6c2f32318558f1b3 Mon Sep 17 00:00:00 2001 From: kindlm Date: Tue, 2 Aug 2016 11:39:14 +0200 Subject: [PATCH 007/140] Uebernahmebestaetigung Schluessel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wenn Typ Schlüssel ist, wird die Nummer des Schlüssels auf der Übernahmebestätigung angedruckt --- system/xsl/uebernahmebestaetigung_0.xsl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/system/xsl/uebernahmebestaetigung_0.xsl b/system/xsl/uebernahmebestaetigung_0.xsl index 6f2080beb..37c4a1ea2 100644 --- a/system/xsl/uebernahmebestaetigung_0.xsl +++ b/system/xsl/uebernahmebestaetigung_0.xsl @@ -207,6 +207,16 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" + + + + Nummer + + + + + + Inventarnummer From 7574597fe646a95e6cdc41df2a73f65e44a5e592 Mon Sep 17 00:00:00 2001 From: kindlm Date: Tue, 2 Aug 2016 11:40:06 +0200 Subject: [PATCH 008/140] =?UTF-8?q?Freif=C3=A4cherzertifikat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lehrziele werden mit Aufzählungszeichen angedruckt --- system/xsl/ZertifikatFreifaecher_0.xsl | 104 ++++++++++++++++++++----- 1 file changed, 85 insertions(+), 19 deletions(-) diff --git a/system/xsl/ZertifikatFreifaecher_0.xsl b/system/xsl/ZertifikatFreifaecher_0.xsl index 6c9c68963..3966ce359 100644 --- a/system/xsl/ZertifikatFreifaecher_0.xsl +++ b/system/xsl/ZertifikatFreifaecher_0.xsl @@ -210,8 +210,60 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
    - - + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -220,7 +272,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + @@ -334,11 +386,15 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + + + + + + @@ -389,19 +445,29 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + From 9610418a965ae9f6d2a6f5e994e34c539ff5aedf Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Tue, 9 Aug 2016 09:21:19 +0200 Subject: [PATCH 009/140] fixed bug for missing data --- rdf/student.rdf.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php index 44dc8e6ae..f9a5d509a 100755 --- a/rdf/student.rdf.php +++ b/rdf/student.rdf.php @@ -801,7 +801,7 @@ else break; } } - $prestudent = new prestudent(); + $prestudent = new prestudent($student->prestudent_id); $prestudent->getLastStatus($student->prestudent_id); $orgform_bezeichnung = new organisationsform(); From 20a750b9c3875b2f9ac7042908840454775eb746 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Tue, 9 Aug 2016 09:32:55 +0200 Subject: [PATCH 010/140] fixed date and time errors --- cis/private/lehre/pruefung/pruefungsanmeldung.json.php | 8 ++++---- cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index fe60b3247..7a1dbbf6d 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -614,7 +614,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); - $html = $p->t('pruefung/emailLektorStudentIn')." ".$student->vorname." ".$student->nachname." ".$p->t('pruefung/emailLektorHatSichZurPruefung')." ".$lv->bezeichnung." ".$p->t('pruefung/emailLektorAm')." ".$datum->formatDatum($termin->von, "m.d.Y")." ".$p->t('pruefung/emailLektorVon')." ".$datum->formatDatum($termin->von,"h:i")." ".$p->t('pruefung/emailLektorUhrBis')." ".$datum->formatDatum($termin->bis,"h:i")." ".$p->t('pruefung/emailLektorUhrAngemeldet'); + $html = $p->t('pruefung/emailLektorStudentIn')." ".$student->vorname." ".$student->nachname." ".$p->t('pruefung/emailLektorHatSichZurPruefung')." ".$lv->bezeichnung." ".$p->t('pruefung/emailLektorAm')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailLektorVon')." ".$datum->formatDatum($termin->von,"H:i")." ".$p->t('pruefung/emailLektorUhrBis')." ".$datum->formatDatum($termin->bis,"H:i")." ".$p->t('pruefung/emailLektorUhrAngemeldet'); $mail->setHTMLContent($html); $mail->send(); @@ -839,15 +839,15 @@ function anmeldungBestaetigen($uid) $html .= $p->t('pruefung/emailBodyPruefung')." ".$lv->bezeichnung."
    "; if($pruefung->einzeln) { - $date = $datum->formatDatum($termin->von, "Y-m-d h:i:s"); + $date = $datum->formatDatum($termin->von, "Y-m-d H:i:s"); $date = strtotime($date); $date = $date+(60*$pruefung->pruefungsintervall*($anmeldung->reihung-1)); - $von = date("h:i",$date); + $von = date("H:i",$date); $html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$von."
    "; $html .= $p->t('pruefung/emailBodyDauer')." ".$pruefung->pruefungsintervall." ".$p->t('pruefung/emailBodyMinuten')."
    "; } else - $html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$datum->formatDatum($termin->von, "h:i")."
    "; + $html .= $p->t('pruefung/emailBodyTermin')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailBodyUm')." ".$datum->formatDatum($termin->von, "H:i")."
    "; $html .= $p->t('pruefung/anmeldungErfolgreich')." ".$ort->bezeichnung."
    "; $html .= "
    "; $html .= "".$p->t('pruefung/emailBodyLinkZurAnmeldung')."
    "; diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php index d01bada61..ea07690bb 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php @@ -247,7 +247,7 @@ $rechte->getBerechtigungen($uid); $date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s"); $date = strtotime($date); $date = $date+(60*$pruefungsintervall*($count)); - $date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("h:i",$date); + $date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date); $count++; } else From 4a5f0554c7ae8724990af30409d7ab8a9d1ce5f0 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Tue, 9 Aug 2016 09:44:03 +0200 Subject: [PATCH 011/140] fixed bug when saving a comment --- include/pruefungsanmeldung.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/pruefungsanmeldung.class.php b/include/pruefungsanmeldung.class.php index 49dd8dd54..67b32e65a 100644 --- a/include/pruefungsanmeldung.class.php +++ b/include/pruefungsanmeldung.class.php @@ -114,7 +114,7 @@ class pruefungsanmeldung extends basis_db { . 'wuensche='.$this->db_add_param($this->wuensche).', ' . 'reihung='.$this->db_add_param($this->reihung).', ' . 'kommentar='.$this->db_add_param($this->kommentar).', ' - . 'anrechnung_id='.$this->db_add_param($this->anrechnung_id) + . 'anrechnung_id='.$this->db_add_param($this->anrechnung_id).', ' . 'pruefungstyp_kurzbz='.$this->db_add_param($this->pruefungstyp_kurzbz) . ' WHERE pruefungsanmeldung_id='.$this->db_add_param($this->pruefungsanmeldung_id).';'; } From b75a82a4fae90c73f4d54453fb60dc3dbe978373 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Tue, 9 Aug 2016 10:04:24 +0200 Subject: [PATCH 012/140] fixed bug when saving anrechnung in FAS --- include/anrechnung.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/anrechnung.class.php b/include/anrechnung.class.php index 122e587fa..6ab323a96 100644 --- a/include/anrechnung.class.php +++ b/include/anrechnung.class.php @@ -166,9 +166,9 @@ class anrechnung extends basis_db . 'genehmigt_von = ' . $this->db_add_param($this->genehmigt_von) . ', ' . 'updateamum = NOW(), ' . 'updatevon = ' . $this->db_add_param($this->updatevon) . ' ' - . 'WHERE anrechnung_id = ' . $this->db_add_param($this->anrechnung_id); + . 'WHERE anrechnung_id = ' . $this->db_add_param($this->anrechnung_id). ' RETURNING anrechnung_id;'; } - + if ($this->db_query($qry)) { $this->anrechnung_id = $this->db_fetch_object()->anrechnung_id; From 6bee67167449cb429909a618cf743eea852e0d8c Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Tue, 9 Aug 2016 11:45:04 +0200 Subject: [PATCH 013/140] fixed bug in mehtod to check rules --- include/lvregel.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/lvregel.class.php b/include/lvregel.class.php index 4e264df5f..bf3de11fa 100644 --- a/include/lvregel.class.php +++ b/include/lvregel.class.php @@ -778,7 +778,7 @@ class lvregel extends basis_db $lv->load($stpllv->lehrveranstaltung_id); $this->debug('Abgeschlossen:'.$retval.' ECTS:'.$ects,1); - if($ects>=$lv->ects) + if($retval && ($ects>=$lv->ects)) return true; else return false; From cac1aae2351eb191f4f23242dbc45189e46ebee4 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Thu, 18 Aug 2016 11:20:02 +0200 Subject: [PATCH 014/140] implemented cascading deletion of persons/employees/students --- vilesci/personen/suche.php | 1312 +++++++++++++++++++++++++++++++++++- 1 file changed, 1307 insertions(+), 5 deletions(-) diff --git a/vilesci/personen/suche.php b/vilesci/personen/suche.php index 35500dd50..a60c90676 100644 --- a/vilesci/personen/suche.php +++ b/vilesci/personen/suche.php @@ -29,6 +29,7 @@ require_once('../../include/person.class.php'); require_once('../../include/benutzer.class.php'); require_once('../../include/student.class.php'); require_once('../../include/prestudent.class.php'); +require_once('../../include/mitarbeiter.class.php'); require_once('../../include/datum.class.php'); require_once('../../include/authentication.class.php'); require_once('../../include/benutzerberechtigung.class.php'); @@ -47,6 +48,9 @@ if(isset($_GET['searchstr'])) else $searchstr = ''; +$msgString = ""; +$errString = ""; + if(isset($_GET['filter'])) $filter = $_GET['filter']; else @@ -54,12 +58,129 @@ else $datum_obj = new datum(); +$admin = false; +if($rechte->isBerechtigt('admin')) + $admin = true; + +if($admin) +{ + if(isset($_REQUEST["delete"])) + { + if(isset($_REQUEST["mitarbeiter"])) + { + $mita = new mitarbeiter(); + $mita->load($_REQUEST["mitarbeiter"]); + + if(!casDeleteMitarbeiter($db, $_REQUEST["mitarbeiter"])) + $errString = 'Fehler beim Loeschen des Mitarbeiter-Datensatzes'; + else + { + $msgString = ($mita->geschlecht == "w" ? "Mitarbeiterin '" : "Mitarbeiter '") . $mita->vorname . " " . $mita->nachname . "' wurde erfolgreich geloescht"; + } + } + else if(isset($_REQUEST["prestudent"])) + { + $pres = new prestudent(); + $pres->load($_REQUEST["prestudent"]); + + if(!casDeletePrestudent($db, $_REQUEST["prestudent"])) + $errString = 'Fehler beim Loeschen des Prestudent-Datensatzes'; + else + { + $msgString = ($pres->geschlecht == "w" ? "Studentin '" : "Student '") . $pres->vorname . " " . $pres->nachname . "' wurde erfolgreich geloescht"; + } + } + else if(isset($_REQUEST["person"])) + { + $pers = new person(); + $pers->load($_REQUEST["person"]); + + if(!casDeletePerson($db, $_REQUEST["person"])) + $errString = 'Fehler beim Loeschen des Person-Datensatzes'; + else + { + $msgString = "Person '" . $pers->vorname . " " . $pers->nachname . "' wurde erfolgreich geloescht"; + } + } + } +} + echo ' Suchergebnis + @@ -68,6 +189,7 @@ echo ' $stg = new studiengang(); $stg->getAll('typ, kurzbz', false); + $stg_arr = array(); foreach ($stg->result as $row) $stg_arr[$row->studiengang_kz]=$row->kuerzel; @@ -80,6 +202,9 @@ echo ' '; +echo "

    $errString

    "; +echo "

    $msgString

    "; + if($searchstr!='') { $qry = "SELECT @@ -112,6 +237,7 @@ if($searchstr!='') echo "Benutzer"; echo "Mitarbeiter"; echo "Student"; + if($admin){echo "";} echo ''; echo ''; echo "Nachname"; @@ -131,6 +257,7 @@ if($searchstr!='') echo "Gruppe"; echo "updateAmUm"; echo "updateVon"; + if($admin){echo "";} echo ''; while($row = $db->db_fetch_object($result)) @@ -144,7 +271,7 @@ if($searchstr!='') echo "$row_person->nachname"; echo "$row_person->vorname"; echo "".($row_person->gebdatum!=''?$datum_obj->convertISODate($row_person->gebdatum):'').""; - echo "".($row_person->updateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_person->updateamum)):'').""; + echo "".($row_person->updateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_FROMtimestamp($row_person->updateamum)):'').""; echo "$row_person->updatevon"; echo ""; echo ""; @@ -158,6 +285,7 @@ if($searchstr!='') echo ""; echo ""; echo ""; + if($admin){echo 'Löschen';} echo ''; $content = ''; @@ -189,15 +317,18 @@ if($searchstr!='') else $content.="Nein"; $content.= ""; - //$content.= "".($row_mitarbeiter->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_mitarbeiter->bnupdateamum)):'').""; + //$content.= "".($row_mitarbeiter->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_FROMtimestamp($row_mitarbeiter->bnupdateamum)):'').""; //$content.= "$row_mitarbeiter->bnupdatevon"; $content.= "$row_mitarbeiter->telefonklappe"; $content.= "$row_mitarbeiter->ort_kurzbz"; - $content.= "".($row_mitarbeiter->mupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_mitarbeiter->mupdateamum)):'').""; + $content.= "".($row_mitarbeiter->mupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_FROMtimestamp($row_mitarbeiter->mupdateamum)):'').""; $content.= "$row_mitarbeiter->mupdatevon"; $content.= ""; $content.= ""; + $content.= ""; + $content.= ""; + if($admin){$content.= 'Löschen';} $content.= ''; } } @@ -233,7 +364,7 @@ if($searchstr!='') else $content.="Nein"; $content.= ""; - //$content.= "".($row_student->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_student->bnupdateamum)):'').""; + //$content.= "".($row_student->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_FROMtimestamp($row_student->bnupdateamum)):'').""; //$content.= "$row_student->bnupdatevon"; $content.= ""; @@ -242,8 +373,9 @@ if($searchstr!='') $content.= ""; $content.= "".$stg_arr[$row_student->studiengang_kz].""; $content.= "$row_student->semester$row_student->verband$row_student->gruppe"; - $content.= "".($row_student->supdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_student->supdateamum)):'').""; + $content.= "".($row_student->supdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_FROMtimestamp($row_student->supdateamum)):'').""; $content.= "$row_student->supdatevon"; + if($admin){$content.= 'Löschen';} $content.= ''; } } @@ -257,6 +389,1176 @@ if($searchstr!='') } } + +/* + * Cascading delete functions + */ +function casDeleteMitarbeiter($db, $mitarbeiter_uid, $trans=true) +{ + /* + * Init + */ + if($trans){$db->db_query("BEGIN;");} + $error = false; + + $projektphase_ids = array(); + + // get all projektphase_ids, where the employee is involved with + if(!$error) + { + $qry = ' + SELECT projektphase_id FROM fue.tbl_projektphase + WHERE ressource_id IN (SELECT ressource_id FROM fue.tbl_ressource WHERE mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid).')'; + $res = $db->db_query($qry); + if(!$res) + { + $error = true; + } + else + { + while($row = $db->db_fetch_object($res)) + { + // and get FROM this projektphase_ids all other projekphase_ids recursively + $add = recursiveGetAllProjektphase_id($db, $row->projektphase_id); + if($add) + $projektphase_ids = array_merge($projektphase_ids, $add); + } + } + } + + if(!$error && !empty($projektphase_ids)) + { + $qry = ' + DELETE FROM fue.tbl_projekt_ressource + WHERE projektphase_id IN ('.$db->implode4SQL($projektphase_ids).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM fue.tbl_projekttask + WHERE ressource_id IN (SELECT ressource_id FROM fue.tbl_ressource WHERE mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error && !empty($projektphase_ids)) + { + $qry = ' + DELETE FROM fue.tbl_projekt_dokument + WHERE projektphase_id IN ('.$db->implode4SQL($projektphase_ids).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error && !empty($projektphase_ids)) + { + $qry = ' + DELETE FROM fue.tbl_projekttask + WHERE projektphase_id IN ('.$db->implode4SQL($projektphase_ids).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error && !empty($projektphase_ids)) + { + $qry = ' + DELETE FROM fue.tbl_projektphase + WHERE projektphase_id IN ('.$db->implode4SQL($projektphase_ids).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_selbstevaluierung + WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung_antwort + WHERE lvevaluierung_code_id IN (SELECT lvevaluierung_code_id FROM addon.tbl_lvevaluierung_code + WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel + WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))))))))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_antwort + WHERE lvevaluierung_code_id IN (SELECT lvevaluierung_code_id FROM addon.tbl_lvevaluierung_code + WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel + WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))))))'; + if(!$db->db_query($qry)) + $error = true; + } + + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_code + WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel + WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))))))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel + WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_studentbeispiel + WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_studentuebung + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_legesamtnote + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_moodle + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_preincoming_lehrveranstaltung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_benutzerlvstudiensemester + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_feedback + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_feedback + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_moodle + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_projektbetreuer + WHERE projektarbeit_id IN (SELECT projektarbeit_id FROM lehre.tbl_projektarbeit + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM bis.tbl_bisfunktion + WHERE bisverwendung_id IN (SELECT bisverwendung_id FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM fue.tbl_projektphase + WHERE ressource_id IN (SELECT ressource_id FROM fue.tbl_ressource WHERE mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM fue.tbl_projekt_ressource + WHERE ressource_id IN (SELECT ressource_id FROM fue.tbl_ressource WHERE mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_stundenplan + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_paabgabe + WHERE projektarbeit_id IN (SELECT projektarbeit_id FROM lehre.tbl_projektarbeit + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_projektarbeit + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_pruefung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_stundenplandev + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_studienplan_lehrveranstaltung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_zeugnisnote + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_lvgesamtnote + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_lvinfo + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + if(!$error) + { + if(!deleteWithFirstlevelDeps($db, 'mitarbeiter_uid', 'public', 'tbl_mitarbeiter', $mitarbeiter_uid, FHC_STRING)) + { + $error = true; + } + } + + /* + * Delete the tbl_mitarbeiter entry + */ + $qry = 'DELETE FROM public.tbl_mitarbeiter where mitarbeiter_uid='.$db->db_add_param($mitarbeiter_uid); + if(!$error && !$db->db_query($qry)) + $error = true; + + /* + * Rollback if an + * error occoured + */ + if(!$error) + { + + if($trans){$db->db_query("COMMIT;");} + return true; + } + + + if($trans){$db->db_query("ROLLBACK;");} + return false; +} + + + + + + +function casDeletePrestudent($db, $prestudent_id, $trans=true) +{ + /* + * Init + */ + if($trans){$db->db_query("BEGIN;");} + $error = false; + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_studentbeispiel + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM bis.tbl_bisio + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_legesamtnote + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_lvgesamtnote + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_studentuebung + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_abschlusspruefung + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_projektbetreuer + WHERE projektarbeit_id IN (SELECT projektarbeit_id FROM lehre.tbl_projektarbeit WHERE student_uid IN (SELECT student_uid FROM tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_paabgabe + WHERE projektarbeit_id IN (SELECT projektarbeit_id FROM lehre.tbl_projektarbeit WHERE student_uid IN (SELECT student_uid FROM tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_projektarbeit + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_zeugnisnote + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_studentlehrverband + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_pruefung + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM fue.tbl_projekt_ressource + WHERE ressource_id IN(SELECT ressource_id FROM fue.tbl_ressource + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM fue.tbl_ressource + WHERE student_uid IN (SELECT student_uid FROM public.tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + if(!deleteWithFirstlevelDeps($db, 'prestudent_id', 'public', 'tbl_prestudent', $prestudent_id, FHC_INTEGER)) + { + $error = true; + } + } + + /* + * Delete the tbl_student entry + */ + $qry = 'DELETE FROM public.tbl_student where prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER); + if(!$error && !$db->db_query($qry)) + $error = true; + + /* + * Delete the tbl_prestudent entry + */ + $qry = 'DELETE FROM public.tbl_prestudent where prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER); + if(!$error && !$db->db_query($qry)) + $error = true; + + /* + * Rollback if an + * error occoured + */ + if(!$error) + { + + if($trans){$db->db_query("COMMIT;");} + return true; + } + + + if($trans){$db->db_query("ROLLBACK;");} + return false; +} + + + + + + +function casDeletePerson($db, $person_id, $trans=true) +{ + /* + * Init + */ + if($trans){$db->db_query("BEGIN;");} + $error = false; + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_prestudentstatus + WHERE prestudent_id IN (SELECT prestudent_id FROM public.tbl_prestudent WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_dokumentprestudent + WHERE prestudent_id IN (SELECT prestudent_id FROM public.tbl_prestudent WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_feedback + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM lehre.tbl_studienplan_lehrveranstaltung + WHERE koordinator IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_akte + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_casetime_gruppen + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_casetime_zeitaufzeichnung + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_casetime_zeitsperre + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_zeitaufzeichnung + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_contentlog + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle_ressource_termin + WHERE coodle_ressource_id IN (SELECT coodle_ressource_id FROM campus.tbl_coodle_ressource + WHERE coodle_id IN (SELECT coodle_id FROM campus.tbl_coodle + WHERE ersteller_uid IN(SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).' + ) + ) + )'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle_ressource + WHERE coodle_id IN (SELECT coodle_id FROM campus.tbl_coodle WHERE ersteller_uid IN(SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle_termin + WHERE coodle_id IN (SELECT coodle_id FROM campus.tbl_coodle + WHERE ersteller_uid IN(SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle + WHERE ersteller_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle_ressource_termin + WHERE coodle_ressource_id IN (SELECT coodle_ressource_id FROM campus.tbl_coodle_ressource + WHERE uid IN (SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).' + ) + )'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_coodle_ressource + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_zeitaufzeichnung + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_zeitaufzeichnung + WHERE kunde_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_news + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_variable + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_prestudentstatus + WHERE bestaetigtvon IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_betriebsmittelperson + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_bestellung_bestellstatus + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_rechnung + WHERE bestellung_id IN (SELECT bestellung_id FROM wawi.tbl_bestellung + WHERE besteller_uid IN(SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = 'DELETE FROM wawi.tbl_betriebsmittelperson + WHERE betriebsmittel_id IN ( SELECT betriebsmittel_id FROM wawi.tbl_betriebsmittel + WHERE bestellung_id IN (SELECT bestellung_id FROM wawi.tbl_bestellung + WHERE besteller_uid IN(SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_betriebsmittel + WHERE bestellung_id IN (SELECT bestellung_id FROM wawi.tbl_bestellung + WHERE besteller_uid IN(SELECT uid FROM public.tbl_benutzer + WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_bestellung + WHERE besteller_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM wawi.tbl_bestellung_bestellstatus + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_preinteressentstudiengang + WHERE preinteressent_id IN (SELECT preinteressent_id FROM public.tbl_preinteressent WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_reservierung + WHERE veranstaltung_id IN (SELECT veranstaltung_id FROM campus.tbl_veranstaltung + WHERE freigabevon IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).'))'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM campus.tbl_veranstaltung + WHERE freigabevon IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM public.tbl_preoutgoing + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_selbstevaluierung + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } + + if(!$error) + { + $qry = ' + DELETE FROM addon.tbl_software + WHERE ansprechperson_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + { + $error = true; + } + } + + + + + + /* + * delete all prestudent entries + */ + if(!$error) + { + $queryPs = ' + SELECT tbl_prestudent.prestudent_id FROM tbl_prestudent + JOIN tbl_student ON (tbl_prestudent.prestudent_id = tbl_student.prestudent_id) + JOIN tbl_benutzer ON (tbl_student.student_uid = tbl_benutzer.uid) + WHERE tbl_benutzer.person_id = ' . $db->db_add_param($person_id, FHC_INTEGER).' + '; + $resultPs = $db->db_query($queryPs); + if(!$resultPs) + { + $error = true; + } + else + { + while($row = $db->db_fetch_object($resultPs)) + { + if(!$error) + { + if(!casDeletePrestudent($db, $row->prestudent_id, false)) + { + $error = true; + } + } + else { break; } + } + } + } + + /* + * delete all mitarbeiter entries + */ + if(!$error) + { + $queryMa = ' + SELECT tbl_mitarbeiter.mitarbeiter_uid FROM tbl_mitarbeiter + JOIN tbl_benutzer ON (tbl_mitarbeiter.mitarbeiter_uid = tbl_benutzer.uid) + WHERE tbl_benutzer.person_id = ' . $db->db_add_param($person_id, FHC_INTEGER).' + '; + $resultMa = $db->db_query($queryMa); + if(!$resultMa) + { + $error = true; + } + else + { + while($row = $db->db_fetch_object($resultMa)) + { + if(!$error) + { + if(!casDeleteMitarbeiter($db, $row->mitarbeiter_uid, false)) + $error = true; + } + else { break; } + } + } + } + + + + if(!$error) + { + if(!deleteWithFirstlevelDeps($db, 'person_id', 'public', 'tbl_person', $person_id, FHC_INTEGER)) + { + $error = true; + } + } + + /* + * Delete the tbl_person entry + */ + $qry = 'DELETE FROM public.tbl_person where person_id='.$db->db_add_param($person_id, FHC_INTEGER); + if(!$error && !$db->db_query($qry)) + { + $error = true; + } + + /* + * Rollback, if an + * error occoured + */ + if(!$error) + { + + if($trans){$db->db_query("COMMIT;");} + return true; + } + + + if($trans){$db->db_query("ROLLBACK;");} + return false; +} + + + + + +function deleteWithFirstlevelDeps($db, $column_name, $table_schema, $table_name, $data, $dataType) +{ + /* + * Resolve all neede Tables + */ + $qryResolve = ' + SELECT R.TABLE_NAME, R.TABLE_SCHEMA, R.COLUMN_NAME + FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE u + INNER JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS FK + on U.CONSTRAINT_CATALOG = FK.UNIQUE_CONSTRAINT_CATALOG + AND U.CONSTRAINT_SCHEMA = FK.UNIQUE_CONSTRAINT_SCHEMA + AND U.CONSTRAINT_NAME = FK.UNIQUE_CONSTRAINT_NAME + INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE R + ON R.CONSTRAINT_CATALOG = FK.CONSTRAINT_CATALOG + AND R.CONSTRAINT_SCHEMA = FK.CONSTRAINT_SCHEMA + AND R.CONSTRAINT_NAME = FK.CONSTRAINT_NAME + WHERE U.COLUMN_NAME = ' . $db->db_add_param($column_name) . ' + AND U.TABLE_SCHEMA = ' . $db->db_add_param($table_schema) . ' + AND U.TABLE_NAME = ' . $db->db_add_param($table_name) . ';'; + + $resultResolve = $db->db_query($qryResolve); + if(!$resultResolve) + return false; + + while($rowResolve = $db->db_fetch_object($resultResolve)) + { + $qryDelete = ' + DELETE FROM '.$rowResolve->table_schema.'.'.$rowResolve->table_name.' + WHERE '.$rowResolve->column_name.'='.$db->db_add_param($data, $dataType); + $resultDelete = $db->db_query($qryDelete); + if(!$resultDelete) + { + return false; + } + } + return true; +} + + + +function recursiveGetAllProjektphase_id($db, $projektphase_id, $arr = null) +{ + if(is_null($arr)) + $arr = array(); + + + $qry = 'SELECT projektphase_id FROM fue.tbl_projektphase WHERE projektphase_fk='.$db->db_add_param($projektphase_id, FHC_INTEGER).';'; + + $res = $db->db_query($qry); + if(!$res) + return false; + + while($row = $db->db_fetch_object($res)) + { + if(!is_null($row->projektphase_id)) + $arr = array_merge($arr, recursiveGetAllProjektphase_id($db, $row->projektphase_id, $arr)); + } + + $arr[] = $projektphase_id; + + return $arr; +} + ?> From 7e498482d8880986b35417b9d883d4924d6eae75 Mon Sep 17 00:00:00 2001 From: oesi Date: Thu, 18 Aug 2016 11:51:19 +0200 Subject: [PATCH 015/140] Meine LV zeigt jetzt LVs des Sommer- und Wintersemesters an wenn kein aktuelles Studiensemester vorhanden ist --- cms/menu/menu_addon_meinelv.inc.php | 54 +++++++++++++++++++---------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/cms/menu/menu_addon_meinelv.inc.php b/cms/menu/menu_addon_meinelv.inc.php index 590919149..a81bdb733 100755 --- a/cms/menu/menu_addon_meinelv.inc.php +++ b/cms/menu/menu_addon_meinelv.inc.php @@ -19,7 +19,7 @@ */ /** * Menue Addon zur Anzeige der zugeordneten LVs - * + * * Zeigt eine Liste mit den LVs zu denen der Lektor oder Student zugeordnet ist. */ require_once(dirname(__FILE__).'/menu_addon.class.php'); @@ -34,15 +34,15 @@ class menu_addon_meinelv extends menu_addon public function __construct() { parent::__construct(); - + $sprache = getSprache(); $user = get_uid(); - + $is_lector=check_lektor($user); - + $p = new phrasen($sprache); $cutlength=21; - + //Meine LVs Student if(!$is_lector) { @@ -51,10 +51,19 @@ class menu_addon_meinelv extends menu_addon if ($stsemobj = new studiensemester()) { - $stsem = $stsemobj->getNearest(); - $qry = "SELECT distinct lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, lehre, - lehreverzeichnis from campus.vw_student_lehrveranstaltung - WHERE uid='".addslashes($user)."' AND studiensemester_kurzbz='".addslashes($stsem)."' + $stsem_arr=array(); + if(!$stsemobj->getakt()) + { + $stsem_arr[]=$stsemobj->getNearest(); + $stsem_arr[]=$stsemobj->getNearestFrom($stsem_arr[0]); + } + else + { + $stsem_arr[] = $stsemobj->getNearest(); + } + $qry = "SELECT distinct lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, lehre, + lehreverzeichnis from campus.vw_student_lehrveranstaltung + WHERE uid=".$this->db_add_param($user)." AND studiensemester_kurzbz in(".$this->db_implode4SQL($stsem_arr).") AND lehre=true AND lehreverzeichnis<>'' ORDER BY studiengang_kz, semester, bezeichnung"; if($result = $this->db_query($qry)) { @@ -87,21 +96,30 @@ class menu_addon_meinelv extends menu_addon else { echo "Fehler Semester beim Auslesen der LV"; - } + } } - + //Eigenen LV des eingeloggten Lektors anzeigen if($is_lector) { if ($stsemobj = new studiensemester()) { - $stsem = $stsemobj->getNearest(); + $stsem_arr=array(); + if(!$stsemobj->getakt()) + { + $stsem_arr[]=$stsemobj->getNearest(); + $stsem_arr[]=$stsemobj->getNearestFrom($stsem_arr[0]); + } + else + { + $stsem_arr[] = $stsemobj->getNearest(); + } $qry = "SELECT distinct bezeichnung, studiengang_kz, semester, lehreverzeichnis, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.orgform_kurzbz FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND - mitarbeiter_uid='".addslashes($user)."' AND tbl_lehreinheit.studiensemester_kurzbz='".addslashes($stsem)."' + mitarbeiter_uid=".$this->db_add_param($user)." AND tbl_lehreinheit.studiensemester_kurzbz in(".$this->db_implode4SQL($stsem_arr).") ORDER BY studiengang_kz, semester, bezeichnung"; - + if($result = $this->db_query($qry)) { $this->items[] = array('title'=>$p->t("lvaliste/titel"), @@ -121,19 +139,19 @@ class menu_addon_meinelv extends menu_addon 'link'=>'private/freifaecher/lesson.php?lvid='.$row->lehrveranstaltung_id, 'name'=>'FF '.$this->CutString($row->lehreverzeichnis, $cutlength) ); - } + } else { $stg_obj = new studiengang(); $stg_obj->load($row->studiengang_kz); $kurzbz = $stg_obj->kuerzel.'-'.$row->semester.' '.$row->orgform_kurzbz; - + $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], 'target'=>'content', 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id, 'name'=>$kurzbz.' '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) ); - } + } } } else @@ -146,7 +164,7 @@ class menu_addon_meinelv extends menu_addon } $this->output(); } - + private function CutString($strVal, $limit) { if(mb_strlen($strVal) > $limit+3) From da3409cf1db271c98279270b0a5fb1a92e2a1229 Mon Sep 17 00:00:00 2001 From: oesi Date: Thu, 18 Aug 2016 14:26:52 +0200 Subject: [PATCH 016/140] =?UTF-8?q?PartTime=20in=20der=20Vorlage=20erg?= =?UTF-8?q?=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/xsl/AusbVerEng_0.xsl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/system/xsl/AusbVerEng_0.xsl b/system/xsl/AusbVerEng_0.xsl index da59cec66..2a4773750 100644 --- a/system/xsl/AusbVerEng_0.xsl +++ b/system/xsl/AusbVerEng_0.xsl @@ -808,6 +808,9 @@ Vollzeitstudiums. + + berufsbegleitenden Studiums. + Fernstudiums. @@ -1577,4 +1580,4 @@ - \ No newline at end of file + From b1d2f60c0472fe17cd6c823721fac24c602582dc Mon Sep 17 00:00:00 2001 From: oesi Date: Thu, 18 Aug 2016 16:11:52 +0200 Subject: [PATCH 017/140] =?UTF-8?q?Anpassung=20des=20Ausbildungsvertrages?= =?UTF-8?q?=20f=C3=BCr=20Lehrg=C3=A4nge=20f=C3=BCr=20das=20Studienjahr=202?= =?UTF-8?q?016/17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/xsl/Ausbildungsver_Lehrgaenge.xsl | 113 +++++++++++++---------- 1 file changed, 62 insertions(+), 51 deletions(-) diff --git a/system/xsl/Ausbildungsver_Lehrgaenge.xsl b/system/xsl/Ausbildungsver_Lehrgaenge.xsl index 3d557501e..174a9ff7e 100644 --- a/system/xsl/Ausbildungsver_Lehrgaenge.xsl +++ b/system/xsl/Ausbildungsver_Lehrgaenge.xsl @@ -304,7 +304,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
    - + @@ -458,7 +458,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - Gemäß § 3 Absatz 1 des Bildungsdokumentationsgesetzes (BGBl. I Nr. 12/2002 idgF) und der Bildungsdokumentationsverordnung-Fachhochschulen (BGBl. II Nr. 29/2004 idgF) hat der Erhalter die Sozialversicherungsnummer zu erfassen und gemäß § 7 Absatz 2 im Wege der Agentur für Qualitätssicherung und Akkreditierung Austria an das zuständige Bundesministerium und die Bundesanstalt Statistik Österreich zu übermitteln. + Gemäß § 3 Absatz 1 des Bildungsdokumentationsgesetzes und der Bildungsdokumentationsverordnung-Fachhochschulen hat der Erhalter die Sozialversicherungsnummer zu erfassen und gemäß § 7 Absatz 2 im Wege der Agentur für Qualitätssicherung und Akkreditierung Austria an das zuständige Bundesministerium und die Bundesanstalt Statistik Österreich zu übermitteln.
    @@ -466,7 +466,6 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - Personenkennzeichen: (kurz „a.o. Studentin“ bzw. „a.o. Student“ genannt) andererseits, im Rahmen des Lehrgangs zur Weiterbildung nach §9 FHStG idgF @@ -490,6 +489,8 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Lehrgangs zur Weiterbildung. + + Dieser Lehrgang wird von der Technikum Wien GmbH organisiert und gemeinsam mit der Fachhochschule Technikum Wien durchgeführt. Es gelten die AGB der Technikum Wien GmbH, diese sind unter https://academy.technikum-wien.at/agb jederzeit abrufbar. @@ -501,7 +502,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz. Bei Bedarf kann der Erhalter einen anderen Studienort festlegen. + Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz. Bei Bedarf kann der Erhalter einen anderen Studienort in Wien festlegen, außerhochschulische Aktivitäten (z.B.: Exkursionen) können auch außerhalb von Wien stattfinden. @@ -512,7 +513,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - Die Ausbildung erfolgt auf der Grundlage des Fachhochschul-Studiengesetzes, BGBl. Nr. 340/1993 idgF und des Hochschul-Qualitätssicherungsgesetzes, BGBl. I Nr. 74/2011 idgF. + Die Ausbildung erfolgt auf der Grundlage des Fachhochschul-Studiengesetzes, BGBl. Nr. 340/1993 idgF und des Hochschul-Qualitätssicherungsgesetzes, BGBl. I Nr. 74/2011 idgF und der Satzung der Fachhochschule Technikum Wien idgF. @@ -525,7 +526,8 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Die Ausbildungsdauer beträgt Semester. - Nachgewiesene erworbene Kenntnisse können auf einzelne Lehrveranstaltungen angerechnet werden bzw. zum Erlass einer Lehrveranstaltung führen. Hierzu bedarf es eines Antrages der a.o. Studentin bzw. des a.o. Studenten und der nachfolgenden Feststellung der inhaltlichen und umfänglichen Gleichwertigkeit durch die Lehrgangsleitung. + Die a.o. Studentin bzw. der a.o. Student hat das Recht, eine Anerkennung nachgewiesener Kenntnisse beim Lehrgang zu beantragen. Eine solche Anerkennung setzt voraus, dass die erworbenen Kenntnisse mit dem Inhalt und dem Umfang der Lehrveranstaltung sind und bewirkt die Anrechnung der entsprechenden Lehrveranstaltung. + @@ -537,6 +539,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" + @@ -559,10 +562,10 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 5.2 Pflichten - Der Erhalter ist verpflichtet, all jene Voraussetzungen zu bieten, damit der Lehrgang zur Weiterbildung innerhalb der Ausbildungsdauer (Pkt. 3) erfolgreich abgeschlossen werden kann. Die Voraussetzungen zur Erfüllung dieser Verpflichtung sind Gegenstand des vom Kollegium genehmigten Lehrgangs idgF, der Satzung der FH Technikum Wien idgf und der Hausordnung idgF. + Der Erhalter verpflichtet sich zur ordnungsgemäßen Planung und Durchführung des Lehrgangs. Der Erhalter ist verpflichtet, allfällige Änderungen des Lehrgangs zeitgerecht bekannt zu geben. - Der Erhalter ist weiters verpflichtet, den Lehrgang zur Weiterbildung auf der Grundlage höchster Qualitätsansprüche hinsichtlich der Erreichung der Ausbildungsziele zu gestalten und allfällige Änderungen des akkreditierten Studienganges bekannt zu geben. + Der Erhalter verpflichtet sich, jedenfalls folgende Dokumente zur Verfügung zu stellen: Studierendenausweis, Diploma Supplement, Urkunde über die Verleihung des akademischen Grades, Studienerfolgsbestätigung, Inskriptionsbestätigung. Der Erhalter verpflichtet sich zur sorgfaltsgemäßen Verwendung der personenbezogenen Daten der a.o. Studierenden. Die Daten werden nur im Rahmen der gesetzlichen und vertraglichen Verpflichtungen sowie des Studienbetriebes verwendet und nicht an nicht berechtigte Dritte weitergegeben. @@ -579,49 +582,57 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 6.1 Rechte - Die a.o. Studentin bzw. der a.o. Student hat das Recht auf - + Die a.o. Studentin bzw. der a.o. Student hat das Recht auf einen Studienbetrieb gemäß den im Lehrgang zur Weiterbildung idgf und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen. + + 6.2 Pflichten + 6.2.1 Einhaltung studienrelevanter Bestimmungen + + Die a.o. Studentin bzw. der a.o. Student ist verpflichtet, insbesondere folgende Bestimmungen einzuhalten: + + - einen Studienbetrieb gemäß den im Lehrgang zur Weiterbildung idgf und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen und + Studienordnung und Prüfungsordnung für Lehrgänge idgF - ein Zeugnis über die im laufenden Semester abgelegten Prüfungen. + Hausordnung idgF + + + Brandschutzordnung idgF + + + Bibliotheksordnung idgF + + + Die für den jeweiligen Lehrgang geltende/n Laborordnung/en idgF - 6.2 Pflichten - 6.2.1 Lehrgangskosten inkl. Studierendenbeitrag ("ÖH-Beitrag") - - - - 2 - - - - - - Gemäß § 4 Abs. 10 des Fachhochschul-Studiengesetzes (BGBl. Nr. 340/1993 idgF und der Bundesministeriengesetz-Novelle 2007, BGBl. I Nr. 6/2007) gehören ordentliche und außerordentliche Studierende an Fachhochschul-Studiengängen - der Österreichischen HochschülerInnenschaft (ÖH) gemäß Hochschülerinnen- und Hochschülerschaftsgesetz (HSG 2014) an. Daraus resultiert die Verpflichtung der Studentin oder des Studenten zur Entrichtung des ÖH-Beitrags. Dies gilt auch in - Semestern mit DiplomandInnenstatus. Der Studierendenbeitrag kann jährlich durch die ÖH indexiert werden; die genaue Höhe des Studierendenbeitrags wird von der ÖH jährlich für das folgende Studienjahr bekannt gegeben. Die Einhebung des - Betrags erfolgt durch die Fachhochschule. Der Erhalter überweist in Folge die eingezahlten Beträge der Studierenden ohne Abzüge an die ÖH. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. - - - - - - + + Diese Dokumente sind öffentlich zugänglich unter www.technikum-wien.at. + + Darüber hinaus sind die AGB der Technikum Wien GmbH Bestandteil dieses Vertrages (https://academy.technikum-wien.at/agb). + + 6.2.2 Lehrgangskosten inkl. Studierendenbeitrag ("ÖH-Beitrag") - Voraussetzung für die Geltung dieses Ausbildungsvertrages und für die Teilnahme am Lehrgang ist die erfolgte vollständige Bezahlung der Lehrgangskosten zu den jeweiligen Zahlungsterminen. Bezüglich der Möglichkeiten (teilweiser) Rückerstattungen gelten die AGBs der Technikum Wien GmbH für Lehrgänge zur Weiterbildung. - 6.2.2 Beibringung persönlicher Daten + Voraussetzung für die Geltung dieses Ausbildungsvertrages und für die Teilnahme am Lehrgang ist die erfolgte vollständige Bezahlung der Lehrgangskosten zu den jeweiligen Zahlungsterminen. Bezüglich der Möglichkeiten (teilweiser) Rückerstattungen gelten die AGB der Technikum Wien GmbH für Lehrgänge zur Weiterbildung. + Gemäß § 4 Abs 10 FHStG sind a.o. Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die a.o. Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. + + + 6.2.3 Beibringung persönlicher Daten Die a.o. Studentin bzw. der a.o. Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw für den Studienbetrieb unerlässlich sind. - 6.2.3 Aktualisierung eigener Daten und Bezug von Informationen + 6.2.4 Aktualisierung eigener Daten und Bezug von Informationen Die a.o. Studentin bzw. der a.o. Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Lehrgangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen. - 6.2.4 Verwertungsrechte + 6.2.5 Verwertungsrechte Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der a.o. Studentin oder dem a.o. Studenten getroffen wurden, ist die a.o. Studentin oder der a.o. Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten. - 6.2.5 Aufzeichnungen und Mitschnitte + 6.2.6 Aufzeichnungen und Mitschnitte Es ist der/dem a.o. Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, WhatsAPP, LinkedIn, Xing etc, aber auch auf Youtube, Instagram usw. oder durch sonstige für diese Zwecke geeignete Kommunikationsmittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. - 6.2.6 Geheimhaltungspflicht + 6.2.7 Geheimhaltungspflicht Die a.o. Studentin bzw. der a.o. Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet. + 6.2.8 Schadensmeldung + Im Falle des Eintretens eines Schadens am Inventar der Fachhochschule ist der/die a.o. Studierende verpflichtet, diesen innerhalb von drei Tagen dem Lehrgangssekretariat zu melden. Allfällige Haftungsansprüche bleiben hiervon unberührt. + 6.2.9 Rückgabeverpflichtung bei Studienende + Die a.o. Studentin bzw. der a.o. Student ist verpflichtet, bei einer Beendigung des Lehrgangs unverzüglich alle zur Verfügung gestellten Gerätschaften, Bücher, Schlüssel und sonstige Materialien zurückzugeben. + @@ -636,9 +647,12 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Im beiderseitigen Einvernehmen ist die Auflösung des Ausbildungsvertrages jederzeit ohne Angabe von Gründen möglich. Die einvernehmliche Auflösung bedarf der Schriftform. 7.2 Kündigung durch die a.o. Studentin bzw. den a.o. Studenten - Die a.o. Studentin bzw. der a.o. Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen. + Die a.o. Studentin bzw. der a.o. Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen. Die Verpflichtung zur vollständigen Leistung der Lehrgangskosten wird von einer Kündigung durch die a.o. Studentin bzw. den a.o. Studenten nicht berührt. - 7.3 Ausschluss durch den Erhalter + 7.3 Automatische Beendigung des Vertrages + Der Ausbildungsvertrag erlischt mit dem Abschluss des Lehrgangs. Der Vertrag endet automatisch durch die negative Beurteilung der letztmöglichen Prüfungswiederholung, in diesem Fall bleibt die Verpflichtung zur vollständigen Leistung der Lehrgangskosten unberührt. + + 7.4 Ausschluss durch den Erhalter Der Erhalter kann die a.o. Studentin bzw. den a.o. Studenten aus wichtigem Grund mit sofortiger Wirkung vom weiteren Studium ausschließen, und zwar beispielsweise wegen @@ -657,13 +671,13 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" persönlichem Verhalten, das zu einer Beeinträchtigung des Images und/oder Betriebes des Lehrgangs, der Fachhochschule bzw. des Erhalters oder von Personen führt, die für die Fachhochschule bzw. den Erhalter tätig sind; - Weigerung zur Beibringung von Daten (siehe Pkt. 6.2.2) + Weigerung zur Beibringung von Daten (siehe Pkt. 6.2.3) - Verletzung der Verpflichtung, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen anzubieten (siehe Pkt. 6.2.4); + Verletzung der Verpflichtung, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen anzubieten (siehe Pkt. 6.2.5); - Verletzung der Geheimhaltungspflicht (siehe Pkt. 6.2.6); + Verletzung der Geheimhaltungspflicht (siehe Pkt. 6.2.7); strafgerichtlicher Verurteilung (wobei die Art des Deliktes und der Grad der Schuld berücksichtigt werden); @@ -677,10 +691,8 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Der Ausschluss kann mündlich erklärt werden. Mit Ausspruch des Ausschlusses endet der Ausbildungsvertrag, es sei denn, es wird ausdrücklich auf einen anderen Endtermin hingewiesen. Eine schriftliche Bestätigung des Ausschlusses wird innerhalb von zwei Wochen nach dessen Ausspruch per Post an die bekannt gegebene Adresse abgeschickt oder auf andere geeignete Weise übermittelt. - Gleichzeitig mit dem Ausspruch des Ausschlusses kann auch ein Hausverbot verhängt werden. + Gleichzeitig mit dem Ausspruch des Ausschlusses kann auch ein Hausverbot verhängt werden. Die Verpflichtung zur vollständigen Leistung der Lehrgangskosten wird von einem Ausschluss nicht berührt. - 7.4 Erlöschen - Der Ausbildungsvertrag erlischt mit dem Abschluss des Lehrgangs. @@ -702,27 +714,26 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - Unwirksamkeit von Vertragsbestimmungen, Vertragslücke + Unwirksamkeit von Vertragsbestimmungen Sollten einzelne Bestimmungen dieses Vertrages unwirksam oder nichtig sein oder werden, so berührt dies die Gültigkeit der übrigen Bestimmungen dieses Vertrages nicht. - Die Vertragsparteien verpflichten sich, unwirksame oder nichtige Bestimmungen durch neue Bestimmungen zu ersetzen, die dem in den unwirksamen oder nichtigen Bestimmungen enthaltenen Regelungsgehalt in rechtlich zulässiger Weise gerecht werden. Zur Ausfüllung einer allfälligen Lücke verpflichten sich die Vertragsparteien, auf die Etablierung angemessener Regelungen in diesem Vertrag hinzuwirken, die dem am nächsten kommen, was sie nach dem Sinn und Zweck des Vertrages bestimmt hätten, wenn der Punkt von ihnen bedacht worden wäre. - Ausfertigungen, Gebühren, Gerichtsstand + Ausfertigungen, Gebühren, Gerichtsstand, geltendes Recht Die Ausfertigung dieses Vertrages erfolgt in zweifacher Ausführung. Ein Original verbleibt im zuständigen Administrationsbüro des Lehrgangs. Eine Ausfertigung wird der a.o. Studentin bzw. dem a.o. Studenten übergeben. + Für Streitigkeiten aus diesem Vertrag gilt österreichisches Recht als vereinbart, allfällige Klagen sind beim sachlich zuständigen Gericht in Wien einzubringen. Der Ausbildungsvertrag ist gebührenfrei. - Gerichtsstand ist Wien, Innere Stadt. From f2f359471ed59c9b6e694ef2dbcc9ea356306bd4 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 19 Aug 2016 17:35:46 +0200 Subject: [PATCH 018/140] Added Studiensemester to LV Link --- cms/menu/menu_addon_meinelv.inc.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cms/menu/menu_addon_meinelv.inc.php b/cms/menu/menu_addon_meinelv.inc.php index a81bdb733..db63f7cd2 100755 --- a/cms/menu/menu_addon_meinelv.inc.php +++ b/cms/menu/menu_addon_meinelv.inc.php @@ -62,7 +62,7 @@ class menu_addon_meinelv extends menu_addon $stsem_arr[] = $stsemobj->getNearest(); } $qry = "SELECT distinct lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, lehre, - lehreverzeichnis from campus.vw_student_lehrveranstaltung + lehreverzeichnis, studiensemester_kurzbz from campus.vw_student_lehrveranstaltung WHERE uid=".$this->db_add_param($user)." AND studiensemester_kurzbz in(".$this->db_implode4SQL($stsem_arr).") AND lehre=true AND lehreverzeichnis<>'' ORDER BY studiengang_kz, semester, bezeichnung"; if($result = $this->db_query($qry)) @@ -84,7 +84,7 @@ class menu_addon_meinelv extends menu_addon { $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], 'target'=>'content', - 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id, + 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$row->studiensemester_kurzbz, 'name'=>$studiengang_obj->kuerzel_arr[$row->studiengang_kz].$row->semester.' '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) ); } @@ -114,7 +114,7 @@ class menu_addon_meinelv extends menu_addon { $stsem_arr[] = $stsemobj->getNearest(); } - $qry = "SELECT distinct bezeichnung, studiengang_kz, semester, lehreverzeichnis, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.orgform_kurzbz FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter + $qry = "SELECT distinct bezeichnung, studiengang_kz, semester, lehreverzeichnis, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.orgform_kurzbz, studiensemester_kurzbz FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND mitarbeiter_uid=".$this->db_add_param($user)." AND tbl_lehreinheit.studiensemester_kurzbz in(".$this->db_implode4SQL($stsem_arr).") @@ -148,7 +148,7 @@ class menu_addon_meinelv extends menu_addon $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], 'target'=>'content', - 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id, + 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$row->studiensemester_kurzbz, 'name'=>$kurzbz.' '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) ); } From 644f66dae989c889a7e38b981c0bcf1575ecaf60 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 23 Aug 2016 15:15:18 +0200 Subject: [PATCH 019/140] =?UTF-8?q?Hack=20hinzugef=C3=BCgt=20damit=20die?= =?UTF-8?q?=20Mailverteiler=20f=C3=BCr=20WarmUp=20Kurse=20bei=20Semesterwe?= =?UTF-8?q?chsel=20nicht=20geleert=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/mlists/mlists_create.php | 34 +++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/system/mlists/mlists_create.php b/system/mlists/mlists_create.php index d073ccc4d..035341d8b 100644 --- a/system/mlists/mlists_create.php +++ b/system/mlists/mlists_create.php @@ -29,12 +29,18 @@ require_once('../../include/studiensemester.class.php'); $db = new basis_db(); - + if(!($result_stg = $db->db_query("SELECT studiengang_kz, bezeichnung, lower(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang ORDER BY kurzbz ASC"))) die($db->db_last_error()); $num_rows=$db->db_num_rows($result_stg); $ss=new studiensemester(); $ss_nearest=$ss->getNearest(); + $ss_akt=$ss->getAkt(); + if($ss_akt=='') + $ss_nearest2=$ss->getNearestFrom($ss_nearest); + else + $ss_nearest2=$ss_nearest; + ?> @@ -54,7 +60,7 @@ $stg_id=$row->studiengang_kz; $stg_kzbz=$row->kurzbz; $sql_query="SELECT * FROM public.tbl_gruppe WHERE studiengang_kz='".addslashes($stg_id)."' AND mailgrp=true ORDER BY gruppe_kurzbz"; - + if(!($result_mg = $db->db_query($sql_query))) die($db->db_last_error()); $nr_mg=$db->db_num_rows($result_mg); @@ -64,12 +70,24 @@ { $row_mg = $db->db_fetch_object($result_mg, $j); $mg_kurzbz=$row_mg->gruppe_kurzbz; + if($row_mg->studiengang_kz==10005 && mb_stripos($mg_kurzbz,'EWU')===0) + { + echo "EWU Gruppe $mg_kurzbz wird fuer STSEM ".$ss_nearest2." erstellt"; + // FHTW Warm Up Kurse enthaelt die Teilnehmer des SS auch wenn das WS schon gestartet hat + $sql_query='SELECT tbl_benutzergruppe.uid, nachname, vorname '. + 'FROM campus.vw_benutzer, public.tbl_benutzergruppe '. + 'WHERE vw_benutzer.uid=tbl_benutzergruppe.uid AND '. + "UPPER(gruppe_kurzbz)=UPPER('$mg_kurzbz') AND tbl_benutzergruppe.uid NOT LIKE '\\\\_%' ". + "AND (studiensemester_kurzbz IS NULL OR studiensemester_kurzbz='$ss_nearest2') AND aktiv ORDER BY nachname;"; + } + else + { $sql_query='SELECT tbl_benutzergruppe.uid, nachname, vorname '. 'FROM campus.vw_benutzer, public.tbl_benutzergruppe '. 'WHERE vw_benutzer.uid=tbl_benutzergruppe.uid AND '. "UPPER(gruppe_kurzbz)=UPPER('$mg_kurzbz') AND tbl_benutzergruppe.uid NOT LIKE '\\\\_%' ". "AND (studiensemester_kurzbz IS NULL OR studiensemester_kurzbz='$ss_nearest') AND aktiv ORDER BY nachname;"; - + } if(!($result_person = $db->db_query($sql_query))) die($db->db_last_error()); @@ -102,14 +120,14 @@ //$qry = "SELECT vornamen, nachname, uid, alias FROM tbl_person where alias<>'' ORDER BY nachname, vornamen"; $qry = "SELECT vorname, nachname, uid, alias FROM (public.tbl_person JOIN public.tbl_benutzer USING(person_id)) LEFT JOIN public.tbl_student on(uid=student_uid) - WHERE + WHERE alias<>''"; if($noalias_kz!='') $qry.=" AND (studiengang_kz NOT IN($noalias_kz) OR studiengang_kz is null)"; - $qry.=" AND (tbl_benutzer.aktiv OR - (tbl_benutzer.aktiv=false - AND updateaktivam >= now()-(SELECT CASE public.get_rolle_prestudent (prestudent_id,null) + $qry.=" AND (tbl_benutzer.aktiv OR + (tbl_benutzer.aktiv=false + AND updateaktivam >= now()-(SELECT CASE public.get_rolle_prestudent (prestudent_id,null) WHEN 'Abbrecher' THEN '".DEL_ABBRECHER_WEEKS." weeks'::interval WHEN 'Absolvent' THEN '".DEL_STUDENT_WEEKS." weeks'::interval ELSE '".DEL_MITARBEITER_WEEKS." weeks'::interval @@ -117,7 +135,7 @@ ) )) ORDER BY nachname, vorname"; - + if($result = $db->db_query($qry)) { $fp=fopen('../../../mlists/tw_alias.txt',"w"); From c6c4745280592c4eca46ff59de7911a8b31891ac Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Wed, 24 Aug 2016 13:47:55 +0200 Subject: [PATCH 020/140] added services for systemd and upstart --- system/services/systemd/phantomjs@.service | 13 +++++++++++++ system/services/systemd/unoconv@.service | 13 +++++++++++++ system/services/upstart/unoconv.conf | 9 +++++++++ 3 files changed, 35 insertions(+) create mode 100755 system/services/systemd/phantomjs@.service create mode 100644 system/services/systemd/unoconv@.service create mode 100755 system/services/upstart/unoconv.conf diff --git a/system/services/systemd/phantomjs@.service b/system/services/systemd/phantomjs@.service new file mode 100755 index 000000000..bd4a79524 --- /dev/null +++ b/system/services/systemd/phantomjs@.service @@ -0,0 +1,13 @@ +[Unit] +Description=PhantomJS headless browser with HighCharts +After=network.target + +[Service] +ExecStart=/usr/bin/phantomjs /home/%i/highcharts/highcharts-convert.js -host 10.127.0.197 -port 3003 +KillMode=process +Restart=on-failure on-abort +User=%i +Group=%i + +[Install] +WantedBy=multi-user.target diff --git a/system/services/systemd/unoconv@.service b/system/services/systemd/unoconv@.service new file mode 100644 index 000000000..ed2827649 --- /dev/null +++ b/system/services/systemd/unoconv@.service @@ -0,0 +1,13 @@ +[Unit] +Description=The unoconv listener running on User %I +After=network.target + +[Service] +ExecStart=/usr/bin/unoconv -l +KillMode=process +Restart=on-failure on-abort +User=%i +Group=%i + +[Install] +WantedBy=multi-user.target diff --git a/system/services/upstart/unoconv.conf b/system/services/upstart/unoconv.conf new file mode 100755 index 000000000..d5aa3cd57 --- /dev/null +++ b/system/services/upstart/unoconv.conf @@ -0,0 +1,9 @@ +description "unoconv listener" + +start on runlevel [2345] +stop on runlevel [016] +respawn +expect daemon +setuid unoconv +exec unoconv -l & + From c135abe41eaa4fd93a4629aaafe17b1d8185e517 Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 24 Aug 2016 13:57:16 +0200 Subject: [PATCH 021/140] =?UTF-8?q?Auf=20Zahlungsbest=C3=A4tigung,=20Inskr?= =?UTF-8?q?iptionsbest=C3=A4tigung=20und=20Studienerfolgsbest=C3=A4tigung?= =?UTF-8?q?=20wird=20nun=20die=20Studiengangsbezeichnung=20aus=20der=20Stu?= =?UTF-8?q?dienordnung=20angezeigt,=20damit=20bei=20Umbenennung=20von=20St?= =?UTF-8?q?udieng=C3=A4ngen=20die=20Bezeichnung=20korrekt=20angedruckt=20w?= =?UTF-8?q?ird.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rdf/konto.rdf.php | 59 ++++++++++----- rdf/student.rdf.php | 22 ++++++ rdf/studienerfolg.rdf.php | 97 ++++++++++++++----------- system/xsl/inskription_0.xsl | 43 ++++++----- system/xsl/studienerfolgEng_0.xsl | 113 +++++++++++++++-------------- system/xsl/studienerfolg_0.xsl | 111 +++++++++++++++------------- system/xsl/zahlung_0.xsl | 115 ++++++++++++++++-------------- 7 files changed, 327 insertions(+), 233 deletions(-) diff --git a/rdf/konto.rdf.php b/rdf/konto.rdf.php index ce3be694f..875325cf3 100644 --- a/rdf/konto.rdf.php +++ b/rdf/konto.rdf.php @@ -36,6 +36,9 @@ require_once('../include/datum.class.php'); require_once('../include/functions.inc.php'); require_once('../include/student.class.php'); require_once('../include/benutzerberechtigung.class.php'); +require_once('../include/prestudent.class.php'); +require_once('../include/studienordnung.class.php'); +require_once('../include/studienplan.class.php'); if(isset($_SERVER['REMOTE_USER'])) { @@ -86,7 +89,7 @@ else $buchungsnummern = ''; $studiengang_kz = (isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''); - + $datum = new datum(); $konto = new konto(); @@ -111,7 +114,7 @@ elseif($buchungsnr!='') $rdf_url='http://www.technikum-wien.at/konto'; if ($xmlformat=='rdf') { - + echo ' studiengang_kz); echo " buchungsnr."\" about=\"".$rdf_url.'/'.$row->buchungsnr."\" > @@ -155,11 +158,11 @@ if($person_id!='') $buchung = $buchung['parent']; //1. Ebene drawrow($buchung); - + $hier.=" buchungsnr."\" >"; - + if(isset($konto->result[$buchung->buchungsnr]['childs'])) { //2. Ebene @@ -168,13 +171,13 @@ if($person_id!='') if(is_object($row)) { drawrow($row); - + $hier.=" buchungsnr.'" />'; } } } - + $hier.=" "; @@ -191,7 +194,7 @@ $hier=" "; echo $hier; - + echo ' '; @@ -223,13 +226,13 @@ elseif ($xmlformat=='xml') if($parent->betrag>0) $rueckerstattung=true; } - else + else { if($row->betrag>0) $rueckerstattung=true; } - - if($rueckerstattung) + + if($rueckerstattung) echo ""; echo " convertISODate($row->buchungsdatum)."]]> @@ -246,13 +249,29 @@ elseif ($xmlformat=='xml') { global $conn, $datum; $pers = new person(); - + $pers->load($row->person_id); - + $stg = new studiengang($row->studiengang_kz); $student_obj = new student(); $student_obj->load_person($row->person_id, $row->studiengang_kz); - + + $prestudent = new prestudent(); + $prestudent->getLastStatus($student_obj->prestudent_id, $row->studiensemester_kurzbz); + + $studiengang_bezeichnung_sto=''; + $studiengang_bezeichnung_sto_englisch=''; + $stpl = new studienplan(); + if($stpl->loadStudienplan($prestudent->studienplan_id)) + { + $sto = new studienordnung(); + if($sto->loadStudienordnung($stpl->studienordnung_id)) + { + $studiengang_bezeichnung_sto = $sto->studiengangbezeichnung; + $studiengang_bezeichnung_sto_englisch = $sto->studiengangbezeichnung_englisch; + } + } + switch($stg->typ) { case 'b': @@ -267,7 +286,7 @@ elseif ($xmlformat=='xml') default: $studTyp =''; } - + echo " person_id."]]> @@ -288,6 +307,8 @@ elseif ($xmlformat=='xml') ".DOC_ROOT."skin/images/ bezeichnung."]]> + + "; } @@ -295,10 +316,10 @@ elseif ($xmlformat=='xml') $buchungstyp = new konto(); $buchungstyp->getBuchungstyp(); $btyp = array(); - + foreach ($buchungstyp->result as $row) - $btyp[$row->buchungstyp_kurzbz]=$row->beschreibung; - + $btyp[$row->buchungstyp_kurzbz]=$row->beschreibung; + if($person_id!='') foreach ($konto->result as $buchung) drawrow_xml($buchung); @@ -315,7 +336,7 @@ elseif ($xmlformat=='xml') { drawperson_xml($konto); $drawperson=false; - } + } drawrow_xml($konto); } } diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php index f9a5d509a..234ef7ed6 100755 --- a/rdf/student.rdf.php +++ b/rdf/student.rdf.php @@ -47,6 +47,8 @@ require_once('../include/mitarbeiter.class.php'); require_once('../include/organisationsform.class.php'); require_once('../include/konto.class.php'); require_once('../include/reihungstest.class.php'); +require_once('../include/studienordnung.class.php'); +require_once('../include/studienplan.class.php'); // *********** Funktionen ************************* function convdate($date) @@ -760,9 +762,27 @@ else if($row = $db->db_fetch_object()) { $semester = $row->ausbildungssemester; + $studienplan_id = $row->studienplan_id; } } + if($studienplan_id!='') + { + $stpl = new studienplan(); + $stpl->loadStudienplan($studienplan_id); + + $sto = new studienordnung(); + $sto->loadStudienordnung($stpl->studienordnung_id); + + $sto_studiengang_bezeichnung = $sto->studiengangbezeichnung; + $sto_studiengang_bezeichnung_englisch = $sto->studiengangbezeichnung_englisch; + } + else + { + $sto_studiengang_bezeichnung=''; + $sto_studiengang_bezeichnung_englisch=''; + } + //für ao. Studierende wird der Studiengang der Lehrveranstaltungen benötigt, die sie besuchen $lv_studiengang_kz=''; $lv_studiengang_bezeichnung=''; @@ -863,6 +883,8 @@ else orgform_kurzbz.']]> bezeichnung.']]> + + diff --git a/rdf/studienerfolg.rdf.php b/rdf/studienerfolg.rdf.php index b1b25b1a9..063043251 100644 --- a/rdf/studienerfolg.rdf.php +++ b/rdf/studienerfolg.rdf.php @@ -31,6 +31,8 @@ require_once('../include/studiengang.class.php'); require_once('../include/mitarbeiter.class.php'); require_once('../include/prestudent.class.php'); require_once('../include/student.class.php'); +require_once('../include/studienordnung.class.php'); +require_once('../include/studienplan.class.php'); $datum = new datum(); $db = new basis_db(); @@ -40,23 +42,23 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz) global $xml, $note_arr, $datum, $note_wert; $db = new basis_db(); - $query = "SELECT - tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.bezeichnung, - tbl_studentlehrverband.semester, tbl_person.titelpre, tbl_person.titelpost, - tbl_person.vorname, tbl_person.nachname,tbl_person.gebdatum, + $query = "SELECT + tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.bezeichnung, + tbl_studentlehrverband.semester, tbl_person.titelpre, tbl_person.titelpost, + tbl_person.vorname, tbl_person.nachname,tbl_person.gebdatum, tbl_studiensemester.bezeichnung as sembezeichnung, tbl_studiengang.english as bezeichnung_englisch, tbl_studiengang.orgform_kurzbz - FROM - public.tbl_person, public.tbl_student, public.tbl_studiengang, public.tbl_benutzer, - public.tbl_studentlehrverband, public.tbl_studiensemester - WHERE - tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz - and tbl_student.student_uid = tbl_benutzer.uid - and tbl_benutzer.person_id = tbl_person.person_id - and tbl_student.student_uid = ".$db->db_add_param($uid)." - and tbl_studentlehrverband.student_uid=tbl_student.student_uid - and tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz + FROM + public.tbl_person, public.tbl_student, public.tbl_studiengang, public.tbl_benutzer, + public.tbl_studentlehrverband, public.tbl_studiensemester + WHERE + tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz + and tbl_student.student_uid = tbl_benutzer.uid + and tbl_benutzer.person_id = tbl_person.person_id + and tbl_student.student_uid = ".$db->db_add_param($uid)." + and tbl_studentlehrverband.student_uid=tbl_student.student_uid + and tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz and tbl_studentlehrverband.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz); if($db->db_query($query)) @@ -73,46 +75,57 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz) $student->load($uid); $prestudentstatus = new prestudent(); $prestudentstatus->getLastStatus($student->prestudent_id,'','Student'); - + if($studiensemester_aktuell!=$prestudentstatus->studiensemester_kurzbz) $studiensemester_aktuell = $prestudentstatus->studiensemester_kurzbz; - + $studiensemester->load($studiensemester_aktuell); - + $semester_aktuell=''; - $qry_semester = "SELECT tbl_prestudentstatus.ausbildungssemester as semester FROM public.tbl_student, public.tbl_prestudentstatus - WHERE tbl_student.prestudent_id=tbl_prestudentstatus.prestudent_id - AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming','Outgoing','Praktikant','Diplomand') - AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_aktuell)." + $qry_semester = "SELECT tbl_prestudentstatus.ausbildungssemester as semester FROM public.tbl_student, public.tbl_prestudentstatus + WHERE tbl_student.prestudent_id=tbl_prestudentstatus.prestudent_id + AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming','Outgoing','Praktikant','Diplomand') + AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_aktuell)." AND tbl_student.student_uid = ".$db->db_add_param($uid); - + if($db->db_query($qry_semester)) if($row_semester = $db->db_fetch_object()) $semester_aktuell=$row_semester->semester; if($semester_aktuell=='') $studiensemester_aktuell=''; - - $qry_semester = "SELECT tbl_prestudentstatus.ausbildungssemester as semester, tbl_prestudentstatus.orgform_kurzbz FROM public.tbl_student, public.tbl_prestudentstatus - WHERE tbl_student.prestudent_id=tbl_prestudentstatus.prestudent_id - AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming','Outgoing','Praktikant','Diplomand') - AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." + + $qry_semester = "SELECT tbl_prestudentstatus.ausbildungssemester as semester, tbl_prestudentstatus.orgform_kurzbz, tbl_prestudentstatus.studienplan_id FROM public.tbl_student, public.tbl_prestudentstatus + WHERE tbl_student.prestudent_id=tbl_prestudentstatus.prestudent_id + AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming','Outgoing','Praktikant','Diplomand') + AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND tbl_student.student_uid = ".$db->db_add_param($uid); - + $orgform=''; + $studiengang_bezeichnung_sto=''; + $studiengang_bezeichnung_sto_englisch=''; + if($db->db_query($qry_semester)) { if($row_semester = $db->db_fetch_object()) { $row->semester=$row_semester->semester; $orgform = $row_semester->orgform_kurzbz; + + $stpl = new studienplan(); + $stpl->loadStudienplan($row_semester->studienplan_id); + $sto = new studienordnung(); + $sto->loadStudienordnung($stpl->studienordnung_id); + + $studiengang_bezeichnung_sto = $sto->studiengangbezeichnung; + $studiengang_bezeichnung_sto_englisch = $sto->studiengangbezeichnung_englisch; } } // Wenn der Studiernede keine Orgform eingetragen hat, wird die Orgform des Studiengang genommen if($orgform=='') $orgform = $row->orgform_kurzbz; - + $studiengang = new studiengang(); $stgleiter = $studiengang->getLeitung($row->studiengang_kz); $stgl=''; @@ -126,14 +139,14 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz) { $stg = new studiengang(); $stg->load($row->studiengang_kz); - + $studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($row->studiengang_kz)); } else $studiengang_kz = sprintf("%04s", abs($row->studiengang_kz)); - + $stdsem = new studiensemester($studiensemester_kurzbz); - + $xml .= " "; $xml .= " ".DOC_ROOT."skin/images/"; $xml .= " ".$row->sembezeichnung.""; @@ -144,6 +157,8 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz) $xml .= " ".$semester_aktuell.""; $xml .= " ".$row->bezeichnung.""; $xml .= " ".$row->bezeichnung_englisch.""; + $xml .= " ".$studiengang_bezeichnung_sto.""; + $xml .= " ".$studiengang_bezeichnung_sto_englisch.""; $xml .= " ".$studiengang_kz.""; $xml .= " ".$row->titelpre.""; $xml .= " ".$row->titelpost.""; @@ -168,7 +183,7 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz) if(!$obj->getZeugnisnoten($lehrveranstaltung_id=null, $uid, $studiensemester_kurzbz)) die('Fehler beim Laden der Noten:'.$obj->errormsg); - + $gesamtstunden=0; $gesamtects=0; @@ -185,12 +200,12 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz) $note = ""; if($note!='') { - $qry = "SELECT - wochen - FROM + $qry = "SELECT + wochen + FROM public.tbl_semesterwochen JOIN lehre.tbl_lehrveranstaltung USING(studiengang_kz, semester) - WHERE + WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id); $wochen = 15; @@ -276,11 +291,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") for ($i = 0; $i < sizeof($uid_arr); $i++) { //Studienbestaetigung fuer alle Semester dieses Studenten - $qry = "SELECT * FROM public.tbl_studiensemester + $qry = "SELECT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz in( - SELECT studiensemester_kurzbz - FROM public.tbl_prestudentstatus JOIN public.tbl_student USING(prestudent_id) - WHERE student_uid='".addslashes($uid_arr[$i])."') + SELECT studiensemester_kurzbz + FROM public.tbl_prestudentstatus JOIN public.tbl_student USING(prestudent_id) + WHERE student_uid='".addslashes($uid_arr[$i])."') ORDER BY start"; if($db->db_query($qry)) while($row = $db->db_fetch_object()) diff --git a/system/xsl/inskription_0.xsl b/system/xsl/inskription_0.xsl index 6d6beefe1..1824ae060 100644 --- a/system/xsl/inskription_0.xsl +++ b/system/xsl/inskription_0.xsl @@ -249,25 +249,25 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - - - --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - - - --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - - - --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - + + --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - + + --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + + + --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + + + --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + + @@ -300,7 +300,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn geboren am ist im (Beginn ) - als + als ordentlicher Studierender @@ -313,7 +313,16 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn (Studienbeginn , Beginn ) - der Studienrichtung im + der Studienrichtung + + + + + + + + + im . Semester gemeldet. diff --git a/system/xsl/studienerfolgEng_0.xsl b/system/xsl/studienerfolgEng_0.xsl index a2aeceec1..e5aa652ff 100644 --- a/system/xsl/studienerfolgEng_0.xsl +++ b/system/xsl/studienerfolgEng_0.xsl @@ -1,60 +1,60 @@ - - @@ -496,7 +496,16 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Degree Program - + + + + + + + + + + @@ -551,9 +560,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Grade2 - + - + Total: @@ -600,7 +609,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" ¹ 1 Semester period per week = 45 minutes - ² Grades:excellent (1), very good (2), good (3), satisfactory (4), fail (5), not graded (nb), Credit based on previous experience/work (ar),Participated with success (met), passed (b), successfully completed (ea), not successfully completed (nea), did not participate (nt), participated(tg) + ² Grades:excellent (1), very good (2), good (3), satisfactory (4), fail (5), not graded (nb), Credit based on previous experience/work (ar),Participated with success (met), passed (b), successfully completed (ea), not successfully completed (nea), did not participate (nt), participated(tg) diff --git a/system/xsl/studienerfolg_0.xsl b/system/xsl/studienerfolg_0.xsl index 461feb402..d682eb19d 100644 --- a/system/xsl/studienerfolg_0.xsl +++ b/system/xsl/studienerfolg_0.xsl @@ -1,60 +1,60 @@ - - @@ -493,7 +493,16 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Studiengang - + + + + + + + + + + @@ -549,9 +558,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Benotung - + - + Semestersumme: diff --git a/system/xsl/zahlung_0.xsl b/system/xsl/zahlung_0.xsl index 0dcfb3a7f..a865abc91 100644 --- a/system/xsl/zahlung_0.xsl +++ b/system/xsl/zahlung_0.xsl @@ -1,60 +1,60 @@ - - @@ -186,10 +186,19 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - + - Die Studiengangsleitung des studienganges bestätigt hiermit, dass + Die Studiengangsleitung des studienganges + + + + + + + + + bestätigt hiermit, dass @@ -258,9 +267,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Betrag in EUR - + - + @@ -280,7 +289,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - + From 722d39d8ae9306aba78224edf402f8c6a2f7d01e Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 24 Aug 2016 14:27:25 +0200 Subject: [PATCH 022/140] =?UTF-8?q?Betriebsmittel=20k=C3=B6nnen=20jetzt=20?= =?UTF-8?q?auch=20gespeichert=20werden=20nur=20die=20Berechtigung=20basis/?= =?UTF-8?q?betriebsmittel=20vorhanden=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/student/studentDBDML.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 667cb39c7..1cac12397 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -2280,11 +2280,13 @@ if(!$error) //ein Student oder Mitarbeiter ist if(($_POST['studiengang_kz']!='' && !$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && - !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid') + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid') && + !$rechte->isBerechtigt('basis/betriebsmittel',$_POST['studiengang_kz'], 'suid') ) || ($_POST['studiengang_kz']=='' && !$rechte->isBerechtigt('admin', null, 'suid') && - !$rechte->isBerechtigt('mitarbeiter', null, 'suid') + !$rechte->isBerechtigt('mitarbeiter', null, 'suid') && + !$rechte->isBerechtigt('basis/betriebsmittel', null, 'suid') )) { $error = true; @@ -2323,11 +2325,13 @@ if(!$error) //ein Student oder Mitarbeiter ist if(($_POST['studiengang_kz']!='' && !$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && - !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid') + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid') && + !$rechte->isBerechtigt('basis/betriebsmittel',$_POST['studiengang_kz'], 'suid') ) || ($_POST['studiengang_kz']=='' && !$rechte->isBerechtigt('admin', null, 'suid') && - !$rechte->isBerechtigt('mitarbeiter', null, 'suid') + !$rechte->isBerechtigt('mitarbeiter', null, 'suid') && + !$rechte->isBerechtigt('basis/betriebsmittel', null, 'suid') )) { $error = true; From 6c260c7cd51479371ddc5b6fb82b954f4fcf766b Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Wed, 24 Aug 2016 15:46:48 +0200 Subject: [PATCH 023/140] bugfix for unoconv systemd service killmode --- system/services/systemd/unoconv@.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/services/systemd/unoconv@.service b/system/services/systemd/unoconv@.service index ed2827649..5c0c947c2 100644 --- a/system/services/systemd/unoconv@.service +++ b/system/services/systemd/unoconv@.service @@ -4,7 +4,7 @@ After=network.target [Service] ExecStart=/usr/bin/unoconv -l -KillMode=process +KillMode=mixed Restart=on-failure on-abort User=%i Group=%i From 012ddbe70e6e0f9b290d0c957f3179b8e92c9123 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 26 Aug 2016 13:07:37 +0200 Subject: [PATCH 024/140] Fehler behoben bei dem der passende Studienplan zu einer Lehrveranstaltung nicht korrekt ermittelt wurde --- include/studienplan.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/studienplan.class.php b/include/studienplan.class.php index 36227cc79..0160c125f 100644 --- a/include/studienplan.class.php +++ b/include/studienplan.class.php @@ -862,7 +862,7 @@ class studienplan extends basis_db tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." AND EXISTS ( SELECT 1 FROM lehre.tbl_studienplan_semester - WHERE studienordnung_id=tbl_studienplan.studienordnung_id + WHERE studienplan_id=tbl_studienplan.studienplan_id AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." AND semester = tbl_studienplan_lehrveranstaltung.semester) ORDER BY bezeichnung"; From ddf0a9431ab4b37a12ab6418a5db4165037904a6 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 26 Aug 2016 14:10:49 +0200 Subject: [PATCH 025/140] =?UTF-8?q?Vorlage=20f=C3=BCr=20Ausbildungsvertr?= =?UTF-8?q?=C3=A4ge=20korrgiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/xsl/Ausbildungsver_Lehrgaenge.xsl | 72 ++++++++++++------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/system/xsl/Ausbildungsver_Lehrgaenge.xsl b/system/xsl/Ausbildungsver_Lehrgaenge.xsl index 174a9ff7e..fb51f6d5c 100644 --- a/system/xsl/Ausbildungsver_Lehrgaenge.xsl +++ b/system/xsl/Ausbildungsver_Lehrgaenge.xsl @@ -1,19 +1,19 @@ - @@ -467,7 +467,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - (kurz „a.o. Studentin“ bzw. „a.o. Student“ genannt) andererseits, im Rahmen des Lehrgangs zur Weiterbildung nach §9 FHStG idgF + (kurz „ao. Studentin“ bzw. „ao. Student“ genannt) andererseits, im Rahmen des Lehrgangs zur Weiterbildung nach §9 FHStG idgF @@ -477,7 +477,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - in der Organisationsform eines + in der Organisationsform eines berufsbegleitenden Lehrgangs zur Weiterbildung. @@ -526,7 +526,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Die Ausbildungsdauer beträgt Semester. - Die a.o. Studentin bzw. der a.o. Student hat das Recht, eine Anerkennung nachgewiesener Kenntnisse beim Lehrgang zu beantragen. Eine solche Anerkennung setzt voraus, dass die erworbenen Kenntnisse mit dem Inhalt und dem Umfang der Lehrveranstaltung sind und bewirkt die Anrechnung der entsprechenden Lehrveranstaltung. + Die ao. Studentin bzw. der ao. Student hat das Recht, eine Anerkennung nachgewiesener Kenntnisse beim Lehrgang zu beantragen. Eine solche Anerkennung setzt voraus, dass die erworbenen Kenntnisse mit dem Inhalt und dem Umfang der Lehrveranstaltung gleichwertig sind und bewirkt die Anrechnung der entsprechenden Lehrveranstaltung. @@ -553,7 +553,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 5.1 Rechte Der Erhalter führt eine periodische Überprüfung des Studiums im Hinblick auf Relevanz und Aktualität durch und ist im Einvernehmen mit dem FH-Kollegium berechtigt, daraus Änderungen des Lehrgangs zur Weiterbildung abzuleiten. - Der Erhalter ist berechtigt, die Daten der/des a.o. Studierenden an den FH Technikum Wien Alumni Club zu übermitteln. Der Alumni Club ist der AbsolventInnenverein der FH Technikum Wien. Er hat zum Ziel, AbsolventInnen, Studierende und Lehrende miteinander zu vernetzen sowie AbsolventInnen laufend über Aktivitäten an der FH Technikum Wien zu informieren. Einer Zusendung von Informationen durch den Alumni Club kann jederzeit widersprochen werden. + Der Erhalter ist berechtigt, die Daten der/des ao. Studierenden an den FH Technikum Wien Alumni Club zu übermitteln. Der Alumni Club ist der AbsolventInnenverein der FH Technikum Wien. Er hat zum Ziel, AbsolventInnen, Studierende und Lehrende miteinander zu vernetzen sowie AbsolventInnen laufend über Aktivitäten an der FH Technikum Wien zu informieren. Einer Zusendung von Informationen durch den Alumni Club kann jederzeit widersprochen werden. @@ -568,7 +568,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Der Erhalter verpflichtet sich, jedenfalls folgende Dokumente zur Verfügung zu stellen: Studierendenausweis, Diploma Supplement, Urkunde über die Verleihung des akademischen Grades, Studienerfolgsbestätigung, Inskriptionsbestätigung. - Der Erhalter verpflichtet sich zur sorgfaltsgemäßen Verwendung der personenbezogenen Daten der a.o. Studierenden. Die Daten werden nur im Rahmen der gesetzlichen und vertraglichen Verpflichtungen sowie des Studienbetriebes verwendet und nicht an nicht berechtigte Dritte weitergegeben. + Der Erhalter verpflichtet sich zur sorgfaltsgemäßen Verwendung der personenbezogenen Daten der ao. Studierenden. Die Daten werden nur im Rahmen der gesetzlichen und vertraglichen Verpflichtungen sowie des Studienbetriebes verwendet und nicht an nicht berechtigte Dritte weitergegeben. @@ -576,18 +576,18 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - Rechte und Pflichten der a.o. Studierenden + Rechte und Pflichten der ao. Studierenden 6.1 Rechte - Die a.o. Studentin bzw. der a.o. Student hat das Recht auf einen Studienbetrieb gemäß den im Lehrgang zur Weiterbildung idgf und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen. + Die ao. Studentin bzw. der ao. Student hat das Recht auf einen Studienbetrieb gemäß den im Lehrgang zur Weiterbildung idgf und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen. 6.2 Pflichten 6.2.1 Einhaltung studienrelevanter Bestimmungen - Die a.o. Studentin bzw. der a.o. Student ist verpflichtet, insbesondere folgende Bestimmungen einzuhalten: + Die ao. Studentin bzw. der ao. Student ist verpflichtet, insbesondere folgende Bestimmungen einzuhalten: @@ -614,24 +614,24 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 6.2.2 Lehrgangskosten inkl. Studierendenbeitrag ("ÖH-Beitrag") Voraussetzung für die Geltung dieses Ausbildungsvertrages und für die Teilnahme am Lehrgang ist die erfolgte vollständige Bezahlung der Lehrgangskosten zu den jeweiligen Zahlungsterminen. Bezüglich der Möglichkeiten (teilweiser) Rückerstattungen gelten die AGB der Technikum Wien GmbH für Lehrgänge zur Weiterbildung. - Gemäß § 4 Abs 10 FHStG sind a.o. Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die a.o. Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. + Gemäß § 4 Abs 10 FHStG sind ao. Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die ao. Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. 6.2.3 Beibringung persönlicher Daten - Die a.o. Studentin bzw. der a.o. Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw für den Studienbetrieb unerlässlich sind. + Die ao. Studentin bzw. der ao. Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw für den Studienbetrieb unerlässlich sind. 6.2.4 Aktualisierung eigener Daten und Bezug von Informationen - Die a.o. Studentin bzw. der a.o. Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Lehrgangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen. + Die ao. Studentin bzw. der ao. Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Lehrgangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen. 6.2.5 Verwertungsrechte - Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der a.o. Studentin oder dem a.o. Studenten getroffen wurden, ist die a.o. Studentin oder der a.o. Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten. + Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der ao. Studentin oder dem ao. Studenten getroffen wurden, ist die ao. Studentin oder der ao. Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten. 6.2.6 Aufzeichnungen und Mitschnitte - Es ist der/dem a.o. Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, WhatsAPP, LinkedIn, Xing etc, aber auch auf Youtube, Instagram usw. oder durch sonstige für diese Zwecke geeignete Kommunikationsmittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. - Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. + Es ist der/dem ao. Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, WhatsAPP, LinkedIn, Xing etc, aber auch auf Youtube, Instagram usw. oder durch sonstige für diese Zwecke geeignete Kommunikationsmittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. + Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der/die Vortragende vorab ausdrücklich seine/ihre schriftliche Zustimmung erteilt hat. 6.2.7 Geheimhaltungspflicht - Die a.o. Studentin bzw. der a.o. Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet. + Die ao. Studentin bzw. der ao. Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet. 6.2.8 Schadensmeldung - Im Falle des Eintretens eines Schadens am Inventar der Fachhochschule ist der/die a.o. Studierende verpflichtet, diesen innerhalb von drei Tagen dem Lehrgangssekretariat zu melden. Allfällige Haftungsansprüche bleiben hiervon unberührt. + Im Falle des Eintretens eines Schadens am Inventar der Fachhochschule ist der/die ao. Studierende verpflichtet, diesen innerhalb von drei Tagen dem Lehrgangssekretariat zu melden. Allfällige Haftungsansprüche bleiben hiervon unberührt. 6.2.9 Rückgabeverpflichtung bei Studienende - Die a.o. Studentin bzw. der a.o. Student ist verpflichtet, bei einer Beendigung des Lehrgangs unverzüglich alle zur Verfügung gestellten Gerätschaften, Bücher, Schlüssel und sonstige Materialien zurückzugeben. + Die ao. Studentin bzw. der ao. Student ist verpflichtet, bei einer Beendigung des Lehrgangs unverzüglich alle zur Verfügung gestellten Gerätschaften, Bücher, Schlüssel und sonstige Materialien zurückzugeben. @@ -646,14 +646,14 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 7.1 Auflösung im beiderseitigen Einvernehmen Im beiderseitigen Einvernehmen ist die Auflösung des Ausbildungsvertrages jederzeit ohne Angabe von Gründen möglich. Die einvernehmliche Auflösung bedarf der Schriftform. - 7.2 Kündigung durch die a.o. Studentin bzw. den a.o. Studenten - Die a.o. Studentin bzw. der a.o. Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen. Die Verpflichtung zur vollständigen Leistung der Lehrgangskosten wird von einer Kündigung durch die a.o. Studentin bzw. den a.o. Studenten nicht berührt. + 7.2 Kündigung durch die ao. Studentin bzw. den ao. Studenten + Die ao. Studentin bzw. der ao. Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen. Die Verpflichtung zur vollständigen Leistung der Lehrgangskosten wird von einer Kündigung durch die ao. Studentin bzw. den ao. Studenten nicht berührt. 7.3 Automatische Beendigung des Vertrages Der Ausbildungsvertrag erlischt mit dem Abschluss des Lehrgangs. Der Vertrag endet automatisch durch die negative Beurteilung der letztmöglichen Prüfungswiederholung, in diesem Fall bleibt die Verpflichtung zur vollständigen Leistung der Lehrgangskosten unberührt. 7.4 Ausschluss durch den Erhalter - Der Erhalter kann die a.o. Studentin bzw. den a.o. Studenten aus wichtigem Grund mit sofortiger Wirkung vom weiteren Studium ausschließen, und zwar beispielsweise wegen + Der Erhalter kann die ao. Studentin bzw. den ao. Studenten aus wichtigem Grund mit sofortiger Wirkung vom weiteren Studium ausschließen, und zwar beispielsweise wegen nicht genügender Leistung im Sinne der Prüfungsordnung; @@ -706,7 +706,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - A.o. Studierende des Programms sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und e-mail) trägt der a.o. Student bzw. die a.o. Studentin. + Ao. Studierende des Programms sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und e-mail) trägt der ao. Student bzw. die ao. Studentin. @@ -731,7 +731,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - Die Ausfertigung dieses Vertrages erfolgt in zweifacher Ausführung. Ein Original verbleibt im zuständigen Administrationsbüro des Lehrgangs. Eine Ausfertigung wird der a.o. Studentin bzw. dem a.o. Studenten übergeben. + Die Ausfertigung dieses Vertrages erfolgt in zweifacher Ausführung. Ein Original verbleibt im zuständigen Administrationsbüro des Lehrgangs. Eine Ausfertigung wird der ao. Studentin bzw. dem ao. Studenten übergeben. Für Streitigkeiten aus diesem Vertrag gilt österreichisches Recht als vereinbart, allfällige Klagen sind beim sachlich zuständigen Gericht in Wien einzubringen. Der Ausbildungsvertrag ist gebührenfrei. @@ -760,7 +760,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - Die a.o. Studentin/der a.o. Studentggf. gesetzliche VertreterInnen + Die ao. Studentin/der ao. Studentggf. gesetzliche VertreterInnen From 0942cbf7c964ded8a4e52028c56a8b6291627ab7 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Wed, 31 Aug 2016 11:49:26 +0200 Subject: [PATCH 026/140] Analyzation for studienplan_id detection --- system/prestudentstatus_studienplan_id.php | 358 ++++++++++++++++++--- 1 file changed, 321 insertions(+), 37 deletions(-) diff --git a/system/prestudentstatus_studienplan_id.php b/system/prestudentstatus_studienplan_id.php index 1381801fc..84705290a 100644 --- a/system/prestudentstatus_studienplan_id.php +++ b/system/prestudentstatus_studienplan_id.php @@ -23,6 +23,9 @@ require_once('../config/system.config.inc.php'); require_once('../include/basis_db.class.php'); require_once('../version.php'); require_once('../include/benutzerberechtigung.class.php'); +require_once('../include/studiengang.class.php'); +require_once('../include/prestudent.class.php'); +require_once('../include/student.class.php'); // Datenbank Verbindung $db = new basis_db(); @@ -31,11 +34,42 @@ echo ' Studienplan_id prestudentstatus - @@ -54,12 +88,23 @@ if(!$rechte->isBerechtigt('admin')) if(isset($_POST["start"]) && $_POST["start"] == "start") { - if($result = $db->db_query("SELECT prestudent_id, orgform_kurzbz, studiensemester_kurzbz, ausbildungssemester, status_kurzbz FROM public.tbl_prestudentstatus WHERE studienplan_id IS NULL")) + set_time_limit(10000); + + if($result = $db->db_query(" + SELECT prestudent_id, orgform_kurzbz, studiengang_kz, studiensemester_kurzbz, ausbildungssemester, status_kurzbz + FROM public.tbl_prestudentstatus + JOIN public.tbl_prestudent USING(prestudent_id) + WHERE studienplan_id IS NULL;")) { $all_count = $db->db_num_rows($result); $entries_not_unique = 0; $entries_not_found = 0; $entries_with_error = 0; + $array_stg_without_studienplan = array(); + $array_orgform = array(); + $array_no_orgform = array(); + $array_studienplan_semester = array(); + $array_not_unique = array(); echo "Es gibt " . $all_count . " zu bearbeitende Einträge
    "; @@ -71,44 +116,174 @@ if(isset($_POST["start"]) && $_POST["start"] == "start") FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung USING(studienordnung_id) - WHERE tbl_studienordnung.studiengang_kz= - ( - SELECT studiengang_kz - FROM public.tbl_prestudent - WHERE prestudent_id=".$db->db_add_param($row->prestudent_id,FHC_INTEGER)." - ) - AND lehre.tbl_studienplan.orgform_kurzbz= - ( - SELECT COALESCE + WHERE tbl_studienordnung.studiengang_kz=".$db->db_add_param($row->studiengang_kz)." + AND lehre.tbl_studienplan.orgform_kurzbz= ( - ".$db->db_add_param($row->orgform_kurzbz).", + SELECT COALESCE ( - SELECT orgform_kurzbz FROM public.tbl_studiengang - WHERE - studiengang_kz=(SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($row->prestudent_id,FHC_INTEGER).") - ) + ".$db->db_add_param($row->orgform_kurzbz).", + ( + SELECT orgform_kurzbz FROM public.tbl_studiengang + WHERE + studiengang_kz=(SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($row->prestudent_id,FHC_INTEGER).") + ) + ) ) - ) - AND EXISTS - ( - SELECT * FROM lehre.tbl_studienplan_semester - WHERE - studienplan_id=tbl_studienplan.studienplan_id - AND studiensemester_kurzbz=".$db->db_add_param($row->studiensemester_kurzbz)." - AND semester=".$db->db_add_param($row->ausbildungssemester,FHC_INTEGER)." - ); + AND EXISTS + ( + SELECT 1 FROM lehre.tbl_studienplan_semester + WHERE + studienplan_id=tbl_studienplan.studienplan_id + AND studiensemester_kurzbz=".$db->db_add_param($row->studiensemester_kurzbz)." + AND semester=".$db->db_add_param($row->ausbildungssemester,FHC_INTEGER)." + LIMIT 1 + ); "; - $result_search = $db->db_query($qry_search); $ct = $db->db_num_rows($result_search); if($ct < 1) { $entries_not_found++; + + /* load informations about the student */ + $ps = new prestudent(); + $ps->load($row->prestudent_id); + $stud = new student(); + $uid = $stud->getUid($row->prestudent_id); + + + $qry_analyze1=" + SELECT + studienplan_id + FROM + lehre.tbl_studienplan + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + WHERE lehre.tbl_studienplan.orgform_kurzbz= + ( + SELECT COALESCE + ( + ".$db->db_add_param($row->orgform_kurzbz).", + ( + SELECT orgform_kurzbz FROM public.tbl_studiengang + WHERE + studiengang_kz=(SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($row->prestudent_id,FHC_INTEGER).") + ) + ) + ); + "; + $result_analyze1 = $db->db_query($qry_analyze1); + if($db->db_num_rows($result_analyze1) == 0) + { + $orgform = $row->orgform_kurzbz; + + if($orgform == null) + { + $qry_analyze1_2=" + SELECT orgform_kurzbz FROM public.tbl_studiengang + WHERE + studiengang_kz=(SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($row->prestudent_id,FHC_INTEGER).")"; + + $result_analyze1_2 = $db->db_query($qry_analyze1_2); + if($row3 = $db->db_fetch_object($result_analyze1_2)) + $orgform = $row3->orgform_kurzbz; + } + + + + + if($orgform == null) + { + + if(!isset($array_no_orgform[$row->prestudent_id])) + { + $info = array("uid" => $uid, "vorname" => $ps->vorname, "nachname" => $ps->nachname, "stg_kz" => $row->studiengang_kz, "count" => 0); + $array_no_orgform[$row->prestudent_id] = $info; + } + $array_no_orgform[$row->prestudent_id]["count"] ++; + } + else + { + $key = $orgform; + if(!isset($array_orgform[$key])) + { + $info = array("orgform_kurzbz" => $orgform, "count" => 0); + $array_orgform[$key] = $info; + } + $array_orgform[$key]["count"] ++; + } + } + + + + + + $qry_analyze2=" + SELECT + studienplan_id + FROM + lehre.tbl_studienplan + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + WHERE tbl_studienordnung.studiengang_kz=".$db->db_add_param($row->studiengang_kz); + + $result_analyze2 = $db->db_query($qry_analyze2); + if($db->db_num_rows($result_analyze2) == 0) + { + $key = $row->studiengang_kz; + if(!isset($array_stg_without_studienplan[$key])) + { + $info = array("stg_kz" => $row->studiengang_kz, "count" => 0); + $array_stg_without_studienplan[$key] = $info; + } + $array_stg_without_studienplan[$key]["count"] ++; + } + + $qry_analyze3=" + SELECT + studienplan_id + FROM + lehre.tbl_studienplan + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + WHERE EXISTS + ( + SELECT 1 FROM lehre.tbl_studienplan_semester + WHERE + studienplan_id=tbl_studienplan.studienplan_id + AND studiensemester_kurzbz=".$db->db_add_param($row->studiensemester_kurzbz)." + AND semester=".$db->db_add_param($row->ausbildungssemester,FHC_INTEGER)." + LIMIT 1 + ) + AND studiengang_kz = + ( + SELECT studiengang_kz + FROM public.tbl_prestudent + WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." + );"; + + $result_analyze3 = $db->db_query($qry_analyze3); + if($db->db_num_rows($result_analyze3) == 0) + { + $key = $row->studiengang_kz." ".$row->status_kurzbz; + if(!isset($array_studienplan_semester[$key])) + { + $info = array("stg_kz" => $row->studiengang_kz, "ausbildungssemester" => $row->ausbildungssemester, "studiensemester_kurzbz" => $row->studiensemester_kurzbz, "status_kurzbz" => $row->status_kurzbz, "count" => 0); + $array_studienplan_semester[$key] = $info; + } + $array_studienplan_semester[$key]["count"] ++; + } + + + } else if($ct > 1) { + if(!isset($array_not_unique[$row->prestudent_id])) + { + $info = array("prestudent_id" => $row->prestudent_id, "uid" => $uid, "vorname" => $ps->vorname, "nachname" => $ps->nachname, "stg_kz" => $row->studiengang_kz, "count" => 0); + $array_not_unique[$row->prestudent_id] = $info; + } + $array_not_unique[$row->prestudent_id]["count"] ++; $entries_not_unique++; } else @@ -126,12 +301,106 @@ if(isset($_POST["start"]) && $_POST["start"] == "start") $rest_count = $all_count - $entries_not_found - $entries_not_unique - $entries_with_error; $quote = 100/$all_count*$rest_count; + $color = "black"; + if($quote < 33.3) + $color = "red"; + else if($quote > 33.3 && $quote < 66.6) + $color = "orange"; + else + $color = "green"; echo "Es wurden " . $rest_count . " Einträge eingetragen
    "; - echo $entries_not_found." nicht gefunden
    "; - echo $entries_not_unique." nicht eindeutig
    "; + echo $entries_not_found." wurden nicht gefunden
    "; + echo $entries_not_unique." sind nicht eindeutig
    "; echo $entries_with_error." konnten aufgrund eines Fehlers nicht eingetragen werden
    "; - echo "Es wurde eine quote von " . round($quote,2) . "% erreicht
    "; + echo "Es wurde eine quote von " . round($quote,2) . "% erreicht
    "; + + + echo "

    Details

    "; + + + + + $ct = countIntArray($array_no_orgform); + if($ct) + { + echo $ct . " Einträge ohne Orgform(Prestudentstatus/Studiengang)
    "; + echo ""; + echo ""; + foreach($array_no_orgform as $k => $i) + { + $stg = new studiengang(); + $stg->load($i["stg_kz"]); + echo ""; + } + echo ""; + } + + + + + $ct = countIntArray($array_stg_without_studienplan); + if($ct) + { + echo $ct . " Einträge ohne Studienplan
    "; + echo ""; + echo ""; + foreach($array_stg_without_studienplan as $k => $i) + { + $stg = new studiengang(); + $stg->load($i["stg_kz"]); + echo ""; + } + echo ""; + } + + $ct = countIntArray($array_orgform); + if($ct) + { + echo $ct . " Einträge mit unbekannter Orgform
    "; + echo ""; + echo ""; + foreach($array_orgform as $k => $i) + { + echo ""; + } + echo ""; + } + + + $ct = countIntArray($array_studienplan_semester); + if($ct) + { + echo $ct . " Einträge ohne Studienplan - Semester Zuordnung
    "; + echo ""; + } + + + $ct = countIntArray($array_not_unique); + if($ct) + { + echo $ct . " Einträge, welche nicht eindeutig ermittelt werden konnten
    "; + echo ""; + echo ""; + foreach($array_not_unique as $k => $i) + { + $stg = new studiengang(); + $stg->load($i["stg_kz"]); + echo ""; + } + echo ""; + } } } else @@ -141,14 +410,29 @@ else

    Es wird versucht anhand der orgform_kurzbz, der prestudent_id, der studiensemester_kurzbz und des ausbildungssemesters die studienplan_id des prestudentstatus zu ermitteln

    Es werden nur Einträge mit studienplan_id IS NULL geändert

    Hinweis:

    -

    Die Tabelle lehre.tbl_studienplan_semester muss hierfür bereits durch CHECKSYSTEM angelegt UND befüllt sein. Andernfalls kann keine studienplan_id gefunden werden!

    +

    Vor diesem Skript sollte Checksystem ausgeführt werden!

    -
    - - -
    + '; + + +function countIntArray($arr) +{ + $count = 0; + foreach($arr as $k => $i) + { + if(is_array($i)) + { + $count += countIntArray($i); + } + else if($k == "count" && is_numeric($i)) + { + $count += $i; + } + } + return $count; +} ?> From 1b7e5292d4cbf8caa2cb2a46bbc705db154572bd Mon Sep 17 00:00:00 2001 From: oesi Date: Thu, 1 Sep 2016 15:05:32 +0200 Subject: [PATCH 027/140] Logo Pfad korrigiert --- system/xsl/AusbVerEngHead_9005.xsl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/xsl/AusbVerEngHead_9005.xsl b/system/xsl/AusbVerEngHead_9005.xsl index 2234bc022..467bb4ede 100644 --- a/system/xsl/AusbVerEngHead_9005.xsl +++ b/system/xsl/AusbVerEngHead_9005.xsl @@ -894,14 +894,14 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + - + @@ -952,4 +952,4 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - \ No newline at end of file + From 03e93fcaf94376bc2714dcf1da2b4bd35d9bab66 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 2 Sep 2016 13:37:32 +0200 Subject: [PATCH 028/140] =?UTF-8?q?Meine=20LV=20zeigt=20die=20LVs=20des=20?= =?UTF-8?q?aktuellen=20und=20n=C3=A4hesten=20Studiensemesters=20an,=20auch?= =?UTF-8?q?=20wenn=20ein=20aktives=20Studiensemester=20vorhanden=20ist.=20?= =?UTF-8?q?Die=20Anzeige=20ist=20jetzt=20getrennt=20f=C3=BCr=20die=20einze?= =?UTF-8?q?lnen=20Studiensemester?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cms/menu/menu_addon_meinelv.inc.php | 169 +++++++++++++++------------- 1 file changed, 93 insertions(+), 76 deletions(-) diff --git a/cms/menu/menu_addon_meinelv.inc.php b/cms/menu/menu_addon_meinelv.inc.php index db63f7cd2..188945aab 100755 --- a/cms/menu/menu_addon_meinelv.inc.php +++ b/cms/menu/menu_addon_meinelv.inc.php @@ -49,53 +49,54 @@ class menu_addon_meinelv extends menu_addon $studiengang_obj = new studiengang(); $studiengang_obj->getAll(); - if ($stsemobj = new studiensemester()) + $stsemobj = new studiensemester(); + + $stsem_arr=array(); + $stsem_arr[]=$stsemobj->getNearest(); + $stsem_arr[]=$stsemobj->getNearestFrom($stsem_arr[0]); + + foreach($stsem_arr as $stsem) { - $stsem_arr=array(); - if(!$stsemobj->getakt()) - { - $stsem_arr[]=$stsemobj->getNearest(); - $stsem_arr[]=$stsemobj->getNearestFrom($stsem_arr[0]); - } - else - { - $stsem_arr[] = $stsemobj->getNearest(); - } $qry = "SELECT distinct lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, lehre, lehreverzeichnis, studiensemester_kurzbz from campus.vw_student_lehrveranstaltung - WHERE uid=".$this->db_add_param($user)." AND studiensemester_kurzbz in(".$this->db_implode4SQL($stsem_arr).") + WHERE uid=".$this->db_add_param($user)." AND studiensemester_kurzbz=".$this->db_add_param($stsem)." AND lehre=true AND lehreverzeichnis<>'' ORDER BY studiengang_kz, semester, bezeichnung"; if($result = $this->db_query($qry)) { - while($row = $this->db_fetch_object($result)) + if($this->db_num_rows($result)>0) { - $lv_obj = new lehrveranstaltung(); - $lv_obj->load($row->lehrveranstaltung_id); + $this->items[] = array('title'=>$stsem, + 'target'=>'_self', + 'link'=>'#'.$stsem, + 'name'=>''.$stsem.''); - if($row->studiengang_kz==0 && $row->semester==0) // Freifach + while($row = $this->db_fetch_object($result)) { - $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], - 'target'=>'content', - 'link'=>'private/freifaecher/lesson.php?lvid='.$row->lehrveranstaltung_id, - 'name'=>'FF '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) - ); - } - else - { - $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], - 'target'=>'content', - 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$row->studiensemester_kurzbz, - 'name'=>$studiengang_obj->kuerzel_arr[$row->studiengang_kz].$row->semester.' '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) - ); + $lv_obj = new lehrveranstaltung(); + $lv_obj->load($row->lehrveranstaltung_id); + + if($row->studiengang_kz==0 && $row->semester==0) // Freifach + { + $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], + 'target'=>'content', + 'link'=>'private/freifaecher/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$row->studiensemester_kurzbz, + 'name'=>'FF '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) + ); + } + else + { + $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], + 'target'=>'content', + 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$row->studiensemester_kurzbz, + 'name'=>$studiengang_obj->kuerzel_arr[$row->studiengang_kz].$row->semester.' '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) + ); + } } } } else echo "Fehler beim Auslesen der LV"; - } - else - { - echo "Fehler Semester beim Auslesen der LV"; + } } @@ -105,57 +106,73 @@ class menu_addon_meinelv extends menu_addon if ($stsemobj = new studiensemester()) { $stsem_arr=array(); - if(!$stsemobj->getakt()) - { - $stsem_arr[]=$stsemobj->getNearest(); - $stsem_arr[]=$stsemobj->getNearestFrom($stsem_arr[0]); - } - else - { - $stsem_arr[] = $stsemobj->getNearest(); - } - $qry = "SELECT distinct bezeichnung, studiengang_kz, semester, lehreverzeichnis, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.orgform_kurzbz, studiensemester_kurzbz FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter - WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND - mitarbeiter_uid=".$this->db_add_param($user)." AND tbl_lehreinheit.studiensemester_kurzbz in(".$this->db_implode4SQL($stsem_arr).") - ORDER BY studiengang_kz, semester, bezeichnung"; + $stsem_arr[]=$stsemobj->getNearest(); + $stsem_arr[]=$stsemobj->getNearestFrom($stsem_arr[0]); - if($result = $this->db_query($qry)) - { - $this->items[] = array('title'=>$p->t("lvaliste/titel"), - 'target'=>'content', - 'link'=>'private/profile/lva_liste.php', - 'name'=>$p->t("lvaliste/titel")); + $this->items[] = array('title'=>$p->t("lvaliste/titel"), + 'target'=>'content', + 'link'=>'private/profile/lva_liste.php', + 'name'=>$p->t("lvaliste/titel")); - while($row = $this->db_fetch_object($result)) + foreach($stsem_arr as $stsem) + { + $stsementry=array(); + $qry = "SELECT distinct bezeichnung, studiengang_kz, semester, lehreverzeichnis, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.orgform_kurzbz, studiensemester_kurzbz FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter + WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND + tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND + mitarbeiter_uid=".$this->db_add_param($user)." AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($stsem)." + ORDER BY studiengang_kz, semester, bezeichnung"; + + if($result = $this->db_query($qry)) { - $lv_obj = new lehrveranstaltung(); - $lv_obj->load($row->lehrveranstaltung_id); - - if($row->studiengang_kz==0 AND $row->semester==0) + if($this->db_num_rows($result)>0) { - $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], - 'target'=>'content', - 'link'=>'private/freifaecher/lesson.php?lvid='.$row->lehrveranstaltung_id, - 'name'=>'FF '.$this->CutString($row->lehreverzeichnis, $cutlength) - ); - } - else - { - $stg_obj = new studiengang(); - $stg_obj->load($row->studiengang_kz); - $kurzbz = $stg_obj->kuerzel.'-'.$row->semester.' '.$row->orgform_kurzbz; + $this->items[] = array('title'=>$stsem, + 'target'=>'_self', + 'link'=>'#'.$stsem, + 'name'=>''.$stsem.''); - $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], - 'target'=>'content', - 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$row->studiensemester_kurzbz, - 'name'=>$kurzbz.' '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) - ); + while($row = $this->db_fetch_object($result)) + { + $lv_obj = new lehrveranstaltung(); + $lv_obj->load($row->lehrveranstaltung_id); + + if($row->studiengang_kz==0 AND $row->semester==0) + { + $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], + 'target'=>'content', + 'link'=>'private/freifaecher/lesson.php?lvid='.$row->lehrveranstaltung_id, + 'name'=>'FF '.$this->CutString($row->lehreverzeichnis, $cutlength) + ); + } + else + { + $stg_obj = new studiengang(); + $stg_obj->load($row->studiengang_kz); + $kurzbz = $stg_obj->kuerzel.'-'.$row->semester.' '.$row->orgform_kurzbz; + + $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], + 'target'=>'content', + 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$row->studiensemester_kurzbz, + 'name'=>$kurzbz.' '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) + ); + } + } } } + else + echo "Fehler beim Auslesen des Lehrfaches"; +/* + if(count($stsementry)>0) + { + $this->items[] = array('title'=>$stsem, + 'target'=>'', + 'link'=>'#', + 'name'=>$stsem, + 'childs'=>$stsementry + ); + }*/ } - else - echo "Fehler beim Auslesen des Lehrfaches"; } else { From 34af00d94eb555a601ad95c15d840e9824ae6456 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 2 Sep 2016 13:51:28 +0200 Subject: [PATCH 029/140] =?UTF-8?q?Erstellung=20der=20Mailverteiler=20f?= =?UTF-8?q?=C3=BCr=20WarmUp=20Kurse=20angepasst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/mlists/mlists_create.php | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/system/mlists/mlists_create.php b/system/mlists/mlists_create.php index 035341d8b..b87b0905a 100644 --- a/system/mlists/mlists_create.php +++ b/system/mlists/mlists_create.php @@ -35,11 +35,7 @@ $num_rows=$db->db_num_rows($result_stg); $ss=new studiensemester(); $ss_nearest=$ss->getNearest(); - $ss_akt=$ss->getAkt(); - if($ss_akt=='') - $ss_nearest2=$ss->getNearestFrom($ss_nearest); - else - $ss_nearest2=$ss_nearest; + $ss_nearest_to_akt=$ss->getNearestFrom($ss_nearest); ?> @@ -72,13 +68,13 @@ $mg_kurzbz=$row_mg->gruppe_kurzbz; if($row_mg->studiengang_kz==10005 && mb_stripos($mg_kurzbz,'EWU')===0) { - echo "EWU Gruppe $mg_kurzbz wird fuer STSEM ".$ss_nearest2." erstellt"; + echo "EWU Gruppe $mg_kurzbz wird fuer STSEM ".$ss_nearest." und ".$ss_nearest_to_akt." erstellt"; // FHTW Warm Up Kurse enthaelt die Teilnehmer des SS auch wenn das WS schon gestartet hat $sql_query='SELECT tbl_benutzergruppe.uid, nachname, vorname '. 'FROM campus.vw_benutzer, public.tbl_benutzergruppe '. 'WHERE vw_benutzer.uid=tbl_benutzergruppe.uid AND '. "UPPER(gruppe_kurzbz)=UPPER('$mg_kurzbz') AND tbl_benutzergruppe.uid NOT LIKE '\\\\_%' ". - "AND (studiensemester_kurzbz IS NULL OR studiensemester_kurzbz='$ss_nearest2') AND aktiv ORDER BY nachname;"; + "AND (studiensemester_kurzbz IS NULL OR studiensemester_kurzbz in(".$db->db_add_param($ss_nearest).",".$db->db_add_param($ss_nearest_to_akt).")) AND aktiv ORDER BY nachname;"; } else { From c26df3e2f13b22b7588e236ea2039dd7885dbfd6 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Mon, 5 Sep 2016 10:46:45 +0200 Subject: [PATCH 030/140] added restart button --- system/prestudentstatus_studienplan_id.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/system/prestudentstatus_studienplan_id.php b/system/prestudentstatus_studienplan_id.php index 84705290a..0777f1818 100644 --- a/system/prestudentstatus_studienplan_id.php +++ b/system/prestudentstatus_studienplan_id.php @@ -85,6 +85,7 @@ if(!$rechte->isBerechtigt('admin')) exit('Sie haben keine Berechtigung'); } +$startString = "Starten"; if(isset($_POST["start"]) && $_POST["start"] == "start") { @@ -402,6 +403,8 @@ if(isset($_POST["start"]) && $_POST["start"] == "start") echo ""; } } + + $startString = "Neu Starten"; } else { @@ -412,10 +415,11 @@ else

    Hinweis:

    Vor diesem Skript sollte Checksystem ausgeführt werden!

    - + +'; From 4b0fd80bf456afe741c0b58e8791c32b83281abc Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Mon, 5 Sep 2016 14:48:21 +0200 Subject: [PATCH 031/140] multiple Documents modified --- system/xsl/AusbVerEng_0.xsl | 8 ++++---- system/xsl/AusbVerEng_9005.xsl | 18 +++++++++--------- system/xsl/AusbVerEng_Lehrgaenge.xsl | 6 +++--- system/xsl/Ausbildungsver_0.xsl | 6 +++--- system/xsl/Ausbildungsver_9005.xsl | 2 +- system/xsl/Ausbildungsver_Lehrgaenge.xsl | 2 +- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/system/xsl/AusbVerEng_0.xsl b/system/xsl/AusbVerEng_0.xsl index 2a4773750..bcf07de4b 100644 --- a/system/xsl/AusbVerEng_0.xsl +++ b/system/xsl/AusbVerEng_0.xsl @@ -709,7 +709,7 @@ This contract governs the legal relationship between - the University of Applied Sciences Technikum Wien Association, 1060 Vienna, Mariahilferstraße 37-39 (referred to as "operator") on the one hand and + the University of Applied Sciences Technikum Wien Association, 1060 Vienna, Mariahilfer Straße 37-39 (referred to as "operator") on the one hand and @@ -1137,7 +1137,7 @@ Two weeks before the beginning of each semester (new students: up to August 20 before taking up studies) the student undertakes to pay tuition fees according to the University of Applied Sciences Studies Act as amended currently to the sum of € 363.36 net payable per semester. This also applies in semesters with graduand status etc. In the event of an increase in the legal tuition fees rate, the amount quoted will increase accordingly. Full payment of the tuition fees is a prerequisite both for enrolling on the course and continuing with the degree program. For non-commencement or termination of the study at the beginning or during the semester, the tuition fee is forfeited. 6.2.3 ÖH-Beitrag - Gemäß § 4 Abs 10 FHStG sind Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. + Gemäß § 4 Abs. 10 FHStG sind Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. 6.2.4 Kaution Im Zuge der Einschreibung ist der Nachweis über die einbezahlte Kaution zu erbringen. @@ -1206,7 +1206,7 @@ 6.2.7 Providing Personal Data - The student is obliged to produce personal data which must be registered because of a law, regulation or a decision by the operator, or is essential fort he fulfilling of the training contract or fort he program of studies. + The student is obliged to produce personal data which must be registered because of a law, regulation or a decision by the operator, or is essential for the fulfilling of the training contract or for the program of studies. @@ -1224,7 +1224,7 @@ 6.2.10 Aufzeichnungen und Mitschnitte Es ist der/dem Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc., aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikations-mittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. - Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. + Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der / die Vortragende vorab ausdrücklich seine / ihre schriftliche Zustimmung erteilt hat. 6.2.11 Geheimhaltungspflicht diff --git a/system/xsl/AusbVerEng_9005.xsl b/system/xsl/AusbVerEng_9005.xsl index 7b0d6d6bc..fde93d7f4 100644 --- a/system/xsl/AusbVerEng_9005.xsl +++ b/system/xsl/AusbVerEng_9005.xsl @@ -733,7 +733,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn for external students (attending individual courses of a degree program) - This contract governs the legal relationship between the University of Applied Sciences Technikum Wien Association, 1060 Vienna, Mariahilferstraße 37-39 (referred to as "operator") on the one hand and + This contract governs the legal relationship between the University of Applied Sciences Technikum Wien Association, 1060 Vienna, Mariahilfer Straße 37-39 (referred to as "operator") on the one hand and @@ -844,7 +844,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - Die Ausbildung endet mit der positiven Absolvierung der das jeweilige Studium abschließenden kommissionellen Prüfung. Nach dem Abschluss der vorgeschriebenen Prüfungen wird der akademische Grad Bachelor of Science in Engineering (BSc) durch das FH-Kollegium verliehen. + Das außerordentliche Studium endet mit der positiven Absolvierung der in den jeweiligen Lehrveranstaltungen vorgesehenen Leistungsanforderungen. Nach dem positiven Abschluss wird der für die jeweilige Lehrveranstaltung vorgesehene Leistungsnachweis ausgestellt. 1. Place of Training @@ -1103,7 +1103,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn These documents are publically available at www.technikum-wien.at. 6.2.2 Studienbeitrag - Die ao. Studentin bzw. der ao. Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters (StudienanfängerInnen: bis 20. August vor Studienbeginn) einen Studienbeitrag gemäß Fachhochschul-Studiengesetz in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Im Falle einer Erhöhung des gesetzlichen Studienbeitragssatzes erhöht sich der angeführte Betrag entsprechend. + Die ao. Studentin bzw. der ao. Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters einen Studienbeitrag gemäß Fachhochschul-Studiengesetz in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Im Falle einer Erhöhung des gesetzlichen Studienbeitragssatzes erhöht sich der angeführte Betrag entsprechend. Die vollständige Bezahlung des Studienbeitrags ist Voraussetzung für die Aufnahme bzw. die Fortsetzung des ao. Studiums. Bei Nichtantritt des ao. Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. 6.2.3 ÖH-Beitrag @@ -1113,7 +1113,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn 6.2.4 Unkostenbeitrag Pro Semester ist ein Unkostenbeitrag zu entrichten, wobei es sich nicht um einen Pauschalbetrag handelt. Der Unkostenbeitrag stellt eine Abgeltung für über das Normalmaß hinausgehende Serviceleistungen der FH dar, z.B. Freifächer, Beratung/Info Auslands-studium, Sponsionsfeiern, Vorträge / Job-börse, Mensa etc. 6.2.2 Tuition Fees - Two weeks before the beginning of each semester (new students: up to August 20 before taking up studies) the external student undertakes to pay tuition fees according to the University of Applied Sciences Studies Act currently to the sum of € 363.36 net payable per semester. In the event of an increase in the legal tuition fees rate, the amount quoted will increase accordingly. + Two weeks before the beginning of each semester the external student undertakes to pay tuition fees according to the University of Applied Sciences Studies Act currently to the sum of € 363.36 net payable per semester. In the event of an increase in the legal tuition fees rate, the amount quoted will increase accordingly. Full payment of the tuition fees is a prerequisite both for enrolling on the course and continuing with the degree program. For non-commencement or termination of the external study at the beginning or during the semester, the tuition fee is forfeited. @@ -1147,7 +1147,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn 6.2.6 Providing Personal Data - The external student is obliged to produce personal data which must be registered because of a law, regulation or a decision by the operator, or is essential fort he fulfilling of the training contract or fort he program of studies. + The external student is obliged to produce personal data which must be registered because of a law, regulation or a decision by the operator, or is essential for the fulfilling of the training contract or for the program of studies. 6.2.7 Aktualisierung eigener Daten und Bezug von Informationen Die ao. Studentin bzw. der ao. Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Studiengangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen. @@ -1171,7 +1171,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn 6.2.9 Recordings It is expressly forbidden for the external student to record lectures in part or in total (e.g. by using film and / or sound recordings or other audio-visual means suitable for this purpose). In addition, any form of making the aforementioned recordings publically available (wired or wireless) for example in social networks such as Facebook, StudiVZ etc, but also on Youtube, etc., or by other means of communication designed for these purposes is strictly prohibited. These regulations shall apply correspondingly to scripts, other learning aids and examination data. - Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. + Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der / die Vortragende vorab ausdrücklich seine / ihre schriftliche Zustimmung erteilt hat. 6.2.10 Geheimhaltungspflicht Die ao. Studentin bzw. der ao. Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet. @@ -1352,13 +1352,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn 8. Ergänzende Vereinbarungen - Das gesamte Studienprogramm wird in englischer Sprache angeboten. Die ao. Studentin bzw. der ao. Student erklärt, die englische Sprache in Wort und Schrift in dem für eine akademische Ausbildung erforderlichen Ausmaß zu beherrschen. + Falls das gesamte Studienprogramm in englischer Sprache angeboten wird, erklärt die ao. Studentin bzw. der ao. Student, die englische Sprache in Wort und Schrift in dem für eine akademische Ausbildung erforderlichen Ausmaß zu beherrschen. Ao. Studierende des Studiengangs sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und e-mail) trägt der ao. Student bzw. die ao. Studentin. 8. Supplementary Agreements - The entire degree program is offered in English. The external student declares he / she masters the English language in word and in writing to the extent necessary for an academic degree program. + If the degree program is offered in English, the external student declares to master the English language in word and in writing to the extent necessary for an academic degree program. External students in the program are required to obtain and maintain computer equipment which allows them to participate in the distance learning elements. The total cost of acquisition and operation (including costs for Internet and e-mail) shall be borne by the external student. @@ -1497,4 +1497,4 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - \ No newline at end of file + diff --git a/system/xsl/AusbVerEng_Lehrgaenge.xsl b/system/xsl/AusbVerEng_Lehrgaenge.xsl index 9d71c7119..50c0f81d1 100644 --- a/system/xsl/AusbVerEng_Lehrgaenge.xsl +++ b/system/xsl/AusbVerEng_Lehrgaenge.xsl @@ -798,7 +798,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" This contract governs the legal relationship between - the University of Applied Sciences Technikum Wien Association, 1060 Vienna, Mariahilferstraße 37-39 (referred to as "operator") on the one hand and + the University of Applied Sciences Technikum Wien Association, 1060 Vienna, Mariahilfer Straße 37-39 (referred to as "operator") on the one hand and @@ -1247,7 +1247,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Die a.o. Studentin bzw. der a.o. Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Studiengangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen. 6.2.2 Providing Personal Data - The external student is obliged to produce personal data which must be registered because of a law, regulation or a decision by the operator, or is essential fort he fulfilling of the training contract or fort he program of studies. + The external student is obliged to produce personal data which must be registered because of a law, regulation or a decision by the operator, or is essential for the fulfilling of the training contract or for the program of studies. 6.2.3 Updating personal data and the retrieval of information @@ -1263,7 +1263,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 6.2.5 Aufzeichnungen und Mitschnitte Es ist der/dem a.o. Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, WhatsAPP, LinkedIn, XING etc, aber auch auf Youtube, Instagram usw. oder durch sonstige für diese Zwecke geeignete Kommunikations-mittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. - Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. + Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der / die Vortragende vorab ausdrücklich seine / ihre schriftliche Zustimmung erteilt hat. diff --git a/system/xsl/Ausbildungsver_0.xsl b/system/xsl/Ausbildungsver_0.xsl index 5a372020c..9578c4b28 100644 --- a/system/xsl/Ausbildungsver_0.xsl +++ b/system/xsl/Ausbildungsver_0.xsl @@ -544,7 +544,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Die Studentin bzw. der Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters (StudienanfängerInnen: bis 20. August vor Studienbeginn) einen Studienbeitrag gemäß Fachhochschul-Studiengesetz idgF in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Dies gilt auch in Semestern mit DiplomandInnenstatus o.ä. Im Falle einer Erhöhung des gesetzlichen Studienbeitragssatzes erhöht sich der angeführte Betrag entsprechend. Die vollständige Bezahlung des Studienbeitrags ist Voraussetzung für die Aufnahme bzw. die Fortsetzung des Studiums. Bei Nichtantritt des Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag. 6.2.3 ÖH-Beitrag - Gemäß § 4 Abs 10 FHStG sind Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. + Gemäß § 4 Abs. 10 FHStG sind Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. 6.2.4 Kaution Im Zuge der Einschreibung ist der Nachweis über die einbezahlte Kaution zu erbringen. @@ -581,7 +581,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn 6.2.10 Aufzeichnungen und Mitschnitte Es ist der/dem Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc., aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikationsmittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben. - Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat. + Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der / die Vortragende vorab ausdrücklich seine / ihre schriftliche Zustimmung erteilt hat. 6.2.11 Geheimhaltungspflicht Die Studentin bzw. der Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet. @@ -738,4 +738,4 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - \ No newline at end of file + diff --git a/system/xsl/Ausbildungsver_9005.xsl b/system/xsl/Ausbildungsver_9005.xsl index 17a77a4ae..295807609 100644 --- a/system/xsl/Ausbildungsver_9005.xsl +++ b/system/xsl/Ausbildungsver_9005.xsl @@ -679,4 +679,4 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - \ No newline at end of file + diff --git a/system/xsl/Ausbildungsver_Lehrgaenge.xsl b/system/xsl/Ausbildungsver_Lehrgaenge.xsl index fb51f6d5c..be8fdaad0 100644 --- a/system/xsl/Ausbildungsver_Lehrgaenge.xsl +++ b/system/xsl/Ausbildungsver_Lehrgaenge.xsl @@ -614,7 +614,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 6.2.2 Lehrgangskosten inkl. Studierendenbeitrag ("ÖH-Beitrag") Voraussetzung für die Geltung dieses Ausbildungsvertrages und für die Teilnahme am Lehrgang ist die erfolgte vollständige Bezahlung der Lehrgangskosten zu den jeweiligen Zahlungsterminen. Bezüglich der Möglichkeiten (teilweiser) Rückerstattungen gelten die AGB der Technikum Wien GmbH für Lehrgänge zur Weiterbildung. - Gemäß § 4 Abs 10 FHStG sind ao. Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die ao. Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. + Gemäß § 4 Abs. 10 FHStG sind ao. Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die ao. Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung. 6.2.3 Beibringung persönlicher Daten From b43601a9cc8cd206a221ef4238c9038332d66112 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Mon, 5 Sep 2016 16:27:26 +0200 Subject: [PATCH 032/140] bugfix --- system/xsl/lehrauftrag_0.xsl | 2 +- system/xsl/lehrauftrag_Lehrgaenge.xsl | 4 ++-- system/xsl/lehrauftrag_style_0.xsl | 2 +- system/xsl/lehrauftrag_style_Lehrgaenge.xsl | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/system/xsl/lehrauftrag_0.xsl b/system/xsl/lehrauftrag_0.xsl index 544e3d07a..a7b02d13f 100644 --- a/system/xsl/lehrauftrag_0.xsl +++ b/system/xsl/lehrauftrag_0.xsl @@ -526,4 +526,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - \ No newline at end of file + diff --git a/system/xsl/lehrauftrag_Lehrgaenge.xsl b/system/xsl/lehrauftrag_Lehrgaenge.xsl index ceef990ed..3f24ffa4d 100644 --- a/system/xsl/lehrauftrag_Lehrgaenge.xsl +++ b/system/xsl/lehrauftrag_Lehrgaenge.xsl @@ -361,7 +361,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - + @@ -523,4 +523,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - \ No newline at end of file + diff --git a/system/xsl/lehrauftrag_style_0.xsl b/system/xsl/lehrauftrag_style_0.xsl index e028ce0c6..88b7193e0 100644 --- a/system/xsl/lehrauftrag_style_0.xsl +++ b/system/xsl/lehrauftrag_style_0.xsl @@ -561,4 +561,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - \ No newline at end of file + diff --git a/system/xsl/lehrauftrag_style_Lehrgaenge.xsl b/system/xsl/lehrauftrag_style_Lehrgaenge.xsl index fbea9f33b..03dc305e3 100644 --- a/system/xsl/lehrauftrag_style_Lehrgaenge.xsl +++ b/system/xsl/lehrauftrag_style_Lehrgaenge.xsl @@ -561,4 +561,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" - \ No newline at end of file + From a6c9d100ee9c5235a17a5ca4ab623f7eaae2f64d Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 6 Sep 2016 11:55:32 +0200 Subject: [PATCH 033/140] =?UTF-8?q?Uebersichtsliste=20f=C3=BCr=20die=20G?= =?UTF-8?q?=C3=BCltigkeit=20von=20Studienpl=C3=A4nen=20unter=20Vilesci->Le?= =?UTF-8?q?hre=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/studienplan.class.php | 7 ++++--- include/tw/vilesci_menu_main.inc.php | 1 + vilesci/lehre/studienplan_gueltigkeit.php | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/include/studienplan.class.php b/include/studienplan.class.php index 0160c125f..700c90041 100644 --- a/include/studienplan.class.php +++ b/include/studienplan.class.php @@ -701,7 +701,7 @@ class studienplan extends basis_db * @param $ausbuldungssemester * @param $orgform_kurzbz */ - function getStudienplaeneFromSem($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester="", $orgform_kurzbz = "") + function getStudienplaeneFromSem($studiengang_kz, $studiensemester_kurzbz="", $ausbildungssemester="", $orgform_kurzbz = "") { $qry = "SELECT studienplan_id, @@ -746,8 +746,9 @@ class studienplan extends basis_db JOIN lehre.tbl_studienplan_semester USING(studienplan_id) WHERE tbl_studienplan.aktiv - AND tbl_studienordnung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER)." - AND tbl_studienplan_semester.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz); + AND tbl_studienordnung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER); + if($studiensemester_kurzbz!='') + $qry.=" AND tbl_studienplan_semester.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz); if($ausbildungssemester!='') $qry.=" AND tbl_studienplan_semester.semester=".$this->db_add_param($ausbildungssemester); diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 58792af76..f1140999e 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -71,6 +71,7 @@ $menu=array 'Gruppenverwaltung'=>array('name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support'), 'link'=>'stammdaten/lvbgruppenverwaltung.php', 'target'=>'main'), 'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'), 'Studienordnung'=>array('name'=>'Studienordnung', 'link'=>'lehre/studienordnung.php', 'target'=>'_blank','permissions'=>array('lehre/studienordnung')), + 'StudienplanGueltigkeit'=>array('name'=>'Studienplan Gültigkeit', 'link'=>'lehre/studienplan_gueltigkeit.php', 'target'=>'main','permissions'=>array('lehre/studienordnung')), 'Moodle'=>array ( diff --git a/vilesci/lehre/studienplan_gueltigkeit.php b/vilesci/lehre/studienplan_gueltigkeit.php index 8a506bf71..f2a5f3849 100644 --- a/vilesci/lehre/studienplan_gueltigkeit.php +++ b/vilesci/lehre/studienplan_gueltigkeit.php @@ -28,7 +28,7 @@ $user = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('assistenz', null, 'suid')) +if(!$rechte->isBerechtigt('lehre/studienordnung', null, 's')) die('keine Berechtigung für diese Seite!'); $studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; @@ -83,7 +83,7 @@ if($studiengang_kz!='') { if($max_semester < $row->semester) $max_semester = $row->semester; - $gueltigkeit[$row->studiensemester_kurzbz][$row->semester][]=$row->bezeichnung; + $gueltigkeit[$row->studiensemester_kurzbz][$row->semester][]=$row->bezeichnung_studienplan; } } From 30b81cd37699de4f90e185fbfe3eba967b69775d Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 6 Sep 2016 13:32:21 +0200 Subject: [PATCH 034/140] Removed old File --- vilesci/lehre/stundenplan_info.html | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 vilesci/lehre/stundenplan_info.html diff --git a/vilesci/lehre/stundenplan_info.html b/vilesci/lehre/stundenplan_info.html deleted file mode 100644 index 228b30108..000000000 --- a/vilesci/lehre/stundenplan_info.html +++ /dev/null @@ -1,10 +0,0 @@ - - -Untitled Document - - - - - - - From 92544007eb6a52e2906405a6a868202e87524b2a Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Wed, 7 Sep 2016 11:29:56 +0200 Subject: [PATCH 035/140] added textile in composer --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index a64b8607b..25fa249d0 100755 --- a/composer.json +++ b/composer.json @@ -3,8 +3,8 @@ "components/jquery": "2.1.4", "components/angular.js": "1.3.16", "components/bootstrap": "3.3.5", - "michelf/php-markdown": "1.5.0" - + "michelf/php-markdown": "1.5.0", + "netcarver/textile": "^3.5" }, "require-dev": { From 9e2c60fb91c406fa6b734332852c9d91749f2ee7 Mon Sep 17 00:00:00 2001 From: kindlm Date: Wed, 7 Sep 2016 18:24:41 +0200 Subject: [PATCH 036/140] timetable-week.xul.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit UNDO Befehl zum mitloggen von gelöschten Reservierungen --- content/lvplanung/timetable-week.xul.php | 32 ++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/content/lvplanung/timetable-week.xul.php b/content/lvplanung/timetable-week.xul.php index 16ed153d1..0fe246577 100644 --- a/content/lvplanung/timetable-week.xul.php +++ b/content/lvplanung/timetable-week.xul.php @@ -376,22 +376,50 @@ elseif ($aktion=='stpl_delete_single' || $aktion=='stpl_delete_block') if(isset($res_id)) { - $reservierung=new reservierung(); foreach ($res_id as $reservierung_id) { + $reservierung = new reservierung(); + $reservierung->load($reservierung_id); + $deletetext = ' AND datum='.$reservierung->datum.' AND stunde='.$reservierung->stunde.' AND titel='.$reservierung->titel.' AND beschreibung='.$reservierung->beschreibung.' AND uid='.$reservierung->uid.';'; $reservierung->delete($reservierung_id); $error_msg.=$reservierung->errormsg; + //UNDO Befehl zum mitloggen von geloeschten Reservierungen + if($error_msg=='') + { + $log = new log(); + $log->executetime = date('Y-m-d H:i:s'); + $log->sqlundo = ''; + $log->sql = 'DELETE FROM campus.tbl_reservierung WHERE reservierung_id='.$reservierung_id.$deletetext; + $log->beschreibung = 'Löschen der Reservierung '.$reservierung_id; + $log->mitarbeiter_uid = $uid; + if(!$log->save(true)) + $error_msg.='Fehler: '.$log->errormsg; + } } } //Loeschen von mehreren Reservierungen if(isset($res_idx)) { - $reservierung=new reservierung(); foreach ($res_idx as $reservierung_id) { + $reservierung = new reservierung(); + $reservierung->load($reservierung_id); + $deletetext = ' AND datum='.$reservierung->datum.' AND stunde='.$reservierung->stunde.' AND titel='.$reservierung->titel.' AND beschreibung='.$reservierung->beschreibung.' AND uid='.$reservierung->uid.';'; $reservierung->delete($reservierung_id); $error_msg.=$reservierung->errormsg; + //UNDO Befehl zum mitloggen von geloeschten Reservierungen + if($error_msg=='') + { + $log = new log(); + $log->executetime = date('Y-m-d H:i:s'); + $log->sqlundo = ''; + $log->sql = 'DELETE FROM campus.tbl_reservierung WHERE reservierung_id='.$reservierung_id.$deletetext; + $log->beschreibung = 'Löschen der Reservierung '.$reservierung_id; + $log->mitarbeiter_uid = $uid; + if(!$log->save(true)) + $error_msg.='Fehler: '.$log->errormsg; + } } } } From 29b56af899cf3ba1f4cfb8e5ddcf41247086501e Mon Sep 17 00:00:00 2001 From: kindlm Date: Wed, 7 Sep 2016 18:25:45 +0200 Subject: [PATCH 037/140] funktion_det.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Filter für OE und Semester - GUI-Verbesserungen --- vilesci/personen/funktion_det.php | 884 ++++++++++++++++++++++-------- 1 file changed, 649 insertions(+), 235 deletions(-) diff --git a/vilesci/personen/funktion_det.php b/vilesci/personen/funktion_det.php index d1c66d186..602640a66 100644 --- a/vilesci/personen/funktion_det.php +++ b/vilesci/personen/funktion_det.php @@ -1,5 +1,9 @@ - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Authors: Christian Paminger < christian.paminger@technikum-wien.at > + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ - -/******************************************************************************* - File: funktion_det.php - Descr: Hier werden Personen aufgelistet, die zur in funktion.php ausgewählten - Gruppe gehören. Es können Datensätze hinzugefügt und gelöscht werden. - Dazu wird dieses File rekursiv aufgerufen. - Erstellt am: 25.05.2003 von Christian Paminger, Werner Masik -********************************************************************************/ -require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/person.class.php'); -require_once('../../include/funktion.class.php'); -require_once('../../include/benutzerfunktion.class.php'); -require_once('../../include/fachbereich.class.php'); -require_once('../../include/benutzerberechtigung.class.php'); - -if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); +/** + * ***************************************************************************** + * File: funktion_det.php + * Descr: Hier werden Personen aufgelistet, die zur in funktion.php ausgewählten + * Gruppe gehören. + * Es können Datensätze hinzugefügt und gelöscht werden. + * Dazu wird dieses File rekursiv aufgerufen. + * Erstellt am: 25.05.2003 von Christian Paminger, Werner Masik + * ****************************************************************************** + */ +require_once ('../../config/vilesci.config.inc.php'); +require_once ('../../include/functions.inc.php'); +require_once ('../../include/person.class.php'); +require_once ('../../include/funktion.class.php'); +require_once ('../../include/benutzerfunktion.class.php'); +require_once ('../../include/fachbereich.class.php'); +require_once ('../../include/benutzerberechtigung.class.php'); // Datenbankverbindung herstellen +if (! $db = new basis_db ()) + die ( 'Es konnte keine Verbindung zum Server aufgebaut werden.' ); -$user=get_uid(); +$user = get_uid (); -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); +$rechte = new benutzerberechtigung (); +$rechte->getBerechtigungen ( $user ); -if(!$rechte->isBerechtigt('mitarbeiter',null,'suid')) - die($rechte->errormsg); +if (! $rechte->isBerechtigt ( 'mitarbeiter', null, 'suid' )) + die ( $rechte->errormsg ); -$type=''; -if (isset($_POST['type'])) - $type=$_POST['type']; +$type = ''; +if (isset ( $_POST ['type'] )) + $type = $_POST ['type']; -if (isset($_GET['type'])) - $type=$_GET['type']; +if (isset ( $_GET ['type'] )) + $type = $_GET ['type']; -if(isset($_GET['kurzbz'])) - $funktion_kurzbz=$_GET['kurzbz']; +if (isset ( $_GET ['kurzbz'] )) + $funktion_kurzbz = $_GET ['kurzbz']; -if(isset($_GET['datumvon'])) - $datumvon=$_GET['datumvon']; +if (isset ( $_GET ['bezeichnung'] )) + $bezeichnung = $_GET ['bezeichnung']; else - $datumvon=''; + $bezeichnung = ''; -if(isset($_GET['datumbis'])) - $datumbis=$_GET['datumbis']; +if (isset ( $_GET ['wochenstunden'] )) + $wochenstunden = $_GET ['wochenstunden']; else - $datumbis=''; + $wochenstunden = ''; -// Neue Funktionszuweisung speichern -if ($type=='new' || $type=='editsave') +if (isset ( $_GET ['datumvon'] )) + $datumvon = $_GET ['datumvon']; +else + $datumvon = ''; + +if (isset ( $_GET ['datumbis'] )) + $datumbis = $_GET ['datumbis']; +else + $datumbis = ''; + +if (isset ( $_POST ['oe_kurzbz_filter'] )) + $oe_kurzbz_filter = $_POST ['oe_kurzbz_filter']; +else + $oe_kurzbz_filter = '-1'; + +if (isset ( $_POST ['semester_filter'] )) + $semester_filter = $_POST ['semester_filter']; +else + $semester_filter = $_POST['semester_filter'] = '-1' ; + +$bn_funktion_id = isset($_GET ['bn_funktion_id'])?$_GET ['bn_funktion_id']:'-1'; +//var_dump($_POST); + + + + // Neue Funktionszuweisung speichern +if ($type == 'new' || $type == 'editsave') { + // Einfügen in die Datenbank + + $funktion = new benutzerfunktion (); + $funktion->uid = $_POST ['uid']; + $funktion->funktion_kurzbz = $_POST ['kurzbz']; + if (isset ( $_POST ['oe_kurzbz'] ) && $_POST ['oe_kurzbz'] != - 1) { + $funktion->oe_kurzbz = $_POST ['oe_kurzbz']; + + if (isset ( $_POST ['fb_kurzbz'] ) && $_POST ['fb_kurzbz'] != - 1) { + $funktion->fachbereich_kurzbz = $_POST ['fb_kurzbz']; + } else { + $funktion->fachbereich_kurzbz = null; + } + + $funktion->semester = (isset ( $_POST ['semester'] ) ? $_POST ['semester'] : ''); + $funktion->datum_von = $_POST ['datumvon']; + $funktion->datum_bis = $_POST ['datumbis']; + + $funktion->bezeichnung = $_POST ['bezeichnung']; + $funktion->wochenstunden = $_POST ['wochenstunden']; + + + if ($type == 'editsave') { + $funktion->new = false; + $funktion->benutzerfunktion_id = $_POST ['bn_funktion_id']; + $funktion->updateamum = date ( 'Y-m-d H:i:s' ); + $funktion->updatevon = $user; + } else { + $funktion->new = true; + $funktion->updateamum = date ( 'Y-m-d H:i:s' ); + $funktion->updatevon = $user; + $funktion->insertamum = date ( 'Y-m-d H:i:s' ); + $funktion->insertvon = $user; + } + + if (! $funktion->save ()) { + echo "Fehler: " . $funktion->errormsg; + } + } else + echo ' Organisationseinheit muss angegeben werden '; +} + +// Mehrere Eintraege updaten +if ($type == 'editsavemultiple') { - //Einfügen in die Datenbank - - $funktion=new benutzerfunktion(); - $funktion->uid=$_POST['uid']; - $funktion->funktion_kurzbz=$_POST['kurzbz']; - if (isset($_POST['oe_kurzbz']) && $_POST['oe_kurzbz']!=-1) - { - $funktion->oe_kurzbz=$_POST['oe_kurzbz']; - - if (isset($_POST['fb_kurzbz']) && $_POST['fb_kurzbz']!=-1) - { - $funktion->fachbereich_kurzbz=$_POST['fb_kurzbz']; - } - else - { - $funktion->fachbereich_kurzbz=null; - } - - $funktion->semester = (isset($_POST['semester'])?$_POST['semester']:''); - $funktion->datum_von = $_POST['datumvon']; - $funktion->datum_bis = $_POST['datumbis']; - - if($type=='editsave') - { - $funktion->new=false; - $funktion->benutzerfunktion_id = $_POST['bn_funktion_id']; - $funktion->updateamum=date('Y-m-d H:i:s'); - $funktion->updatevon=$user; - } - else - { - $funktion->new=true; - $funktion->updateamum=date('Y-m-d H:i:s'); - $funktion->updatevon=$user; - $funktion->insertamum=date('Y-m-d H:i:s'); - $funktion->insertvon=$user; - } - - if (!$funktion->save()) - { - echo "Fehler: ".$funktion->errormsg; - } + $uids = explode(", ", $_POST['uids']); + $bn_funktion_ids = explode(", ", $_POST['bn_funktion_ids']); + + for ($i=0; $iuid = $uids[$i]; + $funktion->funktion_kurzbz = $_POST ['kurzbz']; + if (isset ( $_POST ['oe_kurzbz'] ) && $_POST ['oe_kurzbz'] != - 1) { + $funktion->oe_kurzbz = $_POST ['oe_kurzbz']; + + if (isset ( $_POST ['fb_kurzbz'] ) && $_POST ['fb_kurzbz'] != - 1) { + $funktion->fachbereich_kurzbz = $_POST ['fb_kurzbz']; + } else { + $funktion->fachbereich_kurzbz = null; + } + + $funktion->semester = (isset ( $_POST ['semester'] ) ? $_POST ['semester'] : ''); + $funktion->datum_von = $_POST ['datumvon']; + $funktion->datum_bis = $_POST ['datumbis']; + + $funktion->bezeichnung = $_POST ['bezeichnung']; + $funktion->wochenstunden = $_POST ['wochenstunden']; + + $funktion->new = false; + $funktion->benutzerfunktion_id = $bn_funktion_ids[$i]; + $funktion->updateamum = date ( 'Y-m-d H:i:s' ); + $funktion->updatevon = $user; + + //var_dump($funktion); + + if (! $funktion->save ()) { + echo "Fehler: " . $funktion->errormsg; + } + } else + echo ' Organisationseinheit muss angegeben werden '; } - else - echo "Studiengang muss angegeben werden"; - } // Eine Funktionszuweisung loeschen -if ($type=='delete') +if ($type == 'delete') { - $funktion=new benutzerfunktion(); - $bn_funktion_id=$_GET['bn_funktion_id']; - if (!is_numeric($bn_funktion_id)) + $funktion = new benutzerfunktion (); + $bn_funktion_id = $_GET ['bn_funktion_id']; + if (! is_numeric ( $bn_funktion_id )) { echo "Benutzer_funktion_id ist keine Zahl"; - } - else + } + else { - if (!$funktion->delete($bn_funktion_id)) + if (! $funktion->delete ( $bn_funktion_id )) { - echo "Fehler: ".$funktion->errormsg; + echo "Fehler: " . $funktion->errormsg; } } } // Daten für Personenauswahl -$sql_query="SELECT nachname, vorname, uid FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) ORDER BY upper(nachname), vorname, uid"; -$result_person=$db->db_query($sql_query); -if(!$result_person) - die ($db->db_last_error()); +$sql_query = "SELECT nachname, vorname, uid FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) ORDER BY upper(nachname), vorname, uid"; +$result_person = $db->db_query ( $sql_query ); +if (! $result_person) + die ( $db->db_last_error () ); // Daten für Organisationseinheiten -$sql_query="SELECT oe_kurzbz, organisationseinheittyp_kurzbz as kurzbz, bezeichnung FROM public.tbl_organisationseinheit ORDER BY kurzbz, bezeichnung"; -$result_oe=$db->db_query($sql_query); -if(!$result_oe) - die ($db->db_last_error()); +$sql_query = "SELECT oe_kurzbz, organisationseinheittyp_kurzbz as kurzbz, bezeichnung FROM public.tbl_organisationseinheit /*WHERE organisationseinheittyp_kurzbz= 'Institut'*/ ORDER BY kurzbz, bezeichnung"; +$result_oe = $db->db_query ( $sql_query ); +if (! $result_oe) + die ( $db->db_last_error () ); -// Instanz von Funktion-Klasse erzeugen -$funktion=new funktion(); -//print_r($_GET); -$kurzbz = (isset($_POST['kurzbz'])?$_POST['kurzbz']:$_GET['kurzbz']); -if (!$funktion->load($kurzbz)) -{ - echo "Fehler: ".$funktion->errormsg; - exit(); + // Instanz von Funktion-Klasse erzeugen +$funktion = new funktion (); +$kurzbz = (isset ( $_POST ['kurzbz'] ) ? $_POST ['kurzbz'] : $_GET ['kurzbz']); +//$kurzbz2 = $kurzbz; +if (! $funktion->load ( $kurzbz )) { + echo "Fehler: " . $funktion->errormsg; + exit (); } ?> - Funktion Details - - - - +Funktion Details + + + + + + + + + + + + + -

    Funktion: beschreibung?>


    - + " method="post"> +

    Funktion: beschreibung?>

    +
    + beschreibung; - // Liste der Personen darstellen - if ($type!='edit') - { - // Personen holen - $qry = "SELECT - tbl_organisationseinheit.bezeichnung as oebezeichnung, - tbl_organisationseinheit.organisationseinheittyp_kurzbz as oetyp, - tbl_benutzer.uid as uid, * - FROM - public.tbl_benutzerfunktion, - public.tbl_person, - public.tbl_benutzer, - public.tbl_organisationseinheit - WHERE - funktion_kurzbz=".$db->db_add_param($kurzbz)." AND - tbl_benutzerfunktion.uid=tbl_benutzer.uid AND - tbl_benutzer.person_id=tbl_person.person_id AND - tbl_benutzerfunktion.oe_kurzbz=tbl_organisationseinheit.oe_kurzbz"; - - if($result = $db->db_query($qry)) - { - echo " - - - - - - - - - - - "; - $j=0; - echo ''; - while($row = $db->db_fetch_object($result)) - { - $j++; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo "\n"; - - } - echo ''; - } - else - { - echo "Fehler: ". $db->db_last_error(); - } - } - +// Filter Felder +echo ' Filter '; + echo '
    '; echo ' +
    NameUIDOrganisationseinheitInstitutSemesterDatumVonDatumBisAktion
    ".$row->nachname.", ".$row->vorname."".$row->uid."".$row->oetyp.' '.$row->oebezeichnung."".$row->fachbereich_kurzbz."".$row->semester."".$row->datum_von."".$row->datum_bis."uid."&bn_funktion_id=$row->benutzerfunktion_id&fb_kurzbz=$row->fachbereich_kurzbz&oe_kurzbz=$row->oe_kurzbz&semester=$row->semester&datumvon=$row->datum_von&datumbis=$row->datum_bis\">Edituid."&bn_funktion_id=$row->benutzerfunktion_id&fb_kurzbz=$row->fachbereich_kurzbz&oe_kurzbz=$row->oe_kurzbz&semester=$row->semester&datumvon=$row->datum_von&datumbis=$row->datum_bis\">Delete
    + '; +//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -
    -
    -
    -

    - '; +//echo ' '; +//echo ' '; +echo ' '; +//echo ' '; +echo ' + + Organisationseinheit: + + '; +//echo ''; +echo ' +'; - echo ''; +while ( $row = $db->db_fetch_object ( $result_oe ) ) +{ + $rows[] = $row; + echo ""; +} +echo ''; + +//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + echo ' + + Semester: + + '; + //var_dump($_POST); +?> + + + + + + + + + '; + //echo ''; + //echo ''; + + //echo ''; + +//echo ''; +// echo ''; +// echo ''; + + echo ''; + echo '

    '; +?> + + + + //Hinzufuegen und Edit Felder + echo '
    '; + echo '
    '; + echo ' Hinzufügen / Bearbeiten '; + echo '
    +

    '; + + if ($type == 'edit') { + if (isset($_GET['multiple']) && $_GET['multiple']=='true') + echo ''; + else + echo ''; + echo ''; + } else echo ''; echo ' - + - + - '; - echo ''; + $funktion = new funktion (); + // $funktion->load ( $funktion_kurzbz ); // Notice: Undefined variable: funktion_kurzbz in /var/www/kindlm/fhcomplete/vilesci/personen/funktion_det.php - $funktion = new funktion(); - $funktion->load($funktion_kurzbz); - - if($funktion->fachbereich) - { + if ($funktion->fachbereich) { echo ' @@ -301,27 +513,22 @@ if (!$funktion->load($kurzbz)) '; // Auswahl Fachbereich - $fachbereich=new fachbereich(); - if ($fachbereich->getAll()) - { - foreach($fachbereich->result as $fb) - { - echo ""; - } - } - else - { - echo "Fehler: ".$fb->errormsg; + } + } else { + echo "Fehler: " . $fb->errormsg; } echo ''; } - if($funktion->semester) - { + if ($funktion->semester) { echo ' @@ -329,24 +536,231 @@ if (!$funktion->load($kurzbz)) '; } - echo ''; - echo ''; + echo ' + + + + '; + + echo ' + + + + '; + + // datepicker + echo ''; + echo ''; + + echo ''; echo '
    Lektor: - '; - // Auswahl der Person - $num_rows=$db->db_num_rows($result_person); - while($row=$db->db_fetch_object ($result_person)) - { - echo ""; + // wenn Aktion "Edit" dann kann UID nicht veraendert werden + // -> wird nur angezeigt + if ($type == 'edit') { + if (isset($_GET['multiple']) && $_GET['multiple']=='true') { + if (isset($_POST['editordelete']) && $_POST['editordelete']=='edit') { + if (isset($_POST['checkAktion'])) { + $checkAktion = $_POST['checkAktion']; + $names = array(); + $uids = array(); + $bn_funktion_ids = array(); + for ($i=0; $i'; + echo ''; + echo ''; + echo ''.implode("
    ", $names).''; + echo ''; + + //var_dump($checkAktion); + //var_dump($names); + } + } elseif (isset($_POST['editordelete']) && $_POST['editordelete']=='delete') { + // mehrere Funktionen aufeinmal loeschen + $checkAktion = $_POST['checkAktion']; + $bn_funktion_ids = array(); + for ($i=0; $idelete ( $bn_funktion_id )) { + echo "Fehler: " . $funktion->errormsg; + } + } + } + } + } else { + $dis_uid = $_GET ["uid"]; + echo '
    '; + echo ''; + echo ''; + echo '
    '; + } + } else { + echo '
    '; + echo ''; + echo ''; + echo '
    '; } - echo '
    Organisationseinheit: @@ -277,22 +492,19 @@ if (!$funktion->load($kurzbz)) '; // Auswahl der Organisationseinheit - $num_rows=$db->db_num_rows($result_oe); - while($row=$db->db_fetch_object($result_oe)) - { + $num_rows = $db->db_num_rows ( $result_oe ); + foreach($rows as $row){ echo ""; } echo '
    Fachbereich:
    Semester:
    Datum Von:
    Datum Bis:
    Bezeichnung: + '; + if ($type == 'edit') { + echo ' + + '; + } else { + echo ' + + '; + } + echo ' +
    Wochenstunden: + + + '; + + echo ' +
    Datum Von: + +
    Datum Bis: + +
     
    '; - - echo ''; - + echo ''; echo '

    '; + + ?> + + + + + + + + echo ''; + +//echo ''; + //echo ''; + //echo ''; + + // Liste der Personen darstellen + // Personen holen + if (1<2) { + $qry = "SELECT + tbl_organisationseinheit.bezeichnung as oebezeichnung, + tbl_organisationseinheit.organisationseinheittyp_kurzbz as oetyp, + tbl_benutzer.uid as uid, tbl_benutzerfunktion.*, tbl_person.vorname, tbl_person.nachname + FROM + public.tbl_benutzerfunktion, + public.tbl_person, + public.tbl_benutzer, + public.tbl_organisationseinheit + WHERE + funktion_kurzbz=" . $db->db_add_param ( $kurzbz ) . " AND + tbl_benutzerfunktion.uid=tbl_benutzer.uid AND + tbl_benutzer.person_id=tbl_person.person_id AND + tbl_benutzerfunktion.oe_kurzbz=tbl_organisationseinheit.oe_kurzbz"; + if ($oe_kurzbz_filter!='-1') + $qry .= " AND tbl_organisationseinheit.oe_kurzbz=".$db->db_add_param($oe_kurzbz_filter); + if ($semester_filter!='-1') + $qry .= " AND semester=".$db->db_add_param($semester_filter); + } + + if (1<0) { + $qry = "SELECT + tbl_organisationseinheit.bezeichnung as oebezeichnung, + tbl_organisationseinheit.organisationseinheittyp_kurzbz as oetyp, + tbl_benutzer.uid as uid, tbl_benutzerfunktion.*, tbl_person.vorname, tbl_person.nachname + FROM + public.tbl_benutzerfunktion, + public.tbl_person, + public.tbl_benutzer, + public.tbl_organisationseinheit + + WHERE + funktion_kurzbz=" . $db->db_add_param ( $kurzbz ) . " AND + tbl_benutzerfunktion.uid=tbl_benutzer.uid AND + tbl_benutzer.person_id=tbl_person.person_id AND + tbl_benutzerfunktion.oe_kurzbz=tbl_organisationseinheit.oe_kurzbz + AND tbl_organisationseinheit.bezeichnung='Haustechnik'"; + + } + + if ($result = $db->db_query ( $qry )) { + + echo " + + + + + + + + + + + + + + "; + $j = 0; + echo ''; + while ( $row = $db->db_fetch_object ( $result ) ) { + $j ++; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo "\n"; + } + echo ''; + } else { + echo "Fehler: " . $db->db_last_error (); + } + + // Summe aller Reihen + echo ' +
    NameUIDOrganisationseinheitInstitutSemesterBezeichnungWochenstundenDatumVonDatumBisAktion
    " . $row->nachname . ", " . $row->vorname . "" . $row->uid . "" . $row->oetyp . ' ' . $row->oebezeichnung . "" . $row->fachbereich_kurzbz . "" . $row->semester . "" . $row->bezeichnung . "" . $row->wochenstunden . "" . $row->datum_von . "" . $row->datum_bis . "uid . "&bn_funktion_id=$row->benutzerfunktion_id&fb_kurzbz=$row->fachbereich_kurzbz&oe_kurzbz=$row->oe_kurzbz&semester=$row->semester&bezeichnung=$row->bezeichnung&wochenstunden=$row->wochenstunden&datumvon=$row->datum_von&datumbis=$row->datum_bis\">Edituid . "&bn_funktion_id=$row->benutzerfunktion_id&fb_kurzbz=$row->fachbereich_kurzbz&oe_kurzbz=$row->oe_kurzbz&semester=$row->semester&bezeichnung=$row->bezeichnung&wochenstunden=$row->wochenstunden&datumvon=$row->datum_von&datumbis=$row->datum_bis\" onclick='return confirm(\"Diesen Datensatz loeschen?\")'>Delete" . "" . "
    + +

    + + +   + +

    + + '; ?> + From 893157c638b8413a2593cebce1eeea4486897149 Mon Sep 17 00:00:00 2001 From: kindlm Date: Wed, 7 Sep 2016 18:29:56 +0200 Subject: [PATCH 038/140] CIS-Search content only last version The CIS Search of content now only displays the last (highest) version of a content --- cis/private/tools/suche.php | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/cis/private/tools/suche.php b/cis/private/tools/suche.php index 0688da85b..a12206a29 100755 --- a/cis/private/tools/suche.php +++ b/cis/private/tools/suche.php @@ -454,16 +454,22 @@ function searchContent($searchItems) echo '

    ',$row->sprache,'

    '; echo '
      '; } - $berechtigt = new content(); - $berechtigt = $berechtigt->berechtigt($row->content_id, $uid); - if ($berechtigt) + // Nur die hoechste Version des Contents anzeigen + $version = new content(); + $maxversion = $version->getMaxVersion($row->content_id, $row->sprache); + if ($row->version == $maxversion) { - echo '
    • '; - echo '',$db->convert_html_chars($row->titel),'
      '; - $preview = findAndMark($row->content, $searchItems); - - echo $preview; - echo '

    • '; + $berechtigt = new content(); + $berechtigt = $berechtigt->berechtigt($row->content_id, $uid); + if ($berechtigt) + { + echo '
    • '; + echo '',$db->convert_html_chars($row->titel),'
      '; + $preview = findAndMark($row->content, $searchItems); + + echo $preview; + echo '

    • '; + } } } } From 5b4939279c7cc6d977ec6a7626e3685bfa818748 Mon Sep 17 00:00:00 2001 From: oesi Date: Thu, 8 Sep 2016 17:00:08 +0200 Subject: [PATCH 039/140] =?UTF-8?q?Rechte=20zum=20Drucken=20von=20=C3=9Cbe?= =?UTF-8?q?rnahmebest=C3=A4tigungen=20erweitert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/pdfExport.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/pdfExport.php b/content/pdfExport.php index ef7a4e23a..efffab93f 100755 --- a/content/pdfExport.php +++ b/content/pdfExport.php @@ -300,7 +300,7 @@ elseif(in_array($xsl,array('Inskription','Studienerfolg','OutgoingLearning','Out } elseif($xsl=='Uebernahme') { - if(!$rechte->isBerechtigt('wawi/inventar') && !$rechte->isBerechtigt('assistenz')) + if(!$rechte->isBerechtigt('wawi/inventar') && !$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('basis/betriebsmittel')) { echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen'; exit; From 47b9001321d5df683bb759a06657aaabda9fb0d6 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 9 Sep 2016 09:16:25 +0200 Subject: [PATCH 040/140] Bugfix im Studienplan damit Anmeldungen korrekt angezeigt werden bei kompatiblen und angerechneten LVs --- cis/private/profile/studienplan.php | 56 ++++++++++++++--------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 409d0a87b..633da1faf 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -551,6 +551,7 @@ function drawTree($tree, $depth) // } $tdinhalt=''; + $found = false; // Ist bereits eine Note für diese LV in diesem Stsem vorhanden? if(isset($noten_arr[$row_tree->lehrveranstaltung_id][$stsem])) @@ -559,40 +560,37 @@ function drawTree($tree, $depth) $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.''; else $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.''; + $found=true; } elseif(count($kompatibleLVs) > 0) { - $found = false; - $i = 0; - while(!$found && $i < count($kompatibleLVs)) - { - foreach($kompatibleLVs as $komp) - { - $anrechnung = new anrechnung(); - $anrechnung->getAnrechnungPrestudent($student->prestudent_id, $row_tree->lehrveranstaltung_id, $komp); - - if(count($anrechnung->result) == 1) - { - $lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel; - if(isset($noten_arr[$lv][$stsem])) - { - $found = true; - if($note_pruef_arr[$noten_arr[$lv][$stsem]]->positiv) - $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; - else - $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; - } - } - $i++; - } - - if(!$found) - { - $tdinhalt.= '-'; - } + + $i = 0; + while(!$found && $i < count($kompatibleLVs)) + { + foreach($kompatibleLVs as $komp) + { + $anrechnung = new anrechnung(); + $anrechnung->getAnrechnungPrestudent($student->prestudent_id, $row_tree->lehrveranstaltung_id, $komp); + + if(count($anrechnung->result) == 1) + { + $lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel; + if(isset($noten_arr[$lv][$stsem])) + { + $found = true; + if($note_pruef_arr[$noten_arr[$lv][$stsem]]->positiv) + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; + else + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; } + } + $i++; + } + } } - else + + if(!$found) { // Angebot der LV und der Kompatiblen pruefen $anmeldungmoeglich=false; From aa3863d5b4f51287f86f999e40c6bc63a2112e78 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 9 Sep 2016 09:17:41 +0200 Subject: [PATCH 041/140] =?UTF-8?q?Hilfetext=20f=C3=BCr=20Testclient=20hin?= =?UTF-8?q?zugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soap/semesterticket_client.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/soap/semesterticket_client.php b/soap/semesterticket_client.php index d478e3260..ba4e309c8 100644 --- a/soap/semesterticket_client.php +++ b/soap/semesterticket_client.php @@ -24,7 +24,7 @@ $db = new basis_db(); - + @@ -40,7 +40,7 @@ $db = new basis_db(); - + @@ -48,7 +48,7 @@ $db = new basis_db(); - + @@ -91,5 +91,17 @@ if(isset($_REQUEST['submit'])) } ?> +
      +* mögliche Fehlercodes
      + * 	1: Kein aufrechtes Studium
      + *	2: Fehlerhafter Request
      + *	3: Student wurde nicht gefunden
      + *	4: Fehler Geburtsdatum
      + *	5: Fehler Postleitzahl
      + *	6: Fehler Vorname
      + *	7: Fehler Nachname
      + *	8: Fehler Semester
      + *	9: Fehler Matrikelnummer
      +
      From 90745fdddcd3491c3c31d016862f2c1a05cf7505 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Mon, 12 Sep 2016 15:07:23 +0200 Subject: [PATCH 042/140] redirecting wawi linkts to the new addon --- vilesci/inventar/inventar.php | 12 +- vilesci/inventar/inventar_afa.php | 4 +- wawi/auswertungen/aufteilung.php | 378 +++++++++++++++--------------- 3 files changed, 197 insertions(+), 197 deletions(-) diff --git a/vilesci/inventar/inventar.php b/vilesci/inventar/inventar.php index 70e03edc0..c984e51fb 100644 --- a/vilesci/inventar/inventar.php +++ b/vilesci/inventar/inventar.php @@ -954,17 +954,17 @@ function output_inventar($debug=false,$resultBetriebsmittel=null,$resultBetriebs $bestellung_ivalid_style='style="color: red;"'; - //$htmlstring.=''; + //$htmlstring.=''; $htmlstring.=''; @@ -1075,7 +1075,7 @@ function output_inventarposition($debug=false,$resultBetriebsmittel=null,$result $htmlstring.=''; $htmlstring.=' - '; + '; $htmlstring.=''; @@ -1125,8 +1125,8 @@ function output_inventarposition($debug=false,$resultBetriebsmittel=null,$result }); }); */ - else - $htmlstring.=''; + else + $htmlstring.=''; $htmlstring.=''; if ($schreib_recht && $resBetriebsmittel->bestellung_id) diff --git a/vilesci/inventar/inventar_afa.php b/vilesci/inventar/inventar_afa.php index 292dd005d..93cab65da 100644 --- a/vilesci/inventar/inventar_afa.php +++ b/vilesci/inventar/inventar_afa.php @@ -850,10 +850,10 @@ function output_inventarposition($debug=false,$resultBetriebsmittel=null,$result $htmlstring.=' - + - + '; diff --git a/wawi/auswertungen/aufteilung.php b/wawi/auswertungen/aufteilung.php index 1cb870f50..1acaf5040 100644 --- a/wawi/auswertungen/aufteilung.php +++ b/wawi/auswertungen/aufteilung.php @@ -1,189 +1,189 @@ -, - * Andreas Oesterreicher and - * Karl Burkhart . - */ -/** - * Auswertung der Bestellungen und Rechnungen auf Kostenstellen - */ -require_once('../../config/wawi.config.inc.php'); -require_once('../auth.php'); -require_once('../../include/benutzerberechtigung.class.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/wawi_rechnung.class.php'); -require_once('../../include/wawi_bestellung.class.php'); -require_once('../../include/wawi_kostenstelle.class.php'); -require_once('../../include/studiensemester.class.php'); -require_once('../../include/tags.class.php'); -require_once('../../include/geschaeftsjahr.class.php'); -require_once('../../include/datum.class.php'); - -$user = get_uid(); -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -$kst_array = $rechte->getKostenstelle(); - -if(count($kst_array)==0) - die('Sie benoetigen eine Kostenstellenberechtigung um diese Seite anzuzeigen'); - -$datum_obj = new datum(); -?> - - - - WaWi - Kostenstelle - Auswertung - - - - - - - - - - - - -

      Bericht - Aufteilung

      - - Geschäftsjahr - - - '; - - $gj= new geschaeftsjahr(); - $gj->load($geschaeftsjahr); - - $kstIN=$db->implode4SQL($kst_array); - - echo 'Zeitraum: ',$datum_obj->formatDatum($gj->start,'d.m.Y'),' - ',$datum_obj->formatDatum($gj->ende,'d.m.Y').''; - echo ' - '; - echo '
      token:">"> Anfrage ID - zufälliger Text
      Matrikelnummer:
      Geburtsdatum:">"> Format: YYYY-MM-DD
      Postleitzahl:
      Semesterkuerzel:">"> Format 16W für WS2016; 16S für SS2016
      '.$resultBetriebsmittel[$pos]->bestellnr.' '.$resultBetriebsmittel[$pos]->bestellnr.' '; //Wenn Rechnungen vorhanden sind, einen Link dazu anzeigen $rechnung = new wawi_rechnung(); if($resultBetriebsmittel[$pos]->bestellung_id!='' && $rechnung->count($resultBetriebsmittel[$pos]->bestellung_id)>0) { - $htmlstring.=' '; + $htmlstring.=' '; } - $htmlstring.=''.$resultBetriebsmittel[$pos]->bestellnr.''; + $htmlstring.=''.$resultBetriebsmittel[$pos]->bestellnr.''; echo '
      Bestellnr. : '.$resBetriebsmittel->bestellnr.''.$resBetriebsmittel->bestellnr.'Bestell ID. : '.$resBetriebsmittel->bestellung_id.''.$resBetriebsmittel->bestellung_id.'Bestellpos. ID. : 
      Bestellnr. : '.$resBetriebsmittel->bestellnr.''.$resBetriebsmittel->bestellnr.' Bestell ID. : '.$resBetriebsmittel->bestellung_id.''.$resBetriebsmittel->bestellung_id.' Bestellpos. ID. : 
      - - - - - - - - '; - - //Tabelle auf Basis der Bestellungen - $qry = " - SELECT - oe_kurzbz, tbl_organisationseinheit.bezeichnung, anteil_brutto, tbl_organisationseinheit.organisationseinheittyp_kurzbz - FROM - ( - SELECT - oe_kurzbz, sum(brutto/100*anteil) as anteil_brutto - FROM - ( - SELECT - tbl_bestellung.bestellung_id, - sum(tbl_bestelldetail.menge*tbl_bestelldetail.preisprove/100*(100+tbl_bestelldetail.mwst)) as brutto - FROM - wawi.tbl_bestellung - JOIN wawi.tbl_bestelldetail USING(bestellung_id) - WHERE - tbl_bestellung.insertamum>='$gj->start' AND tbl_bestellung.insertamum<'$gj->ende' - AND kostenstelle_id IN($kstIN) - GROUP BY bestellung_id - ) bestellung - JOIN wawi.tbl_aufteilung USING(bestellung_id) - GROUP BY oe_kurzbz - ) a - JOIN public.tbl_organisationseinheit USING(oe_kurzbz) - "; - - $summe = 0; - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_object($result)) - { - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo "\n"; - $summe += $row->anteil_brutto; - } - } - else - die('Fehler bei Datenbankzugriff'); - - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
      OEBezeichnungBrutto
      ',$row->oe_kurzbz,'',$row->organisationseinheittyp_kurzbz,' ',$row->bezeichnung,'',number_format($row->anteil_brutto,2,',','.'),'
      ',number_format($summe,2,',','.'),'
      '; -?> -







      - - \ No newline at end of file +, + * Andreas Oesterreicher and + * Karl Burkhart . + */ +/** + * Auswertung der Bestellungen und Rechnungen auf Kostenstellen + */ +require_once('../../config/wawi.config.inc.php'); +require_once('../auth.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/wawi_rechnung.class.php'); +require_once('../../include/wawi_bestellung.class.php'); +require_once('../../include/wawi_kostenstelle.class.php'); +require_once('../../include/studiensemester.class.php'); +require_once('../../include/tags.class.php'); +require_once('../../include/geschaeftsjahr.class.php'); +require_once('../../include/datum.class.php'); + +$user = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +$kst_array = $rechte->getKostenstelle(); + +if(count($kst_array)==0) + die('Sie benoetigen eine Kostenstellenberechtigung um diese Seite anzuzeigen'); + +$datum_obj = new datum(); +?> + + + + WaWi - Kostenstelle - Auswertung + + + + + + + + + + + + +

      Bericht - Aufteilung

      + + Geschäftsjahr + + + '; + + $gj= new geschaeftsjahr(); + $gj->load($geschaeftsjahr); + + $kstIN=$db->implode4SQL($kst_array); + + echo 'Zeitraum: ',$datum_obj->formatDatum($gj->start,'d.m.Y'),' - ',$datum_obj->formatDatum($gj->ende,'d.m.Y').''; + echo ' + '; + echo ' + + + + + + + + '; + + //Tabelle auf Basis der Bestellungen + $qry = " + SELECT + oe_kurzbz, tbl_organisationseinheit.bezeichnung, anteil_brutto, tbl_organisationseinheit.organisationseinheittyp_kurzbz + FROM + ( + SELECT + oe_kurzbz, sum(brutto/100*anteil) as anteil_brutto + FROM + ( + SELECT + tbl_bestellung.bestellung_id, + sum(tbl_bestelldetail.menge*tbl_bestelldetail.preisprove/100*(100+tbl_bestelldetail.mwst)) as brutto + FROM + wawi.tbl_bestellung + JOIN wawi.tbl_bestelldetail USING(bestellung_id) + WHERE + tbl_bestellung.insertamum>='$gj->start' AND tbl_bestellung.insertamum<'$gj->ende' + AND kostenstelle_id IN($kstIN) + GROUP BY bestellung_id + ) bestellung + JOIN wawi.tbl_aufteilung USING(bestellung_id) + GROUP BY oe_kurzbz + ) a + JOIN public.tbl_organisationseinheit USING(oe_kurzbz) + "; + + $summe = 0; + if($result = $db->db_query($qry)) + { + while($row = $db->db_fetch_object($result)) + { + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo "\n"; + $summe += $row->anteil_brutto; + } + } + else + die('Fehler bei Datenbankzugriff'); + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo '
      OEBezeichnungBrutto
      ',$row->oe_kurzbz,'',$row->organisationseinheittyp_kurzbz,' ',$row->bezeichnung,'',number_format($row->anteil_brutto,2,',','.'),'
      ',number_format($summe,2,',','.'),'
      '; +?> +







      + + From 6353cb55275fe62068c6833a6fd5d7016168c8ed Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 12 Sep 2016 15:29:31 +0200 Subject: [PATCH 043/140] =?UTF-8?q?StudienplanID=20f=C3=BCr=20Bewerbungste?= =?UTF-8?q?rmine=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/bewerbungstermin.class.php | 21 +++++++++++++-------- system/dbupdate_3.2.php | 14 +++++++++++++- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/include/bewerbungstermin.class.php b/include/bewerbungstermin.class.php index 89a0d93c4..f2a33efc8 100644 --- a/include/bewerbungstermin.class.php +++ b/include/bewerbungstermin.class.php @@ -42,6 +42,7 @@ class bewerbungstermin extends basis_db public $insertvon; // bigint public $updateamum; // timestamp public $updatevon; // bigint + public $studienplan_id; // integer /** * Konstruktor @@ -86,6 +87,7 @@ class bewerbungstermin extends basis_db $this->insertvon = $row->insertvon; $this->updateamum = $row->updateamum; $this->updatevon = $row->updatevon; + $this->studienplan_id = $row->studienplan_id; return true; } else @@ -109,13 +111,13 @@ class bewerbungstermin extends basis_db $qry = "SELECT * FROM public.tbl_bewerbungstermine WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER); if($studiensemester_kurzbz!=null) $qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); - + if($sort != null) { $qry.=" ORDER BY ".$sort; } $qry.=";"; - + if($this->db_query($qry)) { while($row = $this->db_fetch_object()) @@ -134,6 +136,7 @@ class bewerbungstermin extends basis_db $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; + $obj->studienplan_id = $row->studienplan_id; $this->result[] = $obj; } @@ -170,7 +173,7 @@ class bewerbungstermin extends basis_db { //Neuen Datensatz einfuegen - $qry='BEGIN; INSERT INTO public.tbl_bewerbungstermine(studiensemester_kurzbz, studiengang_kz, beginn, ende, nachfrist, nachfrist_ende, anmerkung, insertamum, insertvon) VALUES('. + $qry='BEGIN; INSERT INTO public.tbl_bewerbungstermine(studiensemester_kurzbz, studiengang_kz, beginn, ende, nachfrist, nachfrist_ende, anmerkung, insertamum, insertvon, studienplan_id) VALUES('. $this->db_add_param($this->studiensemester_kurzbz).', '. $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. $this->db_add_param($this->beginn).', '. @@ -178,7 +181,8 @@ class bewerbungstermin extends basis_db $this->db_add_param($this->nachfrist, FHC_BOOLEAN).', '. $this->db_add_param($this->nachfrist_ende).', '. $this->db_add_param($this->anmerkung).', now(),'. - $this->db_add_param($this->insertvon).');'; + $this->db_add_param($this->insertvon).','. + $this->db_add_param($this->studienplan_id, FHC_INTEGER).');'; } else { @@ -191,7 +195,8 @@ class bewerbungstermin extends basis_db 'nachfrist_ende='.$this->db_add_param($this->nachfrist_ende).', '. 'anmerkung='.$this->db_add_param($this->anmerkung).', '. 'updateamum= now(), '. - 'updatevon='.$this->db_add_param($this->updatevon).' '. + 'updatevon='.$this->db_add_param($this->updatevon).', '. + 'studienplan_id='.$this->db_add_param($this->studienplan_id, FHC_INTEGER).' '. 'WHERE bewerbungstermin_id='.$this->db_add_param($this->bewerbungstermin_id, FHC_INTEGER, false).';'; } if($this->db_query($qry)) @@ -229,17 +234,17 @@ class bewerbungstermin extends basis_db return false; } } - + public function delete($bewerbungstermin_id) { $qry = "DELETE from public.tbl_bewerbungstermine WHERE bewerbungstermin_id=".$this->db_add_param($bewerbungstermin_id); - + if(!$this->db_query($qry)) { $this->errormsg = 'Fehler beim Löschen der Daten'; return false; } - + return true; } } diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index b7c77cda1..9afc38257 100755 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -1181,6 +1181,18 @@ if($result = $db->db_query("SELECT * FROM information_schema.table_constraints W } } +// Neue Spalte studienplan_id in public.tbl_bewerbungstermine +if(!$result = @$db->db_query("SELECT studienplan_id FROM public.tbl_bewerbungstermine LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_bewerbungstermine ADD COLUMN studienplan_id integer; + ALTER TABLE public.tbl_bewerbungstermine ADD CONSTRAINT fk_bewerbungstermine_studienplan_id FOREIGN KEY (studienplan_id) REFERENCES lehre.tbl_studienplan(studienplan_id) ON DELETE RESTRICT ON UPDATE CASCADE;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_bewerbungstermine '.$db->db_last_error().'
      '; + else + echo '
      Neue Spalte studienplan_id in Tabelle public.tbl_bewerbungstermine hinzugefügt
      '; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

      Pruefe Tabellen und Attribute!

      '; @@ -1342,7 +1354,7 @@ $tabellen=array( "public.tbl_benutzer" => array("uid","person_id","aktiv","alias","insertamum","insertvon","updateamum","updatevon","ext_id","updateaktivvon","updateaktivam","aktivierungscode"), "public.tbl_benutzerfunktion" => array("benutzerfunktion_id","fachbereich_kurzbz","uid","oe_kurzbz","funktion_kurzbz","semester", "datum_von","datum_bis", "updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung","wochenstunden"), "public.tbl_benutzergruppe" => array("uid","gruppe_kurzbz","studiensemester_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"), - "public.tbl_bewerbungstermine" => array("bewerbungstermin_id","studiengang_kz","studiensemester_kurzbz","beginn","ende","nachfrist","nachfrist_ende","anmerkung", "insertamum", "insertvon", "updateamum", "updatevon"), + "public.tbl_bewerbungstermine" => array("bewerbungstermin_id","studiengang_kz","studiensemester_kurzbz","beginn","ende","nachfrist","nachfrist_ende","anmerkung", "insertamum", "insertvon", "updateamum", "updatevon","studienplan_id"), "public.tbl_buchungstyp" => array("buchungstyp_kurzbz","beschreibung","standardbetrag","standardtext","aktiv","credit_points"), "public.tbl_dokument" => array("dokument_kurzbz","bezeichnung","ext_id","bezeichnung_mehrsprachig","dokumentbeschreibung_mehrsprachig"), "public.tbl_dokumentprestudent" => array("dokument_kurzbz","prestudent_id","mitarbeiter_uid","datum","updateamum","updatevon","insertamum","insertvon","ext_id"), From 868fc0feaaaef60f6117a68542562322453c09bb Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Mon, 19 Sep 2016 13:38:53 +0200 Subject: [PATCH 044/140] fixed bug at registration for exam --- .../pruefung/pruefungsanmeldung.json.php | 207 ++++++++++-------- 1 file changed, 115 insertions(+), 92 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 7a1dbbf6d..85bd6cc16 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -409,27 +409,30 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) } } $i=0; + $stdsem_lv_besuch = null; do { - $lehrveranstaltung->load_lva_student($uid, $stdsem); - foreach($lehrveranstaltung->lehrveranstaltungen as $lv) - { - if($lv->lehrveranstaltung_id === $lehrveranstaltung->lehrveranstaltung_id) - { - $lv_besucht = true; - } - } - $stdsem = $studiensemester->getPreviousFrom($stdsem); - $lehrveranstaltung->lehrveranstaltungen = array(); - $i++; + $lehrveranstaltung->load_lva_student($uid, $stdsem); + foreach($lehrveranstaltung->lehrveranstaltungen as $lv) + { + if($lv->lehrveranstaltung_id === $lehrveranstaltung->lehrveranstaltung_id) + { + $lv_besucht = true; + $stdsem_lv_besuch = $stdsem; + } + } + + $stdsem = $studiensemester->getPreviousFrom($stdsem); + $lehrveranstaltung->lehrveranstaltungen = array(); + $i++; } while($i<=$semCounter && $lv_besucht === FALSE); if(!$lv_besucht) { - $data['error']='true'; - $data['errormsg']='Besuch der Lehrveranstaltung liegt zu weit in der Vergangenheit.'; - return $data; + $data['error']='true'; + $data['errormsg']='Besuch der Lehrveranstaltung liegt zu weit in der Vergangenheit.'; + return $data; } $pruefung->getPruefungen($uid, NULL, $lehrveranstaltung->lehrveranstaltung_id); @@ -555,95 +558,115 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) if(count($prestudent->result) > 0) { - $prestudent_id = ""; - foreach($prestudent->result as $ps) - { - if($ps->getLaststatus($ps->prestudent_id, $stdsem)) - { - if(($ps->status_kurzbz == "Student")) + $prestudent_id = ""; + foreach($prestudent->result as $ps) { - $prestudent_id = $ps->prestudent_id; + if($ps->getLaststatus($ps->prestudent_id, $stdsem)) + { + if(($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher")) + { + $prestudent_id = $ps->prestudent_id; + } + else + { + if($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch)) + { + if(($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher")) + { + $prestudent_id = $ps->prestudent_id; + } + } + } + } + else + { + if($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch)) + { + if(($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher")) + { + $prestudent_id = $ps->prestudent_id; + } + } + } } - } - } - if($prestudent_id != "") - { - $anrechungSaveResult = false; - if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) - { - if($lv_komp->lehrveranstaltung_id != null && ($lv_komp->lehrveranstaltung_id != $lehrveranstaltung->lehrveranstaltung_id)) - { - $anrechnung->lehrveranstaltung_id = $lv_komp->lehrveranstaltung_id; - $anrechnung->lehrveranstaltung_id_kompatibel = $lehrveranstaltung->lehrveranstaltung_id; - $anrechnung->prestudent_id = $prestudent_id; - $anrechnung->begruendung_id = "2"; - $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; - $anrechnung->new = true; - $anrechungSaveResult = $anrechnung->save(); - } - else - { - $anrechungSaveResult = true; - } - } - else - { - $anrechungSaveResult = true; - } + if($prestudent_id != "") + { + $anrechungSaveResult = false; + if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) + { + if($lv_komp->lehrveranstaltung_id != null && ($lv_komp->lehrveranstaltung_id != $lehrveranstaltung->lehrveranstaltung_id)) + { + $anrechnung->lehrveranstaltung_id = $lv_komp->lehrveranstaltung_id; + $anrechnung->lehrveranstaltung_id_kompatibel = $lehrveranstaltung->lehrveranstaltung_id; + $anrechnung->prestudent_id = $prestudent_id; + $anrechnung->begruendung_id = "2"; + $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; + $anrechnung->new = true; + $anrechungSaveResult = $anrechnung->save(); + } + else + { + $anrechungSaveResult = true; + } + } + else + { + $anrechungSaveResult = true; + } - if($anrechungSaveResult) - { - if($anrechnung->anrechnung_id == "") - $anmeldung->anrechnung_id = null; - else - $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; + if($anrechungSaveResult) + { + if($anrechnung->anrechnung_id == "") + $anmeldung->anrechnung_id = null; + else + $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; - if($anmeldung->save(true)) - { - $pruefung = new pruefungCis($termin->pruefung_id); - if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== "")) - $to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN; - else - $to = $pruefung->mitarbeiter_uid."@".DOMAIN; - $from = "noreply@".DOMAIN; - $subject = $p->t('pruefung/emailLektorSubjectAnmeldung'); - $mail = new mail($to, $from, $subject, $p->t('pruefung/emailBodyBitteHtmlSicht')); + if($anmeldung->save(true)) + { + $pruefung = new pruefungCis($termin->pruefung_id); + if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== "")) + $to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN; + else + $to = $pruefung->mitarbeiter_uid."@".DOMAIN; + $from = "noreply@".DOMAIN; + $subject = $p->t('pruefung/emailLektorSubjectAnmeldung'); + $mail = new mail($to, $from, $subject, $p->t('pruefung/emailBodyBitteHtmlSicht')); - $student = new student($uid); - $datum = new datum(); + $student = new student($uid); + $datum = new datum(); - $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); + $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); - $html = $p->t('pruefung/emailLektorStudentIn')." ".$student->vorname." ".$student->nachname." ".$p->t('pruefung/emailLektorHatSichZurPruefung')." ".$lv->bezeichnung." ".$p->t('pruefung/emailLektorAm')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailLektorVon')." ".$datum->formatDatum($termin->von,"H:i")." ".$p->t('pruefung/emailLektorUhrBis')." ".$datum->formatDatum($termin->bis,"H:i")." ".$p->t('pruefung/emailLektorUhrAngemeldet'); - $mail->setHTMLContent($html); - $mail->send(); + $html = $p->t('pruefung/emailLektorStudentIn')." ".$student->vorname." ".$student->nachname." ".$p->t('pruefung/emailLektorHatSichZurPruefung')." ".$lv->bezeichnung." ".$p->t('pruefung/emailLektorAm')." ".$datum->formatDatum($termin->von, "d.m.Y")." ".$p->t('pruefung/emailLektorVon')." ".$datum->formatDatum($termin->von,"H:i")." ".$p->t('pruefung/emailLektorUhrBis')." ".$datum->formatDatum($termin->bis,"H:i")." ".$p->t('pruefung/emailLektorUhrAngemeldet'); + $mail->setHTMLContent($html); + $mail->send(); - $data['result'] = $p->t('pruefung/anmeldungErfolgreich'); - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$anmeldung->errormsg; - } - } - else - { - $data['error']='true'; - $data['errormsg']=$anrechnung->errormsg; - } - } - else - { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden'); - } + $data['result'] = $p->t('pruefung/anmeldungErfolgreich'); + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$anmeldung->errormsg; + } + } + else + { + $data['error']='true'; + $data['errormsg']=$anrechnung->errormsg; + } + } + else + { + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden'); + } } else { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden'); + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/prestudentNichtGefunden'); } return $data; } From 625a662648a4cf8a7f3f1128f7a0af812985aa1e Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 20 Sep 2016 16:15:00 +0200 Subject: [PATCH 045/140] Fehler behoben wodurch bei Lehreinheiten keine Gruppen mehr angezeigt wurden wenn die Gruppe eines inaktiven Studiengangs zu einer Lehreinheit zugeteilt wird --- rdf/lehreinheitgruppe.rdf.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rdf/lehreinheitgruppe.rdf.php b/rdf/lehreinheitgruppe.rdf.php index 64a047a75..49329e8a6 100644 --- a/rdf/lehreinheitgruppe.rdf.php +++ b/rdf/lehreinheitgruppe.rdf.php @@ -47,7 +47,7 @@ $DAO_obj = new lehreinheitgruppe(); $DAO_obj->getLehreinheitgruppe($lehreinheit_id); $stg_obj = new studiengang(); -$stg_obj->getAll(); +$stg_obj->getAll(null,null); $stg = array(); foreach ($stg_obj->result as $row) $stg[$row->studiengang_kz]=$row->kuerzel; From 931c4ded3fbdc94926e40150d487d928ad526dee Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 20 Sep 2016 16:27:27 +0200 Subject: [PATCH 046/140] LVs unter MeineLV sortiert --- cms/menu/menu_addon_meinelv.inc.php | 80 +++++++++++++++++++---------- 1 file changed, 53 insertions(+), 27 deletions(-) diff --git a/cms/menu/menu_addon_meinelv.inc.php b/cms/menu/menu_addon_meinelv.inc.php index 188945aab..4b0773842 100755 --- a/cms/menu/menu_addon_meinelv.inc.php +++ b/cms/menu/menu_addon_meinelv.inc.php @@ -46,9 +46,6 @@ class menu_addon_meinelv extends menu_addon //Meine LVs Student if(!$is_lector) { - $studiengang_obj = new studiengang(); - $studiengang_obj->getAll(); - $stsemobj = new studiensemester(); $stsem_arr=array(); @@ -57,10 +54,30 @@ class menu_addon_meinelv extends menu_addon foreach($stsem_arr as $stsem) { - $qry = "SELECT distinct lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, lehre, - lehreverzeichnis, studiensemester_kurzbz from campus.vw_student_lehrveranstaltung - WHERE uid=".$this->db_add_param($user)." AND studiensemester_kurzbz=".$this->db_add_param($stsem)." - AND lehre=true AND lehreverzeichnis<>'' ORDER BY studiengang_kz, semester, bezeichnung"; + $qry = "SELECT + distinct + tbl_studiengang.typ, + tbl_studiengang.kurzbz, + vw_student_lehrveranstaltung.lehrveranstaltung_id, + vw_student_lehrveranstaltung.bezeichnung, + vw_student_lehrveranstaltung.studiengang_kz, + vw_student_lehrveranstaltung.semester, + vw_student_lehrveranstaltung.lehre, + vw_student_lehrveranstaltung.lehreverzeichnis, + vw_student_lehrveranstaltung.studiensemester_kurzbz + FROM + campus.vw_student_lehrveranstaltung + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE + uid=".$this->db_add_param($user)." + AND studiensemester_kurzbz=".$this->db_add_param($stsem)." + AND lehre=true + AND lehreverzeichnis<>'' + ORDER BY + tbl_studiengang.typ, + tbl_studiengang.kurzbz, + semester, + bezeichnung"; if($result = $this->db_query($qry)) { if($this->db_num_rows($result)>0) @@ -88,7 +105,7 @@ class menu_addon_meinelv extends menu_addon $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], 'target'=>'content', 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$row->studiensemester_kurzbz, - 'name'=>$studiengang_obj->kuerzel_arr[$row->studiengang_kz].$row->semester.' '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) + 'name'=>strtoupper($row->typ.$row->kurzbz).$row->semester.' '.$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength) ); } } @@ -96,7 +113,6 @@ class menu_addon_meinelv extends menu_addon } else echo "Fehler beim Auslesen der LV"; - } } @@ -117,11 +133,33 @@ class menu_addon_meinelv extends menu_addon foreach($stsem_arr as $stsem) { $stsementry=array(); - $qry = "SELECT distinct bezeichnung, studiengang_kz, semester, lehreverzeichnis, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.orgform_kurzbz, studiensemester_kurzbz FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter - WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND - mitarbeiter_uid=".$this->db_add_param($user)." AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($stsem)." - ORDER BY studiengang_kz, semester, bezeichnung"; + $qry = "SELECT + distinct + tbl_studiengang.typ, + tbl_studiengang.kurzbz, + tbl_lehrveranstaltung.bezeichnung, + tbl_lehrveranstaltung.studiengang_kz, + tbl_lehrveranstaltung.semester, + tbl_lehrveranstaltung.lehreverzeichnis, + tbl_lehrveranstaltung.lehrveranstaltung_id, + tbl_lehrveranstaltung.orgform_kurzbz, + tbl_lehreinheit.studiensemester_kurzbz + FROM + lehre.tbl_lehrveranstaltung, + lehre.tbl_lehreinheit, + lehre.tbl_lehreinheitmitarbeiter, + public.tbl_studiengang + WHERE + tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND + tbl_studiengang.studiengang_kz=tbl_lehrveranstaltung.studiengang_kz AND + tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND + mitarbeiter_uid=".$this->db_add_param($user)." AND + tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($stsem)." + ORDER BY + tbl_studiengang.typ, + tbl_studiengang.kurzbz, + tbl_lehrveranstaltung.semester, + tbl_lehrveranstaltung.bezeichnung"; if($result = $this->db_query($qry)) { @@ -147,9 +185,7 @@ class menu_addon_meinelv extends menu_addon } else { - $stg_obj = new studiengang(); - $stg_obj->load($row->studiengang_kz); - $kurzbz = $stg_obj->kuerzel.'-'.$row->semester.' '.$row->orgform_kurzbz; + $kurzbz = strtoupper($row->typ.$row->kurzbz).'-'.$row->semester.' '.$row->orgform_kurzbz; $this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache], 'target'=>'content', @@ -162,16 +198,6 @@ class menu_addon_meinelv extends menu_addon } else echo "Fehler beim Auslesen des Lehrfaches"; -/* - if(count($stsementry)>0) - { - $this->items[] = array('title'=>$stsem, - 'target'=>'', - 'link'=>'#', - 'name'=>$stsem, - 'childs'=>$stsementry - ); - }*/ } } else From ed8053f700e81fd6197f757455a4d23cbae51309 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 20 Sep 2016 16:44:54 +0200 Subject: [PATCH 047/140] Warning behoben bei Anzeige der LVs wenn der Studienplan keine Sprache oder Orgform eingetragen hat --- cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php b/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php index 0455b87c6..c5f68776e 100644 --- a/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php +++ b/cms/menu/menu_addon_lehrveranstaltungen_studienplan.inc.php @@ -72,7 +72,7 @@ class menu_addon_lehrveranstaltungen_studienplan extends menu_addon $sprachen_obj = new sprache(); $sprachen_obj->getAll(); $sprachen_arr=array(); - + $sprachen_arr['']=''; foreach($sprachen_obj->result as $row) { if(isset($row->bezeichnung_arr[$sprache])) @@ -84,6 +84,7 @@ class menu_addon_lehrveranstaltungen_studienplan extends menu_addon $orgform_obj = new organisationsform(); $orgform_obj->getAll(); $orgform_arr=array(); + $orgform_arr['']=''; foreach($orgform_obj->result as $row) $orgform_arr[$row->orgform_kurzbz]=$row->bezeichnung; @@ -329,7 +330,7 @@ class menu_addon_lehrveranstaltungen_studienplan extends menu_addon $bold='font-weight:bold;'; else $bold=''; - if(!$row->lehrauftrag && defined('CIS_LEHRVERANSTALTUNG_MODULE_LINK') && !CIS_LEHRVERANSTALTUNG_MODULE_LINK) + if(!$row->lehrauftrag && defined('CIS_LEHRVERANSTALTUNG_MODULE_LINK') && !CIS_LEHRVERANSTALTUNG_MODULE_LINK) $this->block.= "
    • ".$this->CutString($row->bezeichnung_arr[$sprache], 21).' '.$row->lehrform_kurzbz."
    • "; else $this->block.= "
    • bezeichnung_arr[$sprache]."\" href=\"private/lehre/lesson.php?lvid=$row->lehrveranstaltung_id&studiensemester_kurzbz=$studiensemester_kurzbz\" target=\"content\">".$this->CutString($row->bezeichnung_arr[$sprache], 21).' '.$row->lehrform_kurzbz."
    • "; From 46e2c967ab68954126a5c5d28ed34291948520c4 Mon Sep 17 00:00:00 2001 From: kindlm Date: Fri, 23 Sep 2016 11:08:56 +0200 Subject: [PATCH 048/140] =?UTF-8?q?Partnerhochschulen=20=C3=9Cbersicht=20C?= =?UTF-8?q?IS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/info/partnerhochschulen.php | 145 ++++++++++++++++++++++++ locale/de-AT/tools.php | 6 +- locale/en-US/tools.php | 6 +- 3 files changed, 155 insertions(+), 2 deletions(-) create mode 100644 cis/private/info/partnerhochschulen.php diff --git a/cis/private/info/partnerhochschulen.php b/cis/private/info/partnerhochschulen.php new file mode 100644 index 000000000..1ade9d031 --- /dev/null +++ b/cis/private/info/partnerhochschulen.php @@ -0,0 +1,145 @@ + + * Manfred Kindl < manfred.kindl@technikum-wien.at > + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/firma.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/phrasen.class.php'); +require_once('../../../include/studiengang.class.php'); + +$user = get_uid(); +$sprache = getSprache(); +$p=new phrasen($sprache); + +//$rechte = new benutzerberechtigung(); +//$rechte->getBerechtigungen($user); + +//if(!$rechte->isBerechtigt('basis/service')) +// die('Sie haben keine Berechtigung fuer diese Seite'); + +$datum_obj = new datum(); + +echo ' + + + '.$p->t("services/service").' + + + + + + + + +

      '.$p->t("tools/partnerhochschulenUebersicht").'

      '; + +$stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:''); + +$firma = new firma(); +echo '
      '; +echo $p->t("global/studiengang").': '; +echo ' + +
      '; + +if($stg_kz!='') +{ + $studiengaenge->load($stg_kz); + $firma->get_firmaorganisationseinheit('', $studiengaenge->oe_kurzbz); +} +else +{ + if(!$firma->getFirmen('Partneruniversität', true)) + die($firma->errormsg); +} +if ($firma->result) +{ + echo ' + + + + + + + + '; + + foreach($firma->result as $row) + { + echo ''; + echo ''; + /*echo ''; + echo ''; + echo '';*/ + echo ''; + } +} +else +{ + echo '

      Kein Eintrag vorhanden

      '; +} +echo ' +
      '.$p->t("global/bezeichnung").'
      ',$row->name,''.($row->content_id!=''?''.$row->bezeichnung.'':$row->bezeichnung).'',$row->beschreibung,''.($row->content_id!=''?'Details':'').'
      + +'; +?> \ No newline at end of file diff --git a/locale/de-AT/tools.php b/locale/de-AT/tools.php index 9756a3e51..afbbb25ea 100755 --- a/locale/de-AT/tools.php +++ b/locale/de-AT/tools.php @@ -46,7 +46,7 @@ $this->phrasen['tools/ampelMitarbeiter']='Mitarbeiter'; $this->phrasen['tools/ampelRestdauer']='Restdauer in Tagen'; $this->phrasen['tools/ampelBestaetigtAm']='Bestätigt am'; $this->phrasen['tools/ampelBereitsBestaetigt']='Diese Ampel wurde bereits bestätigt'; -$this->phrasen['tools/dasAmpelsystemIstEinErinnerungsystem']='Das Ampelsystem ist ein ERINNERUNGS- und BESTÄTIGUNGSSYSTEM, welches Sie auf ausstehende Aufgaben aufmerksam machen soll.
      Die Ampel überprüft NICHT, ob die Aufgabe tatsächlich erledigt wurde. Weitere Details entnehmen Sie bitte dem CIS-Handbuch'; +$this->phrasen['tools/dasAmpelsystemIstEinErinnerungsystem']='Das Ampelsystem ist ein ERINNERUNGS- und BESTÄTIGUNGSSYSTEM, welches Sie auf ausstehende Aufgaben aufmerksam machen soll.'; $this->phrasen['tools/waehlenSieEineOEoderAmpel']='Bitte wählen Sie ein Organisationseinheit und/oder eine Ampel aus dem Dropdown'; $this->phrasen['tools/uebersichtLeitung']='Ampel-Übersicht für LeiterInnen'; @@ -72,4 +72,8 @@ $this->phrasen['tools/telefonklappe']='Telefonklappe'; $this->phrasen['tools/reservieren']='Reservieren'; $this->phrasen['tools/maxPersonen']='Max. Personen'; $this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Es wurden keine Ergebnisse gefunden.'; + +//Partnerhochschulen +$this->phrasen['tools/partnerhochschulenUebersicht']='Übersicht der Partnerhochschulen'; +$this->phrasen['tools/partnerhochschulenKeinEintrag']='Für diesen Studiengang ist keine Partnerhochschule zugeordnet'; ?> diff --git a/locale/en-US/tools.php b/locale/en-US/tools.php index e5a4c0653..ce65ed007 100755 --- a/locale/en-US/tools.php +++ b/locale/en-US/tools.php @@ -46,7 +46,7 @@ $this->phrasen['tools/ampelMitarbeiter']='Employee'; $this->phrasen['tools/ampelRestdauer']='Remaining Days'; $this->phrasen['tools/ampelBestaetigtAm']='Confirmed on'; $this->phrasen['tools/ampelBereitsBestaetigt']='This notification has already been confirmed'; -$this->phrasen['tools/dasAmpelsystemIstEinErinnerungsystem']='The notification system is a REMINDER and CONFIRMATION SYSTEM that is provided to remind you of outstanding tasks.
      The system does NOT check if the task has actually been completed. For more information, please refer to the CIS Manual.'; +$this->phrasen['tools/dasAmpelsystemIstEinErinnerungsystem']='The notification system is a REMINDER and CONFIRMATION SYSTEM that is provided to remind you of outstanding tasks.'; $this->phrasen['tools/waehlenSieEineOEoderAmpel']='Please select an organizational unit and/or a notification from the drop down menu.'; $this->phrasen['tools/uebersichtLeitung']='Overview of notifications for Heads of Departments'; @@ -72,4 +72,8 @@ $this->phrasen['tools/telefonklappe']='Extension'; $this->phrasen['tools/reservieren']='Reserve room'; $this->phrasen['tools/maxPersonen']='Max. # of people'; $this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Your search did not return any results.'; + +//Partnerhochschulen +$this->phrasen['tools/partnerhochschulenUebersicht']='Partner Universities'; +$this->phrasen['tools/partnerhochschulenKeinEintrag']='No entry found'; ?> From af1646f9af3940a9436cbc9bd53d0f0f5ec65bdd Mon Sep 17 00:00:00 2001 From: bison-paolo Date: Wed, 28 Sep 2016 10:03:05 +0200 Subject: [PATCH 049/140] phpC(d)I fixes --- tests/codeception/_output/.placeholder | 0 tests/codeception/codeception.dist.yml | 20 + tests/{ => codeception}/codeception.yml | 0 .../tests/acceptance.suite.dist.yml | 21 + .../tests/acceptance/AcceptanceTester.php | 1601 +++++++++++++++++ .../tests/acceptance/CISLoginPageCept.php | 6 + .../tests/acceptance/_bootstrap.php | 2 + .../tests/functional.suite.dist.yml | 10 + .../tests/functional/FunctionalTester.php | 360 ++++ .../tests/functional/_bootstrap.php | 2 + tests/codeception/tests/unit.suite.dist.yml | 7 + .../tests/unit/BasisKlasseTest.php | 27 + tests/codeception/tests/unit/UnitTester.php | 268 +++ tests/codeception/tests/unit/_bootstrap.php | 2 + 14 files changed, 2326 insertions(+) create mode 100644 tests/codeception/_output/.placeholder create mode 100644 tests/codeception/codeception.dist.yml rename tests/{ => codeception}/codeception.yml (100%) create mode 100644 tests/codeception/tests/acceptance.suite.dist.yml create mode 100644 tests/codeception/tests/acceptance/AcceptanceTester.php create mode 100644 tests/codeception/tests/acceptance/CISLoginPageCept.php create mode 100644 tests/codeception/tests/acceptance/_bootstrap.php create mode 100644 tests/codeception/tests/functional.suite.dist.yml create mode 100644 tests/codeception/tests/functional/FunctionalTester.php create mode 100644 tests/codeception/tests/functional/_bootstrap.php create mode 100644 tests/codeception/tests/unit.suite.dist.yml create mode 100644 tests/codeception/tests/unit/BasisKlasseTest.php create mode 100644 tests/codeception/tests/unit/UnitTester.php create mode 100644 tests/codeception/tests/unit/_bootstrap.php diff --git a/tests/codeception/_output/.placeholder b/tests/codeception/_output/.placeholder new file mode 100644 index 000000000..e69de29bb diff --git a/tests/codeception/codeception.dist.yml b/tests/codeception/codeception.dist.yml new file mode 100644 index 000000000..ecf0baef5 --- /dev/null +++ b/tests/codeception/codeception.dist.yml @@ -0,0 +1,20 @@ +actor: Tester +paths: + tests: tests + log: _output + data: _data + helpers: _support +settings: + bootstrap: _bootstrap.php + colors: true + memory_limit: 1024M +modules: + enabled: + - Db: + dsn: 'pgsql:host=localhost;port=5432;dbname=fhctest' + user: 'fhcomplete' + password: 'fhcomplete' + dump: _data/dump.sql + populate: true + cleanup: false + reconnect: false diff --git a/tests/codeception.yml b/tests/codeception/codeception.yml similarity index 100% rename from tests/codeception.yml rename to tests/codeception/codeception.yml diff --git a/tests/codeception/tests/acceptance.suite.dist.yml b/tests/codeception/tests/acceptance.suite.dist.yml new file mode 100644 index 000000000..73a9bbf67 --- /dev/null +++ b/tests/codeception/tests/acceptance.suite.dist.yml @@ -0,0 +1,21 @@ +# Codeception Test Suite Configuration + +# suite for acceptance tests. +# perform tests in browser using the WebDriver or PhpBrowser. +# If you need both WebDriver and PHPBrowser tests - create a separate suite. + +class_name: AcceptanceTester +modules: + enabled: + - Db + - PhpBrowser: + url: 'http://admin:1q2w3@demo.fhcomplete.org/' + config: + Db: + dsn: 'pgsql:host=localhost;port=5432;dbname=fhctest' + user: 'fhcomplete' + password: 'fhcomplete' + dump: _data/dump.sql + populate: true + cleanup: false + reconnect: false diff --git a/tests/codeception/tests/acceptance/AcceptanceTester.php b/tests/codeception/tests/acceptance/AcceptanceTester.php new file mode 100644 index 000000000..9045754f8 --- /dev/null +++ b/tests/codeception/tests/acceptance/AcceptanceTester.php @@ -0,0 +1,1601 @@ +scenario->runStep(new \Codeception\Step\Action('setHeader', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Authenticates user for HTTP_AUTH + * + * @param $username + * @param $password + * @see \Codeception\Module\PhpBrowser::amHttpAuthenticated() + */ + public function amHttpAuthenticated($username, $password) { + return $this->scenario->runStep(new \Codeception\Step\Condition('amHttpAuthenticated', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Opens the page for the given relative URI. + * + * ``` php + * amOnPage('/'); + * // opens /register page + * $I->amOnPage('/register'); + * ?> + * ``` + * + * @param $page + * @see \Codeception\Module\PhpBrowser::amOnPage() + */ + public function amOnPage($page) { + return $this->scenario->runStep(new \Codeception\Step\Condition('amOnPage', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Open web page at the given absolute URL and sets its hostname as the base host. + * + * ``` php + * amOnUrl('http://codeception.com'); + * $I->amOnPage('/quickstart'); // moves to http://codeception.com/quickstart + * ?> + * ``` + * @see \Codeception\Module\PhpBrowser::amOnUrl() + */ + public function amOnUrl($url) { + return $this->scenario->runStep(new \Codeception\Step\Condition('amOnUrl', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Changes the subdomain for the 'url' configuration parameter. + * Does not open a page; use `amOnPage` for that. + * + * ``` php + * amOnSubdomain('user'); + * $I->amOnPage('/'); + * // moves to http://user.mysite.com/ + * ?> + * ``` + * + * @param $subdomain + * + * @return mixed + * @see \Codeception\Module\PhpBrowser::amOnSubdomain() + */ + public function amOnSubdomain($subdomain) { + return $this->scenario->runStep(new \Codeception\Step\Condition('amOnSubdomain', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Low-level API method. + * If Codeception commands are not enough, use [Guzzle HTTP Client](http://guzzlephp.org/) methods directly + * + * Example: + * + * ``` php + * executeInGuzzle(function (\GuzzleHttp\Client $client) { + * $client->get('/get', ['query' => ['foo' => 'bar']]); + * }); + * ?> + * ``` + * + * It is not recommended to use this command on a regular basis. + * If Codeception lacks important Guzzle Client methods, implement them and submit patches. + * + * @param callable $function + * @see \Codeception\Module\PhpBrowser::executeInGuzzle() + */ + public function executeInGuzzle($function) { + return $this->scenario->runStep(new \Codeception\Step\Action('executeInGuzzle', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Perform a click on a link or a button, given by a locator. + * If a fuzzy locator is given, the page will be searched for a button, link, or image matching the locator string. + * For buttons, the "value" attribute, "name" attribute, and inner text are searched. + * For links, the link text is searched. + * For images, the "alt" attribute and inner text of any parent links are searched. + * + * The second parameter is a context (CSS or XPath locator) to narrow the search. + * + * Note that if the locator matches a button of type `submit`, the form will be submitted. + * + * ``` php + * click('Logout'); + * // button of form + * $I->click('Submit'); + * // CSS button + * $I->click('#form input[type=submit]'); + * // XPath + * $I->click('//form/*[@type=submit]'); + * // link in context + * $I->click('Logout', '#nav'); + * // using strict locator + * $I->click(['link' => 'Login']); + * ?> + * ``` + * + * @param $link + * @param $context + * @see \Codeception\Lib\InnerBrowser::click() + */ + public function click($link, $context = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('click', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current page contains the given string. + * Specify a locator as the second parameter to match a specific region. + * + * ``` php + * see('Logout'); // I can suppose user is logged in + * $I->see('Sign Up','h1'); // I can suppose it's a signup page + * $I->see('Sign Up','//body/h1'); // with XPath + * ?> + * ``` + * + * @param $text + * @param null $selector + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::see() + */ + public function canSee($text, $selector = null) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('see', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current page contains the given string. + * Specify a locator as the second parameter to match a specific region. + * + * ``` php + * see('Logout'); // I can suppose user is logged in + * $I->see('Sign Up','h1'); // I can suppose it's a signup page + * $I->see('Sign Up','//body/h1'); // with XPath + * ?> + * ``` + * + * @param $text + * @param null $selector + * @see \Codeception\Lib\InnerBrowser::see() + */ + public function see($text, $selector = null) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('see', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current page doesn't contain the text specified. + * Give a locator as the second parameter to match a specific region. + * + * ```php + * dontSee('Login'); // I can suppose user is already logged in + * $I->dontSee('Sign Up','h1'); // I can suppose it's not a signup page + * $I->dontSee('Sign Up','//body/h1'); // with XPath + * ?> + * ``` + * + * @param $text + * @param null $selector + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::dontSee() + */ + public function cantSee($text, $selector = null) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSee', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current page doesn't contain the text specified. + * Give a locator as the second parameter to match a specific region. + * + * ```php + * dontSee('Login'); // I can suppose user is already logged in + * $I->dontSee('Sign Up','h1'); // I can suppose it's not a signup page + * $I->dontSee('Sign Up','//body/h1'); // with XPath + * ?> + * ``` + * + * @param $text + * @param null $selector + * @see \Codeception\Lib\InnerBrowser::dontSee() + */ + public function dontSee($text, $selector = null) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSee', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that there's a link with the specified text. + * Give a full URL as the second parameter to match links with that exact URL. + * + * ``` php + * seeLink('Logout'); // matches Logout + * $I->seeLink('Logout','/logout'); // matches Logout + * ?> + * ``` + * + * @param $text + * @param null $url + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeLink() + */ + public function canSeeLink($text, $url = null) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeLink', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that there's a link with the specified text. + * Give a full URL as the second parameter to match links with that exact URL. + * + * ``` php + * seeLink('Logout'); // matches Logout + * $I->seeLink('Logout','/logout'); // matches Logout + * ?> + * ``` + * + * @param $text + * @param null $url + * @see \Codeception\Lib\InnerBrowser::seeLink() + */ + public function seeLink($text, $url = null) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeLink', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the page doesn't contain a link with the given string. + * If the second parameter is given, only links with a matching "href" attribute will be checked. + * + * ``` php + * dontSeeLink('Logout'); // I suppose user is not logged in + * $I->dontSeeLink('Checkout now', '/store/cart.php'); + * ?> + * ``` + * + * @param $text + * @param null $url + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::dontSeeLink() + */ + public function cantSeeLink($text, $url = null) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeLink', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the page doesn't contain a link with the given string. + * If the second parameter is given, only links with a matching "href" attribute will be checked. + * + * ``` php + * dontSeeLink('Logout'); // I suppose user is not logged in + * $I->dontSeeLink('Checkout now', '/store/cart.php'); + * ?> + * ``` + * + * @param $text + * @param null $url + * @see \Codeception\Lib\InnerBrowser::dontSeeLink() + */ + public function dontSeeLink($text, $url = null) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeLink', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that current URI contains the given string. + * + * ``` php + * seeInCurrentUrl('home'); + * // to match: /users/1 + * $I->seeInCurrentUrl('/users/'); + * ?> + * ``` + * + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeInCurrentUrl() + */ + public function canSeeInCurrentUrl($uri) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeInCurrentUrl', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that current URI contains the given string. + * + * ``` php + * seeInCurrentUrl('home'); + * // to match: /users/1 + * $I->seeInCurrentUrl('/users/'); + * ?> + * ``` + * + * @param $uri + * @see \Codeception\Lib\InnerBrowser::seeInCurrentUrl() + */ + public function seeInCurrentUrl($uri) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeInCurrentUrl', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current URI doesn't contain the given string. + * + * ``` php + * dontSeeInCurrentUrl('/users/'); + * ?> + * ``` + * + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::dontSeeInCurrentUrl() + */ + public function cantSeeInCurrentUrl($uri) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInCurrentUrl', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current URI doesn't contain the given string. + * + * ``` php + * dontSeeInCurrentUrl('/users/'); + * ?> + * ``` + * + * @param $uri + * @see \Codeception\Lib\InnerBrowser::dontSeeInCurrentUrl() + */ + public function dontSeeInCurrentUrl($uri) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeInCurrentUrl', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current URL is equal to the given string. + * Unlike `seeInCurrentUrl`, this only matches the full URL. + * + * ``` php + * seeCurrentUrlEquals('/'); + * ?> + * ``` + * + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlEquals() + */ + public function canSeeCurrentUrlEquals($uri) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlEquals', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current URL is equal to the given string. + * Unlike `seeInCurrentUrl`, this only matches the full URL. + * + * ``` php + * seeCurrentUrlEquals('/'); + * ?> + * ``` + * + * @param $uri + * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlEquals() + */ + public function seeCurrentUrlEquals($uri) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeCurrentUrlEquals', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current URL doesn't equal the given string. + * Unlike `dontSeeInCurrentUrl`, this only matches the full URL. + * + * ``` php + * dontSeeCurrentUrlEquals('/'); + * ?> + * ``` + * + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlEquals() + */ + public function cantSeeCurrentUrlEquals($uri) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlEquals', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current URL doesn't equal the given string. + * Unlike `dontSeeInCurrentUrl`, this only matches the full URL. + * + * ``` php + * dontSeeCurrentUrlEquals('/'); + * ?> + * ``` + * + * @param $uri + * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlEquals() + */ + public function dontSeeCurrentUrlEquals($uri) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlEquals', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current URL matches the given regular expression. + * + * ``` php + * seeCurrentUrlMatches('~$/users/(\d+)~'); + * ?> + * ``` + * + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlMatches() + */ + public function canSeeCurrentUrlMatches($uri) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlMatches', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the current URL matches the given regular expression. + * + * ``` php + * seeCurrentUrlMatches('~$/users/(\d+)~'); + * ?> + * ``` + * + * @param $uri + * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlMatches() + */ + public function seeCurrentUrlMatches($uri) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeCurrentUrlMatches', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that current url doesn't match the given regular expression. + * + * ``` php + * dontSeeCurrentUrlMatches('~$/users/(\d+)~'); + * ?> + * ``` + * + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlMatches() + */ + public function cantSeeCurrentUrlMatches($uri) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlMatches', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that current url doesn't match the given regular expression. + * + * ``` php + * dontSeeCurrentUrlMatches('~$/users/(\d+)~'); + * ?> + * ``` + * + * @param $uri + * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlMatches() + */ + public function dontSeeCurrentUrlMatches($uri) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlMatches', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Executes the given regular expression against the current URI and returns the first match. + * If no parameters are provided, the full URI is returned. + * + * ``` php + * grabFromCurrentUrl('~$/user/(\d+)/~'); + * $uri = $I->grabFromCurrentUrl(); + * ?> + * ``` + * + * @param null $uri + * + * @internal param $url + * @return mixed + * @see \Codeception\Lib\InnerBrowser::grabFromCurrentUrl() + */ + public function grabFromCurrentUrl($uri = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('grabFromCurrentUrl', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the specified checkbox is checked. + * + * ``` php + * seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms + * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form. + * $I->seeCheckboxIsChecked('//form/input[@type=checkbox and @name=agree]'); + * ?> + * ``` + * + * @param $checkbox + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeCheckboxIsChecked() + */ + public function canSeeCheckboxIsChecked($checkbox) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeCheckboxIsChecked', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the specified checkbox is checked. + * + * ``` php + * seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms + * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form. + * $I->seeCheckboxIsChecked('//form/input[@type=checkbox and @name=agree]'); + * ?> + * ``` + * + * @param $checkbox + * @see \Codeception\Lib\InnerBrowser::seeCheckboxIsChecked() + */ + public function seeCheckboxIsChecked($checkbox) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeCheckboxIsChecked', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Check that the specified checkbox is unchecked. + * + * ``` php + * dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms + * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form. + * ?> + * ``` + * + * @param $checkbox + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::dontSeeCheckboxIsChecked() + */ + public function cantSeeCheckboxIsChecked($checkbox) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCheckboxIsChecked', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Check that the specified checkbox is unchecked. + * + * ``` php + * dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms + * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form. + * ?> + * ``` + * + * @param $checkbox + * @see \Codeception\Lib\InnerBrowser::dontSeeCheckboxIsChecked() + */ + public function dontSeeCheckboxIsChecked($checkbox) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeCheckboxIsChecked', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the given input field or textarea contains the given value. + * For fuzzy locators, fields are matched by label text, the "name" attribute, CSS, and XPath. + * + * ``` php + * seeInField('Body','Type your comment here'); + * $I->seeInField('form textarea[name=body]','Type your comment here'); + * $I->seeInField('form input[type=hidden]','hidden_value'); + * $I->seeInField('#searchform input','Search'); + * $I->seeInField('//form/*[@name=search]','Search'); + * $I->seeInField(['name' => 'search'], 'Search'); + * ?> + * ``` + * + * @param $field + * @param $value + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeInField() + */ + public function canSeeInField($field, $value) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeInField', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the given input field or textarea contains the given value. + * For fuzzy locators, fields are matched by label text, the "name" attribute, CSS, and XPath. + * + * ``` php + * seeInField('Body','Type your comment here'); + * $I->seeInField('form textarea[name=body]','Type your comment here'); + * $I->seeInField('form input[type=hidden]','hidden_value'); + * $I->seeInField('#searchform input','Search'); + * $I->seeInField('//form/*[@name=search]','Search'); + * $I->seeInField(['name' => 'search'], 'Search'); + * ?> + * ``` + * + * @param $field + * @param $value + * @see \Codeception\Lib\InnerBrowser::seeInField() + */ + public function seeInField($field, $value) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeInField', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that an input field or textarea doesn't contain the given value. + * For fuzzy locators, the field is matched by label text, CSS and XPath. + * + * ``` php + * dontSeeInField('Body','Type your comment here'); + * $I->dontSeeInField('form textarea[name=body]','Type your comment here'); + * $I->dontSeeInField('form input[type=hidden]','hidden_value'); + * $I->dontSeeInField('#searchform input','Search'); + * $I->dontSeeInField('//form/*[@name=search]','Search'); + * $I->dontSeeInField(['name' => 'search'], 'Search'); + * ?> + * ``` + * + * @param $field + * @param $value + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::dontSeeInField() + */ + public function cantSeeInField($field, $value) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInField', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that an input field or textarea doesn't contain the given value. + * For fuzzy locators, the field is matched by label text, CSS and XPath. + * + * ``` php + * dontSeeInField('Body','Type your comment here'); + * $I->dontSeeInField('form textarea[name=body]','Type your comment here'); + * $I->dontSeeInField('form input[type=hidden]','hidden_value'); + * $I->dontSeeInField('#searchform input','Search'); + * $I->dontSeeInField('//form/*[@name=search]','Search'); + * $I->dontSeeInField(['name' => 'search'], 'Search'); + * ?> + * ``` + * + * @param $field + * @param $value + * @see \Codeception\Lib\InnerBrowser::dontSeeInField() + */ + public function dontSeeInField($field, $value) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeInField', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Submits the given form on the page, optionally with the given form values. + * Give the form fields values as an array. + * + * Skipped fields will be filled by their values from the page. + * You don't need to click the 'Submit' button afterwards. + * This command itself triggers the request to form's action. + * + * You can optionally specify what button's value to include + * in the request with the last parameter as an alternative to + * explicitly setting its value in the second parameter, as + * button values are not otherwise included in the request. + * + * Examples: + * + * ``` php + * submitForm('#login', array('login' => 'davert', 'password' => '123456')); + * // or + * $I->submitForm('#login', array('login' => 'davert', 'password' => '123456'), 'submitButtonName'); + * + * ``` + * + * For example, given this sample "Sign Up" form: + * + * ``` html + *
      + * Login:
      + * Password:
      + * Do you agree to out terms?
      + * Select pricing plan + * + *
      + * ``` + * + * You could write the following to submit it: + * + * ``` php + * submitForm('#userForm', array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true)), 'submitButton'); + * + * ``` + * Note that "2" will be the submitted value for the "plan" field, as it is the selected option. + * + * You can also emulate a JavaScript submission by not specifying any buttons in the third parameter to submitForm. + * + * ```php + * submitForm('#userForm', array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true))); + * + * ``` + * + * @param $selector + * @param $params + * @param $button + * @see \Codeception\Lib\InnerBrowser::submitForm() + */ + public function submitForm($selector, $params, $button = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('submitForm', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Fills a text field or textarea with the given string. + * + * ``` php + * fillField("//input[@type='text']", "Hello World!"); + * $I->fillField(['name' => 'email'], 'jon@mail.com'); + * ?> + * ``` + * + * @param $field + * @param $value + * @see \Codeception\Lib\InnerBrowser::fillField() + */ + public function fillField($field, $value) { + return $this->scenario->runStep(new \Codeception\Step\Action('fillField', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Selects an option in a select tag or in radio button group. + * + * ``` php + * selectOption('form select[name=account]', 'Premium'); + * $I->selectOption('form input[name=payment]', 'Monthly'); + * $I->selectOption('//form/select[@name=account]', 'Monthly'); + * ?> + * ``` + * + * Provide an array for the second argument to select multiple options: + * + * ``` php + * selectOption('Which OS do you use?', array('Windows','Linux')); + * ?> + * ``` + * + * @param $select + * @param $option + * @see \Codeception\Lib\InnerBrowser::selectOption() + */ + public function selectOption($select, $option) { + return $this->scenario->runStep(new \Codeception\Step\Action('selectOption', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Ticks a checkbox. For radio buttons, use the `selectOption` method instead. + * + * ``` php + * checkOption('#agree'); + * ?> + * ``` + * + * @param $option + * @see \Codeception\Lib\InnerBrowser::checkOption() + */ + public function checkOption($option) { + return $this->scenario->runStep(new \Codeception\Step\Action('checkOption', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Unticks a checkbox. + * + * ``` php + * uncheckOption('#notify'); + * ?> + * ``` + * + * @param $option + * @see \Codeception\Lib\InnerBrowser::uncheckOption() + */ + public function uncheckOption($option) { + return $this->scenario->runStep(new \Codeception\Step\Action('uncheckOption', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Attaches a file relative to the Codeception data directory to the given file upload field. + * + * ``` php + * attachFile('input[@type="file"]', 'prices.xls'); + * ?> + * ``` + * + * @param $field + * @param $filename + * @see \Codeception\Lib\InnerBrowser::attachFile() + */ + public function attachFile($field, $filename) { + return $this->scenario->runStep(new \Codeception\Step\Action('attachFile', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * If your page triggers an ajax request, you can perform it manually. + * This action sends a GET ajax request with specified params. + * + * See ->sendAjaxPostRequest for examples. + * + * @param $uri + * @param $params + * @see \Codeception\Lib\InnerBrowser::sendAjaxGetRequest() + */ + public function sendAjaxGetRequest($uri, $params = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('sendAjaxGetRequest', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * If your page triggers an ajax request, you can perform it manually. + * This action sends a POST ajax request with specified params. + * Additional params can be passed as array. + * + * Example: + * + * Imagine that by clicking checkbox you trigger ajax request which updates user settings. + * We emulate that click by running this ajax request manually. + * + * ``` php + * sendAjaxPostRequest('/updateSettings', array('notifications' => true)); // POST + * $I->sendAjaxGetRequest('/updateSettings', array('notifications' => true)); // GET + * + * ``` + * + * @param $uri + * @param $params + * @see \Codeception\Lib\InnerBrowser::sendAjaxPostRequest() + */ + public function sendAjaxPostRequest($uri, $params = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('sendAjaxPostRequest', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * If your page triggers an ajax request, you can perform it manually. + * This action sends an ajax request with specified method and params. + * + * Example: + * + * You need to perform an ajax request specifying the HTTP method. + * + * ``` php + * sendAjaxRequest('PUT', '/posts/7', array('title' => 'new title')); + * + * ``` + * + * @param $method + * @param $uri + * @param $params + * @see \Codeception\Lib\InnerBrowser::sendAjaxRequest() + */ + public function sendAjaxRequest($method, $uri, $params = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('sendAjaxRequest', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Finds and returns the text contents of the given element. + * If a fuzzy locator is used, the element is found using CSS, XPath, and by matching the full page source by regular expression. + * + * ``` php + * grabTextFrom('h1'); + * $heading = $I->grabTextFrom('descendant-or-self::h1'); + * $value = $I->grabTextFrom('~ + * ``` + * + * @param $cssOrXPathOrRegex + * + * @return mixed + * @see \Codeception\Lib\InnerBrowser::grabTextFrom() + */ + public function grabTextFrom($cssOrXPathOrRegex) { + return $this->scenario->runStep(new \Codeception\Step\Action('grabTextFrom', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Grabs the value of the given attribute value from the given element. + * Fails if element is not found. + * + * ``` php + * grabAttributeFrom('#tooltip', 'title'); + * ?> + * ``` + * + * + * @param $cssOrXpath + * @param $attribute + * @internal param $element + * @return mixed + * @see \Codeception\Lib\InnerBrowser::grabAttributeFrom() + */ + public function grabAttributeFrom($cssOrXpath, $attribute) { + return $this->scenario->runStep(new \Codeception\Step\Action('grabAttributeFrom', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * @param $field + * + * @return array|mixed|null|string + * @see \Codeception\Lib\InnerBrowser::grabValueFrom() + */ + public function grabValueFrom($field) { + return $this->scenario->runStep(new \Codeception\Step\Action('grabValueFrom', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Sets a cookie with the given name and value. + * You can set additional cookie params like `domain`, `path`, `expire`, `secure` in array passed as last argument. + * + * ``` php + * setCookie('PHPSESSID', 'el4ukv0kqbvoirg7nkp4dncpk3'); + * ?> + * ``` + * + * @param $name + * @param $val + * @param array $params + * @internal param $cookie + * @internal param $value + * + * @return mixed + * @see \Codeception\Lib\InnerBrowser::setCookie() + */ + public function setCookie($name, $val, $params = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('setCookie', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Grabs a cookie value. + * You can set additional cookie params like `domain`, `path` in array passed as last argument. + * + * @param $cookie + * + * @param array $params + * @return mixed + * @see \Codeception\Lib\InnerBrowser::grabCookie() + */ + public function grabCookie($name, $params = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('grabCookie', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that a cookie with the given name is set. + * You can set additional cookie params like `domain`, `path` as array passed in last argument. + * + * ``` php + * seeCookie('PHPSESSID'); + * ?> + * ``` + * + * @param $cookie + * @param array $params + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeCookie() + */ + public function canSeeCookie($name, $params = null) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeCookie', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that a cookie with the given name is set. + * You can set additional cookie params like `domain`, `path` as array passed in last argument. + * + * ``` php + * seeCookie('PHPSESSID'); + * ?> + * ``` + * + * @param $cookie + * @param array $params + * @return mixed + * @see \Codeception\Lib\InnerBrowser::seeCookie() + */ + public function seeCookie($name, $params = null) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeCookie', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that there isn't a cookie with the given name. + * You can set additional cookie params like `domain`, `path` as array passed in last argument. + * + * @param $cookie + * + * @param array $params + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::dontSeeCookie() + */ + public function cantSeeCookie($name, $params = null) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCookie', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that there isn't a cookie with the given name. + * You can set additional cookie params like `domain`, `path` as array passed in last argument. + * + * @param $cookie + * + * @param array $params + * @return mixed + * @see \Codeception\Lib\InnerBrowser::dontSeeCookie() + */ + public function dontSeeCookie($name, $params = null) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeCookie', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Unsets cookie with the given name. + * You can set additional cookie params like `domain`, `path` in array passed as last argument. + * + * @param $cookie + * + * @param array $params + * @return mixed + * @see \Codeception\Lib\InnerBrowser::resetCookie() + */ + public function resetCookie($name, $params = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('resetCookie', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the given element exists on the page and is visible. + * You can also specify expected attributes of this element. + * + * ``` php + * seeElement('.error'); + * $I->seeElement('//form/input[1]'); + * $I->seeElement('input', ['name' => 'login']); + * $I->seeElement('input', ['value' => '123456']); + * + * // strict locator in first arg, attributes in second + * $I->seeElement(['css' => 'form input'], ['name' => 'login']); + * ?> + * ``` + * + * @param $selector + * @param array $attributes + * @return + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeElement() + */ + public function canSeeElement($selector, $attributes = null) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeElement', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the given element exists on the page and is visible. + * You can also specify expected attributes of this element. + * + * ``` php + * seeElement('.error'); + * $I->seeElement('//form/input[1]'); + * $I->seeElement('input', ['name' => 'login']); + * $I->seeElement('input', ['value' => '123456']); + * + * // strict locator in first arg, attributes in second + * $I->seeElement(['css' => 'form input'], ['name' => 'login']); + * ?> + * ``` + * + * @param $selector + * @param array $attributes + * @return + * @see \Codeception\Lib\InnerBrowser::seeElement() + */ + public function seeElement($selector, $attributes = null) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeElement', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the given element is invisible or not present on the page. + * You can also specify expected attributes of this element. + * + * ``` php + * dontSeeElement('.error'); + * $I->dontSeeElement('//form/input[1]'); + * $I->dontSeeElement('input', ['name' => 'login']); + * $I->dontSeeElement('input', ['value' => '123456']); + * ?> + * ``` + * + * @param $selector + * @param array $attributes + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::dontSeeElement() + */ + public function cantSeeElement($selector, $attributes = null) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeElement', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the given element is invisible or not present on the page. + * You can also specify expected attributes of this element. + * + * ``` php + * dontSeeElement('.error'); + * $I->dontSeeElement('//form/input[1]'); + * $I->dontSeeElement('input', ['name' => 'login']); + * $I->dontSeeElement('input', ['value' => '123456']); + * ?> + * ``` + * + * @param $selector + * @param array $attributes + * @see \Codeception\Lib\InnerBrowser::dontSeeElement() + */ + public function dontSeeElement($selector, $attributes = null) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeElement', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that there are a certain number of elements matched by the given locator on the page. + * + * ``` php + * seeNumberOfElements('tr', 10); + * $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements + * ?> + * ``` + * @param $selector + * @param mixed $expected: + * - string: strict number + * - array: range of numbers [0,10] + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeNumberOfElements() + */ + public function canSeeNumberOfElements($selector, $expected) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberOfElements', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that there are a certain number of elements matched by the given locator on the page. + * + * ``` php + * seeNumberOfElements('tr', 10); + * $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements + * ?> + * ``` + * @param $selector + * @param mixed $expected: + * - string: strict number + * - array: range of numbers [0,10] + * @see \Codeception\Lib\InnerBrowser::seeNumberOfElements() + */ + public function seeNumberOfElements($selector, $expected) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeNumberOfElements', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the given option is selected. + * + * ``` php + * seeOptionIsSelected('#form input[name=payment]', 'Visa'); + * ?> + * ``` + * + * @param $selector + * @param $optionText + * + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected() + */ + public function canSeeOptionIsSelected($select, $optionText) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeOptionIsSelected', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the given option is selected. + * + * ``` php + * seeOptionIsSelected('#form input[name=payment]', 'Visa'); + * ?> + * ``` + * + * @param $selector + * @param $optionText + * + * @return mixed + * @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected() + */ + public function seeOptionIsSelected($select, $optionText) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeOptionIsSelected', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the given option is not selected. + * + * ``` php + * dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); + * ?> + * ``` + * + * @param $selector + * @param $optionText + * + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected() + */ + public function cantSeeOptionIsSelected($select, $optionText) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeOptionIsSelected', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the given option is not selected. + * + * ``` php + * dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); + * ?> + * ``` + * + * @param $selector + * @param $optionText + * + * @return mixed + * @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected() + */ + public function dontSeeOptionIsSelected($select, $optionText) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeOptionIsSelected', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Asserts that current page has 404 response status code. + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seePageNotFound() + */ + public function canSeePageNotFound() { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seePageNotFound', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Asserts that current page has 404 response status code. + * @see \Codeception\Lib\InnerBrowser::seePageNotFound() + */ + public function seePageNotFound() { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seePageNotFound', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that response code is equal to value provided. + * + * @param $code + * + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeResponseCodeIs() + */ + public function canSeeResponseCodeIs($code) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseCodeIs', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that response code is equal to value provided. + * + * @param $code + * + * @return mixed + * @see \Codeception\Lib\InnerBrowser::seeResponseCodeIs() + */ + public function seeResponseCodeIs($code) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeResponseCodeIs', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the page title contains the given string. + * + * ``` php + * seeInTitle('Blog - Post #1'); + * ?> + * ``` + * + * @param $title + * + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::seeInTitle() + */ + public function canSeeInTitle($title) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeInTitle', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the page title contains the given string. + * + * ``` php + * seeInTitle('Blog - Post #1'); + * ?> + * ``` + * + * @param $title + * + * @return mixed + * @see \Codeception\Lib\InnerBrowser::seeInTitle() + */ + public function seeInTitle($title) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeInTitle', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the page title does not contain the given string. + * + * @param $title + * + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Lib\InnerBrowser::dontSeeInTitle() + */ + public function cantSeeInTitle($title) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInTitle', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that the page title does not contain the given string. + * + * @param $title + * + * @return mixed + * @see \Codeception\Lib\InnerBrowser::dontSeeInTitle() + */ + public function dontSeeInTitle($title) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeInTitle', func_get_args())); + } +} diff --git a/tests/codeception/tests/acceptance/CISLoginPageCept.php b/tests/codeception/tests/acceptance/CISLoginPageCept.php new file mode 100644 index 000000000..14668afa1 --- /dev/null +++ b/tests/codeception/tests/acceptance/CISLoginPageCept.php @@ -0,0 +1,6 @@ +wantTo('CIS Startseite Testen'); +//$I->amOnPage('/cis/index.html'); +//$I->see('Powered by FH Complete'); +?> diff --git a/tests/codeception/tests/acceptance/_bootstrap.php b/tests/codeception/tests/acceptance/_bootstrap.php new file mode 100644 index 000000000..8a8855580 --- /dev/null +++ b/tests/codeception/tests/acceptance/_bootstrap.php @@ -0,0 +1,2 @@ +scenario->runStep(new \Codeception\Step\Condition('amInPath', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Opens a file and stores it's content. + * + * Usage: + * + * ``` php + * openFile('composer.json'); + * $I->seeInThisFile('codeception/codeception'); + * ?> + * ``` + * + * @param $filename + * @see \Codeception\Module\Filesystem::openFile() + */ + public function openFile($filename) { + return $this->scenario->runStep(new \Codeception\Step\Action('openFile', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Deletes a file + * + * ``` php + * deleteFile('composer.lock'); + * ?> + * ``` + * + * @param $filename + * @see \Codeception\Module\Filesystem::deleteFile() + */ + public function deleteFile($filename) { + return $this->scenario->runStep(new \Codeception\Step\Action('deleteFile', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Deletes directory with all subdirectories + * + * ``` php + * deleteDir('vendor'); + * ?> + * ``` + * + * @param $dirname + * @see \Codeception\Module\Filesystem::deleteDir() + */ + public function deleteDir($dirname) { + return $this->scenario->runStep(new \Codeception\Step\Action('deleteDir', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Copies directory with all contents + * + * ``` php + * copyDir('vendor','old_vendor'); + * ?> + * ``` + * + * @param $src + * @param $dst + * @see \Codeception\Module\Filesystem::copyDir() + */ + public function copyDir($src, $dst) { + return $this->scenario->runStep(new \Codeception\Step\Action('copyDir', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks If opened file has `text` in it. + * + * Usage: + * + * ``` php + * openFile('composer.json'); + * $I->seeInThisFile('codeception/codeception'); + * ?> + * ``` + * + * @param $text + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Module\Filesystem::seeInThisFile() + */ + public function canSeeInThisFile($text) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeInThisFile', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks If opened file has `text` in it. + * + * Usage: + * + * ``` php + * openFile('composer.json'); + * $I->seeInThisFile('codeception/codeception'); + * ?> + * ``` + * + * @param $text + * @see \Codeception\Module\Filesystem::seeInThisFile() + */ + public function seeInThisFile($text) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeInThisFile', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks the strict matching of file contents. + * Unlike `seeInThisFile` will fail if file has something more than expected lines. + * Better to use with HEREDOC strings. + * Matching is done after removing "\r" chars from file content. + * + * ``` php + * openFile('process.pid'); + * $I->seeFileContentsEqual('3192'); + * ?> + * ``` + * + * @param $text + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Module\Filesystem::seeFileContentsEqual() + */ + public function canSeeFileContentsEqual($text) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeFileContentsEqual', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks the strict matching of file contents. + * Unlike `seeInThisFile` will fail if file has something more than expected lines. + * Better to use with HEREDOC strings. + * Matching is done after removing "\r" chars from file content. + * + * ``` php + * openFile('process.pid'); + * $I->seeFileContentsEqual('3192'); + * ?> + * ``` + * + * @param $text + * @see \Codeception\Module\Filesystem::seeFileContentsEqual() + */ + public function seeFileContentsEqual($text) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeFileContentsEqual', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks If opened file doesn't contain `text` in it + * + * ``` php + * openFile('composer.json'); + * $I->dontSeeInThisFile('codeception/codeception'); + * ?> + * ``` + * + * @param $text + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Module\Filesystem::dontSeeInThisFile() + */ + public function cantSeeInThisFile($text) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInThisFile', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks If opened file doesn't contain `text` in it + * + * ``` php + * openFile('composer.json'); + * $I->dontSeeInThisFile('codeception/codeception'); + * ?> + * ``` + * + * @param $text + * @see \Codeception\Module\Filesystem::dontSeeInThisFile() + */ + public function dontSeeInThisFile($text) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeInThisFile', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Deletes a file + * @see \Codeception\Module\Filesystem::deleteThisFile() + */ + public function deleteThisFile() { + return $this->scenario->runStep(new \Codeception\Step\Action('deleteThisFile', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks if file exists in path. + * Opens a file when it's exists + * + * ``` php + * seeFileFound('UserModel.php','app/models'); + * ?> + * ``` + * + * @param $filename + * @param string $path + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Module\Filesystem::seeFileFound() + */ + public function canSeeFileFound($filename, $path = null) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeFileFound', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks if file exists in path. + * Opens a file when it's exists + * + * ``` php + * seeFileFound('UserModel.php','app/models'); + * ?> + * ``` + * + * @param $filename + * @param string $path + * @see \Codeception\Module\Filesystem::seeFileFound() + */ + public function seeFileFound($filename, $path = null) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('seeFileFound', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks if file does not exists in path + * + * @param $filename + * @param string $path + * Conditional Assertion: Test won't be stopped on fail + * @see \Codeception\Module\Filesystem::dontSeeFileFound() + */ + public function cantSeeFileFound($filename, $path = null) { + return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeFileFound', func_get_args())); + } + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks if file does not exists in path + * + * @param $filename + * @param string $path + * @see \Codeception\Module\Filesystem::dontSeeFileFound() + */ + public function dontSeeFileFound($filename, $path = null) { + return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeFileFound', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Erases directory contents + * + * ``` php + * cleanDir('logs'); + * ?> + * ``` + * + * @param $dirname + * @see \Codeception\Module\Filesystem::cleanDir() + */ + public function cleanDir($dirname) { + return $this->scenario->runStep(new \Codeception\Step\Action('cleanDir', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Saves contents to file + * + * @param $filename + * @param $contents + * @see \Codeception\Module\Filesystem::writeToFile() + */ + public function writeToFile($filename, $contents) { + return $this->scenario->runStep(new \Codeception\Step\Action('writeToFile', func_get_args())); + } +} diff --git a/tests/codeception/tests/functional/_bootstrap.php b/tests/codeception/tests/functional/_bootstrap.php new file mode 100644 index 000000000..8a8855580 --- /dev/null +++ b/tests/codeception/tests/functional/_bootstrap.php @@ -0,0 +1,2 @@ +errormsg=true; + $this->assertTrue($bc->getErrorMsg()); + } + +} diff --git a/tests/codeception/tests/unit/UnitTester.php b/tests/codeception/tests/unit/UnitTester.php new file mode 100644 index 000000000..1b95ec3d2 --- /dev/null +++ b/tests/codeception/tests/unit/UnitTester.php @@ -0,0 +1,268 @@ +scenario->runStep(new \Codeception\Step\Action('assertEquals', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that two variables are not equal + * + * @param $expected + * @param $actual + * @param string $message + * @see \Codeception\Module\Asserts::assertNotEquals() + */ + public function assertNotEquals($expected, $actual, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertNotEquals', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that expected is greater than actual + * + * @param $expected + * @param $actual + * @param string $message + * @see \Codeception\Module\Asserts::assertGreaterThan() + */ + public function assertGreaterThan($expected, $actual, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThan', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * @deprecated + * @see \Codeception\Module\Asserts::assertGreaterThen() + */ + public function assertGreaterThen($expected, $actual, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThen', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that expected is greater or equal than actual + * + * @param $expected + * @param $actual + * @param string $message + * @see \Codeception\Module\Asserts::assertGreaterThanOrEqual() + */ + public function assertGreaterThanOrEqual($expected, $actual, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThanOrEqual', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * @deprecated + * @see \Codeception\Module\Asserts::assertGreaterThenOrEqual() + */ + public function assertGreaterThenOrEqual($expected, $actual, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThenOrEqual', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that expected is less than actual + * + * @param $expected + * @param $actual + * @param string $message + * @see \Codeception\Module\Asserts::assertLessThan() + */ + public function assertLessThan($expected, $actual, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertLessThan', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that expected is less or equal than actual + * + * @param $expected + * @param $actual + * @param string $message + * @see \Codeception\Module\Asserts::assertLessThanOrEqual() + */ + public function assertLessThanOrEqual($expected, $actual, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertLessThanOrEqual', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that haystack contains needle + * + * @param $needle + * @param $haystack + * @param string $message + * @see \Codeception\Module\Asserts::assertContains() + */ + public function assertContains($needle, $haystack, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertContains', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that haystack doesn't contain needle. + * + * @param $needle + * @param $haystack + * @param string $message + * @see \Codeception\Module\Asserts::assertNotContains() + */ + public function assertNotContains($needle, $haystack, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertNotContains', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that variable is empty. + * + * @param $actual + * @param string $message + * @see \Codeception\Module\Asserts::assertEmpty() + */ + public function assertEmpty($actual, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertEmpty', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that variable is not empty. + * + * @param $actual + * @param string $message + * @see \Codeception\Module\Asserts::assertNotEmpty() + */ + public function assertNotEmpty($actual, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertNotEmpty', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that variable is NULL + * + * @param $actual + * @param string $message + * @see \Codeception\Module\Asserts::assertNull() + */ + public function assertNull($actual, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertNull', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that variable is not NULL + * + * @param $actual + * @param string $message + * @see \Codeception\Module\Asserts::assertNotNull() + */ + public function assertNotNull($actual, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertNotNull', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that condition is positive. + * + * @param $condition + * @param string $message + * @see \Codeception\Module\Asserts::assertTrue() + */ + public function assertTrue($condition, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertTrue', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Checks that condition is negative. + * + * @param $condition + * @param string $message + * @see \Codeception\Module\Asserts::assertFalse() + */ + public function assertFalse($condition, $message = null) { + return $this->scenario->runStep(new \Codeception\Step\Action('assertFalse', func_get_args())); + } + + + /** + * [!] Method is generated. Documentation taken from corresponding module. + * + * Fails the test with message. + * + * @param $message + * @see \Codeception\Module\Asserts::fail() + */ + public function fail($message) { + return $this->scenario->runStep(new \Codeception\Step\Action('fail', func_get_args())); + } +} diff --git a/tests/codeception/tests/unit/_bootstrap.php b/tests/codeception/tests/unit/_bootstrap.php new file mode 100644 index 000000000..8a8855580 --- /dev/null +++ b/tests/codeception/tests/unit/_bootstrap.php @@ -0,0 +1,2 @@ + Date: Wed, 28 Sep 2016 11:17:18 +0200 Subject: [PATCH 050/140] phpC(i)D fixes II --- phpci.yml | 21 +- tests/codeception/acceptance.suite.yml | 14 - .../acceptance/AcceptanceTester.php | 1601 ----------------- .../acceptance/CISLoginPageCept.php | 6 - tests/codeception/acceptance/_bootstrap.php | 2 - tests/codeception/codeception.yml | 17 - tests/codeception/functional.suite.yml | 9 - .../functional/FunctionalTester.php | 360 ---- tests/codeception/functional/_bootstrap.php | 2 - tests/codeception/unit.suite.yml | 6 - tests/codeception/unit/BasisKlasseTest.php | 27 - tests/codeception/unit/UnitTester.php | 268 --- tests/codeception/unit/_bootstrap.php | 2 - 13 files changed, 9 insertions(+), 2326 deletions(-) delete mode 100644 tests/codeception/acceptance.suite.yml delete mode 100644 tests/codeception/acceptance/AcceptanceTester.php delete mode 100644 tests/codeception/acceptance/CISLoginPageCept.php delete mode 100644 tests/codeception/acceptance/_bootstrap.php delete mode 100644 tests/codeception/codeception.yml delete mode 100644 tests/codeception/functional.suite.yml delete mode 100644 tests/codeception/functional/FunctionalTester.php delete mode 100644 tests/codeception/functional/_bootstrap.php delete mode 100644 tests/codeception/unit.suite.yml delete mode 100644 tests/codeception/unit/BasisKlasseTest.php delete mode 100644 tests/codeception/unit/UnitTester.php delete mode 100644 tests/codeception/unit/_bootstrap.php diff --git a/phpci.yml b/phpci.yml index 32e465575..08ed79f51 100644 --- a/phpci.yml +++ b/phpci.yml @@ -1,22 +1,19 @@ build_settings: verbose: false prefer_symlink: false + ignore: + - "vendor" + - "tests" setup: test: - codeception: - config: "tests" lint: - php_loc: - php_docblock_checker: - allowed_warnings: -1 -# phing: -# build_file: 'build.xml' -# targets: -# - "deploy" -# php_unit: -# directory: "tests/phpunit/" -# args: "--bootstrap 'test/phpunit/bootstrap.php' --configuration 'tests/phpunit/phpunit.xml'" + directories: + - "application/" + recursive: true + codeception: + config: "tests/codeception/" + path: "tests/codeception/_output/" complete: diff --git a/tests/codeception/acceptance.suite.yml b/tests/codeception/acceptance.suite.yml deleted file mode 100644 index 8a84881eb..000000000 --- a/tests/codeception/acceptance.suite.yml +++ /dev/null @@ -1,14 +0,0 @@ -# Codeception Test Suite Configuration - -# suite for acceptance tests. -# perform tests in browser using the WebDriver or PhpBrowser. -# If you need both WebDriver and PHPBrowser tests - create a separate suite. - -class_name: AcceptanceTester -modules: - enabled: - - PhpBrowser - - AcceptanceHelper - config: - PhpBrowser: - url: 'http://localhost/myapp/' diff --git a/tests/codeception/acceptance/AcceptanceTester.php b/tests/codeception/acceptance/AcceptanceTester.php deleted file mode 100644 index 9045754f8..000000000 --- a/tests/codeception/acceptance/AcceptanceTester.php +++ /dev/null @@ -1,1601 +0,0 @@ -scenario->runStep(new \Codeception\Step\Action('setHeader', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Authenticates user for HTTP_AUTH - * - * @param $username - * @param $password - * @see \Codeception\Module\PhpBrowser::amHttpAuthenticated() - */ - public function amHttpAuthenticated($username, $password) { - return $this->scenario->runStep(new \Codeception\Step\Condition('amHttpAuthenticated', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Opens the page for the given relative URI. - * - * ``` php - * amOnPage('/'); - * // opens /register page - * $I->amOnPage('/register'); - * ?> - * ``` - * - * @param $page - * @see \Codeception\Module\PhpBrowser::amOnPage() - */ - public function amOnPage($page) { - return $this->scenario->runStep(new \Codeception\Step\Condition('amOnPage', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Open web page at the given absolute URL and sets its hostname as the base host. - * - * ``` php - * amOnUrl('http://codeception.com'); - * $I->amOnPage('/quickstart'); // moves to http://codeception.com/quickstart - * ?> - * ``` - * @see \Codeception\Module\PhpBrowser::amOnUrl() - */ - public function amOnUrl($url) { - return $this->scenario->runStep(new \Codeception\Step\Condition('amOnUrl', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Changes the subdomain for the 'url' configuration parameter. - * Does not open a page; use `amOnPage` for that. - * - * ``` php - * amOnSubdomain('user'); - * $I->amOnPage('/'); - * // moves to http://user.mysite.com/ - * ?> - * ``` - * - * @param $subdomain - * - * @return mixed - * @see \Codeception\Module\PhpBrowser::amOnSubdomain() - */ - public function amOnSubdomain($subdomain) { - return $this->scenario->runStep(new \Codeception\Step\Condition('amOnSubdomain', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Low-level API method. - * If Codeception commands are not enough, use [Guzzle HTTP Client](http://guzzlephp.org/) methods directly - * - * Example: - * - * ``` php - * executeInGuzzle(function (\GuzzleHttp\Client $client) { - * $client->get('/get', ['query' => ['foo' => 'bar']]); - * }); - * ?> - * ``` - * - * It is not recommended to use this command on a regular basis. - * If Codeception lacks important Guzzle Client methods, implement them and submit patches. - * - * @param callable $function - * @see \Codeception\Module\PhpBrowser::executeInGuzzle() - */ - public function executeInGuzzle($function) { - return $this->scenario->runStep(new \Codeception\Step\Action('executeInGuzzle', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Perform a click on a link or a button, given by a locator. - * If a fuzzy locator is given, the page will be searched for a button, link, or image matching the locator string. - * For buttons, the "value" attribute, "name" attribute, and inner text are searched. - * For links, the link text is searched. - * For images, the "alt" attribute and inner text of any parent links are searched. - * - * The second parameter is a context (CSS or XPath locator) to narrow the search. - * - * Note that if the locator matches a button of type `submit`, the form will be submitted. - * - * ``` php - * click('Logout'); - * // button of form - * $I->click('Submit'); - * // CSS button - * $I->click('#form input[type=submit]'); - * // XPath - * $I->click('//form/*[@type=submit]'); - * // link in context - * $I->click('Logout', '#nav'); - * // using strict locator - * $I->click(['link' => 'Login']); - * ?> - * ``` - * - * @param $link - * @param $context - * @see \Codeception\Lib\InnerBrowser::click() - */ - public function click($link, $context = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('click', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current page contains the given string. - * Specify a locator as the second parameter to match a specific region. - * - * ``` php - * see('Logout'); // I can suppose user is logged in - * $I->see('Sign Up','h1'); // I can suppose it's a signup page - * $I->see('Sign Up','//body/h1'); // with XPath - * ?> - * ``` - * - * @param $text - * @param null $selector - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::see() - */ - public function canSee($text, $selector = null) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('see', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current page contains the given string. - * Specify a locator as the second parameter to match a specific region. - * - * ``` php - * see('Logout'); // I can suppose user is logged in - * $I->see('Sign Up','h1'); // I can suppose it's a signup page - * $I->see('Sign Up','//body/h1'); // with XPath - * ?> - * ``` - * - * @param $text - * @param null $selector - * @see \Codeception\Lib\InnerBrowser::see() - */ - public function see($text, $selector = null) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('see', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current page doesn't contain the text specified. - * Give a locator as the second parameter to match a specific region. - * - * ```php - * dontSee('Login'); // I can suppose user is already logged in - * $I->dontSee('Sign Up','h1'); // I can suppose it's not a signup page - * $I->dontSee('Sign Up','//body/h1'); // with XPath - * ?> - * ``` - * - * @param $text - * @param null $selector - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::dontSee() - */ - public function cantSee($text, $selector = null) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSee', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current page doesn't contain the text specified. - * Give a locator as the second parameter to match a specific region. - * - * ```php - * dontSee('Login'); // I can suppose user is already logged in - * $I->dontSee('Sign Up','h1'); // I can suppose it's not a signup page - * $I->dontSee('Sign Up','//body/h1'); // with XPath - * ?> - * ``` - * - * @param $text - * @param null $selector - * @see \Codeception\Lib\InnerBrowser::dontSee() - */ - public function dontSee($text, $selector = null) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSee', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that there's a link with the specified text. - * Give a full URL as the second parameter to match links with that exact URL. - * - * ``` php - * seeLink('Logout'); // matches Logout - * $I->seeLink('Logout','/logout'); // matches Logout - * ?> - * ``` - * - * @param $text - * @param null $url - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeLink() - */ - public function canSeeLink($text, $url = null) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeLink', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that there's a link with the specified text. - * Give a full URL as the second parameter to match links with that exact URL. - * - * ``` php - * seeLink('Logout'); // matches Logout - * $I->seeLink('Logout','/logout'); // matches Logout - * ?> - * ``` - * - * @param $text - * @param null $url - * @see \Codeception\Lib\InnerBrowser::seeLink() - */ - public function seeLink($text, $url = null) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeLink', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the page doesn't contain a link with the given string. - * If the second parameter is given, only links with a matching "href" attribute will be checked. - * - * ``` php - * dontSeeLink('Logout'); // I suppose user is not logged in - * $I->dontSeeLink('Checkout now', '/store/cart.php'); - * ?> - * ``` - * - * @param $text - * @param null $url - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::dontSeeLink() - */ - public function cantSeeLink($text, $url = null) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeLink', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the page doesn't contain a link with the given string. - * If the second parameter is given, only links with a matching "href" attribute will be checked. - * - * ``` php - * dontSeeLink('Logout'); // I suppose user is not logged in - * $I->dontSeeLink('Checkout now', '/store/cart.php'); - * ?> - * ``` - * - * @param $text - * @param null $url - * @see \Codeception\Lib\InnerBrowser::dontSeeLink() - */ - public function dontSeeLink($text, $url = null) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeLink', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that current URI contains the given string. - * - * ``` php - * seeInCurrentUrl('home'); - * // to match: /users/1 - * $I->seeInCurrentUrl('/users/'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeInCurrentUrl() - */ - public function canSeeInCurrentUrl($uri) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeInCurrentUrl', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that current URI contains the given string. - * - * ``` php - * seeInCurrentUrl('home'); - * // to match: /users/1 - * $I->seeInCurrentUrl('/users/'); - * ?> - * ``` - * - * @param $uri - * @see \Codeception\Lib\InnerBrowser::seeInCurrentUrl() - */ - public function seeInCurrentUrl($uri) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeInCurrentUrl', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current URI doesn't contain the given string. - * - * ``` php - * dontSeeInCurrentUrl('/users/'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::dontSeeInCurrentUrl() - */ - public function cantSeeInCurrentUrl($uri) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInCurrentUrl', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current URI doesn't contain the given string. - * - * ``` php - * dontSeeInCurrentUrl('/users/'); - * ?> - * ``` - * - * @param $uri - * @see \Codeception\Lib\InnerBrowser::dontSeeInCurrentUrl() - */ - public function dontSeeInCurrentUrl($uri) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeInCurrentUrl', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current URL is equal to the given string. - * Unlike `seeInCurrentUrl`, this only matches the full URL. - * - * ``` php - * seeCurrentUrlEquals('/'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlEquals() - */ - public function canSeeCurrentUrlEquals($uri) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlEquals', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current URL is equal to the given string. - * Unlike `seeInCurrentUrl`, this only matches the full URL. - * - * ``` php - * seeCurrentUrlEquals('/'); - * ?> - * ``` - * - * @param $uri - * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlEquals() - */ - public function seeCurrentUrlEquals($uri) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeCurrentUrlEquals', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current URL doesn't equal the given string. - * Unlike `dontSeeInCurrentUrl`, this only matches the full URL. - * - * ``` php - * dontSeeCurrentUrlEquals('/'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlEquals() - */ - public function cantSeeCurrentUrlEquals($uri) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlEquals', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current URL doesn't equal the given string. - * Unlike `dontSeeInCurrentUrl`, this only matches the full URL. - * - * ``` php - * dontSeeCurrentUrlEquals('/'); - * ?> - * ``` - * - * @param $uri - * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlEquals() - */ - public function dontSeeCurrentUrlEquals($uri) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlEquals', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current URL matches the given regular expression. - * - * ``` php - * seeCurrentUrlMatches('~$/users/(\d+)~'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlMatches() - */ - public function canSeeCurrentUrlMatches($uri) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlMatches', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the current URL matches the given regular expression. - * - * ``` php - * seeCurrentUrlMatches('~$/users/(\d+)~'); - * ?> - * ``` - * - * @param $uri - * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlMatches() - */ - public function seeCurrentUrlMatches($uri) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeCurrentUrlMatches', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that current url doesn't match the given regular expression. - * - * ``` php - * dontSeeCurrentUrlMatches('~$/users/(\d+)~'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlMatches() - */ - public function cantSeeCurrentUrlMatches($uri) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlMatches', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that current url doesn't match the given regular expression. - * - * ``` php - * dontSeeCurrentUrlMatches('~$/users/(\d+)~'); - * ?> - * ``` - * - * @param $uri - * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlMatches() - */ - public function dontSeeCurrentUrlMatches($uri) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlMatches', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Executes the given regular expression against the current URI and returns the first match. - * If no parameters are provided, the full URI is returned. - * - * ``` php - * grabFromCurrentUrl('~$/user/(\d+)/~'); - * $uri = $I->grabFromCurrentUrl(); - * ?> - * ``` - * - * @param null $uri - * - * @internal param $url - * @return mixed - * @see \Codeception\Lib\InnerBrowser::grabFromCurrentUrl() - */ - public function grabFromCurrentUrl($uri = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('grabFromCurrentUrl', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the specified checkbox is checked. - * - * ``` php - * seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms - * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form. - * $I->seeCheckboxIsChecked('//form/input[@type=checkbox and @name=agree]'); - * ?> - * ``` - * - * @param $checkbox - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeCheckboxIsChecked() - */ - public function canSeeCheckboxIsChecked($checkbox) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeCheckboxIsChecked', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the specified checkbox is checked. - * - * ``` php - * seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms - * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form. - * $I->seeCheckboxIsChecked('//form/input[@type=checkbox and @name=agree]'); - * ?> - * ``` - * - * @param $checkbox - * @see \Codeception\Lib\InnerBrowser::seeCheckboxIsChecked() - */ - public function seeCheckboxIsChecked($checkbox) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeCheckboxIsChecked', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Check that the specified checkbox is unchecked. - * - * ``` php - * dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms - * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form. - * ?> - * ``` - * - * @param $checkbox - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::dontSeeCheckboxIsChecked() - */ - public function cantSeeCheckboxIsChecked($checkbox) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCheckboxIsChecked', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Check that the specified checkbox is unchecked. - * - * ``` php - * dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms - * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form. - * ?> - * ``` - * - * @param $checkbox - * @see \Codeception\Lib\InnerBrowser::dontSeeCheckboxIsChecked() - */ - public function dontSeeCheckboxIsChecked($checkbox) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeCheckboxIsChecked', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the given input field or textarea contains the given value. - * For fuzzy locators, fields are matched by label text, the "name" attribute, CSS, and XPath. - * - * ``` php - * seeInField('Body','Type your comment here'); - * $I->seeInField('form textarea[name=body]','Type your comment here'); - * $I->seeInField('form input[type=hidden]','hidden_value'); - * $I->seeInField('#searchform input','Search'); - * $I->seeInField('//form/*[@name=search]','Search'); - * $I->seeInField(['name' => 'search'], 'Search'); - * ?> - * ``` - * - * @param $field - * @param $value - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeInField() - */ - public function canSeeInField($field, $value) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeInField', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the given input field or textarea contains the given value. - * For fuzzy locators, fields are matched by label text, the "name" attribute, CSS, and XPath. - * - * ``` php - * seeInField('Body','Type your comment here'); - * $I->seeInField('form textarea[name=body]','Type your comment here'); - * $I->seeInField('form input[type=hidden]','hidden_value'); - * $I->seeInField('#searchform input','Search'); - * $I->seeInField('//form/*[@name=search]','Search'); - * $I->seeInField(['name' => 'search'], 'Search'); - * ?> - * ``` - * - * @param $field - * @param $value - * @see \Codeception\Lib\InnerBrowser::seeInField() - */ - public function seeInField($field, $value) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeInField', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that an input field or textarea doesn't contain the given value. - * For fuzzy locators, the field is matched by label text, CSS and XPath. - * - * ``` php - * dontSeeInField('Body','Type your comment here'); - * $I->dontSeeInField('form textarea[name=body]','Type your comment here'); - * $I->dontSeeInField('form input[type=hidden]','hidden_value'); - * $I->dontSeeInField('#searchform input','Search'); - * $I->dontSeeInField('//form/*[@name=search]','Search'); - * $I->dontSeeInField(['name' => 'search'], 'Search'); - * ?> - * ``` - * - * @param $field - * @param $value - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::dontSeeInField() - */ - public function cantSeeInField($field, $value) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInField', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that an input field or textarea doesn't contain the given value. - * For fuzzy locators, the field is matched by label text, CSS and XPath. - * - * ``` php - * dontSeeInField('Body','Type your comment here'); - * $I->dontSeeInField('form textarea[name=body]','Type your comment here'); - * $I->dontSeeInField('form input[type=hidden]','hidden_value'); - * $I->dontSeeInField('#searchform input','Search'); - * $I->dontSeeInField('//form/*[@name=search]','Search'); - * $I->dontSeeInField(['name' => 'search'], 'Search'); - * ?> - * ``` - * - * @param $field - * @param $value - * @see \Codeception\Lib\InnerBrowser::dontSeeInField() - */ - public function dontSeeInField($field, $value) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeInField', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Submits the given form on the page, optionally with the given form values. - * Give the form fields values as an array. - * - * Skipped fields will be filled by their values from the page. - * You don't need to click the 'Submit' button afterwards. - * This command itself triggers the request to form's action. - * - * You can optionally specify what button's value to include - * in the request with the last parameter as an alternative to - * explicitly setting its value in the second parameter, as - * button values are not otherwise included in the request. - * - * Examples: - * - * ``` php - * submitForm('#login', array('login' => 'davert', 'password' => '123456')); - * // or - * $I->submitForm('#login', array('login' => 'davert', 'password' => '123456'), 'submitButtonName'); - * - * ``` - * - * For example, given this sample "Sign Up" form: - * - * ``` html - *
      - * Login:
      - * Password:
      - * Do you agree to out terms?
      - * Select pricing plan - * - *
      - * ``` - * - * You could write the following to submit it: - * - * ``` php - * submitForm('#userForm', array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true)), 'submitButton'); - * - * ``` - * Note that "2" will be the submitted value for the "plan" field, as it is the selected option. - * - * You can also emulate a JavaScript submission by not specifying any buttons in the third parameter to submitForm. - * - * ```php - * submitForm('#userForm', array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true))); - * - * ``` - * - * @param $selector - * @param $params - * @param $button - * @see \Codeception\Lib\InnerBrowser::submitForm() - */ - public function submitForm($selector, $params, $button = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('submitForm', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Fills a text field or textarea with the given string. - * - * ``` php - * fillField("//input[@type='text']", "Hello World!"); - * $I->fillField(['name' => 'email'], 'jon@mail.com'); - * ?> - * ``` - * - * @param $field - * @param $value - * @see \Codeception\Lib\InnerBrowser::fillField() - */ - public function fillField($field, $value) { - return $this->scenario->runStep(new \Codeception\Step\Action('fillField', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Selects an option in a select tag or in radio button group. - * - * ``` php - * selectOption('form select[name=account]', 'Premium'); - * $I->selectOption('form input[name=payment]', 'Monthly'); - * $I->selectOption('//form/select[@name=account]', 'Monthly'); - * ?> - * ``` - * - * Provide an array for the second argument to select multiple options: - * - * ``` php - * selectOption('Which OS do you use?', array('Windows','Linux')); - * ?> - * ``` - * - * @param $select - * @param $option - * @see \Codeception\Lib\InnerBrowser::selectOption() - */ - public function selectOption($select, $option) { - return $this->scenario->runStep(new \Codeception\Step\Action('selectOption', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Ticks a checkbox. For radio buttons, use the `selectOption` method instead. - * - * ``` php - * checkOption('#agree'); - * ?> - * ``` - * - * @param $option - * @see \Codeception\Lib\InnerBrowser::checkOption() - */ - public function checkOption($option) { - return $this->scenario->runStep(new \Codeception\Step\Action('checkOption', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Unticks a checkbox. - * - * ``` php - * uncheckOption('#notify'); - * ?> - * ``` - * - * @param $option - * @see \Codeception\Lib\InnerBrowser::uncheckOption() - */ - public function uncheckOption($option) { - return $this->scenario->runStep(new \Codeception\Step\Action('uncheckOption', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Attaches a file relative to the Codeception data directory to the given file upload field. - * - * ``` php - * attachFile('input[@type="file"]', 'prices.xls'); - * ?> - * ``` - * - * @param $field - * @param $filename - * @see \Codeception\Lib\InnerBrowser::attachFile() - */ - public function attachFile($field, $filename) { - return $this->scenario->runStep(new \Codeception\Step\Action('attachFile', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * If your page triggers an ajax request, you can perform it manually. - * This action sends a GET ajax request with specified params. - * - * See ->sendAjaxPostRequest for examples. - * - * @param $uri - * @param $params - * @see \Codeception\Lib\InnerBrowser::sendAjaxGetRequest() - */ - public function sendAjaxGetRequest($uri, $params = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('sendAjaxGetRequest', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * If your page triggers an ajax request, you can perform it manually. - * This action sends a POST ajax request with specified params. - * Additional params can be passed as array. - * - * Example: - * - * Imagine that by clicking checkbox you trigger ajax request which updates user settings. - * We emulate that click by running this ajax request manually. - * - * ``` php - * sendAjaxPostRequest('/updateSettings', array('notifications' => true)); // POST - * $I->sendAjaxGetRequest('/updateSettings', array('notifications' => true)); // GET - * - * ``` - * - * @param $uri - * @param $params - * @see \Codeception\Lib\InnerBrowser::sendAjaxPostRequest() - */ - public function sendAjaxPostRequest($uri, $params = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('sendAjaxPostRequest', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * If your page triggers an ajax request, you can perform it manually. - * This action sends an ajax request with specified method and params. - * - * Example: - * - * You need to perform an ajax request specifying the HTTP method. - * - * ``` php - * sendAjaxRequest('PUT', '/posts/7', array('title' => 'new title')); - * - * ``` - * - * @param $method - * @param $uri - * @param $params - * @see \Codeception\Lib\InnerBrowser::sendAjaxRequest() - */ - public function sendAjaxRequest($method, $uri, $params = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('sendAjaxRequest', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Finds and returns the text contents of the given element. - * If a fuzzy locator is used, the element is found using CSS, XPath, and by matching the full page source by regular expression. - * - * ``` php - * grabTextFrom('h1'); - * $heading = $I->grabTextFrom('descendant-or-self::h1'); - * $value = $I->grabTextFrom('~ - * ``` - * - * @param $cssOrXPathOrRegex - * - * @return mixed - * @see \Codeception\Lib\InnerBrowser::grabTextFrom() - */ - public function grabTextFrom($cssOrXPathOrRegex) { - return $this->scenario->runStep(new \Codeception\Step\Action('grabTextFrom', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Grabs the value of the given attribute value from the given element. - * Fails if element is not found. - * - * ``` php - * grabAttributeFrom('#tooltip', 'title'); - * ?> - * ``` - * - * - * @param $cssOrXpath - * @param $attribute - * @internal param $element - * @return mixed - * @see \Codeception\Lib\InnerBrowser::grabAttributeFrom() - */ - public function grabAttributeFrom($cssOrXpath, $attribute) { - return $this->scenario->runStep(new \Codeception\Step\Action('grabAttributeFrom', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * @param $field - * - * @return array|mixed|null|string - * @see \Codeception\Lib\InnerBrowser::grabValueFrom() - */ - public function grabValueFrom($field) { - return $this->scenario->runStep(new \Codeception\Step\Action('grabValueFrom', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Sets a cookie with the given name and value. - * You can set additional cookie params like `domain`, `path`, `expire`, `secure` in array passed as last argument. - * - * ``` php - * setCookie('PHPSESSID', 'el4ukv0kqbvoirg7nkp4dncpk3'); - * ?> - * ``` - * - * @param $name - * @param $val - * @param array $params - * @internal param $cookie - * @internal param $value - * - * @return mixed - * @see \Codeception\Lib\InnerBrowser::setCookie() - */ - public function setCookie($name, $val, $params = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('setCookie', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Grabs a cookie value. - * You can set additional cookie params like `domain`, `path` in array passed as last argument. - * - * @param $cookie - * - * @param array $params - * @return mixed - * @see \Codeception\Lib\InnerBrowser::grabCookie() - */ - public function grabCookie($name, $params = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('grabCookie', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that a cookie with the given name is set. - * You can set additional cookie params like `domain`, `path` as array passed in last argument. - * - * ``` php - * seeCookie('PHPSESSID'); - * ?> - * ``` - * - * @param $cookie - * @param array $params - * @return mixed - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeCookie() - */ - public function canSeeCookie($name, $params = null) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeCookie', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that a cookie with the given name is set. - * You can set additional cookie params like `domain`, `path` as array passed in last argument. - * - * ``` php - * seeCookie('PHPSESSID'); - * ?> - * ``` - * - * @param $cookie - * @param array $params - * @return mixed - * @see \Codeception\Lib\InnerBrowser::seeCookie() - */ - public function seeCookie($name, $params = null) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeCookie', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that there isn't a cookie with the given name. - * You can set additional cookie params like `domain`, `path` as array passed in last argument. - * - * @param $cookie - * - * @param array $params - * @return mixed - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::dontSeeCookie() - */ - public function cantSeeCookie($name, $params = null) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCookie', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that there isn't a cookie with the given name. - * You can set additional cookie params like `domain`, `path` as array passed in last argument. - * - * @param $cookie - * - * @param array $params - * @return mixed - * @see \Codeception\Lib\InnerBrowser::dontSeeCookie() - */ - public function dontSeeCookie($name, $params = null) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeCookie', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Unsets cookie with the given name. - * You can set additional cookie params like `domain`, `path` in array passed as last argument. - * - * @param $cookie - * - * @param array $params - * @return mixed - * @see \Codeception\Lib\InnerBrowser::resetCookie() - */ - public function resetCookie($name, $params = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('resetCookie', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the given element exists on the page and is visible. - * You can also specify expected attributes of this element. - * - * ``` php - * seeElement('.error'); - * $I->seeElement('//form/input[1]'); - * $I->seeElement('input', ['name' => 'login']); - * $I->seeElement('input', ['value' => '123456']); - * - * // strict locator in first arg, attributes in second - * $I->seeElement(['css' => 'form input'], ['name' => 'login']); - * ?> - * ``` - * - * @param $selector - * @param array $attributes - * @return - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeElement() - */ - public function canSeeElement($selector, $attributes = null) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeElement', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the given element exists on the page and is visible. - * You can also specify expected attributes of this element. - * - * ``` php - * seeElement('.error'); - * $I->seeElement('//form/input[1]'); - * $I->seeElement('input', ['name' => 'login']); - * $I->seeElement('input', ['value' => '123456']); - * - * // strict locator in first arg, attributes in second - * $I->seeElement(['css' => 'form input'], ['name' => 'login']); - * ?> - * ``` - * - * @param $selector - * @param array $attributes - * @return - * @see \Codeception\Lib\InnerBrowser::seeElement() - */ - public function seeElement($selector, $attributes = null) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeElement', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the given element is invisible or not present on the page. - * You can also specify expected attributes of this element. - * - * ``` php - * dontSeeElement('.error'); - * $I->dontSeeElement('//form/input[1]'); - * $I->dontSeeElement('input', ['name' => 'login']); - * $I->dontSeeElement('input', ['value' => '123456']); - * ?> - * ``` - * - * @param $selector - * @param array $attributes - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::dontSeeElement() - */ - public function cantSeeElement($selector, $attributes = null) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeElement', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the given element is invisible or not present on the page. - * You can also specify expected attributes of this element. - * - * ``` php - * dontSeeElement('.error'); - * $I->dontSeeElement('//form/input[1]'); - * $I->dontSeeElement('input', ['name' => 'login']); - * $I->dontSeeElement('input', ['value' => '123456']); - * ?> - * ``` - * - * @param $selector - * @param array $attributes - * @see \Codeception\Lib\InnerBrowser::dontSeeElement() - */ - public function dontSeeElement($selector, $attributes = null) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeElement', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that there are a certain number of elements matched by the given locator on the page. - * - * ``` php - * seeNumberOfElements('tr', 10); - * $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements - * ?> - * ``` - * @param $selector - * @param mixed $expected: - * - string: strict number - * - array: range of numbers [0,10] - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeNumberOfElements() - */ - public function canSeeNumberOfElements($selector, $expected) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberOfElements', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that there are a certain number of elements matched by the given locator on the page. - * - * ``` php - * seeNumberOfElements('tr', 10); - * $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements - * ?> - * ``` - * @param $selector - * @param mixed $expected: - * - string: strict number - * - array: range of numbers [0,10] - * @see \Codeception\Lib\InnerBrowser::seeNumberOfElements() - */ - public function seeNumberOfElements($selector, $expected) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeNumberOfElements', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the given option is selected. - * - * ``` php - * seeOptionIsSelected('#form input[name=payment]', 'Visa'); - * ?> - * ``` - * - * @param $selector - * @param $optionText - * - * @return mixed - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected() - */ - public function canSeeOptionIsSelected($select, $optionText) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeOptionIsSelected', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the given option is selected. - * - * ``` php - * seeOptionIsSelected('#form input[name=payment]', 'Visa'); - * ?> - * ``` - * - * @param $selector - * @param $optionText - * - * @return mixed - * @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected() - */ - public function seeOptionIsSelected($select, $optionText) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeOptionIsSelected', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the given option is not selected. - * - * ``` php - * dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); - * ?> - * ``` - * - * @param $selector - * @param $optionText - * - * @return mixed - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected() - */ - public function cantSeeOptionIsSelected($select, $optionText) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeOptionIsSelected', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the given option is not selected. - * - * ``` php - * dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); - * ?> - * ``` - * - * @param $selector - * @param $optionText - * - * @return mixed - * @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected() - */ - public function dontSeeOptionIsSelected($select, $optionText) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeOptionIsSelected', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Asserts that current page has 404 response status code. - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seePageNotFound() - */ - public function canSeePageNotFound() { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seePageNotFound', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Asserts that current page has 404 response status code. - * @see \Codeception\Lib\InnerBrowser::seePageNotFound() - */ - public function seePageNotFound() { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seePageNotFound', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that response code is equal to value provided. - * - * @param $code - * - * @return mixed - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeResponseCodeIs() - */ - public function canSeeResponseCodeIs($code) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseCodeIs', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that response code is equal to value provided. - * - * @param $code - * - * @return mixed - * @see \Codeception\Lib\InnerBrowser::seeResponseCodeIs() - */ - public function seeResponseCodeIs($code) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeResponseCodeIs', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the page title contains the given string. - * - * ``` php - * seeInTitle('Blog - Post #1'); - * ?> - * ``` - * - * @param $title - * - * @return mixed - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::seeInTitle() - */ - public function canSeeInTitle($title) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeInTitle', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the page title contains the given string. - * - * ``` php - * seeInTitle('Blog - Post #1'); - * ?> - * ``` - * - * @param $title - * - * @return mixed - * @see \Codeception\Lib\InnerBrowser::seeInTitle() - */ - public function seeInTitle($title) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeInTitle', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the page title does not contain the given string. - * - * @param $title - * - * @return mixed - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Lib\InnerBrowser::dontSeeInTitle() - */ - public function cantSeeInTitle($title) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInTitle', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that the page title does not contain the given string. - * - * @param $title - * - * @return mixed - * @see \Codeception\Lib\InnerBrowser::dontSeeInTitle() - */ - public function dontSeeInTitle($title) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeInTitle', func_get_args())); - } -} diff --git a/tests/codeception/acceptance/CISLoginPageCept.php b/tests/codeception/acceptance/CISLoginPageCept.php deleted file mode 100644 index 14668afa1..000000000 --- a/tests/codeception/acceptance/CISLoginPageCept.php +++ /dev/null @@ -1,6 +0,0 @@ -wantTo('CIS Startseite Testen'); -//$I->amOnPage('/cis/index.html'); -//$I->see('Powered by FH Complete'); -?> diff --git a/tests/codeception/acceptance/_bootstrap.php b/tests/codeception/acceptance/_bootstrap.php deleted file mode 100644 index 8a8855580..000000000 --- a/tests/codeception/acceptance/_bootstrap.php +++ /dev/null @@ -1,2 +0,0 @@ -scenario->runStep(new \Codeception\Step\Condition('amInPath', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Opens a file and stores it's content. - * - * Usage: - * - * ``` php - * openFile('composer.json'); - * $I->seeInThisFile('codeception/codeception'); - * ?> - * ``` - * - * @param $filename - * @see \Codeception\Module\Filesystem::openFile() - */ - public function openFile($filename) { - return $this->scenario->runStep(new \Codeception\Step\Action('openFile', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Deletes a file - * - * ``` php - * deleteFile('composer.lock'); - * ?> - * ``` - * - * @param $filename - * @see \Codeception\Module\Filesystem::deleteFile() - */ - public function deleteFile($filename) { - return $this->scenario->runStep(new \Codeception\Step\Action('deleteFile', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Deletes directory with all subdirectories - * - * ``` php - * deleteDir('vendor'); - * ?> - * ``` - * - * @param $dirname - * @see \Codeception\Module\Filesystem::deleteDir() - */ - public function deleteDir($dirname) { - return $this->scenario->runStep(new \Codeception\Step\Action('deleteDir', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Copies directory with all contents - * - * ``` php - * copyDir('vendor','old_vendor'); - * ?> - * ``` - * - * @param $src - * @param $dst - * @see \Codeception\Module\Filesystem::copyDir() - */ - public function copyDir($src, $dst) { - return $this->scenario->runStep(new \Codeception\Step\Action('copyDir', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks If opened file has `text` in it. - * - * Usage: - * - * ``` php - * openFile('composer.json'); - * $I->seeInThisFile('codeception/codeception'); - * ?> - * ``` - * - * @param $text - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Module\Filesystem::seeInThisFile() - */ - public function canSeeInThisFile($text) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeInThisFile', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks If opened file has `text` in it. - * - * Usage: - * - * ``` php - * openFile('composer.json'); - * $I->seeInThisFile('codeception/codeception'); - * ?> - * ``` - * - * @param $text - * @see \Codeception\Module\Filesystem::seeInThisFile() - */ - public function seeInThisFile($text) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeInThisFile', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks the strict matching of file contents. - * Unlike `seeInThisFile` will fail if file has something more than expected lines. - * Better to use with HEREDOC strings. - * Matching is done after removing "\r" chars from file content. - * - * ``` php - * openFile('process.pid'); - * $I->seeFileContentsEqual('3192'); - * ?> - * ``` - * - * @param $text - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Module\Filesystem::seeFileContentsEqual() - */ - public function canSeeFileContentsEqual($text) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeFileContentsEqual', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks the strict matching of file contents. - * Unlike `seeInThisFile` will fail if file has something more than expected lines. - * Better to use with HEREDOC strings. - * Matching is done after removing "\r" chars from file content. - * - * ``` php - * openFile('process.pid'); - * $I->seeFileContentsEqual('3192'); - * ?> - * ``` - * - * @param $text - * @see \Codeception\Module\Filesystem::seeFileContentsEqual() - */ - public function seeFileContentsEqual($text) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeFileContentsEqual', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks If opened file doesn't contain `text` in it - * - * ``` php - * openFile('composer.json'); - * $I->dontSeeInThisFile('codeception/codeception'); - * ?> - * ``` - * - * @param $text - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Module\Filesystem::dontSeeInThisFile() - */ - public function cantSeeInThisFile($text) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInThisFile', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks If opened file doesn't contain `text` in it - * - * ``` php - * openFile('composer.json'); - * $I->dontSeeInThisFile('codeception/codeception'); - * ?> - * ``` - * - * @param $text - * @see \Codeception\Module\Filesystem::dontSeeInThisFile() - */ - public function dontSeeInThisFile($text) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeInThisFile', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Deletes a file - * @see \Codeception\Module\Filesystem::deleteThisFile() - */ - public function deleteThisFile() { - return $this->scenario->runStep(new \Codeception\Step\Action('deleteThisFile', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks if file exists in path. - * Opens a file when it's exists - * - * ``` php - * seeFileFound('UserModel.php','app/models'); - * ?> - * ``` - * - * @param $filename - * @param string $path - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Module\Filesystem::seeFileFound() - */ - public function canSeeFileFound($filename, $path = null) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('seeFileFound', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks if file exists in path. - * Opens a file when it's exists - * - * ``` php - * seeFileFound('UserModel.php','app/models'); - * ?> - * ``` - * - * @param $filename - * @param string $path - * @see \Codeception\Module\Filesystem::seeFileFound() - */ - public function seeFileFound($filename, $path = null) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('seeFileFound', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks if file does not exists in path - * - * @param $filename - * @param string $path - * Conditional Assertion: Test won't be stopped on fail - * @see \Codeception\Module\Filesystem::dontSeeFileFound() - */ - public function cantSeeFileFound($filename, $path = null) { - return $this->scenario->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeFileFound', func_get_args())); - } - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks if file does not exists in path - * - * @param $filename - * @param string $path - * @see \Codeception\Module\Filesystem::dontSeeFileFound() - */ - public function dontSeeFileFound($filename, $path = null) { - return $this->scenario->runStep(new \Codeception\Step\Assertion('dontSeeFileFound', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Erases directory contents - * - * ``` php - * cleanDir('logs'); - * ?> - * ``` - * - * @param $dirname - * @see \Codeception\Module\Filesystem::cleanDir() - */ - public function cleanDir($dirname) { - return $this->scenario->runStep(new \Codeception\Step\Action('cleanDir', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Saves contents to file - * - * @param $filename - * @param $contents - * @see \Codeception\Module\Filesystem::writeToFile() - */ - public function writeToFile($filename, $contents) { - return $this->scenario->runStep(new \Codeception\Step\Action('writeToFile', func_get_args())); - } -} diff --git a/tests/codeception/functional/_bootstrap.php b/tests/codeception/functional/_bootstrap.php deleted file mode 100644 index 8a8855580..000000000 --- a/tests/codeception/functional/_bootstrap.php +++ /dev/null @@ -1,2 +0,0 @@ -errormsg=true; - $this->assertTrue($bc->getErrorMsg()); - } - -} diff --git a/tests/codeception/unit/UnitTester.php b/tests/codeception/unit/UnitTester.php deleted file mode 100644 index 1b95ec3d2..000000000 --- a/tests/codeception/unit/UnitTester.php +++ /dev/null @@ -1,268 +0,0 @@ -scenario->runStep(new \Codeception\Step\Action('assertEquals', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that two variables are not equal - * - * @param $expected - * @param $actual - * @param string $message - * @see \Codeception\Module\Asserts::assertNotEquals() - */ - public function assertNotEquals($expected, $actual, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertNotEquals', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that expected is greater than actual - * - * @param $expected - * @param $actual - * @param string $message - * @see \Codeception\Module\Asserts::assertGreaterThan() - */ - public function assertGreaterThan($expected, $actual, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThan', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * @deprecated - * @see \Codeception\Module\Asserts::assertGreaterThen() - */ - public function assertGreaterThen($expected, $actual, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThen', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that expected is greater or equal than actual - * - * @param $expected - * @param $actual - * @param string $message - * @see \Codeception\Module\Asserts::assertGreaterThanOrEqual() - */ - public function assertGreaterThanOrEqual($expected, $actual, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThanOrEqual', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * @deprecated - * @see \Codeception\Module\Asserts::assertGreaterThenOrEqual() - */ - public function assertGreaterThenOrEqual($expected, $actual, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertGreaterThenOrEqual', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that expected is less than actual - * - * @param $expected - * @param $actual - * @param string $message - * @see \Codeception\Module\Asserts::assertLessThan() - */ - public function assertLessThan($expected, $actual, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertLessThan', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that expected is less or equal than actual - * - * @param $expected - * @param $actual - * @param string $message - * @see \Codeception\Module\Asserts::assertLessThanOrEqual() - */ - public function assertLessThanOrEqual($expected, $actual, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertLessThanOrEqual', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that haystack contains needle - * - * @param $needle - * @param $haystack - * @param string $message - * @see \Codeception\Module\Asserts::assertContains() - */ - public function assertContains($needle, $haystack, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertContains', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that haystack doesn't contain needle. - * - * @param $needle - * @param $haystack - * @param string $message - * @see \Codeception\Module\Asserts::assertNotContains() - */ - public function assertNotContains($needle, $haystack, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertNotContains', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that variable is empty. - * - * @param $actual - * @param string $message - * @see \Codeception\Module\Asserts::assertEmpty() - */ - public function assertEmpty($actual, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertEmpty', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that variable is not empty. - * - * @param $actual - * @param string $message - * @see \Codeception\Module\Asserts::assertNotEmpty() - */ - public function assertNotEmpty($actual, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertNotEmpty', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that variable is NULL - * - * @param $actual - * @param string $message - * @see \Codeception\Module\Asserts::assertNull() - */ - public function assertNull($actual, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertNull', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that variable is not NULL - * - * @param $actual - * @param string $message - * @see \Codeception\Module\Asserts::assertNotNull() - */ - public function assertNotNull($actual, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertNotNull', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that condition is positive. - * - * @param $condition - * @param string $message - * @see \Codeception\Module\Asserts::assertTrue() - */ - public function assertTrue($condition, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertTrue', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Checks that condition is negative. - * - * @param $condition - * @param string $message - * @see \Codeception\Module\Asserts::assertFalse() - */ - public function assertFalse($condition, $message = null) { - return $this->scenario->runStep(new \Codeception\Step\Action('assertFalse', func_get_args())); - } - - - /** - * [!] Method is generated. Documentation taken from corresponding module. - * - * Fails the test with message. - * - * @param $message - * @see \Codeception\Module\Asserts::fail() - */ - public function fail($message) { - return $this->scenario->runStep(new \Codeception\Step\Action('fail', func_get_args())); - } -} diff --git a/tests/codeception/unit/_bootstrap.php b/tests/codeception/unit/_bootstrap.php deleted file mode 100644 index 8a8855580..000000000 --- a/tests/codeception/unit/_bootstrap.php +++ /dev/null @@ -1,2 +0,0 @@ - Date: Wed, 28 Sep 2016 11:21:14 +0200 Subject: [PATCH 051/140] phpC(d)I fixes III --- phpci.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/phpci.yml b/phpci.yml index 08ed79f51..f945cf6e3 100644 --- a/phpci.yml +++ b/phpci.yml @@ -8,10 +8,6 @@ build_settings: setup: test: - lint: - directories: - - "application/" - recursive: true codeception: config: "tests/codeception/" path: "tests/codeception/_output/" From bb541041119a80bb6b35b043d1cb9f244402648f Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 28 Sep 2016 13:30:46 +0200 Subject: [PATCH 052/140] =?UTF-8?q?Caldav=20Schnittstelle=20korrigiert=20-?= =?UTF-8?q?=20Fehler=20behoben=20bei=20dem=20Reservierungen=20nicht=20korr?= =?UTF-8?q?ekt=20angezeigt=20wurden=20wenn=20diese=20in=20der=20Woche=20de?= =?UTF-8?q?r=20Zeitumstellung=20liegen=20-=20Fehler=20behoben=20wodurch=20?= =?UTF-8?q?es=20zu=20doppelten=20Eintr=C3=A4gen=20im=20Kalender=20kam=20we?= =?UTF-8?q?nn=20sich=20die=20Endezeit=20eines=20Termines=20=C3=A4ndert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/datum.class.php | 61 +++++++++-------- include/wochenplan.class.php | 6 +- webdav/Caldav_Backend.php | 126 ++++++++++++++++++----------------- 3 files changed, 97 insertions(+), 96 deletions(-) diff --git a/include/datum.class.php b/include/datum.class.php index bfeddc654..7440e9960 100644 --- a/include/datum.class.php +++ b/include/datum.class.php @@ -23,7 +23,7 @@ class datum { public $ts_day=86400; // Timestamp eines Tages - + /** * Konstruktor * @@ -103,13 +103,12 @@ class datum */ public function jump_week($datum, $wochen) { - $stunde_vor=date("G",$datum); - // Eine Woche sind 604800 Sekunden - $datum+=604800*$wochen; - $stunde_nach=date("G",$datum); - if ($stunde_nach!=$stunde_vor) - $datum+=3600; - return $datum; + $days = $wochen * 7; + + $datetime=new DateTime(); + $datetime->setTimestamp($datum); + $datetime->modify($days.' day'); + return $datetime->format("U"); } /** @@ -159,7 +158,7 @@ class datum else return false; } - + /** * Zieht ein Datum von einem anderen ab, und gibt die differenz in Tagen zurueck (mit Vorzeichen) * @param $datum1 @@ -196,7 +195,7 @@ class datum if($start=='' && $ende!='' && $dateende>=$dateref) return true; - // Ende nicht gesetzt; Start gesetzt + // Ende nicht gesetzt; Start gesetzt if($ende=='' && $start!='' && $datestart<=$dateref) return true; @@ -237,7 +236,7 @@ class datum return $h1.':'.$m1; } - + /** * Subtrahiert 2 Zeiten ($zeit1-$zeit2) Stunde:Minute * Es liefert keine Uhrzeit zurueck sondern Stunden und Minuten @@ -268,7 +267,7 @@ class datum return $h1.':'.$m1; } - + /** * Prueft und Liefert ein Datum im angegeben Format * fuer die Formatierung wird die Funktion formatDatum verwendet @@ -278,9 +277,9 @@ class datum * Eintraege wie zB 'last Monday' oder 'a' auch in ein Datum umgewandelt werden. * @return Formatierten Timestamp wenn ok, false im Fehlerfall */ - function checkformatDatum($datum, $format='Y-m-d H:i:s', $strict=false) + function checkformatDatum($datum, $format='Y-m-d H:i:s', $strict=false) { - + @list($day, $month, $year) = @explode(".", $datum); if (@checkdate($month, $day, $year)) return $this->formatDatum($datum, $format, $strict); @@ -293,7 +292,7 @@ class datum @list($year, $month, $day) = @explode("-", $datum); if (@checkdate($month, $day, $year)) return $this->formatDatum($datum, $format, $strict); - + if (strlen($datum)==6) { $year="20".substr($datum,0,2); @@ -301,7 +300,7 @@ class datum $day=substr($datum,4,2); if (@checkdate($month, $day, $year)) return $this->formatDatum($datum, $format, $strict); - } + } else if (strlen($datum)==8) { $year=substr($datum,0,4); @@ -309,15 +308,15 @@ class datum $day=substr($datum, 6,2); if (@checkdate($month, $day, $year)) return $this->formatDatum($datum, $format, $strict); - - $year=substr($datum,5,4); + + $year=substr($datum,5,4); $month=substr($datum,3,2); $day=substr($datum, 0,2); if (@checkdate($month, $day, $year)) return $this->formatDatum($datum, $format, $strict); - } - return false; - } + } + return false; + } /** @@ -334,18 +333,18 @@ class datum { if(trim($datum)=='') return ''; - + $ts=''; $error=false; - + //2008-12-31 if(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$datum, $regs)) $ts = mktime(0,0,0,$regs[2],$regs[3],$regs[1]); - + //2008-12-31 12:30 if(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2})",$datum, $regs)) $ts = mktime($regs[4],$regs[5],0,$regs[2],$regs[3],$regs[1]); - + //2008-12-31 12:30:15 if(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})",$datum, $regs)) $ts = mktime($regs[4],$regs[5],$regs[6],$regs[2],$regs[3],$regs[1]); @@ -355,20 +354,20 @@ class datum //1.12.2008 if(mb_ereg("([0-9]{1,2}).([0-9]{1,2}).([0-9]{4})",$datum, $regs)) $ts = mktime(0,0,0,$regs[2],$regs[1],$regs[3]); - + //1.12.2008 12:30 if(mb_ereg("([0-9]{1,2}).([0-9]{1,2}).([0-9]{4}) ([0-9]{2}):([0-9]{2})",$datum, $regs)) $ts = mktime($regs[4],$regs[5],0,$regs[2],$regs[1],$regs[3]); - + //1.12.2008 12:30:15 if(mb_ereg("([0-9]{1,2}).([0-9]{1,2}).([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2})",$datum, $regs)) $ts = mktime($regs[4],$regs[5],$regs[6],$regs[2],$regs[1],$regs[3]); } - + if($ts=='' && !$strict) { $ts = strtotime($datum); - + if(!$ts || $ts==-1) { //wenn strtotime fehlschlaegt liefert diese -1 zurueck, ab php5.1.0 jedoch false @@ -378,9 +377,9 @@ class datum if($ts!='' && !$error) return date($format, $ts); - + return false; } - + } ?> diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php index a76fdaaf4..aa9ec7b5a 100644 --- a/include/wochenplan.class.php +++ b/include/wochenplan.class.php @@ -2384,7 +2384,7 @@ class wochenplan extends basis_db /** * Unterricht der ueber mehrere Stunden geht wird nicht einzeln Exportiert, - * sondern zusammengeblockt. (in maximal 4er Bloecke) + * sondern zusammengeblockt. * * Es wird nur ein Eintrag geschrieben, die restlichen werden uebersprungen. * Vor dem Ueberspringen des Eintrages werden jedoch noch die dazu Gruppierten Eintraege @@ -2499,7 +2499,7 @@ class wochenplan extends basis_db $end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums echo $this->crlf.'BEGIN:VEVENT'.$this->crlf - .'UID:'.'FH'.str_replace(',',' ',$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$this->crlf) + .'UID:'.'FH'.str_replace(',',' ',$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical.$this->crlf) .'SUMMARY:'.str_replace(',',' ',$lehrfach[$idx].' '.$this->std_plan[$i][$j][$idx]->ort.' - '.$lvb.$this->crlf) .'DESCRIPTION:'.str_replace(',',' ',$lehrfach[$idx].'\n'.$this->std_plan[$i][$j][$idx]->lektor.'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?'\n'.$this->std_plan[$i][$j][$idx]->anmerkung:'').$this->crlf) .'LOCATION:'.$this->std_plan[$i][$j][$idx]->ort.$this->crlf @@ -2541,7 +2541,7 @@ class wochenplan extends basis_db $start_date_time_ical = $sda[2].$sda[1].$sda[0].'T'.sprintf('%02s',($sta[0])).$sta[1].$sta[2]; //neu gruppieren der Startzeit und des Startdatums $end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums - $UID = 'FH'.$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical; + $UID = 'FH'.$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical; $Summary = $lehrfach[$idx].' '.$this->std_plan[$i][$j][$idx]->ort.' - '.$lvb; $description = $lehrfach[$idx].'\n'.$this->std_plan[$i][$j][$idx]->lektor.'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort; diff --git a/webdav/Caldav_Backend.php b/webdav/Caldav_Backend.php index d107341d2..bcb8edcb7 100644 --- a/webdav/Caldav_Backend.php +++ b/webdav/Caldav_Backend.php @@ -2,17 +2,18 @@ require_once(dirname(__FILE__).'/../include/wochenplan.class.php'); require_once(dirname(__FILE__).'/../include/functions.inc.php'); require_once(dirname(__FILE__).'/../include/mitarbeiter.class.php'); +require_once(dirname(__FILE__).'/../include/datum.class.php'); /** * CalDAV backend */ -class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend +class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend { /** - * Creates the backend - * + * Creates the backend + * * @param AuthBackend $auth */ - public function __construct($auth) + public function __construct($auth) { $this->auth = $auth; } @@ -31,18 +32,18 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend * Every project is an array with the following keys: * * id, a unique id that will be used by other functions to modify the * calendar. This can be the same as the uri or a database key. - * * uri, which the basename of the uri with which the calendar is + * * uri, which the basename of the uri with which the calendar is * accessed. * * principalUri. The owner of the calendar. Almost always the same as * principalUri passed to this method. * * Furthermore it can contain webdav properties in clark notation. A very - * common one is '{DAV:}displayname'. + * common one is '{DAV:}displayname'. * - * @param string $principalUri - * @return array + * @param string $principalUri + * @return array */ - public function getCalendarsForUser($principalUri) + public function getCalendarsForUser($principalUri) { //error_log("Caldav_Backend.php/getCalendarsForUser($principalUri)"); //$user = $this->getUser(); @@ -75,7 +76,7 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend * @param string $calendarUri * @param array $properties */ - public function createCalendar($principalUri,$calendarUri, array $properties) + public function createCalendar($principalUri,$calendarUri, array $properties) { throw new \Sabre\DAV\Exception('Not Implemented'); } @@ -108,43 +109,44 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend * ) * ) * - * In this example it was forbidden to update {DAV:}displayname. + * In this example it was forbidden to update {DAV:}displayname. * (403 Forbidden), which in turn also caused {DAV:}owner to fail * (424 Failed Dependency) because the request needs to be atomic. * * @param string $calendarId - * @param array $mutations - * @return bool|array + * @param array $mutations + * @return bool|array */ - public function updateCalendar($calendarId, array $mutations) + public function updateCalendar($calendarId, array $mutations) { return false; } /** - * Delete a calendar and all it's objects - * - * @param string $calendarId + * Delete a calendar and all it's objects + * + * @param string $calendarId * @return void */ - public function deleteCalendar($calendarId) + public function deleteCalendar($calendarId) { throw new \Sabre\DAV\Exception('Not Implemented'); } - + public function getCalendarData($user, $objectUri=null) { + $datum_obj = new datum(); $starttime = microtime(true); $bn = new benutzer(); if(!$bn->load($user)) die('User invalid'); - + if(check_lektor($user)) $type='lektor'; else $type='student'; - + // Stundenplanobjekt erzeugen $stdplan = new wochenplan($type); $stdplan->crlf="\n"; @@ -156,7 +158,7 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend } if(!is_null($objectUri)) { - $unr = mb_substr($objectUri, mb_strpos($objectUri,'-')+1); + $unr = mb_substr($objectUri, (mb_strpos($objectUri,'-')+1), mb_strpos($objectUri,'@')-(mb_strpos($objectUri,'-')+1)); $dtstart = mb_substr($objectUri,0,mb_strpos($objectUri,'-')); if(mb_strlen($dtstart)==15) @@ -170,14 +172,14 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend $sekunde = mb_substr($dtstart,13,2); $begin = mktime($stunde, $minute, $sekunde, $monat, $tag-1, $jahr); $ende = mktime($stunde, $minute, $sekunde, $monat, $tag+1, $jahr); - //error_log("getCalendarData unr: $unr dtstart: $dtstart"); + //error_log("getCalendarData unr: $unr dtstart: $dtstart size:".(mb_strlen($objectUri)-mb_strpos($objectUri,'@'))); //error_log($begin.'/'.$ende); } else { //error_log("dtstart laenge abnormal: $dtstart"); $begin = mktime(0,0,0,date('m'),date('d')-14,date('Y')); - $ende = mktime(0,0,0,date('m')+6,date('d'),date('Y')); + $ende = mktime(0,0,0,date('m')+6,date('d'),date('Y')); } } else @@ -195,10 +197,10 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend $i++; if(!date("w",$begin)) $begin=jump_day($begin,1); - + $stdplan->init_stdplan(); $datum=$begin; - $begin+=604800; // eine Woche + $begin = $datum_obj->jump_week($begin,1); // Stundenplan einer Woche laden if(!$stdplan->load_week($datum,$db_stpl_table)) @@ -224,7 +226,7 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend //error_log("\n\nDATA".print_r($data,true)); //error_log("getCalendarData time:".($endtime-$starttime)); //$data.="\nEND:VCALENDAR"; - return $data; + return $data; } public function makeCal($event) { @@ -250,28 +252,28 @@ END:STANDARD END:VTIMEZONE\n".$event."\nEND:VCALENDAR"; } /** - * Returns all calendar objects within a calendar. + * Returns all calendar objects within a calendar. * * Every item contains an array with the following keys: * * id - unique identifier which will be used for subsequent updates * * calendardata - The iCalendar-compatible calnedar data * * uri - a unique key which will be used to construct the uri. This can be any arbitrary string. * * lastmodified - a timestamp of the last modification time - * * etag - An arbitrary string, surrounded by double-quotes. (e.g.: + * * etag - An arbitrary string, surrounded by double-quotes. (e.g.: * ' "abcdef"') * * calendarid - The calendarid as it was passed to this function. * - * Note that the etag is optional, but it's highly encouraged to return for + * Note that the etag is optional, but it's highly encouraged to return for * speed reasons. * - * The calendardata is also optional. If it's not returned - * 'getCalendarObject' will be called later, which *is* expected to return + * The calendardata is also optional. If it's not returned + * 'getCalendarObject' will be called later, which *is* expected to return * calendardata. - * - * @param string $calendarId - * @return array + * + * @param string $calendarId + * @return array */ - public function getCalendarObjects($calendarId) + public function getCalendarObjects($calendarId) { //$user = $this->getUser(); $user = $calendarId; @@ -290,7 +292,7 @@ END:VTIMEZONE\n".$event."\nEND:VCALENDAR"; $return[] = array("id"=>$row['UID'], "calendardata"=>$this->makeCal($row['data']), - "uri"=>$uri, + "uri"=>$uri.'@'.md5($row['UID']), "lastmodified"=>$row['updateamum'], "etag"=>'"'.$row['UID'].'"', "calendarid"=>$calendarId); @@ -303,15 +305,15 @@ END:VTIMEZONE\n".$event."\nEND:VCALENDAR"; * Returns information from a single calendar object, based on it's object * uri. * - * The returned array must have the same keys as getCalendarObjects. The - * 'calendardata' object is required here though, while it's not required + * The returned array must have the same keys as getCalendarObjects. The + * 'calendardata' object is required here though, while it's not required * for getCalendarObjects. - * - * @param string $calendarId - * @param string $objectUri - * @return array + * + * @param string $calendarId + * @param string $objectUri + * @return array */ - public function getCalendarObject($calendarId,$objectUri) + public function getCalendarObject($calendarId,$objectUri) { //error_log("Caldav_Backend.php/getCalendarObject($calendarId, $objectUri)"); //$user = $this->getUser(); @@ -330,7 +332,7 @@ END:VTIMEZONE\n".$event."\nEND:VCALENDAR"; { $ret = array("id"=>$data['UID'], "calendardata"=>$this->makeCal($data['data']), - "uri"=>'principals/'.$user.'/LVPlan/'.$data['dtstart'].'-'.$data['unr'][0], + "uri"=>'principals/'.$user.'/LVPlan/'.$data['dtstart'].'-'.$data['unr'][0].'@'.md5($data['UID']), "lastmodified"=>$data['updateamum'], "etag"=>'"'.$data['UID'].'"', "calendarid"=>$calendarId); @@ -339,39 +341,39 @@ END:VTIMEZONE\n".$event."\nEND:VCALENDAR"; } /** - * Creates a new calendar object. - * - * @param string $calendarId - * @param string $objectUri - * @param string $calendarData + * Creates a new calendar object. + * + * @param string $calendarId + * @param string $objectUri + * @param string $calendarData * @return void */ - public function createCalendarObject($calendarId,$objectUri,$calendarData) + public function createCalendarObject($calendarId,$objectUri,$calendarData) { throw new \Sabre\DAV\Exception('Not Implemented'); } /** - * Updates an existing calendarobject, based on it's uri. - * - * @param string $calendarId - * @param string $objectUri - * @param string $calendarData + * Updates an existing calendarobject, based on it's uri. + * + * @param string $calendarId + * @param string $objectUri + * @param string $calendarData * @return void */ - public function updateCalendarObject($calendarId,$objectUri,$calendarData) + public function updateCalendarObject($calendarId,$objectUri,$calendarData) { throw new \Sabre\DAV\Exception('Not Implemented'); } /** - * Deletes an existing calendar object. - * - * @param string $calendarId - * @param string $objectUri + * Deletes an existing calendar object. + * + * @param string $calendarId + * @param string $objectUri * @return void */ - public function deleteCalendarObject($calendarId,$objectUri) + public function deleteCalendarObject($calendarId,$objectUri) { throw new Sabre\DAV\Exception('Not Implemented'); } From 1af4938ab247e68c3b73183ffc114ec06739a9da Mon Sep 17 00:00:00 2001 From: kindlm Date: Thu, 29 Sep 2016 17:51:36 +0200 Subject: [PATCH 053/140] Ampelsystem: New attribute "verpflichtend" - New attributes "verpflichtend"(mandatory) and "buttontext" in the ampelsystem - Verpflichtende Ampeln are shown as div-popup on the CIS every time the page refreshes till the notification is confirmed. - Text of the confirm-button is changeable (fallback to default-phrase) - Only the notifications of the current semester are shown by default ("show all" as button) --- cis/ampel.php | 68 +++++++- cis/index.php | 16 +- cis/private/tools/ampelleiteruebersicht.php | 36 +++- cis/private/tools/ampelverwaltung.php | 175 ++++++++++++++------ include/ampel.class.php | 73 ++++++-- include/sprache.class.php | 6 +- locale/de-AT/tools.php | 3 + locale/en-US/tools.php | 3 + system/dbupdate_3.2.php | 14 +- vilesci/stammdaten/ampel_details.php | 64 +++++-- vilesci/stammdaten/ampel_uebersicht.php | 2 + 11 files changed, 366 insertions(+), 94 deletions(-) diff --git a/cis/ampel.php b/cis/ampel.php index eeca6f603..27b4571d2 100755 --- a/cis/ampel.php +++ b/cis/ampel.php @@ -7,7 +7,20 @@ require_once('../include/phrasen.class.php'); $sprache = getSprache(); $p = new phrasen($sprache); +?> + + +loadUserAmpel($user); $rot=0; $gelb=0; + $verpflichtend = false; $datum = new datum(); foreach($ampel->result as $row) { @@ -23,16 +37,19 @@ if(is_user_logged_in()) $vlz = "-".$row->vorlaufzeit." day"; $ts_vorlaufzeit = strtotime($vlz, $ts_deadline); $ts_now = $datum->mktime_fromdate(date('Y-m-d')); - if($ts_deadline < $ts_now) { $rot++; + if ($row->verpflichtend == 't') + $verpflichtend = true; } else { if($ts_vorlaufzeit<=$ts_now && $ts_now<=$ts_deadline) { $gelb++; + if ($row->verpflichtend == 't') + $verpflichtend = true; } } } @@ -41,12 +58,53 @@ if(is_user_logged_in()) if($rot>0 || $gelb>0) { - echo ''; - if($rot>0 && $gelb==0) + // Wenn es eine verpflichtende Ampel gibt, das Pupup im CIS anzeigen + if ($verpflichtend == true) + { + echo ' '; + + echo ' '; + } + if($rot>0) echo ''.$p->t("tools/ampelsystem").'  |  '; - if($gelb>0 && $rot==0) + elseif($gelb>0) echo ''.$p->t("tools/ampelsystem").'  |  '; - echo ' '; } } else diff --git a/cis/index.php b/cis/index.php index ec8d08160..4d6453788 100644 --- a/cis/index.php +++ b/cis/index.php @@ -159,7 +159,7 @@ function loadampel() - +
      @@ -192,12 +192,14 @@ function loadampel()
      - - + + + +
      diff --git a/cis/private/tools/ampelleiteruebersicht.php b/cis/private/tools/ampelleiteruebersicht.php index f7a9ee7ad..2e6d1f326 100755 --- a/cis/private/tools/ampelleiteruebersicht.php +++ b/cis/private/tools/ampelleiteruebersicht.php @@ -99,6 +99,25 @@ if(isset($_POST['ampel_id'])) else $ampel_id = ''; +if (isset($_GET['ampel_benutzer_bestaetigt_id']) && isset($_GET['delete'])) +{ + if ($rechte->isBerechtigt('admin', null, 'suid')) + { + $delete_bestaetigung = new ampel(); + if($delete_bestaetigung->deleteAmpelBenutzer($_GET['ampel_benutzer_bestaetigt_id'])) + { + echo 'Ampelbestaetigung erfolgreich geloescht'; + } + else + { + $action='new'; + echo ''.$delete_bestaetigung->errormsg.''; + } + } +} + + +echo '

      '.($p->t('tools/ampelsystem')).'

      '; echo '
      '; echo $p->t('global/organisationseinheit').': + +
      '; + else + echo ''; + + } echo ''; } echo ''; diff --git a/cis/private/tools/ampelverwaltung.php b/cis/private/tools/ampelverwaltung.php index d83c01765..b8132c55d 100755 --- a/cis/private/tools/ampelverwaltung.php +++ b/cis/private/tools/ampelverwaltung.php @@ -25,11 +25,14 @@ require_once('../../../include/phrasen.class.php'); require_once('../../../include/benutzerfunktion.class.php'); require_once('../../../include/organisationseinheit.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/studiensemester.class.php'); $user = get_uid(); $sprache = getSprache(); $p = new phrasen($sprache); +$show = (isset($_GET['show'])?$_GET['show']:'aktuell'); + //Leiter OEs holen $benutzerfunktion = new benutzerfunktion(); $benutzerfunktion->getBenutzerFunktionen('Leitung', '', '', $user); @@ -54,6 +57,8 @@ if($rechte->isBerechtigt('basis/ampeluebersicht')) array_unique($oes); +$studiensemester = new studiensemester(); +$ss_akt = $studiensemester->getakt(); echo ' @@ -73,7 +78,8 @@ echo ' @@ -86,6 +92,10 @@ if(count($oes)!=0) echo '

      '.$p->t('tools/dasAmpelsystemIstEinErinnerungsystem').'

      '; +if ($show == 'aktuell') + echo '

      '.$p->t('tools/ampelAlleAnzeigen').'

      '; +else + echo '

      '.$p->t('tools/ampelNurAktuellesStudiensemester').'

      '; $datum_obj = new datum(); @@ -126,78 +136,135 @@ if($type=='bestaetigen' && is_numeric($ampel_id)) echo $message; $ampel = new ampel(); -$ampel->loadUserAmpel($user, true, true); +$ampel->loadUserAmpel($user, false, true); echo ' - + '; +$beginn = new studiensemester($ss_akt); foreach($ampel->result as $row) { - $ts_deadline = $datum_obj->mktime_fromdate($row->deadline); - $vlz = "-".$row->vorlaufzeit." day"; - $ts_vorlaufzeit = strtotime($vlz, $ts_deadline); - $ts_now = $datum_obj->mktime_fromdate(date('Y-m-d')); - - if($ts_vorlaufzeit<=$ts_now && $ts_now<=$ts_deadline) - $ampelstatus='gelb'; - elseif($ts_now>$ts_deadline) - $ampelstatus='rot'; - elseif($ts_now<$ts_deadline && $ts_vorlaufzeit>=$ts_now) - $ampelstatus='gruen'; - - if($bestaetigt = $ampel->isBestaetigt($user,$row->ampel_id)) - $ampelstatus=''; - - echo ''; - echo ''; + echo ''; + + echo ''; + $beschreibung = $row->beschreibung[$sprache]; + if($beschreibung=='' && isset($row->beschreibung[DEFAULT_LANGUAGE])) + $beschreibung = $row->beschreibung[DEFAULT_LANGUAGE]; + echo ''; + echo ''; + + // echo ""; + // echo ""; + // echo ""; + echo ''; } - echo $status; + elseif ($show == 'alle') + { + $ts_deadline = $datum_obj->mktime_fromdate($row->deadline); + $vlz = "-".$row->vorlaufzeit." day"; + $ts_vorlaufzeit = strtotime($vlz, $ts_deadline); + $ts_now = $datum_obj->mktime_fromdate(date('Y-m-d')); - echo ''; + if($ts_vorlaufzeit<=$ts_now && $ts_now<=$ts_deadline) + $ampelstatus='gelb'; + elseif($ts_now>$ts_deadline) + $ampelstatus='rot'; + elseif($ts_now<$ts_deadline && $ts_vorlaufzeit>=$ts_now) + $ampelstatus='gruen'; + + if($bestaetigt = $ampel->isBestaetigt($user,$row->ampel_id)) + $ampelstatus=''; + + echo ''; + echo ''; + + echo ''; + $beschreibung = $row->beschreibung[$sprache]; + if($beschreibung=='' && isset($row->beschreibung[DEFAULT_LANGUAGE])) + $beschreibung = $row->beschreibung[DEFAULT_LANGUAGE]; + echo ''; + echo ''; - echo ''; - $beschreibung = $row->beschreibung[$sprache]; - if($beschreibung=='' && isset($row->beschreibung[DEFAULT_LANGUAGE])) - $beschreibung = $row->beschreibung[DEFAULT_LANGUAGE]; - echo ''; - echo ''; - -// echo ""; -// echo ""; -// echo ""; - echo ''; + // echo ""; + // echo ""; + // echo ""; + echo ''; + } } echo '
      '.$p->t('tools/ampelErledigt').' '.$p->t('tools/ampelBeschreibung').' '.$p->t('tools/ampelDeadline').'
      '; - switch($ampelstatus) + //Nur Ampeln laden, die im aktuellen Studiensemester liegen + if ($show == 'aktuell' && $row->deadline>=$beginn->start) { - case 'rot': - $status= ''; - break; - case 'gelb': - $status= ''; - break; - case 'gruen': - $status= ''; - break; - default: - $status= ''; - break; + $ts_deadline = $datum_obj->mktime_fromdate($row->deadline); + $vlz = "-".$row->vorlaufzeit." day"; + $ts_vorlaufzeit = strtotime($vlz, $ts_deadline); + $ts_now = $datum_obj->mktime_fromdate(date('Y-m-d')); + + if($ts_vorlaufzeit<=$ts_now && $ts_now<=$ts_deadline) + $ampelstatus='gelb'; + elseif($ts_now>$ts_deadline) + $ampelstatus='rot'; + elseif($ts_now<$ts_deadline && $ts_vorlaufzeit>=$ts_now) + $ampelstatus='gruen'; + + if($bestaetigt = $ampel->isBestaetigt($user,$row->ampel_id)) + $ampelstatus=''; + + echo '
      '; + switch($ampelstatus) + { + case 'rot': + $status= ''; + break; + case 'gelb': + $status= ''; + break; + case 'gruen': + $status= ''; + break; + default: + $status= ''; + break; + } + echo $status; + + echo ''; + if(!$bestaetigt) + echo '
      '; + else + echo ''; + echo '
      verpflichtend=='t'?'style="background-color: #EF8A88"':'').'>'.$beschreibung.''.$datum_obj->formatDatum($row->deadline,'d.m.Y').'".date('d.m.Y',$ts_now)."".date('d.m.Y',$ts_vorlaufzeit)."".date('d.m.Y',$ts_deadline)."
      '; - if(!$bestaetigt) - //echo ''.$p->t('tools/ampelBestaetigen').''; - echo ''; - else - //echo $p->t('tools/ampelBestaetigt'); - //echo ''; - echo ''; - echo '
      '; + switch($ampelstatus) + { + case 'rot': + $status= ''; + break; + case 'gelb': + $status= ''; + break; + case 'gruen': + $status= ''; + break; + default: + $status= ''; + break; + } + echo $status; + + echo ''; + if(!$bestaetigt) + echo '
      '; + else + echo ''; + echo '
      verpflichtend=='t'?'style="background-color: #EF8A88"':'').'>'.$beschreibung.''.$datum_obj->formatDatum($row->deadline,'d.m.Y').''.$beschreibung.''.$datum_obj->formatDatum($row->deadline,'d.m.Y').'".date('d.m.Y',$ts_now)."".date('d.m.Y',$ts_vorlaufzeit)."".date('d.m.Y',$ts_deadline)."
      ".date('d.m.Y',$ts_now)."".date('d.m.Y',$ts_vorlaufzeit)."".date('d.m.Y',$ts_deadline)."
      '; diff --git a/include/ampel.class.php b/include/ampel.class.php index 964a5c418..7473cca87 100755 --- a/include/ampel.class.php +++ b/include/ampel.class.php @@ -38,6 +38,8 @@ class ampel extends basis_db public $vorlaufzeit; // smallint public $verfallszeit; // smallint public $email; // boolean + public $verpflichtend; // boolean + public $buttontext; // varchar(64)[] public $insertamum; // timestamp public $insertvon; // varchar(32) public $updateamum; // timestamp @@ -74,8 +76,9 @@ class ampel extends basis_db $sprache = new sprache(); $beschreibung = $sprache->getSprachQuery('beschreibung'); + $buttontext = $sprache->getSprachQuery('buttontext'); - $qry = "SELECT *,".$beschreibung." FROM public.tbl_ampel WHERE ampel_id=".$this->db_add_param($ampel_id, FHC_INTEGER); + $qry = "SELECT *,".$beschreibung.", ".$buttontext." FROM public.tbl_ampel WHERE ampel_id=".$this->db_add_param($ampel_id, FHC_INTEGER); if($result = $this->db_query($qry)) { @@ -89,6 +92,8 @@ class ampel extends basis_db $this->vorlaufzeit = $row->vorlaufzeit; $this->verfallszeit = $row->verfallszeit; $this->email = $row->email; + $this->verpflichtend = $row->verpflichtend; + $this->buttontext = $sprache->parseSprachResult('buttontext', $row); $this->insertamum = $row->insertamum; $this->insertvon = $row->insertvon; $this->updateamum = $row->updateamum; @@ -117,8 +122,9 @@ class ampel extends basis_db { $sprache = new sprache(); $beschreibung = $sprache->getSprachQuery('beschreibung'); + $buttontext = $sprache->getSprachQuery('buttontext'); - $qry = "SELECT *,".$beschreibung." FROM public.tbl_ampel"; + $qry = "SELECT *,".$beschreibung.", ".$buttontext." FROM public.tbl_ampel"; if($aktiv) { $qry .= " WHERE (NOW()>(deadline-(vorlaufzeit || ' days')::interval)::date)"; @@ -140,6 +146,8 @@ class ampel extends basis_db $obj->vorlaufzeit = $row->vorlaufzeit; $obj->verfallszeit = $row->verfallszeit; $obj->email = $this->db_parse_bool($row->email); + $obj->verpflichtend = $this->db_parse_bool($row->verpflichtend); + $obj->buttontext = $sprache->parseSprachResult('buttontext', $row); $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; @@ -212,20 +220,21 @@ class ampel extends basis_db /** * Laedt alle aktuellen Ampeln eines Users - * @param $user - * @param $zukuenftige_anzeigen + * @param string $user User, dessen Ampeln geladen werden sollen + * @param boolean $zukuenftige_anzeigen Default false * wenn true, werden alle zukuenftigen Ampeln geladen * wenn false, werden nur die Ampeln geladen die innerhalb der vorlaufzeit liegen - * @param $bestaetigt + * @param boolean $bestaetigt Default false * wenn true, werden alle Ampeln geladen - * wenn false, werden nur die Ampeln geladen die noch nicht bestaetigt wurden + * wenn false, werden nur die Ampeln geladen die noch NICHT bestaetigt wurden */ public function loadUserAmpel($user, $zukuenftige_anzeigen=false, $bestaetigt=false) { $sprache = new sprache(); $beschreibung = $sprache->getSprachQuery('beschreibung'); + $buttontext = $sprache->getSprachQuery('buttontext'); - $qry = "SELECT *,".$beschreibung." FROM public.tbl_ampel WHERE deadline+verfallszeit>now()"; + $qry = "SELECT *,".$beschreibung.", ".$buttontext." FROM public.tbl_ampel WHERE deadline+verfallszeit>now()"; if(!$zukuenftige_anzeigen) $qry.=" AND deadline-vorlaufzeitdb_query($qry)) { while($row = $this->db_fetch_object($result)) @@ -254,6 +263,8 @@ class ampel extends basis_db $obj->vorlaufzeit = $row->vorlaufzeit; $obj->verfallszeit = $row->verfallszeit; $obj->email = $row->email; + $obj->verpflichtend = $row->verpflichtend; + $obj->buttontext = $sprache->parseSprachResult('buttontext', $row); $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; @@ -315,19 +326,28 @@ class ampel extends basis_db $idx = sprache::$index_arr[$key]; $qry.=" beschreibung[$idx],"; } + foreach($this->buttontext as $key=>$value) + { + $idx = sprache::$index_arr[$key]; + $qry.=" buttontext[$idx],"; + } $qry.=" benutzer_select, deadline, - vorlaufzeit, verfallszeit, email, insertamum, insertvon , updateamum, updatevon) VALUES(". + vorlaufzeit, verfallszeit, email, verpflichtend, insertamum, insertvon , updateamum, updatevon) VALUES(". $this->db_add_param($this->kurzbz).','; reset($this->beschreibung); foreach($this->beschreibung as $key=>$value) $qry.=$this->db_add_param($value).','; + reset($this->buttontext); + foreach($this->buttontext as $key=>$value) + $qry.=$this->db_add_param($value).','; $qry .= $this->db_add_param($this->benutzer_select).','. $this->db_add_param($this->deadline).','. $this->db_add_param($this->vorlaufzeit).','. $this->db_add_param($this->verfallszeit).','. $this->db_add_param($this->email, FHC_BOOLEAN).','. + $this->db_add_param($this->verpflichtend, FHC_BOOLEAN).','. $this->db_add_param($this->insertamum).','. $this->db_add_param($this->insertvon).','. $this->db_add_param($this->updateamum).','. @@ -343,12 +363,19 @@ class ampel extends basis_db $idx = sprache::$index_arr[$key]; $qry.=' beschreibung['.$idx.'] = '.$this->db_add_param($value).','; } + reset($this->buttontext); + foreach($this->buttontext as $key=>$value) + { + $idx = sprache::$index_arr[$key]; + $qry.=' buttontext['.$idx.'] = '.$this->db_add_param($value).','; + } $qry.= ' benutzer_select = '.$this->db_add_param($this->benutzer_select).','. ' deadline = '.$this->db_add_param($this->deadline).','. ' vorlaufzeit = '.$this->db_add_param($this->vorlaufzeit).','. ' verfallszeit = '.$this->db_add_param($this->verfallszeit).','. ' email = '.$this->db_add_param($this->email, FHC_BOOLEAN).','. + ' verpflichtend = '.$this->db_add_param($this->verpflichtend, FHC_BOOLEAN).','. ' updateamum ='.$this->db_add_param($this->updateamum).','. ' updatevon ='.$this->db_add_param($this->updatevon). ' WHERE ampel_id='.$this->db_add_param($this->ampel_id, FHC_INTEGER).';'; @@ -414,6 +441,29 @@ class ampel extends basis_db } } + /** + * Loescht eine Bestaetigung einer Ampel + + * @param $ampel_id + */ + public function deleteAmpelBenutzer($ampel_benutzer_bestaetigt_id) + { + if(!is_numeric($ampel_benutzer_bestaetigt_id)) + { + $this->errormsg='ID ist ungueltig'; + return false; + } + $qry = "DELETE FROM public.tbl_ampel_benutzer_bestaetigt WHERE ampel_benutzer_bestaetigt_id=".$this->db_add_param($ampel_benutzer_bestaetigt_id); + + if($this->db_query($qry)) + return true; + else + { + $this->errormsg = 'Fehler beim Loeschen der Bestaetigung'; + return false; + } + } + /** * Bestaetigt die Ampel eines Users * @param $user @@ -446,6 +496,7 @@ class ampel extends basis_db { $sprache = new sprache(); $beschreibung = $sprache->getSprachQuery('beschreibung'); + $buttontext = $sprache->getSprachQuery('buttontext'); if(!is_numeric($ampel_id) && $ampel_id!='') { @@ -454,7 +505,7 @@ class ampel extends basis_db } // Ampeln holen - $qry = "SELECT *,".$beschreibung." FROM public.tbl_ampel"; + $qry = "SELECT *,".$beschreibung.", ".$buttontext." FROM public.tbl_ampel"; if($ampel_id!='') $qry.=" WHERE ampel_id=".$this->db_add_param($ampel_id, FHC_INTEGER); @@ -500,6 +551,8 @@ class ampel extends basis_db $obj->vorlaufzeit = $row->vorlaufzeit; $obj->verfallszeit = $row->verfallszeit; $obj->email = $row->email; + $obj->verpflichtend = $row->verpflichtend; + $obj->buttontext = $sprache->parseSprachResult('buttontext', $row); $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; diff --git a/include/sprache.class.php b/include/sprache.class.php index 74d866161..4bcc57212 100644 --- a/include/sprache.class.php +++ b/include/sprache.class.php @@ -85,15 +85,17 @@ class sprache extends basis_db /** * * Lädt alle verfügbaren Sprachen + * @param boolean $content Default:null Ist die Sprache relevant fuer die Sprachauswahl + * @param string $order Default:sprache Spalte, nach der die Ergebnisse sortiert werden * @return true bei Erfolg, false wenn ein Fehler aufgetreten ist. */ - public function getAll($content=null) + public function getAll($content=null, $order='sprache') { $qry = "SELECT *,".$this->getSprachQuery('bezeichnung')." FROM public.tbl_sprache"; if(!is_null($content)) $qry.= " WHERE content=".$this->db_add_param($content, FHC_BOOLEAN); - $qry.=" ORDER BY sprache"; + $qry.=" ORDER BY ".$order; if(!$this->db_query($qry)) { diff --git a/locale/de-AT/tools.php b/locale/de-AT/tools.php index afbbb25ea..e312051e8 100755 --- a/locale/de-AT/tools.php +++ b/locale/de-AT/tools.php @@ -49,6 +49,8 @@ $this->phrasen['tools/ampelBereitsBestaetigt']='Diese Ampel wurde bereits bestä $this->phrasen['tools/dasAmpelsystemIstEinErinnerungsystem']='Das Ampelsystem ist ein ERINNERUNGS- und BESTÄTIGUNGSSYSTEM, welches Sie auf ausstehende Aufgaben aufmerksam machen soll.'; $this->phrasen['tools/waehlenSieEineOEoderAmpel']='Bitte wählen Sie ein Organisationseinheit und/oder eine Ampel aus dem Dropdown'; $this->phrasen['tools/uebersichtLeitung']='Ampel-Übersicht für LeiterInnen'; +$this->phrasen['tools/ampelAlleAnzeigen']='Alle anzeigen'; +$this->phrasen['tools/ampelNurAktuellesStudiensemester']='Nur aktuelles Studiensemester anzeigen'; //Software fuer Lehre -> Softgrid $this->phrasen['tools/applikationsliste']='Applikationsliste'; @@ -76,4 +78,5 @@ $this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Es wurden keine Ergebni //Partnerhochschulen $this->phrasen['tools/partnerhochschulenUebersicht']='Übersicht der Partnerhochschulen'; $this->phrasen['tools/partnerhochschulenKeinEintrag']='Für diesen Studiengang ist keine Partnerhochschule zugeordnet'; +$this->phrasen['tools/partnerhochschulenEinleitung']='Sollten Sie an einer Partnerhochschule studieren wollen, die sich nicht auf dieser Liste befindet, kontaktieren Sie bitte das Center for International Relations (CIR).'; ?> diff --git a/locale/en-US/tools.php b/locale/en-US/tools.php index ce65ed007..832c9a97e 100755 --- a/locale/en-US/tools.php +++ b/locale/en-US/tools.php @@ -49,6 +49,8 @@ $this->phrasen['tools/ampelBereitsBestaetigt']='This notification has already be $this->phrasen['tools/dasAmpelsystemIstEinErinnerungsystem']='The notification system is a REMINDER and CONFIRMATION SYSTEM that is provided to remind you of outstanding tasks.'; $this->phrasen['tools/waehlenSieEineOEoderAmpel']='Please select an organizational unit and/or a notification from the drop down menu.'; $this->phrasen['tools/uebersichtLeitung']='Overview of notifications for Heads of Departments'; +$this->phrasen['tools/alleAnzeigen']='Show all'; +$this->phrasen['tools/nurAktuellesStudiensemester']='Show current semester only'; //Software fuer Lehre -> Softgrid $this->phrasen['tools/applikationsliste']='List of Applications'; @@ -76,4 +78,5 @@ $this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Your search did not ret //Partnerhochschulen $this->phrasen['tools/partnerhochschulenUebersicht']='Partner Universities'; $this->phrasen['tools/partnerhochschulenKeinEintrag']='No entry found'; +$this->phrasen['tools/partnerhochschulenEinleitung']='In case you would like to study at a partner university that isn´t listed - please contact the Center for International Relations (CIR).'; ?> diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index 9afc38257..44b5bcaab 100755 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -1193,6 +1193,18 @@ if(!$result = @$db->db_query("SELECT studienplan_id FROM public.tbl_bewerbungste echo '
      Neue Spalte studienplan_id in Tabelle public.tbl_bewerbungstermine hinzugefügt
      '; } +// Attribute verpflichtend und buttontext in public.tbl_ampel +if(!$result = @$db->db_query("SELECT verpflichtend FROM public.tbl_ampel LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_ampel ADD COLUMN verpflichtend boolean NOT NULL DEFAULT FALSE; + ALTER TABLE public.tbl_ampel ADD COLUMN buttontext varchar(64)[];"; + + if(!$db->db_query($qry)) + echo 'public.tbl_ampel '.$db->db_last_error().'
      '; + else + echo '
      Neue Spalten "verpflichtend" und "buttontext" in Tabelle public.tbl_ampel hinzugefügt
      '; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

      Pruefe Tabellen und Attribute!

      '; @@ -1344,7 +1356,7 @@ $tabellen=array( "lehre.tbl_zeugnisnote" => array("lehrveranstaltung_id","student_uid","studiensemester_kurzbz","note","uebernahmedatum","benotungsdatum","bemerkung","updateamum","updatevon","insertamum","insertvon","ext_id","punkte"), "public.tbl_adresse" => array("adresse_id","person_id","name","strasse","plz","ort","gemeinde","nation","typ","heimatadresse","zustelladresse","firma_id","updateamum","updatevon","insertamum","insertvon","ext_id"), "public.tbl_akte" => array("akte_id","person_id","dokument_kurzbz","uid","inhalt","mimetype","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id","dms_id","nachgereicht","anmerkung","titel_intern","anmerkung_intern"), - "public.tbl_ampel" => array("ampel_id","kurzbz","beschreibung","benutzer_select","deadline","vorlaufzeit","verfallszeit","insertamum","insertvon","updateamum","updatevon","email"), + "public.tbl_ampel" => array("ampel_id","kurzbz","beschreibung","benutzer_select","deadline","vorlaufzeit","verfallszeit","insertamum","insertvon","updateamum","updatevon","email","verpflichtend"), "public.tbl_ampel_benutzer_bestaetigt" => array("ampel_benutzer_bestaetigt_id","ampel_id","uid","insertamum","insertvon"), "public.tbl_aufmerksamdurch" => array("aufmerksamdurch_kurzbz","beschreibung","ext_id","bezeichnung", "aktiv"), "public.tbl_aufnahmeschluessel" => array("aufnahmeschluessel"), diff --git a/vilesci/stammdaten/ampel_details.php b/vilesci/stammdaten/ampel_details.php index b42cd660f..a7d02704b 100755 --- a/vilesci/stammdaten/ampel_details.php +++ b/vilesci/stammdaten/ampel_details.php @@ -34,7 +34,7 @@ $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); if(!$rechte->isBerechtigt('basis/ampel')) - die('Sie haben keine Berechtigung fuer diese Seite'); + die($rechte->errormsg); $datum_obj = new datum(); ?> @@ -44,6 +44,18 @@ $datum_obj = new datum(); Ampel - Details + + + @@ -55,7 +67,8 @@ $datum_obj = new datum(); if($action=='save') { $kurzbz = (isset($_POST['kurzbz'])?$_POST['kurzbz']:die('Kurzbz fehlt')); - + $beschreibung = ''; + $buttontext = ''; foreach ($_POST as $key=>$value) { if(mb_strstr($key,'beschreibung')) @@ -63,12 +76,18 @@ $datum_obj = new datum(); $idx = mb_substr($key, mb_strlen('beschreibung')); $beschreibung[$idx] = $value; } + elseif(mb_strstr($key,'buttontext')) + { + $idx = mb_substr($key, mb_strlen('buttontext')); + $buttontext[$idx] = $value; + } } $benutzer_select = (isset($_POST['benutzer_select'])?$_POST['benutzer_select']:die('Benutzer_select fehlt')); $deadline = (isset($_POST['deadline'])?$_POST['deadline']:die('Deadline fehlt')); $vorlaufzeit = (isset($_POST['vorlaufzeit'])?$_POST['vorlaufzeit']:die('Vorlaufzeit fehlt')); $verfallszeit = (isset($_POST['verfallszeit'])?$_POST['verfallszeit']:die('verfallszeit fehlt')); $email = isset($_POST['email']); + $verpflichtend = isset($_POST['verpflichtend']); $new = (isset($_POST['new'])?$_POST['new']:'true'); if($new=='true') { @@ -91,6 +110,8 @@ $datum_obj = new datum(); $ampel->vorlaufzeit = $vorlaufzeit; $ampel->verfallszeit = $verfallszeit; $ampel->email = $email; + $ampel->verpflichtend = $verpflichtend; + $ampel->buttontext = $buttontext; $ampel->updateamum = date('Y-m-d H:i:s'); $ampel->updatevon = $user; @@ -140,46 +161,63 @@ $datum_obj = new datum(); - - + + - + - + - + - + + + + + + + + + + + + + + + + + + '; + $sprache = new sprache(); - $sprache->getAll(); + $sprache->getAll(null, 'index'); foreach($sprache->result as $lang) { echo ' - + + '; } echo ' - - - +
      KurzbzKurzbz (64) Deadline
      Benutzer Select Vorlaufzeit (in Tagen)
      Verfallszeit (in Tagen)
      Erinnerung per Email db_parse_bool($ampel->email)?'checked':'').'>
      Verpflichtenddb_parse_bool($ampel->verpflichtend)?'checked':'').'>
       
       Beschreibung Buttonbeschriftung (64) 
      Beschreibung '.$lang->sprache.''.$lang->sprache.'
      '; diff --git a/vilesci/stammdaten/ampel_uebersicht.php b/vilesci/stammdaten/ampel_uebersicht.php index feef9c311..2cdbfdc2d 100755 --- a/vilesci/stammdaten/ampel_uebersicht.php +++ b/vilesci/stammdaten/ampel_uebersicht.php @@ -93,6 +93,7 @@ echo ' + @@ -106,6 +107,7 @@ foreach($ampel->result as $row) echo ''; echo ''; echo ''; + echo ''; echo ''; echo ''; echo ''; From 11723a71e60f3bb3840c539222235693ba0965a8 Mon Sep 17 00:00:00 2001 From: kindlm Date: Thu, 29 Sep 2016 17:54:01 +0200 Subject: [PATCH 054/140] =?UTF-8?q?Ab-Datum=20f=C3=BCr=20Outgoings=20auf?= =?UTF-8?q?=20Anwesenheitsliste?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bbei Outgoings wird zusätzlich das ab-Datum angezeigt, ab wann sie im Ausland sind. --- cis/private/lehre/anwesenheitsliste.pdf.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 5a352cd18..33a3cb86e 100755 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -27,6 +27,7 @@ require_once('../../../include/lehreinheitmitarbeiter.class.php'); require_once('../../../include/studiensemester.class.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/erhalter.class.php'); +require_once('../../../include/datum.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -156,6 +157,8 @@ $erhalter->getAll(); $a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW) $anzahl_studierende = 0; +$datum = new datum(); +$zusatz = ''; if($result = $db->db_query($qry)) { @@ -171,7 +174,7 @@ if($result = $db->db_query($qry)) $zusatz=''; if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing - $zusatz.='(o)'; + $zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')'; if($row->note==6) //angerechnet $zusatz.='(ar)'; From f99b3cc8bf26d2dee4dba2ce9086b464cbfa036c Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 30 Sep 2016 09:17:54 +0200 Subject: [PATCH 055/140] Moodle User werden nicht angelegt wenn zuvor bei der Abfrage des Users ein Netzwerkfehler auftrat --- include/moodle24_user.class.php | 132 +++++++++++++++++--------------- vilesci/moodle/user_sync24.php | 2 + 2 files changed, 74 insertions(+), 60 deletions(-) diff --git a/include/moodle24_user.class.php b/include/moodle24_user.class.php index e28bf7a21..a94278fcd 100644 --- a/include/moodle24_user.class.php +++ b/include/moodle24_user.class.php @@ -54,7 +54,7 @@ class moodle24_user extends basis_db * Laedt einen Moodle User * * @param $uid - * @return boolean + * @return boolean oder -1 bei SOAP Fehler */ public function loaduser($uid) { @@ -87,7 +87,7 @@ class moodle24_user extends basis_db catch (SoapFault $E) { $this->errormsg.="SOAP Fehler beim Laden des Users: ".$E->faultstring; - return false; + return -1; } } @@ -209,8 +209,9 @@ class moodle24_user extends basis_db if(!$user_zugeteilt) { + $retval = $this->loaduser($row_ma->mitarbeiter_uid); //MoodleID des Users holen bzw ggf neu anlegen - if(!$this->loaduser($row_ma->mitarbeiter_uid)) + if($retval===false) { //User anlegen if(!$this->createUser($row_ma->mitarbeiter_uid)) @@ -222,29 +223,32 @@ class moodle24_user extends basis_db $this->errormsg = ''; } - if($mitarbeiter!='') - $mitarbeiter.=','; - $mitarbeiter.=$this->mdl_user_id; - - //Mitarbeiter ist noch nicht zugeteilt. - $data = new stdClass(); - $data->roleid=3; // 3=Lektor - $data->userid=$this->mdl_user_id; - $data->courseid=$mdl_course_id; - - try + if($retval!==-1) { - $client = new SoapClient($this->serverurl); - $client->enrol_manual_enrol_users(array($data)); + if($mitarbeiter!='') + $mitarbeiter.=','; + $mitarbeiter.=$this->mdl_user_id; - $this->log.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; - $this->log_public.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; - $this->sync_create++; - } - catch (SoapFault $E) - { - $this->errormsg.="SOAP Fehler beim zuteilen der Teilnehmer des Kurses: ".$E->faultstring; - return false; + //Mitarbeiter ist noch nicht zugeteilt. + $data = new stdClass(); + $data->roleid=3; // 3=Lektor + $data->userid=$this->mdl_user_id; + $data->courseid=$mdl_course_id; + + try + { + $client = new SoapClient($this->serverurl); + $client->enrol_manual_enrol_users(array($data)); + + $this->log.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; + $this->log_public.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; + $this->sync_create++; + } + catch (SoapFault $E) + { + $this->errormsg.="SOAP Fehler beim zuteilen der Teilnehmer des Kurses: ".$E->faultstring; + return false; + } } } } @@ -369,8 +373,9 @@ class moodle24_user extends basis_db if(!$user_zugeteilt) { + $retval = $this->loaduser($row_user->student_uid); //MoodleID des Users holen bzw ggf neu anlegen - if(!$this->loaduser($row_user->student_uid)) + if($retval===false) { //User anlegen if(!$this->createUser($row_user->student_uid)) @@ -382,23 +387,26 @@ class moodle24_user extends basis_db $this->errormsg = ''; } - if($studenten!='') - $studenten.=','; - $studenten.=$this->mdl_user_id; + if($retval!==-1) + { + if($studenten!='') + $studenten.=','; + $studenten.=$this->mdl_user_id; - //Student ist noch nicht zugeteilt. + //Student ist noch nicht zugeteilt. - $data = new stdClass(); - $data->roleid=5; // 5=Teilnehmer/Student - $data->userid=$this->mdl_user_id; - $data->courseid=$mdl_course_id; + $data = new stdClass(); + $data->roleid=5; // 5=Teilnehmer/Student + $data->userid=$this->mdl_user_id; + $data->courseid=$mdl_course_id; - $userstoenroll[]=$data; + $userstoenroll[]=$data; - $this->log.="\nStudentIn $row_user->student_uid wurde zum Kurs hinzugefügt"; - $this->log_public.="\nStudentIn $row_user->student_uid wurde zum Kurs hinzugefügt"; - $this->sync_create++; + $this->log.="\nStudentIn $row_user->student_uid wurde zum Kurs hinzugefügt"; + $this->log_public.="\nStudentIn $row_user->student_uid wurde zum Kurs hinzugefügt"; + $this->sync_create++; + } } //Gruppenzuteilung @@ -685,8 +693,9 @@ class moodle24_user extends basis_db foreach ($users as $row_user) { + $retval = $this->loaduser($row_user); //MoodleID des Users holen - if(!$this->loaduser($row_user)) + if($retval!==true) { $this->errormsg = "Fehler beim Laden des Users $row_user: $this->errormsg"; return false; @@ -825,9 +834,9 @@ class moodle24_user extends basis_db if(!$user_zugeteilt) { - + $retval = $this->loaduser($row_ma->mitarbeiter_uid); //MoodleID des Users holen bzw ggf neu anlegen - if(!$this->loaduser($row_ma->mitarbeiter_uid)) + if($retval===false) { //User anlegen if(!$this->createUser($row_ma->mitarbeiter_uid)) @@ -839,29 +848,32 @@ class moodle24_user extends basis_db $this->errormsg = ''; } - if($mitarbeiter!='') - $mitarbeiter.=','; - $mitarbeiter.=$this->mdl_user_id; - - //Mitarbeiter ist noch nicht zugeteilt. - $data = new stdClass(); - $data->roleid=11; // 11=Fachbereichsleiter (selbst definierte rolle) - $data->userid=$this->mdl_user_id; - $data->courseid=$mdl_course_id; - - try + if($retval!==-1) { + if($mitarbeiter!='') + $mitarbeiter.=','; + $mitarbeiter.=$this->mdl_user_id; - $client = new SoapClient($this->serverurl); - $client->enrol_manual_enrol_users(array($data)); + //Mitarbeiter ist noch nicht zugeteilt. + $data = new stdClass(); + $data->roleid=11; // 11=Fachbereichsleiter (selbst definierte rolle) + $data->userid=$this->mdl_user_id; + $data->courseid=$mdl_course_id; - $this->log.="\nFachbereitsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; - $this->log_public.="\nFachbereichsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; - $this->sync_create++; - } - catch (SoapFault $E) - { - $this->log.="Fehler beim hinzufügen von FBL: ".$E->faultstring; + try + { + + $client = new SoapClient($this->serverurl); + $client->enrol_manual_enrol_users(array($data)); + + $this->log.="\nFachbereitsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; + $this->log_public.="\nFachbereichsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; + $this->sync_create++; + } + catch (SoapFault $E) + { + $this->log.="Fehler beim hinzufügen von FBL: ".$E->faultstring; + } } } } diff --git a/vilesci/moodle/user_sync24.php b/vilesci/moodle/user_sync24.php index a5e7adda1..dbddfae76 100755 --- a/vilesci/moodle/user_sync24.php +++ b/vilesci/moodle/user_sync24.php @@ -96,6 +96,8 @@ if(isset($_POST['sync'])) if($moodle->sync_studenten($mdl_course_id)) { echo $moodle->log; + echo '
      '; + echo $moodle->errormsg; } else echo 'Fehler bei der Zuteilung:'.$moodle->errormsg; From 24b18db39cd34ff903226b75168c6ec9ad2c04c2 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 30 Sep 2016 10:08:39 +0200 Subject: [PATCH 056/140] =?UTF-8?q?Lieferbedingungen=20zu=20Tabelle=20publ?= =?UTF-8?q?ic.tbl=5Ffirma=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/dbupdate_3.2.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index 9afc38257..d04afa52d 100755 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -1193,6 +1193,17 @@ if(!$result = @$db->db_query("SELECT studienplan_id FROM public.tbl_bewerbungste echo '
      Neue Spalte studienplan_id in Tabelle public.tbl_bewerbungstermine hinzugefügt
      '; } +// Neue Spalte studienplan_id in public.tbl_bewerbungstermine +if(!$result = @$db->db_query("SELECT lieferbedingungen FROM public.tbl_firma LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_firma ADD COLUMN lieferbedingungen varchar(256);"; + + if(!$db->db_query($qry)) + echo 'public.tbl_firma '.$db->db_last_error().'
      '; + else + echo '
      Neue Spalte lieferbedingungen in Tabelle public.tbl_firma hinzugefügt
      '; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

      Pruefe Tabellen und Attribute!

      '; From 240d87caaacf053c61be955c05653e1bdacd73b1 Mon Sep 17 00:00:00 2001 From: bison-paolo Date: Fri, 30 Sep 2016 10:48:52 +0200 Subject: [PATCH 057/140] phpC(d)I III --- .../{tests/acceptance => _support}/AcceptanceTester.php | 0 tests/codeception/{tests/unit => _support}/BasisKlasseTest.php | 0 .../{tests/functional => _support}/FunctionalTester.php | 0 tests/codeception/{tests/unit => _support}/UnitTester.php | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename tests/codeception/{tests/acceptance => _support}/AcceptanceTester.php (100%) rename tests/codeception/{tests/unit => _support}/BasisKlasseTest.php (100%) rename tests/codeception/{tests/functional => _support}/FunctionalTester.php (100%) rename tests/codeception/{tests/unit => _support}/UnitTester.php (100%) diff --git a/tests/codeception/tests/acceptance/AcceptanceTester.php b/tests/codeception/_support/AcceptanceTester.php similarity index 100% rename from tests/codeception/tests/acceptance/AcceptanceTester.php rename to tests/codeception/_support/AcceptanceTester.php diff --git a/tests/codeception/tests/unit/BasisKlasseTest.php b/tests/codeception/_support/BasisKlasseTest.php similarity index 100% rename from tests/codeception/tests/unit/BasisKlasseTest.php rename to tests/codeception/_support/BasisKlasseTest.php diff --git a/tests/codeception/tests/functional/FunctionalTester.php b/tests/codeception/_support/FunctionalTester.php similarity index 100% rename from tests/codeception/tests/functional/FunctionalTester.php rename to tests/codeception/_support/FunctionalTester.php diff --git a/tests/codeception/tests/unit/UnitTester.php b/tests/codeception/_support/UnitTester.php similarity index 100% rename from tests/codeception/tests/unit/UnitTester.php rename to tests/codeception/_support/UnitTester.php From fcce3c9f1072456ed98cfa8a225758a560d85cf7 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 30 Sep 2016 11:21:42 +0200 Subject: [PATCH 058/140] =?UTF-8?q?Studiengangsseite=20erweitert=20damit?= =?UTF-8?q?=20f=C3=BCr=20den=20Studiengang=20334=20die=20Leitung=20ge?= =?UTF-8?q?=C3=A4ndert=20werden=20kann?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/stammdaten/studiengang_edit.php | 91 +++++++++++++++++++++---- 1 file changed, 79 insertions(+), 12 deletions(-) diff --git a/vilesci/stammdaten/studiengang_edit.php b/vilesci/stammdaten/studiengang_edit.php index 1c0bc20de..5063d0c1e 100755 --- a/vilesci/stammdaten/studiengang_edit.php +++ b/vilesci/stammdaten/studiengang_edit.php @@ -20,16 +20,18 @@ /** * Seite zur Aenderung des Studiengangsnamens */ -require_once('../../config/vilesci.config.inc.php'); +require_once('../../config/vilesci.config.inc.php'); require_once('../../include/globals.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/organisationsform.class.php'); +require_once('../../include/benutzerfunktion.class.php'); +require_once('../../include/benutzer.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - + ?> @@ -53,7 +55,7 @@ if(isset($_GET['studiengang_kz'])) $stg_kz = $_GET['studiengang_kz']; else $stg_kz=''; - + if(isset($_GET['action']) && $_GET['action']=='save') { $studiengang_kz = $_POST['studiengang_kz']; @@ -61,13 +63,13 @@ if(isset($_GET['action']) && $_GET['action']=='save') $studiengang->load($studiengang_kz); if(!$rechte->isBerechtigt('assistenz', $studiengang->oe_kurzbz, 'suid')) die('Sie haben keine Berechtigung fuer diese Seite'); - + $bezeichnung = $_POST['bezeichnung']; $english = $_POST['english']; $max_semester = $_POST['max_semester']; $orgform_kurzbz = $_POST['orgform_kurzbz']; $stg_kz=$studiengang_kz; - + $stg = new studiengang(); if($stg->load($studiengang_kz)) { @@ -80,13 +82,46 @@ if(isset($_GET['action']) && $_GET['action']=='save') echo 'Erfolgreich geändert'; else echo 'Fehler beim Speichern: '.$stg->errormsg.''; - + + } + + if($studiengang_kz==334) + { + $benutzerfunktion = new benutzerfunktion(); + $benutzerfunktion->getOeFunktionen($stg->oe_kurzbz, 'Leitung'); + + foreach($benutzerfunktion->result as $row) + { + if(isset($_POST['ltg_'.$row->benutzerfunktion_id])) + { + // Leitung wird gesetzt + if($row->datum_bis!='') + { + $row->datum_bis=''; + $row->updateamum = date('Y-m-d H:i:s'); + $row->updatevon = $user; + $row->save(false); + } + } + else + { + // Leitung wird entfernt + if($row->datum_bis=='' || $row->datum_bis>date('Y-m-d')) + { + $row->datum_bis=date('Y-m-d',mktime(0, 0, 0, date("m"), date("d")-1, date("Y"))); + $row->updateamum = date('Y-m-d H:i:s'); + $row->updatevon = $user; + $row->save(false); + } + } + + } } } -$stg = new studiengang(); +$stg = new studiengang(); $stg_arr = $rechte->getStgKz('assistenz'); -$stg->loadArray($stg_arr,'typ, kurzbz',true); +$stg->loadArray($stg_arr,'typ, kurzbz',true); echo '
      Studiengang: '; @@ -136,15 +171,47 @@ foreach($orgform->result as $row) $selected='selected'; else $selected=''; - + echo ''; } echo ' -
      +'; +if($stg->studiengang_kz==334) +{ + // Studiengang MIT / MSC kann auch die Leitung aktivieren/deaktivieren + echo ''; + echo ''; + echo ''; + echo ''; +} + +echo ' + + + + From 8bd7674551ec62d17837259688e0ec8e0220cd31 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 30 Sep 2016 16:27:08 +0200 Subject: [PATCH 059/140] Logo Pfad korrigert --- include/tw/abgabe_lektor_benotung.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/tw/abgabe_lektor_benotung.php b/include/tw/abgabe_lektor_benotung.php index 5972d3a3b..a3bf39da8 100644 --- a/include/tw/abgabe_lektor_benotung.php +++ b/include/tw/abgabe_lektor_benotung.php @@ -168,7 +168,7 @@ else $pdf->SetXY(30,30); //Logo - $pdf->Image("../../skin/styles/tw/logo.jpg","400","25","150","78","jpg",""); + $pdf->Image("../../skin/styles/".DEFAULT_STYLE."/logo.jpg","400","25","150","78","jpg",""); $pdf->SetFont('Arial','',12); $pdf->SetFillColor(190,190,190); @@ -430,7 +430,7 @@ else $pdf->SetXY(30,30); //Logo - $pdf->Image("../../skin/images/logo.jpg","400","25","160","54","jpg",""); + $pdf->Image("../../skin/styles/".DEFAULT_STYLE."/logo.jpg","400","25","150","78","jpg",""); $pdf->SetFont('Arial','',12); $pdf->SetFillColor(190,190,190); $pdf->SetXY(30,110-$titelabzug); From 42757176b5af2310e2d31a38900950b7554c9e31 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 30 Sep 2016 16:30:23 +0200 Subject: [PATCH 060/140] Fixed broken Update Script --- system/dbupdate_3.2.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index fb1480a8a..28b018a91 100755 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -1202,8 +1202,9 @@ if(!$result = @$db->db_query("SELECT verpflichtend FROM public.tbl_ampel LIMIT 1 if(!$db->db_query($qry)) echo 'public.tbl_ampel '.$db->db_last_error().'
      '; - else - echo '
      Neue Spalten "verpflichtend" und "buttontext" in Tabelle public.tbl_ampel hinzugefügt
      '; + else + echo '
      Neue Spalten "verpflichtend" und "buttontext" in Tabelle public.tbl_ampel hinzugefügt
      '; +} // Neue Spalte studienplan_id in public.tbl_bewerbungstermine if(!$result = @$db->db_query("SELECT lieferbedingungen FROM public.tbl_firma LIMIT 1")) From 70fd4a4dea42388472ed7d0c460f0c97106e2d95 Mon Sep 17 00:00:00 2001 From: kindlm Date: Fri, 30 Sep 2016 16:32:57 +0200 Subject: [PATCH 061/140] phpC(d)I --- phpci.yml | 17 +++++---------- tests/codeception.yml | 17 --------------- tests/codeception/_output/.placeholder | 0 .../AcceptanceTester.php | 0 .../{unit => _support}/BasisKlasseTest.php | 0 .../FunctionalTester.php | 0 .../{unit => _support}/UnitTester.php | 0 tests/codeception/acceptance.suite.yml | 14 ------------- tests/codeception/codeception.dist.yml | 20 ++++++++++++++++++ .../tests/acceptance.suite.dist.yml | 21 +++++++++++++++++++ .../acceptance/CISLoginPageCept.php | 0 .../{ => tests}/acceptance/_bootstrap.php | 0 .../functional.suite.dist.yml} | 3 ++- .../{ => tests}/functional/_bootstrap.php | 0 .../unit.suite.dist.yml} | 3 ++- .../{ => tests}/unit/_bootstrap.php | 0 16 files changed, 50 insertions(+), 45 deletions(-) delete mode 100644 tests/codeception.yml create mode 100644 tests/codeception/_output/.placeholder rename tests/codeception/{acceptance => _support}/AcceptanceTester.php (100%) rename tests/codeception/{unit => _support}/BasisKlasseTest.php (100%) rename tests/codeception/{functional => _support}/FunctionalTester.php (100%) rename tests/codeception/{unit => _support}/UnitTester.php (100%) delete mode 100644 tests/codeception/acceptance.suite.yml create mode 100644 tests/codeception/codeception.dist.yml create mode 100644 tests/codeception/tests/acceptance.suite.dist.yml rename tests/codeception/{ => tests}/acceptance/CISLoginPageCept.php (100%) rename tests/codeception/{ => tests}/acceptance/_bootstrap.php (100%) rename tests/codeception/{functional.suite.yml => tests/functional.suite.dist.yml} (85%) rename tests/codeception/{ => tests}/functional/_bootstrap.php (100%) rename tests/codeception/{unit.suite.yml => tests/unit.suite.dist.yml} (75%) rename tests/codeception/{ => tests}/unit/_bootstrap.php (100%) diff --git a/phpci.yml b/phpci.yml index 32e465575..f945cf6e3 100644 --- a/phpci.yml +++ b/phpci.yml @@ -1,22 +1,15 @@ build_settings: verbose: false prefer_symlink: false + ignore: + - "vendor" + - "tests" setup: test: codeception: - config: "tests" - lint: - php_loc: - php_docblock_checker: - allowed_warnings: -1 -# phing: -# build_file: 'build.xml' -# targets: -# - "deploy" -# php_unit: -# directory: "tests/phpunit/" -# args: "--bootstrap 'test/phpunit/bootstrap.php' --configuration 'tests/phpunit/phpunit.xml'" + config: "tests/codeception/" + path: "tests/codeception/_output/" complete: diff --git a/tests/codeception.yml b/tests/codeception.yml deleted file mode 100644 index f9c149984..000000000 --- a/tests/codeception.yml +++ /dev/null @@ -1,17 +0,0 @@ -actor: Tester -paths: - tests: codeception - log: codeception/_output - data: codeception/_data - helpers: codeception/_support -settings: - bootstrap: _bootstrap.php - colors: true - memory_limit: 1024M -modules: - config: - Db: - dsn: '' - user: '' - password: '' - dump: codeception/_data/dump.sql diff --git a/tests/codeception/_output/.placeholder b/tests/codeception/_output/.placeholder new file mode 100644 index 000000000..e69de29bb diff --git a/tests/codeception/acceptance/AcceptanceTester.php b/tests/codeception/_support/AcceptanceTester.php similarity index 100% rename from tests/codeception/acceptance/AcceptanceTester.php rename to tests/codeception/_support/AcceptanceTester.php diff --git a/tests/codeception/unit/BasisKlasseTest.php b/tests/codeception/_support/BasisKlasseTest.php similarity index 100% rename from tests/codeception/unit/BasisKlasseTest.php rename to tests/codeception/_support/BasisKlasseTest.php diff --git a/tests/codeception/functional/FunctionalTester.php b/tests/codeception/_support/FunctionalTester.php similarity index 100% rename from tests/codeception/functional/FunctionalTester.php rename to tests/codeception/_support/FunctionalTester.php diff --git a/tests/codeception/unit/UnitTester.php b/tests/codeception/_support/UnitTester.php similarity index 100% rename from tests/codeception/unit/UnitTester.php rename to tests/codeception/_support/UnitTester.php diff --git a/tests/codeception/acceptance.suite.yml b/tests/codeception/acceptance.suite.yml deleted file mode 100644 index 8a84881eb..000000000 --- a/tests/codeception/acceptance.suite.yml +++ /dev/null @@ -1,14 +0,0 @@ -# Codeception Test Suite Configuration - -# suite for acceptance tests. -# perform tests in browser using the WebDriver or PhpBrowser. -# If you need both WebDriver and PHPBrowser tests - create a separate suite. - -class_name: AcceptanceTester -modules: - enabled: - - PhpBrowser - - AcceptanceHelper - config: - PhpBrowser: - url: 'http://localhost/myapp/' diff --git a/tests/codeception/codeception.dist.yml b/tests/codeception/codeception.dist.yml new file mode 100644 index 000000000..ecf0baef5 --- /dev/null +++ b/tests/codeception/codeception.dist.yml @@ -0,0 +1,20 @@ +actor: Tester +paths: + tests: tests + log: _output + data: _data + helpers: _support +settings: + bootstrap: _bootstrap.php + colors: true + memory_limit: 1024M +modules: + enabled: + - Db: + dsn: 'pgsql:host=localhost;port=5432;dbname=fhctest' + user: 'fhcomplete' + password: 'fhcomplete' + dump: _data/dump.sql + populate: true + cleanup: false + reconnect: false diff --git a/tests/codeception/tests/acceptance.suite.dist.yml b/tests/codeception/tests/acceptance.suite.dist.yml new file mode 100644 index 000000000..73a9bbf67 --- /dev/null +++ b/tests/codeception/tests/acceptance.suite.dist.yml @@ -0,0 +1,21 @@ +# Codeception Test Suite Configuration + +# suite for acceptance tests. +# perform tests in browser using the WebDriver or PhpBrowser. +# If you need both WebDriver and PHPBrowser tests - create a separate suite. + +class_name: AcceptanceTester +modules: + enabled: + - Db + - PhpBrowser: + url: 'http://admin:1q2w3@demo.fhcomplete.org/' + config: + Db: + dsn: 'pgsql:host=localhost;port=5432;dbname=fhctest' + user: 'fhcomplete' + password: 'fhcomplete' + dump: _data/dump.sql + populate: true + cleanup: false + reconnect: false diff --git a/tests/codeception/acceptance/CISLoginPageCept.php b/tests/codeception/tests/acceptance/CISLoginPageCept.php similarity index 100% rename from tests/codeception/acceptance/CISLoginPageCept.php rename to tests/codeception/tests/acceptance/CISLoginPageCept.php diff --git a/tests/codeception/acceptance/_bootstrap.php b/tests/codeception/tests/acceptance/_bootstrap.php similarity index 100% rename from tests/codeception/acceptance/_bootstrap.php rename to tests/codeception/tests/acceptance/_bootstrap.php diff --git a/tests/codeception/functional.suite.yml b/tests/codeception/tests/functional.suite.dist.yml similarity index 85% rename from tests/codeception/functional.suite.yml rename to tests/codeception/tests/functional.suite.dist.yml index 3b17a39dc..1f7d83be2 100644 --- a/tests/codeception/functional.suite.yml +++ b/tests/codeception/tests/functional.suite.dist.yml @@ -6,4 +6,5 @@ class_name: FunctionalTester modules: - enabled: [Filesystem, FunctionalHelper] + enabled: + - Filesystem \ No newline at end of file diff --git a/tests/codeception/functional/_bootstrap.php b/tests/codeception/tests/functional/_bootstrap.php similarity index 100% rename from tests/codeception/functional/_bootstrap.php rename to tests/codeception/tests/functional/_bootstrap.php diff --git a/tests/codeception/unit.suite.yml b/tests/codeception/tests/unit.suite.dist.yml similarity index 75% rename from tests/codeception/unit.suite.yml rename to tests/codeception/tests/unit.suite.dist.yml index 4ffbf160e..9a79a8331 100644 --- a/tests/codeception/unit.suite.yml +++ b/tests/codeception/tests/unit.suite.dist.yml @@ -3,4 +3,5 @@ # suite for unit (internal) tests. class_name: UnitTester modules: - enabled: [Asserts, UnitHelper] + enabled: + - Asserts \ No newline at end of file diff --git a/tests/codeception/unit/_bootstrap.php b/tests/codeception/tests/unit/_bootstrap.php similarity index 100% rename from tests/codeception/unit/_bootstrap.php rename to tests/codeception/tests/unit/_bootstrap.php From 2e065086a20098e58b92b8f1faedc116a08b3f91 Mon Sep 17 00:00:00 2001 From: kindlm Date: Fri, 30 Sep 2016 16:38:32 +0200 Subject: [PATCH 062/140] Merge Commit --- include/datum.class.php | 61 ++++++----- include/moodle24_user.class.php | 132 +++++++++++++----------- include/wochenplan.class.php | 6 +- vilesci/moodle/user_sync24.php | 2 + vilesci/stammdaten/studiengang_edit.php | 91 +++++++++++++--- webdav/Caldav_Backend.php | 126 +++++++++++----------- 6 files changed, 250 insertions(+), 168 deletions(-) diff --git a/include/datum.class.php b/include/datum.class.php index bfeddc654..7440e9960 100644 --- a/include/datum.class.php +++ b/include/datum.class.php @@ -23,7 +23,7 @@ class datum { public $ts_day=86400; // Timestamp eines Tages - + /** * Konstruktor * @@ -103,13 +103,12 @@ class datum */ public function jump_week($datum, $wochen) { - $stunde_vor=date("G",$datum); - // Eine Woche sind 604800 Sekunden - $datum+=604800*$wochen; - $stunde_nach=date("G",$datum); - if ($stunde_nach!=$stunde_vor) - $datum+=3600; - return $datum; + $days = $wochen * 7; + + $datetime=new DateTime(); + $datetime->setTimestamp($datum); + $datetime->modify($days.' day'); + return $datetime->format("U"); } /** @@ -159,7 +158,7 @@ class datum else return false; } - + /** * Zieht ein Datum von einem anderen ab, und gibt die differenz in Tagen zurueck (mit Vorzeichen) * @param $datum1 @@ -196,7 +195,7 @@ class datum if($start=='' && $ende!='' && $dateende>=$dateref) return true; - // Ende nicht gesetzt; Start gesetzt + // Ende nicht gesetzt; Start gesetzt if($ende=='' && $start!='' && $datestart<=$dateref) return true; @@ -237,7 +236,7 @@ class datum return $h1.':'.$m1; } - + /** * Subtrahiert 2 Zeiten ($zeit1-$zeit2) Stunde:Minute * Es liefert keine Uhrzeit zurueck sondern Stunden und Minuten @@ -268,7 +267,7 @@ class datum return $h1.':'.$m1; } - + /** * Prueft und Liefert ein Datum im angegeben Format * fuer die Formatierung wird die Funktion formatDatum verwendet @@ -278,9 +277,9 @@ class datum * Eintraege wie zB 'last Monday' oder 'a' auch in ein Datum umgewandelt werden. * @return Formatierten Timestamp wenn ok, false im Fehlerfall */ - function checkformatDatum($datum, $format='Y-m-d H:i:s', $strict=false) + function checkformatDatum($datum, $format='Y-m-d H:i:s', $strict=false) { - + @list($day, $month, $year) = @explode(".", $datum); if (@checkdate($month, $day, $year)) return $this->formatDatum($datum, $format, $strict); @@ -293,7 +292,7 @@ class datum @list($year, $month, $day) = @explode("-", $datum); if (@checkdate($month, $day, $year)) return $this->formatDatum($datum, $format, $strict); - + if (strlen($datum)==6) { $year="20".substr($datum,0,2); @@ -301,7 +300,7 @@ class datum $day=substr($datum,4,2); if (@checkdate($month, $day, $year)) return $this->formatDatum($datum, $format, $strict); - } + } else if (strlen($datum)==8) { $year=substr($datum,0,4); @@ -309,15 +308,15 @@ class datum $day=substr($datum, 6,2); if (@checkdate($month, $day, $year)) return $this->formatDatum($datum, $format, $strict); - - $year=substr($datum,5,4); + + $year=substr($datum,5,4); $month=substr($datum,3,2); $day=substr($datum, 0,2); if (@checkdate($month, $day, $year)) return $this->formatDatum($datum, $format, $strict); - } - return false; - } + } + return false; + } /** @@ -334,18 +333,18 @@ class datum { if(trim($datum)=='') return ''; - + $ts=''; $error=false; - + //2008-12-31 if(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$datum, $regs)) $ts = mktime(0,0,0,$regs[2],$regs[3],$regs[1]); - + //2008-12-31 12:30 if(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2})",$datum, $regs)) $ts = mktime($regs[4],$regs[5],0,$regs[2],$regs[3],$regs[1]); - + //2008-12-31 12:30:15 if(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})",$datum, $regs)) $ts = mktime($regs[4],$regs[5],$regs[6],$regs[2],$regs[3],$regs[1]); @@ -355,20 +354,20 @@ class datum //1.12.2008 if(mb_ereg("([0-9]{1,2}).([0-9]{1,2}).([0-9]{4})",$datum, $regs)) $ts = mktime(0,0,0,$regs[2],$regs[1],$regs[3]); - + //1.12.2008 12:30 if(mb_ereg("([0-9]{1,2}).([0-9]{1,2}).([0-9]{4}) ([0-9]{2}):([0-9]{2})",$datum, $regs)) $ts = mktime($regs[4],$regs[5],0,$regs[2],$regs[1],$regs[3]); - + //1.12.2008 12:30:15 if(mb_ereg("([0-9]{1,2}).([0-9]{1,2}).([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2})",$datum, $regs)) $ts = mktime($regs[4],$regs[5],$regs[6],$regs[2],$regs[1],$regs[3]); } - + if($ts=='' && !$strict) { $ts = strtotime($datum); - + if(!$ts || $ts==-1) { //wenn strtotime fehlschlaegt liefert diese -1 zurueck, ab php5.1.0 jedoch false @@ -378,9 +377,9 @@ class datum if($ts!='' && !$error) return date($format, $ts); - + return false; } - + } ?> diff --git a/include/moodle24_user.class.php b/include/moodle24_user.class.php index e28bf7a21..a94278fcd 100644 --- a/include/moodle24_user.class.php +++ b/include/moodle24_user.class.php @@ -54,7 +54,7 @@ class moodle24_user extends basis_db * Laedt einen Moodle User * * @param $uid - * @return boolean + * @return boolean oder -1 bei SOAP Fehler */ public function loaduser($uid) { @@ -87,7 +87,7 @@ class moodle24_user extends basis_db catch (SoapFault $E) { $this->errormsg.="SOAP Fehler beim Laden des Users: ".$E->faultstring; - return false; + return -1; } } @@ -209,8 +209,9 @@ class moodle24_user extends basis_db if(!$user_zugeteilt) { + $retval = $this->loaduser($row_ma->mitarbeiter_uid); //MoodleID des Users holen bzw ggf neu anlegen - if(!$this->loaduser($row_ma->mitarbeiter_uid)) + if($retval===false) { //User anlegen if(!$this->createUser($row_ma->mitarbeiter_uid)) @@ -222,29 +223,32 @@ class moodle24_user extends basis_db $this->errormsg = ''; } - if($mitarbeiter!='') - $mitarbeiter.=','; - $mitarbeiter.=$this->mdl_user_id; - - //Mitarbeiter ist noch nicht zugeteilt. - $data = new stdClass(); - $data->roleid=3; // 3=Lektor - $data->userid=$this->mdl_user_id; - $data->courseid=$mdl_course_id; - - try + if($retval!==-1) { - $client = new SoapClient($this->serverurl); - $client->enrol_manual_enrol_users(array($data)); + if($mitarbeiter!='') + $mitarbeiter.=','; + $mitarbeiter.=$this->mdl_user_id; - $this->log.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; - $this->log_public.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; - $this->sync_create++; - } - catch (SoapFault $E) - { - $this->errormsg.="SOAP Fehler beim zuteilen der Teilnehmer des Kurses: ".$E->faultstring; - return false; + //Mitarbeiter ist noch nicht zugeteilt. + $data = new stdClass(); + $data->roleid=3; // 3=Lektor + $data->userid=$this->mdl_user_id; + $data->courseid=$mdl_course_id; + + try + { + $client = new SoapClient($this->serverurl); + $client->enrol_manual_enrol_users(array($data)); + + $this->log.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; + $this->log_public.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; + $this->sync_create++; + } + catch (SoapFault $E) + { + $this->errormsg.="SOAP Fehler beim zuteilen der Teilnehmer des Kurses: ".$E->faultstring; + return false; + } } } } @@ -369,8 +373,9 @@ class moodle24_user extends basis_db if(!$user_zugeteilt) { + $retval = $this->loaduser($row_user->student_uid); //MoodleID des Users holen bzw ggf neu anlegen - if(!$this->loaduser($row_user->student_uid)) + if($retval===false) { //User anlegen if(!$this->createUser($row_user->student_uid)) @@ -382,23 +387,26 @@ class moodle24_user extends basis_db $this->errormsg = ''; } - if($studenten!='') - $studenten.=','; - $studenten.=$this->mdl_user_id; + if($retval!==-1) + { + if($studenten!='') + $studenten.=','; + $studenten.=$this->mdl_user_id; - //Student ist noch nicht zugeteilt. + //Student ist noch nicht zugeteilt. - $data = new stdClass(); - $data->roleid=5; // 5=Teilnehmer/Student - $data->userid=$this->mdl_user_id; - $data->courseid=$mdl_course_id; + $data = new stdClass(); + $data->roleid=5; // 5=Teilnehmer/Student + $data->userid=$this->mdl_user_id; + $data->courseid=$mdl_course_id; - $userstoenroll[]=$data; + $userstoenroll[]=$data; - $this->log.="\nStudentIn $row_user->student_uid wurde zum Kurs hinzugefügt"; - $this->log_public.="\nStudentIn $row_user->student_uid wurde zum Kurs hinzugefügt"; - $this->sync_create++; + $this->log.="\nStudentIn $row_user->student_uid wurde zum Kurs hinzugefügt"; + $this->log_public.="\nStudentIn $row_user->student_uid wurde zum Kurs hinzugefügt"; + $this->sync_create++; + } } //Gruppenzuteilung @@ -685,8 +693,9 @@ class moodle24_user extends basis_db foreach ($users as $row_user) { + $retval = $this->loaduser($row_user); //MoodleID des Users holen - if(!$this->loaduser($row_user)) + if($retval!==true) { $this->errormsg = "Fehler beim Laden des Users $row_user: $this->errormsg"; return false; @@ -825,9 +834,9 @@ class moodle24_user extends basis_db if(!$user_zugeteilt) { - + $retval = $this->loaduser($row_ma->mitarbeiter_uid); //MoodleID des Users holen bzw ggf neu anlegen - if(!$this->loaduser($row_ma->mitarbeiter_uid)) + if($retval===false) { //User anlegen if(!$this->createUser($row_ma->mitarbeiter_uid)) @@ -839,29 +848,32 @@ class moodle24_user extends basis_db $this->errormsg = ''; } - if($mitarbeiter!='') - $mitarbeiter.=','; - $mitarbeiter.=$this->mdl_user_id; - - //Mitarbeiter ist noch nicht zugeteilt. - $data = new stdClass(); - $data->roleid=11; // 11=Fachbereichsleiter (selbst definierte rolle) - $data->userid=$this->mdl_user_id; - $data->courseid=$mdl_course_id; - - try + if($retval!==-1) { + if($mitarbeiter!='') + $mitarbeiter.=','; + $mitarbeiter.=$this->mdl_user_id; - $client = new SoapClient($this->serverurl); - $client->enrol_manual_enrol_users(array($data)); + //Mitarbeiter ist noch nicht zugeteilt. + $data = new stdClass(); + $data->roleid=11; // 11=Fachbereichsleiter (selbst definierte rolle) + $data->userid=$this->mdl_user_id; + $data->courseid=$mdl_course_id; - $this->log.="\nFachbereitsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; - $this->log_public.="\nFachbereichsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; - $this->sync_create++; - } - catch (SoapFault $E) - { - $this->log.="Fehler beim hinzufügen von FBL: ".$E->faultstring; + try + { + + $client = new SoapClient($this->serverurl); + $client->enrol_manual_enrol_users(array($data)); + + $this->log.="\nFachbereitsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; + $this->log_public.="\nFachbereichsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; + $this->sync_create++; + } + catch (SoapFault $E) + { + $this->log.="Fehler beim hinzufügen von FBL: ".$E->faultstring; + } } } } diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php index a76fdaaf4..aa9ec7b5a 100644 --- a/include/wochenplan.class.php +++ b/include/wochenplan.class.php @@ -2384,7 +2384,7 @@ class wochenplan extends basis_db /** * Unterricht der ueber mehrere Stunden geht wird nicht einzeln Exportiert, - * sondern zusammengeblockt. (in maximal 4er Bloecke) + * sondern zusammengeblockt. * * Es wird nur ein Eintrag geschrieben, die restlichen werden uebersprungen. * Vor dem Ueberspringen des Eintrages werden jedoch noch die dazu Gruppierten Eintraege @@ -2499,7 +2499,7 @@ class wochenplan extends basis_db $end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums echo $this->crlf.'BEGIN:VEVENT'.$this->crlf - .'UID:'.'FH'.str_replace(',',' ',$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$this->crlf) + .'UID:'.'FH'.str_replace(',',' ',$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical.$this->crlf) .'SUMMARY:'.str_replace(',',' ',$lehrfach[$idx].' '.$this->std_plan[$i][$j][$idx]->ort.' - '.$lvb.$this->crlf) .'DESCRIPTION:'.str_replace(',',' ',$lehrfach[$idx].'\n'.$this->std_plan[$i][$j][$idx]->lektor.'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?'\n'.$this->std_plan[$i][$j][$idx]->anmerkung:'').$this->crlf) .'LOCATION:'.$this->std_plan[$i][$j][$idx]->ort.$this->crlf @@ -2541,7 +2541,7 @@ class wochenplan extends basis_db $start_date_time_ical = $sda[2].$sda[1].$sda[0].'T'.sprintf('%02s',($sta[0])).$sta[1].$sta[2]; //neu gruppieren der Startzeit und des Startdatums $end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums - $UID = 'FH'.$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical; + $UID = 'FH'.$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical; $Summary = $lehrfach[$idx].' '.$this->std_plan[$i][$j][$idx]->ort.' - '.$lvb; $description = $lehrfach[$idx].'\n'.$this->std_plan[$i][$j][$idx]->lektor.'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort; diff --git a/vilesci/moodle/user_sync24.php b/vilesci/moodle/user_sync24.php index a5e7adda1..dbddfae76 100755 --- a/vilesci/moodle/user_sync24.php +++ b/vilesci/moodle/user_sync24.php @@ -96,6 +96,8 @@ if(isset($_POST['sync'])) if($moodle->sync_studenten($mdl_course_id)) { echo $moodle->log; + echo '
      '; + echo $moodle->errormsg; } else echo 'Fehler bei der Zuteilung:'.$moodle->errormsg; diff --git a/vilesci/stammdaten/studiengang_edit.php b/vilesci/stammdaten/studiengang_edit.php index 1c0bc20de..5063d0c1e 100755 --- a/vilesci/stammdaten/studiengang_edit.php +++ b/vilesci/stammdaten/studiengang_edit.php @@ -20,16 +20,18 @@ /** * Seite zur Aenderung des Studiengangsnamens */ -require_once('../../config/vilesci.config.inc.php'); +require_once('../../config/vilesci.config.inc.php'); require_once('../../include/globals.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/organisationsform.class.php'); +require_once('../../include/benutzerfunktion.class.php'); +require_once('../../include/benutzer.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - + ?> @@ -53,7 +55,7 @@ if(isset($_GET['studiengang_kz'])) $stg_kz = $_GET['studiengang_kz']; else $stg_kz=''; - + if(isset($_GET['action']) && $_GET['action']=='save') { $studiengang_kz = $_POST['studiengang_kz']; @@ -61,13 +63,13 @@ if(isset($_GET['action']) && $_GET['action']=='save') $studiengang->load($studiengang_kz); if(!$rechte->isBerechtigt('assistenz', $studiengang->oe_kurzbz, 'suid')) die('Sie haben keine Berechtigung fuer diese Seite'); - + $bezeichnung = $_POST['bezeichnung']; $english = $_POST['english']; $max_semester = $_POST['max_semester']; $orgform_kurzbz = $_POST['orgform_kurzbz']; $stg_kz=$studiengang_kz; - + $stg = new studiengang(); if($stg->load($studiengang_kz)) { @@ -80,13 +82,46 @@ if(isset($_GET['action']) && $_GET['action']=='save') echo 'Erfolgreich geändert'; else echo 'Fehler beim Speichern: '.$stg->errormsg.''; - + + } + + if($studiengang_kz==334) + { + $benutzerfunktion = new benutzerfunktion(); + $benutzerfunktion->getOeFunktionen($stg->oe_kurzbz, 'Leitung'); + + foreach($benutzerfunktion->result as $row) + { + if(isset($_POST['ltg_'.$row->benutzerfunktion_id])) + { + // Leitung wird gesetzt + if($row->datum_bis!='') + { + $row->datum_bis=''; + $row->updateamum = date('Y-m-d H:i:s'); + $row->updatevon = $user; + $row->save(false); + } + } + else + { + // Leitung wird entfernt + if($row->datum_bis=='' || $row->datum_bis>date('Y-m-d')) + { + $row->datum_bis=date('Y-m-d',mktime(0, 0, 0, date("m"), date("d")-1, date("Y"))); + $row->updateamum = date('Y-m-d H:i:s'); + $row->updatevon = $user; + $row->save(false); + } + } + + } } } -$stg = new studiengang(); +$stg = new studiengang(); $stg_arr = $rechte->getStgKz('assistenz'); -$stg->loadArray($stg_arr,'typ, kurzbz',true); +$stg->loadArray($stg_arr,'typ, kurzbz',true); echo '
      Studiengang: '; @@ -136,15 +171,47 @@ foreach($orgform->result as $row) $selected='selected'; else $selected=''; - + echo ''; } echo ' -
      +'; +if($stg->studiengang_kz==334) +{ + // Studiengang MIT / MSC kann auch die Leitung aktivieren/deaktivieren + echo ''; + echo ''; + echo ''; + echo ''; +} + +echo ' + + + + diff --git a/webdav/Caldav_Backend.php b/webdav/Caldav_Backend.php index d107341d2..bcb8edcb7 100644 --- a/webdav/Caldav_Backend.php +++ b/webdav/Caldav_Backend.php @@ -2,17 +2,18 @@ require_once(dirname(__FILE__).'/../include/wochenplan.class.php'); require_once(dirname(__FILE__).'/../include/functions.inc.php'); require_once(dirname(__FILE__).'/../include/mitarbeiter.class.php'); +require_once(dirname(__FILE__).'/../include/datum.class.php'); /** * CalDAV backend */ -class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend +class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend { /** - * Creates the backend - * + * Creates the backend + * * @param AuthBackend $auth */ - public function __construct($auth) + public function __construct($auth) { $this->auth = $auth; } @@ -31,18 +32,18 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend * Every project is an array with the following keys: * * id, a unique id that will be used by other functions to modify the * calendar. This can be the same as the uri or a database key. - * * uri, which the basename of the uri with which the calendar is + * * uri, which the basename of the uri with which the calendar is * accessed. * * principalUri. The owner of the calendar. Almost always the same as * principalUri passed to this method. * * Furthermore it can contain webdav properties in clark notation. A very - * common one is '{DAV:}displayname'. + * common one is '{DAV:}displayname'. * - * @param string $principalUri - * @return array + * @param string $principalUri + * @return array */ - public function getCalendarsForUser($principalUri) + public function getCalendarsForUser($principalUri) { //error_log("Caldav_Backend.php/getCalendarsForUser($principalUri)"); //$user = $this->getUser(); @@ -75,7 +76,7 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend * @param string $calendarUri * @param array $properties */ - public function createCalendar($principalUri,$calendarUri, array $properties) + public function createCalendar($principalUri,$calendarUri, array $properties) { throw new \Sabre\DAV\Exception('Not Implemented'); } @@ -108,43 +109,44 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend * ) * ) * - * In this example it was forbidden to update {DAV:}displayname. + * In this example it was forbidden to update {DAV:}displayname. * (403 Forbidden), which in turn also caused {DAV:}owner to fail * (424 Failed Dependency) because the request needs to be atomic. * * @param string $calendarId - * @param array $mutations - * @return bool|array + * @param array $mutations + * @return bool|array */ - public function updateCalendar($calendarId, array $mutations) + public function updateCalendar($calendarId, array $mutations) { return false; } /** - * Delete a calendar and all it's objects - * - * @param string $calendarId + * Delete a calendar and all it's objects + * + * @param string $calendarId * @return void */ - public function deleteCalendar($calendarId) + public function deleteCalendar($calendarId) { throw new \Sabre\DAV\Exception('Not Implemented'); } - + public function getCalendarData($user, $objectUri=null) { + $datum_obj = new datum(); $starttime = microtime(true); $bn = new benutzer(); if(!$bn->load($user)) die('User invalid'); - + if(check_lektor($user)) $type='lektor'; else $type='student'; - + // Stundenplanobjekt erzeugen $stdplan = new wochenplan($type); $stdplan->crlf="\n"; @@ -156,7 +158,7 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend } if(!is_null($objectUri)) { - $unr = mb_substr($objectUri, mb_strpos($objectUri,'-')+1); + $unr = mb_substr($objectUri, (mb_strpos($objectUri,'-')+1), mb_strpos($objectUri,'@')-(mb_strpos($objectUri,'-')+1)); $dtstart = mb_substr($objectUri,0,mb_strpos($objectUri,'-')); if(mb_strlen($dtstart)==15) @@ -170,14 +172,14 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend $sekunde = mb_substr($dtstart,13,2); $begin = mktime($stunde, $minute, $sekunde, $monat, $tag-1, $jahr); $ende = mktime($stunde, $minute, $sekunde, $monat, $tag+1, $jahr); - //error_log("getCalendarData unr: $unr dtstart: $dtstart"); + //error_log("getCalendarData unr: $unr dtstart: $dtstart size:".(mb_strlen($objectUri)-mb_strpos($objectUri,'@'))); //error_log($begin.'/'.$ende); } else { //error_log("dtstart laenge abnormal: $dtstart"); $begin = mktime(0,0,0,date('m'),date('d')-14,date('Y')); - $ende = mktime(0,0,0,date('m')+6,date('d'),date('Y')); + $ende = mktime(0,0,0,date('m')+6,date('d'),date('Y')); } } else @@ -195,10 +197,10 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend $i++; if(!date("w",$begin)) $begin=jump_day($begin,1); - + $stdplan->init_stdplan(); $datum=$begin; - $begin+=604800; // eine Woche + $begin = $datum_obj->jump_week($begin,1); // Stundenplan einer Woche laden if(!$stdplan->load_week($datum,$db_stpl_table)) @@ -224,7 +226,7 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend //error_log("\n\nDATA".print_r($data,true)); //error_log("getCalendarData time:".($endtime-$starttime)); //$data.="\nEND:VCALENDAR"; - return $data; + return $data; } public function makeCal($event) { @@ -250,28 +252,28 @@ END:STANDARD END:VTIMEZONE\n".$event."\nEND:VCALENDAR"; } /** - * Returns all calendar objects within a calendar. + * Returns all calendar objects within a calendar. * * Every item contains an array with the following keys: * * id - unique identifier which will be used for subsequent updates * * calendardata - The iCalendar-compatible calnedar data * * uri - a unique key which will be used to construct the uri. This can be any arbitrary string. * * lastmodified - a timestamp of the last modification time - * * etag - An arbitrary string, surrounded by double-quotes. (e.g.: + * * etag - An arbitrary string, surrounded by double-quotes. (e.g.: * ' "abcdef"') * * calendarid - The calendarid as it was passed to this function. * - * Note that the etag is optional, but it's highly encouraged to return for + * Note that the etag is optional, but it's highly encouraged to return for * speed reasons. * - * The calendardata is also optional. If it's not returned - * 'getCalendarObject' will be called later, which *is* expected to return + * The calendardata is also optional. If it's not returned + * 'getCalendarObject' will be called later, which *is* expected to return * calendardata. - * - * @param string $calendarId - * @return array + * + * @param string $calendarId + * @return array */ - public function getCalendarObjects($calendarId) + public function getCalendarObjects($calendarId) { //$user = $this->getUser(); $user = $calendarId; @@ -290,7 +292,7 @@ END:VTIMEZONE\n".$event."\nEND:VCALENDAR"; $return[] = array("id"=>$row['UID'], "calendardata"=>$this->makeCal($row['data']), - "uri"=>$uri, + "uri"=>$uri.'@'.md5($row['UID']), "lastmodified"=>$row['updateamum'], "etag"=>'"'.$row['UID'].'"', "calendarid"=>$calendarId); @@ -303,15 +305,15 @@ END:VTIMEZONE\n".$event."\nEND:VCALENDAR"; * Returns information from a single calendar object, based on it's object * uri. * - * The returned array must have the same keys as getCalendarObjects. The - * 'calendardata' object is required here though, while it's not required + * The returned array must have the same keys as getCalendarObjects. The + * 'calendardata' object is required here though, while it's not required * for getCalendarObjects. - * - * @param string $calendarId - * @param string $objectUri - * @return array + * + * @param string $calendarId + * @param string $objectUri + * @return array */ - public function getCalendarObject($calendarId,$objectUri) + public function getCalendarObject($calendarId,$objectUri) { //error_log("Caldav_Backend.php/getCalendarObject($calendarId, $objectUri)"); //$user = $this->getUser(); @@ -330,7 +332,7 @@ END:VTIMEZONE\n".$event."\nEND:VCALENDAR"; { $ret = array("id"=>$data['UID'], "calendardata"=>$this->makeCal($data['data']), - "uri"=>'principals/'.$user.'/LVPlan/'.$data['dtstart'].'-'.$data['unr'][0], + "uri"=>'principals/'.$user.'/LVPlan/'.$data['dtstart'].'-'.$data['unr'][0].'@'.md5($data['UID']), "lastmodified"=>$data['updateamum'], "etag"=>'"'.$data['UID'].'"', "calendarid"=>$calendarId); @@ -339,39 +341,39 @@ END:VTIMEZONE\n".$event."\nEND:VCALENDAR"; } /** - * Creates a new calendar object. - * - * @param string $calendarId - * @param string $objectUri - * @param string $calendarData + * Creates a new calendar object. + * + * @param string $calendarId + * @param string $objectUri + * @param string $calendarData * @return void */ - public function createCalendarObject($calendarId,$objectUri,$calendarData) + public function createCalendarObject($calendarId,$objectUri,$calendarData) { throw new \Sabre\DAV\Exception('Not Implemented'); } /** - * Updates an existing calendarobject, based on it's uri. - * - * @param string $calendarId - * @param string $objectUri - * @param string $calendarData + * Updates an existing calendarobject, based on it's uri. + * + * @param string $calendarId + * @param string $objectUri + * @param string $calendarData * @return void */ - public function updateCalendarObject($calendarId,$objectUri,$calendarData) + public function updateCalendarObject($calendarId,$objectUri,$calendarData) { throw new \Sabre\DAV\Exception('Not Implemented'); } /** - * Deletes an existing calendar object. - * - * @param string $calendarId - * @param string $objectUri + * Deletes an existing calendar object. + * + * @param string $calendarId + * @param string $objectUri * @return void */ - public function deleteCalendarObject($calendarId,$objectUri) + public function deleteCalendarObject($calendarId,$objectUri) { throw new Sabre\DAV\Exception('Not Implemented'); } From e321163bb0ba64f3c2a584ef78e2517b9818af1f Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 30 Sep 2016 16:56:02 +0200 Subject: [PATCH 063/140] Fixed wrong comment --- system/dbupdate_3.2.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index 28b018a91..39b69338d 100755 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -1206,7 +1206,7 @@ if(!$result = @$db->db_query("SELECT verpflichtend FROM public.tbl_ampel LIMIT 1 echo '
      Neue Spalten "verpflichtend" und "buttontext" in Tabelle public.tbl_ampel hinzugefügt
      '; } -// Neue Spalte studienplan_id in public.tbl_bewerbungstermine +// Neue Spalte lieferbedingungen in public.tbl_firma if(!$result = @$db->db_query("SELECT lieferbedingungen FROM public.tbl_firma LIMIT 1")) { $qry = "ALTER TABLE public.tbl_firma ADD COLUMN lieferbedingungen varchar(256);"; From 33d3697f2ff99126a6a01f5bb64c007a3caac436 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Mon, 3 Oct 2016 10:29:32 +0200 Subject: [PATCH 064/140] add statistik_kurzbz to errormsg --- include/statistik.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/statistik.class.php b/include/statistik.class.php index 85fb6e834..46fcef12f 100644 --- a/include/statistik.class.php +++ b/include/statistik.class.php @@ -108,7 +108,7 @@ class statistik extends basis_db } else { - $this->errormsg = 'Dieser Eintrag wurde nicht gefunden'; + $this->errormsg = 'Dieser Eintrag wurde nicht gefunden: ' . $statistik_kurzbz; return false; } } From b4ea35858caa8a3c2bc93f84c6eefe466d87159f Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Mon, 3 Oct 2016 13:11:51 +0200 Subject: [PATCH 065/140] fixed bug which end in an unterminated loop --- rdf/lehrveranstaltungszeugnis_ktu.rdf.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php index 28b3036c6..d560bbf27 100755 --- a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php +++ b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php @@ -371,10 +371,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") { $studienplan->loadStudienplanLehrveranstaltung($studienplan_lehrveranstaltung_id); $lv = new lehrveranstaltung(); - while($lv->lehrtyp_kurzbz != "modul") + while(($lv->lehrtyp_kurzbz != "modul") && ($studienplan->lehrveranstaltung_id != $studienplan_lehrveranstaltung_id)) { - $lv->load($studienplan->lehrveranstaltung_id); - $studienplan->loadStudienplanLehrveranstaltung($studienplan->studienplan_lehrveranstaltung_id_parent); + $lv->load($studienplan->lehrveranstaltung_id); + $studienplan_lehrveranstaltung_id = $studienplan->lehrveranstaltung_id; + $studienplan->loadStudienplanLehrveranstaltung($studienplan->studienplan_lehrveranstaltung_id_parent); } $lehrveranstaltung->lehrveranstaltungen = array(0 => $lv); } From ceb2ef0dbf70e329c0d64927b7bf8b9d89da5190 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Mon, 3 Oct 2016 13:48:21 +0200 Subject: [PATCH 066/140] updated phrasen --- cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php | 2 +- locale/de-AT/pruefung.php | 1 + locale/en-US/pruefung.php | 1 + locale/it-IT/pruefung.php | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php index ea07690bb..5810b0315 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php @@ -227,7 +227,7 @@ $rechte->getBerechtigungen($uid);
      - + diff --git a/locale/de-AT/pruefung.php b/locale/de-AT/pruefung.php index 1f127dfea..59c342b0c 100755 --- a/locale/de-AT/pruefung.php +++ b/locale/de-AT/pruefung.php @@ -108,6 +108,7 @@ $this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Keine Lehreinheiten vo $this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Keine Anmeldungen vorhanden.'; $this->phrasen['pruefung/derLektor'] = 'Lektor'; $this->phrasen['pruefung/dieKommission'] = 'Kommission'; +$this->phrasen['pruefung/matrikelnummer'] = 'Personenkennzeichen'; // anmeldungen Verwalten $this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Prüfungsanmeldung Verwaltung'; diff --git a/locale/en-US/pruefung.php b/locale/en-US/pruefung.php index e46fc9aef..8c586e854 100755 --- a/locale/en-US/pruefung.php +++ b/locale/en-US/pruefung.php @@ -108,6 +108,7 @@ $this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Keine Lehreinheiten vo $this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Keine Anmeldungen vorhanden.'; $this->phrasen['pruefung/derLektor'] = 'Lektor'; $this->phrasen['pruefung/dieKommission'] = 'Kommission'; +$this->phrasen['pruefung/matrikelnummer'] = 'Personenkennzeichen'; // anmeldungen Verwalten $this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Prüfungsanmeldung Verwaltung'; diff --git a/locale/it-IT/pruefung.php b/locale/it-IT/pruefung.php index 476b14ec0..3f7ff66b1 100755 --- a/locale/it-IT/pruefung.php +++ b/locale/it-IT/pruefung.php @@ -108,6 +108,7 @@ $this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Nessun corso disponibi $this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Nessun studente iscritto.'; $this->phrasen['pruefung/derLektor'] = 'Docente'; $this->phrasen['pruefung/dieKommission'] = 'Commissione'; +$this->phrasen['pruefung/matrikelnummer']='Matricola'; // anmeldungen Verwalten $this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Gestione delle prenotazioni degli appelli'; From 3bb86f6f055ce59f393c855fddfa93841f2b6971 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Mon, 3 Oct 2016 14:53:02 +0200 Subject: [PATCH 067/140] fixed bug in calculation if course is completed --- cis/private/profile/studienplan.php | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 633da1faf..2343e780d 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -511,28 +511,40 @@ function drawTree($tree, $depth) if($found) { if($positiv) - echo ''.$p->t('studienplan/abgeschlossen').''; + { + echo ''.$p->t('studienplan/abgeschlossen').''; + } else + { echo ''.$p->t('studienplan/negativ').''; + } } elseif(!$found) { - if($abgeschlossen) - echo ''.$p->t('studienplan/regelabgeschlossen'),''; - elseif(!$row_tree->stpllv_pflicht) + if(!$row_tree->stpllv_pflicht) + { echo ''.$p->t('studienplan/optional').''; - else + } + else + { echo ''.$p->t('studienplan/offen').''; + } } } else { if($abgeschlossen) + { echo ''.$p->t('studienplan/regelabgeschlossen'),''; + } elseif(!$row_tree->stpllv_pflicht) + { echo ''.$p->t('studienplan/optional').''; + } else + { echo ''.$p->t('studienplan/offen').''; + } } echo ''; From a029a91789c1c8cdca1d0b41136730cff38f0a8d Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Tue, 4 Oct 2016 10:06:12 +0200 Subject: [PATCH 068/140] bug: registration not possible if rules are not fulfilled --- cis/private/profile/studienplan.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 2343e780d..26cb18cd8 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -19,6 +19,7 @@ * * * Authors: Andreas Österreicher + * Stefan Puraner * * Zeigt den Studienplan eines Studierenden an * und bietet die Möglichkeit zur Anmeldung zu Lehrveranstaltungen. @@ -366,7 +367,7 @@ drawTree($tree,0); function drawTree($tree, $depth) { - global $uid, $stsem_arr, $noten_arr, $lvangebot_arr; + global $uid, $stsem_arr, $noten_arr, $lvangebot_arr, $aktornext; global $datum_obj, $db, $lv_arr, $p, $note_pruef_arr, $student; foreach($tree as $row_tree) @@ -622,12 +623,16 @@ function drawTree($tree, $depth) } else { - if(!$lvregel->isZugangsberechtigt($uid, $row_tree->studienplan_lehrveranstaltung_id, $stsem)) + //check if rules are fulfilled just for actual or next studiensemester + if($stsem === $aktornext) { - $regelerfuellt=false; + if($lvregel->isZugangsberechtigt($uid, $row_tree->studienplan_lehrveranstaltung_id, $stsem) !== true) + { + $regelerfuellt=false; + } } } - + foreach($lvkompatibel_arr as $row_lvid) { // Angebot der LV pruefen @@ -681,7 +686,7 @@ function drawTree($tree, $depth) $tdinhalt.= '-'; if(!$regelerfuellt) - $tdinhalt.= 'X'; + $tdinhalt= 'X'; } } else From f48e1e59a7ffab1506189730f7761f00a75a0903 Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 5 Oct 2016 12:57:41 +0200 Subject: [PATCH 069/140] =?UTF-8?q?Zahlungsbest=C3=A4tigungen=20drucken=20?= =?UTF-8?q?ist=20jetzt=20auch=20m=C3=B6glich=20wenn=20zu=20viel=20bezahlt?= =?UTF-8?q?=20wurde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/pdfExport.php | 2 +- cis/private/profile/zahlungen.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index fa818838e..03660bb92 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -152,7 +152,7 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) $konto->load($bnr); if($konto->person_id!=$user_obj->person_id) die('Sie haben keine Berechtigung fuer diese Buchung'); - if($konto->getDifferenz($bnr)!=0) + if($konto->getDifferenz($bnr)>0) die('Diese Zahlung wurde noch nicht beglichen'); } } diff --git a/cis/private/profile/zahlungen.php b/cis/private/profile/zahlungen.php index c1ab84f38..3680ae788 100644 --- a/cis/private/profile/zahlungen.php +++ b/cis/private/profile/zahlungen.php @@ -157,7 +157,7 @@ echo ''; echo ''; echo '
      Deadline Vorlaufzeit VerfallszeitVerpflichtend Aktion
      ',$datum_obj->formatDatum($row->deadline,'d.m.Y'),'',$row->vorlaufzeit,'',$row->verfallszeit,'',($row->verpflichtend=='t'?'Ja':'Nein'),'bearbeitenkopierenentfernen
      Leitung'; + + $benutzerfunktion = new benutzerfunktion(); + $benutzerfunktion->getOeFunktionen($stg->oe_kurzbz, 'Leitung'); + + foreach($benutzerfunktion->result as $row) + { + if($row->datum_bis=='' || $row->datum_bis>date('Y-m-d')) + $checked='checked="checked"'; + else + $checked=''; + + echo ''; + $bn = new benutzer(); + $bn->load($row->uid); + echo $bn->vorname.' '.$bn->nachname.'
      '; + } + + echo '
        
      Leitung'; + + $benutzerfunktion = new benutzerfunktion(); + $benutzerfunktion->getOeFunktionen($stg->oe_kurzbz, 'Leitung'); + + foreach($benutzerfunktion->result as $row) + { + if($row->datum_bis=='' || $row->datum_bis>date('Y-m-d')) + $checked='checked="checked"'; + else + $checked=''; + + echo ''; + $bn = new benutzer(); + $bn->load($row->uid); + echo $bn->vorname.' '.$bn->nachname.'
      '; + } + + echo '
        
      # t('global/vorname'); ?> t('global/nachname'); ?>t('global/matrikelnummer'); ?>t('pruefung/matrikelnummer'); ?> t('global/datum'); ?> t('benotungstool/note'); ?> t('global/anmerkung'); ?>'.$row['parent']->buchungstext.''.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).' €'; - if($betrag==0 && $row['parent']->betrag<=0) + if($betrag>=0 && $row['parent']->betrag<=0) echo ''.$p->t('tools/bestaetigungDrucken').''; elseif($row['parent']->betrag>0) { From b4efb5aaa4285066161bfe8d07c1ec128d2b7957 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Thu, 6 Oct 2016 09:15:18 +0200 Subject: [PATCH 070/140] new entry in tbl_webservicetyp (reports) --- system/dbupdate_3.2.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index 39b69338d..56fb9086d 100755 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -1218,6 +1218,17 @@ if(!$result = @$db->db_query("SELECT lieferbedingungen FROM public.tbl_firma LIM } +// 10.16 neuer webservicetyp reports +$result = $db->db_query("SELECT 1 FROM system.tbl_webservicetyp WHERE webservicetyp_kurzbz='reports'"); +if($db->db_num_rows($result) < 1) +{ + $qry = "INSERT INTO system.tbl_webservicetyp (webservicetyp_kurzbz, beschreibung) VALUES('reports', 'Logtyp fuer reports');"; + if(!$db->db_query($qry)) + echo 'system.tbl_webservicetyp '.$db->db_last_error().'
      '; + else + echo '
      Neuen Eintrag "reports" in Tabelle system.tbl_webservicetyp eingefuegt
      '; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

      Pruefe Tabellen und Attribute!

      '; From e1c19fa4de659e49aa85a3e66cab3175a7a6dbe1 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Thu, 6 Oct 2016 17:04:52 +0200 Subject: [PATCH 071/140] moved credit points check from cours registration to exam registration --- .../pruefung/pruefungsanmeldung.json.php | 342 ++++++++++-------- cis/private/profile/studienplan.php | 34 +- include/konto.class.php | 45 +++ 3 files changed, 237 insertions(+), 184 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 85bd6cc16..4ae16864e 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -67,20 +67,19 @@ switch($method) $data = loadTermine(); break; case 'saveAnmeldung': - $student_uid = filter_input(INPUT_POST,"uid"); - if($student_uid !== "" && !is_null($student_uid)) - { - $uid = $student_uid; - } - - if($student_uid === "") - { - $data['result']=""; - $data['error']='true'; - $data['errormsg']='Studenten UID fehlt.'; - break; - } + $student_uid = filter_input(INPUT_POST,"uid"); + if($student_uid !== "" && !is_null($student_uid)) + { + $uid = $student_uid; + } + if($student_uid === "") + { + $data['result']=""; + $data['error']='true'; + $data['errormsg']='Studenten UID fehlt.'; + break; + } $data = saveAnmeldung($aktStudiensemester, $uid); break; case 'getAllPruefungen': @@ -142,60 +141,60 @@ function getPruefungByLv($aktStudiensemester = null, $uid = null) $lvIds = array(); foreach($lehrveranstaltungen->lehrveranstaltungen as $lvs) { - array_push($lvIds, $lvs->lehrveranstaltung_id); + array_push($lvIds, $lvs->lehrveranstaltung_id); } $lehrveranstaltungen=$lvIds; $pruefung = new pruefungCis(); if($pruefung->getPruefungByLv($lehrveranstaltungen)) { - $pruefungen = array(); - foreach($pruefung->lehrveranstaltungen as $key=>$lv) - { - $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); - $lehrveranstaltung = $lehrveranstaltung->cleanResult(); - $lehreinheit = new lehreinheit(); - $lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester); - $lehreinheiten = $lehreinheit->lehreinheiten; - $prf = new stdClass(); - $temp = new pruefungCis($lv->pruefung_id); - $temp->getTermineByPruefung($lv->pruefung_id); - for($i=0; $i < sizeof($temp->termine); $i++) - { - $termin = new pruefungstermin($temp->termine[$i]->pruefungstermin_id); - $temp->termine[$i]->teilnehmer = $termin->getNumberOfParticipants(); - } - $prf->pruefung = $temp; - $prf->lehrveranstaltung = $lehrveranstaltung; - if(!empty($lehreinheiten)) - { - $lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id); - $oe = new organisationseinheit($lveranstaltung->oe_kurzbz); - $prf->organisationseinheit = $oe->bezeichnung; - array_push($pruefungen, $prf); - } - } - $anmeldung = new pruefungsanmeldung(); - $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); - $anmeldungsIds = array(); - foreach($anmeldungen as $anm) - { - $a = new stdClass(); - $a->pruefungsanmeldung_id = $anm->pruefungsanmeldung_id; - $a->pruefungstermin_id = $anm->pruefungstermin_id; - $a->lehrveranstaltung_id = $anm->lehrveranstaltung_id; - array_push($anmeldungsIds, $a); - } - $return = new stdClass(); - $return->pruefungen = $pruefungen; - $return->anmeldungen = $anmeldungsIds; - $data['result']=$return; - $data['error']='false'; - $data['errormsg']=''; + $pruefungen = array(); + foreach($pruefung->lehrveranstaltungen as $key=>$lv) + { + $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); + $lehrveranstaltung = $lehrveranstaltung->cleanResult(); + $lehreinheit = new lehreinheit(); + $lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester); + $lehreinheiten = $lehreinheit->lehreinheiten; + $prf = new stdClass(); + $temp = new pruefungCis($lv->pruefung_id); + $temp->getTermineByPruefung($lv->pruefung_id); + for($i=0; $i < sizeof($temp->termine); $i++) + { + $termin = new pruefungstermin($temp->termine[$i]->pruefungstermin_id); + $temp->termine[$i]->teilnehmer = $termin->getNumberOfParticipants(); + } + $prf->pruefung = $temp; + $prf->lehrveranstaltung = $lehrveranstaltung; + if(!empty($lehreinheiten)) + { + $lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id); + $oe = new organisationseinheit($lveranstaltung->oe_kurzbz); + $prf->organisationseinheit = $oe->bezeichnung; + array_push($pruefungen, $prf); + } + } + $anmeldung = new pruefungsanmeldung(); + $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); + $anmeldungsIds = array(); + foreach($anmeldungen as $anm) + { + $a = new stdClass(); + $a->pruefungsanmeldung_id = $anm->pruefungsanmeldung_id; + $a->pruefungstermin_id = $anm->pruefungstermin_id; + $a->lehrveranstaltung_id = $anm->lehrveranstaltung_id; + array_push($anmeldungsIds, $a); + } + $return = new stdClass(); + $return->pruefungen = $pruefungen; + $return->anmeldungen = $anmeldungsIds; + $data['result']=$return; + $data['error']='false'; + $data['errormsg']=''; } else { - $data['error']='true'; - $data['errormsg']=$pruefung->errormsg; + $data['error']='true'; + $data['errormsg']=$pruefung->errormsg; } return $data; } @@ -387,26 +386,26 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $addon = new addon(); foreach ($addon->aktive_addons as $a) { - if($a === "ku") - { - require '../../../../addons/'.$a.'/cis/prfVerwaltung_array.php'; - switch($lehrveranstaltung->oe_kurzbz) - { - case $fakultaeten[0]["fakultaet"]: - $semCounter = $fakultaeten[0]["sem"]; - break; - case $fakultaeten[1]["fakultaet"]: - $semCounter = $fakultaeten[1]["sem"]; - break; - default: - $semCounter = 2; - break; - } - } - else - { - $semCounter = 99; - } + if($a === "ku") + { + require '../../../../addons/'.$a.'/cis/prfVerwaltung_array.php'; + switch($lehrveranstaltung->oe_kurzbz) + { + case $fakultaeten[0]["fakultaet"]: + $semCounter = $fakultaeten[0]["sem"]; + break; + case $fakultaeten[1]["fakultaet"]: + $semCounter = $fakultaeten[1]["sem"]; + break; + default: + $semCounter = 2; + break; + } + } + else + { + $semCounter = 99; + } } $i=0; $stdsem_lv_besuch = null; @@ -442,107 +441,132 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) // Defaulteinstellung für Prüfungstypen - schauen, ob bereits aus KTU-Addon geladen if(!isset($pruefungstyp_kurzbzArray)) $pruefungstyp_kurzbzArray = array("Termin1","Termin2","kommPruef"); + if(isset($pruefungstyp_kurzbzArray)) { - if($anzahlPruefungen < count($pruefungstyp_kurzbzArray)) - { - $pruefungstyp_kurzbz = $pruefungstyp_kurzbzArray[$anzahlPruefungen]; - } + if($anzahlPruefungen < count($pruefungstyp_kurzbzArray)) + { + $pruefungstyp_kurzbz = $pruefungstyp_kurzbzArray[$anzahlPruefungen]; + } } else { - $pruefungstyp_kurzbz = null; + $pruefungstyp_kurzbz = null; } foreach($pruefung->result as $prf) { - $note = new note($prf->note); - if($note->note === $noteCode_uef) - { - $pruefungsanmeldung = new pruefungsanmeldung($prf->pruefungsanmeldung_id); - $pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id); - $pf = new pruefungCis($pruefungstermin->pruefung_id); - $pruefungsfenster = new pruefungsfenster($pf->pruefungsfenster_id); - $studiensemester = new studiensemester(); - $stdsem = $studiensemester->getaktorNext(); - $i=0; - while($i<2) - { - if($stdsem === $pruefungsfenster->studiensemester_kurzbz) + $note = new note($prf->note); + if($note->note === $noteCode_uef) { - $anmeldung_moeglich = false; + $pruefungsanmeldung = new pruefungsanmeldung($prf->pruefungsanmeldung_id); + $pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id); + $pf = new pruefungCis($pruefungstermin->pruefung_id); + $pruefungsfenster = new pruefungsfenster($pf->pruefungsfenster_id); + $studiensemester = new studiensemester(); + $stdsem = $studiensemester->getaktorNext(); + $i=0; + while($i<2) + { + if($stdsem === $pruefungsfenster->studiensemester_kurzbz) + { + $anmeldung_moeglich = false; + } + $stdsem = $studiensemester->getPreviousFrom($stdsem); + $i++; + } + } + else + { + if($note->positiv === FALSE && $anzahlPruefungen >= $maxAnzahlVersuche) + { + $anmeldung_moeglich = false; + } } - $stdsem = $studiensemester->getPreviousFrom($stdsem); - $i++; - } - } - else - { - if($note->positiv === FALSE && $anzahlPruefungen >= $maxAnzahlVersuche) - { - $anmeldung_moeglich = false; - } - } } if($anmeldung_moeglich) { - if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL) - { - $pruefung = new pruefungCis(); - $reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]); - $anmeldung = new pruefungsanmeldung(); - $anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; - $anmeldung->pruefungstermin_id = $_REQUEST["termin_id"]; - $anmeldung->wuensche = $_REQUEST["bemerkung"]; - $anmeldung->uid = $uid; - $anmeldung->reihung = $reihung+1; - $anmeldung->status_kurzbz = "angemeldet"; - $anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz; - $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]); - - $konto = new konto(); - $creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester); - - if($creditpoints !== false) - { - if($creditpoints < $lehrveranstaltung->ects) + if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL) { - $data['error'] = 'true'; - $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints'); - return $data; - } - } + $pruefung = new pruefungCis(); + $reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]); + $anmeldung = new pruefungsanmeldung(); + $anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; + $anmeldung->pruefungstermin_id = $_REQUEST["termin_id"]; + $anmeldung->wuensche = $_REQUEST["bemerkung"]; + $anmeldung->uid = $uid; + $anmeldung->reihung = $reihung+1; + $anmeldung->status_kurzbz = "angemeldet"; + $anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz; + $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]); - //Kollisionsprüfung - $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); - foreach($anmeldungen as $temp) - { - $datum = new datum(); - if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis))) - { - $data['result'][$temp->pruefungstermin_id] = "true"; - $data['error'] = 'true'; - $data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung'); +// $konto = new konto(); +// $creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester); +// +// if($creditpoints !== false) +// { +// if($creditpoints <= $lehrveranstaltung->ects) +// { +// $data['error'] = 'true'; +// $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints'); +// return $data; +// } +// } + + //Kollisionsprüfung und Prüfung auf ausreichen Creditpoints + $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); + + if($anmeldungen !== false) + { + $ects = 0; + foreach($anmeldungen as $temp) + { + $lehrveranstaltung = new lehrveranstaltung($temp->lehrveranstaltung_id); + $ects += $lehrveranstaltung->ects; + + $datum = new datum(); + if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis))) + { + $data['result'][$temp->pruefungstermin_id] = "true"; + $data['error'] = 'true'; + $data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung'); + } + } + + $konto = new konto(); + $creditPoints = $konto->getCreditPointsOfStudiensemester($uid, $aktStudiensemester); + if(($creditPoints != false) && ($ects >= ($creditPoints - $ects))) + { + $data['error'] = 'true'; + $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints'); + return $data; + } + + if(isset($data['error']) && $data['error'] = 'true') + { + return $data; + } + } + else + { + $data['error'] = 'true'; + $data['errormsg'] = $anmeldung->errormsg; + return $data; + } + } + else + { + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/keineFreienPlaetzeVorhanden'); + return $data; } - } - if(isset($data['error']) && $data['error'] = 'true') - { - return $data; - } - } - else - { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/keineFreienPlaetzeVorhanden'); - return $data; - } } else { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/anmeldungAufgrundVonSperreNichtMoeglich'); - return $data; + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/anmeldungAufgrundVonSperreNichtMoeglich'); + return $data; } $anrechnung = new anrechnung(); diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 26cb18cd8..6a7a927f8 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -102,14 +102,7 @@ if(isset($_GET['getAnmeldung'])) if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem)) { // User ist noch nicht angemeldet - //Pruefen ob genug Credit Points zur Verfuegung stehen zur Anmeldung - - $konto = new konto(); - $cp = $konto->getCreditPoints($uid, $stsem); - if($cp===false || $cp>=$lv->ects) - echo '
      '.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')'; - else - echo '
      '.$lv->bezeichnung.''; + echo '
      '.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')'; } else { @@ -201,25 +194,16 @@ if(isset($_POST['action']) && $_POST['action']=='anmeldung') if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem)) { - - // Pruefen ob genug CP zur Verfuegung stehen falls diese reduziert sind - $konto = new konto(); - $cp = $konto->getCreditPoints($uid, $stsem); - if($cp===false || $cp>=$lv->ects) + $bngruppe->uid = $uid; + $bngruppe->gruppe_kurzbz = $lvangebot->result[0]->gruppe_kurzbz; + $bngruppe->studiensemester_kurzbz = $stsem; + $bngruppe->new=true; + if($bngruppe->save()) { - $bngruppe->uid = $uid; - $bngruppe->gruppe_kurzbz = $lvangebot->result[0]->gruppe_kurzbz; - $bngruppe->studiensemester_kurzbz = $stsem; - $bngruppe->new=true; - if($bngruppe->save()) - { - echo ''.$p->t('studienplan/einschreibungErfolgreich').''; - // Menue neu Laden damit die LV unter Meine LV gleich angezeigt wird - echo ''; - } + echo ''.$p->t('studienplan/einschreibungErfolgreich').''; + // Menue neu Laden damit die LV unter Meine LV gleich angezeigt wird + echo ''; } - else - echo ''.$p->t('studienplan/zuWenigCP').''; } else { diff --git a/include/konto.class.php b/include/konto.class.php index 396b7aa31..3255da3d6 100644 --- a/include/konto.class.php +++ b/include/konto.class.php @@ -800,6 +800,51 @@ class konto extends basis_db return false; } } + + /** + * Liefert die CreditPoints die ein Studierender für ein Studiensemester zur Verfügung hat + * falls dieser einschraenkungen eingetragen hat. Wenn keine Einschraenkung vorhanden ist, + * wird false zurueckgeliefert. Es werden die Creditpoint der Belastungen herangezogen. + * Die Gegenbuchung wird nicht beruecksichtigt. + * @return Anzahl der gekauften CreditPoints oder false falls unbeschraenkt + */ + public function getCreditPointsOfStudiensemester($uid, $studiensemester_kurzbz) + { + $qry = "SELECT sum(credit_points) as cp + FROM + public.tbl_konto + JOIN public.tbl_benutzer USING(person_id) + WHERE + uid=".$this->db_add_param($uid)." + AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." + AND buchungsnr_verweis is null + AND credit_points is not null"; + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $creditpoints = $row->cp; + + if($creditpoints!='') + { + return $creditpoints; + } + else + return false; + } + else + { + // keine Einschraenkung vorhanden + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } /** * Fügt zur erstellten Buchung eine Zahlungsreferenz hinzu From 8fd09dfef836b7e4828e7ebdfea182bfb20348a1 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Fri, 7 Oct 2016 11:59:45 +0200 Subject: [PATCH 072/140] fixed credit points calculation --- cis/private/lehre/pruefung/pruefungsanmeldung.json.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 4ae16864e..520b2b23a 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -515,11 +515,14 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) // } //Kollisionsprüfung und Prüfung auf ausreichen Creditpoints - $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); + $pruefungstermin = new pruefungstermin($_REQUEST["termin_id"]); + $pf = new pruefungCis($pruefungstermin->pruefung_id); + $pruefungsfenster = new pruefungsfenster($pf->pruefungsfenster_id); + $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $pruefungsfenster->studiensemester_kurzbz); if($anmeldungen !== false) { - $ects = 0; + $ects = $lehrveranstaltung->ects; foreach($anmeldungen as $temp) { $lehrveranstaltung = new lehrveranstaltung($temp->lehrveranstaltung_id); @@ -535,7 +538,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) } $konto = new konto(); - $creditPoints = $konto->getCreditPointsOfStudiensemester($uid, $aktStudiensemester); + $creditPoints = $konto->getCreditPointsOfStudiensemester($uid, $pruefungsfenster->studiensemester_kurzbz); if(($creditPoints != false) && ($ects >= ($creditPoints - $ects))) { $data['error'] = 'true'; From 993b3812823db4c6e99e76dfae89a746cb08f4b9 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Fri, 7 Oct 2016 12:22:19 +0200 Subject: [PATCH 073/140] fixed credit point calculation --- cis/private/lehre/pruefung/pruefungsanmeldung.json.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 520b2b23a..3b69bba8f 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -522,11 +522,11 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) if($anmeldungen !== false) { - $ects = $lehrveranstaltung->ects; + $ects_verwendet = 0; foreach($anmeldungen as $temp) { $lehrveranstaltung = new lehrveranstaltung($temp->lehrveranstaltung_id); - $ects += $lehrveranstaltung->ects; + $ects_verwendet += $lehrveranstaltung->ects; $datum = new datum(); if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis))) @@ -539,7 +539,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $konto = new konto(); $creditPoints = $konto->getCreditPointsOfStudiensemester($uid, $pruefungsfenster->studiensemester_kurzbz); - if(($creditPoints != false) && ($ects >= ($creditPoints - $ects))) + if(($creditPoints != false) && ($lehrveranstaltung->ects > ($creditPoints - $ects_verwendet))) { $data['error'] = 'true'; $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints'); From 51e9e071d5dc90b82795c5f4f3197134a9884532 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 7 Oct 2016 13:57:06 +0200 Subject: [PATCH 074/140] Attribute Studienplan, Genemigung und Pflicht in die Liste aufgenommen --- include/lehrveranstaltung.class.php | 504 ++++++++++++++-------------- vilesci/lehre/studienordnung.js | 60 ++-- vilesci/lehre/studienordnung.php | 38 ++- 3 files changed, 296 insertions(+), 306 deletions(-) diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index 40b8f64f7..0879bada4 100755 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -289,8 +289,6 @@ class lehrveranstaltung extends basis_db //Select Befehl zusammenbauen if (!is_null($lehreverzeichnis)) $qry .= " AND lehreverzeichnis=" . $this->db_add_param($lehreverzeichnis); -// else -// $qry .= " AND lehreverzeichnis<>'' "; if (!is_null($semester) && $semester != '') $qry .= " AND semester=" . $this->db_add_param($semester, FHC_INTEGER); @@ -425,8 +423,6 @@ class lehrveranstaltung extends basis_db //Select Befehl zusammenbauen if (!is_null($lehreverzeichnis)) $qry .= " AND lehreverzeichnis=" . $this->db_add_param($lehreverzeichnis); - //else - // $qry .= " AND lehreverzeichnis<>'' "; if (!is_null($semester) && $semester != '') $qry .= " AND semester=" . $this->db_add_param($semester); @@ -436,7 +432,6 @@ class lehrveranstaltung extends basis_db if (!is_null($studiensemester_kurzbz) && $studiensemester_kurzbz != '') $qry .= " AND tbl_lehreinheit.studiensemester_kurzbz=" . $this->db_add_param($studiensemester_kurzbz); - if (!is_null($lehre)) $qry .= " AND lehre=" . ($lehre ? 'true' : 'false'); @@ -527,10 +522,10 @@ class lehrveranstaltung extends basis_db WHERE lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM campus.vw_student_lehrveranstaltung WHERE uid=" . $this->db_add_param($student_uid); if($studiensemester_kurzbz !== NULL) - $qry .= " AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); + $qry .= " AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); $qry .= ") OR lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM lehre.tbl_zeugnisnote WHERE student_uid=" . $this->db_add_param($student_uid); if($studiensemester_kurzbz !== NULL) - $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param ($studiensemester_kurzbz); + $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param ($studiensemester_kurzbz); $qry .= ") ORDER BY semester, bezeichnung"; //Datensaetze laden @@ -608,16 +603,10 @@ class lehrveranstaltung extends basis_db $this->errormsg = 'studiengang_kz muss eine gueltige Zahl sein'; return false; } -/* - if(is_null($orgform_kurzbz) || $orgform_kurzbz=='') - { - $this->errormsg = 'keine orgform_kurzbz uebergeben'; - return false; - }*/ $qry='SELECT count(*) as count FROM lehre.tbl_lehrveranstaltung WHERE studiengang_kz='.$this->db_add_param($studiengang_kz).' AND orgform_kurzbz'.(is_null($orgform_kurzbz)?' is null':"=".$this->db_add_param($orgform_kurzbz)); - //echo $qry; + $return=array(); if($db_result=$this->db_query($qry)) { @@ -1072,9 +1061,9 @@ class lehrveranstaltung extends basis_db } $qry = "SELECT mdl_course_id FROM lehre.tbl_moodle - WHERE studiensemester_kurzbz = " . $this->db_add_param($semester) . " - AND (lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . " - OR lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . "));"; + WHERE studiensemester_kurzbz = " . $this->db_add_param($semester) . " + AND (lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . " + OR lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . "));"; $moodleArray = array(); @@ -1323,7 +1312,7 @@ class lehrveranstaltung extends basis_db return $childs; } - /** + /** * Generiert die Subtrees des Lehrveranstaltungstrees */ public function hasChildren($studienplan_lehrveranstaltung_id) @@ -1338,15 +1327,14 @@ class lehrveranstaltung extends basis_db } } if(count($childs) > 0) - { - return true; - } - else - { - return false; - } - - } + { + return true; + } + else + { + return false; + } + } /** * Baut die Datenstruktur für senden als JSON Objekt auf @@ -1453,6 +1441,7 @@ class lehrveranstaltung extends basis_db $obj->zeugnis = $lv->zeugnis; $obj->curriculum = $lv->curriculum; $obj->export = $lv->export; + $obj->genehmigung = $lv->genehmigung; $obj->lehrauftrag = $lv->lehrauftrag; $obj->lehre = $lv->lehre; $obj->children = array(); @@ -1511,7 +1500,8 @@ class lehrveranstaltung extends basis_db */ public function loadLVkompatibel($lehrveranstaltung_id) { - if (!is_numeric($lehrveranstaltung_id)) { + if (!is_numeric($lehrveranstaltung_id)) + { $this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein'; return false; } @@ -1536,7 +1526,8 @@ class lehrveranstaltung extends basis_db */ public function getLVkompatibel($lehrveranstaltung_id) { - if (!is_numeric($lehrveranstaltung_id)) { + if (!is_numeric($lehrveranstaltung_id)) + { $this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein'; return false; } @@ -1676,11 +1667,13 @@ class lehrveranstaltung extends basis_db public function load_lva_oe($oe_kurzbz, $aktiv=null, $lehrtyp=null, $sort=null, $semester=null) { - if (is_null($oe_kurzbz)) { + if (is_null($oe_kurzbz)) + { $this->errormsg = 'OE KurzBz darf nicht null sein'; return false; } - if (!is_null($aktiv) && !is_bool($aktiv)) { + if (!is_null($aktiv) && !is_bool($aktiv)) + { $this->errormsg = 'Aktivkz muss ein boolscher Wert sein'; return false; } @@ -1942,125 +1935,125 @@ class lehrveranstaltung extends basis_db } } - /** - * lädt die Lehrveranstaltungen zum zugehörigen Mitarbeiter - * @param String $uid User ID des Mitarbeiters - * @param String $studiensemster_kurzbz Kurzbezeichnung des Studiensemesters - */ - public function getLVByMitarbeiter($uid, $studiensemester_kurzbz = null) - { - $qry = 'SELECT DISTINCT tbl_lehrveranstaltung.* FROM lehre.tbl_lehrveranstaltung - JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) - JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) - WHERE - mitarbeiter_uid='.$this->db_add_param($uid); + /** + * lädt die Lehrveranstaltungen zum zugehörigen Mitarbeiter + * @param String $uid User ID des Mitarbeiters + * @param String $studiensemster_kurzbz Kurzbezeichnung des Studiensemesters + */ + public function getLVByMitarbeiter($uid, $studiensemester_kurzbz = null) + { + $qry = 'SELECT DISTINCT tbl_lehrveranstaltung.* FROM lehre.tbl_lehrveranstaltung + JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) + JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) + WHERE + mitarbeiter_uid='.$this->db_add_param($uid); - if($studiensemester_kurzbz != null) - { - $qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).';'; - } + if($studiensemester_kurzbz != null) + { + $qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).';'; + } - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $lv_obj = new lehrveranstaltung(); + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $lv_obj = new lehrveranstaltung(); - $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $lv_obj->studiengang_kz = $row->studiengang_kz; - $lv_obj->bezeichnung = $row->bezeichnung; - $lv_obj->kurzbz = $row->kurzbz; - $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; - $lv_obj->semester = $row->semester; - $lv_obj->ects = $row->ects; - $lv_obj->semesterstunden = $row->semesterstunden; - $lv_obj->anmerkung = $row->anmerkung; - $lv_obj->lehre = $this->db_parse_bool($row->lehre); - $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; - $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); - $lv_obj->ext_id = $row->ext_id; - $lv_obj->insertamum = $row->insertamum; - $lv_obj->insertvon = $row->insertvon; - $lv_obj->planfaktor = $row->planfaktor; - $lv_obj->planlektoren = $row->planlektoren; - $lv_obj->planpersonalkosten = $row->planpersonalkosten; - $lv_obj->plankostenprolektor = $row->plankostenprolektor; - $lv_obj->updateamum = $row->updateamum; - $lv_obj->updatevon = $row->updatevon; - $lv_obj->sprache = $row->sprache; - $lv_obj->sort = $row->sort; - $lv_obj->incoming = $row->incoming; - $lv_obj->zeugnis = $this->db_parse_bool($row->zeugnis); - $lv_obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); - $lv_obj->zeugnis = $row->koordinator; - $lv_obj->bezeichnung_english = $row->bezeichnung_english; - $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; - $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; - $lv_obj->oe_kurzbz = $row->oe_kurzbz; - $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; - $lv_obj->anzahlsemester = $row->anzahlsemester; - $lv_obj->semesterwochen = $row->semesterwochen; - $lv_obj->lvnr = $row->lvnr; - $lv_obj->semester_alternativ = $row->semester_alternativ; - $lv_obj->farbe = $row->farbe; - $lv_obj->benotung = $this->db_parse_bool($row->benotung); - $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); - $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); + $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $lv_obj->studiengang_kz = $row->studiengang_kz; + $lv_obj->bezeichnung = $row->bezeichnung; + $lv_obj->kurzbz = $row->kurzbz; + $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; + $lv_obj->semester = $row->semester; + $lv_obj->ects = $row->ects; + $lv_obj->semesterstunden = $row->semesterstunden; + $lv_obj->anmerkung = $row->anmerkung; + $lv_obj->lehre = $this->db_parse_bool($row->lehre); + $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; + $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); + $lv_obj->ext_id = $row->ext_id; + $lv_obj->insertamum = $row->insertamum; + $lv_obj->insertvon = $row->insertvon; + $lv_obj->planfaktor = $row->planfaktor; + $lv_obj->planlektoren = $row->planlektoren; + $lv_obj->planpersonalkosten = $row->planpersonalkosten; + $lv_obj->plankostenprolektor = $row->plankostenprolektor; + $lv_obj->updateamum = $row->updateamum; + $lv_obj->updatevon = $row->updatevon; + $lv_obj->sprache = $row->sprache; + $lv_obj->sort = $row->sort; + $lv_obj->incoming = $row->incoming; + $lv_obj->zeugnis = $this->db_parse_bool($row->zeugnis); + $lv_obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); + $lv_obj->zeugnis = $row->koordinator; + $lv_obj->bezeichnung_english = $row->bezeichnung_english; + $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; + $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; + $lv_obj->oe_kurzbz = $row->oe_kurzbz; + $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; + $lv_obj->anzahlsemester = $row->anzahlsemester; + $lv_obj->semesterwochen = $row->semesterwochen; + $lv_obj->lvnr = $row->lvnr; + $lv_obj->semester_alternativ = $row->semester_alternativ; + $lv_obj->farbe = $row->farbe; + $lv_obj->benotung = $this->db_parse_bool($row->benotung); + $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); + $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); - $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; - $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; - if ($lv_obj->bezeichnung_arr['English'] == '') - $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; + $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; + $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; + if ($lv_obj->bezeichnung_arr['English'] == '') + $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; - $this->lehrveranstaltungen[] = $lv_obj; - } - return true; - } - else - { - $this->errormsg = "Lehrveranstaltungen konnten nicht geladen werden."; - } + $this->lehrveranstaltungen[] = $lv_obj; + } + return true; + } + else + { + $this->errormsg = "Lehrveranstaltungen konnten nicht geladen werden."; + } - } + } - /** - * Lädt alle Studenten UIDs die die angegebenen LV besuchen (optional mit Studiensemester) - * @param integer $lehrveranstaltung_id ID der Lehrveranstaltung - * @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters - * @return boolean|array false, wenn eine Fehler auftritt; Array mit UIDs wenn erfolgreich - */ - public function getStudentsOfLv($lehrveranstaltung_id, $studiensemester_kurzbz=null, $lehreinheit_id=null) - { - if(!is_numeric($lehrveranstaltung_id)) - { - $this->errormsg = "Lehrveranstaltung ID muss eine gültige Zahl sein."; - return false; - } + /** + * Lädt alle Studenten UIDs die die angegebenen LV besuchen (optional mit Studiensemester) + * @param integer $lehrveranstaltung_id ID der Lehrveranstaltung + * @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters + * @return boolean|array false, wenn eine Fehler auftritt; Array mit UIDs wenn erfolgreich + */ + public function getStudentsOfLv($lehrveranstaltung_id, $studiensemester_kurzbz=null, $lehreinheit_id=null) + { + if(!is_numeric($lehrveranstaltung_id)) + { + $this->errormsg = "Lehrveranstaltung ID muss eine gültige Zahl sein."; + return false; + } - $qry = 'SELECT distinct uid FROM campus.vw_student_lehrveranstaltung WHERE ' - . 'lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id); + $qry = 'SELECT distinct uid FROM campus.vw_student_lehrveranstaltung WHERE ' + . 'lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id); - if(!is_null($studiensemester_kurzbz)) - { - $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz); - } - if(!is_null($lehreinheit_id)) - { - $qry .= ' AND lehreinheit_id='.$this->db_add_param($lehreinheit_id); - } - $qry .= ';'; + if(!is_null($studiensemester_kurzbz)) + { + $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz); + } + if(!is_null($lehreinheit_id)) + { + $qry .= ' AND lehreinheit_id='.$this->db_add_param($lehreinheit_id); + } + $qry .= ';'; - if($this->db_query($qry)) - { - $result = array(); - while($row = $this->db_fetch_object()) - { - array_push($result, $row->uid); - } - return $result; - } - return false; - } + if($this->db_query($qry)) + { + $result = array(); + while($row = $this->db_fetch_object()) + { + array_push($result, $row->uid); + } + return $result; + } + return false; + } /** * @@ -2097,7 +2090,7 @@ class lehrveranstaltung extends basis_db } - $qry_alvs = "SELECT sum(lm.semesterstunden) as alvs + $qry_alvs = "SELECT sum(lm.semesterstunden) as alvs FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id) JOIN lehre.tbl_lehreinheitmitarbeiter lm USING (lehreinheit_id) @@ -2167,14 +2160,13 @@ class lehrveranstaltung extends basis_db public function lehreverzeichnisExists($lehreverzeichnis, $studiengang_kz, $semester) { $qry = 'SELECT - 1 - FROM - lehre.tbl_lehrveranstaltung - WHERE - lehreverzeichnis='.$this->db_add_param($lehreverzeichnis).' - AND studiengang_kz='.$this->db_add_param($studiengang_kz).' - AND semester='.$this->db_add_param($semester).';'; - + 1 + FROM + lehre.tbl_lehrveranstaltung + WHERE + lehreverzeichnis='.$this->db_add_param($lehreverzeichnis).' + AND studiengang_kz='.$this->db_add_param($studiengang_kz).' + AND semester='.$this->db_add_param($semester).';'; if($this->db_query($qry)) { @@ -2201,117 +2193,117 @@ class lehrveranstaltung extends basis_db */ public function getLVFromStudienplanByLehrtyp($studienplan_id, $lehrtyp_kurzbz=NULL, $semester=NULL) { - if (!is_numeric($studienplan_id) || $studienplan_id === '') - { - $this->errormsg = 'StudienplanID ist ungueltig'; - return false; - } + if (!is_numeric($studienplan_id) || $studienplan_id === '') + { + $this->errormsg = 'StudienplanID ist ungueltig'; + return false; + } - $qry = "SELECT DISTINCT tbl_lehrveranstaltung.* + $qry = "SELECT DISTINCT tbl_lehrveranstaltung.* FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id) WHERE tbl_studienplan_lehrveranstaltung.studienplan_id=" . $this->db_add_param($studienplan_id, FHC_INTEGER); - if (!is_null($lehrtyp_kurzbz)) - { - $qry.=" AND tbl_lehrveranstaltung.lehrtyp_kurzbz=" . $this->db_add_param($lehrtyp_kurzbz, FHC_STRING); - } - - if (!is_null($semester)) - { - $qry.=" AND tbl_studienplan_lehrveranstaltung.semester=" . $this->db_add_param($semester, FHC_INTEGER); - } - $qry.=" ORDER BY bezeichnung;"; - - $this->lehrveranstaltungen = array(); - if ($result = $this->db_query($qry)) - { - while ($row = $this->db_fetch_object($result)) + if (!is_null($lehrtyp_kurzbz)) { - $obj = new lehrveranstaltung(); - - $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $obj->studiengang_kz = $row->studiengang_kz; - $obj->bezeichnung = $row->bezeichnung; - $obj->kurzbz = $row->kurzbz; - $obj->lehrform_kurzbz = $row->lehrform_kurzbz; - $obj->semester = $row->semester; - $obj->ects = $row->ects; - $obj->semesterstunden = $row->semesterstunden; - $obj->anmerkung = $row->anmerkung; - $obj->lehre = $this->db_parse_bool($row->lehre); - $obj->lehreverzeichnis = $row->lehreverzeichnis; - $obj->aktiv = $this->db_parse_bool($row->aktiv); - $obj->ext_id = $row->ext_id; - $obj->insertamum = $row->insertamum; - $obj->insertvon = $row->insertvon; - $obj->planfaktor = $row->planfaktor; - $obj->planlektoren = $row->planlektoren; - $obj->planpersonalkosten = $row->planpersonalkosten; - $obj->plankostenprolektor = $row->plankostenprolektor; - $obj->updateamum = $row->updateamum; - $obj->updatevon = $row->updatevon; - $obj->sprache = $row->sprache; - $obj->sort = $row->sort; - $obj->incoming = $row->incoming; - $obj->zeugnis = $this->db_parse_bool($row->zeugnis); - $obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); - $obj->koordinator = $row->koordinator; - $obj->bezeichnung_english = $row->bezeichnung_english; - $obj->orgform_kurzbz = $row->orgform_kurzbz; - $obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; - $obj->oe_kurzbz = $row->oe_kurzbz; - $obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; - $obj->anzahlsemester = $row->anzahlsemester; - $obj->semesterwochen = $row->semesterwochen; - $obj->lvnr = $row->lvnr; - $obj->semester_alternativ = $row->semester_alternativ; - $obj->farbe = $row->farbe; - $obj->benotung = $this->db_parse_bool($row->benotung); - $obj->lvinfo = $this->db_parse_bool($row->lvinfo); - $obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); - - $obj->bezeichnung_arr['German'] = $row->bezeichnung; - $obj->bezeichnung_arr['English'] = $row->bezeichnung_english; - if ($obj->bezeichnung_arr['English'] == '') - $obj->bezeichnung_arr['English'] = $obj->bezeichnung_arr['German']; - - $obj->new = false; - - $this->lehrveranstaltungen[] = $obj; + $qry.=" AND tbl_lehrveranstaltung.lehrtyp_kurzbz=" . $this->db_add_param($lehrtyp_kurzbz, FHC_STRING); } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - /** - * Gibt alle Organisationseinheiten der Studiengänge zurück, mit denen - * die Lehrveranstaltung über Studienpläne verknüpft ist - * @return boolean|array false im Fehlerfall, sonst ein Array - */ - public function getAllOe() - { - $oe = array(); + if (!is_null($semester)) + { + $qry.=" AND tbl_studienplan_lehrveranstaltung.semester=" . $this->db_add_param($semester, FHC_INTEGER); + } + $qry.=" ORDER BY bezeichnung;"; - $qry = 'SELECT DISTINCT oe_kurzbz - FROM lehre.tbl_studienplan_lehrveranstaltung - JOIN lehre.tbl_studienplan USING(studienplan_id) - JOIN lehre.tbl_studienordnung USING(studienordnung_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE lehrveranstaltung_id = '.$this->db_add_param($this->lehrveranstaltung_id); - - if($result = $this->db_query($qry)) + $this->lehrveranstaltungen = array(); + if ($result = $this->db_query($qry)) { while ($row = $this->db_fetch_object($result)) - { - $oe[] = $row->oe_kurzbz; - } + { + $obj = new lehrveranstaltung(); + + $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $obj->studiengang_kz = $row->studiengang_kz; + $obj->bezeichnung = $row->bezeichnung; + $obj->kurzbz = $row->kurzbz; + $obj->lehrform_kurzbz = $row->lehrform_kurzbz; + $obj->semester = $row->semester; + $obj->ects = $row->ects; + $obj->semesterstunden = $row->semesterstunden; + $obj->anmerkung = $row->anmerkung; + $obj->lehre = $this->db_parse_bool($row->lehre); + $obj->lehreverzeichnis = $row->lehreverzeichnis; + $obj->aktiv = $this->db_parse_bool($row->aktiv); + $obj->ext_id = $row->ext_id; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->planfaktor = $row->planfaktor; + $obj->planlektoren = $row->planlektoren; + $obj->planpersonalkosten = $row->planpersonalkosten; + $obj->plankostenprolektor = $row->plankostenprolektor; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->sprache = $row->sprache; + $obj->sort = $row->sort; + $obj->incoming = $row->incoming; + $obj->zeugnis = $this->db_parse_bool($row->zeugnis); + $obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); + $obj->koordinator = $row->koordinator; + $obj->bezeichnung_english = $row->bezeichnung_english; + $obj->orgform_kurzbz = $row->orgform_kurzbz; + $obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; + $obj->anzahlsemester = $row->anzahlsemester; + $obj->semesterwochen = $row->semesterwochen; + $obj->lvnr = $row->lvnr; + $obj->semester_alternativ = $row->semester_alternativ; + $obj->farbe = $row->farbe; + $obj->benotung = $this->db_parse_bool($row->benotung); + $obj->lvinfo = $this->db_parse_bool($row->lvinfo); + $obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); + + $obj->bezeichnung_arr['German'] = $row->bezeichnung; + $obj->bezeichnung_arr['English'] = $row->bezeichnung_english; + if ($obj->bezeichnung_arr['English'] == '') + $obj->bezeichnung_arr['English'] = $obj->bezeichnung_arr['German']; + + $obj->new = false; + + $this->lehrveranstaltungen[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Gibt alle Organisationseinheiten der Studiengänge zurück, mit denen + * die Lehrveranstaltung über Studienpläne verknüpft ist + * @return boolean|array false im Fehlerfall, sonst ein Array + */ + public function getAllOe() + { + $oe = array(); + + $qry = 'SELECT DISTINCT oe_kurzbz + FROM lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE lehrveranstaltung_id = '.$this->db_add_param($this->lehrveranstaltung_id); + + if($result = $this->db_query($qry)) + { + while ($row = $this->db_fetch_object($result)) + { + $oe[] = $row->oe_kurzbz; + } } else { @@ -2319,16 +2311,16 @@ class lehrveranstaltung extends basis_db return false; } - // oe_kurzbz des Studiengangs der LVA hinzufügen - $stg = new studiengang($this->studiengang_kz); + // oe_kurzbz des Studiengangs der LVA hinzufügen + $stg = new studiengang($this->studiengang_kz); - if(!in_array($stg->oe_kurzbz, $oe)) - { - $oe[] = $this->oe_kurzbz; - } + if(!in_array($stg->oe_kurzbz, $oe)) + { + $oe[] = $this->oe_kurzbz; + } - return $oe; - } + return $oe; + } /** * Laedt den LV-Leiter einer Lehrveranstaltung, wenn keiner der Lektoren als LVLeiter eingetragen ist, diff --git a/vilesci/lehre/studienordnung.js b/vilesci/lehre/studienordnung.js index 39c28dcd0..879af29af 100755 --- a/vilesci/lehre/studienordnung.js +++ b/vilesci/lehre/studienordnung.js @@ -245,7 +245,7 @@ function GenerateTreeChilds(data) } var obj = { "data":data.bezeichnung, - "metadata": {"lehrveranstaltung_id":data.lehrveranstaltung_id,"bezeichnung":data.bezeichnung,"ects":data.ects,"semesterstunden":data.semesterstunden,"lehrform_kurzbz":data.lehrform_kurzbz,"lvnr":data.lvnr,"sortierung":data.stpllv_sort}, + "metadata": {"lehrveranstaltung_id":data.lehrveranstaltung_id,"bezeichnung":data.bezeichnung,"ects":data.ects,"semesterstunden":data.semesterstunden,"lehrform_kurzbz":data.lehrform_kurzbz,"lvnr":data.lvnr,"sortierung":data.stpllv_sort,"pflicht":data.stpllv_pflicht,"export":data.export,"genehmigung":data.genehmigung}, "attr":{"id":data.studienplan_lehrveranstaltung_id,"rel":data.lehrtyp_kurzbz,"lvID":data.lehrveranstaltung_id,"studienplan_lehrveranstaltung_id":data.studienplan_lehrveranstaltung_id}, "children":children }; @@ -423,10 +423,13 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester) columns: [ {width: 300, header: "Lehrveranstaltung", value: "bezeichnung", source: "metadata", headerClass: "header_lv"}, {width: 50, header: "ECTS", value: "ects", source: "metadata", wideCellClass: "col_ects", headerClass: "header_ects"}, - {width: 120, header: "Semesterstunden", value: "semesterstunden", source: "metadata", cellClass: "col_semesterstunden"}, + {width: 60, header: "SemStd", value: "semesterstunden", source: "metadata", cellClass: "col_left"}, {width: 80, header: "Lehrform", value: "lehrform_kurzbz", source: "metadata", cellClass: "col_lehrform"}, - {width: 80, header: "LVNR", value: "lvnr", source: "metadata", cellClass: "col_lvnr"}, - {width: 80, header: "Sortierung", value: "sortierung", source: "metadata", cellClass: "col_sortierung"}, + {width: 60, header: "StudPlan", value: "export", source: "metadata", cellClass: "col_left"}, + {width: 60, header: "Pflicht", value: "pflicht", source: "metadata", cellClass: "col_left"}, + {width: 60, header: "Gen", value: "genehmigung", source: "metadata", cellClass: "col_left"}, + {width: 80, header: "LVNR", value: "lvnr", source: "metadata", cellClass: "col_left"}, + {width: 60, header: "Sort", value: "sortierung", source: "metadata", cellClass: "col_left"}, ], resizable: true }, @@ -486,39 +489,31 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester) plugins: ["themes", "ui", "dnd", "grid", "json_data", "crrm", "types", "sort", "contextmenu"] }).bind("move_node.jstree", function(event, data) { -// if(searchTree(data.rslt.r, data.rslt.o.attr("id"))) -// { -// $("#treeData").jstree("remove", "#"+data.rslt.oc.attr("id")); -// alert("Lehrveranstaltung bereits vorhanden"); -// } -// else -// { - // Verschieben eines Eintrages + // Verschieben eines Eintrages - // Studienplan_lehrveranstaltung_id ermitteln - var studienplan_lehrveranstaltung_id=''; - if(data.rslt.o[0].attributes.studienplan_lehrveranstaltung_id){ - studienplan_lehrveranstaltung_id=data.rslt.o[0].attributes.studienplan_lehrveranstaltung_id.value; - //$("#treeData").jstree('refresh'); - } + // Studienplan_lehrveranstaltung_id ermitteln + var studienplan_lehrveranstaltung_id=''; + if(data.rslt.o[0].attributes.studienplan_lehrveranstaltung_id){ + studienplan_lehrveranstaltung_id=data.rslt.o[0].attributes.studienplan_lehrveranstaltung_id.value; + //$("#treeData").jstree('refresh'); + } - // Aenderung speichern - saveJsondataFromTree(data.rslt.o[0].id, global_studienplan_id, studienplan_lehrveranstaltung_id); + // Aenderung speichern + saveJsondataFromTree(data.rslt.o[0].id, global_studienplan_id, studienplan_lehrveranstaltung_id); - // ECTS Summen neu berechnen - var root = data.inst.get_container_ul(); - var nodes = root[0].childNodes; - for(var i=0; i * Stefan Puraner @@ -48,37 +48,41 @@ echo ' - + - + - + - +
        @@ -242,7 +246,7 @@ echo '
      + + + loadAddons(); foreach($addon_obj->result as $addon) { - if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php')) - echo ''; + if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php')) + echo ''; } // Wenn Seite fertig geladen ist Addons aufrufen @@ -139,31 +191,71 @@ $( document ).ready(function() $("#t1").tablesorter( { sortList: [[1,0],[3,0],[4,0]], - widgets: ["zebra"] + widgets: ["zebra"], + headers: {0:{sorter:false}, 9:{sorter:false}} }); $("#t2").tablesorter( - { - sortList: [[0,0]], - widgets: ["zebra"] - }); + { + sortList: [[0,0]], + widgets: ["zebra"] + }); $("#t3").tablesorter( - { - sortList: [[1,0],[3,0],[4,0],[5,0]], - widgets: ["zebra"] - }); + { + sortList: [[1,0],[3,0],[4,0],[5,0]], + widgets: ["zebra"], + headers: {9:{sorter:false}} + }); }); - + - - - - + +
      Administration titelpre." ".$person->vorname." ".$person->nachname." ".$person->titelpost?> - +
      + + + + + + echo ''.$p->t("global/englisch").' | + '.$p->t("global/deutsch").'
      ';?>
      t("incoming/hauptmenue") ?> titelpre." ".$person->vorname." ".$person->nachname." ".$person->titelpost?>
      + Logout
      t("global/sprache")." "; - echo ''.$p->t("global/englisch").' | - '.$p->t("global/deutsch").'
      ';?>
      - +
      + + + - - - - - + - + @@ -238,10 +329,6 @@ if($method =="austauschprogram") - - - -

      '.$p->t('incoming/austauschprogram').'

      @@ -214,17 +309,13 @@ if($method =="austauschprogram") } echo '
      '.$p->t('global/code').'*
      '.$p->t('incoming/studiertvon').' (dd.mm.yyyy) (dd.mm.yyyy)
      '.$p->t('incoming/studiertbis').' (dd.mm.yyyy) (dd.mm.yyyy)
         
      * '.$p->t('incoming/wennVorhanden').'
      '; @@ -255,9 +342,9 @@ else if($method=="lehrveranstaltungen") $id= $_GET['id']; if($preincoming->addLehrveranstaltung($preincoming->preincoming_id, $_GET['id'], date('Y-m-d H:i:s'))) - echo $p->t('global/erfolgreichgespeichert'); + $message = ''.($p->t('global/erfolgreichgespeichert')).''; else - echo $p->t('global/fehleraufgetreten'); + $message = ''.($p->t('global/fehleraufgetreten')).''; } // löschen der LV-ID if($_GET['mode'] == "delete") @@ -265,9 +352,9 @@ else if($method=="lehrveranstaltungen") $id= $_GET['id']; if($preincoming->deleteLehrveranstaltung($preincoming->preincoming_id, $_GET['id'])) - echo $p->t('global/erfolgreichgelöscht'); + $message = ''.($p->t('global/erfolgreichgelöscht')).''; else - echo $p->t('global/fehleraufgetreten'); + $message = ''.($p->t('global/fehleraufgetreten')).''; } } if(isset($_GET['mode']) && $_GET['mode'] == "thesis") @@ -329,14 +416,16 @@ else if($method=="lehrveranstaltungen") { $lvs = $preincoming->getLehrveranstaltungen($preincoming->preincoming_id); echo '


      - - - - - - - - +
      '.$p->t('incoming/übersichtlehrveranstaltungen').''.$p->t('incoming/eigenelehrveranstaltungen').'
       
      + + + + + + + + +

      '.$p->t('incoming/eigenelehrveranstaltungen').'

      '.$p->t('incoming/übersichtlehrveranstaltungen').'
       
      '; /* Wird laut Telefonat mit Giedre Jukneviciute am 14.10.2015 derzeit nicht benötigt und soll daher ausgeblendet werden. @@ -381,18 +470,21 @@ else if($method=="lehrveranstaltungen") echo '


      '; }*/ - + echo '
      '.$message.'
      '; echo ' - +
      + - + + + '; @@ -409,31 +501,36 @@ else if($method=="lehrveranstaltungen") else if ($studiengang->typ == 'm') $typ = 'MA'; echo ''; - echo ''; - echo ''; + //echo ''; + echo ''; echo ''; echo ''; + echo ''; echo ''; echo ''; echo ''; + echo ''; + echo ''; echo ''; echo ''; } + echo '
      '.$p->t('global/studiengang').' '.$p->t('abgabetool/typ').''.$p->t('incoming/orgform').' '.$p->t('global/semester').' '.$p->t('global/lehrveranstaltung').' '.$p->t('global/lehrveranstaltung').' '.$p->t('global/englisch').'Info'.$p->t('incoming/ects').''.$p->t('courseInformation/unterrichtssprache').''.$p->t('incoming/lvInfo').'
      '.$lehrveranstaltung->lehrveranstaltung_id.' '.$p->t('global/löschen').''.$lehrveranstaltung->lehrveranstaltung_id.' '.$p->t('global/löschen').'',$studiengang_language,'',$typ,'',$lehrveranstaltung->orgform_kurzbz,'',$lehrveranstaltung->semester,'',$lehrveranstaltung->bezeichnung,'',$lehrveranstaltung->bezeichnung_english,'',$lehrveranstaltung->ects,'',($lehrveranstaltung->sprache=='German'?$p->t("global/deutsch"):$p->t("global/englisch")),' - Deutsch  - Englisch + '.$p->t("global/deutsch").'  + '.$p->t("global/englisch").'
      '; } } // Übersicht aller LVs else { - echo '


      - + echo '
      + + + - - - + +

      '.$p->t('incoming/übersichtlehrveranstaltungen').'

      '.$p->t('incoming/übersichtlehrveranstaltungen').''.$p->t('incoming/eigenelehrveranstaltungen').''.$p->t('incoming/eigenelehrveranstaltungen').'


      '; @@ -515,12 +612,12 @@ else if($method=="lehrveranstaltungen")

      ';*/ - echo ' + /*echo '
      -
      Course application is currently disabled. Please contact the office to apply for courses.
      '; - /*echo ' -
      +
      ';*/ + echo ' + @@ -530,7 +627,7 @@ else if($method=="lehrveranstaltungen")
      '.$p->t('incoming/studentenImWS').'
      '.$p->t('incoming/filter').': - '; // Vorauswahl der Übergebenen Filter @@ -548,7 +645,7 @@ else if($method=="lehrveranstaltungen") echo ''; echo'
      '; - echo $p->t('courseInformation/unterrichtssprache').': '; // Vorauswahl der Übergebenen Filter @@ -561,30 +658,48 @@ else if($method=="lehrveranstaltungen") elseif($_GET['unterrichtssprache']=='English') $EnglishSelected='selected'; - echo ''; + echo ''; - echo ''; + echo ''; echo'
      '; - echo $p->t('global/studiengang').': '; - // Vorauswahl der Übergebenen Filter + // Vorauswahl der Übergebenen Filter - $studiengang = new studiengang(); - $studiengang->getAll('typ,kurzbz', true); + $studiengang = new studiengang(); + $studiengang->getAll('typ,kurzbz', true); + $type = array('b' => 'Bachelor', 'm' => 'Master', 'e' => 'Other'); + $typ = ''; - foreach ($studiengang->result as $row) + foreach ($studiengang->result as $row) + { + //Nur Bachelor, Master und CIR-Studiengang + if ($row->typ == 'b' || $row->typ == 'm' || $row->studiengang_kz == '10006') { $selected = ''; + + if ($typ != $row->typ || $typ=='') + { + if ($typ!='') + echo ''; + echo ''; + } + if(isset($_GET['studiengang']) && $_GET['studiengang'] == $row->studiengang_kz) $selected='selected'; $studiengang_language = ($sprache == 'German') ? $row->bezeichnung : $row->english; echo ''; + $typ = $row->typ; } + } - echo''; + echo'

      '; + echo ''; + //echo ''; + echo ''; echo '
      @@ -616,9 +731,9 @@ else if($method=="lehrveranstaltungen") if(isset($_GET['unterrichtssprache']) && $_GET['unterrichtssprache']!='') $filterqry .= " AND tbl_lehrveranstaltung.sprache='".$_GET['unterrichtssprache']."'"; - + //Uebersicht LVs - /* Erklaerung der Datumszeitraeume ab Zeile 650: + /* Erklaerung der Datumszeitraeume ab Zeile 663: * |=============== Studiensemester ===============| * |--------------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend innerhalb SS * |--------------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend innerhalb SS @@ -629,131 +744,159 @@ else if($method=="lehrveranstaltungen") * |----------------------- Bis ist NULL und von innerhalb SS */ - /*$qry = "SELECT - tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.ects, - tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache, - tbl_lehrveranstaltung.bezeichnung_english, tbl_lehrveranstaltung.incoming, tbl_lehrveranstaltung.orgform_kurzbz, - ( - Select count(*) - FROM ( - SELECT - person_id - FROM - campus.vw_student_lehrveranstaltung - JOIN public.tbl_benutzer using(uid) - JOIN public.tbl_student ON(uid=student_uid) - JOIN public.tbl_prestudentstatus USING(prestudent_id) - WHERE - lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - AND - lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit - WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - AND - tbl_lehreinheit.studiensemester_kurzbz='$stsem->studiensemester_kurzbz') - AND - tbl_prestudentstatus.status_kurzbz='Incoming' - AND tbl_prestudentstatus.studiensemester_kurzbz='$stsem->studiensemester_kurzbz' - UNION - SELECT - person_id - FROM - public.tbl_preincoming_lehrveranstaltung - JOIN public.tbl_preincoming using(preincoming_id) - WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - AND - ( - (bis - '$stsem->start' > '$stsem->start' - von) OR - ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR - (von >= '$stsem->start' AND bis <= '$stsem->ende') OR - (von <= '$stsem->start' AND bis >= '$stsem->ende') OR - (von IS NULL AND bis IS NULL) OR - (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR - (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') - ) - AND aktiv = true - )a ) as anzahl - FROM - lehre.tbl_lehrveranstaltung - JOIN - public.tbl_studiengang USING(studiengang_kz) - WHERE - tbl_lehrveranstaltung.incoming>0 AND - tbl_lehrveranstaltung.aktiv AND - tbl_lehrveranstaltung.lehre AND - tbl_lehrveranstaltung.lehrveranstaltung_id IN ( - SELECT lehrveranstaltung_id FROM lehre.tbl_studienplan_lehrveranstaltung - JOIN lehre.tbl_studienplan USING (studienplan_id) - JOIN lehre.tbl_studienordnung USING (studienordnung_id) - WHERE tbl_studienordnung.status_kurzbz='approved' - AND tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id) AND - ((tbl_lehrveranstaltung.studiengang_kz>0 AND tbl_lehrveranstaltung.studiengang_kz<10000) OR tbl_lehrveranstaltung.studiengang_kz=10006)"; + $studiensemester_array = array(); + $studiensemester = new studiensemester(); + $studiensemester_array[] = $studiensemester->getakt(); - if (isset($_GET['studiengang']) && $_GET['studiengang'] !='') - $qry .= "AND tbl_lehrveranstaltung.studiengang_kz=".$_GET['studiengang']; - - $qry .= "AND tbl_studiengang.aktiv ".$filterqry." order by studiengang_kz - "; - - echo ' - - - - - - - - - - - - - - - - '; - if($result = $db->db_query($qry)) + $studiensemester->getFutureStudiensemester('',2); + foreach ($studiensemester->studiensemester AS $row) + $studiensemester_array[] = $row->studiensemester_kurzbz; + + if(isset($_GET['go'])) { - while($row = $db->db_fetch_object($result)) + $qry = "SELECT + tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.ects, + tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache, + tbl_lehrveranstaltung.bezeichnung_english, tbl_lehrveranstaltung.incoming, tbl_lehrveranstaltung.orgform_kurzbz, + ( + Select count(*) + FROM ( + SELECT + person_id + FROM + campus.vw_student_lehrveranstaltung + JOIN public.tbl_benutzer using(uid) + JOIN public.tbl_student ON(uid=student_uid) + JOIN public.tbl_prestudentstatus USING(prestudent_id) + WHERE + lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id + AND + lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id + AND + tbl_lehreinheit.studiensemester_kurzbz='$stsem->studiensemester_kurzbz') + AND + tbl_prestudentstatus.status_kurzbz='Incoming' + AND tbl_prestudentstatus.studiensemester_kurzbz='$stsem->studiensemester_kurzbz' + UNION + SELECT + person_id + FROM + public.tbl_preincoming_lehrveranstaltung + JOIN public.tbl_preincoming using(preincoming_id) + WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id + AND + ( + (bis - '$stsem->start' > '$stsem->start' - von) OR + ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR + (von >= '$stsem->start' AND bis <= '$stsem->ende') OR + (von <= '$stsem->start' AND bis >= '$stsem->ende') OR + (von IS NULL AND bis IS NULL) OR + (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR + (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') + ) + AND aktiv = true + )a ) as anzahl + FROM + lehre.tbl_lehrveranstaltung + JOIN + public.tbl_studiengang USING(studiengang_kz) + WHERE + tbl_lehrveranstaltung.incoming>0 AND + tbl_lehrveranstaltung.aktiv AND + tbl_lehrveranstaltung.lehre AND + tbl_lehrveranstaltung.lehrveranstaltung_id IN ( + SELECT lehrveranstaltung_id FROM lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN lehre.tbl_studienordnung USING (studienordnung_id) + JOIN lehre.tbl_studienplan_semester USING (studienplan_id) + WHERE tbl_studienordnung.status_kurzbz='approved' + AND tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id + AND tbl_studienplan_semester.studiensemester_kurzbz IN ('".implode("','", $studiensemester_array)."')) + AND ((tbl_lehrveranstaltung.studiengang_kz>0 AND tbl_lehrveranstaltung.studiengang_kz<10000) OR tbl_lehrveranstaltung.studiengang_kz=10006)"; + + if (isset($_GET['studiengang']) && $_GET['studiengang'] !='') + $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$_GET['studiengang']; + + $qry .= " AND tbl_studiengang.aktiv ".$filterqry." order by studiengang_kz + "; + + if($result = $db->db_query($qry)) { - $freieplaetze = $row->incoming - $row->anzahl; - //if($freieplaetze>0) - //{ - $studiengang = new studiengang(); - $studiengang->load($row->studiengang_kz); - $studiengang_language = ($sprache == 'German') ? $studiengang->bezeichnung : $studiengang->english; - $typ = $studiengang->typ; - if ($studiengang->typ == 'b') - $typ = 'BA'; - else if ($studiengang->typ == 'm') - $typ = 'MA'; - else - $typ = '-'; - echo ''; - echo ''; - if(!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze>0) - echo ''; - elseif (!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze==0) - echo ''; - else - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - //} + if ($db->db_affected_rows($result)>0) + { + echo '
      '.$message.'
      '; + echo '

      '.$p->t('incoming/tabelleSortierinformation').'

      '; + echo '
      '.$p->t('global/studiengang').''.$p->t('abgabetool/typ').''.$p->t('incoming/orgform').''.$p->t('global/semester').''.$p->t('global/lehrveranstaltung').''.$p->t('global/lehrveranstaltung').' '.$p->t('global/englisch').''.$p->t('incoming/ects').''.$p->t('courseInformation/unterrichtssprache').'Info'.$p->t('incoming/freieplätze').'
      '.$row->lehrveranstaltung_id.''.$p->t('global/anmelden').''.$p->t('incoming/noVacancies').''.$p->t('global/angemeldet').'',$studiengang_language,'',$typ,'',$row->orgform_kurzbz,'',$row->semester,'',$row->bezeichnung,'',$row->bezeichnung_english,'',$row->ects,'',$row->sprache,' - Deutsch  - Englisch - ',($freieplaetze<$row->incoming?''.$freieplaetze.'/'.$row->incoming.'':$freieplaetze.'/'.$row->incoming),'
      + + + + + + + + + + + + + + + + '; + while($row = $db->db_fetch_object($result)) + { + $freieplaetze = $row->incoming - $row->anzahl; + $style = ''; + + if ($preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id)) + $style = 'style="background-color: #88DD88"'; + elseif ($freieplaetze==0) + $style = 'style="background-color: #FF8888"'; + //if($freieplaetze>0) + //{ + $studiengang = new studiengang(); + $studiengang->load($row->studiengang_kz); + $studiengang_language = ($sprache == 'German') ? $studiengang->bezeichnung : $studiengang->english; + $typ = $studiengang->typ; + if ($studiengang->typ == 'b') + $typ = 'Bachelor'; + else if ($studiengang->typ == 'm') + $typ = 'Master'; + else + $typ = '-'; + echo ''; + //echo '';If not commented, tablesorter is not working correct + if(!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze>0) + echo ''; + elseif (!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze==0) + echo ''; + else + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + //} + } + echo '
      '.$p->t('global/studiengang').''.$p->t('abgabetool/typ').''.$p->t('incoming/orgform').''.$p->t('global/semester').''.$p->t('global/lehrveranstaltung').''.$p->t('global/lehrveranstaltung').' '.$p->t('global/englisch').''.$p->t('incoming/ects').''.$p->t('courseInformation/unterrichtssprache').''.$p->t('incoming/lvInfo').''.$p->t('incoming/freieplätze').'
      '.$row->lehrveranstaltung_id.''.$p->t('global/anmelden').''.$p->t('incoming/noVacancies').''.$p->t('global/angemeldet').'',$studiengang_language,'',$typ,'',$row->orgform_kurzbz,'',$row->semester,'',$row->bezeichnung,'',$row->bezeichnung_english,'',$row->ects,'',($row->sprache=='German'?$p->t("global/deutsch"):$p->t("global/englisch")),' + '.$p->t("global/deutsch").'  + '.$p->t("global/englisch").' + ',($freieplaetze<$row->incoming?''.$freieplaetze.' ('.$p->t('incoming/von').' '.$row->incoming.')':$freieplaetze.' ('.$p->t('incoming/von').' '.$row->incoming.')').'
      '; + } + else + echo '
      '.$p->t('incoming/derzeitKeineLehrveranstaltungen').'
      '; } } - echo '';*/ + else + echo '
      '.$p->t('incoming/waehlenSieAusDenOptionen').'
      '; } } else if ($method == "university") @@ -1211,7 +1354,10 @@ else if ($method == "university") } echo ' - +
      + + + +  '.$p->t('incoming/downloadLearningAgreementErasmus').'
      +  '.$p->t('incoming/downloadLearningAgreement').'


      + ',$p->t('incoming/fileupload'),'

      '; $akte->getAkten($person->person_id); if(count($akte->result)>0) { - echo '

      '.$p->t('incoming/eigeneuniversitaet').'

      @@ -1553,7 +1699,10 @@ else if ($method == "profil") } // Ausgabe Profil Formular echo' -
      +
      + + + @@ -1731,7 +1879,10 @@ echo' - +

      '.$p->t('incoming/persönlichedateneditieren').'

      @@ -1591,7 +1740,7 @@ else if ($method == "profil") - + @@ -1602,7 +1751,7 @@ else if ($method == "profil") - + @@ -1614,13 +1763,13 @@ else if ($method == "profil") - + - - - +
      '.$p->t('global/titel').' Pre '.$p->t('incoming/zugangsvoraussetzungmaster').''.$p->t('incoming/zugangsvoraussetzungmaster').'²
      '.$p->t('global/nachname').' '.$p->t('incoming/abgelegtinort').'
      '.$p->t('global/geburtsdatum').' (dd.mm.yyyy) (dd.mm.yyyy)  
      '.$p->t('global/staatsbuergerschaft').'
      '.$p->t('incoming/nation').'
      -
      ¹ '.$p->t('incoming/zugangsvoraussetzungFussnote').' + ¹ '.$p->t('incoming/zugangsvoraussetzungFussnote').'
      + ² '.$p->t('incoming/zugangsvoraussetzungMasterFussnote').' +
      @@ -1773,84 +1924,153 @@ echo' else if($method == 'files') { $akte = new akte(); - + $message = ''; if(isset($_GET['id'])) { if($_GET['mode']=="delete") { if($akte->delete($_GET['id'])) - echo($p->t('global/erfolgreichgelöscht')); + $message = ''.($p->t('global/erfolgreichgelöscht')).''; else - echo($p->t('global/fehleraufgetreten')); + $message = ''.($p->t('global/fehleraufgetreten')).''; } } echo ' -


      +
      + + + + + + + +

      '.$p->t('incoming/uploadvondateien').'

      - ',$p->t('incoming/fileupload'),'
      + echo '
      '.$message.'
      '; + echo '
      + - - '; + + + '; foreach ($akte->result as $ak) { echo ' - + - + '; } - echo '
      '.$p->t('incoming/name').''.$p->t('global/bezeichnung').'
      '.$ak->titel.''.$ak->bezeichnung.'
      '; + echo ''; } + else + echo 'foo'; +} +else if($method == 'ende') +{ + $message = ''; + // Profil speichern + if(isset($_POST['submit_ende'])) + { + // sende Nachricht an Assistenz + //$emailtext= "Dies ist eine automatisch generierte E-Mail.

      "; + $emailtext.= "Der/Die Incoming ".$person->vorname.' '.$person->nachname.' hat seine Registration abgeschlossen'; + + $emailtext = wordwrap($emailtext,70); //Bricht den Code um, da es sonst zu Anzeigefehlern im Mail kommen kann + + $mail = new mail(MAIL_INTERNATIONAL, 'no-reply', 'Incoming '.$person->vorname.' '.$person->nachname.' vollstaendig', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); + $mail->setHTMLContent($emailtext); + if(!$mail->send()) + $message = ''.($p->t('incoming/fehlerBeimSenden')).''; + else + $message = ''.($p->t('incoming/erfolgreichAbgeschickt')).''; + + } + echo '
      '.$message.'
      '; + echo '


      + + + + + + + + + + +




      '.$p->t('incoming/dankeFuerIhreAnmeldung').'

      +

      +
      + '; } // Ausgabe Menü else { - echo '



      -
      - - - - - - - - - - - - - - - - - - - - - - -
      1. '.$p->t('incoming/persönlichedateneditieren').'
      2. '.$p->t("incoming/eigeneuniversitaet").'
      3. '.$p->t('incoming/austauschprogram').'
      4. '.$p->t('incoming/lehrveranstaltungenauswählen').'
      5. '.$p->t('incoming/downloadLearningAgreement').'
      6. '.$p->t("incoming/uploadLearningAgreement").'
      7. '.$p->t("incoming/uploadvondateien").'
      - - - - -
      Logout
      '; + echo ' + + + +

      '.$p->t('incoming/hauptmenue').'

      + + + + + + + + + + + + + + + + + +
      1. '.$p->t('incoming/persönlichedateneditieren').'
      2. '.$p->t("incoming/eigeneuniversitaet").'
      3. '.$p->t('incoming/austauschprogram').'
      4. '.$p->t('incoming/lehrveranstaltungenauswählen').'
      5. '.$p->t("incoming/uploadvondateien").'
      '; echo ' @@ -159,7 +159,7 @@ require_once('../../../include/addon.class.php'); echo '
      '; if ($num_rows>0) { - + echo '

      '.$p->t('lvaliste/lehrveranstaltungen').'

      '; echo $p->t('lvaliste/anzahl').': '.$num_rows; echo ' @@ -174,9 +174,10 @@ require_once('../../../include/addon.class.php'); echo ''.$p->t('lvaliste/lvinfo').''; echo ' + '.$p->t('lvaliste/id').' '.$p->t('lvaliste/lehrfach').' '.$p->t('lvaliste/lehrform').' - '.$p->t('lvaliste/lvBezeichnung').' + '.$p->t('lvaliste/lvBezeichnung').' '.$p->t('lvaliste/lektor').' '.$p->t('lvaliste/studiengang').' '.$p->t('lvaliste/semester').' @@ -196,7 +197,7 @@ require_once('../../../include/addon.class.php'); $stg_obj = new studiengang(); $stg_obj->getAll(null,null); $summe_std=0; - + for ($i=0; $i<$num_rows; $i++) { $row=$db->db_fetch_object($result); @@ -208,16 +209,17 @@ require_once('../../../include/addon.class.php'); if($lvinfo) echo ''.$p->t('lvaliste/lvinfo').''; + echo ''.$row->lehreinheit_id.''; echo ''.$row->lehrfach.''; - echo ''.$row->le_lehrform_kurzbz.''; - if ($row->lehrfach_bez!=$row->lv_bezeichnung) + echo ''.$row->le_lehrform_kurzbz.''; + if ($row->lehrfach_bez!=$row->lv_bezeichnung) echo ''.$row->lv_bezeichnung.' ('.$p->t('lvaliste/lehrfach').': '.$row->lehrfach_bez.')'; - else + else echo ''.$row->lv_bezeichnung.''; echo ''.$row->lektor.''; echo ''.$row->stg_kurzbz.''; echo ''.$row->semester.''; - + $qry ="SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='".addslashes($row->lehreinheit_id)."'"; $gruppe=''; if($result_grp = $db->db_query($qry)) @@ -226,7 +228,7 @@ require_once('../../../include/addon.class.php'); { if($row_grp->gruppe_kurzbz!='') $gruppe.= $row_grp->gruppe_kurzbz.'
      '; - else + else $gruppe.= $stg_obj->kuerzel_arr[$row->studiengang_kz].'-'.$row_grp->semester.$row_grp->verband.$row_grp->gruppe.'
      '; } } @@ -237,7 +239,7 @@ require_once('../../../include/addon.class.php'); echo ''.$row->wochenrythmus.''; echo ''.$row->semesterstunden.''; echo ''.$row->start_kw.''; - + $lvangebot->getAllFromLvId($row->lehrveranstaltung_id, $row->studiensemester_kurzbz); if(!empty($lvangebot->result)) { @@ -282,18 +284,18 @@ require_once('../../../include/addon.class.php'); } else echo $p->t('lvaliste/keineDatensaetze').'
      '; - + //Betreuungen $mitarbeiter = new benutzer(); $mitarbeiter->load($uid); - - $qry = "SELECT - tbl_lehrveranstaltung.bezeichnung, tbl_projektarbeit.titel, - (SELECT nachname || ' ' || vorname FROM public.tbl_benutzer JOIN public.tbl_person USING(person_id) + + $qry = "SELECT + tbl_lehrveranstaltung.bezeichnung, tbl_projektarbeit.titel, + (SELECT nachname || ' ' || vorname FROM public.tbl_benutzer JOIN public.tbl_person USING(person_id) WHERE uid=student_uid) as student, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_studiengang.email - FROM + FROM lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_studiengang WHERE tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND @@ -302,10 +304,10 @@ require_once('../../../include/addon.class.php'); tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz AND tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER); - + $stg_obj = new studiengang(); $stg_obj->getAll(null,null); - + if($result = $db->db_query($qry)) { if($db->db_num_rows($result)>0) @@ -322,29 +324,29 @@ require_once('../../../include/addon.class.php'); echo ''; while($row = $db->db_fetch_object($result)) { - echo ''; + echo ''; echo ''.$stg_obj->kuerzel_arr[$row->studiengang_kz].''; echo ''.$row->semester.''; echo ''.$row->bezeichnung.''; echo ''.$row->student.''; echo ''.$row->titel.''; - + echo ''; } echo ''; } } - - + + //Koordination - - $qry = "SELECT + + $qry = "SELECT distinct - tbl_lehrveranstaltung.studiengang_kz, tbl_fachbereich.fachbereich_kurzbz, tbl_lehrveranstaltung.bezeichnung, + tbl_lehrveranstaltung.studiengang_kz, tbl_fachbereich.fachbereich_kurzbz, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.semester,tbl_lehrveranstaltung.koordinator, tbl_studiengang.email - FROM - lehre.tbl_lehrveranstaltung, + FROM + lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_studiengang, @@ -355,18 +357,18 @@ require_once('../../../include/addon.class.php'); tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND (tbl_lehrveranstaltung.koordinator=".$db->db_add_param($uid)." - OR - ( tbl_lehrveranstaltung.koordinator is null and (tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz) IN (SELECT studiengang_kz, fachbereich_kurzbz + OR + ( tbl_lehrveranstaltung.koordinator is null and (tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz) IN (SELECT studiengang_kz, fachbereich_kurzbz FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz) - WHERE funktion_kurzbz='fbk' AND uid=".$db->db_add_param($uid)." + WHERE funktion_kurzbz='fbk' AND uid=".$db->db_add_param($uid)." and ( tbl_benutzerfunktion.datum_bis is null or now() between tbl_benutzerfunktion.datum_von and tbl_benutzerfunktion.datum_bis ) )) ) AND tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz order by tbl_lehrveranstaltung.studiengang_kz,tbl_lehrveranstaltung.semester ,tbl_lehrveranstaltung.bezeichnung "; - - + + if($result = $db->db_query($qry)) { if($db->db_num_rows($result)>0) @@ -386,12 +388,12 @@ require_once('../../../include/addon.class.php'); //Fachbereichskoordinatoren holen $qry = "SELECT distinct uid,titelpre, titelpost, vorname, nachname - FROM + FROM lehre.tbl_lehreinheitmitarbeiter, public.tbl_benutzer, public.tbl_person, lehre.tbl_lehreinheit - WHERE + WHERE tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id, FHC_INTEGER)." AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND @@ -407,7 +409,7 @@ require_once('../../../include/addon.class.php'); $lektoren.=trim($row_lkt->titelpre.' '.$row_lkt->vorname.' '.$row_lkt->nachname.' '.$row_lkt->titelpost); } } - + echo ''; echo ''.$stg_obj->kuerzel_arr[$row->studiengang_kz].''; echo ''.$row->semester.''; diff --git a/locale/de-AT/lvaliste.php b/locale/de-AT/lvaliste.php index aa4087528..48189aee6 100755 --- a/locale/de-AT/lvaliste.php +++ b/locale/de-AT/lvaliste.php @@ -31,3 +31,4 @@ $this->phrasen['lvaliste/gesamtnote']='Noten eintragen'; $this->phrasen['lvaliste/anzahl']='Anzahl'; $this->phrasen['lvaliste/summe']='Summe'; $this->phrasen['lvaliste/lvinfo']='LV-Info'; +$this->phrasen['lvaliste/id']='ID'; \ No newline at end of file diff --git a/locale/en-US/lvaliste.php b/locale/en-US/lvaliste.php index a42c58421..a2530ff48 100755 --- a/locale/en-US/lvaliste.php +++ b/locale/en-US/lvaliste.php @@ -31,3 +31,4 @@ $this->phrasen['lvaliste/betreuungen']='Supervisor'; $this->phrasen['lvaliste/koordination']='Coordination'; $this->phrasen['lvaliste/anzahl']='Number'; $this->phrasen['lvaliste/summe']='Total'; +$this->phrasen['lvaliste/id']='ID'; From 562a183098fe008906b35005b9b15e7d234c735d Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 18 Oct 2016 14:35:37 +0200 Subject: [PATCH 081/140] =?UTF-8?q?Neuen=20Karteireiter=20im=20FAS=20zur?= =?UTF-8?q?=20Erfassung=20von=20Gemeinsamen=20Studien=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/student/studentDBDML.php | 129 +++++++ content/student/studentdetailoverlay.xul.php | 72 ++-- content/student/studentenoverlay.xul.php | 3 + .../student/studentmobilitaetoverlay.js.php | 317 +++++++++++++++++ .../student/studentmobilitaetoverlay.xul.php | 228 ++++++++++++ content/student/studentoverlay.js.php | 76 ++-- include/firma.class.php | 78 ++++- include/gsprogramm.class.php | 209 +++++++++++ include/mobilitaet.class.php | 330 ++++++++++++++++++ include/prestudent.class.php | 46 ++- include/tw/vilesci_menu_main.inc.php | 9 +- rdf/firma.rdf.php | 19 +- rdf/gsprogramm.rdf.php | 43 +++ rdf/gsstudientyp.rdf.php | 42 +++ rdf/lehrverbandsgruppe.rdf.php | 105 +++--- rdf/mobilitaet.rdf.php | 89 +++++ rdf/mobilitaetsprogramm.rdf.php | 29 +- rdf/mobilitaetstyp.rdf.php | 41 +++ rdf/status.rdf.php | 41 +++ rdf/student.rdf.php | 46 ++- system/dbupdate_3.2.php | 119 ++++++- vilesci/bis/studentenmeldung.php | 271 ++++++++------ vilesci/stammdaten/firma_details.php | 165 ++++----- vilesci/stammdaten/gsprogramm.php | 207 +++++++++++ 24 files changed, 2354 insertions(+), 360 deletions(-) create mode 100644 content/student/studentmobilitaetoverlay.js.php create mode 100644 content/student/studentmobilitaetoverlay.xul.php create mode 100644 include/gsprogramm.class.php create mode 100644 include/mobilitaet.class.php create mode 100644 rdf/gsprogramm.rdf.php create mode 100644 rdf/gsstudientyp.rdf.php create mode 100644 rdf/mobilitaet.rdf.php create mode 100644 rdf/mobilitaetstyp.rdf.php create mode 100644 rdf/status.rdf.php create mode 100644 vilesci/stammdaten/gsprogramm.php diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 1cac12397..a0d9c8518 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -70,6 +70,7 @@ require_once('../../include/benutzerfunktion.class.php'); require_once('../../include/note.class.php'); require_once('../../include/standort.class.php'); require_once('../../include/adresse.class.php'); +require_once('../../include/mobilitaet.class.php'); $user = get_uid(); $db = new basis_db(); @@ -589,6 +590,7 @@ if(!$error) $prestudent->dual = ($_POST['dual']=='true'?true:false); $prestudent->anmerkung = $_POST['anmerkung']; $prestudent->mentor = $_POST['mentor']; + $prestudent->gsstudientyp_kurzbz = $_POST['gsstudientyp_kurzbz']; //$prestudent->insertamum = date('Y-m-d H:i:s'); //$prestudent->insertvon = $user; $prestudent->updateamum = date('Y-m-d H:i:s'); @@ -3840,6 +3842,133 @@ if(!$error) $errormsg = 'Fehlerhafte Parameteruebergabe'; } } + elseif(isset($_POST['type']) && $_POST['type']=='savemobilitaet') + { + // Speichert Mobilitaet/Gemeinsames Studium + $prestudent_id = $_POST['prestudent_id']; + $prestudent_obj = new prestudent(); + $prestudent_obj->load($prestudent_id); + + if(!$rechte->isBerechtigt('student/stammdaten', $prestudent_obj->studiengang_kz, 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $mob = new mobilitaet(); + + $error = false; + if(isset($_POST['mobilitaet_id'])) + { + $mobilitaet_id = $_POST['mobilitaet_id']; + if(!$mob->load($mobilitaet_id)) + { + $error=true; + $errormsg = $mob->errormsg; + } + } + else + { + $mob->new = true; + $mob->inservon = $user; + } + + if(isset($_POST['studiensemester_kurzbz']) + && isset($_POST['mobilitaetsprogramm_code']) + && isset($_POST['gsprogramm_id']) + && isset($_POST['mobilitaetstyp_kurzbz']) + && isset($_POST['firma_id']) + && isset($_POST['status_kurzbz']) + && isset($_POST['ausbildungssemester'])) + { + $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; + $mobilitaetsprogramm_code = $_POST['mobilitaetsprogramm_code']; + $gsprogramm_id = $_POST['gsprogramm_id']; + $mobilitaetstyp_kurzbz = $_POST['mobilitaetstyp_kurzbz']; + $firma_id = $_POST['firma_id']; + $status_kurzbz = $_POST['status_kurzbz']; + $ausbildungssemester = $_POST['ausbildungssemester']; + } + else + { + $error = true; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + $return = false; + } + + if(!$error) + { + $mob->prestudent_id = $prestudent_id; + $mob->studiensemester_kurzbz = $studiensemester_kurzbz; + $mob->mobilitaetsprogramm_code = $mobilitaetsprogramm_code; + $mob->gsprogramm_id = $gsprogramm_id; + $mob->mobilitaetstyp_kurzbz = $mobilitaetstyp_kurzbz; + $mob->firma_id = $firma_id; + $mob->status_kurzbz = $status_kurzbz; + $mob->ausbildungssemester = $ausbildungssemester; + $mob->updatevon = $user; + + if($mob->save()) + { + $return = true; + $data = $mob->mobilitaet_id; + } + else + { + $return = false; + $error = true; + $errormsg = $mob->errormsg; + } + } + else + { + $return = false; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='deletemobilitaet') + { + $mobilitaet_id = $_POST['mobilitaet_id']; + $mob = new mobilitaet(); + if($mob->load($mobilitaet_id)) + { + $prestudent = new prestudent(); + if($prestudent->load($mob->prestudent_id)) + { + if(!$rechte->isBerechtigt('student/stammdaten',$prestudent->studiengang_kz,'suid')) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + if($mob->delete($mobilitaet_id)) + { + $return = true; + } + else + { + $errormsg = $mob->errormsg; + $return = false; + } + } + } + else + { + $error = true; + $return = false; + $errormsg = $prestudent->errormsg; + } + } + else + { + $return = false; + $errormsg = $mob->errormsg; + } + } else { $return = false; diff --git a/content/student/studentdetailoverlay.xul.php b/content/student/studentdetailoverlay.xul.php index dc9a47555..0d0094cc5 100644 --- a/content/student/studentdetailoverlay.xul.php +++ b/content/student/studentdetailoverlay.xul.php @@ -47,9 +47,9 @@ echo ''; @@ -100,7 +100,7 @@ echo ''; - +