refactor backend filter

This commit is contained in:
ma0068
2025-09-03 10:43:20 +02:00
parent 49e89f44be
commit 1bb10ddeb1
3 changed files with 40 additions and 10 deletions
@@ -4,6 +4,10 @@ $filterCmptArray = array(
'datasetName' => 'vertragsverwaltung',
'query' => '
SELECT
*
FROM
(
SELECT
b.uid , p.person_id,
p.vorname, p.nachname,
gebdatum,
@@ -13,8 +17,8 @@ $filterCmptArray = array(
STRING_AGG(d.dienstverhaeltnis_id::TEXT, \', \') AS ids,
CASE
WHEN b.aktiv = true THEN \'aktiv\'
ELSE \'naktiv\'
END AS "aktiv"
END AS "aktiv_status",
b.aktiv
FROM
hr.tbl_dienstverhaeltnis d
JOIN public.tbl_benutzer b ON d.mitarbeiter_uid = b.uid
@@ -23,7 +27,27 @@ $filterCmptArray = array(
JOIN hr.tbl_vertragsart va ON d.vertragsart_kurzbz = va.vertragsart_kurzbz
WHERE b.aktiv = true
GROUP BY b.uid, p.person_id, p.vorname, p.nachname, b.alias, b.aktiv
ORDER BY nachname, vorname
UNION ALL
SELECT
b.uid , p.person_id,
p.vorname, p.nachname,
gebdatum,
COALESCE(b.alias, b.uid) AS email,
STRING_AGG(DISTINCT va.bezeichnung, \', \') AS Vertragsarten,
STRING_AGG(DISTINCT u.bezeichnung, \', \') AS Unternehmen,
STRING_AGG(d.dienstverhaeltnis_id::TEXT, \', \') AS ids,
\'all\' AS "aktiv_status",
b.aktiv
FROM
hr.tbl_dienstverhaeltnis d
JOIN public.tbl_benutzer b ON d.mitarbeiter_uid = b.uid
JOIN public.tbl_person p ON p.person_id = b.person_id
JOIN public.tbl_organisationseinheit u ON d.oe_kurzbz = u.oe_kurzbz
JOIN hr.tbl_vertragsart va ON d.vertragsart_kurzbz = va.vertragsart_kurzbz
GROUP BY b.uid, p.person_id, p.vorname, p.nachname, b.alias
ORDER BY nachname, vorname) a
',
'requiredPermissions' => 'vertrag/mitarbeiter'
);