diff --git a/include/entwicklungsteam.class.php b/include/entwicklungsteam.class.php index 3ca886b28..f9d0a3718 100644 --- a/include/entwicklungsteam.class.php +++ b/include/entwicklungsteam.class.php @@ -368,7 +368,7 @@ class entwicklungsteam extends basis_db FROM bis.tbl_entwicklungsteam JOIN bis.tbl_besqual USING(besqualcode) WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." - AND (beginn <= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 12, 31)) + AND (beginn is NULL OR beginn <= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 12, 31)) AND (ende is NULL OR ende >= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 1, 1))"; if($studiengang_kz!=null) diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php index d8e3df9f7..02057a899 100644 --- a/vilesci/bis/personalmeldung.php +++ b/vilesci/bis/personalmeldung.php @@ -138,12 +138,7 @@ foreach($verwendungcodex->result as $row) // Prüfe Zeitraum zur Erstellung einer BIS-Meldung $studiensemester = new studiensemester(); - -//Test -//$stsem = (isset($_GET['stsem'])) ? $_GET['stsem'] : $studiensemester->getaktorNext(); // aktuelles Studiensemester -$stsem = 'SS2022'; - - +$stsem = (isset($_GET['stsem'])) ? $_GET['stsem'] : $studiensemester->getaktorNext(); // aktuelles Studiensemester $datum_obj = new datum(); if(mb_strstr($stsem, 'SS')) @@ -151,8 +146,6 @@ if(mb_strstr($stsem, 'SS')) $studiensemester->load($stsem); $jahr = $datum_obj->formatDatum($studiensemester->start, 'Y'); $stichtag = date("Y-m-d", mktime(0, 0, 0, 12, 31, $jahr - 1)); // 31.12. des vorangehenden Kalenderjahres zur BIS Meldung TODO: oder Abfragetag mitgeben? - //Test Stichtag - echo $stichtag; } else { @@ -174,8 +167,6 @@ $ws = new studiensemester($ws_kurzbz); // Alle gemeldeten Mitarbeiter holen $mitarbeiter = new mitarbeiter(); -//Test Stichtag1 -echo "stichtag" . $beginn_imJahr->format('Y-m-d'); $mitarbeiter->getMitarbeiterBISMeldung($beginn_imJahr->format('Y-m-d')); $mitarbeiter_arr = $mitarbeiter->result; @@ -341,9 +332,7 @@ foreach ($mitarbeiter_arr as $mitarbeiter) * Exkludiert Funktionen, die einem Lehrgang bzw. STG, die nicht BIS-gemeldet werden, zugeordnet sind. */ // ------------------------------------------------------------------------------------------------------------- - //Test - //$funktion_arr = _addFunktionscontainer_Funktionscode7($person_obj->uid, $funktion_arr); //VARIANTE1 - $funktion_arr = _addFunktionscontainer_Funktionscode7($person_obj->uid, $funktion_arr, $stichtag); //VARIANTE2 + $funktion_arr = _addFunktionscontainer_Funktionscode7($person_obj->uid, $funktion_arr, $stichtag); // Container Funktion dem Container Person anhaengen // ----------------------------------------------------------------------------------------------------------------- @@ -821,24 +810,21 @@ function _getFunktionscontainer_Funktionscode123456($bisfunktion_arr) * @return array * */ - //Test -//function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr) //Variante1 -function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr, $stichtag) //Variante2 +function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr, $stichtag) { $entwicklungsteam = new Entwicklungsteam(); - //$entwicklungsteam->getEntwicklungsteam($uid, null); //Variante1 - $entwicklungsteam->getEntwicklungsteamBis($uid, $stichtag); //Variante2 + //nur aktuelle bzw EW-Teameinträge ohne Datumseinträgen werden berücksichtigt + $entwicklungsteam->getEntwicklungsteamBis($uid, $stichtag); $entwicklungsteam_arr = $entwicklungsteam->result; if (!empty($entwicklungsteam_arr)) { // Lehrgaenge und STG, die nicht BIS gemeldet werden, extrahieren - $entwicklungsteam_arr = array_filter($entwicklungsteam_arr, function ($obj) - { + $entwicklungsteam_arr = array_filter($entwicklungsteam_arr, function ($obj) { return - !in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) && - $obj->studiengang_kz > 0 && - $obj->studiengang_kz < 10000; + !in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) && + $obj->studiengang_kz > 0 && + $obj->studiengang_kz < 10000; }); } @@ -846,29 +832,27 @@ function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr, $stichtag) / { // Hoechste besondere Qualifikation $besondere_qualifikation_code_arr = array(); - foreach($entwicklungsteam_arr as $row_entw) - $besondere_qualifikation_code_arr[] = $row_entw->besqualcode; - - $besondere_qualifikation_code = max($besondere_qualifikation_code_arr); - - // alle Studiengaenge mit Person als Teil des Entwicklungsteams um Start- und Ende-Datum ergaenzen + // Studiengaenge, wo Person Teil des Entwicklungsteams gewesen ist $studiengang_kz_arr = array(); foreach($entwicklungsteam_arr as $row_entw) { - $stgkz = $row_entw->studiengang_kz; - $studiengang_kz_arr[$row_entw->entwicklungsteam_id]["studieng_kz"] = setLeadingZero(intval($stgkz), 4); - $studiengang_kz_arr[$row_entw->entwicklungsteam_id]["start"] = $row_entw->beginn; - $studiengang_kz_arr[$row_entw->entwicklungsteam_id]["ende"]= $row_entw->ende; + $besondere_qualifikation_code_arr[] = $row_entw->besqualcode; + $studiengang_kz_arr[] = $row_entw->studiengang_kz; } - sort($studiengang_kz_arr); // sortieren + $besondere_qualifikation_code = max($besondere_qualifikation_code_arr); + sort($studiengang_kz_arr); // sortieren + foreach($studiengang_kz_arr as &$studiengang_kz) // fuehrende Nullen fuer STG + { + $studiengang_kz = setLeadingZero(intval($studiengang_kz), 4); + } // Funktionsobjekt generieren und dem Funktionscontainer anhaengen $funktion_obj = new StdClass(); $funktion_obj->funktionscode = 7; $funktion_obj->besondereQualifikationCode = $besondere_qualifikation_code; $funktion_obj->studiengang = $studiengang_kz_arr; - $funktion_arr[]= $funktion_obj; + $funktion_arr[] = $funktion_obj; } return $funktion_arr; @@ -886,8 +870,7 @@ function _getLehrecontainer($sws_proStg_arr) if (!empty($sws_proStg_arr)) { // Lehrgaenge und STG, die nicht BIS gemeldet werden, extrahieren - $sws_proStg_arr = array_filter($sws_proStg_arr, function ($obj) - { + $sws_proStg_arr = array_filter($sws_proStg_arr, function ($obj) { return !in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) && $obj->studiengang_kz > 0 && @@ -992,7 +975,7 @@ function _generateXML($person_arr) ? 'besondereQualifikationCode. ']]>' : ''; - if ($funktion->funktionscode == 5) + if (($funktion->funktionscode == 5) || ($funktion->funktionscode == 7)) { if (is_array($funktion->studiengang)) { @@ -1011,24 +994,24 @@ function _generateXML($person_arr) } } - if ($funktion->funktionscode == 7) - { - if (is_array($funktion->studiengang)) - { - foreach ($funktion->studiengang as $studiengang) - { - $xml .= ''; - $xml .= ''; - $xml .= ''; - } - } - elseif (!is_null($funktion->studiengang)) - { - $xml .= ''; - $xml .= 'studiengang. ']]>'; - $xml .= ''; - } - } + // if ($funktion->funktionscode == 7) + // { + // if (is_array($funktion->studiengang)) + // { + // foreach ($funktion->studiengang as $studiengang) + // { + // $xml .= ''; + // $xml .= ''; + // $xml .= ''; + // } + // } + // elseif (!is_null($funktion->studiengang)) + // { + // $xml .= ''; + // $xml .= 'studiengang. ']]>'; + // $xml .= ''; + // } + // } $xml .= ''; } @@ -1185,7 +1168,7 @@ function _outputHTML($person_arr) '. $funktion->besondereQualifikationCode. ' '; - if ($funktion->funktionscode == 5) + if (($funktion->funktionscode == 5) || ($funktion->funktionscode == 7)) { if (is_array($funktion->studiengang)) { @@ -1199,31 +1182,6 @@ function _outputHTML($person_arr) echo $funktion->studiengang.' '; } } - //Test - //Variante: EW-Teams mit Zeitraum anzeigen - if ($funktion->funktionscode == 7) - { - if (is_array($funktion->studiengang)) - { - foreach ($funktion->studiengang as $studiengang) - { - echo $studiengang["studieng_kz"].' '; - - if ($studiengang["start"] != "") - { - $beginn = new DateTime($studiengang["start"]); - $ende = new DateTime($studiengang["ende"]); - echo "(". $beginn->format('d.m.Y'). " bis " . $ende->format('d.m.Y') . ")
"; - } - else - echo "
"; - } - } - elseif (!is_null($funktion->studiengang)) - { - echo $funktion->studiengang.' '; - } - } echo ' ';