diff --git a/src/pages/Route/Agency/composables/getAgencies.js b/src/pages/Route/Agency/composables/getAgencies.js index 7299d7e23..dd1370a55 100644 --- a/src/pages/Route/Agency/composables/getAgencies.js +++ b/src/pages/Route/Agency/composables/getAgencies.js @@ -1,12 +1,21 @@ import axios from 'axios'; +import agency from 'src/router/modules/agency'; -export async function getAgencies(formData) { +export async function getAgencies(formData, client) { if (!formData.warehouseId || !formData.addressId || !formData.landed) return; + + let defaultAgency = null; let params = { warehouseFk: formData.warehouseId, addressFk: formData.addressId, landed: formData.landed, }; - return await axios.get('Agencies/getAgenciesWithWarehouse', { params }); + const { data } = await axios.get('Agencies/getAgenciesWithWarehouse', { params }); + + if(data && client) { + defaultAgency = data.find((agency) => agency.agencyModeFk === client.defaultAddress.agencyModeFk ); + }; + + return {options: data, agency: defaultAgency} } diff --git a/src/pages/Ticket/TicketCreate.vue b/src/pages/Ticket/TicketCreate.vue index 904e04cb3..96d200547 100644 --- a/src/pages/Ticket/TicketCreate.vue +++ b/src/pages/Ticket/TicketCreate.vue @@ -38,6 +38,11 @@ onBeforeMount(async () => { await onClientSelected(initialFormState); }); +function resetAgenciesSelector(formData) { + agenciesOptions.value = []; + formData.agencyModeId = null; +} + const fetchClient = async (formData) => { const response = await getClient(formData.clientId); if (!response) return; @@ -55,21 +60,21 @@ const fetchAddresses = async (formData) => { }; const onClientSelected = async (formData) => { + resetAgenciesSelector(formData); await fetchClient(formData); await fetchAddresses(formData); }; const fetchAvailableAgencies = async (formData) => { - const response = await getAgencies(formData); + resetAgenciesSelector(formData); + const response= await getAgencies(formData, selectedClient.value); if (!response) return; - agenciesOptions.value = response.data; - - const defaultAgency = agenciesOptions.value.find( - (agency) => - agency.agencyModeFk === selectedClient.value.defaultAddress.agencyModeFk - ); - - if (defaultAgency) formData.agencyModeId = defaultAgency.agencyModeFk; + + const { options, agency } = response + if(options) + agenciesOptions.value = options; + if(agency) + formData.agencyModeId = agency; }; const redirectToTicketList = (_, { id }) => { diff --git a/src/pages/Ticket/TicketCreateDialog.vue b/src/pages/Ticket/TicketCreateDialog.vue index 7a126d2c2..2245c5c81 100644 --- a/src/pages/Ticket/TicketCreateDialog.vue +++ b/src/pages/Ticket/TicketCreateDialog.vue @@ -38,6 +38,11 @@ onBeforeMount(async () => { await onClientSelected(initialFormState); }); +function resetAgenciesSelector(formData) { + agenciesOptions.value = []; + if(formData) formData.agencyModeId = null; +} + const fetchClient = async (formData) => { const response = await getClient(formData.clientId); if (!response) return; @@ -55,21 +60,21 @@ const fetchAddresses = async (formData) => { }; const onClientSelected = async (formData) => { + resetAgenciesSelector(formData); await fetchClient(formData); await fetchAddresses(formData); }; const fetchAvailableAgencies = async (formData) => { - const response = await getAgencies(formData); + resetAgenciesSelector(formData); + const response= await getAgencies(formData, selectedClient.value); if (!response) return; - agenciesOptions.value = response.data; - - const defaultAgency = agenciesOptions.value.find( - (agency) => - agency.agencyModeFk === selectedClient.value.defaultAddress.agencyModeFk - ); - - if (defaultAgency) formData.agencyModeId = defaultAgency.agencyModeFk; + + const { options, agency } = response + if(options) + agenciesOptions.value = options; + if(agency) + formData.agencyModeId = agency; }; const redirectToTicketList = (_, { id }) => { diff --git a/src/pages/Ticket/TicketList.vue b/src/pages/Ticket/TicketList.vue index 208bc4460..8df19c0d9 100644 --- a/src/pages/Ticket/TicketList.vue +++ b/src/pages/Ticket/TicketList.vue @@ -229,27 +229,33 @@ const columns = computed(() => [ ], }, ]); + +function resetAgenciesSelector(formData) { + agenciesOptions.value = []; + if(formData) formData.agencyModeId = null; +} + function redirectToLines(id) { const url = `#/ticket/${id}/sale`; window.open(url, '_blank'); } -const onClientSelected = async (formData) => { +const onClientSelected = async (formData) => { + resetAgenciesSelector(formData); await fetchClient(formData); await fetchAddresses(formData); }; const fetchAvailableAgencies = async (formData) => { - const response = await getAgencies(formData); + resetAgenciesSelector(formData); + const response= await getAgencies(formData, selectedClient.value); if (!response) return; - agenciesOptions.value = response.data; - - const defaultAgency = agenciesOptions.value.find( - (agency) => - agency.agencyModeFk === selectedClient.value.defaultAddress.agencyModeFk - ); - - if (defaultAgency) formData.agencyModeId = defaultAgency.agencyModeFk; + + const { options, agency } = response + if(options) + agenciesOptions.value = options; + if(agency) + formData.agencyModeId = agency; }; const fetchClient = async (formData) => {