diff --git a/src/pages/Customer/composables/__tests__/getAddresses.spec.js b/src/pages/Customer/composables/__tests__/getAddresses.spec.js index 714693809..76825377d 100644 --- a/src/pages/Customer/composables/__tests__/getAddresses.spec.js +++ b/src/pages/Customer/composables/__tests__/getAddresses.spec.js @@ -22,6 +22,12 @@ describe('getAddresses', () => { relation: 'client', scope: { fields: ['defaultAddressFk'], + include: { + relation: 'defaultAddress', + scope: { + fields: ['id', 'agencyModeFk'], + }, + }, }, }, ], diff --git a/src/pages/Customer/composables/getAddresses.js b/src/pages/Customer/composables/getAddresses.js index 1698388ee..568b7b571 100644 --- a/src/pages/Customer/composables/getAddresses.js +++ b/src/pages/Customer/composables/getAddresses.js @@ -9,6 +9,12 @@ export async function getAddresses(clientId, _filter = {}) { relation: 'client', scope: { fields: ['defaultAddressFk'], + include: { + relation: 'defaultAddress', + scope: { + fields: ['id', 'agencyModeFk'], + }, + }, }, }, ], diff --git a/src/pages/Order/OrderList.vue b/src/pages/Order/OrderList.vue index ff7c46802..091275e32 100644 --- a/src/pages/Order/OrderList.vue +++ b/src/pages/Order/OrderList.vue @@ -158,11 +158,11 @@ onMounted(async () => { if (route.query?.createForm) { const query = JSON.parse(route.query?.createForm); formInitialData.value = query; - await onClientSelected({ ...formInitialData.value, clientId: query?.clientFk }); + await onClientSelected({ ...formInitialData.value, clientFk: query?.clientFk }); } else if (route.query?.table) { const query = JSON.parse(route.query?.table); - const clientId = query?.clientFk; - if (clientId) await onClientSelected({ clientId }); + const clientFk = query?.clientFk; + if (clientFk) await onClientSelected({ clientFk }); } if (tableRef.value) tableRef.value.create.formInitialData = formInitialData.value; }); @@ -171,8 +171,8 @@ watch( () => route.query.table, async (newValue) => { if (newValue) { - const clientId = +JSON.parse(newValue)?.clientFk; - if (clientId) await onClientSelected({ clientId }); + const clientFk = +JSON.parse(newValue)?.clientFk; + if (clientFk) await onClientSelected({ clientFk }); if (tableRef.value) tableRef.value.create.formInitialData = formInitialData.value; } @@ -180,13 +180,19 @@ watch( { immediate: true }, ); -async function onClientSelected({ clientId: id }, formData = {}) { - const { data } = await getAddresses(id); +async function onClientSelected({ clientFk }, formData = {}) { + if (!clientFk) { + addressOptions.value = []; + formData.defaultAddressFk = null; + formData.addressId = null; + return; + } + const { data } = await getAddresses(clientFk); addressOptions.value = data; formData.defaultAddressFk = data[0].client.defaultAddressFk; formData.addressId = formData.defaultAddressFk; - formInitialData.value = { addressId: formData.addressId, clientFk: id }; + formInitialData.value = { addressId: formData.addressId, clientFk }; await fetchAgencies(formData); } @@ -271,7 +277,9 @@ const getDateColor = (date) => { :include="{ relation: 'addresses' }" v-model="data.clientFk" :label="t('module.customer')" - @update:model-value="(id) => onClientSelected(id, data)" + @update:model-value=" + (id) => onClientSelected({ clientFk: id }, data) + " >