diff --git a/src/layouts/schedule-page/schedule-page.vue b/src/layouts/schedule-page/schedule-page.vue index db90a0eb..ee9cb465 100644 --- a/src/layouts/schedule-page/schedule-page.vue +++ b/src/layouts/schedule-page/schedule-page.vue @@ -225,18 +225,24 @@ export default { async beforeRouteEnter(to, from, next) { // Call APIs const cmsContentPromise = fetchCmsContentForPage(to.query.issPage); - const storeServiceLocation = useMainStore().order.serviceLocation; + let storeServiceLocation = useMainStore().order.serviceLocation; + let storeSelectedProvider = storeServiceLocation?.provider; + + const storeSelectedSchedule = useMainStore().order.schedule; + if (storeSelectedProvider?.providerNumber && !storeSelectedSchedule?.routeCode) { + useMainStore().resetServiceLocationProvider(); + storeServiceLocation = useMainStore().order.serviceLocation; + storeSelectedProvider = storeServiceLocation?.provider; + } const storeSelectedAppointmentType = storeServiceLocation?.appointmentType; const isMobileAppointment = storeSelectedAppointmentType === AppointmentTypeStrings.MOBILE || storeSelectedAppointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP; - const storeSelectedProvider = storeServiceLocation?.provider; const serviceZipCode = storeServiceLocation?.zipCode || useMainStore().order.customer.address.zipCode; const zipCodeData = getZipCodeData(serviceZipCode); const mobileFeePartPromise = getPricedMobileFeePart(serviceZipCode); const serviceabilityDetailsPromise = useMainStore().getServiceabilityDetails(serviceZipCode); const getGlassFeesPromise = useMainStore().getGlassFees(); const providersPromise = useMainStore().getSafeliteProviders(serviceZipCode, 150); - const premiumFeePromise = useMainStore().getMobilePremiumFee(); const premiumFeeWithPricePromise = premiumFeePromise.then((result) => { if (result.data) { @@ -279,7 +285,7 @@ export default { // use resultMap to populate layout content. const resultMap = await settleAllPromises(promiseResultMap); - const providersUnderOneHundredMiles = resultMap.providers?.shopProviders?.filter((provider) => provider.distanceMiles <= 100); + const providersUnderOneHundredMiles = resultMap.providers?.shopProviders?.filter((provider) => provider.distanceInMiles <= 100); const serviceLocationData = { defaultMobileZipCode: isMobileAppointment ? storeServiceLocation?.zipCode @@ -296,9 +302,9 @@ export default { useMainStore().updateIsSafeliteProvider(true); next(async (vm) => { const foundProviderInFullList = resultMap.providers?.shopProviders - .find((provider) => provider.providerNumber === storeSelectedProvider?.providerNumber) || resultMap.providers?.shopProviders[0]; + .find((provider) => provider.providerNumber === storeSelectedProvider?.providerNumber) || null; const foundProviderInHundredMiles = providersUnderOneHundredMiles - .find((provider) => provider.providerNumber === storeSelectedProvider?.providerNumber) || providersUnderOneHundredMiles[0]; + .find((provider) => provider.providerNumber === storeSelectedProvider?.providerNumber) || null; if (!foundProviderInHundredMiles && !foundProviderInFullList) { if (storeSelectedProvider?.providerNumber && resultMap.providers?.shopProviders) { @@ -307,6 +313,7 @@ export default { } else if (!foundProviderInHundredMiles && foundProviderInFullList) { serviceLocationData.providers?.shopProviders.push(foundProviderInFullList); } + const initialServiceLocationObj = { mobileProviderNumber: isMobileAppointment ? storeSelectedProvider?.providerNumber diff --git a/src/layouts/schedule-page/service-location/service-location.vue b/src/layouts/schedule-page/service-location/service-location.vue index cbce93d2..227c20bb 100644 --- a/src/layouts/schedule-page/service-location/service-location.vue +++ b/src/layouts/schedule-page/service-location/service-location.vue @@ -1,11 +1,5 @@