Adaptierungen Tab Adresse: show Zustelladresse, Heimatadresse Validierung backend, Layout: Ticks, required

This commit is contained in:
ma0068
2024-05-27 17:07:09 +02:00
parent d020537679
commit dd138380c9
4 changed files with 69 additions and 33 deletions
@@ -37,7 +37,8 @@ class Kontakt extends FHCAPI_Controller
// Load language phrases
$this->loadPhrases([
'ui'
'ui',
'person'
]);
}
@@ -221,6 +222,18 @@ class Kontakt extends FHCAPI_Controller
public function deleteAddress($adresse_id)
{
$this->load->model('person/Adresse_model', 'AdresseModel');
$result = $this->AdresseModel->load([
'adresse_id'=> $adresse_id,
]);
if(isError($result))
{
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
$result = current(getData($result));
if($result->heimatadresse)
$this->terminateWithError($this->p->t('person', 'error_deleteHomeAdress'), self::ERROR_TYPE_GENERAL);
$result = $this->AdresseModel->delete(
array('adresse_id' => $adresse_id)
@@ -234,7 +247,7 @@ class Kontakt extends FHCAPI_Controller
{
return $this->terminateWithError($this->p->t('ui','error_missingId',['id'=> 'Adresse_id']), self::ERROR_TYPE_GENERAL);
}
//return $this->outputJsonSuccess(current(getData($result)));
return $this->terminateWithSuccess(current(getData($result)) ? : null);
}
@@ -27,10 +27,24 @@ export default{
{title:"Ort", field:"ort"},
{title:"Gemeinde", field:"gemeinde"},
{title:"Nation", field:"nation"},
{title:"Heimatadresse", field:"heimatadresse",
formatter: (cell, formatterParams, onRendered) => {
let output = cell.getValue() ? "ja" : "nein";
return output;
{
title:"Heimatadresse",
field:"heimatadresse",
formatter:"tickCross",
hozAlign:"center",
formatterParams: {
tickElement: '<i class="fa fa-check text-success"></i>',
crossElement: '<i class="fa fa-xmark text-danger"></i>'
}
},
{
title:"Zustelladresse",
field:"zustelladresse",
formatter:"tickCross",
hozAlign:"center",
formatterParams: {
tickElement: '<i class="fa fa-check text-success"></i>',
crossElement: '<i class="fa fa-xmark text-danger"></i>'
}
},
{title:"Abweich.Empf", field:"co_name"},
@@ -125,7 +139,7 @@ export default{
title: this.$p.t('person', 'rechnungsadresse')
});
cm.getColumnByField('anmerkung').component.updateDefinition({
title: this.$p.t('notiz', 'document')
title: this.$p.t('global', 'anmerkung')
});
}
}
@@ -239,7 +253,7 @@ export default{
this.reload();
});
},
loadPlaces() { //TODO(manu) Refactor API-controller
loadPlaces() {
if (this.abortController.places)
this.abortController.places.abort();
if (this.addressData.nation != 'A' || !this.addressData.plz)
@@ -254,13 +268,11 @@ export default{
this.places = result.data;
});
/* .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);
});*/
if (error.code != "ERR_CANCELED")
window.setTimeout(this.loadPlaces, 100);
else
this.$fhcAlert.handleSystemError(error);
});*/
},
search(event) {
return this.$fhcApi
@@ -324,7 +336,7 @@ export default{
</div>
<div class="row mb-3">
<label for="plz" class="required form-label col-sm-4" >{{$p.t('person', 'plz')}}</label>
<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" >
</div>
@@ -336,7 +348,7 @@ export default{
<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>
</select><!---->
<input v-else type="text" class="form-control" v-model="addressData['gemeinde']">
</div>
</div>
@@ -442,7 +454,7 @@ export default{
</div>
<div class="row mb-3">
<label for="plz" class="required form-label col-sm-4" >{{$p.t('person', 'plz')}}</label>
<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">
</div>
@@ -472,7 +484,7 @@ export default{
</select>
</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">
@@ -37,10 +37,16 @@ export default{
}
return output;}
},
{title:"Verrechnung", field:"verrechnung", visible:false,
formatter: (cell, formatterParams, onRendered) => {
let output = cell.getValue() ? "ja" : "nein";
return output;}
{
title:"Verrechnung",
field:"verrechnung",
visible:false,
formatter:"tickCross",
hozAlign:"center",
formatterParams: {
tickElement: '<i class="fa fa-check text-success"></i>',
crossElement: '<i class="fa fa-xmark text-danger"></i>'
}
},
{title:"Person_id", field:"person_id", visible:false},
{title:"Bankverbindung_id", field:"bankverbindung_id", visible:false},
@@ -214,7 +220,7 @@ export default{
</div>
<div class="row mb-3">
<label for="iban" class="form-label col-sm-4">IBAN</label>
<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']">
</div>
@@ -238,7 +244,7 @@ export default{
</div>
</div>
<div class="row mb-3">
<label for="typ" class="form-label col-sm-4">{{$p.t('global', 'typ')}}</label>
<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']">
<option value="p">{{$p.t('person', 'privatkonto')}}</option>
@@ -279,7 +285,7 @@ export default{
</div>
</div>
<div class="row mb-3">
<label for="iban" class="form-label col-sm-4">IBAN</label>
<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']">
</div>
@@ -303,7 +309,7 @@ export default{
</div>
</div>
<div class="row mb-3">
<label for="typ" class="form-label col-sm-4">{{$p.t('global', 'typ')}}</label>
<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']">
<option value="p">{{$p.t('person', 'privatkonto')}}</option>
@@ -22,10 +22,15 @@ export default{
columns:[
{title:"Typ", field:"kontakttyp"},
{title:"Kontakt", field:"kontakt"},
{title:"Zustellung", field:"zustellung",
formatter: (cell, formatterParams, onRendered) => {
let output = cell.getValue() ? "ja" : "nein";
return output;}
{
title:"Zustellung",
field:"zustellung",
formatter:"tickCross",
hozAlign:"center",
formatterParams: {
tickElement: '<i class="fa fa-check text-success"></i>',
crossElement: '<i class="fa fa-xmark text-danger"></i>'
}
},
{title:"Anmerkung", field:"anmerkung"},
{title:"Firma", field:"kurzbz", visible:false},
@@ -221,7 +226,7 @@ export default{
</div>
</div>
<div class="row mb-3">
<label for="kontakt" class="form-label col-sm-4">{{$p.t('global', 'kontakt')}}</label>
<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>
@@ -269,7 +274,7 @@ export default{
</div>
</div>
<div class="row mb-3">
<label for="kontakt" class="form-label col-sm-4">{{$p.t('global', 'kontakt')}}</label>
<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>