diff --git a/include/lehreinheitmitarbeiter.class.php b/include/lehreinheitmitarbeiter.class.php index 80cdd0c8b..90617ccfe 100644 --- a/include/lehreinheitmitarbeiter.class.php +++ b/include/lehreinheitmitarbeiter.class.php @@ -554,7 +554,8 @@ class lehreinheitmitarbeiter extends basis_db $qry = ' WITH semester_sws_tbl AS ( - SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden, stg.studiengang_kz + SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden, + stg.studiengang_kz, stg.melde_studiengang_kz, stg.lgartcode FROM lehre.tbl_lehreinheitmitarbeiter lema JOIN lehre.tbl_lehreinheit USING (lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id) @@ -577,13 +578,17 @@ class lehreinheitmitarbeiter extends basis_db SELECT studiengang_kz, studiensemester_kurzbz, + melde_studiengang_kz, + lgartcode, sum(semesterstunden) AS summe, round(sum(semesterstunden) / 15, 2) AS sws FROM semester_sws_tbl GROUP BY studiengang_kz, - studiensemester_kurzbz + studiensemester_kurzbz, + melde_studiengang_kz, + lgartcode ORDER BY studiengang_kz; '; @@ -595,6 +600,8 @@ class lehreinheitmitarbeiter extends basis_db $obj = new StdClass(); $obj->studiengang_kz = $row->studiengang_kz; $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $obj->melde_studiengang_kz = $row->melde_studiengang_kz; + $obj->lgartcode = $row->lgartcode; $obj->sws = $row->sws; $this->result []= $obj; } diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php index cd929c24b..69c358db6 100644 --- a/vilesci/bis/personalmeldung.php +++ b/vilesci/bis/personalmeldung.php @@ -875,7 +875,6 @@ function _getLehrecontainer($sws_proStg_arr) $sws_proStg_arr = array_filter($sws_proStg_arr, function ($obj) { return !in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) && - $obj->studiengang_kz > 0 && $obj->studiengang_kz < 10000; }); } @@ -886,13 +885,17 @@ function _getLehrecontainer($sws_proStg_arr) { $is_sommersemester = substr($sws_proStg->studiensemester_kurzbz, 0, 2) == 'SS'; $is_wintersemester = substr($sws_proStg->studiensemester_kurzbz, 0, 2) == 'WS'; + $is_lehrgang = isset($sws_proStg->lgartcode); + $kennzeichen_name = $is_lehrgang ? 'LehrgangNr' : 'StgKz'; // Lehreobjekt generieren if (empty($lehre_arr) || !lehre_stg_exists($sws_proStg->studiengang_kz, $lehre_arr)) { $lehre_obj = new StdClass(); - $lehre_obj->StgKz = setLeadingZero(intval($sws_proStg->studiengang_kz), 4); + $lehre_obj->{$kennzeichen_name} = $sws_proStg->melde_studiengang_kz; + //~ $lehre_obj->StgKz = setLeadingZero(intval($sws_proStg->studiengang_kz), 4); + $lehre_obj->SommersemesterSWS = $is_sommersemester ? $sws_proStg->sws : 0.00; $lehre_obj->WintersemesterSWS = $is_wintersemester ? $sws_proStg->sws : 0.00; @@ -1020,7 +1023,12 @@ function _generateXML($person_arr) foreach ($person->lehre_arr as $lehre) { $xml .= ''; - $xml .= 'StgKz. ']]>'; + + if (isset($lehre->LehrgangNr)) + $xml .= 'LehrgangNr. ']]>'; + else + $xml .= 'StgKz. ']]>'; + $xml .= 'SommersemesterSWS. ']]>'; $xml .= 'WintersemesterSWS. ']]>'; $xml .= ''; @@ -1211,7 +1219,7 @@ function _outputHTML($person_arr) { echo ' - '. $lehre->StgKz. ' + '. (isset($lehre->LehrgangNr) ? $lehre->LehrgangNr : $lehre->StgKz). ' '. $lehre->SommersemesterSWS. ' '. $lehre->WintersemesterSWS. ' '; @@ -1359,7 +1367,8 @@ function lehre_stg_exists($studiengang_kz, $lehre_arr) { foreach($lehre_arr as $row) { - if($row->StgKz == $studiengang_kz) + $kennzeichenName = $row->LehrgangNr ?? $row->StgKz; + if(isset($row->{$kennzeichenName}) && $row->{$kennzeichenName} == $melde_studiengang_kz) return true; } return false;