refactor Tab Kontakt api Controller, Phrases alerts

This commit is contained in:
ma0068
2024-04-02 09:12:26 +02:00
parent 3023cd2e94
commit 2d88ee031c
6 changed files with 975 additions and 272 deletions
@@ -2,8 +2,6 @@ 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,
@@ -17,7 +17,9 @@ export default{
data() {
return{
tabulatorOptions: {
ajaxURL: CoreRESTClient._generateRouterURI('components/stv/Kontakt/getAdressen/' + this.uid),
ajaxURL: 'api/frontend/v1/stv/Kontakt/getAdressen/' + this.uid,
ajaxRequestFunc: this.$fhcApi.get,
ajaxResponse: (url, params, response) => response.data,
//autoColumns: true,
columns:[
{title:"Typ", field:"bezeichnung"},
@@ -80,7 +82,55 @@ export default{
selectable: true,
index: 'adresse_id',
},
tabulatorEvents: [],
tabulatorEvents: [
{
event: 'tableBuilt',
handler: async () => {
await this.$p.loadCategory(['notiz','global','person']);
let cm = this.$refs.table.tabulator.columnManager;
cm.getColumnByField('bezeichnung').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
cm.getColumnByField('strasse').component.updateDefinition({
title: this.$p.t('person', 'strasse')
});
cm.getColumnByField('plz').component.updateDefinition({
title: this.$p.t('person', 'plz')
});
cm.getColumnByField('ort').component.updateDefinition({
title: this.$p.t('person', 'ort')
});
cm.getColumnByField('gemeinde').component.updateDefinition({
title: this.$p.t('person', 'gemeinde')
});
cm.getColumnByField('nation').component.updateDefinition({
title: this.$p.t('person', 'nation')
});
cm.getColumnByField('heimatadresse').component.updateDefinition({
title: this.$p.t('person', 'heimatadresse')
});
cm.getColumnByField('co_name').component.updateDefinition({
title: this.$p.t('person', 'co_name')
});
cm.getColumnByField('name').component.updateDefinition({
title: this.$p.t('person', 'firma_zusatz')
});
cm.getColumnByField('firmenname').component.updateDefinition({
title: this.$p.t('person', 'firma')
});
cm.getColumnByField('updateamum').component.updateDefinition({
title: this.$p.t('notiz', 'letzte_aenderung')
});
cm.getColumnByField('rechnungsadresse').component.updateDefinition({
title: this.$p.t('person', 'rechnungsadresse')
});
cm.getColumnByField('anmerkung').component.updateDefinition({
title: this.$p.t('notiz', 'document')
});
}
}
],
addressData: {
zustelladresse: true,
heimatadresse: true,
@@ -132,29 +182,20 @@ export default{
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!");
this.$fhcAlert.alertError(this.$p.t('person', 'error_deleteHomeAdress'));
else
this.$refs.deleteAdressModal.show();
});
},
addNewAddress(addressData) {
CoreRESTClient.post('components/stv/Kontakt/addNewAddress/' + this.uid,
this.$fhcApi.post('api/frontend/v1/stv/kontakt/addNewAddress/' + this.uid,
this.addressData
).then(response => {
if (!response.data.error) {
this.$fhcAlert.alertSuccess('Speichern erfolgreich');
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.hideModal('newAdressModal');
this.resetModal();
} else {
const errorData = response.data.retval;
Object.entries(errorData).forEach(entry => {
const [key, value] = entry;
this.$fhcAlert.alertError(value);
});
}
}).catch(error => {
this.$fhcAlert.alertError('Fehler bei Speicherroutine aufgetreten');
}).finally(() => {
}).catch(this.$fhcAlert.handleSystemError)
.finally(() => {
window.scrollTo(0, 0);
this.reload();
});
@@ -163,60 +204,38 @@ export default{
this.$refs.table.reloadTable();
},
loadAdress(adress_id){
return CoreRESTClient.get('components/stv/Kontakt/loadAddress/' + adress_id)
.then(
result => {
if(result.data.retval)
this.addressData = result.data.retval;
else
{
this.addressData = {};
this.$fhcAlert.alertError('Keine Adresse mit Id ' + adress_id + ' gefunden');
}
return this.$fhcApi.get('api/frontend/v1/stv/kontakt/loadAddress/' + adress_id)
.then(result => {
this.addressData = result.data;
return result;
}
);
})
.catch(this.$fhcAlert.handleSystemError);
},
updateAddress(adress_id){
CoreRESTClient.post('components/stv/Kontakt/updateAddress/' + adress_id,
this.$fhcApi.post('api/frontend/v1/stv/kontakt/updateAddress/' + adress_id,
this.addressData
).then(response => {
if (!response.data.error) {
this.$fhcAlert.alertSuccess('Speichern erfolgreich');
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.hideModal('editAdressModal');
this.resetModal();
} else {
const errorData = response.data.retval;
Object.entries(errorData).forEach(entry => {
const [key, value] = entry;
this.$fhcAlert.alertError(value);
});
}
}).catch(error => {
this.statusMsg = 'Error in Catch';
this.$fhcAlert.alertError('Fehler bei Speicherroutine aufgetreten');
}).finally(() => {
}).catch(this.$fhcAlert.handleSystemError)
.finally(() => {
window.scrollTo(0, 0);
this.reload();
});
},
deleteAddress(adress_id){
CoreRESTClient.post('components/stv/Kontakt/deleteAddress/' + adress_id)
this.$fhcApi.post('api/frontend/v1/stv/kontakt/deleteAddress/' + adress_id)
.then(response => {
if (!response.data.error) {
this.$fhcAlert.alertSuccess('Löschen erfolgreich');
} else {
this.$fhcAlert.alertError('Keine Adresse mit Id ' + adress_id + ' gefunden');
}
}).catch(error => {
this.$fhcAlert.alertError('Fehler bei Löschroutine aufgetreten');
}).finally(()=> {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
}).catch(this.$fhcAlert.handleSystemError)
.finally(()=> {
window.scrollTo(0, 0);
this.hideModal('deleteAdressModal');
this.reload();
});
},
loadPlaces() {
loadPlaces() { //TODO(manu) Refactor API-controller
if (this.abortController.places)
this.abortController.places.abort();
if (this.addressData.nation != 'A' || !this.addressData.plz)
@@ -241,10 +260,10 @@ export default{
});*/
},
search(event) {
return CoreRESTClient
.get('components/stv/Kontakt/getFirmen/' + event.query)
return this.$fhcApi
.get('api/frontend/v1/stv/kontakt/getFirmen/' + event.query)
.then(result => {
this.filteredFirmen = CoreRESTClient.getData(result.data);
this.filteredFirmen = result.data.retval;
});
},
reload(){
@@ -266,59 +285,12 @@ export default{
this.nations = result;
})
.catch(this.$fhcAlert.handleSystemError);
CoreRESTClient
.get('components/stv/Kontakt/getAdressentypen')
this.$fhcApi
.get('api/frontend/v1/stv/kontakt/getAdressentypen')
.then(result => {
this.adressentypen = result.data;
})
.catch(err => {
console.error(err.response.data || err.message);
});
},
async mounted() {
await this.$p.loadCategory(['notiz','global','person']);
let cm = this.$refs.table.tabulator.columnManager;
cm.getColumnByField('bezeichnung').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
cm.getColumnByField('strasse').component.updateDefinition({
title: this.$p.t('person', 'strasse')
});
cm.getColumnByField('plz').component.updateDefinition({
title: this.$p.t('person', 'plz')
});
cm.getColumnByField('ort').component.updateDefinition({
title: this.$p.t('person', 'ort')
});
cm.getColumnByField('gemeinde').component.updateDefinition({
title: this.$p.t('person', 'gemeinde')
});
cm.getColumnByField('nation').component.updateDefinition({
title: this.$p.t('person', 'nation')
});
cm.getColumnByField('heimatadresse').component.updateDefinition({
title: this.$p.t('person', 'heimatadresse')
});
cm.getColumnByField('co_name').component.updateDefinition({
title: this.$p.t('person', 'co_name')
});
cm.getColumnByField('name').component.updateDefinition({
title: this.$p.t('person', 'firma_zusatz')
});
cm.getColumnByField('firmenname').component.updateDefinition({
title: this.$p.t('person', 'firma')
});
cm.getColumnByField('updateamum').component.updateDefinition({
title: this.$p.t('notiz', 'letzte_aenderung')
});
cm.getColumnByField('rechnungsadresse').component.updateDefinition({
title: this.$p.t('person', 'rechnungsadresse')
});
cm.getColumnByField('anmerkung').component.updateDefinition({
title: this.$p.t('notiz', 'document')
});
.catch(this.$fhcAlert.handleSystemError)
},
template: `
<div class="stv-list h-100 pt-3">
@@ -590,7 +562,7 @@ export default{
:side-menu="false"
reload
new-btn-show
new-btn-label="Neu"
new-btn-label="Adresse"
@click:new="actionNewAdress"
>
<button v-if="reload" class="btn btn-outline-warning" aria-label="Reload">
@@ -1,5 +1,4 @@
import {CoreFilterCmpt} from "../../../../filter/Filter.js";
import {CoreRESTClient} from "../../../../../RESTClient";
import BsModal from "../../../../Bootstrap/Modal.js";
export default{
@@ -13,7 +12,9 @@ export default{
data() {
return{
tabulatorOptions: {
ajaxURL: CoreRESTClient._generateRouterURI('components/stv/Kontakt/getBankverbindung/' + this.uid),
ajaxURL: 'api/frontend/v1/stv/Kontakt/getBankverbindung/' + this.uid,
ajaxRequestFunc: this.$fhcApi.get,
ajaxResponse: (url, params, response) => response.data,
columns:[
{title:"Name", field:"name"},
{title:"Anschrift", field:"anschrift", visible:false},
@@ -76,7 +77,32 @@ export default{
selectable: true,
index: 'bankverbindung_id',
},
tabulatorEvents: [],
tabulatorEvents: [
{
event: 'tableBuilt',
handler: async() => {
await this.$p.loadCategory(['global','person']);
let cm = this.$refs.table.tabulator.columnManager;
cm.getColumnByField('anschrift').component.updateDefinition({
title: this.$p.t('person', 'anschrift')
});
cm.getColumnByField('kontonr').component.updateDefinition({
title: this.$p.t('person', 'kontonr')
});
cm.getColumnByField('blz').component.updateDefinition({
title: this.$p.t('person', 'blz')
});
cm.getColumnByField('typ').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
cm.getColumnByField('verrechnung').component.updateDefinition({
title: this.$p.t('person', 'verrechnung')
});
}
}
],
lastSelected: null,
bankverbindungData: {
verrechnung: true,
@@ -105,80 +131,46 @@ export default{
});
},
addNewBankverbindung(bankverbindungData) {
CoreRESTClient.post('components/stv/Kontakt/addNewBankverbindung/' + this.uid,
this.$fhcApi.post('api/frontend/v1/stv/kontakt/addNewBankverbindung/' + this.uid,
this.bankverbindungData
).then(response => {
if (!response.data.error) {
this.$fhcAlert.alertSuccess('Speichern erfolgreich');
/* this.$refs.newBankverbindungModal.hide();*/
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.hideModal('newBankverbindungModal');
this.resetModal();
} else {
const errorData = response.data.retval;
Object.entries(errorData).forEach(entry => {
const [key, value] = entry;
this.$fhcAlert.alertError('Das Feld ' + key + ' ist erforderlich');
});
this.statusCode = 0;
this.statusMsg = response.data;
}
}).catch(error => {
this.$fhcAlert.alertError('Fehler bei Speicherroutine aufgetreten');
}).finally(() => {
}).catch(this.$fhcAlert.handleSystemError)
.finally(() => {
window.scrollTo(0, 0);
this.reload();
});
},
loadBankverbindung(bankverbindung_id){
return CoreRESTClient.get('components/stv/Kontakt/loadBankverbindung/' + bankverbindung_id)
return this.$fhcApi.get('api/frontend/v1/stv/kontakt/loadBankverbindung/' + bankverbindung_id)
.then(
result => {
if(!result.data.retval || result.data.retval.length < 1)
{
this.bankverbindungData = {};
this.$fhcAlert.alertError('Keine Bankverbindung mit Id ' + bankverbindung_id + ' gefunden');
}
else
{
this.bankverbindungData = result.data.retval;
}
this.bankverbindungData = result.data;
return result;
}
);
})
.catch(this.$fhcAlert.handleSystemError);
},
updateBankverbindung(bankverbindung_id){
CoreRESTClient.post('components/stv/Kontakt/updateBankverbindung/' + bankverbindung_id,
this.$fhcApi.post('api/frontend/v1/stv/kontakt/updateBankverbindung/' + bankverbindung_id,
this.bankverbindungData)
.then(response => {
if (!response.data.error) {
this.$fhcAlert.alertSuccess('Speichern erfolgreich');
this.hideModal('editBankverbindungModal');
this.resetModal();
} else {
const errorData = response.data.retval;
Object.entries(errorData).forEach(entry => {
const [key, value] = entry;
this.$fhcAlert.alertError('Das Feld ' + key + ' ist erforderlich');
});
}
}).catch(error => {
this.$fhcAlert.alertError('Fehler bei Speicherroutine aufgetreten');
}).finally(() => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.hideModal('editBankverbindungModal');
this.resetModal();
}).catch(this.$fhcAlert.handleSystemError)
.finally(() => {
window.scrollTo(0, 0);
this.reload();
});
},
deleteBankverbindung(bankverbindung_id){
CoreRESTClient.post('components/stv/Kontakt/deleteBankverbindung/' + bankverbindung_id)
this.$fhcApi.post('api/frontend/v1/stv/kontakt/deleteBankverbindung/' + bankverbindung_id)
.then(response => {
if (!response.data.error || response.data === []) {
this.$fhcAlert.alertSuccess('Löschen erfolgreich');
} else {
this.$fhcAlert.alertError('Keine Adresse mit Id ' + bankverbindung_id + ' gefunden');
}
}).catch(error => {
this.$fhcAlert.alertError('Fehler bei Löschroutine aufgetreten');
}).finally(()=> {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
}).catch(this.$fhcAlert.handleSystemError)
.finally(()=> {
window.scrollTo(0, 0);
this.hideModal('deleteBankverbindungModal');
this.resetModal();
@@ -196,27 +188,6 @@ export default{
this.bankverbindungData = this.initData;
},
},
async mounted() {
await this.$p.loadCategory(['global','person']);
let cm = this.$refs.table.tabulator.columnManager;
cm.getColumnByField('anschrift').component.updateDefinition({
title: this.$p.t('person', 'anschrift')
});
cm.getColumnByField('kontonr').component.updateDefinition({
title: this.$p.t('person', 'kontonr')
});
cm.getColumnByField('blz').component.updateDefinition({
title: this.$p.t('person', 'blz')
});
cm.getColumnByField('typ').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
cm.getColumnByField('verrechnung').component.updateDefinition({
title: this.$p.t('person', 'verrechnung')
});
},
template: `
<div class="stv-list h-100 pt-3">
@@ -370,7 +341,7 @@ export default{
:side-menu="false"
reload
new-btn-show
new-btn-label="Neu"
new-btn-label="Bankverbindung"
@click:new="actionNewBankverbindung"
>
</core-filter-cmpt>
@@ -16,7 +16,9 @@ export default{
data() {
return{
tabulatorOptions: {
ajaxURL: CoreRESTClient._generateRouterURI('components/stv/Kontakt/getKontakte/' + this.uid),
ajaxURL: 'api/frontend/v1/stv/Kontakt/getKontakte/' + this.uid,
ajaxRequestFunc: this.$fhcApi.get,
ajaxResponse: (url, params, response) => response.data,
columns:[
{title:"Typ", field:"kontakttyp"},
{title:"Kontakt", field:"kontakt"},
@@ -65,7 +67,35 @@ export default{
selectable: true,
index: 'kontakt_id'
},
tabulatorEvents: [],
tabulatorEvents: [
{
event: 'tableBuilt',
handler: async() => {
await this.$p.loadCategory(['notiz','global','person']);
let cm = this.$refs.table.tabulator.columnManager;
cm.getColumnByField('kontakttyp').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
cm.getColumnByField('kontakt').component.updateDefinition({
title: this.$p.t('global', 'kontakt')
});
cm.getColumnByField('zustellung').component.updateDefinition({
title: this.$p.t('person', 'zustellung')
});
cm.getColumnByField('anmerkung').component.updateDefinition({
title: this.$p.t('global', 'anmerkung')
});
cm.getColumnByField('kurzbz').component.updateDefinition({
title: this.$p.t('person', 'firma')
});
cm.getColumnByField('lastupdate').component.updateDefinition({
title: this.$p.t('notiz', 'letzte_aenderung')
});
}
}
],
lastSelected: null,
contactData: {
zustellung: true,
@@ -94,79 +124,50 @@ export default{
this.$refs.deleteContactModal.show();
},
addNewContact(formData) {
CoreRESTClient.post('components/stv/Kontakt/addNewContact/' + this.uid,
this.$fhcApi.post('api/frontend/v1/stv/kontakt/addNewContact/' + this.uid,
this.contactData)
.then(response => {
if (!response.data.error) {
this.$fhcAlert.alertSuccess('Speichern erfolgreich');
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.hideModal("newContactModal");
this.resetModal();
} else {
const errorData = response.data.retval;
Object.entries(errorData).forEach(entry => {
const [key, value] = entry;
this.$fhcAlert.alertError(value);
});
}
}).catch(error => {
this.$fhcAlert.alertError('Fehler bei Speicherroutine aufgetreten');
}).finally(() => {
}).catch(this.$fhcAlert.handleSystemError)
.finally(() => {
window.scrollTo(0, 0);
this.reload();
});
},
loadContact(contact_id){
return CoreRESTClient.get('components/stv/Kontakt/loadContact/' + contact_id)
return this.$fhcApi.get('api/frontend/v1/stv/kontakt/loadContact/' + contact_id)
.then(
result => {
if(result.data.retval)
this.contactData = result.data.retval;
else
{
this.contactData = {};
this.$fhcAlert.alertError('Kein Kontakt mit Id ' + contact_id + ' gefunden');
}
this.contactData = result.data;
return result;
}
);
})
.catch(this.$fhcAlert.handleSystemError);
},
deleteContact(kontakt_id){
CoreRESTClient.post('components/stv/Kontakt/deleteContact/' + kontakt_id)
this.$fhcApi.post('api/frontend/v1/stv/kontakt/deleteContact/' + kontakt_id)
.then(response => {
if (!response.data.error) {
this.$fhcAlert.alertSuccess('Löschen erfolgreich');
} else {
this.$fhcAlert.alertError('Keine Adresse mit Id ' + kontakt_id + ' gefunden');
}
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
})
.catch(error => {
this.$fhcAlert.alertError('Fehler bei Löschroutine aufgetreten');
}).finally(()=> {
window.scrollTo(0, 0);
this.hideModal('deleteContactModal');
this.resetModal();
this.reload();
.catch(this.$fhcAlert.handleSystemError)
.finally(()=> {
window.scrollTo(0, 0);
this.hideModal('deleteContactModal');
this.resetModal();
this.reload();
});
},
updateContact(kontakt_id){
CoreRESTClient.post('components/stv/Kontakt/updateContact/' + kontakt_id,
this.$fhcApi.post('api/frontend/v1/stv/kontakt/updateContact/' + kontakt_id,
this.contactData).
then(response => {
if (!response.data.error) {
this.$fhcAlert.alertSuccess('Speichern erfolgreich');
this.hideModal('editContactModal');
this.resetModal();
this.reload();
} else {
const errorData = response.data.retval;
Object.entries(errorData).forEach(entry => {
const [key, value] = entry;
this.$fhcAlert.alertError(value);
});
}
}).catch(error => {
this.$fhcAlert.alertError('Fehler bei Speicherroutine aufgetreten');
}).finally(() => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.hideModal('editContactModal');
this.resetModal();
this.reload();
}).catch(this.$fhcAlert.handleSystemError)
.finally(()=> {
window.scrollTo(0, 0);
this.reload();
});
@@ -178,10 +179,10 @@ export default{
this.$refs.table.reloadTable();
},
search(event) {
return CoreRESTClient
.get('components/stv/Kontakt/getStandorte/' + event.query)
return this.$fhcApi
.get('api/frontend/v1/stv/kontakt/getStandorte/' + event.query)
.then(result => {
this.filteredStandorte = CoreRESTClient.getData(result.data);
this.filteredStandorte = result.data.retval;
});
},
resetModal(){
@@ -190,38 +191,12 @@ export default{
},
},
created(){
CoreRESTClient
.get('components/stv/Kontakt/getKontakttypen')
this.$fhcApi
.get('api/frontend/v1/stv/kontakt/getKontakttypen')
.then(result => {
this.kontakttypen = result.data;
})
.catch(err => {
console.error(err.response.data || err.message);
});
},
async mounted() {
await this.$p.loadCategory(['notiz','global','person']);
let cm = this.$refs.table.tabulator.columnManager;
cm.getColumnByField('kontakttyp').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
cm.getColumnByField('kontakt').component.updateDefinition({
title: this.$p.t('global', 'kontakt')
});
cm.getColumnByField('zustellung').component.updateDefinition({
title: this.$p.t('person', 'zustellung')
});
cm.getColumnByField('anmerkung').component.updateDefinition({
title: this.$p.t('global', 'anmerkung')
});
cm.getColumnByField('kurzbz').component.updateDefinition({
title: this.$p.t('person', 'firma')
});
cm.getColumnByField('lastupdate').component.updateDefinition({
title: this.$p.t('notiz', 'letzte_aenderung')
});
.catch(this.$fhcAlert.handleSystemError);
},
template: `
<div class="stv-list h-100 pt-3">
@@ -348,7 +323,7 @@ export default{
:side-menu="false"
reload
new-btn-show
new-btn-label="Neu"
new-btn-label="Kontakt"
@click:new="actionNewContact"
>
</core-filter-cmpt>