From 92fdf3da4c0bd63127213ad3e3c7abc5aedecca7 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 22 Nov 2023 09:02:54 +0100 Subject: [PATCH] =?UTF-8?q?Autocomplete,=20=C3=BCberarbeitung=20Modal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/components/stv/Kontakt.php | 175 ++++-- .../models/organisation/Standort_model.php | 14 + application/models/person/Adresse_model.php | 2 + application/models/ressource/Firma_model.php | 13 + .../Studentenverwaltung/Details/Kontakt.js | 23 +- .../Details/Kontakt/Address.js | 569 +++++++++++++++--- .../Details/Kontakt/Bankaccount.js | 342 ++++++++++- .../Details/Kontakt/Contact.js | 348 ++++++++++- 8 files changed, 1270 insertions(+), 216 deletions(-) diff --git a/application/controllers/components/stv/Kontakt.php b/application/controllers/components/stv/Kontakt.php index 4108a8bf4..9a7919c9e 100644 --- a/application/controllers/components/stv/Kontakt.php +++ b/application/controllers/components/stv/Kontakt.php @@ -24,13 +24,14 @@ class Kontakt extends FHC_Controller public function getAdressen($person_id) { $this->load->model('person/Adresse_model', 'AdresseModel'); - //TODO(manu) check select: für Anzeige alle Tabellen nötig - $this->AdresseModel->addSelect('*'); + //TODO(manu) check name: in Adresse und firma + $this->AdresseModel->addSelect('public.tbl_adresse.*'); + $this->AdresseModel->addSelect('t.*'); + $this->AdresseModel->addSelect('f.firma_id'); + $this->AdresseModel->addSelect('f.name as firmenname'); $this->AdresseModel->addJoin('public.tbl_adressentyp t', 'ON (t.adressentyp_kurzbz = public.tbl_adresse.typ)'); $this->AdresseModel->addJoin('public.tbl_firma f', 'ON (f.firma_id = public.tbl_adresse.firma_id)', 'LEFT'); - // $this->AdresseModel->addJoin('public.tbl_firmentyp ft', 'ON (f.firma_id = ft.firmentyp.firma_id)', 'LEFT'); - $result = $this->AdresseModel->loadWhere( array('person_id' => $person_id) ); @@ -44,41 +45,52 @@ class Kontakt extends FHC_Controller public function addNewAddress($person_id) { + $this->load->library('form_validation'); $_POST = json_decode(utf8_encode($this->input->raw_input_stream), true); + $this->form_validation->set_rules('plz', 'PLZ', 'required'); + + if ($this->form_validation->run() == false) + { + return $this->outputJsonError($this->form_validation->error_array()); + } + $this->load->model('person/Adresse_model', 'AdresseModel'); - // Load Libraries - $this->load->library('AuthLib'); - $this->load->library('VariableLib', ['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; + $gemeinde = isset($_POST['gemeinde']) ? $_POST['gemeinde'] : null; + $nation = isset($_POST['nation']) ? $_POST['nation'] : null; + $name = isset($_POST['name']) ? $_POST['name'] : null; + $typ = isset($_POST['typ']) ? $_POST['typ'] : null; + $anmerkung = isset($_POST['anmerkung']) ? $_POST['anmerkung'] : null; - $firma_id = ''; - if (isset($_POST['firma_id'])) - $firma_id = $_POST('firma_id'); - - $co_name = ''; - if (isset($_POST['co_name'])) - $co_name = $_POST('co_name'); + if(isset($_POST['firma'])) + { + $firma_id = $_POST['firma']['firma_id']; + } + else + $firma_id = null; $result = $this->AdresseModel->insert( [ 'person_id' => $person_id, - 'strasse' => $_POST['strasse'], + 'strasse' => $strasse, 'insertvon' => 'uid', 'insertamum' => date('c'), 'plz' => $_POST['plz'], - 'ort' => $_POST['ort'], - 'gemeinde' => $_POST['gemeinde'], - 'nation' => $_POST['nation'], + 'ort' => $ort, + 'gemeinde' => $gemeinde, + 'nation' => $nation, 'heimatadresse' => $_POST['heimatadresse'], 'zustelladresse' => $_POST['zustelladresse'], 'co_name' => $co_name, - 'typ' => $_POST['typ'], + 'typ' => $typ, 'firma_id' => $firma_id, - 'name' => $_POST['name'], + 'name' => $name, 'rechnungsadresse' => $_POST['rechnungsadresse'], - 'anmerkung' => $_POST['anmerkung'] - + 'anmerkung' => $anmerkung ] ); @@ -92,20 +104,31 @@ class Kontakt extends FHC_Controller } public function updateAddress($address_id) - //Todo(manu) update Firma { + $this->load->library('form_validation'); $_POST = json_decode(utf8_encode($this->input->raw_input_stream), true); + $this->form_validation->set_rules('plz', 'PLZ', 'required'); + + if ($this->form_validation->run() == false) + { + return $this->outputJsonError($this->form_validation->error_array()); + } + $this->load->model('person/Adresse_model', 'AdresseModel'); - // Load Libraries - $this->load->library('AuthLib'); - $this->load->library('VariableLib', ['uid' => getAuthUID()]); if(!$address_id) { return $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR); } + if(isset($_POST['firma'])) + { + $firma_id = $_POST['firma']['firma_id']; + } + else + $firma_id = $_POST['firma_id']; + $result = $this->AdresseModel->update([ 'adresse_id' => $address_id ], @@ -120,7 +143,11 @@ class Kontakt extends FHC_Controller 'heimatadresse' => $_POST['heimatadresse'], 'zustelladresse' => $_POST['zustelladresse'], 'co_name' => $_POST['co_name'], - 'typ' => $_POST['typ'] + 'typ' => $_POST['typ'], + 'firma_id' => $firma_id, + 'name' => $_POST['name'], + 'rechnungsadresse' => $_POST['rechnungsadresse'], + 'anmerkung' => $_POST['anmerkung'] ]); if (isError($result)) @@ -135,7 +162,10 @@ class Kontakt extends FHC_Controller { $this->load->model('person/Adresse_model', 'AdresseModel'); - $this->AdresseModel->addSelect('*'); + $this->AdresseModel->addSelect('public.tbl_adresse.*'); + $this->AdresseModel->addSelect('t.*'); + $this->AdresseModel->addSelect('f.firma_id'); + $this->AdresseModel->addSelect('f.name as firmenname'); $this->AdresseModel->addJoin('public.tbl_adressentyp t', 'ON (t.adressentyp_kurzbz = public.tbl_adresse.typ)'); $this->AdresseModel->addJoin('public.tbl_firma f', 'ON (f.firma_id = public.tbl_adresse.firma_id)', 'LEFT'); @@ -151,7 +181,6 @@ class Kontakt extends FHC_Controller elseif (!hasData($result)) { $this->outputJson($result); //success mit Wert null - // $this->outputJson(getData($result) ?: []); } else { @@ -191,7 +220,6 @@ class Kontakt extends FHC_Controller } } - //TODO(Manu) Liste zu lang - besser nachladen public function getFirmen($searchString) { $this->load->model('ressource/firma_model', 'FirmaModel'); @@ -199,27 +227,22 @@ class Kontakt extends FHC_Controller $result = $this->FirmaModel->searchFirmen($searchString); if (isError($result)) { $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR); - $this->outputJson(getError($result)); - } else { - $this->outputJson(getData($result) ?: []); } + $this->outputJson($result); } - //TODO(Manu) Autocomplete? public function getStandorte($searchString) { - $this->load->model('organisation/Standort_model', 'StandortModel'); + $this->load->model('organisation/standort_model', 'StandortModel'); - $result = $this->StandortModel->load(); + $result = $this->StandortModel->searchStandorte($searchString); if (isError($result)) { $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR); - $this->outputJson(getError($result)); - } else { - $this->outputJson(getData($result) ?: []); } + $this->outputJson($result); } - public function getFirmenliste($searchString) + public function getFirmenliste($searchString) //TODO (manu) DEPRECATED { $this->load->model('ressource/firma_model', 'FirmaModel'); @@ -290,11 +313,9 @@ class Kontakt extends FHC_Controller { $this->load->model('person/Kontakt_model', 'KontaktModel'); $this->load->model('organisation/standort_model', 'StandortModel'); - $this->load->model('ressource/firma_model', 'FirmaModel'); $this->KontaktModel->addSelect('*'); $this->StandortModel->addJoin('public.tbl_standort st', 'ON (public.tbl_kontakt.standort_id = st.standort_id)', 'LEFT'); - $this->StandortModel->addJoin('public.tbl_firma f', 'ON (f.firma_id = st.firma_id)', 'LEFT'); $result = $this->KontaktModel->loadWhere( array('person_id' => $person_id) @@ -325,9 +346,9 @@ class Kontakt extends FHC_Controller { $this->load->model('person/Kontakt_model', 'KontaktModel'); - $this->KontaktModel->addSelect('*'); + $this->AdresseModel->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->addJoin('public.tbl_firma f', 'ON (f.firma_id = st.firma_id)', 'LEFT'); $this->KontaktModel->addLimit(1); @@ -351,25 +372,46 @@ class Kontakt extends FHC_Controller public function addNewContact($person_id) { + $this->load->library('form_validation'); + $_POST = json_decode(utf8_encode($this->input->raw_input_stream), true); + if(($_POST['kontakttyp'] == 'email' && isset($_POST['kontakt']))) + $this->form_validation->set_rules('kontakt', 'Kontakt', 'valid_email'); + else + $this->form_validation->set_rules('kontakt', 'Kontakt', 'required'); + + if ($this->form_validation->run() == false) + { + return $this->outputJsonError($this->form_validation->error_array()); + } + + $this->load->model('person/Kontakt_model', 'KontaktModel'); - $firma_id = ''; - if (isset($_POST['firma_id'])) - $firma_id = $_POST('firma_id'); + if(isset($_POST['standort'])) + { + $standort_id = $_POST['standort']['standort_id']; + } + else + $standort_id = null; + + $kontakttyp = isset($_POST['kontakttyp']) ? $_POST['kontakttyp'] : null; + $anmerkung = isset($_POST['anmerkung']) ? $_POST['anmerkung'] : null; + $kontakt = isset($_POST['kontakt']) ? $_POST['kontakt'] : null; + $ext_id = isset($_POST['ext_id']) ? $_POST['ext_id'] : null; $result = $this->KontaktModel->insert( [ 'person_id' => $person_id, - 'kontakttyp' => $_POST['kontakttyp'], - 'anmerkung' => $_POST['anmerkung'], - 'kontakt' => $_POST['kontakt'], + 'kontakttyp' => $kontakttyp, + 'anmerkung' => $anmerkung, + 'kontakt' => $kontakt, 'zustellung' => $_POST['zustellung'], 'insertvon' => 'uid', 'insertamum' => date('c'), - 'standort_id' => $_POST['standort_id'], - 'ext_id' => $_POST['ext_id'] + 'standort_id' => $standort_id, + 'ext_id' => $ext_id ] ); @@ -392,19 +434,32 @@ class Kontakt extends FHC_Controller return $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR); } + if(isset($_POST['standort'])) + { + $standort_id = $_POST['standort']['standort_id']; + } + else + $standort_id = $_POST['standort_id']; + + $kontakttyp = isset($_POST['kontakttyp']) ? $_POST['kontakttyp'] : null; + $anmerkung = isset($_POST['anmerkung']) ? $_POST['anmerkung'] : null; + $kontakt = isset($_POST['kontakt']) ? $_POST['kontakt'] : null; + $ext_id = isset($_POST['ext_id']) ? $_POST['ext_id'] : null; + $person_id = isset($_POST['person_id']) ? $_POST['person_id'] : null; + $result = $this->KontaktModel->update([ 'kontakt_id' => $kontakt_id ], [ - 'person_id' => $_POST['person_id'], - 'kontakttyp' => $_POST['kontakttyp'], - 'anmerkung' => $_POST['anmerkung'], - 'kontakt' => $_POST['kontakt'], + 'person_id' => $person_id, + 'kontakttyp' => $kontakttyp, + 'anmerkung' => $anmerkung, + 'kontakt' => $kontakt, 'zustellung' => $_POST['zustellung'], - 'updatevon' => 'uid', - 'updateamum' => date('c'), - 'standort_id' => $_POST['standort_id'], - 'ext_id' => $_POST['ext_id'] + 'insertvon' => 'uid', + 'insertamum' => date('c'), + 'standort_id' => $standort_id, + 'ext_id' => $ext_id ]); if (isError($result)) diff --git a/application/models/organisation/Standort_model.php b/application/models/organisation/Standort_model.php index 382236e2f..7d31ecdcd 100644 --- a/application/models/organisation/Standort_model.php +++ b/application/models/organisation/Standort_model.php @@ -11,4 +11,18 @@ class Standort_model extends DB_Model $this->dbTable = 'public.tbl_standort'; $this->pk = 'standort_id'; } + + public function searchStandorte($filter) + { + $qry = " + SELECT + s.kurzbz, s.standort_id + FROM + public.tbl_standort s + WHERE + lower (s.kurzbz) LIKE '%". $this->db->escape_like_str($filter)."%'"; + + return $this->execQuery($qry); + } } + diff --git a/application/models/person/Adresse_model.php b/application/models/person/Adresse_model.php index a0140af58..cc6d68673 100644 --- a/application/models/person/Adresse_model.php +++ b/application/models/person/Adresse_model.php @@ -70,3 +70,5 @@ class Adresse_model extends DB_Model } } + + diff --git a/application/models/ressource/Firma_model.php b/application/models/ressource/Firma_model.php index 1b8dfb51d..1d1b923e3 100644 --- a/application/models/ressource/Firma_model.php +++ b/application/models/ressource/Firma_model.php @@ -11,4 +11,17 @@ class Firma_model extends DB_Model $this->dbTable = 'public.tbl_firma'; $this->pk = 'firma_id'; } + + public function searchFirmen($filter) + { + $qry = " + SELECT + f.name, f.firma_id + FROM + public.tbl_firma f + WHERE + lower (f.name) LIKE '%". $this->db->escape_like_str($filter)."%'"; + + return $this->execQuery($qry); + } } diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt.js b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt.js index 6212f8e32..f8d30a5a6 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt.js @@ -2,13 +2,16 @@ import {CoreRESTClient} from '../../../../RESTClient.js'; import AddressList from "./Kontakt/Address.js"; import ContactList from "./Kontakt/Contact.js"; import BankaccountList from "./Kontakt/Bankaccount.js"; + import PvToast from "../../../../../../index.ci.php/public/js/components/primevue/toast/toast.esm.min.js"; +import PvAutoComplete from "../../../../../../index.ci.php/public/js/components/primevue/autocomplete/autocomplete.esm.min.js"; export default { components: { AddressList, ContactList, BankaccountList, - PvToast + PvToast, + PvAutoComplete }, props: { student: Object @@ -22,7 +25,7 @@ export default { }, created(){ CoreRESTClient - .get('components/stv/Student/getAdressen/' + this.student.person_id) + .get('components/stv/Kontakt/getAdressen/' + this.student.person_id) .then(result => { this.adressen = result.data; }) @@ -30,7 +33,7 @@ export default { console.error(err.response.data || err.message); }); /* CoreRESTClient - .get('components/stv/Student/getKontakte/' + this.student.person_id) + .get('components/stv/Kontakt/getKontakte/' + this.student.person_id) .then(result => { this.kontakte = result.data; }) @@ -38,7 +41,7 @@ export default { console.error(err.response.data || err.message); }); CoreRESTClient - .get('components/stv/Student/getBankverbindung/' + this.student.person_id) + .get('components/stv/Kontakt/getBankverbindung/' + this.student.person_id) .then(result => { this.bankverbindungen = result.data; }) @@ -49,15 +52,25 @@ export default { template: `
+ + + Adressen - + + + + +
+
Kontakt
+
Bankverbindungen diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js index 3222326af..365d0a028 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js @@ -1,5 +1,7 @@ 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 PvToast from "../../../../../../index.ci.php/public/js/components/primevue/toast/toast.esm.min.js";*/ var editIcon = function(cell, formatterParams){ //plain text value @@ -12,7 +14,8 @@ var deleteIcon = function(cell, formatterParams){ //plain text value export default{ components: { - CoreFilterCmpt + CoreFilterCmpt, + PvAutoComplete }, props: { uid: String @@ -23,10 +26,10 @@ export default{ data() { return{ tabulatorOptions: { - ajaxURL: CoreRESTClient._generateRouterURI('components/stv/Student/getAdressen/' + this.uid), + ajaxURL: CoreRESTClient._generateRouterURI('components/stv/Kontakt/getAdressen/' + this.uid), //autoColumns: true, columns:[ - {title:"Typ", field:"bezeichnung"}, //TODO(manu) mix ok? + {title:"Typ", field:"bezeichnung"}, {title:"Strasse", field:"strasse"}, {title:"Plz", field:"plz"}, {title:"Ort", field:"ort"}, @@ -38,7 +41,8 @@ export default{ return output;} }, {title:"Abweich.Empf", field:"co_name"}, - {title:"Firma", field:"name"}, //TODO(manu) check in DB + {title:"Name", field:"name"}, + {title:"Firma", field:"firmenname"}, //TODO(manu) check in DB {title:"Firma_id", field:"firma_id", visible:false}, {title:"Adresse_id", field:"adresse_id", visible:false}, {title:"Person_id", field:"person_id", visible:false}, @@ -50,8 +54,18 @@ export default{ return output;} }, {title:"Anmerkung", field:"anmerkung", visible:false}, - {formatter:editIcon, width:40, align:"center", cellClick:function(e, cell){alert("Edit data for adresse_id: " + cell.getRow().getIndex())}}, - {formatter:deleteIcon, width:40, align:"center", cellClick:function(e, cell){alert("Delete data for adresse_id " + cell.getRow().getIndex())}}, + {title: "Actions", + columns:[ + {formatter:editIcon, width:40, align:"center", cellClick: (e, cell) => { + this.actionEditAdress(cell.getData().adresse_id); + console.log(cell.getRow().getIndex(), cell.getData(), this); + }, width:50, headerSort:false}, + {formatter:deleteIcon, width:40, align:"center", cellClick: (e, cell) => { + this.actionDeleteAdress(cell.getData().adresse_id); + console.log(cell.getRow().getIndex(), cell.getData(), this); + }, width:50, headerSort:false }, + ], + }, ], layout: 'fitDataFill', layoutColumnsOnNewData: false, @@ -62,44 +76,58 @@ export default{ tabulatorEvents: [ ], - lastSelected: null, - modalRefVis: false, - addressData: [], + addressData: {}, formData: { - zustelladresse: false, - heimatadresse: false + zustelladresse: true, + heimatadresse: true, + rechnungsadresse: false, + typ: 'h', + nation: 'A' }, nations: [], - adressentypen: [] + adressentypen: [], + firmen: [], + ortschaften: [], + gemeinden: [], + filteredFirmen: [] } + }, + computed:{ + }, methods:{ actionNewAdress(){ - - console.log("Neue Adresse anlegen"); bootstrap.Modal.getOrCreateInstance(this.$refs.newAdressModal).show(); }, - deleteAdressData(){ - return this.formData = null; + actionEditAdress(adress_id){ + this.loadAdress(adress_id).then(() => { + if(this.addressData.adresse_id) + bootstrap.Modal.getOrCreateInstance(this.$refs.editAdressModal).show(); + }); }, - hideModal(){ - bootstrap.Modal.getOrCreateInstance(this.$refs.newAdressModal).hide(); + actionDeleteAdress(adress_id){ + this.loadAdress(adress_id).then(() => { + if(this.addressData.adresse_id) + 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(); + }); }, addNewAddress(formData) { - CoreRESTClient.post('components/stv/Student/addNewAddress/' + this.uid, - this.formData - ).then(response => { - console.log(response); + CoreRESTClient.post('components/stv/Kontakt/addNewAddress/' + this.uid, + this.formData + ).then(response => { if (!response.data.error) { - this.statusCode = 0; - this.statusMsg = 'success'; - console.log('Speichern erfolgreich: ' + this.statusMsg); this.$fhcAlert.alertSuccess('Speichern erfolgreich'); + this.hideModal('newAdressModal'); } else { - this.statusCode = 0; - this.statusMsg = 'Error'; - console.log('Speichern nicht erfolgreich: ' + this.statusMsg); - this.$fhcAlert.alertError('Speichern nicht erfolgreich'); + const errorData = response.data.retval; + Object.entries(errorData).forEach(entry => { + const [key, value] = entry; + console.log(key, value); + this.$fhcAlert.alertError(value); + }); } }).catch(error => { console.log(error); @@ -109,26 +137,127 @@ export default{ this.$fhcAlert.alertError('Fehler bei Speicherroutine aufgetreten'); }).finally(() => { window.scrollTo(0, 0); - hideModal(); + this.reload(); + }); + + //this.formData = []; + }, + reload(){ + this.$refs.table.reloadTable(); + }, + loadAdress(adress_id){ + return CoreRESTClient.get('components/stv/Kontakt/loadAddress/' + adress_id + ).then( + result => { + console.log(this.addressData, result); + if(result.data.retval) + this.addressData = result.data.retval; + else + { + this.addressData = {}; + this.$fhcAlert.alertError('Keine Adresse mit Id ' + adress_id + ' gefunden'); + } + return result; + } + ); + }, + updateAddress(adress_id){ + CoreRESTClient.post('components/stv/Kontakt/updateAddress/' + adress_id, + this.addressData + ).then(response => { + if (!response.data.error) { + this.$fhcAlert.alertSuccess('Speichern erfolgreich'); + this.hideModal('editAdressModal'); + } else { + const errorData = response.data.retval; + Object.entries(errorData).forEach(entry => { + const [key, value] = entry; + console.log(key, value); + this.$fhcAlert.alertError(value); + }); + } + }).catch(error => { + this.statusMsg = 'Error in Catch'; + console.log('Speichern nicht erfolgreich ' + this.statusMsg); + this.$fhcAlert.alertError('Fehler bei Speicherroutine aufgetreten'); + }).finally(() => { + window.scrollTo(0, 0); + //hideModal(); + this.reload(); }); }, - - - /* showModalRef(){ - - modalRef = true; - }*/ - /* updateUrl(url, first) { - this.lastSelected = first ? undefined : this.selected; - if (url) - url = CoreRESTClient._generateRouterURI(url); - if (!this.$refs.table.tableBuilt) - this.$refs.table.tabulator.on("tableBuilt", () => { - this.$refs.table.tabulator.setData(url); - }); + deleteAddress(adress_id){ + CoreRESTClient.post('components/stv/Kontakt/deleteAddress/' + adress_id) + .then(response => { + console.log(response); + if (!response.data.error) { + this.statusCode = 0; + this.statusMsg = 'success'; + console.log('Löschen erfolgreich: ' + this.statusMsg); + this.$fhcAlert.alertSuccess('Löschen erfolgreich'); + } else { + this.statusCode = 0; + this.statusMsg = 'Error'; + console.log('Löschen nicht erfolgreich: ' + this.statusMsg); + this.$fhcAlert.alertError('Keine Adresse mit Id ' + adress_id + ' gefunden'); + } + }).catch(error => { + console.log(error); + this.statusCode = 0; + this.statusMsg = 'Error in Catch'; + console.log('Löschen nicht erfolgreich ' + this.statusMsg); + this.$fhcAlert.alertError('Fehler bei Löschroutine aufgetreten'); + }).finally(()=> { + window.scrollTo(0, 0); + this.hideModal('deleteAdressModal'); + this.reload(); + }); + }, + getGemeinden(searchString){ + return CoreRESTClient.get('components/stv/Kontakt/getGemeinden/' + searchString + ).then( + result => { + if(result.data.retval) + this.gemeinden = result.data.retval; else - this.$refs.table.tabulator.setData(url); - }*/ + { + this.gemeinden = {}; + this.$fhcAlert.alertError('Keine Gemeinde mit PLZ ' + plz + ' gefunden'); + } + return result; + } + ); + }, + getOrtschaften(searchString){ + return CoreRESTClient.get('components/stv/Kontakt/getOrtschaften/' + searchString + ).then( + result => { + if(result.data.retval) + this.ortschaften = result.data.retval; + else + { + this.ortschaften = {}; + //this.$fhcAlert.alertError('Keine Ortschaft mit PLZ ' + plz + ' gefunden'); + } + return result; + } + ); + }, + search(event) { + //console.log(event.query); + return CoreRESTClient + .get('components/stv/Kontakt/getFirmen/' + event.query) + .then(result => { + this.filteredFirmen = CoreRESTClient.getData(result.data); + //return firma.name.toLowerCase().startsWith(event.query.toLowerCase()); + }); + }, + reload(){ + this.$refs.table.reloadTable(); + }, + hideModal(modalRef){ + bootstrap.Modal.getOrCreateInstance(this.$refs[modalRef]).hide(); + }, }, created(){ CoreRESTClient @@ -140,7 +269,7 @@ export default{ console.error(err.response.data || err.message); }); CoreRESTClient - .get('components/stv/Student/getAdressentypen') + .get('components/stv/Kontakt/getAdressentypen') .then(result => { this.adressentypen = result.data; }) @@ -148,83 +277,145 @@ export default{ console.error(err.response.data || err.message); }); }, - template: ` - + template: `
- - -