Optimized Mehrsprachigkeit-query

Removed unnessecary type conversions
This commit is contained in:
Cris
2023-03-22 14:08:46 +01:00
parent 8bd007b6ea
commit f94274ae1c
3 changed files with 11 additions and 11 deletions
@@ -5,7 +5,7 @@ const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor';
$STUDIENSEMESTER = $studiensemester_selected; $STUDIENSEMESTER = $studiensemester_selected;
$STUDIENGAENGE_ENTITLED = implode(', ', $studiengaenge_entitled); // alle STG mit Lese- und Schreibberechtigung $STUDIENGAENGE_ENTITLED = implode(', ', $studiengaenge_entitled); // alle STG mit Lese- und Schreibberechtigung
$ORGANISATIONSEINHEITEN_SCHREIBBERECHTIGT = "'". implode(', ', $oes_schreibberechtigt). "'"; // alle STG nur mit Schreibberechtigung $ORGANISATIONSEINHEITEN_SCHREIBBERECHTIGT = "'". implode(', ', $oes_schreibberechtigt). "'"; // alle STG nur mit Schreibberechtigung
$LANGUAGE_INDEX = getUserLanguage() == 'German' ? '0' : '1'; $LANGUAGE_INDEX = getUserLanguage() == 'German' ? '1' : '2';
$query = ' $query = '
WITH anrechnungen AS WITH anrechnungen AS
@@ -40,8 +40,8 @@ $query = '
dmsversion.name AS "dokument_bezeichnung", dmsversion.name AS "dokument_bezeichnung",
anrechnung.anmerkung_student, anrechnung.anmerkung_student,
(SELECT COALESCE( (SELECT COALESCE(
array_to_json(zgvmaster.bezeichnung::varchar[])->>' . $LANGUAGE_INDEX . ', zgvmaster.bezeichnung[' . $LANGUAGE_INDEX . '],
array_to_json(zgv.bezeichnung::varchar[])->>' . $LANGUAGE_INDEX . ' zgv.bezeichnung[' . $LANGUAGE_INDEX . ']
) AS zgv ) AS zgv
FROM public.tbl_prestudent FROM public.tbl_prestudent
LEFT JOIN bis.tbl_zgv zgv USING (zgv_code) LEFT JOIN bis.tbl_zgv zgv USING (zgv_code)
@@ -95,7 +95,7 @@ $query = '
anrechnungen.antragsdatum, anrechnungen.antragsdatum,
anrechnungen.empfehlung_anrechnung, anrechnungen.empfehlung_anrechnung,
anrechnungen.status_kurzbz, anrechnungen.status_kurzbz,
array_to_json(anrechnungstatus.bezeichnung_mehrsprachig::varchar[])->>' . $LANGUAGE_INDEX . ' AS "status_bezeichnung", anrechnungstatus.bezeichnung_mehrsprachig[' . $LANGUAGE_INDEX . '] AS "status_bezeichnung",
anrechnungen.prestudent_id, anrechnungen.prestudent_id,
CASE CASE
WHEN (anrechnungen.empfehlung_anrechnung IS NULL AND anrechnungen.status_kurzbz = \'' . ANRECHNUNGSTATUS_PROGRESSED_BY_STGL . '\') THEN NULL WHEN (anrechnungen.empfehlung_anrechnung IS NULL AND anrechnungen.status_kurzbz = \'' . ANRECHNUNGSTATUS_PROGRESSED_BY_STGL . '\') THEN NULL
@@ -2,7 +2,7 @@
$STUDIENSEMESTER = $studiensemester_selected; $STUDIENSEMESTER = $studiensemester_selected;
$STUDIENGAENGE_ENTITLED = implode(', ', $studiengaenge_entitled); $STUDIENGAENGE_ENTITLED = implode(', ', $studiengaenge_entitled);
$LANGUAGE_INDEX = getUserLanguage() == 'German' ? '0' : '1'; $LANGUAGE_INDEX = getUserLanguage() == 'German' ? '1' : '2';
$query = ' $query = '
SELECT pst.prestudent_id, SELECT pst.prestudent_id,
@@ -14,8 +14,8 @@ $query = '
nachname, nachname,
vorname, vorname,
(SELECT COALESCE( (SELECT COALESCE(
array_to_json(zgvmaster.bezeichnung::varchar[])->>' . $LANGUAGE_INDEX . ', zgvmaster.bezeichnung[' . $LANGUAGE_INDEX . '],
array_to_json(zgv.bezeichnung::varchar[])->>' . $LANGUAGE_INDEX . ' zgv.bezeichnung[' . $LANGUAGE_INDEX . ']
) AS zgv ) AS zgv
FROM public.tbl_prestudent FROM public.tbl_prestudent
LEFT JOIN bis.tbl_zgv zgv USING (zgv_code) LEFT JOIN bis.tbl_zgv zgv USING (zgv_code)
@@ -21,8 +21,8 @@ $query = '
dmsversion.name AS "dokument_bezeichnung", dmsversion.name AS "dokument_bezeichnung",
anrechnung.anmerkung_student, anrechnung.anmerkung_student,
(SELECT COALESCE( (SELECT COALESCE(
array_to_json(zgvmaster.bezeichnung::varchar[])->>' . $LANGUAGE_INDEX . ', zgvmaster.bezeichnung[' . $LANGUAGE_INDEX . '],
array_to_json(zgv.bezeichnung::varchar[])->>' . $LANGUAGE_INDEX . ' zgv.bezeichnung[' . $LANGUAGE_INDEX . ']
) AS zgv ) AS zgv
FROM public.tbl_prestudent FROM public.tbl_prestudent
LEFT JOIN bis.tbl_zgv zgv USING (zgv_code) LEFT JOIN bis.tbl_zgv zgv USING (zgv_code)
@@ -79,7 +79,7 @@ if ($this->config->item('fbl') === TRUE)
ELSE TRUE ELSE TRUE
END AS empfehlungsberechtigt, END AS empfehlungsberechtigt,
anrechnungen.*, anrechnungen.*,
array_to_json(anrechnungstatus.bezeichnung_mehrsprachig::varchar[])->>' . $LANGUAGE_INDEX . ' AS "status_bezeichnung" anrechnungstatus.bezeichnung_mehrsprachig[' . $LANGUAGE_INDEX . '] AS "status_bezeichnung"
FROM anrechnungen FROM anrechnungen
JOIN lehre.tbl_anrechnungstatus as anrechnungstatus ON (anrechnungstatus.status_kurzbz = anrechnungen.status_kurzbz) JOIN lehre.tbl_anrechnungstatus as anrechnungstatus ON (anrechnungstatus.status_kurzbz = anrechnungen.status_kurzbz)
JOIN lehre.tbl_lehreinheit le USING (lehrveranstaltung_id) JOIN lehre.tbl_lehreinheit le USING (lehrveranstaltung_id)
@@ -118,7 +118,7 @@ else
ELSE TRUE ELSE TRUE
END AS empfehlungsberechtigt, END AS empfehlungsberechtigt,
anrechnungen.*, anrechnungen.*,
array_to_json(anrechnungstatus.bezeichnung_mehrsprachig::varchar[])->>' . $LANGUAGE_INDEX . ' AS "status_bezeichnung" anrechnungstatus.bezeichnung_mehrsprachig[' . $LANGUAGE_INDEX . '] AS "status_bezeichnung"
FROM anrechnungen FROM anrechnungen
JOIN lehre.tbl_anrechnungstatus as anrechnungstatus ON (anrechnungstatus.status_kurzbz = anrechnungen.status_kurzbz) JOIN lehre.tbl_anrechnungstatus as anrechnungstatus ON (anrechnungstatus.status_kurzbz = anrechnungen.status_kurzbz)
JOIN lehre.tbl_lehreinheit le USING (lehrveranstaltung_id) JOIN lehre.tbl_lehreinheit le USING (lehrveranstaltung_id)