diff --git a/application/views/lehre/anrechnung/approveAnrechnungUebersicht.php b/application/views/lehre/anrechnung/approveAnrechnungUebersicht.php
index 34cb6b998..dec7dcaff 100644
--- a/application/views/lehre/anrechnung/approveAnrechnungUebersicht.php
+++ b/application/views/lehre/anrechnung/approveAnrechnungUebersicht.php
@@ -124,14 +124,7 @@ $this->load->view(
- load->config('anrechnung');
- if ($this->config->item('fbl') === TRUE)
- $this->load->view('lehre/anrechnung/approveAnrechnungUebersichtData_fbl.php');
- else
- $this->load->view('lehre/anrechnung/approveAnrechnungUebersichtData.php');
- ?>
+ load->view('lehre/anrechnung/approveAnrechnungUebersichtData.php'); ?>
diff --git a/application/views/lehre/anrechnung/approveAnrechnungUebersichtData.php b/application/views/lehre/anrechnung/approveAnrechnungUebersichtData.php
index 87ba57b6f..0a0d33c3b 100644
--- a/application/views/lehre/anrechnung/approveAnrechnungUebersichtData.php
+++ b/application/views/lehre/anrechnung/approveAnrechnungUebersichtData.php
@@ -107,8 +107,39 @@ $query = '
AND status_kurzbz = \'' . ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR . '\'
ORDER BY insertamum DESC
LIMIT 1)
- END "empfehlungsanfrageAm",
- CASE
+ END "empfehlungsanfrageAm",';
+
+$this->load->config('anrechnung');
+if ($this->config->item('fbl') === TRUE)
+{
+ $query.= ' CASE
+ WHEN (anrechnungen.empfehlung_anrechnung IS NULL AND anrechnungen.status_kurzbz = \'' . ANRECHNUNGSTATUS_PROGRESSED_BY_STGL . '\') THEN NULL
+ ELSE
+ (SELECT COALESCE(
+ STRING_AGG(CONCAT_WS(\' \', vorname, nachname), \', \')
+ ) empfehlungsanfrageAn
+ FROM (
+ SELECT DISTINCT ON (benutzer.uid) bf.uid, vorname, nachname
+ FROM lehre.tbl_lehreinheit
+ JOIN lehre.tbl_lehrveranstaltung lv using (lehrveranstaltung_id)
+ JOIN public.tbl_organisationseinheit og using (oe_kurzbz)
+ JOIN public.tbl_benutzerfunktion bf using (oe_kurzbz)
+ JOIN public.tbl_benutzer benutzer ON bf.uid = benutzer.uid
+ JOIN public.tbl_person USING (person_id)
+ WHERE studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\'
+ and bf.datum_von <= now()
+ and (bf.datum_bis >= now() or bf.datum_bis is null)
+ AND lehrveranstaltung_id = anrechnungen.lehrveranstaltung_id
+ AND benutzer.aktiv = TRUE
+ AND tbl_person.aktiv = TRUE
+ ORDER BY benutzer.uid, nachname, vorname
+ ) as tmp_lvlektoren
+ )
+ END "empfehlungsanfrageAn"';
+}
+else
+{
+ $query.= ' CASE
WHEN (anrechnungen.empfehlung_anrechnung IS NULL AND anrechnungen.status_kurzbz = \'' . ANRECHNUNGSTATUS_PROGRESSED_BY_STGL . '\') THEN NULL
ELSE
(SELECT COALESCE(
@@ -130,8 +161,10 @@ $query = '
ORDER BY benutzer.uid, lvleiter DESC, nachname, vorname
) as tmp_lvlektoren
)
- END "empfehlungsanfrageAn"
- FROM anrechnungen
+ END "empfehlungsanfrageAn"';
+}
+
+$query.= ' FROM anrechnungen
JOIN lehre.tbl_anrechnungstatus as anrechnungstatus ON (anrechnungstatus.status_kurzbz = anrechnungen.status_kurzbz)
WHERE studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\'
AND studiengang_kz IN (' . $STUDIENGAENGE_ENTITLED . ')
@@ -147,7 +180,7 @@ $filterWidgetArray = array(
'lehrveranstaltung_id',
'begruendung_id',
'dms_id',
- 'schreibberechtigt',
+ 'Schreibberechtigt',
'studiensemester_kurzbz',
'studiengang_kz',
ucfirst($this->p->t('lehre', 'studiengang')),
diff --git a/application/views/lehre/anrechnung/reviewAnrechnungUebersicht.php b/application/views/lehre/anrechnung/reviewAnrechnungUebersicht.php
index 82e66487f..e3de15084 100644
--- a/application/views/lehre/anrechnung/reviewAnrechnungUebersicht.php
+++ b/application/views/lehre/anrechnung/reviewAnrechnungUebersicht.php
@@ -117,13 +117,7 @@ $this->load->view(
- load->config('anrechnung');
- if($this->config->item('fbl')===TRUE)
- $this->load->view('lehre/anrechnung/reviewAnrechnungUebersichtData_fbl.php');
- else
- $this->load->view('lehre/anrechnung/reviewAnrechnungUebersichtData.php');?>
+ load->view('lehre/anrechnung/reviewAnrechnungUebersichtData.php');?>
diff --git a/application/views/lehre/anrechnung/reviewAnrechnungUebersichtData.php b/application/views/lehre/anrechnung/reviewAnrechnungUebersichtData.php
index aa28d7fc0..ca086506f 100644
--- a/application/views/lehre/anrechnung/reviewAnrechnungUebersichtData.php
+++ b/application/views/lehre/anrechnung/reviewAnrechnungUebersichtData.php
@@ -63,32 +63,77 @@ $query = '
AND benutzer.aktiv = TRUE
AND tbl_person.aktiv = TRUE
ORDER BY lehrveranstaltung_id, benutzer.uid, lehrfunktion_kurzbz DESC
- )
-
- SELECT DISTINCT ON (anrechnungen.*, lema.mitarbeiter_uid) anrechnungen.*,
- array_to_json(anrechnungstatus.bezeichnung_mehrsprachig::varchar[])->>' . $LANGUAGE_INDEX . ' AS "status_bezeichnung",
- 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
- 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)
- WHERE le.studiensemester_kurzbz = anrechnungen.studiensemester_kurzbz
- AND lema.mitarbeiter_uid = \'' . $LEKTOR_UID . '\'
- AND le.lehre = TRUE
- AND EXISTS (
- SELECT 1
- FROM lehre.tbl_anrechnung_anrechnungstatus
- WHERE anrechnung_id = anrechnungen.anrechnung_id
- AND status_kurzbz=\'inProgressLektor\'
- )
-';
+ )';
+
+$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.*,
+ array_to_json(anrechnungstatus.bezeichnung_mehrsprachig::varchar[])->>' . $LANGUAGE_INDEX . ' AS "status_bezeichnung"
+ 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\'
+ 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\'
+ )
+ order by empfehlung_anrechnung NULLS FIRST, antragsdatum
+ ';
+}
+else
+{
+ $query.= '
+ SELECT DISTINCT ON (anrechnungen.*, lema.mitarbeiter_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.*,
+ array_to_json(anrechnungstatus.bezeichnung_mehrsprachig::varchar[])->>' . $LANGUAGE_INDEX . ' AS "status_bezeichnung"
+ 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)
+ WHERE le.studiensemester_kurzbz = anrechnungen.studiensemester_kurzbz
+ AND lema.mitarbeiter_uid = \'' . $LEKTOR_UID . '\'
+ AND le.lehre = TRUE
+ AND EXISTS (
+ SELECT 1
+ FROM lehre.tbl_anrechnung_anrechnungstatus
+ WHERE anrechnung_id = anrechnungen.anrechnung_id
+ AND status_kurzbz=\'inProgressLektor\'
+ )
+ ';
+}
$filterWidgetArray = array(
'query' => $query,
@@ -96,6 +141,7 @@ $filterWidgetArray = array(
'requiredPermissions' => 'lehre/anrechnung_empfehlen',
'datasetRepresentation' => 'tabulator',
'columnsAliases' => array(
+ 'Empfehlungsberechtigt',
'anrechnung_id',
'lehrveranstaltung_id',
'begruendung_id',
@@ -113,8 +159,7 @@ $filterWidgetArray = array(
ucfirst($this->p->t('anrechnung', 'antragdatum')),
ucfirst($this->p->t('anrechnung', 'empfehlung')),
'status_kurzbz',
- 'Status',
- 'empfehlungsberechtigt'
+ 'Status'
),
'datasetRepOptions' => '{
height: func_height(this),
@@ -148,6 +193,9 @@ $filterWidgetArray = array(
}
}', // tabulator properties
'datasetRepFieldsDefs' => '{
+ empfehlungsberechtigt: {formatter:"tickCross", align:"center", headerTooltip:"Berechtigt wenn man die LV leitet oder wenn der LV keine LV-Leitung zugeordnet ist.",
+ headerFilter:"tickCross", headerFilterParams:{"tristate": true, "initial": true}, headerFilterFunc: hf_empfehlungsberechtigt
+ },
anrechnung_id: {visible: false, headerFilter:"input"},
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
begruendung_id: {visible: false, headerFilter:"input"},
@@ -165,10 +213,7 @@ $filterWidgetArray = array(
antragsdatum: {align:"center", headerFilter:"input", mutator: mut_formatStringDate},
empfehlung_anrechnung: {headerFilter:"input", align:"center", formatter: format_empfehlung_anrechnung, headerFilterFunc: hf_filterTrueFalse},
status_kurzbz: {visible: false, headerFilter:"input"},
- status_bezeichnung: {headerFilter:"input"},
- empfehlungsberechtigt: {formatter:"tickCross", align:"center",
- headerFilter:"tickCross", headerFilterParams:{"tristate": true, "initial": true}, headerFilterFunc: hf_empfehlungsberechtigt
- }
+ status_bezeichnung: {headerFilter:"input"}
}', // col properties
);