From 487a2b6037f8562425b7fdeb5e762184d31c99a1 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 10 Apr 2024 10:42:16 +0200 Subject: [PATCH] Phrases valdidations, format dates, design adapations --- .../api/frontend/v1/stv/Betriebsmittel.php | 62 +++++--------- .../ressource/Betriebsmittelperson_model.php | 2 +- .../Betriebsmittel/Betriebsmittel.js | 84 ++++++++++++------- system/phrasesupdate.php | 59 ++++++++++++- 4 files changed, 134 insertions(+), 73 deletions(-) diff --git a/application/controllers/api/frontend/v1/stv/Betriebsmittel.php b/application/controllers/api/frontend/v1/stv/Betriebsmittel.php index d0cf29f7f..cb6c4a3aa 100644 --- a/application/controllers/api/frontend/v1/stv/Betriebsmittel.php +++ b/application/controllers/api/frontend/v1/stv/Betriebsmittel.php @@ -50,27 +50,18 @@ class Betriebsmittel extends FHCAPI_Controller public function addNewBetriebsmittel() { - //TODO(Manu) Berechtigungen -/* if(!$this->permissionlib->isBerechtigt('admin', 'suid', $stg) && !$this->permissionlib->isBerechtigt('assistenz', 'suid', $stg)) - { - $result = $this->p->t('lehre','error_keineSchreibrechte'); - - return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL); - }*/ - - $_POST = json_decode(utf8_encode($this->input->raw_input_stream), true); $this->form_validation->set_rules('kaution', 'Kaution', 'numeric', [ - 'numeric' => $this->p->t('ui','error_fieldNotNumeric',['field' => 'Kaution']) + 'numeric' => $this->p->t('ui', 'error_fieldNotNumeric', ['field' => 'Kaution']) ]); $this->form_validation->set_rules('betriebsmitteltyp', 'TYP', 'required', [ - 'required' => $this->p->t('ui','error_fieldRequired',['field' => 'Typ']) + 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Typ']) ]); $this->form_validation->set_rules('ausgegebenam', 'Ausgegeben am', 'required', [ - 'required' => $this->p->t('ui','error_fieldRequired',['field' => 'Ausgegeben am']) + 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Ausgegeben am']) ]); @@ -100,14 +91,19 @@ class Betriebsmittel extends FHCAPI_Controller if($betriebsmitteltyp == 'Zutrittskarte' && !$nummer) { - return $this->terminateWithError("Eine Zutrittskarte muss eine Nummer haben. Um die Zuordnung zu dieser Karte zu loeschen entfernen Sie bitte den ganzen Datensatz", self::ERROR_TYPE_GENERAL); + return $this->terminateWithError($this->p->t('wawi', 'error_zutrittskarteOhneNummer'), self::ERROR_TYPE_GENERAL); } if($retouram && $retouram < $ausgegebenam) - return $this->terminateWithError("Retourdatum darf nicht vor Datum der Ausgabe liegen", self::ERROR_TYPE_GENERAL); + { + return $this->terminateWithError($this->p->t('wawi', 'error_retourdatumVorAusgabe'), self::ERROR_TYPE_GENERAL); + } if($betriebsmitteltyp == "Inventar" && !($inventarData['inventarnummer'])) - return $this->terminateWithError("Bitte wählen Sie das entsprechende Inventar aus dem Drop Down Menü aus", self::ERROR_TYPE_GENERAL); + { + return $this->terminateWithError($this->p->t('wawi', 'error_inventarWaehlen'), self::ERROR_TYPE_GENERAL); + } + // Start DB transaction $this->db->trans_begin(); @@ -157,20 +153,10 @@ class Betriebsmittel extends FHCAPI_Controller $this->db->trans_commit(); return $this->terminateWithSuccess(true); - } public function updateBetriebsmittel() { - //TODO(Manu) Berechtigungen - /* if(!$this->permissionlib->isBerechtigt('admin', 'suid', $stg) && !$this->permissionlib->isBerechtigt('assistenz', 'suid', $stg)) - { - $result = $this->p->t('lehre','error_keineSchreibrechte'); - - return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL); - }*/ - - $_POST = json_decode(utf8_encode($this->input->raw_input_stream), true); $uid_user = getAuthUID(); @@ -189,15 +175,15 @@ class Betriebsmittel extends FHCAPI_Controller $uid = $this->input->post('uid'); $this->form_validation->set_rules('kaution', 'Kaution', 'numeric', [ - 'numeric' => $this->p->t('ui','error_fieldNotNumeric',['field' => 'Kaution']) + 'numeric' => $this->p->t('ui', 'error_fieldNotNumeric', ['field' => 'Kaution']) ]); $this->form_validation->set_rules('betriebsmitteltyp', 'TYP', 'required', [ - 'required' => $this->p->t('ui','error_fieldRequired',['field' => 'Typ']) + 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Typ']) ]); $this->form_validation->set_rules('ausgegebenam', 'Ausgegeben am', 'required', [ - 'required' => $this->p->t('ui','error_fieldRequired',['field' => 'Ausgegeben am']) + 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Ausgegeben am']) ]); @@ -208,11 +194,13 @@ class Betriebsmittel extends FHCAPI_Controller if($betriebsmitteltyp == 'Zutrittskarte' && !$nummer) { - return $this->terminateWithError("Eine Zutrittskarte muss eine Nummer haben. Um die Zuordnung zu dieser Karte zu loeschen entfernen Sie bitte den ganzen Datensatz", self::ERROR_TYPE_GENERAL); + return $this->terminateWithError($this->p->t('wawi', 'error_zutrittskarteOhneNummer'), self::ERROR_TYPE_GENERAL); } if($retouram && $retouram < $ausgegebenam) - return $this->terminateWithError("Retourdatum darf nicht vor Datum der Ausgabe liegen", self::ERROR_TYPE_GENERAL); + { + return $this->terminateWithError($this->p->t('wawi', 'error_retourdatumVorAusgabe'), self::ERROR_TYPE_GENERAL); + } // Start DB transaction @@ -236,11 +224,10 @@ class Betriebsmittel extends FHCAPI_Controller ); if($this->db->trans_status() === false || isError($result)) - { - $this->db->trans_rollback(); - return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL); - } - + { + $this->db->trans_rollback(); + return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL); + } $result = $this->BetriebsmittelModel->update( [ @@ -264,7 +251,6 @@ class Betriebsmittel extends FHCAPI_Controller $this->db->trans_commit(); return $this->terminateWithSuccess(true); - } public function loadBetriebsmittel() @@ -286,7 +272,6 @@ class Betriebsmittel extends FHCAPI_Controller } $this->terminateWithSuccess(current(getData($result))); - } public function deleteBetriebsmittel() @@ -307,10 +292,9 @@ class Betriebsmittel extends FHCAPI_Controller } if (!hasData($result)) { - return $this->terminateWithError($this->p->t('ui','error_missingId',['id'=> 'Betriebsmittelperson_id']), self::ERROR_TYPE_GENERAL); + return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id'=> 'Betriebsmittelperson_id']), self::ERROR_TYPE_GENERAL); } return $this->outputJsonSuccess(current(getData($result))); - } public function getTypenBetriebsmittel() diff --git a/application/models/ressource/Betriebsmittelperson_model.php b/application/models/ressource/Betriebsmittelperson_model.php index 17aab3bc7..bffa82501 100644 --- a/application/models/ressource/Betriebsmittelperson_model.php +++ b/application/models/ressource/Betriebsmittelperson_model.php @@ -115,7 +115,7 @@ class Betriebsmittelperson_model extends DB_Model $query = " SELECT - bm.nummer, bmp.person_id, bm.betriebsmitteltyp, bmp.anmerkung as anmerkung, bmp.retouram, bm.beschreibung, bmp.ausgegebenam, bmp.uid, bmp.kaution, bm.betriebsmittel_id, bmp.betriebsmittelperson_id, bm.inventarnummer --bm.* + bm.nummer, bmp.person_id, bm.betriebsmitteltyp, bmp.anmerkung as anmerkung, bmp.retouram, TO_CHAR(bmp.retouram::timestamp, 'DD.MM.YYYY') AS format_retour, bmp.ausgegebenam, TO_CHAR(bmp.ausgegebenam::timestamp, 'DD.MM.YYYY') AS format_ausgabe, bm.beschreibung, bmp.uid, bmp.kaution, bm.betriebsmittel_id, bmp.betriebsmittelperson_id, bm.inventarnummer FROM wawi.tbl_betriebsmittelperson bmp JOIN diff --git a/public/js/components/Betriebsmittel/Betriebsmittel.js b/public/js/components/Betriebsmittel/Betriebsmittel.js index fb34b0481..6011ff98c 100644 --- a/public/js/components/Betriebsmittel/Betriebsmittel.js +++ b/public/js/components/Betriebsmittel/Betriebsmittel.js @@ -32,19 +32,20 @@ export default { ajaxResponse: (url, params, response) => response.data, columns: [ {title: "Nummer", field: "nummer"}, - {title: "PersonId", field: "person_id"}, + {title: "PersonId", field: "person_id", visible: false}, {title: "Typ", field: "betriebsmitteltyp"}, {title: "Anmerkung", field: "anmerkung", visible: false}, - {title: "Retourdatum", field: "retouram"}, + {title: "Retourdatum", field: "format_retour", visible: false}, {title: "Beschreibung", field: "beschreibung"}, - {title: "Uid", field: "uid"}, + {title: "Uid", field: "uid", visible: false}, {title: "Kaution", field: "kaution", visible: false}, - {title: "Ausgabedatum", field: "ausgegebenam", visible: false}, + {title: "Ausgabedatum", field: "format_ausgabe"}, {title: "Betriebsmittel_id", field: "betriebsmittel_id", visible: false}, {title: "Betriebsmittelperson_id", field: "betriebsmittelperson_id", visible: false}, { title: 'Aktionen', field: 'actions', minWidth: 150, // Ensures Action-buttons will be always fully displayed + maxWidth: 150, formatter: (cell, formatterParams, onRendered) => { let container = document.createElement('div'); container.className = "d-flex gap-2"; @@ -61,7 +62,7 @@ export default { let linkToPdf = this.cisRoot + '/content/pdfExport.php?xml=betriebsmittelperson.rdf.php&xsl=Uebernahme&id=' + cellData.betriebsmittelperson_id + '&output=pdf'; - window.open(linkToPdf, '_blank'); + window.open(linkToPdf, '_blank'); }); container.append(button); @@ -93,14 +94,14 @@ export default { }], layout: 'fitColumns', layoutColumnsOnNewData: false, - height: '150', + height: '550', selectableRangeMode: 'click', selectable: true }, tabulatorEvents: [ { event: 'tableBuilt', - handler: async () => { + handler: async() => { await this.$p.loadCategory(['wawi', 'global', 'infocenter']); @@ -112,18 +113,17 @@ export default { cm.getColumnByField('anmerkung').component.updateDefinition({ title: this.$p.t('global', 'anmerkung') }); - cm.getColumnByField('retouram').component.updateDefinition({ + cm.getColumnByField('format_retour').component.updateDefinition({ title: this.$p.t('wawi', 'retourdatum') }); cm.getColumnByField('kaution').component.updateDefinition({ title: this.$p.t('infocenter', 'kaution') }); - cm.getColumnByField('ausgegebenam').component.updateDefinition({ + cm.getColumnByField('format_ausgabe').component.updateDefinition({ title: this.$p.t('wawi', 'ausgabedatum') }); } - } ], betriebsmittelData: {}, @@ -262,6 +262,7 @@ export default { template: `
+ @@ -273,21 +274,28 @@ export default { + + +
+
+ + + + +
+ - - -
- + Details @@ -298,7 +306,7 @@ export default {
-
+
- +
-
@@ -333,7 +346,7 @@ export default { type="text" name="nummer" v-model="formData['nummer']" - > + >
@@ -345,7 +358,7 @@ export default { type="text" name="nummer2" v-model="formData['nummer2']" - > + > @@ -358,7 +371,7 @@ export default { name="beschreibung" v-model="formData['beschreibung']" :disabled="formData.inventarnummer" - > + > @@ -370,7 +383,7 @@ export default { type="text" name="kaution" v-model="formData['kaution']" - > + > @@ -382,7 +395,7 @@ export default { type="textarea" name="anmerkung" v-model="formData['anmerkung']" - > + > @@ -434,6 +447,13 @@ export default { + + + + + + + ` } diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 423a25d52..3f7952ea1 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -26463,7 +26463,7 @@ array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'ausgabedatum', + 'text' => 'Ausgabedatum', 'description' => '', 'insertvon' => 'system' ), @@ -26475,6 +26475,63 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'wawi', + 'phrase' => 'error_zutrittskarteOhneNummer', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Eine Zutrittskarte muss eine Nummer haben. Um die Zuordnung zu dieser Karte zu löschen entfernen Sie bitte den ganzen Datensatz!', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'An access card must have a number. To delete the assignment to this card, please remove the entire data record!', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'wawi', + 'phrase' => 'error_inventarWaehlen', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bitte wählen Sie das entsprechende Inventar aus dem Drop Down Menü Inventarnummer aus!', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Please select the appropriate inventory from the inventory number drop down menu!', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'wawi', + 'phrase' => 'error_retourdatumVorAusgabe', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Retourdatum darf nicht vor Datum der Ausgabe liegen!', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The return date must not be before the issue date!', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), );