Merge branch 'feature-60973/komponente_fuer_lehrfaecherverteilung' into feature-61232/Studierendenverwaltung_Karteireiter_Projektarbeit_portieren

This commit is contained in:
Alexei Karpenko
2025-08-23 16:16:41 +02:00
362 changed files with 23905 additions and 7774 deletions
+52 -51
View File
@@ -153,57 +153,58 @@ class Notiz_model extends DB_Model
*/
public function getNotizWithDocEntries($id, $type, $withoutTags = true)
{
$withoutTagsClause = $withoutTags ? " AND n.typ IS NULL" : "";
$qry = "
SELECT
n.*,
CASE
WHEN person_verfasser.vorname IS NOT NULL AND person_verfasser.vorname != ''
OR person_verfasser.nachname IS NOT NULL AND person_verfasser.nachname != ''
THEN CONCAT(person_verfasser.vorname, ' ', person_verfasser.nachname)
ELSE NULL
END AS verfasser,
CASE
WHEN person_bearbeiter.vorname IS NOT NULL AND person_bearbeiter.vorname != ''
OR person_bearbeiter.nachname IS NOT NULL AND person_bearbeiter.nachname != ''
THEN CONCAT(person_bearbeiter.vorname, ' ', person_bearbeiter.nachname)
ELSE NULL
END AS bearbeiter,
count(dms_id) as countDoc, z.notizzuordnung_id,
(CASE
WHEN n.updateamum >= n.insertamum THEN n.updateamum
ELSE n.insertamum
END) AS lastUpdate,
regexp_replace(n.text, '<[^>]*>', '', 'g') as text_stripped,
TO_CHAR(n.start::timestamp, 'DD.MM.YYYY') AS start_format,
TO_CHAR(n.ende::timestamp, 'DD.MM.YYYY') AS ende_format,
z.notiz_id, z.person_id as id, ? as type_id
FROM
public.tbl_notiz n
JOIN
public.tbl_notizzuordnung z USING (notiz_id)
LEFT JOIN
public.tbl_notiz_dokument dok USING (notiz_id)
LEFT JOIN
campus.tbl_dms_version USING (dms_id)
LEFT JOIN
public.tbl_benutzer p_verfasser ON (p_verfasser.uid = n.verfasser_uid)
LEFT JOIN
public.tbl_person person_verfasser ON (person_verfasser.person_id = p_verfasser.person_id)
LEFT JOIN
public.tbl_benutzer p_bearbeiter ON (p_bearbeiter.uid = n.bearbeiter_uid)
LEFT JOIN
public.tbl_person person_bearbeiter ON (person_bearbeiter.person_id = p_bearbeiter.person_id)
WHERE
z.{$type} = ?
{$withoutTagsClause}
GROUP BY
notiz_id, z.notizzuordnung_id,
person_verfasser.vorname, person_verfasser.nachname,
person_bearbeiter.vorname, person_bearbeiter.nachname
";
$qry = "
SELECT
n.*,
CASE
WHEN person_verfasser.vorname IS NOT NULL AND person_verfasser.vorname != ''
OR person_verfasser.nachname IS NOT NULL AND person_verfasser.nachname != ''
THEN CONCAT(person_verfasser.vorname, ' ', person_verfasser.nachname)
ELSE NULL
END AS verfasser,
CASE
WHEN person_bearbeiter.vorname IS NOT NULL AND person_bearbeiter.vorname != ''
OR person_bearbeiter.nachname IS NOT NULL AND person_bearbeiter.nachname != ''
THEN CONCAT(person_bearbeiter.vorname, ' ', person_bearbeiter.nachname)
ELSE NULL
END AS bearbeiter,
count(dms_id) as countDoc, z.notizzuordnung_id,
(CASE
WHEN n.updateamum >= n.insertamum THEN n.updateamum
ELSE n.insertamum
END) AS lastUpdate,
regexp_replace(n.text, '<[^>]*>', '', 'g') as text_stripped,
TO_CHAR(n.start::timestamp, 'DD.MM.YYYY') AS start_format,
TO_CHAR(n.ende::timestamp, 'DD.MM.YYYY') AS ende_format,
z.notiz_id, z.person_id as id, ? as type_id
FROM
public.tbl_notiz n
JOIN
public.tbl_notizzuordnung z USING (notiz_id)
LEFT JOIN
public.tbl_notiz_dokument dok USING (notiz_id)
LEFT JOIN
campus.tbl_dms_version USING (dms_id)
LEFT JOIN
public.tbl_benutzer p_verfasser ON (p_verfasser.uid = n.verfasser_uid)
LEFT JOIN
public.tbl_person person_verfasser ON (person_verfasser.person_id = p_verfasser.person_id)
LEFT JOIN
public.tbl_benutzer p_bearbeiter ON (p_bearbeiter.uid = n.bearbeiter_uid)
LEFT JOIN
public.tbl_person person_bearbeiter ON (person_bearbeiter.person_id = p_bearbeiter.person_id)
WHERE
z.$type = ?";
if ($withoutTags)
$qry .= " AND n.typ IS NULL ";
$qry .= "GROUP BY
notiz_id, z.notizzuordnung_id,
person_verfasser.vorname, person_verfasser.nachname,
person_bearbeiter.vorname, person_bearbeiter.nachname
";
return $this->execQuery($qry, array($type, $id));
}