Submitting address, and validFrom field

This commit is contained in:
2021-08-05 22:04:41 +02:00
parent 884de5c19e
commit 01cc230136
3 changed files with 134 additions and 65 deletions

View File

@@ -26,7 +26,8 @@
v-bind:options="this.options"
v-bind:default="this.default"
v-bind:entity="this.entity"
v-bind:flag="this.flag">
v-bind:flag="this.flag"
ref="showAddress">
</show-address>
</template>
@@ -36,7 +37,7 @@
{{ $t('action.edit')}}
</button>
<button class="btn btn-save"
@click.prevent="$emit('submitAddress', { getSubmited , flag })">
@click="submitAddress">
{{ $t('action.save')}}
</button>
</template>
@@ -51,8 +52,9 @@
v-bind:default="this.default"
v-bind:entity="this.entity"
v-bind:flag="this.flag"
ref="showAddress"
v-bind:insideModal="false" @openEditPane="openEditPane"
@submitAddress="$emit('submitAddress', { getSubmited , flag })">
@submitAddress="submitAddress">
</show-address>
</div>
@@ -122,8 +124,7 @@ import {
export default {
name: "AddAddress",
props: ['context', 'options'],
emits: ['submitAddress'],
props: ['context', 'options', 'result'],
components: {
Modal,
ShowAddress,
@@ -173,6 +174,10 @@ export default {
zoom: 12
},
},
valid: {
from: null,
to: null
},
errorMsg: []
}
},
@@ -197,11 +202,8 @@ export default {
return (this.context.edit) ? this.options.title.edit : this.options.title.create;
}
return (this.context.edit) ? this.default.title.edit : this.default.title.create;
},
getSubmited() {
return this.entity.address;
}
},
mounted() {
if (!this.step1WithModal) {
@@ -221,11 +223,13 @@ export default {
}
this.flag.showPane = true;
},
openEditPane() {
console.log('open the Edit panel');
this.initForm();
this.getCountries();
},
closeEditPane() {
console.log('close the Edit Panel (with validation)');
this.applyChanges();
@@ -373,7 +377,6 @@ export default {
* then update existing address with backend datas when promise is resolved
*/
updateAddress(payload) {
console.log('updateAddress payload', payload);
// TODO change the condition because it writes new postal code in edit mode now: !writeNewPostalCode
this.flag.loading = true;
@@ -387,7 +390,6 @@ export default {
body.postcode = {'id': postalCode.id },
patchAddress(payload.addressId, body)
.then(address => new Promise((resolve, reject) => {
console.log('update address');
this.entity.address = address;
this.flag.loading = false;
resolve();
@@ -401,7 +403,6 @@ export default {
} else {
patchAddress(payload.addressId, payload.newAddress)
.then(address => new Promise((resolve, reject) => {
console.log('update address');
this.entity.address = address;
this.flag.loading = false;
resolve();
@@ -418,7 +419,6 @@ export default {
* creating new address, and receive backend datas when promise is resolved
*/
addAddress(payload) {
console.log('addAddress payload', payload);
this.flag.loading = true;
if('newPostcode' in payload){
@@ -431,7 +431,6 @@ export default {
body.postcode = {'id': postalCode.id},
postAddress(body)
.then(address => new Promise((resolve, reject) => {
console.log('add address');
this.entity.address = address;
resolve();
this.flag.loading = false;
@@ -445,7 +444,6 @@ export default {
} else {
postAddress(payload)
.then(address => new Promise((resolve, reject) => {
console.log('add address');
this.entity.address = address;
resolve();
this.flag.loading = false;
@@ -455,9 +453,52 @@ export default {
this.flag.loading = false;
});
}
},
/*
* When submited
*/
submitAddress() {
console.log('@@@ CLICK button submitAddress');
this.addDateToAddressAndAddressToPerson({
personId: this.context.personId,
addressId: this.entity.address.address_id,
body: { validFrom: { datetime: `${this.$refs.showAddress.validFrom}T00:00:00+0100`}},
backUrl: this.context.backUrl
});
this.initForm();
this.flag.showPane = false;
},
addDateToAddressAndAddressToPerson(payload) {
console.log('addDateToAddressAndAddressToPerson payload', payload);
this.flag.loading = true;
patchAddress(payload.addressId, payload.body)
.then(address => new Promise((resolve, reject) => {
this.valid.from = address.validFrom;
resolve();
}).then(
postAddressToPerson(payload.personId, payload.addressId)
.then(person => new Promise((resolve, reject) => {
console.log('commit addAddressToPerson !!!', person);
this.result = person;
this.flag.loading = false;
this.flag.success = true;
window.location.assign(payload.backUrl);
resolve();
}))
.catch((error) => {
this.errorMsg.push(error);
this.flag.loading = false;
})
))
.catch((error) => {
this.errorMsg.push(error);
this.flag.loading = false;
});
}
}
}
</script>