Merge branch 'develop' into feature/kroell/service-packages-defects
This commit is contained in:
commit
7e84c9f681
3 changed files with 22 additions and 16 deletions
|
|
@ -225,18 +225,24 @@ export default {
|
||||||
async beforeRouteEnter(to, from, next) {
|
async beforeRouteEnter(to, from, next) {
|
||||||
// Call APIs
|
// Call APIs
|
||||||
const cmsContentPromise = fetchCmsContentForPage(to.query.issPage);
|
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 storeSelectedAppointmentType = storeServiceLocation?.appointmentType;
|
||||||
const isMobileAppointment = storeSelectedAppointmentType === AppointmentTypeStrings.MOBILE
|
const isMobileAppointment = storeSelectedAppointmentType === AppointmentTypeStrings.MOBILE
|
||||||
|| storeSelectedAppointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP;
|
|| storeSelectedAppointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP;
|
||||||
const storeSelectedProvider = storeServiceLocation?.provider;
|
|
||||||
const serviceZipCode = storeServiceLocation?.zipCode || useMainStore().order.customer.address.zipCode;
|
const serviceZipCode = storeServiceLocation?.zipCode || useMainStore().order.customer.address.zipCode;
|
||||||
const zipCodeData = getZipCodeData(serviceZipCode);
|
const zipCodeData = getZipCodeData(serviceZipCode);
|
||||||
const mobileFeePartPromise = getPricedMobileFeePart(serviceZipCode);
|
const mobileFeePartPromise = getPricedMobileFeePart(serviceZipCode);
|
||||||
const serviceabilityDetailsPromise = useMainStore().getServiceabilityDetails(serviceZipCode);
|
const serviceabilityDetailsPromise = useMainStore().getServiceabilityDetails(serviceZipCode);
|
||||||
const getGlassFeesPromise = useMainStore().getGlassFees();
|
const getGlassFeesPromise = useMainStore().getGlassFees();
|
||||||
const providersPromise = useMainStore().getSafeliteProviders(serviceZipCode, 150);
|
const providersPromise = useMainStore().getSafeliteProviders(serviceZipCode, 150);
|
||||||
|
|
||||||
const premiumFeePromise = useMainStore().getMobilePremiumFee();
|
const premiumFeePromise = useMainStore().getMobilePremiumFee();
|
||||||
const premiumFeeWithPricePromise = premiumFeePromise.then((result) => {
|
const premiumFeeWithPricePromise = premiumFeePromise.then((result) => {
|
||||||
if (result.data) {
|
if (result.data) {
|
||||||
|
|
@ -279,7 +285,7 @@ export default {
|
||||||
|
|
||||||
// use resultMap to populate layout content.
|
// use resultMap to populate layout content.
|
||||||
const resultMap = await settleAllPromises(promiseResultMap);
|
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 = {
|
const serviceLocationData = {
|
||||||
defaultMobileZipCode: isMobileAppointment
|
defaultMobileZipCode: isMobileAppointment
|
||||||
? storeServiceLocation?.zipCode
|
? storeServiceLocation?.zipCode
|
||||||
|
|
@ -296,9 +302,9 @@ export default {
|
||||||
useMainStore().updateIsSafeliteProvider(true);
|
useMainStore().updateIsSafeliteProvider(true);
|
||||||
next(async (vm) => {
|
next(async (vm) => {
|
||||||
const foundProviderInFullList = resultMap.providers?.shopProviders
|
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
|
const foundProviderInHundredMiles = providersUnderOneHundredMiles
|
||||||
.find((provider) => provider.providerNumber === storeSelectedProvider?.providerNumber) || providersUnderOneHundredMiles[0];
|
.find((provider) => provider.providerNumber === storeSelectedProvider?.providerNumber) || null;
|
||||||
|
|
||||||
if (!foundProviderInHundredMiles && !foundProviderInFullList) {
|
if (!foundProviderInHundredMiles && !foundProviderInFullList) {
|
||||||
if (storeSelectedProvider?.providerNumber && resultMap.providers?.shopProviders) {
|
if (storeSelectedProvider?.providerNumber && resultMap.providers?.shopProviders) {
|
||||||
|
|
@ -307,11 +313,12 @@ export default {
|
||||||
} else if (!foundProviderInHundredMiles && foundProviderInFullList) {
|
} else if (!foundProviderInHundredMiles && foundProviderInFullList) {
|
||||||
serviceLocationData.providers?.shopProviders.push(foundProviderInFullList);
|
serviceLocationData.providers?.shopProviders.push(foundProviderInFullList);
|
||||||
}
|
}
|
||||||
|
|
||||||
const initialServiceLocationObj = {
|
const initialServiceLocationObj = {
|
||||||
mobileProviderNumber: isMobileAppointment
|
mobileProviderNumber: isMobileAppointment
|
||||||
? storeSelectedProvider?.providerNumber
|
? storeSelectedProvider?.providerNumber
|
||||||
: null,
|
: null,
|
||||||
provider: isMobileAppointment ? null : foundProviderInFullList,
|
provider: isMobileAppointment ? null : foundProviderInFullList || resultMap.providers?.shopProviders[0] || null,
|
||||||
zipCode: useMainStore().order.serviceLocation.zipCode || useMainStore().order.customer.address.zipCode,
|
zipCode: useMainStore().order.serviceLocation.zipCode || useMainStore().order.customer.address.zipCode,
|
||||||
zipCodeCtu: resultMap.zipCodeData?.zipCodeCtu
|
zipCodeCtu: resultMap.zipCodeData?.zipCodeCtu
|
||||||
};
|
};
|
||||||
|
|
@ -556,7 +563,6 @@ export default {
|
||||||
daysFromStart: endDateObject.daysFromStart || null
|
daysFromStart: endDateObject.daysFromStart || null
|
||||||
}))
|
}))
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
console.warn('Error fetching initial available dates...');
|
|
||||||
return {
|
return {
|
||||||
todayDate: todayDateString,
|
todayDate: todayDateString,
|
||||||
initialViewStartDate,
|
initialViewStartDate,
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="service-location">
|
<div class="service-location">
|
||||||
<alert
|
|
||||||
v-if="displayRecalibrationWarning"
|
|
||||||
ref="alertRecalNoMobile"
|
|
||||||
cmsWidgetName="AlertRecalNoMobileWidget"
|
|
||||||
alertClass="alert-warning"
|
|
||||||
@textLinkClicked="openModalAction" />
|
|
||||||
<alert
|
<alert
|
||||||
v-if="displayBigTruckNoShops"
|
v-if="displayBigTruckNoShops"
|
||||||
ref="alertBigTruckNoShops"
|
ref="alertBigTruckNoShops"
|
||||||
|
|
@ -19,6 +13,12 @@
|
||||||
<span
|
<span
|
||||||
v-if="!requiresInshopRecalibration">{{ appointmentQuestionText }}</span>
|
v-if="!requiresInshopRecalibration">{{ appointmentQuestionText }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
<alert
|
||||||
|
v-if="displayRecalibrationWarning"
|
||||||
|
ref="alertRecalNoMobile"
|
||||||
|
cmsWidgetName="AlertRecalNoMobileWidget"
|
||||||
|
alertClass="alert-warning"
|
||||||
|
@textLinkClicked="openModalAction" />
|
||||||
<alert
|
<alert
|
||||||
v-if="displayServiceableInshopOnly"
|
v-if="displayServiceableInshopOnly"
|
||||||
ref="alertInshopOnly"
|
ref="alertInshopOnly"
|
||||||
|
|
@ -619,7 +619,7 @@ $page-side-padding: 1.5rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
div.alert {
|
div.alert {
|
||||||
margin-top: 0.625rem;
|
margin-top: 1.25rem;
|
||||||
|
|
||||||
&.widget-name-AlertLowAvailabilityInshopWidget {
|
&.widget-name-AlertLowAvailabilityInshopWidget {
|
||||||
@include media-breakpoint-up(xs) {
|
@include media-breakpoint-up(xs) {
|
||||||
|
|
|
||||||
|
|
@ -1254,7 +1254,7 @@ export const useMainStore = defineStore({
|
||||||
},
|
},
|
||||||
|
|
||||||
async getCombinedQuote(availableLineItems) {
|
async getCombinedQuote(availableLineItems) {
|
||||||
if (!availableLineItems || availableLineItems.length === 0) {
|
if (!availableLineItems || availableLineItems.length === 0 || !this.providerNumber) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue