From 8be6552235eb374cfdca2526724360ce38230b49 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 7 May 2020 13:46:42 +0200 Subject: [PATCH 1/5] Added check if language isset in COOKIE in hlp_language_helper --- application/helpers/hlp_language_helper.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/application/helpers/hlp_language_helper.php b/application/helpers/hlp_language_helper.php index 1678a4102..f5f164573 100644 --- a/application/helpers/hlp_language_helper.php +++ b/application/helpers/hlp_language_helper.php @@ -35,6 +35,12 @@ function getUserLanguage($language = null) { $language = $_SESSION[LANG_SESSION_CURRENT_LANGUAGE]; // then use it } + // Else if the language is present in the cookie and it is valid + elseif (isset($_COOKIE[LANG_SESSION_CURRENT_LANGUAGE]) && !isEmptyString($_COOKIE[LANG_SESSION_CURRENT_LANGUAGE])) + { + $language = $_COOKIE[LANG_SESSION_CURRENT_LANGUAGE]; + } + // Otherwise checks if the user is authenticated to retrieve the users's language // NOTE: this helper could be called when the user is NOT logged in the system // therefore is checked if the user is logged From 784afe004482b246b8d69b27f2d2be0f5fe05207 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 14 May 2020 13:40:34 +0200 Subject: [PATCH 2/5] crm/Prestudent_model getPrestudentWithZgv: added order for Bewerbungstermine --- application/models/crm/Prestudent_model.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index 97b662f05..2e014800c 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -259,7 +259,9 @@ class Prestudent_model extends DB_Model //get Bewerbungsfrist $this->load->model('crm/bewerbungstermine_model', 'BewerbungstermineModel'); $this->BewerbungstermineModel->addSelect('ende, nachfrist_ende'); - $this->BewerbungstermineModel->addOrder('ende', 'DESC'); + $this->BewerbungstermineModel->addOrder('updateamum', 'DESC'); + $this->BewerbungstermineModel->addOrder('insertamum', 'DESC'); + $this->BewerbungstermineModel->addOrder('ende'); $this->BewerbungstermineModel->addLimit(1); $fristparams = array( From e459c9bf02b12cac490e3ed85dd4737b718ec9f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 19 May 2020 16:19:17 +0200 Subject: [PATCH 3/5] =?UTF-8?q?Personalmeldung=20-=20Abw=C3=A4rtskompatibi?= =?UTF-8?q?lit=C3=A4t=20f=C3=BCr=20=C3=A4ltere=20PHP=20Versionen=20-=20Pro?= =?UTF-8?q?blem=20behoben=20mit=20leeren=20Lehre=20Verwendungen=20wenn=20L?= =?UTF-8?q?ehrauftr=C3=A4ge=20mit=200=20Semesterstunden=20vorhanden=20sind?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/bis/personalmeldung.php | 106 ++++++++++++++++++++++++++++---- 1 file changed, 93 insertions(+), 13 deletions(-) diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php index 2c315c4bc..5cc7fcf8b 100644 --- a/vilesci/bis/personalmeldung.php +++ b/vilesci/bis/personalmeldung.php @@ -206,8 +206,7 @@ foreach ($mitarbeiter_arr as $mitarbeiter) $is_hauptberuflich = $bisverwendung_arr[count($bisverwendung_arr) - 1]->hauptberuflich; // wenn Hauptberuf / Nebenberuf im gleichen Jahr - laengere Dauer melden (Ueberwiegenheitprinzip) - if (in_array(true, array_column($bisverwendung_arr, 'hauptberuflich')) && // hauptberuflich UND - in_array(false, array_column($bisverwendung_arr, 'hauptberuflich'))) // nebenberuflich + if (has_hauptberufchange($bisverwendung_arr)) // nebenberuflich { $is_hauptberuflich = _getUeberwiegendeTaetigkeit_HauptNebenberuf($bisverwendung_arr); } @@ -235,12 +234,9 @@ 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->ba2code, array_column($verwendung_arr, 'ba2code')) && // Beschaeftigungsart2 UND - in_array($bisverwendung->verwendung_code, array_column($verwendung_arr, 'verwendung_code'))))) // Verwendung_code noch NICHT vorhanden + // Pruefen ob bereits eine Verwendung mit selben Ba1code, Ba2code und Verwendung vorhanden ist + if (empty($verwendung_arr) || !verwendung_exists($bisverwendung, $verwendung_arr)) { - // Temporaeren array mit Verwendungen mit gleichem Beschaeftigungsverhaeltnis und gleichem Verwendungscode erstellen $verwendung_tmp_arr = array_filter($bisverwendung_arr, function ($obj) use ($bisverwendung) { return @@ -403,16 +399,22 @@ function _add_relativesBA_und_anteiligeJVZAE($uid, $bisverwendung_arr) global $ss_kurzbz; global $ws_kurzbz; + $has_lehrtaetigkeit = false; + // Lehrtaetigkeit ermitteln $lema = new lehreinheitmitarbeiter(); $lema->getLehreinheiten_SWS_BISMeldung($uid, $ss_kurzbz); $lehre_ss_sws = $lema->result[0]; // Anzahl SS - Semesterwochenstunden + if (!is_null($lehre_ss_sws) && $lehre_ss_sws > 0) + $has_lehrtaetigkeit = true; + $lema = new lehreinheitmitarbeiter(); $lema->getLehreinheiten_SWS_BISMeldung($uid, $ws_kurzbz); $lehre_ws_sws = $lema->result[0]; // Anzahl WS - Semesterwochenstunden - $has_lehrtaetigkeit = !is_null($lehre_ss_sws) || !is_null($lehre_ws_sws); + if (!is_null($lehre_ws_sws) && $lehre_ws_sws > 0) + $has_lehrtaetigkeit = true; foreach ($bisverwendung_arr as $index => $bisverwendung) { @@ -772,7 +774,7 @@ function _getFunktionscontainer_Funktionscode123456($bisfunktion_arr) // Funktionsobjekt generieren if (!is_null($funktion_code) && // Funktionscode vorhanden UND (empty($funktion_arr) || // (Erster Durchlauf ODER - !in_array($funktion_code, array_column($funktion_arr, 'funktionscode')))) // Funktionsobjekt mit diesem Funktionscode nicht vorhanden) + !funktionscode_exists($funktion_code, $funktion_arr))) // Funktionsobjekt mit diesem Funktionscode nicht vorhanden) { $funktion_obj = new StdClass(); $funktion_obj->funktionscode = $funktion_code; @@ -825,11 +827,17 @@ function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr) if (!empty($entwicklungsteam_arr)) { // Hoechste besondere Qualifikation - $besondere_qualifikation_code_arr = array_values(array_column($entwicklungsteam_arr, 'besqualcode')); + $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); // Studiengaenge, wo Person Teil des Entwicklungsteams gewesen ist - $studiengang_kz_arr = array_values(array_column($entwicklungsteam_arr, 'studiengang_kz')); + $studiengang_kz_arr = array(); + foreach($entwicklungsteam_arr as $row_entw) + $studiengang_kz_arr[] = $row_entw->studiengang_kz; + sort($studiengang_kz_arr); // sortieren foreach($studiengang_kz_arr as &$studiengang_kz) // fuehrende Nullen fuer STG { @@ -876,8 +884,7 @@ function _getLehrecontainer($sws_proStg_arr) $is_wintersemester = substr($sws_proStg->studiensemester_kurzbz, 0, 2) == 'WS'; // Lehreobjekt generieren - if (empty($lehre_arr) || // Erster Durchlauf ODER - !in_array($sws_proStg->studiengang_kz, array_column($lehre_arr, 'StgKz'))) // Neu + if (empty($lehre_arr) || !lehre_stg_exists($sws_proStg->studiengang_kz, $lehre_arr)) { $lehre_obj = new StdClass(); @@ -1292,3 +1299,76 @@ function outputPlausibilitaetschecks($person_arr) } } } + +/** + * Prueft ob in Verwendung_arr bereits eine Kombination mit selben ba1code, ba2code und verwendungcode + * vorhanden ist + * @param $bisverwendung Verwendungsobjekt + * @param $verwendung_arr Array mit verwendungsobjekten + */ +function verwendung_exists($bisverwendung, $verwendung_arr) +{ + foreach ($verwendung_arr as $row_verwendung) + { + if ($row_verwendung->ba1code == $bisverwendung->ba1code + && $row_verwendung->ba2code == $bisverwendung->ba2code + && $row_verwendung->verwendung_code == $bisverwendung->verwendung_code) + { + return true; + } + } + return false; +} + +/** + * Prueft ob ein Studiengang bereits im Lehre Container vorhanden ist + * @param $studiengang_kz Studiengangskennzahl + * @param $lehre_arr Array mit Lehre Objekten + * @return true wenn der Studiengang bereits existiert + */ +function lehre_stg_exists($studiengang_kz, $lehre_arr) +{ + foreach($lehre_arr as $row) + { + if($row->StgKz == $studiengang_kz) + return true; + } + return false; +} + +/** + * Prueft ob sich das Hauptberuflich innerhalb der Verwendungen aendert + * @param $bisverwendung_arr Array mit Verwendungen + * @return boolean true wenn sich hauptberuflich unterscheidet. + */ +function has_hauptberufchange($bisverwendung_arr) +{ + $hauptberuflich_arr = array(); + + foreach($bisverwendung_arr as $row) + { + $hauptberuflich_arr[] = $row->hauptberuflich; + } + + if(count(array_unique($hauptberuflich_arr))>1) + return true; + else + return false; +} + +/** + * Prueft ob der Funktionscode in den Funktionen bereits vorkommt + * @param $funktion_code Funktionscode + * @param $funktion_arr Array mit Funktionsobjekten + * @return true wenn funktionscode vorkommt. + */ +function funktionscode_exists($funktion_code, $funktion_arr) +{ + foreach($funktion_arr as $row) + { + if($row->funktionscode == $funktion_code) + return true; + } + + return false; +} From 01e11d94533e3132ed3c828a7e6857f18a84fd0a Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Tue, 19 May 2020 17:47:33 +0200 Subject: [PATCH 4/5] =?UTF-8?q?Hack=20f=C3=BCr=20BEW-BB,=20wenn=20auch=20B?= =?UTF-8?q?EW-DL-Ergebnisse=20vorliegen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/stammdaten/auswertung_fhtw.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php index 4150bc18b..752467913 100644 --- a/vilesci/stammdaten/auswertung_fhtw.php +++ b/vilesci/stammdaten/auswertung_fhtw.php @@ -1504,6 +1504,15 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit'])) $gebiete_arr = array(); while ($row = $db->db_fetch_object($result)) { + // Hack für BEW-BB, wenn auch BEW-DL-Ergebnisse vorliegen + if ($row->stg_kurzbz == 'BEW' && $row->orgform_kurzbz == 'BB') + { + if ($row->gebiet_id == 2 || $row->gebiet_id == 44 || $row->gebiet_id == 95 || $row->gebiet_id == 10) + { + continue; + } + } + if (!isset($ergebnis[$row->prestudent_id])) { $ergebnis[$row->prestudent_id] = new stdClass(); @@ -1578,6 +1587,11 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit'])) { $gebiete_arr[$row->prestudent_id][] = $row->gebiet_id; + // Gewichtung bei BEW BB bei Schlussfolgerungen manuell korrigieren, da es zur falschen Berechnung kommt, wenn es auch BEW-DL Ergebnisse gibt + if ($row->stg_kurzbz == 'BEW' && $row->orgform_kurzbz == 'BB' && $row->gebiet_id == 4) + { + $row->gewicht = 2; + } // Gesamtpunkte if (isset($ergebnis[$row->prestudent_id]->gesamt)) { From ed3e0f2b48cc340f7ddaa34ab16fd253d7f9830c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 19 May 2020 18:05:44 +0200 Subject: [PATCH 5/5] =?UTF-8?q?Exportparameter=20f=C3=BCr=20db=5Ffetch=5Fa?= =?UTF-8?q?rray=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/statistik/projektarbeitexport.xls.php | 4 ++-- include/pgsql.class.php | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/content/statistik/projektarbeitexport.xls.php b/content/statistik/projektarbeitexport.xls.php index 213cb4b94..3b8e6b31e 100644 --- a/content/statistik/projektarbeitexport.xls.php +++ b/content/statistik/projektarbeitexport.xls.php @@ -103,7 +103,7 @@ if ($semester != '') $zeile=1; if ($result = $db->db_query($qry)) { - while ($row = $db->db_fetch_array($result)) + while ($row = $db->db_fetch_array($result, null, PGSQL_BOTH)) { $zeile++; $i = 0; @@ -150,7 +150,7 @@ if ($result = $db->db_query($qry)) } $zeile++; - while ($row_betreuer = $db->db_fetch_array($result_betreuer)) + while ($row_betreuer = $db->db_fetch_array($result_betreuer, null, PGSQL_BOTH)) { $i = 1; diff --git a/include/pgsql.class.php b/include/pgsql.class.php index 7e0333b9f..2daf2283a 100644 --- a/include/pgsql.class.php +++ b/include/pgsql.class.php @@ -172,12 +172,12 @@ class basis_db extends db return pg_result_seek($result, $offset); } - public function db_fetch_array($result=null) + public function db_fetch_array($result=null, $row=null, $result_type=PGSQL_NUM) { if(is_null($result)) - return pg_fetch_array($this->db_result); + return pg_fetch_array($this->db_result, $row, $result_type); else - return pg_fetch_array($result); + return pg_fetch_array($result, $row, $result_type); } public function db_num_fields($result=null)