Changed query to get Leitung of Lehrveranstaltung-Organisationseinheit (instead of 'Fachbereich')

This commit is contained in:
Cris
2023-03-27 10:58:17 +02:00
parent fbcf9d9778
commit 8feec18ff7
7 changed files with 54 additions and 67 deletions
@@ -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)
@@ -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;
}
}
@@ -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
{
@@ -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
{
+12 -12
View File
@@ -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
@@ -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));
@@ -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
';
}