mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
refactor tab contact: form component, dropwdowns plz, ort, gemeinde
This commit is contained in:
@@ -524,7 +524,7 @@ class Kontakt extends FHCAPI_Controller
|
||||
$name = $this->input->post('name');
|
||||
$anschrift = $this->input->post('anschrift');
|
||||
$bic = $this->input->post('bic');
|
||||
$blz = $this->input->post('blz ');
|
||||
$blz = $this->input->post('blz');
|
||||
$kontonr = $this->input->post('kontonr');
|
||||
|
||||
$result = $this->BankverbindungModel->insert(
|
||||
|
||||
@@ -2,13 +2,17 @@ import {CoreFilterCmpt} from "../../../../filter/Filter.js";
|
||||
import PvAutoComplete from "../../../../../../../index.ci.php/public/js/components/primevue/autocomplete/autocomplete.esm.min.js";
|
||||
import FhcFormValidation from '../../../../Form/Validation.js';
|
||||
import BsModal from "../../../../Bootstrap/Modal.js";
|
||||
import FormForm from '../../../../Form/Form.js';
|
||||
import FormInput from '../../../../Form/Input.js';
|
||||
|
||||
export default{
|
||||
components: {
|
||||
CoreFilterCmpt,
|
||||
PvAutoComplete,
|
||||
FhcFormValidation,
|
||||
BsModal
|
||||
BsModal,
|
||||
FormForm,
|
||||
FormInput
|
||||
},
|
||||
props: {
|
||||
uid: Number
|
||||
@@ -50,7 +54,6 @@ export default{
|
||||
{title:"Abweich.Empf", field:"co_name"},
|
||||
{title:"Firma", field:"firmenname"},
|
||||
{title:"Firma_id", field:"firma_id", visible:false},
|
||||
{title:"Name", field:"name"},
|
||||
{title:"Adresse_id", field:"adresse_id", visible:false},
|
||||
{title:"Person_id", field:"person_id", visible:false},
|
||||
{title:"Name", field:"name", visible:false},
|
||||
@@ -184,16 +187,21 @@ export default{
|
||||
watch: {
|
||||
uid() {
|
||||
this.$refs.table.tabulator.setData('api/frontend/v1/stv/Kontakt/getAdressen/' + this.uid);
|
||||
}
|
||||
},
|
||||
},
|
||||
methods:{
|
||||
actionNewAdress() {
|
||||
this.resetModal();
|
||||
this.$refs.newAdressModal.show();
|
||||
},
|
||||
actionEditAdress(adress_id) {
|
||||
this.loadAdress(adress_id).then(() => {
|
||||
if(this.addressData.adresse_id)
|
||||
{
|
||||
this.loadPlaces(this.addressData.plz);
|
||||
this.$refs.editAdressModal.show();
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
actionDeleteAdress(adress_id) {
|
||||
@@ -303,121 +311,218 @@ export default{
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError)
|
||||
},
|
||||
// TODO(chris): use Form Component
|
||||
template: `
|
||||
<div class="stv-details-kontakt-address h-100 pt-3">
|
||||
|
||||
<!--Modal: Add Address-->
|
||||
<bs-modal ref="newAdressModal">
|
||||
<template #title>{{$p.t('person', 'adresse_new')}}</template>
|
||||
<form class="row g-3" ref="addressData">
|
||||
<form-form class="row g-3" ref="addressData">
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="adressentyp" class="form-label col-sm-4">{{$p.t('global', 'typ')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<select id="adressentyp" class="form-select" v-model="addressData.typ">
|
||||
<option v-for="typ in adressentypen" :key="typ.adressentyp_kurzbz" :value="typ.adressentyp_kurzbz" >{{typ.bezeichnung}}</option>
|
||||
</select>
|
||||
<form-input
|
||||
type="select"
|
||||
name="adressentyp"
|
||||
v-model="addressData.typ"
|
||||
>
|
||||
<option
|
||||
v-for="typ in adressentypen"
|
||||
:key="typ.adressentyp_kurzbz"
|
||||
:value="typ.adressentyp_kurzbz"
|
||||
>
|
||||
{{typ.bezeichnung}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="strasse" class="form-label col-sm-4">{{$p.t('person', 'strasse')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="strasse" v-model="addressData['strasse']">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="nation" class="form-label col-sm-4">{{$p.t('person', 'nation')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<select id="nation" class="form-select" v-model="addressData.nation">
|
||||
<option v-for="nation in nations" :key="nation.nation_code" :value="nation.nation_code" :disabled="nation.sperre">{{nation.kurztext}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="plz" class="required form-label col-sm-4" >{{$p.t('person', 'plz')}}<sup>*</sup></label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" required v-model="addressData['plz']" @input="loadPlaces" >
|
||||
<form-input
|
||||
type="text"
|
||||
name="strasse"
|
||||
v-model="addressData.strasse"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="gemeinde" class="form-label col-sm-4">{{$p.t('person', 'gemeinde')}}</label>
|
||||
<label for="nation" class="form-label col-sm-4">{{$p.t('person', 'nation')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<select v-if="addressData['nation'] == 'A'" name="addressData[gemeinde]" class="form-select" v-model="addressData['gemeinde']">
|
||||
<option v-if="!gemeinden.length" disabled>Bitte gültige PLZ wählen</option>
|
||||
<option v-for="gemeinde in gemeinden" :key="gemeinde.name" :value="gemeinde.name">{{gemeinde.name}}</option>
|
||||
</select><!---->
|
||||
<input v-else type="text" class="form-control" v-model="addressData['gemeinde']">
|
||||
<form-input
|
||||
type="select"
|
||||
name="nation"
|
||||
v-model="addressData.nation"
|
||||
>
|
||||
<option
|
||||
v-for="nation in nations"
|
||||
:key="nation.nation_code"
|
||||
:value="nation.nation_code"
|
||||
:disabled="nation.sperre"
|
||||
>
|
||||
{{nation.kurztext}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="plz" class="required form-label col-sm-4" >{{$p.t('person', 'plz')}}<sup>*</sup></label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="plz"
|
||||
v-model="addressData.plz"
|
||||
required
|
||||
@input="loadPlaces"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="gemeinde" class="form-label col-sm-4">{{$p.t('person', 'gemeinde')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
v-if="addressData.nation == 'A'"
|
||||
type="select"
|
||||
name="gemeinde"
|
||||
v-model="addressData.gemeinde"
|
||||
>
|
||||
<option v-if="!gemeinden.length" disabled>Bitte gültige PLZ wählen</option>
|
||||
<option
|
||||
v-for="gemeinde in gemeinden"
|
||||
:key="gemeinde.name"
|
||||
:value="gemeinde.name"
|
||||
>
|
||||
{{gemeinde.name}}
|
||||
</option>
|
||||
</form-input>
|
||||
<form-input
|
||||
v-else
|
||||
type="text"
|
||||
name="addressData.gemeinde"
|
||||
v-model="addressData.gemeinde"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="Ort" class="form-label col-sm-4">{{$p.t('person', 'ort')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<select v-if="addressData['nation'] == 'A'" name="address[ort]" class="form-select" v-model="addressData['ort']">
|
||||
<form-input
|
||||
v-if="addressData.nation == 'A'"
|
||||
type="select"
|
||||
name="ort"
|
||||
v-model="addressData.ort"
|
||||
>
|
||||
<option v-if="!orte.length" disabled>Bitte gültige Gemeinde wählen</option>
|
||||
<option v-for="ort in orte" :key="ort.ortschaftsname" :value="ort.ortschaftsname">{{ort.ortschaftsname}}</option>
|
||||
</select>
|
||||
<input v-else type="text" name="ort" class="form-control" v-model="addressData['ort']">
|
||||
<option
|
||||
v-for="ort in orte"
|
||||
:key="ort.ortschaftsname"
|
||||
:value="ort.ortschaftsname"
|
||||
>
|
||||
{{ort.ortschaftsname}}
|
||||
</option>
|
||||
</form-input>
|
||||
<form-input
|
||||
v-else
|
||||
type="text"
|
||||
name="ort"
|
||||
v-model="addressData.ort"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="heimatadresse" class="form-label col-sm-4">{{$p.t('person', 'heimatadresse')}}</label>
|
||||
<div class="col-sm-3">
|
||||
<div class="form-check">
|
||||
<input id="heimatadresse" type="checkbox" class="form-check-input" value="1" v-model="addressData['heimatadresse']">
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<form-input
|
||||
container-class="form-check"
|
||||
type="checkbox"
|
||||
name="heimatadresse"
|
||||
v-model="addressData.heimatadresse"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="zustelladresse" class="form-label col-sm-4">{{$p.t('person', 'zustelladresse')}}</label>
|
||||
<div class="col-sm-3">
|
||||
<div class="form-check">
|
||||
<input id="zustelladresse" type="checkbox" class="form-check-input" value="1" v-model="addressData['zustelladresse']">
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<form-input
|
||||
container-class="form-check"
|
||||
type="checkbox"
|
||||
name="zustelladresse"
|
||||
v-model="addressData.zustelladresse"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="co_name" class="form-label col-sm-4">{{$p.t('person', 'co_name')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" id="co_name" class="form-control" v-model="addressData['co_name']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="co_name"
|
||||
v-model="addressData.co_name"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="rechnungsadresse" class="form-label col-sm-4">{{$p.t('person', 'rechnungsadresse')}}</label>
|
||||
<div class="col-sm-3">
|
||||
<div class="form-check">
|
||||
<input id="rechnungsadresse" type="checkbox" class="form-check-input" v-model="addressData['rechnungsadresse']">
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<form-input
|
||||
container-class="form-check"
|
||||
type="checkbox"
|
||||
name="rechnungsadresse"
|
||||
v-model="addressData.rechnungsadresse"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="firma_name" class="form-label col-sm-4">{{$p.t('person', 'firma')}}</label>
|
||||
<div class="col-sm-3">
|
||||
<PvAutoComplete v-model="addressData['firma']" optionLabel="name" :suggestions="filteredFirmen" @complete="search" :min-length="3"/>
|
||||
<PvAutoComplete v-model="addressData.firma" optionLabel="name" :suggestions="filteredFirmen" @complete="search" :min-length="3"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="name" class="form-label col-sm-4">{{$p.t('person', 'firma_zusatz')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="name" v-model="addressData['name']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="firma_zusatz"
|
||||
v-model="addressData.name"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="anmerkung" class="form-label col-sm-4">{{$p.t('global', 'anmerkung')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="anmerkung" v-model="addressData['anmerkung']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="anmerkung"
|
||||
v-model="addressData.anmerkung"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</form-form>
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{{$p.t('ui', 'abbrechen')}}</button>
|
||||
<button type="button" class="btn btn-primary" @click="addNewAddress()">OK</button>
|
||||
@@ -427,95 +532,163 @@ export default{
|
||||
<!--Modal: Edit Address-->
|
||||
<bs-modal ref="editAdressModal">
|
||||
<template #title>{{$p.t('person', 'adresse_edit')}}</template>
|
||||
<form class="row g-3" ref="addressData">
|
||||
<form-form class="row g-3" ref="addressData">
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="adressentyp" class="form-label col-sm-4">{{$p.t('global', 'typ')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<select id="adressentyp" class="form-control" v-model="addressData.typ">
|
||||
<option v-for="typ in adressentypen" :key="typ.adressentyp_kurzbz" :value="typ.adressentyp_kurzbz" >{{typ.bezeichnung}}</option>
|
||||
</select>
|
||||
<form-input
|
||||
type="select"
|
||||
name="adressentyp"
|
||||
v-model="addressData.typ"
|
||||
>
|
||||
<option
|
||||
v-for="typ in adressentypen"
|
||||
:key="typ.adressentyp_kurzbz"
|
||||
:value="typ.adressentyp_kurzbz"
|
||||
>
|
||||
{{typ.bezeichnung}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="strasse" class="form-label col-sm-4">{{$p.t('person', 'strasse')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="strasse" v-model="addressData.strasse">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="nation" class="form-label col-sm-4">{{$p.t('person', 'nation')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<select id="nation" class="form-select" v-model="addressData.nation">
|
||||
<option v-for="nation in nations" :key="nation.nation_code" :value="nation.nation_code" :disabled="nation.sperre">{{nation.kurztext}}</option>
|
||||
</select>
|
||||
<form-input
|
||||
type="text"
|
||||
name="strasse"
|
||||
v-model="addressData.strasse"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="plz" class="required form-label col-sm-4" >{{$p.t('person', 'plz')}}<sup>*</sup></label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" required v-model="addressData['plz']" @input="loadPlaces">
|
||||
<label for="nation" class="form-label col-sm-4">{{$p.t('person', 'nation')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="select"
|
||||
name="nation"
|
||||
v-model="addressData.nation"
|
||||
>
|
||||
<option
|
||||
v-for="nation in nations"
|
||||
:key="nation.nation_code"
|
||||
:value="nation.nation_code"
|
||||
:disabled="nation.sperre"
|
||||
>
|
||||
{{nation.kurztext}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="plz" class="required form-label col-sm-4" >{{$p.t('person', 'plz')}}<sup>*</sup></label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="plz"
|
||||
v-model="addressData.plz"
|
||||
required
|
||||
@input="loadPlaces"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="gemeinde" class="form-label col-sm-4">{{$p.t('person', 'gemeinde')}}</label>
|
||||
<div v-if="addressData['gemeinde']" class="col-sm-6">
|
||||
<input type="text" class="form-control" v-model="addressData['gemeinde']">
|
||||
</div>
|
||||
<div v-else class="col-sm-6">
|
||||
<select v-if="addressData['nation'] == 'A'" name="addressData[gemeinde]" class="form-select" v-model="addressData['gemeinde']">
|
||||
<option v-if="!gemeinden.length" disabled>{{$p.t('person', 'plz_waehlen')}}</option>
|
||||
<option v-for="gemeinde in gemeinden" :key="gemeinde.name" :value="gemeinde.name">{{gemeinde.name}}</option>
|
||||
</select>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
v-if="addressData.gemeinde"
|
||||
type="select"
|
||||
name="addressData.gemeinde"
|
||||
v-model="addressData.gemeinde"
|
||||
>
|
||||
<option v-if="!gemeinden.length" disabled>Bitte gültige PLZ wählen</option>
|
||||
<option
|
||||
v-for="gemeinde in gemeinden"
|
||||
:key="gemeinde.name"
|
||||
:value="gemeinde.name"
|
||||
>
|
||||
{{gemeinde.name}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="Ort" class="form-label col-sm-4">{{$p.t('person', 'ort')}}</label>
|
||||
<div v-if="addressData['ort']" class="col-sm-6">
|
||||
<input type="text" name="ort" class="form-control" v-model="addressData['ort']">
|
||||
</div>
|
||||
<div v-else class="col-sm-6">
|
||||
<select v-if="addressData['nation'] == 'A'" name="address[ort]" class="form-select" v-model="addressData['ort']">
|
||||
<option v-if="!orte.length" disabled>{{$p.t('person', 'gemeinde_waehlen')}}</option>
|
||||
<option v-for="ort in orte" :key="ort.ortschaftsname" :value="ort.ortschaftsname">{{ort.ortschaftsname}}</option>
|
||||
</select>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
v-if="addressData.ort"
|
||||
type="select"
|
||||
name="ort"
|
||||
v-model="addressData.ort"
|
||||
>
|
||||
<option v-if="!orte.length" disabled>Bitte gültige Gemeinde wählen</option>
|
||||
<option
|
||||
v-for="ort in orte"
|
||||
:key="ort.ortschaftsname"
|
||||
:value="ort.ortschaftsname"
|
||||
>
|
||||
{{ort.ortschaftsname}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="heimatadresse" class="form-label col-sm-4">{{$p.t('person', 'heimatadresse')}}</label>
|
||||
<div class="col-sm-3">
|
||||
<div class="form-check">
|
||||
<input id="heimatadresse" type="checkbox" class="form-check-input" value="1" v-model="addressData['heimatadresse']">
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<form-input
|
||||
container-class="form-check"
|
||||
type="checkbox"
|
||||
name="heimatadresse"
|
||||
v-model="addressData.heimatadresse"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="zustelladresse" class="form-label col-sm-4">{{$p.t('person', 'zustelladresse')}}</label>
|
||||
<div class="col-sm-3">
|
||||
<div class="form-check">
|
||||
<input id="zustelladresse" type="checkbox" class="form-check-input" value="1" v-model="addressData['zustelladresse']">
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<form-input
|
||||
container-class="form-check"
|
||||
type="checkbox"
|
||||
name="zustelladresse"
|
||||
v-model="addressData.zustelladresse"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="co_name" class="form-label col-sm-4">{{$p.t('person', 'co_name')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" id="co_name" class="form-control" v-model="addressData['co_name']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="co_name"
|
||||
v-model="addressData.co_name"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="rechnungsadresse" class="form-label col-sm-4">{{$p.t('person', 'rechnungsadresse')}}</label>
|
||||
<div class="col-sm-3">
|
||||
<div class="form-check">
|
||||
<input id="rechnungsadresse" type="checkbox" class="form-check-input" v-model="addressData['rechnungsadresse']">
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<form-input
|
||||
container-class="form-check"
|
||||
type="checkbox"
|
||||
name="rechnungsadresse"
|
||||
v-model="addressData.rechnungsadresse"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -525,29 +698,39 @@ export default{
|
||||
<input type="text" class="form-control" id="name" v-model="addressData.firmenname">
|
||||
</div>
|
||||
<div v-else class="col-sm-6">
|
||||
<PvAutoComplete v-model="addressData['firma']" optionLabel="name" :suggestions="filteredFirmen" @complete="search" :min-length="3"/>
|
||||
<PvAutoComplete v-model="addressData.firma" optionLabel="name" :suggestions="filteredFirmen" @complete="search" :min-length="3"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<input type="hidden" class="form-control" id="firma_id" v-model="addressData.firma_id">
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="name" class="form-label col-sm-4">{{$p.t('person', 'firma_zusatz')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="name" v-model="addressData['name']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="firma_zusatz"
|
||||
v-model="addressData.name"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="anmerkung" class="form-label col-sm-4">{{$p.t('global', 'anmerkung')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="anmerkung" v-model="addressData['anmerkung']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="anmerkung"
|
||||
v-model="addressData.anmerkung"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</form-form>
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @click="resetModal">{{$p.t('ui', 'abbrechen')}}</button>
|
||||
<button ref="Close" type="button" class="btn btn-primary" @click="updateAddress(addressData.adresse_id)">OK</button>
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
import {CoreFilterCmpt} from "../../../../filter/Filter.js";
|
||||
import BsModal from "../../../../Bootstrap/Modal.js";
|
||||
import FormForm from '../../../../Form/Form.js';
|
||||
import FormInput from '../../../../Form/Input.js';
|
||||
|
||||
export default{
|
||||
components: {
|
||||
CoreFilterCmpt,
|
||||
BsModal
|
||||
BsModal,
|
||||
FormForm,
|
||||
FormInput
|
||||
},
|
||||
props: {
|
||||
uid: Number
|
||||
@@ -114,10 +118,6 @@ export default{
|
||||
verrechnung: true,
|
||||
typ: 'p'
|
||||
},
|
||||
initData: {
|
||||
verrechnung: true,
|
||||
typ: 'p'
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -127,6 +127,7 @@ export default{
|
||||
},
|
||||
methods:{
|
||||
actionNewBankverbindung(){
|
||||
this.resetModal();
|
||||
this.$refs.newBankverbindungModal.show();
|
||||
},
|
||||
actionEditBankverbindung(bankverbindung_id){
|
||||
@@ -196,7 +197,15 @@ export default{
|
||||
},
|
||||
resetModal(){
|
||||
this.bankverbindungData = {};
|
||||
this.bankverbindungData = this.initData;
|
||||
this.bankverbindungData.name = "";
|
||||
this.bankverbindungData.anschrift = "";
|
||||
this.bankverbindungData.iban = "";
|
||||
this.bankverbindungData.bic = "";
|
||||
this.bankverbindungData.kontonr = "";
|
||||
this.bankverbindungData.blz = "";
|
||||
this.bankverbindungData.bic = "";
|
||||
this.bankverbindungData.verrechnung = true;
|
||||
this.bankverbindungData.typ = 'p';
|
||||
},
|
||||
},
|
||||
template: `
|
||||
@@ -204,63 +213,103 @@ export default{
|
||||
|
||||
<!--Modal: Add Bankverbindung-->
|
||||
<BsModal title="Bankverbindung anlegen" ref="newBankverbindungModal">
|
||||
|
||||
<template #title>{{$p.t('person', 'bankvb_new')}}</template>
|
||||
<form class="row g-3" ref="bankverbindungData">
|
||||
<form-form class="row g-3" ref="bankverbindungData">
|
||||
<div class="row mb-3">
|
||||
<label for="name" class="form-label col-sm-4">Name</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="name" v-model="bankverbindungData['name']">
|
||||
</div>
|
||||
<label for="name" class="form-label col-sm-4">Name</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="name"
|
||||
v-model="bankverbindungData.name"
|
||||
>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="anschrift" class="form-label col-sm-4">{{$p.t('person', 'anschrift')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="anschrift" v-model="bankverbindungData['anschrift']">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="anschrift" class="form-label col-sm-4">{{$p.t('person', 'anschrift')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="anschrift"
|
||||
v-model="bankverbindungData.anschrift"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="iban" class="form-label col-sm-4">IBAN<sup>*</sup></label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" required class="form-control" id="iban" v-model="bankverbindungData['iban']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="iban"
|
||||
v-model="bankverbindungData.iban"
|
||||
required
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="bic" class="form-label col-sm-4">BIC</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="bic" v-model="bankverbindungData['bic']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="bic"
|
||||
v-model="bankverbindungData.bic"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="kontonr" class="form-label col-sm-4">{{$p.t('person', 'kontonr')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="kontonr" v-model="bankverbindungData['kontonr']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="kontonr"
|
||||
v-model="bankverbindungData.kontonr"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="blz" class="form-label col-sm-4">{{$p.t('person', 'blz')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="blz" v-model="bankverbindungData['blz']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="blz"
|
||||
v-model="bankverbindungData.blz"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="typ" class="form-label col-sm-4">{{$p.t('global', 'typ')}}<sup>*</sup></label>
|
||||
<div class="col-sm-6">
|
||||
<select id="typ" class="form-select" required v-model="bankverbindungData['typ']">
|
||||
<form-input
|
||||
type="select"
|
||||
name="typ"
|
||||
v-model="bankverbindungData.typ"
|
||||
required
|
||||
>
|
||||
<option value="p">{{$p.t('person', 'privatkonto')}}</option>
|
||||
<option value="f">{{$p.t('person', 'firmenkonto')}}</option>
|
||||
</select>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="verrechnung" class="form-label col-sm-4">{{$p.t('person', 'verrechnung')}}</label>
|
||||
<div class="col-sm-3">
|
||||
<div class="form-check">
|
||||
<input id="verrechnung" type="checkbox" class="form-check-input" value="1" v-model="bankverbindungData['verrechnung']">
|
||||
</div>
|
||||
</div>
|
||||
<label for="verrechnung" class="form-label col-sm-4">{{$p.t('person', 'verrechnung')}}</label>
|
||||
<div class="col-sm-4">
|
||||
<form-input
|
||||
container-class="form-check"
|
||||
type="checkbox"
|
||||
name="verrechnung"
|
||||
v-model="bankverbindungData.verrechnung"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</form-form>
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{{$p.t('ui', 'abbrechen')}}</button>
|
||||
<button type="button" class="btn btn-primary" @click="addNewBankverbindung()">OK</button>
|
||||
@@ -270,62 +319,101 @@ export default{
|
||||
<!--Modal: Edit Bankverbindung-->
|
||||
<BsModal ref="editBankverbindungModal">
|
||||
<template #title>{{$p.t('person', 'bankvb_edit')}}</template>
|
||||
<form class="row g-3" ref="bankverbindungData">
|
||||
<form-form class="row g-3" ref="bankverbindungData">
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="name" class="form-label col-sm-4">Name</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="name" v-model="bankverbindungData['name']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="name"
|
||||
v-model="bankverbindungData.name"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="anschrift" class="form-label col-sm-4">{{$p.t('person', 'anschrift')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="anschrift" v-model="bankverbindungData['anschrift']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="anschrift"
|
||||
v-model="bankverbindungData.anschrift"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="iban" class="form-label col-sm-4">IBAN<sup>*</sup></label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" required class="form-control" id="iban" v-model="bankverbindungData['iban']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="iban"
|
||||
v-model="bankverbindungData.iban"
|
||||
required
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="bic" class="form-label col-sm-4">BIC</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="bic" v-model="bankverbindungData['bic']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="bic"
|
||||
v-model="bankverbindungData.bic"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="kontonr" class="form-label col-sm-4">{{$p.t('person', 'kontonr')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="kontonr" v-model="bankverbindungData['kontonr']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="kontonr"
|
||||
v-model="bankverbindungData.kontonr"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="blz" class="form-label col-sm-4">{{$p.t('person', 'blz')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="blz" v-model="bankverbindungData['blz']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="blz"
|
||||
v-model="bankverbindungData.blz"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="typ" class="form-label col-sm-4">{{$p.t('global', 'typ')}}<sup>*</sup></label>
|
||||
<div class="col-sm-6">
|
||||
<select id="typ" class="form-select" required v-model="bankverbindungData['typ']">
|
||||
<form-input
|
||||
type="select"
|
||||
name="typ"
|
||||
v-model="bankverbindungData.typ"
|
||||
required
|
||||
>
|
||||
<option value="p">{{$p.t('person', 'privatkonto')}}</option>
|
||||
<option value="f">{{$p.t('person', 'firmenkonto')}}</option>
|
||||
</select>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="verrechnung" class="form-label col-sm-4">{{$p.t('person', 'verrechnung')}}</label>
|
||||
<div class="col-sm-3">
|
||||
<div class="form-check">
|
||||
<input id="verrechnung" type="checkbox" class="form-check-input" value="1" v-model="bankverbindungData['verrechnung']">
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<form-input
|
||||
container-class="form-check"
|
||||
type="checkbox"
|
||||
name="verrechnung"
|
||||
v-model="bankverbindungData.verrechnung"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</form-form>
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @click="resetModal">{{$p.t('ui', 'abbrechen')}}</button>
|
||||
<button ref="Close" type="button" class="btn btn-primary" @click="updateBankverbindung(bankverbindungData.bankverbindung_id)">OK</button>
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
import {CoreFilterCmpt} from "../../../../filter/Filter.js";
|
||||
/*import {CoreRESTClient} from "../../../../../RESTClient.js";*/
|
||||
import BsModal from "../../../../Bootstrap/Modal.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";
|
||||
import FormForm from '../../../../Form/Form.js';
|
||||
import FormInput from '../../../../Form/Input.js';
|
||||
|
||||
export default{
|
||||
components: {
|
||||
CoreFilterCmpt,
|
||||
PvAutoComplete,
|
||||
BsModal
|
||||
BsModal,
|
||||
FormForm,
|
||||
FormInput
|
||||
},
|
||||
props: {
|
||||
uid: Number
|
||||
@@ -123,6 +125,7 @@ export default{
|
||||
},
|
||||
methods:{
|
||||
actionNewContact(){
|
||||
this.resetModal();
|
||||
this.$refs.newContactModal.show();
|
||||
},
|
||||
actionEditContact(contact_id){
|
||||
@@ -214,46 +217,69 @@ export default{
|
||||
<!--Modal: new Contact-->
|
||||
<BsModal ref="newContactModal">
|
||||
<template #title>{{$p.t('person', 'kontakt_new')}}</template>
|
||||
<form class="row g-3" ref="contactData">
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="kontakttyp" class="form-label col-sm-4">{{$p.t('global', 'typ')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<select id="kontakttyp" class="form-control" v-model="contactData.kontakttyp">
|
||||
<option value="">keine Auswahl</option>
|
||||
<option v-for="typ in kontakttypen" :key="typ.kontakttyp_kurzbz" :value="typ.kontakttyp" >{{typ.kontakttyp}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<form-form class="row g-3" ref="contactData">
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="kontakttyp" class="form-label col-sm-4">{{$p.t('global', 'typ')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="select"
|
||||
name="typ"
|
||||
v-model="contactData.kontakttyp">
|
||||
>
|
||||
<option value="">keine Auswahl</option>
|
||||
<option v-for="typ in kontakttypen" :key="typ.kontakttyp_kurzbz" :value="typ.kontakttyp" >{{typ.kontakttyp}}</option>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="kontakt" class="form-label col-sm-4">{{$p.t('global', 'kontakt')}}<sup>*</sup></label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="kontakt" v-model="contactData['kontakt']">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="kontakt" class="form-label col-sm-4">{{$p.t('global', 'kontakt')}}<sup>*</sup></label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="kontakt"
|
||||
v-model="contactData.kontakt">
|
||||
required
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label for="anmerkung" class="form-label col-sm-4">{{$p.t('global', 'anmerkung')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="anmerkung" v-model="contactData['anmerkung']">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="anmerkung" class="form-label col-sm-4">{{$p.t('global', 'anmerkung')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="anmerkung"
|
||||
v-model="contactData.anmerkung">
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="zustellung" class="form-label col-sm-4">{{$p.t('person', 'zustellung')}}</label>
|
||||
<div class="col-sm-4">
|
||||
<form-input
|
||||
container-class="form-check"
|
||||
type="checkbox"
|
||||
name="zustellung"
|
||||
v-model="contactData.zustellung"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="zustellung" class="form-label col-sm-4">{{$p.t('person', 'zustellung')}}</label>
|
||||
<div class="row mb-3">
|
||||
<label for="firma_name" class="form-label col-sm-4">{{$p.t('person', 'firma')}} / {{$p.t('person', 'standort')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-check">
|
||||
<input id="zustellung" type="checkbox" class="form-check-input" value="1" v-model="contactData['zustellung']">
|
||||
</div>
|
||||
<PvAutoComplete v-model="contactData['standort']" optionLabel="kurzbz" :suggestions="filteredStandorte" @complete="search" :min-length="3"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="firma_name" class="form-label col-sm-4">{{$p.t('person', 'firma')}} / {{$p.t('person', 'standort')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<PvAutoComplete v-model="contactData['standort']" optionLabel="kurzbz" :suggestions="filteredStandorte" @complete="search" :min-length="3"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</form-form>
|
||||
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{{$p.t('ui', 'abbrechen')}}</button>
|
||||
<button type="button" class="btn btn-primary" @click="addNewContact()">OK</button>
|
||||
@@ -262,8 +288,10 @@ export default{
|
||||
|
||||
<!--Modal: Edit Contact-->
|
||||
<BsModal ref="editContactModal">
|
||||
|
||||
<template #title>{{$p.t('person', 'kontakt_edit')}}</template>
|
||||
<form class="row g-3" ref="contactData">
|
||||
|
||||
<form-form class="row g-3" ref="contactData">
|
||||
<div class="row mb-3">
|
||||
<label for="kontakttyp" class="form-label col-sm-4">{{$p.t('global', 'typ')}}</label>
|
||||
<div class="col-sm-6">
|
||||
@@ -273,26 +301,45 @@ export default{
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="kontakt" class="form-label col-sm-4">{{$p.t('global', 'kontakt')}}<sup>*</sup></label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="kontakt" v-model="contactData['kontakt']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="kontakt"
|
||||
v-model="contactData.kontakt">
|
||||
required
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="anmerkung" class="form-label col-sm-4">{{$p.t('global', 'anmerkung')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="anmerkung" v-model="contactData['anmerkung']">
|
||||
<form-input
|
||||
type="text"
|
||||
name="anmerkung"
|
||||
v-model="contactData.anmerkung">
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="zustellung" class="form-label col-sm-4">{{$p.t('person', 'zustellung')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-check">
|
||||
<input id="zustellung" type="checkbox" class="form-check-input" value="1" v-model="contactData['zustellung']">
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<form-input
|
||||
container-class="form-check"
|
||||
type="checkbox"
|
||||
name="zustellung"
|
||||
v-model="contactData.zustellung"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<input type="hidden" class="form-control" id="standort_id" v-model="contactData.standort_id">
|
||||
</div>
|
||||
@@ -300,13 +347,19 @@ export default{
|
||||
<div class="row mb-3">
|
||||
<label for="standort" class="form-label col-sm-4">{{$p.t('person', 'firma')}} / {{$p.t('person', 'standort')}}</label>
|
||||
<div v-if="contactData.kurzbz" class="col-sm-6">
|
||||
<input type="text" class="form-control" id="name" v-model="contactData.kurzbz">
|
||||
<form-input
|
||||
type="text"
|
||||
name="name"
|
||||
v-model="contactData.kurzbz"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div v-else class="col-sm-3">
|
||||
<PvAutoComplete v-model="contactData['standort']" optionLabel="kurzbz" :suggestions="filteredStandorte" @complete="search" :min-length="3"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</form-form>
|
||||
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @click="resetModal">{{$p.t('ui', 'abbrechen')}}</button>
|
||||
<button type="button" class="btn btn-primary" @click="updateContact(contactData.kontakt_id)">OK</button>
|
||||
|
||||
Reference in New Issue
Block a user