diff --git a/application/controllers/api/frontend/v1/betriebsmittel/BetriebsmittelP.php b/application/controllers/api/frontend/v1/betriebsmittel/BetriebsmittelP.php index 05d7c66c2..7486f44f0 100644 --- a/application/controllers/api/frontend/v1/betriebsmittel/BetriebsmittelP.php +++ b/application/controllers/api/frontend/v1/betriebsmittel/BetriebsmittelP.php @@ -60,7 +60,11 @@ class BetriebsmittelP extends FHCAPI_Controller public function getAllBetriebsmittel($type_id, $id) { - $result = $this->BetriebsmittelpersonModel->getBetriebsmittelData($id, $type_id); + $betriebsmitteltypes = null; + if ($this->input->get('betriebsmitteltypes') !== null && !isEmptyArray($this->input->get('betriebsmitteltypes'))) + $betriebsmitteltypes = $this->input->get('betriebsmitteltypes'); + + $result = $this->BetriebsmittelpersonModel->getBetriebsmittelData($id, $type_id, $betriebsmitteltypes); if (isError($result)) { $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); @@ -370,6 +374,12 @@ class BetriebsmittelP extends FHCAPI_Controller $this->load->model('ressource/Betriebsmitteltyp_model', 'BetriebsmitteltypModel'); $this->BetriebsmitteltypModel->addOrder('beschreibung', 'ASC'); + + if ($this->input->get('betriebsmitteltypes') !== null && !isEmptyArray($this->input->get('betriebsmitteltypes'))) + { + $this->BetriebsmitteltypModel->db->where_in('betriebsmitteltyp', $this->input->get('betriebsmitteltypes')); + } + $result = $this->BetriebsmitteltypModel->load(); // load All if (isError($result)) { diff --git a/application/models/ressource/Betriebsmittelperson_model.php b/application/models/ressource/Betriebsmittelperson_model.php index 6da9a384d..219af51b8 100644 --- a/application/models/ressource/Betriebsmittelperson_model.php +++ b/application/models/ressource/Betriebsmittelperson_model.php @@ -97,7 +97,7 @@ class Betriebsmittelperson_model extends DB_Model return $this->loadWhere($condition); } - public function getBetriebsmittelData($id, $type_id) + public function getBetriebsmittelData($id, $type_id, $betriesmitteltypes = null) { switch ($type_id) { case 'person_id': @@ -113,6 +113,15 @@ class Betriebsmittelperson_model extends DB_Model return error("ID nicht gültig"); } + $cond .= " = ? "; + $params[] = $id; + + if ($betriesmitteltypes && !isEmptyArray($betriesmitteltypes)) + { + $cond .= " AND bm.betriebsmitteltyp IN ?"; + $params[] = $betriesmitteltypes; + } + $query = " SELECT bm.nummer, bmp.person_id, bm.betriebsmitteltyp, bmp.anmerkung as anmerkung, @@ -126,9 +135,9 @@ class Betriebsmittelperson_model extends DB_Model JOIN wawi.tbl_betriebsmittel bm ON (bmp.betriebsmittel_id = bm.betriebsmittel_id) WHERE - " . $cond . " = ? "; + " . $cond; - return $this->execQuery($query, array($id)); + return $this->execQuery($query, $params); } /** diff --git a/public/js/api/factory/betriebsmittel/person.js b/public/js/api/factory/betriebsmittel/person.js index 912a5df31..504e755b6 100644 --- a/public/js/api/factory/betriebsmittel/person.js +++ b/public/js/api/factory/betriebsmittel/person.js @@ -16,10 +16,13 @@ */ export default { - getAllBetriebsmittel(type, id) { + getAllBetriebsmittel(type, id, betriebsmitteltypes) { return { method: 'get', - url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getAllBetriebsmittel/' + type + '/' + id + url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getAllBetriebsmittel/' + type + '/' + id, + params: { + betriebsmitteltypes + } }; }, addNewBetriebsmittel(person_id, params) { @@ -48,10 +51,13 @@ export default { url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/deleteBetriebsmittel/' + betriebsmittelperson_id }; }, - getTypenBetriebsmittel() { + getTypenBetriebsmittel(betriebsmitteltypes) { return { method: 'get', - url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getTypenBetriebsmittel/' + url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getTypenBetriebsmittel/', + params: { + betriebsmitteltypes + } }; }, loadInventarliste(query) { diff --git a/public/js/components/Betriebsmittel/Betriebsmittel.js b/public/js/components/Betriebsmittel/Betriebsmittel.js index 6d976a1fa..148d7a83c 100644 --- a/public/js/components/Betriebsmittel/Betriebsmittel.js +++ b/public/js/components/Betriebsmittel/Betriebsmittel.js @@ -29,14 +29,24 @@ export default { uid: { type: [Number, String], required: true - } + }, + /** List of types to allow for creation */ + betriebsmittelTypes: { + type: Array, + default: null + }, + /** + * If true: only show the types specified in 'betriebsmittelTypes'. + * If false: show all available types. + */ + filterByProvidedTypes: Boolean }, data() { return { tabulatorOptions: { ajaxURL: 'dummy', ajaxRequestFunc: () => this.$api.call( - this.endpoint.getAllBetriebsmittel(this.typeId, this.id) + this.endpoint.getAllBetriebsmittel(this.typeId, this.id, (this.filterByProvidedTypes ? this.betriebsmittelTypes : null)) ), ajaxResponse: (url, params, response) => response.data, columns: [ @@ -294,7 +304,7 @@ export default { }, created() { return this.$api - .call(this.endpoint.getTypenBetriebsmittel()) + .call(this.endpoint.getTypenBetriebsmittel(this.betriebsmittelTypes)) .then(result => { this.listBetriebsmitteltyp = result.data; }) diff --git a/system/filtersupdate.php b/system/filtersupdate.php index 51dd86314..9e3c62a33 100644 --- a/system/filtersupdate.php +++ b/system/filtersupdate.php @@ -1456,6 +1456,109 @@ $filters = array( ', 'oe_kurzbz' => null, ), + array( + 'app' => 'personalverwaltung', + 'dataset_name' => 'schluesselverwaltung', + 'filter_kurzbz' => 'ma4schluesselverwaltung', + 'description' => '{MA Schluesselverwaltung}', + 'sort' => 1, + 'default_filter' => true, + 'filter' => ' + { + "name": "MA Schlüsselverwaltung", + "columns": [ + {"name": "UID"}, + {"name": "PersonId"}, + {"name": "Vorname"}, + {"name": "Nachname"}, + {"name": "EMail"}, + {"name": "Unternehmen"}, + {"name": "Vertragsart"}, + {"name": "DV_von"}, + {"name": "DV_bis"}, + {"name": "Wochenstunden"}, + {"name": "WS_von"}, + {"name": "WS_bis"}, + {"name": "Standardkostenstelle"}, + {"name": "DV_status"} + ], + "filters": [ + { + "name": "DV_status", + "option": "", + "operation": "nequal", + "condition": "beendet" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'personalverwaltung', + 'dataset_name' => 'schluesselverwaltung', + 'filter_kurzbz' => 'ma4schluesselverwaltung_beendet', + 'description' => '{MA Schluesselverwaltung (DV beendet)}', + 'sort' => 2, + 'default_filter' => false, + 'filter' => ' + { + "name": "MA Schlüsselverwaltung (DV beendet)", + "columns": [ + {"name": "UID"}, + {"name": "PersonId"}, + {"name": "Vorname"}, + {"name": "Nachname"}, + {"name": "EMail"}, + {"name": "Unternehmen"}, + {"name": "Vertragsart"}, + {"name": "DV_von"}, + {"name": "DV_bis"}, + {"name": "Wochenstunden"}, + {"name": "WS_von"}, + {"name": "WS_bis"}, + {"name": "Standardkostenstelle"}, + {"name": "DV_status"} + ], + "filters": [ + { + "name": "DV_status", + "option": "", + "operation": "equal", + "condition": "beendet" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'personalverwaltung', + 'dataset_name' => 'kontaktdatenverwaltung', + 'filter_kurzbz' => 'ma4kontaktdaten', + 'description' => '{MA Kontaktdatenverwaltung}', + 'sort' => 1, + 'default_filter' => true, + 'filter' => ' + { + "name": "MA Kontaktdatenverwaltung", + "columns": [ + {"name": "UID"}, + {"name": "PersonId"}, + {"name": "Vorname"}, + {"name": "Nachname"}, + {"name": "Unternehmen"}, + {"name": "Vertragsart"}, + {"name": "DV_von"}, + {"name": "DV_bis"}, + {"name": "Disziplinaere_Zuordnung"}, + {"name": "DV_status"} + ], + "filters": [] + }', + 'oe_kurzbz' => null, + ), + ); // Loop through the filters array