diff --git a/application/components/filters/Vertragsverwaltung.php b/application/components/filters/Vertragsverwaltung.php
index 81e6775b3..d759f9563 100644
--- a/application/components/filters/Vertragsverwaltung.php
+++ b/application/components/filters/Vertragsverwaltung.php
@@ -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'
);
\ No newline at end of file
diff --git a/public/js/components/Vertraege/MitarbeiterHeader.js b/public/js/components/Vertraege/MitarbeiterHeader.js
index fa8162141..52fb244c3 100644
--- a/public/js/components/Vertraege/MitarbeiterHeader.js
+++ b/public/js/components/Vertraege/MitarbeiterHeader.js
@@ -53,16 +53,14 @@ export default {
title: "Aktiv", field: "aktiv", visible: false, headerFilter: true, width: 85,
formatter:"tickCross",
hozAlign:"center",
- formatter: function(cell) {
- return cell.getValue() === "aktiv"
- ? ''
- : '';
+ formatterParams: {
+ tickElement: '',
+ crossElement: ''
}
},
{title: "Unternehmen", field: "unternehmen", visible: false, headerFilter: "input"},
{title: "Vertragsarten", field: "vertragsarten", visible: true, headerFilter: "input"},
{title: "Ids Dienstverträge", field: "ids", visible: true, headerFilter: "input"},
-
{
title: "email", field: "email", headerFilter: "input",
visible: false,
@@ -77,6 +75,7 @@ export default {
return container;
},
},
+ {title: "Filter aktiv/all", field: "aktiv_status", visible:false, headerFilter: "input"}
],
layout: 'fitColumns',
persistenceID: 'core-mitarbeiter_20250901',
diff --git a/system/filtersupdate.php b/system/filtersupdate.php
index 7bca94a23..a865a0cd7 100644
--- a/system/filtersupdate.php
+++ b/system/filtersupdate.php
@@ -1567,7 +1567,7 @@ $filters = array(
'default_filter' => true,
'filter' => '
{
- "name": "MA Vertragsverwaltung (aktiv)",
+ "name": "MA Vertragsverwaltung (aktiv/all)",
"columns": [
{"name": "UID"},
{"name": "PersonId"},
@@ -1579,9 +1579,16 @@ $filters = array(
{"name": "Firma"},
{"name": "Vertragsarten"},
{"name": "IDs Dienstverhältnis"},
- {"name": "email"}
+ {"name": "email"},
+ {"name": "aktiv_status"}
],
"filters": [
+ {
+ "name": "aktiv_status",
+ "option": "",
+ "operation": "equal",
+ "condition": "aktiv"
+ }
]
}',
'oe_kurzbz' => null,