Merge branch 'feature-76554/Personalmeldung_alt_bei_Lehre_nicht_melderelevant_rausfiltern'

This commit is contained in:
Andreas Österreicher
2026-04-22 09:15:23 +02:00
3 changed files with 15 additions and 10 deletions
+3 -1
View File
@@ -364,9 +364,10 @@ class entwicklungsteam extends basis_db
$bismeldung_jahr = $datetime->format('Y'); $bismeldung_jahr = $datetime->format('Y');
//laden des Datensatzes //laden des Datensatzes
$qry = "SELECT * $qry = "SELECT tbl_entwicklungsteam.*, tbl_besqual.*, tbl_studiengang.studiengang_kz, tbl_studiengang.melderelevant
FROM bis.tbl_entwicklungsteam FROM bis.tbl_entwicklungsteam
JOIN bis.tbl_besqual USING(besqualcode) JOIN bis.tbl_besqual USING(besqualcode)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)."
AND (beginn is NULL OR 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))";
@@ -394,6 +395,7 @@ class entwicklungsteam extends basis_db
$obj->insertvon = $row->insertvon; $obj->insertvon = $row->insertvon;
$obj->ext_id = $row->ext_id; $obj->ext_id = $row->ext_id;
$obj->besqual = $row->besqualbez; $obj->besqual = $row->besqualbez;
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
$this->result[] = $obj; $this->result[] = $obj;
} }
+4 -2
View File
@@ -584,8 +584,9 @@ class lehreinheitmitarbeiter extends basis_db
$qry = ' $qry = '
WITH semester_sws_tbl AS ( WITH semester_sws_tbl AS (
SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden, SELECT
stg.studiengang_kz, stg.melde_studiengang_kz, stg.lgartcode DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden,
stg.studiengang_kz, stg.melde_studiengang_kz, stg.lgartcode, stg.melderelevant
FROM lehre.tbl_lehreinheitmitarbeiter lema FROM lehre.tbl_lehreinheitmitarbeiter lema
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id) JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id) JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
@@ -598,6 +599,7 @@ class lehreinheitmitarbeiter extends basis_db
AND ss.studiensemester_kurzbz IN ('.$this->implode4SQL($studiensemester_kurzbz_arr).') AND ss.studiensemester_kurzbz IN ('.$this->implode4SQL($studiensemester_kurzbz_arr).')
-- nur lehre, die bisgemeldet wird -- nur lehre, die bisgemeldet wird
AND lema.bismelden AND lema.bismelden
AND stg.melderelevant
-- keine lehreinheiten ohne semesterstunden -- keine lehreinheiten ohne semesterstunden
AND lema.semesterstunden != 0 AND lema.semesterstunden != 0
) )
+8 -7
View File
@@ -742,7 +742,7 @@ function _getFunktionscontainer_Funktionscode123456($bisfunktion_arr)
$has_oe_lehrgang = !($studiengang->studiengang_kz > 0 && $studiengang->studiengang_kz < 10000); $has_oe_lehrgang = !($studiengang->studiengang_kz > 0 && $studiengang->studiengang_kz < 10000);
// STG, die nicht BIS-bemeldet werden, ueberspringen // STG, die nicht BIS-bemeldet werden, ueberspringen
if (in_array($studiengang->studiengang_kz, BIS_EXCLUDE_STG)) if (in_array($studiengang->studiengang_kz, BIS_EXCLUDE_STG) || !$studiengang->melderelevant)
{ {
continue; continue;
} }
@@ -825,6 +825,7 @@ function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr, $stichtag)
$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->melderelevant &&
$obj->studiengang_kz > 0 && $obj->studiengang_kz > 0 &&
$obj->studiengang_kz < 10000; $obj->studiengang_kz < 10000;
}); });
@@ -889,7 +890,7 @@ function _getLehrecontainer($sws_proStg_arr)
$kennzeichen_name = $is_lehrgang ? 'LehrgangNr' : 'StgKz'; $kennzeichen_name = $is_lehrgang ? 'LehrgangNr' : 'StgKz';
// Lehreobjekt generieren // Lehreobjekt generieren
if (empty($lehre_arr) || !lehre_stg_exists($sws_proStg->studiengang_kz, $lehre_arr)) if (empty($lehre_arr) || !lehre_stg_exists($sws_proStg->melde_studiengang_kz, $lehre_arr))
{ {
$lehre_obj = new StdClass(); $lehre_obj = new StdClass();
@@ -904,8 +905,8 @@ function _getLehrecontainer($sws_proStg_arr)
} }
else // Lehrecontainer mit STG schon vorhanden else // Lehrecontainer mit STG schon vorhanden
{ {
$lehre_obj_arr = array_filter($lehre_arr, function (&$obj) use ($sws_proStg) { $lehre_obj_arr = array_filter($lehre_arr, function (&$obj) use ($sws_proStg, $kennzeichen_name) {
return $obj->StgKz == $sws_proStg->studiengang_kz; return isset($obj->{$kennzeichen_name}) && $obj->{$kennzeichen_name} == $sws_proStg->melde_studiengang_kz;
}); });
// SWS ergaenzen // SWS ergaenzen
@@ -1359,15 +1360,15 @@ function verwendung_exists($bisverwendung, $verwendung_arr)
/** /**
* Prueft ob ein Studiengang bereits im Lehre Container vorhanden ist * Prueft ob ein Studiengang bereits im Lehre Container vorhanden ist
* @param $studiengang_kz Studiengangskennzahl * @param $melde_studiengang_kz Studiengangskennzahl
* @param $lehre_arr Array mit Lehre Objekten * @param $lehre_arr Array mit Lehre Objekten
* @return true wenn der Studiengang bereits existiert * @return true wenn der Studiengang bereits existiert
*/ */
function lehre_stg_exists($studiengang_kz, $lehre_arr) function lehre_stg_exists($melde_studiengang_kz, $lehre_arr)
{ {
foreach($lehre_arr as $row) foreach($lehre_arr as $row)
{ {
$kennzeichenName = $row->LehrgangNr ?? $row->StgKz; $kennzeichenName = isset($row->LehrgangNr) ? 'LehrgangNr' : 'StgKz';
if(isset($row->{$kennzeichenName}) && $row->{$kennzeichenName} == $melde_studiengang_kz) if(isset($row->{$kennzeichenName}) && $row->{$kennzeichenName} == $melde_studiengang_kz)
return true; return true;
} }