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,