From 1c0e74e828d7f64356f48ed2d9c1758eef3a9212 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 30 Nov 2022 10:38:40 +0100 Subject: [PATCH] Testvarianten zur Anzeige von EW-Team in Personalmeldung --- include/entwicklungsteam.class.php | 59 ++++++++++++++++++++++++++++-- vilesci/bis/personalmeldung.php | 41 +++++++++------------ 2 files changed, 73 insertions(+), 27 deletions(-) diff --git a/include/entwicklungsteam.class.php b/include/entwicklungsteam.class.php index ac9c4d469..3ca886b28 100644 --- a/include/entwicklungsteam.class.php +++ b/include/entwicklungsteam.class.php @@ -171,7 +171,7 @@ class entwicklungsteam extends basis_db * andernfalls wird der Datensatz mit der ID in $akte_id aktualisiert * @return true wenn ok, false im Fehlerfall */ - public function save($new=null) + public function save($new = null) { if(!$this->validate()) return false; @@ -192,7 +192,6 @@ class entwicklungsteam extends basis_db $this->db_add_param($this->updatevon).', '. $this->db_add_param($this->insertamum).', '. $this->db_add_param($this->insertvon).');'; - } else { @@ -226,7 +225,7 @@ class entwicklungsteam extends basis_db * @param $uid UID des Mitarbeiters * @return true wenn ok, false wenn Fehler */ - public function getEntwicklungsteam($mitarbeiter_uid, $studiengang_kz=null) + public function getEntwicklungsteam($mitarbeiter_uid, $studiengang_kz = null) { //laden des Datensatzes $qry = "SELECT * FROM bis.tbl_entwicklungsteam JOIN bis.tbl_besqual USING(besqualcode) @@ -352,5 +351,59 @@ class entwicklungsteam extends basis_db return false; } } + + /* + * Laedt alle Entwicklungsteameintraege eines Mitarbeiters für eine bestimmte Bisperiode + * @param $uid UID des Mitarbeiters + * @param $stichtag Stichtag im Format 'Y-m-d' + * @return true wenn ok, false wenn Fehler + */ + public function getEntwicklungsteamBis($mitarbeiter_uid, $stichtag, $studiengang_kz = null) + { + $datetime = new DateTime($stichtag); + $bismeldung_jahr = $datetime->format('Y'); + + //laden des Datensatzes + $qry = "SELECT * + 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 (ende is NULL OR ende >= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 1, 1))"; + + if($studiengang_kz!=null) + $qry.=" AND studiengang_kz=".$this->db_add_param($studiengang_kz); + + $qry.=";"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new entwicklungsteam(); + + $obj->entwicklungsteam_id = $row->entwicklungsteam_id; + $obj->mitarbeiter_uid = $row->mitarbeiter_uid; + $obj->studiengang_kz = $row->studiengang_kz; + $obj->besqualcode = $row->besqualcode; + $obj->beginn = $row->beginn; + $obj->ende = $row->ende; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->ext_id = $row->ext_id; + $obj->besqual = $row->besqualbez; + + $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 e6e509a80..d8e3df9f7 100644 --- a/vilesci/bis/personalmeldung.php +++ b/vilesci/bis/personalmeldung.php @@ -139,7 +139,9 @@ foreach($verwendungcodex->result as $row) // Prüfe Zeitraum zur Erstellung einer BIS-Meldung $studiensemester = new studiensemester(); -$stsem = (isset($_GET['stsem'])) ? $_GET['stsem'] : $studiensemester->getaktorNext(); // aktuelles Studiensemester +//Test +//$stsem = (isset($_GET['stsem'])) ? $_GET['stsem'] : $studiensemester->getaktorNext(); // aktuelles Studiensemester +$stsem = 'SS2022'; @@ -149,6 +151,8 @@ 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 { @@ -170,6 +174,8 @@ $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; @@ -335,7 +341,9 @@ foreach ($mitarbeiter_arr as $mitarbeiter) * Exkludiert Funktionen, die einem Lehrgang bzw. STG, die nicht BIS-gemeldet werden, zugeordnet sind. */ // ------------------------------------------------------------------------------------------------------------- - $funktion_arr = _addFunktionscontainer_Funktionscode7($person_obj->uid, $funktion_arr); + //Test + //$funktion_arr = _addFunktionscontainer_Funktionscode7($person_obj->uid, $funktion_arr); //VARIANTE1 + $funktion_arr = _addFunktionscontainer_Funktionscode7($person_obj->uid, $funktion_arr, $stichtag); //VARIANTE2 // Container Funktion dem Container Person anhaengen // ----------------------------------------------------------------------------------------------------------------- @@ -813,10 +821,13 @@ function _getFunktionscontainer_Funktionscode123456($bisfunktion_arr) * @return array * */ -function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr) + //Test +//function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr) //Variante1 +function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr, $stichtag) //Variante2 { $entwicklungsteam = new Entwicklungsteam(); - $entwicklungsteam->getEntwicklungsteam($uid); + //$entwicklungsteam->getEntwicklungsteam($uid, null); //Variante1 + $entwicklungsteam->getEntwicklungsteamBis($uid, $stichtag); //Variante2 $entwicklungsteam_arr = $entwicklungsteam->result; if (!empty($entwicklungsteam_arr)) @@ -1018,26 +1029,6 @@ function _generateXML($person_arr) $xml .= ''; } } - - // if ($funktion->funktionscode == 7 || $funktion->funktionscode == 5) - // { - // if (is_array($funktion->studiengang)) - // { - // foreach ($funktion->studiengang as $studiengang) - // { - // $xml .= ''; - // $xml .= ''; - // $xml .= ''; - // } - // } - // else if (!is_null($funktion->studiengang)) - // { - // $xml .= ''; - // $xml .= 'studiengang. ']]>'; - // $xml .= ''; - // } - // } - $xml .= ''; } @@ -1208,6 +1199,8 @@ function _outputHTML($person_arr) echo $funktion->studiengang.' '; } } + //Test + //Variante: EW-Teams mit Zeitraum anzeigen if ($funktion->funktionscode == 7) { if (is_array($funktion->studiengang))