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(); 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 ''; 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']; } 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/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 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 += ''; } }); diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php index 3b2a43411..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(); @@ -193,7 +236,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 +449,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 +485,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 +526,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); @@ -685,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; } @@ -935,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 @@ -1023,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.' '; @@ -1055,7 +1134,7 @@ function _outputHTML($person_arr) { echo ' - '. $funktion->funktionscode. ' + '.(isset($codex_funktion[$funktion->funktionscode])?$codex_funktion[$funktion->funktionscode]:'').' '.$funktion->funktionscode.' '. $funktion->besondereQualifikationCode. ' '; 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); 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 {