diff --git a/application/controllers/components/stv/Kontakt.php b/application/controllers/components/stv/Kontakt.php index 02c2ca70a..c63c8c25a 100644 --- a/application/controllers/components/stv/Kontakt.php +++ b/application/controllers/components/stv/Kontakt.php @@ -47,7 +47,7 @@ class Kontakt extends FHC_Controller $this->load->library('form_validation'); $_POST = json_decode(utf8_encode($this->input->raw_input_stream), true); - $this->form_validation->set_rules('plz', 'PLZ', 'required'); + $this->form_validation->set_rules('plz', 'PLZ', 'required|numeric'); if ($this->form_validation->run() == false) { @@ -56,6 +56,7 @@ class Kontakt extends FHC_Controller $this->load->model('person/Adresse_model', 'AdresseModel'); + $uid = getAuthUID(); $co_name = isset($_POST['co_name']) ? $_POST['co_name'] : null; $strasse = isset($_POST['strasse']) ? $_POST['strasse'] : null; $ort = isset($_POST['ort']) ? $_POST['ort'] : null; @@ -76,7 +77,7 @@ class Kontakt extends FHC_Controller [ 'person_id' => $person_id, 'strasse' => $strasse, - 'insertvon' => 'uid', + 'insertvon' => $uid, 'insertamum' => date('c'), 'plz' => $_POST['plz'], 'ort' => $ort, @@ -104,8 +105,9 @@ class Kontakt extends FHC_Controller public function updateAddress($address_id) { + $uid = getAuthUID(); $this->load->library('form_validation'); - $_POST = json_decode(utf8_encode($this->input->raw_input_stream), true); + $_POST = json_decode($this->input->raw_input_stream, true); $this->form_validation->set_rules('plz', 'PLZ', 'required'); @@ -143,7 +145,7 @@ class Kontakt extends FHC_Controller ], [ 'person_id' => $person_id, 'strasse' => $strasse, - 'updatevon' => 'uid', + 'updatevon' => $uid, 'updateamum' => date('c'), 'plz' => $_POST['plz'], 'ort' => $ort, @@ -216,6 +218,7 @@ class Kontakt extends FHC_Controller return $this->outputJsonSuccess(current(getData($result))); } +/* TODO Manu bereits in Address.ph*/ public function getNations() { $this->load->model('codex/Nation_model', 'NationModel'); @@ -289,12 +292,21 @@ class Kontakt extends FHC_Controller $this->load->model('person/Adresse_model', 'AdresseModel'); //$ort = isset($ortschaft) ? $ortschaft : null; - if(isset($gemeinde)) { + if(isset($gemeinde)) {var_dump($gemeinde); $gemeinde = urldecode($gemeinde); } else $gemeinde = null; + $this->load->library('form_validation'); + + $this->form_validation->set_rules($plz, 'PLZ', 'numeric|less_than[10000]'); + if ($this->form_validation->run() == false) { + return $this->outputJsonError($this->form_validation->error_array()); +/* $this->output->set_status_header(REST_Controller::HTTP_BAD_REQUEST); + return $this->outputJsonError($this->form_validation->error_array());*/ + } + $result = $this->AdresseModel->getOrtschaften($plz, $gemeinde); if (isError($result)) { $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR); @@ -366,18 +378,18 @@ class Kontakt extends FHC_Controller } } - public function loadContact($kontact_id) + public function loadContact($kontakt_id) { $this->load->model('person/Kontakt_model', 'KontaktModel'); - $this->AdresseModel->addSelect('public.tbl_kontakt.*'); + $this->KontaktModel->addSelect('public.tbl_kontakt.*'); $this->KontaktModel->addSelect('st.kurzbz'); $this->KontaktModel->addJoin('public.tbl_standort st', 'ON (public.tbl_kontakt.standort_id = st.standort_id)', 'LEFT'); $this->KontaktModel->addLimit(1); $result = $this->KontaktModel->loadWhere( - array('kontakt_id' => $kontact_id) + array('kontakt_id' => $kontakt_id) ); if (isError($result)) { $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR); @@ -405,6 +417,13 @@ class Kontakt extends FHC_Controller else $this->form_validation->set_rules('kontakt', 'Kontakt', 'required'); +/* if(($_POST['kontakttyp'] == 'email' && isset($_POST['kontakt']))) + { + $this->form_validation->set_data(['email' => $_POST['kontakt']]); + $this->form_validation->set_rules('email', 'email', 'valid_email|required]'); + }*/ + + if ($this->form_validation->run() == false) { return $this->outputJsonError($this->form_validation->error_array()); @@ -420,6 +439,7 @@ class Kontakt extends FHC_Controller else $standort_id = null; + $uid = getAuthUID(); $kontakttyp = isset($_POST['kontakttyp']) ? $_POST['kontakttyp'] : null; $anmerkung = isset($_POST['anmerkung']) ? $_POST['anmerkung'] : null; $kontakt = isset($_POST['kontakt']) ? $_POST['kontakt'] : null; @@ -432,7 +452,7 @@ class Kontakt extends FHC_Controller 'anmerkung' => $anmerkung, 'kontakt' => $kontakt, 'zustellung' => $_POST['zustellung'], - 'insertvon' => 'uid', + 'insertvon' => $uid, 'insertamum' => date('c'), 'standort_id' => $standort_id, 'ext_id' => $ext_id @@ -465,6 +485,7 @@ class Kontakt extends FHC_Controller else $standort_id = null; + $uid = getAuthUID(); $kontakttyp = isset($_POST['kontakttyp']) ? $_POST['kontakttyp'] : null; $anmerkung = isset($_POST['anmerkung']) ? $_POST['anmerkung'] : null; $kontakt = isset($_POST['kontakt']) ? $_POST['kontakt'] : null; @@ -480,7 +501,7 @@ class Kontakt extends FHC_Controller 'anmerkung' => $anmerkung, 'kontakt' => $kontakt, 'zustellung' => $_POST['zustellung'], - 'insertvon' => 'uid', + 'insertvon' => $uid, 'insertamum' => date('c'), 'standort_id' => $standort_id, 'ext_id' => $ext_id @@ -609,6 +630,7 @@ class Kontakt extends FHC_Controller public function updateBankverbindung($bankverbindung_id) { + $this->load->library('form_validation'); $_POST = json_decode(utf8_encode($this->input->raw_input_stream), true); @@ -627,6 +649,8 @@ class Kontakt extends FHC_Controller return $this->outputJsonError($this->form_validation->error_array()); } + $uid = getAuthUID(); + $result = $this->BankverbindungModel->update([ 'bankverbindung_id' => $bankverbindung_id ], @@ -638,7 +662,7 @@ class Kontakt extends FHC_Controller 'iban' => $_POST['iban'], 'blz' => $_POST['blz'], 'kontonr' => $_POST['kontonr'], - 'updatevon' => 'uid', + 'updatevon' => $uid, 'updateamum' => date('c'), 'typ' => $_POST['typ'], 'verrechnung' => $_POST['verrechnung'], diff --git a/application/controllers/components/stv/Notizen.php b/application/controllers/components/stv/Notizen.php new file mode 100644 index 000000000..e69de29bb diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js index 2c42ccc6b..f3425cc5f 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js @@ -1,7 +1,9 @@ import {CoreFilterCmpt} from "../../../../filter/Filter.js"; import {CoreRESTClient} from "../../../../../RESTClient"; import PvAutoComplete from "../../../../../../../index.ci.php/public/js/components/primevue/autocomplete/autocomplete.esm.min.js"; +import FhcFormValidation from '../../../../Form/Validation.js'; /*import PvToast from "../../../../../../index.ci.php/public/js/components/primevue/toast/toast.esm.min.js";*/ +import BsModal from "../../../../Bootstrap/Modal.js"; var editIcon = function(cell, formatterParams){ //plain text value @@ -15,14 +17,16 @@ var deleteIcon = function(cell, formatterParams){ //plain text value export default{ components: { CoreFilterCmpt, - PvAutoComplete + PvAutoComplete, + FhcFormValidation, + BsModal }, props: { uid: String }, - emits: [ +/* emits: [ 'update:selected' - ], + ],*/ data() { return{ tabulatorOptions: { @@ -104,12 +108,14 @@ export default{ }, methods:{ actionNewAdress(){ - bootstrap.Modal.getOrCreateInstance(this.$refs.newAdressModal).show(); + /*bootstrap.Modal.getOrCreateInstance(this.$refs.newAdressModal).show();*/ + this.$refs.newAdressModal.show(); }, actionEditAdress(adress_id){ this.loadAdress(adress_id).then(() => { if(this.addressData.adresse_id) - bootstrap.Modal.getOrCreateInstance(this.$refs.editAdressModal).show(); + this.$refs.editAdressModal.show(); +/* bootstrap.Modal.getOrCreateInstance(this.$refs.editAdressModal).show();*/ }); }, actionDeleteAdress(adress_id){ @@ -118,7 +124,8 @@ export default{ if(this.addressData.heimatadresse) this.$fhcAlert.alertError("Heimatadressen dürfen nicht gelöscht werden, da diese für die BIS-Meldung relevant sind. Um die Adresse dennoch zu löschen, entfernen sie das Häkchen bei Heimatadresse!"); else - bootstrap.Modal.getOrCreateInstance(this.$refs.deleteAdressModal).show(); + this.$refs.deleteAdressModal.show(); +/* bootstrap.Modal.getOrCreateInstance(this.$refs.deleteAdressModal).show();*/ }); }, addNewAddress(formData) { @@ -135,6 +142,7 @@ export default{ const [key, value] = entry; console.log(key, value); this.$fhcAlert.alertError(value); + /*this.$fhcAlert.handleFormValidation(error, this.$refs.newAdressModal);*/ }); } }).catch(error => { @@ -252,6 +260,24 @@ export default{ } ); }, + getPlaces(plz){ + CoreRESTClient + .get('components/stv/address/getPlaces/' + this.formData.address.plz, undefined, { + signal: this.abortController.places.signal + }) + .then(result => CoreRESTClient.getData(result.data) || []) + .then(result => { + this.places = result; + }) + .catch(error => { + if (error.code == 'ERR_BAD_REQUEST') { + return this.$fhcAlert.handleFormValidation(error, this.$refs.form); + } + // NOTE(chris): repeat request + if (error.code != "ERR_CANCELED") + window.setTimeout(this.loadPlaces, 100); + }); + }, search(event) { //console.log(event.query); return CoreRESTClient @@ -265,7 +291,7 @@ export default{ this.$refs.table.reloadTable(); }, hideModal(modalRef){ - bootstrap.Modal.getOrCreateInstance(this.$refs[modalRef]).hide(); + this.$refs[modalRef].hide(); }, resetModal(){ this.formData = {}; @@ -274,14 +300,21 @@ export default{ }, }, created(){ - CoreRESTClient - .get('components/stv/Kontakt/getNations') +/* CoreRESTClient + .get('components/stv/Address/getNations') .then(result => { - this.nations = result.data; + this.nations = result.data[]; }) .catch(err => { console.error(err.response.data || err.message); - }); + });*/ + CoreRESTClient + .get('components/stv/Address/getNations') + .then(result => CoreRESTClient.getData(result.data) || []) + .then(result => { + this.nations = result; + }) + .catch(this.$fhcAlert.handleSystemError); CoreRESTClient .get('components/stv/Kontakt/getAdressentypen') .then(result => { @@ -293,32 +326,23 @@ export default{ }, template: `