diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php index b2e9abd09..90b05a480 100644 --- a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php +++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php @@ -231,7 +231,7 @@ class approveAnrechnungDetail extends Auth_Controller // Get Fachbereichsleitung or LV Leitung. if($this->config->item('fbl') === TRUE) { - $result = $this->anrechnunglib->getFachbereichleitung($anrechnung_id); + $result = $this->anrechnunglib->getLeitungOfLvOe($anrechnung_id); } else { @@ -487,7 +487,7 @@ class approveAnrechnungDetail extends Auth_Controller * **/ if ($this->config->item('fbl') === TRUE) { - $receiver_arr = $this->_getFachbereichleitung($lehrveranstaltung_id); + $receiver_arr = $this->_getLeitungOfLvOe($lehrveranstaltung_id); } else { @@ -578,12 +578,12 @@ class approveAnrechnungDetail extends Auth_Controller } - // Get Fachbereichsleitungen - private function _getFachbereichleitung($lehrveranstaltung_id) + // Get Leitungen of Lehrveranstaltungs-Organisationseinheit + private function _getLeitungOfLvOe($lehrveranstaltung_id) { - $result = $this->LehrveranstaltungModel->getFachbereichByLv($lehrveranstaltung_id); + $result = $this->LehrveranstaltungModel->getLeitungOfLvOe($lehrveranstaltung_id); - return hasData($result) ? getData($result) : show_error('Failed retrieving Fachbereichsleitung'); + return hasData($result) ? getData($result) : show_error('Failed retrieving Leitung of Lehrveranstaltungs-Organisationseinheit'); } private function _saveEmpfehlungsNotiz($anrechnung_id, $empfehlungstext, $notiz_id) diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php index 7e1853b47..343041e52 100644 --- a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php +++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php @@ -227,7 +227,7 @@ class approveAnrechnungUebersicht extends Auth_Controller // Get full name of Fachbereichsleitung or LV Leitung. if($this->config->item('fbl') === TRUE) { - $result = $this->anrechnunglib->getFachbereichleitung($item['anrechnung_id']); + $result = $this->anrechnunglib->getLeitungOfLvOe($item['anrechnung_id']); } else { @@ -370,7 +370,7 @@ class approveAnrechnungUebersicht extends Auth_Controller **/ if($this->config->item('fbl') === TRUE) { - $receiver_arr = $this->_getFachbereichleitung($anrechnung_arr); + $receiver_arr = $this->_getLeitungOfLvOe($anrechnung_arr); } else { @@ -467,32 +467,32 @@ class approveAnrechnungUebersicht extends Auth_Controller } /** - * Get Fachbereichsleitung with unique uids. + * Get Leitungen of Lehrveranstaltungs-Organisationseinheit with unique uids. * * @param $anrechnung_arr * @return array */ - private function _getFachbereichleitung($anrechnung_arr) + private function _getLeitungOfLvOe($anrechnung_arr) { - $fbl_arr = array(); + $oeLeitung_arr = array(); - // Get lectors + // Get Leitungen foreach($anrechnung_arr as $anrechnung) { $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel'); - $result = $this->LehrveranstaltungModel->getFachbereichByLv($anrechnung['lehrveranstaltung_id']); + $result = $this->LehrveranstaltungModel->getLeitungOfLvOe($anrechnung['lehrveranstaltung_id']); if (!hasData($result)) { - show_error('No Fachbereichsleitung found'); + show_error('No Leitung found'); } - $fbl_arr = array_merge($fbl_arr, getData($result)); + $oeLeitung_arr = array_merge($oeLeitung_arr, getData($result)); } - // Make Fachbereichsleiter array unique - $fbl_arr = array_unique($fbl_arr, SORT_REGULAR); + // Make array unique + $oeLeitung_arr = array_unique($oeLeitung_arr, SORT_REGULAR); - return $fbl_arr; + return $oeLeitung_arr; } } diff --git a/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php b/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php index a3859a1b6..9dad46aa2 100644 --- a/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php +++ b/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php @@ -269,7 +269,7 @@ class reviewAnrechnungDetail extends Auth_Controller if($this->config->item('fbl') === TRUE) { - $result = $this->LehrveranstaltungModel->getFachbereichByLv($result->lehrveranstaltung_id); + $result = $this->LehrveranstaltungModel->getLeitungOfLvOe($result->lehrveranstaltung_id); } else { @@ -304,7 +304,7 @@ class reviewAnrechnungDetail extends Auth_Controller if($this->config->item('fbl') === TRUE) { - $result = $this->LehrveranstaltungModel->getFachbereichByLv($result->lehrveranstaltung_id); + $result = $this->LehrveranstaltungModel->getLeitungOfLvOe($result->lehrveranstaltung_id); } else { diff --git a/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php index 77dfeeb57..6d4107936 100644 --- a/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php +++ b/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php @@ -75,7 +75,8 @@ class reviewAnrechnungUebersicht extends Auth_Controller } $viewData = array( - 'studiensemester_selected' => $studiensemester_kurzbz + 'studiensemester_selected' => $studiensemester_kurzbz, + 'configFachbereichsleitung' => $this->config->item('fbl') ); $this->load->view('lehre/anrechnung/reviewAnrechnungUebersicht.php', $viewData); @@ -228,7 +229,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller if ($this->config->item('fbl') === TRUE) { - $result = $this->LehrveranstaltungModel->getFachbereichByLv($result->lehrveranstaltung_id); + $result = $this->LehrveranstaltungModel->getLeitungOfLvOe($result->lehrveranstaltung_id); } else { diff --git a/application/libraries/AnrechnungLib.php b/application/libraries/AnrechnungLib.php index 7a0a4b892..67c686863 100644 --- a/application/libraries/AnrechnungLib.php +++ b/application/libraries/AnrechnungLib.php @@ -289,10 +289,10 @@ class AnrechnungLib { $empfehlung_data->empfehlungsanfrageAm = (new DateTime($result->retval[0]->insertamum))->format('d.m.Y'); - // Get users who received request for recommendation (Fachbereichsleitung / Lektor) + // Get users who received request for recommendation if($this->ci->config->item('fbl') === TRUE) { - $res = $this->getFachbereichleitung($anrechnung_id); + $res = $this->getLeitungOfLvOe($anrechnung_id); } else { @@ -843,37 +843,37 @@ class AnrechnungLib } /** - * Get Fachbereichsleitung. + * Get Leitung of Lehrveranstaltungs-Organisationseinheit. * * @param $anrechnung_id * @return false|mixed|null */ - public function getFachbereichleitung($anrechnung_id) + public function getLeitungOfLvOe($anrechnung_id) { $this->ci->AnrechnungModel->addSelect('lehrveranstaltung_id'); $result = $this->ci->AnrechnungModel->load($anrechnung_id); $lehrveranstaltung_id = getData($result)[0]->lehrveranstaltung_id; - // Get FBLs - $result = $this->ci->LehrveranstaltungModel->getFachbereichByLv($lehrveranstaltung_id); + // Get Leitungen + $result = $this->ci->LehrveranstaltungModel->getLeitungOfLvOe($lehrveranstaltung_id); if (!hasData($result)) { return false; } - $fbl_arr = getData($result); + $oeLeitung_arr = getData($result); - foreach ($fbl_arr as $fbl) + foreach ($oeLeitung_arr as $oeLeitung) { - $fbl->fullname = $fbl->vorname. ' '. $fbl->nachname; + $oeLeitung->fullname = $oeLeitung->vorname. ' '. $oeLeitung->nachname; } - // Now make the fbl array unique - $fbl_arr = array_unique($fbl_arr, SORT_REGULAR); + // Now make the array unique + $oeLeitung_arr = array_unique($oeLeitung_arr, SORT_REGULAR); - return $fbl_arr; + return $oeLeitung_arr; } // Return an object with Anrechnungdata diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index b0c7d23a6..1f1b90131 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -201,13 +201,13 @@ class Lehrveranstaltung_model extends DB_Model return $this->execQuery($query, array($lehrveranstaltung_id, $studiensemester_kurzbz)); } /** - * Gets all fachbereichsleiter of a Lehrveranstaltung + * Gets all Leiter of Lehrveranstaltungsorganisationseinheit * @param $lehrveranstaltung_id * @return array|null */ - public function getFachbereichByLv($lehrveranstaltung_id) + public function getLeitungOfLvOe($lehrveranstaltung_id) { - $query = "select distinct vorname, nachname, uid, true as lvleiter + $query = "select distinct vorname, nachname, uid FROM lehre.tbl_lehrveranstaltung lv JOIN public.tbl_organisationseinheit og using (oe_kurzbz) @@ -217,8 +217,7 @@ class Lehrveranstaltung_model extends DB_Model where bf.datum_von <= now()::date and (bf.datum_bis >= now()::date or bf.datum_bis is null) - and bf.funktion_kurzbz = 'Leitung' - AND og.organisationseinheittyp_kurzbz = 'Fachbereich' + and bf.funktion_kurzbz = 'Leitung' -- Leitung of LV-OE and lehrveranstaltung_id = ?"; return $this->execQuery($query, array($lehrveranstaltung_id)); diff --git a/application/views/lehre/anrechnung/reviewAnrechnungUebersichtData.php b/application/views/lehre/anrechnung/reviewAnrechnungUebersichtData.php index 85708cd37..bea21b8a9 100644 --- a/application/views/lehre/anrechnung/reviewAnrechnungUebersichtData.php +++ b/application/views/lehre/anrechnung/reviewAnrechnungUebersichtData.php @@ -69,39 +69,26 @@ $this->load->config('anrechnung'); if ($this->config->item('fbl') === TRUE) { $query.= ' - SELECT DISTINCT /*ON (anrechnungen.*, bf.uid)*/ - CASE - -- erst prüfen, ob es überhaupt eine LV Leitung gibt (wenn nicht, dann immer empfehlungsberechtigt) - WHEN EXISTS (SELECT 1 FROM tbl_lvleitungen WHERE lehrveranstaltung_id = anrechnungen.lehrveranstaltung_id AND lvleiter = TRUE) - -- wenn ja, return true, wenn user LV Leitung ist oder false, wenn nicht - THEN (SELECT EXISTS (SELECT 1 FROM tbl_lvleitungen WHERE lehrveranstaltung_id = anrechnungen.lehrveranstaltung_id AND lvleiter = TRUE AND uid = \'' . $LEKTOR_UID . '\')) - -- wenn es keine LV Leitung, return immer true - ELSE TRUE - END AS empfehlungsberechtigt, - anrechnungen.*, - anrechnungstatus.bezeichnung_mehrsprachig[' . $LANGUAGE_INDEX . '] AS "status_bezeichnung" + SELECT + -- immer empfehlungsberechtigt, da hier nur Leitungen der LV-OE eine Empfehlungsanfrage erhalten + TRUE AS empfehlungsberechtigt, + anrechnungen.* FROM anrechnungen - JOIN lehre.tbl_anrechnungstatus as anrechnungstatus ON (anrechnungstatus.status_kurzbz = anrechnungen.status_kurzbz) - JOIN lehre.tbl_lehreinheit le USING (lehrveranstaltung_id) - /*JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id)*/ JOIN lehre.tbl_lehrveranstaltung lv using (lehrveranstaltung_id) - JOIN public.tbl_organisationseinheit og using (oe_kurzbz) - JOIN public.tbl_benutzerfunktion bf using (oe_kurzbz) - WHERE anrechnungen.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\' - AND le.studiensemester_kurzbz = anrechnungen.studiensemester_kurzbz - /*AND lema.mitarbeiter_uid = \'' . $LEKTOR_UID . '\'*/ - AND le.lehre = TRUE - AND bf.funktion_kurzbz = \'Leitung\' + JOIN public.tbl_organisationseinheit og using (oe_kurzbz) -- OE der LV + JOIN public.tbl_benutzerfunktion bf using (oe_kurzbz) + -- Aktive Leitung der LV-OE + WHERE bf.funktion_kurzbz = \'Leitung\' and bf.datum_von <= now() and (bf.datum_bis >= now() or bf.datum_bis is null) - AND og.organisationseinheittyp_kurzbz = \'Fachbereich\' AND bf.uid = \'' . $LEKTOR_UID . '\' - AND EXISTS ( - SELECT 1 - FROM lehre.tbl_anrechnung_anrechnungstatus - WHERE anrechnung_id = anrechnungen.anrechnung_id - AND status_kurzbz=\'inProgressLektor\' - ) + -- check, dass es für diese Anrechnung eine Empfehlungsanfrage gibt + AND EXISTS ( + SELECT 1 + FROM lehre.tbl_anrechnung_anrechnungstatus + WHERE anrechnung_id = anrechnungen.anrechnung_id + AND status_kurzbz=\'inProgressLektor\' + ) order by empfehlung_anrechnung NULLS FIRST, antragsdatum '; }