From 24682fb559553e89a0398e6d6f6b02925262da74 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 12 Feb 2025 17:05:18 +0100 Subject: [PATCH 1/2] changeFormat Dates, use different select for MitarbeiterHeader before PV21, adapt condition for multiselect addon --- .../api/frontend/v1/vertraege/Vertraege.php | 7 ++- .../models/accounting/Vertrag_model.php | 12 ++-- .../models/ressource/Mitarbeiter_model.php | 2 +- public/js/components/Vertraege/List/Status.js | 59 +++++++++++++++++-- .../components/Vertraege/MitarbeiterHeader.js | 17 +++++- public/js/components/Vertraege/Vertraege.js | 23 +++++--- .../Vertraege/Vertragsverwaltung.js | 4 +- 7 files changed, 99 insertions(+), 25 deletions(-) diff --git a/application/controllers/api/frontend/v1/vertraege/Vertraege.php b/application/controllers/api/frontend/v1/vertraege/Vertraege.php index b593a1f3e..f8d535d2d 100644 --- a/application/controllers/api/frontend/v1/vertraege/Vertraege.php +++ b/application/controllers/api/frontend/v1/vertraege/Vertraege.php @@ -659,7 +659,12 @@ class Vertraege extends FHCAPI_Controller } if (!hasData($result)) { - return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id' => 'Id_Lehrauftrag']), self::ERROR_TYPE_GENERAL); + //return data before PV21 (with filter fix angestellt, active and with bisverwendung) + $result = $this->Mitarbeitermodel->getPersonal(true, true, true); + if (isError($result)) + { + return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL); + } } return $this->terminateWithSuccess(getData($result)); } diff --git a/application/models/accounting/Vertrag_model.php b/application/models/accounting/Vertrag_model.php index 048dbb085..f89c6c185 100644 --- a/application/models/accounting/Vertrag_model.php +++ b/application/models/accounting/Vertrag_model.php @@ -343,9 +343,9 @@ class Vertrag_model extends DB_Model *, tbl_vertrag.bezeichnung as bezeichnung, tbl_vertragstyp.bezeichnung as vertragstyp_bezeichnung, - TO_CHAR(tbl_vertrag.vertragsdatum::timestamp, 'DD.MM.YYYY') AS format_vertragsdatum, + tbl_vertrag.vertragsdatum, (SELECT bezeichnung FROM lehre.tbl_vertragsstatus - JOIN lehre.tbl_vertrag_vertragsstatus USING(vertragsstatus_kurzbz) + JOIN lehre.tbl_vertrag_vertragsstatus USING(vertragsstatus_kurzbz) WHERE vertrag_id=tbl_vertrag.vertrag_id ORDER BY datum desc limit 1) as status, anmerkung, CASE WHEN EXISTS ( @@ -487,15 +487,15 @@ SELECT $query = " SELECT *, - TO_CHAR(tbl_vertrag_vertragsstatus.datum::timestamp, 'DD.MM.YYYY HH24:MI') AS format_datum, - TO_CHAR(tbl_vertrag_vertragsstatus.insertamum::timestamp, 'DD.MM.YYYY HH24:MI') AS format_insertamum, - TO_CHAR(tbl_vertrag_vertragsstatus.updateamum::timestamp, 'DD.MM.YYYY HH24:MI') AS format_updateamum + tbl_vertrag_vertragsstatus.datum, + tbl_vertrag_vertragsstatus.insertamum, + tbl_vertrag_vertragsstatus.updateamum FROM lehre.tbl_vertrag_vertragsstatus JOIN lehre.tbl_vertragsstatus USING(vertragsstatus_kurzbz) WHERE tbl_vertrag_vertragsstatus.vertrag_id = ? - ORDER BY datum DESC"; + ORDER BY tbl_vertrag_vertragsstatus.datum DESC"; return $this->execQuery($query, array($vertrag_id)); } diff --git a/application/models/ressource/Mitarbeiter_model.php b/application/models/ressource/Mitarbeiter_model.php index f7951083c..e1493e1e8 100644 --- a/application/models/ressource/Mitarbeiter_model.php +++ b/application/models/ressource/Mitarbeiter_model.php @@ -109,7 +109,7 @@ class Mitarbeiter_model extends DB_Model SELECT b.uid , p.person_id, p.vorname, p.nachname, - TO_CHAR(gebdatum::timestamp, 'DD.MM.YYYY') AS format_gebdatum, + gebdatum, COALESCE(b.alias, b.uid) AS email, STRING_AGG(DISTINCT va.bezeichnung, ', ') AS Vertragsarten, STRING_AGG(DISTINCT u.bezeichnung, ', ') AS Unternehmen, diff --git a/public/js/components/Vertraege/List/Status.js b/public/js/components/Vertraege/List/Status.js index 3c05daa66..60475d3e2 100644 --- a/public/js/components/Vertraege/List/Status.js +++ b/public/js/components/Vertraege/List/Status.js @@ -44,14 +44,61 @@ export default { ajaxResponse: (url, params, response) => response.data, columns: [ {title: "Status", field: "bezeichnung"}, - {title: "Datum", field: "format_datum"}, + { + title: "Datum", + field: "datum", + formatter: function (cell) { + const dateStr = cell.getValue(); + const date = new Date(dateStr); // Convert to Date object + return date.toLocaleString("de-DE", { + day: "2-digit", + month: "2-digit", + year: "numeric", + hour: "2-digit", + minute: "2-digit", + hour12: false + }); + } + }, {title: "vertrag_id", field: "vertrag_id", visible: false}, {title: "Vertragsstatus", field: "vertragsstatus_kurzbz", visible: false}, {title: "User", field: "mitarbeiter_uid", visible: false}, {title: "insertvon", field: "insertvon", visible: false}, - {title: "insertamum", field: "format_insertamum", visible: false}, + { + title: "insertamum", + field: "insertamum", + visible: false, + formatter: function (cell) { + const dateStr = cell.getValue(); + const date = new Date(dateStr); + return date.toLocaleString("de-DE", { + day: "2-digit", + month: "2-digit", + year: "numeric", + hour: "2-digit", + minute: "2-digit", + hour12: false + }); + } + }, {title: "updatevon", field: "updatevon", visible: false}, - {title: "updateamum", field: "format_updateamum", visible: false}, + { + title: "updateamum", + field: "updateamum", + visible: false, + formatter: function (cell) { + const dateStr = cell.getValue(); + const date = new Date(dateStr); + return date.toLocaleString("de-DE", { + day: "2-digit", + month: "2-digit", + year: "numeric", + hour: "2-digit", + minute: "2-digit", + hour12: false + }); + } + }, { title: 'Aktionen', field: 'actions', minWidth: 150, @@ -112,7 +159,7 @@ export default { cm.getColumnByField('bezeichnung').component.updateDefinition({ title: this.$p.t('global', 'status') }); - cm.getColumnByField('format_datum').component.updateDefinition({ + cm.getColumnByField('datum').component.updateDefinition({ title: this.$p.t('global', 'datum') }); cm.getColumnByField('mitarbeiter_uid').component.updateDefinition({ @@ -130,13 +177,13 @@ export default { cm.getColumnByField('updatevon').component.updateDefinition({ title: this.$p.t('global', 'updatevon') }); - cm.getColumnByField('format_updateamum').component.updateDefinition({ + cm.getColumnByField('updateamum').component.updateDefinition({ title: this.$p.t('global', 'updateamum') }); cm.getColumnByField('insertvon').component.updateDefinition({ title: this.$p.t('global', 'insertvon') }); - cm.getColumnByField('format_insertamum').component.updateDefinition({ + cm.getColumnByField('insertamum').component.updateDefinition({ title: this.$p.t('global', 'insertamum') }); } diff --git a/public/js/components/Vertraege/MitarbeiterHeader.js b/public/js/components/Vertraege/MitarbeiterHeader.js index 84d8e03b8..ff361eaea 100644 --- a/public/js/components/Vertraege/MitarbeiterHeader.js +++ b/public/js/components/Vertraege/MitarbeiterHeader.js @@ -62,7 +62,20 @@ export default { crossElement: '' } }, - {title: "Geburtsdatum", field: "format_gebdatum", headerFilter:"input"}, + { + title: "Geburtsdatum", + field: "gebdatum", + headerFilter:"input", + formatter: function (cell) { + const dateStr = cell.getValue(); + const date = new Date(dateStr); + return date.toLocaleString("de-DE", { + day: "2-digit", + month: "2-digit", + year: "numeric", + }); + } + }, {title: "Unternehmen", field: "unternehmen", headerFilter:"input"}, {title: "Vertragsarten", field: "vertragsarten", headerFilter:"input"}, {title: "Ids Dienstverträge", field: "ids", headerFilter:"input"}, @@ -98,7 +111,7 @@ export default { cm.getColumnByField('aktiv').component.updateDefinition({ title: this.$p.t('global', 'aktiv') }); - cm.getColumnByField('format_gebdatum').component.updateDefinition({ + cm.getColumnByField('gebdatum').component.updateDefinition({ title: this.$p.t('person', 'geburtsdatum') }); cm.getColumnByField('unternehmen').component.updateDefinition({ diff --git a/public/js/components/Vertraege/Vertraege.js b/public/js/components/Vertraege/Vertraege.js index 67a779638..eb40c2499 100644 --- a/public/js/components/Vertraege/Vertraege.js +++ b/public/js/components/Vertraege/Vertraege.js @@ -68,9 +68,21 @@ export default { }, {title: "Vertragstyp", field: "vertragstyp_bezeichnung", width: 125}, {title: "Status", field: "status"}, - {title: "Vertragsdatum", field: "format_vertragsdatum", width: 128}, + { + title: "Vertragsdatum", + field: "vertragsdatum", + width: 128, + formatter: function (cell) { + const dateStr = cell.getValue(); + const date = new Date(dateStr); + return date.toLocaleString("de-DE", { + day: "2-digit", + month: "2-digit", + year: "numeric", + }); + } + }, {title: "VertragId", field: "vertrag_id", visible: false}, - {title: "Vertragsdatum_iso", field: "vertragsdatum", visible: false}, {title: "Vertragsstunden", field: "vertragsstunden", visible: false}, {title: "VertragsstundenStudiensemester", field: "vertragsstunden_studiensemester_kurzbz", visible: false}, {title: "Anmerkung", field: "anmerkung", visible: false}, @@ -146,11 +158,8 @@ export default { cm.getColumnByField('vertragstyp_bezeichnung').component.updateDefinition({ title: this.$p.t('vertrag', 'vertragstyp') }); - cm.getColumnByField('format_vertragsdatum').component.updateDefinition({ - title: this.$p.t('vertrag', 'vertragsdatum') - }); cm.getColumnByField('vertragsdatum').component.updateDefinition({ - title: this.$p.t('vertrag', 'vertragsdatum_iso') + title: this.$p.t('vertrag', 'vertragsdatum') }); cm.getColumnByField('vertragsstunden').component.updateDefinition({ title: this.$p.t('vertrag', 'vertragsstunden') @@ -177,7 +186,7 @@ export default { //(maybe enable also for ADDON FH Burgenland: MultiAccept later) event: 'rowClick', handler: (e, row) => { - if (this.dataPrintHonorar.multiselect) { + if (this.dataPrintHonorar != null && this.dataPrintHonorar.multiselect != null) { const selectedContract = row.getData().vertrag_id; const status = row.getData().status; const bezeichnung = row.getData().bezeichnung; diff --git a/public/js/components/Vertraege/Vertragsverwaltung.js b/public/js/components/Vertraege/Vertragsverwaltung.js index 85f183584..cc96c1f79 100644 --- a/public/js/components/Vertraege/Vertragsverwaltung.js +++ b/public/js/components/Vertraege/Vertragsverwaltung.js @@ -44,13 +44,13 @@ export default {