From 67a5fe82e759864c859814a8a81d5843f3dc5244 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 5 May 2020 16:07:48 +0200 Subject: [PATCH 1/9] Fixed: Now column-picker activates/deactivates correctly column buttons Before the problem was using the pseudoclass 'active'. Now, by using a css class instead, it works. Also, before when clicking the button twice (activate/deactivate) - it was always on focus (and therefore always grey). Also fixed. --- public/css/Tabulator.css | 5 +++++ public/js/TableWidget.js | 18 +++++------------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/public/css/Tabulator.css b/public/css/Tabulator.css index 0545101c9..22eeb4f5c 100644 --- a/public/css/Tabulator.css +++ b/public/css/Tabulator.css @@ -34,4 +34,9 @@ /* More space for header title (avoids triple points at the end) */ .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title { overflow: initial; +} + +.btn-select-col-selected +{ + background-color: #e6e6e6; } \ No newline at end of file diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index 559de7f40..60dde8ccf 100644 --- a/public/js/TableWidget.js +++ b/public/js/TableWidget.js @@ -269,16 +269,8 @@ var FHC_TableWidget = { tableWidgetDiv.find("#tableWidgetTabulator").tabulator('toggleColumn', selected); - $(this).toggleClass('active'); - - if(!$(this).hasClass('active')) - { - $(this).css('background-color', 'white'); - } - else - { - $(this).css('background-color', '#e6e6e6'); - } + // toggle class to color button as selected / deselected + $(this).toggleClass('btn-select-col-selected').blur(); // blur removes automatic focus }) } }, @@ -809,7 +801,7 @@ function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ { var field = column.getField(); var title = column.getDefinition().title; - var active_status = column.getVisibility() ? 'active' : ''; + var btn_select_col_selected = column.getVisibility() ? 'btn-select-col-selected' : ''; // If certain columns should be excluded from the column picker (define them in a blacklist array) if (typeof tableWidgetBlacklistArray_columnUnselectable != 'undefined' && @@ -818,13 +810,13 @@ function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){ { if ($.inArray(field, tableWidgetBlacklistArray_columnUnselectable) < 0) { - tabulatorHeaderCollapseHTML += ''; + tabulatorHeaderCollapseHTML += ''; } } // Else provide all tabulator fields as pickable columns else { - tabulatorHeaderCollapseHTML += ''; + tabulatorHeaderCollapseHTML += ''; } }); From d78e23a80d8c3da7592c5377f65c7db636924ac3 Mon Sep 17 00:00:00 2001 From: Nikolaus Krondraf Date: Wed, 6 May 2020 10:59:44 +0200 Subject: [PATCH 2/9] =?UTF-8?q?Frist=20f=C3=BCr=20Pr=C3=BCfungsanmeldung?= =?UTF-8?q?=20deaktiviert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/pruefung/pruefung.js.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php index aafcf9710..247ee950e 100644 --- a/cis/private/lehre/pruefung/pruefung.js.php +++ b/cis/private/lehre/pruefung/pruefung.js.php @@ -352,8 +352,12 @@ function writePruefungsTable(e, data, anmeldung) var termin = d.von.split(" "); var time = termin[1].substring(0,5); termin = termin[0].split("-"); - var minimumFrist = new Date(termin[0], termin[1]-1,termin[2]); - minimumFrist.setMonth(minimumFrist.getMonth() - 2); + + // Wie viele Monate vor Prüfungen dürfen sich Studierende anmelden? + // Sperre "deaktiviert" indem man sich 24 Monate vorher anmelden darf + var minimumFrist = new Date(termin[0], termin[1]-1,termin[2]); + minimumFrist.setMonth(minimumFrist.getMonth() - 24); + termin = new Date(termin[0], termin[1]-1,termin[2]); var frist = termin; termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear(); From 6696c33755da7f89fc9a4cf93d4f6b3b94204d67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 6 May 2020 17:20:56 +0200 Subject: [PATCH 3/9] =?UTF-8?q?Organisationsformen=20werden=20in=20der=20?= =?UTF-8?q?=C3=9Cbersichtsliste=20jetzt=20immer=20in=20der=20gleichen=20Re?= =?UTF-8?q?ihenfolge=20angezeigt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/bis/studentenmeldung.php | 1 + 1 file changed, 1 insertion(+) diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php index 530031b90..425820479 100644 --- a/vilesci/bis/studentenmeldung.php +++ b/vilesci/bis/studentenmeldung.php @@ -436,6 +436,7 @@ $tabelle="

BIS-Meldungsübersicht:


$semester_arr = array(1,2,3,4,5,6,7,8,50,60); +sort($verwendete_orgformen); $orgformen = implode('/',$verwendete_orgformen); From 25899b56df45adff1fd8f8ca0312f7ef739e10cf Mon Sep 17 00:00:00 2001 From: gerryraab Date: Thu, 7 May 2020 17:51:26 +0200 Subject: [PATCH 4/9] =?UTF-8?q?Zeitaufzeichnung.=20Anzeige=20der=20Lehrauf?= =?UTF-8?q?tr=C3=A4ge=20ohne=20check=20auf=20Stundensatz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/zeitaufzeichnung.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php index a3f4e4f09..43c5c4a5c 100644 --- a/include/zeitaufzeichnung.class.php +++ b/include/zeitaufzeichnung.class.php @@ -460,7 +460,7 @@ class zeitaufzeichnung extends basis_db $where.= " AND start>(now() - INTERVAL '".$days." days')"; $qry = "SELECT - *, + *, CASE WHEN (ende IS NOT NULL AND ende > start) THEN to_char ((ende-start),'HH24:MI') ELSE '0' @@ -734,7 +734,7 @@ or not exists $where AND $where_sem AND l.lehreinheit_id = m.lehreinheit_id AND - m.stundensatz * m.semesterstunden > 0 AND + m.semesterstunden > 0 AND s.typ not in ('l') AND lv.studiengang_kz > 0 UNION @@ -754,7 +754,7 @@ or not exists pb.projektarbeit_id = pa.projektarbeit_id AND pb.person_id = b.person_id AND b.uid = ".$this->db_add_param($user)." AND - pb.stunden * pb.stundensatz > 0 AND + pb.stunden > 0 AND s.typ not in ('l') AND lv.studiengang_kz > 0 AND $where_sem From fa099cf84568186e94198d16dc42d24926ee8f18 Mon Sep 17 00:00:00 2001 From: gerryraab Date: Mon, 11 May 2020 16:25:18 +0200 Subject: [PATCH 5/9] =?UTF-8?q?Aufforderung=20Notfallkontakt=20nur=20f?= =?UTF-8?q?=C3=BCr=20MA=20anzeigen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/profile/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cis/private/profile/index.php b/cis/private/profile/index.php index 3117aec55..5b3a645da 100644 --- a/cis/private/profile/index.php +++ b/cis/private/profile/index.php @@ -465,7 +465,7 @@ if (!$ansicht) } */ } - if (!$has_notfallkontakt) + if (!$has_notfallkontakt && $type == 'mitarbeiter') echo ''.$p->t('profil/notfallkontakt').''.$p->t('profil/notfallkontaktBekanntgeben').''; echo ''; From 30bbf6a9c86e5989b31f5acdc8e6807ffbf5dae3 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Tue, 12 May 2020 10:38:06 +0200 Subject: [PATCH 6/9] Auswertung FHTW Link Testfortschritt --- vilesci/stammdaten/auswertung_fhtw.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php index 0ba8c9f40..4150bc18b 100644 --- a/vilesci/stammdaten/auswertung_fhtw.php +++ b/vilesci/stammdaten/auswertung_fhtw.php @@ -2844,9 +2844,16 @@ else echo ''; echo ''; echo ''; - if (isset($_POST['reihungstest']) && count($_POST['reihungstest']) == 1) + if ((isset($_POST['reihungstest']) && count($_POST['reihungstest']) == 1) || (isset($_GET['reihungstest']) && $_GET['reihungstest'] != '')) { - echo '  Testfortschritt ansehen'; + if (isset($_POST['reihungstest'])) + { + echo '  Testfortschritt ansehen'; + } + else + { + echo '  Testfortschritt ansehen'; + } } else { From 4412677d58aaff05b397330c88c1a2d89505e375 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Tue, 12 May 2020 10:38:56 +0200 Subject: [PATCH 7/9] =?UTF-8?q?FHTW=20Pr=C3=BCfungsprotokolle=20in=20ander?= =?UTF-8?q?en=20Formaten=20exportieren?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/pdfExport.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/content/pdfExport.php b/content/pdfExport.php index b2978c6ba..3fc058adf 100644 --- a/content/pdfExport.php +++ b/content/pdfExport.php @@ -305,8 +305,14 @@ else else $output = 'pdf'; - // An der FHTW darf fas Studienblatt auch iin anderen Formaten exportiert werden - if (CAMPUS_NAME == 'FH Technikum Wien' && ($xsl == 'Studienblatt' || $xsl == 'StudienblattEng')) + // An der FHTW darf das Studienblatt und das Prüfungsprotokoll auch in anderen Formaten exportiert werden + if (CAMPUS_NAME == 'FH Technikum Wien' && + ($xsl == 'Studienblatt' || + $xsl == 'StudienblattEng' || + $xsl == 'PrProtBA' || + $xsl == 'PrProtBAEng' || + $xsl == 'PrProtMA' || + $xsl == 'PrProtMAEng')) { $output = $_GET['output']; } From 8be6ada9615c988bcef8b424b36d5e7c69bc5968 Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 13 May 2020 11:33:09 +0200 Subject: [PATCH 8/9] Adapted anteilige JVZAE for external lectors Now the 'anteilige JVZAE' of an external lector is calculated ONLY if the teaching activity happend within the duration of the contract-duration (BIS-Verwendung). This avoids multiple calculations (before the jvzae was calculated for each contract) --- vilesci/bis/personalmeldung.php | 43 ++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php index 3b2a43411..52d74ef87 100644 --- a/vilesci/bis/personalmeldung.php +++ b/vilesci/bis/personalmeldung.php @@ -193,7 +193,7 @@ foreach ($mitarbeiter_arr as $mitarbeiter) foreach ($bisverwendung_arr as $bisverwendung) { if (empty($verwendung_arr) || // wenn erster Durchlauf ODER - (!(in_array($bisverwendung->ba1code, array_column($verwendung_arr, 'ba1code')) && // im verwendung_arr Beschaeftigungsart1 UND + (!(in_array($bisverwendung->ba1code, array_column($verwendung_arr, 'ba1code')) && // im verwendung_arr Beschaeftigungsart1 UND in_array($bisverwendung->ba2code, array_column($verwendung_arr, 'ba2code')) && // Beschaeftigungsart2 UND in_array($bisverwendung->verwendung_code, array_column($verwendung_arr, 'verwendung_code'))))) // Verwendung_code noch NICHT vorhanden { @@ -406,7 +406,11 @@ function _add_relativesBA_und_anteiligeJVZAE($uid, $bisverwendung_arr) $bisverwendung->vertragsstunden = BIS_VOLLZEIT_ARBEITSSTUNDEN; } - // Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln + /** + * Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln + * Anteilige JVAE = Vertragsstunden relativ zu VZ Basis / Tage im Jahr * Vertragsdauer + * Bsp Teilzeit 30h, BIS-Verwendungsdauer 120 Tage: 30 / 38,5 / 365 * 120 + */ $bisverwendung->beschaeftigungsausmass_relativ = round($bisverwendung->vertragsstunden / BIS_VOLLZEIT_ARBEITSSTUNDEN, 2); $bisverwendung->jvzae_anteilig = round($bisverwendung->beschaeftigungsausmass_relativ * $bisverwendung->gewichtung, 2); @@ -438,7 +442,14 @@ function _add_relativesBA_und_anteiligeJVZAE($uid, $bisverwendung_arr) // Verwendung erstellen list($tage_lehre_imSemester, $verwendung_lehre_obj) = _addVerwendung_fuerLehre_inkludiert($studsem, $bisverwendung); - // Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln + /* + * Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln + * Anteilige JVAE = Lehre relativ zu VZ Basis * gewichtete Lehrtage auf das Halbjahr bezogen + * Bsp: 7 SWS an 90 Tage gelehrt: 7 / 15 * (0,5 /(365 / 2) * 140) + * NOTE: Halbjahr mit 0,5 gewichtet, da ein Studiensemester 50% eines Jahres entspricht; + * Diese 50% werden dann auf die Tage eines Halbjahres heruntergebrochen und mit den Lehrtagen + * multipliziert. + */ $verwendung_lehre_obj->beschaeftigungsausmass_relativ = round($lehre_sws / BIS_VOLLZEIT_SWS_INKLUDIERTE_LEHRE, 2); // VZ-Basis fuer inkludierte Lehre $verwendung_lehre_obj->gewichtung = ($tage_lehre_imSemester == 182) ? BIS_HALBJAHRES_GEWICHTUNG_SWS @@ -472,14 +483,34 @@ function _add_relativesBA_und_anteiligeJVZAE($uid, $bisverwendung_arr) // ------------------------------------------------------------------------------------------------------------- else if (!$has_vertragsstunden && $has_lehrtaetigkeit) { - foreach (array($ss_kurzbz => $lehre_ss_sws, $ws_kurzbz => $lehre_ws_sws) as $studsem => $lehre_sws) + /** + * Verwendungen ergänzen, wenn die BIS-Verwendung als externer Mitarbeiter in Sommer- / Wintersemester + * des BIS-Meldungsjahres faellt. + * Es werden die gesamten SWS von SS + WS (d.h. WS jahresuebergreifend) gemeldet. + */ + $bisverwendung_beginn_BIS = new DateTime($bisverwendung->beginn_imBISMeldungsJahr); + $bisverwendung_ende_BIS = new DateTime($bisverwendung->ende_imBISMeldungsJahr); + + foreach (array($ss_kurzbz => $lehre_ss_sws, $ws_kurzbz => $lehre_ws_sws) as $studsem_kurzbz => $lehre_sws) { - if (!is_null($lehre_sws)) + $studsem = new studiensemester($studsem_kurzbz); + $studsem_start = new DateTime($studsem->start); + $studsem_ende = new DateTime($studsem->ende); + + // Wenn Lehrzeit in die BIS Verwendungszeit hineinfaellt, Verwendung erstellen + if (!is_null($lehre_sws) && + (!($studsem_start > $bisverwendung_ende_BIS) && + !($studsem_ende < $bisverwendung_beginn_BIS))) { // Verwendungen erstellen $verwendung_lehre_obj = _addVerwendung_fuerLehre_Stundenbasis($bisverwendung); - // Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln + /** + * Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln + * Anteilige JVAE = Lehre relativ zu VZ Basis * Halbjahresgewichtung + * Bsp: 7 / 15 * 0,5 + * NOTE: Halbjahr mit 0,5 gewichtet, da ein Studiensemester 50% eines Jahres entspricht + */ $verwendung_lehre_obj->beschaeftigungsausmass_relativ = round($lehre_sws / BIS_VOLLZEIT_SWS_EINZELSTUNDENBASIS, 2); // VZ-Basis nach BIS-Vorgabe fuer Stundenbasis $verwendung_lehre_obj->gewichtung = BIS_HALBJAHRES_GEWICHTUNG_SWS; $verwendung_lehre_obj->jvzae_anteilig = round($verwendung_lehre_obj->beschaeftigungsausmass_relativ * $verwendung_lehre_obj->gewichtung, 2); From dda5b6ddb7ae6316115c0d9ef2c3cbe3705b22e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 14 May 2020 12:10:14 +0200 Subject: [PATCH 9/9] =?UTF-8?q?Personalmeldung=20=C3=9Cbersichtstabelle=20?= =?UTF-8?q?zeigt=20Detailinformationen=20zu=20Codes=20an?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/bisverwendung.class.php | 27 ++++++++++++++ vilesci/bis/personalmeldung.php | 62 +++++++++++++++++++++++++++++---- 2 files changed, 82 insertions(+), 7 deletions(-) diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php index db17896a9..9d92db489 100644 --- a/include/bisverwendung.class.php +++ b/include/bisverwendung.class.php @@ -741,5 +741,32 @@ class bisverwendung extends basis_db return false; } } + + /** + * Laedt die vorhandenen Verwendungen + */ + public function getVerwendungCodex() + { + $qry = "SELECT * FROM bis.tbl_verwendung ORDER BY verwendung_code"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new StdClass(); + + $obj->verwendung_code = $row->verwendung_code; + $obj->verwendungbez = $row->verwendungbez; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } } ?> diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php index 52d74ef87..7b1103607 100644 --- a/vilesci/bis/personalmeldung.php +++ b/vilesci/bis/personalmeldung.php @@ -92,6 +92,49 @@ if (!defined('BIS_FUNKTIONSCODE_6_ARR') || empty('BIS_FUNKTIONSCODE_6_ARR')) die('config var BIS_FUNKTIONSCODE_6_ARR fehlt'); } +$codex_funktion = array( + 1 => "Vertretungsbefugte/r des Erhalters", + 2 => "Leiter/in des Kollegiums", + 3 => "stellv. Leiter/in des Kollegiums", + 4 => "Mitglied des Kollegiums", + 5 => "Studiengangsleiter/in", + 6 => "Leiter/in einer Organisationseinheit", + 7 => "Mitglied des Entwicklungsteams" +); + +$qry = "SELECT * FROM bis.tbl_beschaeftigungsart1"; + +$codex_ba1 = array(); + +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + if(isset($codex_ba1[$row->ba1code_bis])) + $codex_ba1[$row->ba1code_bis] .= ' bzw '.$row->ba1kurzbz; + else + $codex_ba1[$row->ba1code_bis] = $row->ba1kurzbz; + } +} + +$qry = "SELECT * FROM bis.tbl_beschaeftigungsart2"; + +$codex_ba2 = array(); + +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + $codex_ba2[$row->ba2code] = $row->ba2bez; + } +} +$codex_verwendung = array(); + +// Verwendungen holen +$verwendungcodex = new bisverwendung(); +$verwendungcodex->getVerwendungCodex(); +foreach($verwendungcodex->result as $row) + $codex_verwendung[$row->verwendung_code] = $row->verwendungbez; // Prüfe Zeitraum zur Erstellung einer BIS-Meldung $studiensemester = new studiensemester(); @@ -490,13 +533,13 @@ function _add_relativesBA_und_anteiligeJVZAE($uid, $bisverwendung_arr) */ $bisverwendung_beginn_BIS = new DateTime($bisverwendung->beginn_imBISMeldungsJahr); $bisverwendung_ende_BIS = new DateTime($bisverwendung->ende_imBISMeldungsJahr); - + foreach (array($ss_kurzbz => $lehre_ss_sws, $ws_kurzbz => $lehre_ws_sws) as $studsem_kurzbz => $lehre_sws) { $studsem = new studiensemester($studsem_kurzbz); $studsem_start = new DateTime($studsem->start); $studsem_ende = new DateTime($studsem->ende); - + // Wenn Lehrzeit in die BIS Verwendungszeit hineinfaellt, Verwendung erstellen if (!is_null($lehre_sws) && (!($studsem_start > $bisverwendung_ende_BIS) && @@ -716,7 +759,7 @@ function _getFunktionscontainer_Funktionscode123456($bisfunktion_arr) // FunktionsCode 6 : Leitung Organisationseinheit der postsekundaeren Bildungseinrichtung $organisationseinheit = new Organisationseinheit($bisfunktion->oe_kurzbz); if (is_null($studiengang->studiengang_kz) && - !in_array($organisationseinheit->oetyp_bezeichnung, BIS_FUNKTIONSCODE_6_ARR)) // nicht Teamleitung + !in_array($organisationseinheit->organisationseinheittyp_kurzbz, BIS_FUNKTIONSCODE_6_ARR)) // nicht Teamleitung { $funktion_code = 6; } @@ -966,6 +1009,11 @@ function _generateXML($person_arr) */ function _outputHTML($person_arr) { + global $codex_funktion; + global $codex_verwendung; + global $codex_ba1; + global $codex_ba2; + echo ' BIS - Meldung Personal @@ -1054,9 +1102,9 @@ function _outputHTML($person_arr) { echo ' - '.$verwendung->verwendung_code.' - '.$verwendung->ba1code.' - '.$verwendung->ba2code.' + '.(isset($codex_verwendung[$verwendung->verwendung_code])?$codex_verwendung[$verwendung->verwendung_code]:'').' '.$verwendung->verwendung_code.' + '.$verwendung->ba1code.' + '.$verwendung->ba2code.' '.$verwendung->vzae.' '.$verwendung->jvzae.' '; @@ -1086,7 +1134,7 @@ function _outputHTML($person_arr) { echo ' - '. $funktion->funktionscode. ' + '.(isset($codex_funktion[$funktion->funktionscode])?$codex_funktion[$funktion->funktionscode]:'').' '.$funktion->funktionscode.' '. $funktion->besondereQualifikationCode. ' ';