diff --git a/application/views/lehre/Antrag/Student/List.php b/application/views/lehre/Antrag/Student/List.php index 4ca99f951..768d5e9e2 100644 --- a/application/views/lehre/Antrag/Student/List.php +++ b/application/views/lehre/Antrag/Student/List.php @@ -101,12 +101,35 @@ $this->load->view( - typ != Studierendenantrag_model::TYP_WIEDERHOLUNG && in_array($antrag->status, [ - Studierendenantragstatus_model::STATUS_APPROVED, - Studierendenantragstatus_model::STATUS_OBJECTED, - Studierendenantragstatus_model::STATUS_OBJECTION_DENIED, - Studierendenantragstatus_model::STATUS_REMINDERSENT - ])) { ?> + typ) { + case Studierendenantrag_model::TYP_ABMELDUNG: + $allowed = [ + Studierendenantragstatus_model::STATUS_APPROVED + ]; + break; + case Studierendenantrag_model::TYP_ABMELDUNG_STGL: + $allowed = [ + Studierendenantragstatus_model::STATUS_APPROVED, + Studierendenantragstatus_model::STATUS_OBJECTED, + Studierendenantragstatus_model::STATUS_OBJECTION_DENIED, + Studierendenantragstatus_model::STATUS_DEREGISTERED + ]; + break; + case Studierendenantrag_model::TYP_UNTERBRECHUNG: + $allowed = [ + Studierendenantragstatus_model::STATUS_APPROVED, + Studierendenantragstatus_model::STATUS_REMINDERSENT + ]; + break; + case Studierendenantrag_model::TYP_WIEDERHOLUNG: + $allowed = [ + Studierendenantragstatus_model::STATUS_DEREGISTERED + ]; + break; + } + if (in_array($antrag->status, $allowed)) { ?> typ == Studierendenantrag_model::TYP_WIEDERHOLUNG && $antrag->status == Studierendenantragstatus_model::STATUS_APPROVED) { ?> diff --git a/content/fas.xul.php b/content/fas.xul.php index abe7f613e..29515eae6 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -141,7 +141,9 @@ foreach($addon_obj->result as $addon) + + @@ -518,6 +520,13 @@ foreach($addon_obj->result as $addon) command = "menu-dokumente-antrag-abmeldung:command" accesskey = "&menu-dokumente-antrag-abmeldung.accesskey;" /> + result as $addon) command = "menu-dokumente-antrag-unterbrechung:command" accesskey = "&menu-dokumente-antrag-unterbrechung.accesskey;" /> + diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 1bf68c809..11a4d862f 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -6225,6 +6225,54 @@ function StudentPrintAntragAbmeldung(event) window.open('/content/pdfExport.php?xml=AntragAbmeldung.xml.php&xsl=AntragAbmeldung&uid='+student_uid+'&prestudent_id='+prestudent_id+'&output='+output,'AntragAbmeldung', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } +function StudentPrintAntragAbmeldungStgl(event) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var tree = document.getElementById('student-tree'); + + + if (tree.currentIndex==-1) + return alert('Bitte eine/n Studierende/n auswaehlen'); + + //Uids aller markierten Studenten holen + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + var prestudent_id= ''; + var student_uid= ''; + + for (var t = 0; t < numRanges; t++) + { + tree.view.selection.getRangeAt(t,start,end); + for (var v = start.value; v <= end.value; v++) + { + var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id"; + var prestudentId=tree.view.getCellText(v,col); + prestudent_id += ';'+prestudentId; + + col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid"; + var uid=tree.view.getCellText(v,col); + student_uid += ';'+uid; + + } + } + + if (event.shiftKey) + { + var output='odt'; + } + else if (event.ctrlKey) + { + var output='doc'; + } + else + { + var output='pdf'; + } + + window.open('/content/pdfExport.php?xml=AntragAbmeldungStgl.xml.php&xsl=AntragAbmeldungStgl&uid='+student_uid+'&prestudent_id='+prestudent_id+'&output='+output,'AntragAbmeldung', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); +} + function StudentPrintAntragUnterbrechung(event) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); @@ -6273,6 +6321,54 @@ function StudentPrintAntragUnterbrechung(event) window.open('/content/pdfExport.php?xml=AntragUnterbrechung.xml.php&xsl=AntragUnterbrechung&uid='+student_uid+'&prestudent_id='+prestudent_id+'&output='+output,'AntragUnterbrechung', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } +function StudentPrintAntragWiederholung(event) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var tree = document.getElementById('student-tree'); + + + if (tree.currentIndex==-1) + return alert('Bitte eine/n Studierende/n auswaehlen'); + + //Uids aller markierten Studenten holen + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + var prestudent_id= ''; + var student_uid= ''; + + for (var t = 0; t < numRanges; t++) + { + tree.view.selection.getRangeAt(t,start,end); + for (var v = start.value; v <= end.value; v++) + { + var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id"; + var prestudentId=tree.view.getCellText(v,col); + prestudent_id += ';'+prestudentId; + + col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid"; + var uid=tree.view.getCellText(v,col); + student_uid += ';'+uid; + + } + } + + if (event.shiftKey) + { + var output='odt'; + } + else if (event.ctrlKey) + { + var output='doc'; + } + else + { + var output='pdf'; + } + + window.open('/content/pdfExport.php?xml=AntragWiederholung.xml.php&xsl=AntragWiederholung&uid='+student_uid+'&prestudent_id='+prestudent_id+'&output='+output,'AntragUnterbrechung', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); +} + // **** // * Erstellt den Ausbildungsvertrag fuer einen oder mehrere Studenten // **** diff --git a/locale/de-AT/fas.dtd b/locale/de-AT/fas.dtd index 3fd593833..b5598d85b 100644 --- a/locale/de-AT/fas.dtd +++ b/locale/de-AT/fas.dtd @@ -219,10 +219,18 @@ + + + + + + + + diff --git a/public/js/components/Studierendenantrag/Leitung/Table.js b/public/js/components/Studierendenantrag/Leitung/Table.js index 1addc35fb..d3957537b 100644 --- a/public/js/components/Studierendenantrag/Leitung/Table.js +++ b/public/js/components/Studierendenantrag/Leitung/Table.js @@ -245,6 +245,9 @@ export default { case 'Unterbrechung': allowed_status_for_download = ['Genehmigt', 'EmailVersandt']; break; + case 'Wiederholung': + allowed_status_for_download = ['Abgemeldet']; + break; } if (allowed_status_for_download.includes(data.status)) { // NOTE(chris): Download PDF diff --git a/rdf/AntragWiederholung.xml.php b/rdf/AntragWiederholung.xml.php new file mode 100644 index 000000000..939fdf513 --- /dev/null +++ b/rdf/AntragWiederholung.xml.php @@ -0,0 +1,70 @@ +db_add_param($id) . " + AND a.typ = 'Wiederholung' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) = 'Abgemeldet';"; + $not_found_error = 'Studierendenantrag not found'. $id; + } elseif(isset($_GET['uid']) && isset($_GET['prestudent_id'])) { + $uid = $_GET['uid']; + $uid = explode(';', $uid); + $uid = (array_filter($uid, 'strlen')); + + $prestudent_id = $_GET['prestudent_id']; + $prestudent_id = explode(';', $prestudent_id); + $prestudent_id = (array_filter($prestudent_id, 'strlen')); + + $where = " WHERE a.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ") + AND a.typ = 'Wiederholung' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) = 'Abgemeldet';"; + $not_found_error = 'Studierendenantrag not found for: ' . implode(',', $uid); + } else + die('wrong parameters'); +} +else + die('Format not supported'); + + +$query = " + SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(a.prestudent_id, NULL) AS semester, (SELECT pt.text FROM system.tbl_phrase p JOIN system.tbl_phrasentext pt USING(phrase_id) WHERE p.category=" . $db->db_add_param('studierendenantrag', FHC_STRING) . " AND p.phrase=" . $db->db_add_param('grund_Wiederholung_deadline', FHC_STRING) . " AND pt.sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . " LIMIT 1) AS grund + FROM + campus.tbl_studierendenantrag a + JOIN public.tbl_student USING (prestudent_id) + JOIN public.tbl_benutzer ON tbl_student.student_uid=uid + JOIN public.tbl_person USING (person_id) + JOIN public.tbl_studiengang stg USING (studiengang_kz) + JOIN public.tbl_studiensemester USING (studiensemester_kurzbz) + LEFT JOIN public.tbl_prestudentstatus pss ON (pss.prestudent_id = a.prestudent_id AND pss.studiensemester_kurzbz=a.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(a.prestudent_id, a.studiensemester_kurzbz)) + LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id) + JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, stg.orgform_kurzbz))" . $where; + + +if (!$db->db_query($query) || !$db->db_num_rows()) + die('' . $not_found_error . ''); + +?> + + + db_fetch_object()) { ?> + + vorname . ' ' . $row->nachname); ?>]]> + bezeichnung; ?>]]> + bezeichnung_mehrsprachig; ?>]]> + matrikelnr; ?>]]> + studienjahr_kurzbz; ?>]]> + studiensemester_kurzbz; ?>]]> + semester; ?>]]> + grund; ?>]]> + + + diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index d8825ee0e..b96d85233 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -22688,6 +22688,25 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'studierendenantrag', + 'phrase' => 'grund_Wiederholung_deadline', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'negative kommissionelle Beurteilung und keine fristgerechte Bekanntgabe der Wiederholung des Studienjahres', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'negative assessment by the committee and no timely announcement of the repetition of the academic year', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), // Personalverwaltung begin array( 'app' => 'core', diff --git a/system/vorlage_zip/AntragWiederholung.odt b/system/vorlage_zip/AntragWiederholung.odt new file mode 100644 index 000000000..2e11ca60a Binary files /dev/null and b/system/vorlage_zip/AntragWiederholung.odt differ diff --git a/system/xsl/AntragWiederholung.xsl b/system/xsl/AntragWiederholung.xsl new file mode 100644 index 000000000..aa6a28073 --- /dev/null +++ b/system/xsl/AntragWiederholung.xsl @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Studiengang: + + + + + + Organisationsform: + + + + + + + + Abmeldung vom Studium durch Studiengang + + + + + + + Name der*des Studierenden + + + + + + + + + + + Personenkennzeichen + + + + + + + + + + Studienjahr + + + + + + + + + + Studiensemester + + + + + + + + + + Semester + + + + + + + + + + Grund der Abmeldung: + + + + + + + + + + + + + + + Wir weisen Sie darauf hin, dass Ihr FHTW Account noch 21 Tage aktiv ist. Wir bitten Sie, alle benötigte Dateien (Zeugnisse, Studienerfolgsbestätigungen, Studienbestätigungen, etc.) innerhalb dieses Zeitraums herunterzuladen. Für die Ausstellung von Duplikaten fallen nach Inaktivsetzung des CIS-Accounts Kosten an. + + + Sie sind gem. Ausbildungsvertrag verpflichtet, unverzüglich alle zur Verfügung gestellten Gerätschaften, Bücher, Schlüssel und sonstige Materialien zurückzugeben. + + Bei Abmeldung vor dem 01.09. bzw. 15.02. und bereits eingezahltem Studienbeitrag für das kommende Semester: Wir informieren Sie darüber, dass der Studienbeitrag für das kommende Semester von Ihnen zurückgefordert werden kann. Bitte geben Sie uns dafür innerhalb von 14 Tagen Ihre Bankdaten an folgende E-Mail-Adresse bekannt: billing@technikum-wien.at. + + + + + + + + \ No newline at end of file