From 8be6ada9615c988bcef8b424b36d5e7c69bc5968 Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 13 May 2020 11:33:09 +0200 Subject: [PATCH] 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);