Merge branch 'master' of https://github.com/FH-Complete/FHC-Core into feature-7529/Bundesadler_auf_Urkunden_im_Selfservice

This commit is contained in:
Cris
2020-05-25 17:06:05 +02:00
6 changed files with 121 additions and 19 deletions
@@ -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
+3 -1
View File
@@ -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(
@@ -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;
+3 -3
View File
@@ -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)
+93 -13
View File
@@ -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;
}
+14
View File
@@ -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))
{