Anzeige EW-Team: nur aktuelle Eintraege oder Eintraege ohne Zeitraum

This commit is contained in:
ma0068
2022-12-02 12:44:53 +01:00
parent 1c0e74e828
commit 1aada9694e
2 changed files with 41 additions and 83 deletions
+1 -1
View File
@@ -368,7 +368,7 @@ class entwicklungsteam extends basis_db
FROM bis.tbl_entwicklungsteam FROM bis.tbl_entwicklungsteam
JOIN bis.tbl_besqual USING(besqualcode) JOIN bis.tbl_besqual USING(besqualcode)
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." 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))"; AND (ende is NULL OR ende >= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 1, 1))";
if($studiengang_kz!=null) if($studiengang_kz!=null)
+40 -82
View File
@@ -138,12 +138,7 @@ foreach($verwendungcodex->result as $row)
// Prüfe Zeitraum zur Erstellung einer BIS-Meldung // Prüfe Zeitraum zur Erstellung einer BIS-Meldung
$studiensemester = new studiensemester(); $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';
$datum_obj = new datum(); $datum_obj = new datum();
if(mb_strstr($stsem, 'SS')) if(mb_strstr($stsem, 'SS'))
@@ -151,8 +146,6 @@ if(mb_strstr($stsem, 'SS'))
$studiensemester->load($stsem); $studiensemester->load($stsem);
$jahr = $datum_obj->formatDatum($studiensemester->start, 'Y'); $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? $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 else
{ {
@@ -174,8 +167,6 @@ $ws = new studiensemester($ws_kurzbz);
// Alle gemeldeten Mitarbeiter holen // Alle gemeldeten Mitarbeiter holen
$mitarbeiter = new mitarbeiter(); $mitarbeiter = new mitarbeiter();
//Test Stichtag1
echo "stichtag" . $beginn_imJahr->format('Y-m-d');
$mitarbeiter->getMitarbeiterBISMeldung($beginn_imJahr->format('Y-m-d')); $mitarbeiter->getMitarbeiterBISMeldung($beginn_imJahr->format('Y-m-d'));
$mitarbeiter_arr = $mitarbeiter->result; $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. * Exkludiert Funktionen, die einem Lehrgang bzw. STG, die nicht BIS-gemeldet werden, zugeordnet sind.
*/ */
// ------------------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------------------------
//Test $funktion_arr = _addFunktionscontainer_Funktionscode7($person_obj->uid, $funktion_arr, $stichtag);
//$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 // Container Funktion dem Container Person anhaengen
// ----------------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------------
@@ -821,24 +810,21 @@ function _getFunktionscontainer_Funktionscode123456($bisfunktion_arr)
* @return array * @return array
* *
*/ */
//Test function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr, $stichtag)
//function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr) //Variante1
function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr, $stichtag) //Variante2
{ {
$entwicklungsteam = new Entwicklungsteam(); $entwicklungsteam = new Entwicklungsteam();
//$entwicklungsteam->getEntwicklungsteam($uid, null); //Variante1 //nur aktuelle bzw EW-Teameinträge ohne Datumseinträgen werden berücksichtigt
$entwicklungsteam->getEntwicklungsteamBis($uid, $stichtag); //Variante2 $entwicklungsteam->getEntwicklungsteamBis($uid, $stichtag);
$entwicklungsteam_arr = $entwicklungsteam->result; $entwicklungsteam_arr = $entwicklungsteam->result;
if (!empty($entwicklungsteam_arr)) if (!empty($entwicklungsteam_arr))
{ {
// Lehrgaenge und STG, die nicht BIS gemeldet werden, extrahieren // 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 return
!in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) && !in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) &&
$obj->studiengang_kz > 0 && $obj->studiengang_kz > 0 &&
$obj->studiengang_kz < 10000; $obj->studiengang_kz < 10000;
}); });
} }
@@ -846,29 +832,27 @@ function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr, $stichtag) /
{ {
// Hoechste besondere Qualifikation // Hoechste besondere Qualifikation
$besondere_qualifikation_code_arr = array(); $besondere_qualifikation_code_arr = array();
foreach($entwicklungsteam_arr as $row_entw) // Studiengaenge, wo Person Teil des Entwicklungsteams gewesen ist
$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
$studiengang_kz_arr = array(); $studiengang_kz_arr = array();
foreach($entwicklungsteam_arr as $row_entw) foreach($entwicklungsteam_arr as $row_entw)
{ {
$stgkz = $row_entw->studiengang_kz; $besondere_qualifikation_code_arr[] = $row_entw->besqualcode;
$studiengang_kz_arr[$row_entw->entwicklungsteam_id]["studieng_kz"] = setLeadingZero(intval($stgkz), 4); $studiengang_kz_arr[] = $row_entw->studiengang_kz;
$studiengang_kz_arr[$row_entw->entwicklungsteam_id]["start"] = $row_entw->beginn;
$studiengang_kz_arr[$row_entw->entwicklungsteam_id]["ende"]= $row_entw->ende;
} }
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 // Funktionsobjekt generieren und dem Funktionscontainer anhaengen
$funktion_obj = new StdClass(); $funktion_obj = new StdClass();
$funktion_obj->funktionscode = 7; $funktion_obj->funktionscode = 7;
$funktion_obj->besondereQualifikationCode = $besondere_qualifikation_code; $funktion_obj->besondereQualifikationCode = $besondere_qualifikation_code;
$funktion_obj->studiengang = $studiengang_kz_arr; $funktion_obj->studiengang = $studiengang_kz_arr;
$funktion_arr[]= $funktion_obj; $funktion_arr[] = $funktion_obj;
} }
return $funktion_arr; return $funktion_arr;
@@ -886,8 +870,7 @@ function _getLehrecontainer($sws_proStg_arr)
if (!empty($sws_proStg_arr)) if (!empty($sws_proStg_arr))
{ {
// Lehrgaenge und STG, die nicht BIS gemeldet werden, extrahieren // 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 return
!in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) && !in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) &&
$obj->studiengang_kz > 0 && $obj->studiengang_kz > 0 &&
@@ -992,7 +975,7 @@ function _generateXML($person_arr)
? '<BesondereQualifikationCode><![CDATA['. $funktion->besondereQualifikationCode. ']]></BesondereQualifikationCode>' ? '<BesondereQualifikationCode><![CDATA['. $funktion->besondereQualifikationCode. ']]></BesondereQualifikationCode>'
: ''; : '';
if ($funktion->funktionscode == 5) if (($funktion->funktionscode == 5) || ($funktion->funktionscode == 7))
{ {
if (is_array($funktion->studiengang)) if (is_array($funktion->studiengang))
{ {
@@ -1011,24 +994,24 @@ function _generateXML($person_arr)
} }
} }
if ($funktion->funktionscode == 7) // if ($funktion->funktionscode == 7)
{ // {
if (is_array($funktion->studiengang)) // if (is_array($funktion->studiengang))
{ // {
foreach ($funktion->studiengang as $studiengang) // foreach ($funktion->studiengang as $studiengang)
{ // {
$xml .= '<Studiengang>'; // $xml .= '<Studiengang>';
$xml .= '<StgKz><![CDATA['. $studiengang["studieng_kz"]. ']]></StgKz>'; // $xml .= '<StgKz><![CDATA['. $studiengang["studieng_kz"]. ']]></StgKz>';
$xml .= '</Studiengang>'; // $xml .= '</Studiengang>';
} // }
} // }
elseif (!is_null($funktion->studiengang)) // elseif (!is_null($funktion->studiengang))
{ // {
$xml .= '<Studiengang>'; // $xml .= '<Studiengang>';
$xml .= '<StgKz><![CDATA['. $funktion->studiengang. ']]></StgKz>'; // $xml .= '<StgKz><![CDATA['. $funktion->studiengang. ']]></StgKz>';
$xml .= '</Studiengang>'; // $xml .= '</Studiengang>';
} // }
} // }
$xml .= '</Funktion>'; $xml .= '</Funktion>';
} }
@@ -1185,7 +1168,7 @@ function _outputHTML($person_arr)
<td>'. $funktion->besondereQualifikationCode. '</td> <td>'. $funktion->besondereQualifikationCode. '</td>
<td>'; <td>';
if ($funktion->funktionscode == 5) if (($funktion->funktionscode == 5) || ($funktion->funktionscode == 7))
{ {
if (is_array($funktion->studiengang)) if (is_array($funktion->studiengang))
{ {
@@ -1199,31 +1182,6 @@ function _outputHTML($person_arr)
echo $funktion->studiengang.' '; 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') . ")<br>";
}
else
echo "<br>";
}
}
elseif (!is_null($funktion->studiengang))
{
echo $funktion->studiengang.' ';
}
}
echo '</td> echo '</td>
</tr>'; </tr>';