bundles the room_events and the reservierungen api calls together with Promise.allSettled

This commit is contained in:
SimonGschnell
2024-09-06 11:02:14 +02:00
parent f9b69fe08c
commit 8376e8b92d
3 changed files with 52 additions and 79 deletions
@@ -23,11 +23,12 @@ class Reservierung_model extends DB_Model
$raum_reservierungen= $this->execReadOnlyQuery("
SELECT
'reservierung' as type, beginn, ende, subquery.stunde, datum,
COALESCE(titel, beschreibung) as topic,
array_agg(DISTINCT uid) as lektor,
array_agg(DISTINCT (gruppe,verband,semester,studiengang_kz,gruppen_kuerzel)) as gruppe,
COALESCE(titel, beschreibung) as topic,
ort_kurzbz, studiengang_kz, reservierungen.stunde, datum, beginn, ende
ort_kurzbz
FROM
(
@@ -36,12 +37,17 @@ class Reservierung_model extends DB_Model
WHEN res.gruppe_kurzbz IS NOT NULL THEN res.gruppe_kurzbz
ELSE CONCAT(UPPER(studg.typ),UPPER(studg.kurzbz),'-',COALESCE(CAST(res.semester AS varchar),'/'),COALESCE(CAST(res.verband AS varchar),'/'))
END as gruppen_kuerzel
FROM lehre.vw_reservierung res
JOIN public.tbl_studiengang studg ON studg.studiengang_kz=res.studiengang_kz
JOIN lehre.tbl_stunde ON lehre.tbl_stunde.stunde = res.stunde
WHERE res.ort_kurzbz = ? AND datum >= ? AND datum <= ?
) AS reservierungen
GROUP BY ort_kurzbz, studiengang_kz, reservierungen.stunde, datum, titel, beschreibung, beginn, ende
) AS subquery
GROUP BY datum, subquery.stunde, beginn, ende, ort_kurzbz, titel, beschreibung
ORDER BY datum, subquery.stunde
", [$ort_kurzbz, $start_date, $end_date]);
if(isError($raum_reservierungen)){
@@ -144,18 +144,16 @@ class Stundenplan_model extends DB_Model
{
$gruppierteEvents = $this->execReadOnlyQuery("
SELECT
unr, beginn, ende, subquery.stunde, datum,
CONCAT(lehrfach,'-',lehrform) as topic,
array_agg(DISTINCT (gruppe,verband,semester,studiengang_kz,gruppen_kuerzel)) as gruppe,
array_agg(DISTINCT lektor) as lektor,
array_agg(DISTINCT (gruppe,verband,semester,studiengang_kz,gruppen_kuerzel)) as gruppe,
unr,datum, sp.stunde, ort_kurzbz, titel, lehrfach, lehrform, lehrfach_bez, beginn, ende
ort_kurzbz, titel, lehrfach, lehrform, lehrfach_bez
FROM
(
SELECT
unr,datum, sp.stunde,beginn, ende,
SELECT unr,datum, sp.stunde,beginn, ende,
CASE
WHEN sp.mitarbeiter_kurzbz IS NOT NULL THEN sp.mitarbeiter_kurzbz
ELSE lektor
@@ -169,13 +167,11 @@ class Stundenplan_model extends DB_Model
FROM (".$stundenplanViewQuery.") sp
JOIN lehre.tbl_stunde ON lehre.tbl_stunde.stunde = sp.stunde
) as sp
) as subquery
GROUP BY
GROUP BY unr, datum, subquery.stunde, beginn, ende, ort_kurzbz, titel, lehrform, lehrfach, lehrfach_bez
unr, datum, sp.stunde, ort_kurzbz, titel, lehrform, lehrfach, lehrfach_bez, beginn, ende
ORDER BY datum, sp.stunde
ORDER BY datum, subquery.stunde
");
if(isError($gruppierteEvents)){