some updates for schedule
add period fetch billTo on provider change (needed for time slots) fix if Adak Alaska on load.
This commit is contained in:
parent
e74a998665
commit
309f08961b
4 changed files with 64 additions and 13 deletions
|
|
@ -10,7 +10,7 @@
|
||||||
When would you like service?
|
When would you like service?
|
||||||
</div>
|
</div>
|
||||||
<div class="appointment-estimate-header">
|
<div class="appointment-estimate-header">
|
||||||
Your service will take approximately <span>{{ appointmentEstimate }}</span>
|
Your service will take approximately <span>{{ appointmentEstimate }}</span>.
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="appointment-date-picker-container"
|
class="appointment-date-picker-container"
|
||||||
|
|
|
||||||
|
|
@ -232,7 +232,7 @@ export default {
|
||||||
const mobileFeePartPromise = getPricedMobileFeePart(serviceZipCode);
|
const mobileFeePartPromise = getPricedMobileFeePart(serviceZipCode);
|
||||||
const serviceabilityDetailsPromise = getServiceabilityDetails(serviceZipCode);
|
const serviceabilityDetailsPromise = getServiceabilityDetails(serviceZipCode);
|
||||||
const getGlassFeesPromise = useMainStore().getGlassFees();
|
const getGlassFeesPromise = useMainStore().getGlassFees();
|
||||||
const providersPromise = useMainStore().getSafeliteProviders(serviceZipCode);
|
const providersPromise = useMainStore().getSafeliteProviders(serviceZipCode, 150);
|
||||||
|
|
||||||
const premiumFeePromise = useMainStore().getMobilePremiumFee();
|
const premiumFeePromise = useMainStore().getMobilePremiumFee();
|
||||||
const premiumFeeWithPricePromise = premiumFeePromise.then((result) => {
|
const premiumFeeWithPricePromise = premiumFeePromise.then((result) => {
|
||||||
|
|
@ -276,25 +276,39 @@ 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 serviceLocationData = {
|
const serviceLocationData = {
|
||||||
defaultMobileZipCode: isMobileAppointment
|
defaultMobileZipCode: isMobileAppointment
|
||||||
? storeServiceLocation?.zipCode
|
? storeServiceLocation?.zipCode
|
||||||
: '',
|
: '',
|
||||||
glassFees: resultMap.glassFees,
|
glassFees: resultMap.glassFees,
|
||||||
mobileFeePart: resultMap.mobileFeePart,
|
mobileFeePart: resultMap.mobileFeePart,
|
||||||
providers: resultMap.providers,
|
providers: {
|
||||||
|
...resultMap.providers,
|
||||||
|
shopProviders: providersUnderOneHundredMiles || []
|
||||||
|
},
|
||||||
serviceabilityDetails: resultMap.serviceabilityDetails,
|
serviceabilityDetails: resultMap.serviceabilityDetails,
|
||||||
zipCodeData: resultMap.zipCodeData
|
zipCodeData: resultMap.zipCodeData
|
||||||
};
|
};
|
||||||
useMainStore().updateIsSafeliteProvider(true);
|
useMainStore().updateIsSafeliteProvider(true);
|
||||||
next(async (vm) => {
|
next(async (vm) => {
|
||||||
const providerToUse = resultMap.providers?.shopProviders
|
const foundProviderInFullList = resultMap.providers?.shopProviders
|
||||||
.find((provider) => provider.providerNumber === storeSelectedProvider?.providerNumber) || resultMap.providers?.shopProviders[0];
|
.find((provider) => provider.providerNumber === storeSelectedProvider?.providerNumber) || resultMap.providers?.shopProviders[0];
|
||||||
|
const foundProviderInHundredMiles = providersUnderOneHundredMiles
|
||||||
|
.find((provider) => provider.providerNumber === storeSelectedProvider?.providerNumber) || providersUnderOneHundredMiles[0];
|
||||||
|
|
||||||
|
if (!foundProviderInHundredMiles && !foundProviderInFullList) {
|
||||||
|
if (storeSelectedProvider?.providerNumber && resultMap.providers?.shopProviders) {
|
||||||
|
serviceLocationData.providers?.shopProviders.push(storeSelectedProvider);
|
||||||
|
}
|
||||||
|
} else if (!foundProviderInHundredMiles && foundProviderInFullList) {
|
||||||
|
serviceLocationData.providers?.shopProviders.push(foundProviderInFullList);
|
||||||
|
}
|
||||||
const initialServiceLocationObj = {
|
const initialServiceLocationObj = {
|
||||||
mobileProviderNumber: isMobileAppointment
|
mobileProviderNumber: isMobileAppointment
|
||||||
? storeSelectedProvider?.providerNumber
|
? storeSelectedProvider?.providerNumber
|
||||||
: null,
|
: null,
|
||||||
provider: isMobileAppointment ? null : providerToUse,
|
provider: isMobileAppointment ? null : foundProviderInFullList,
|
||||||
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
|
||||||
};
|
};
|
||||||
|
|
@ -524,7 +538,20 @@ export default {
|
||||||
preSelectedDate,
|
preSelectedDate,
|
||||||
initialDaysLoaded: endDateObject.newDaysLoaded || initialDays,
|
initialDaysLoaded: endDateObject.newDaysLoaded || initialDays,
|
||||||
daysFromStart: endDateObject.daysFromStart || null
|
daysFromStart: endDateObject.daysFromStart || null
|
||||||
}));
|
}))
|
||||||
|
.catch(() => {
|
||||||
|
console.warn('Error fetching initial available dates...');
|
||||||
|
return {
|
||||||
|
todayDate: todayDateString,
|
||||||
|
initialViewStartDate,
|
||||||
|
initialViewEndDate,
|
||||||
|
calendarViewDirection,
|
||||||
|
initialShopTimeSlotsResponse: { days: [] },
|
||||||
|
preSelectedDate,
|
||||||
|
initialDaysLoaded: endDateObject.newDaysLoaded || initialDays,
|
||||||
|
daysFromStart: endDateObject.daysFromStart || null
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
if (this.selectedAppointmentType === AppointmentTypeStrings.MOBILE
|
if (this.selectedAppointmentType === AppointmentTypeStrings.MOBILE
|
||||||
|| this.selectedAppointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP) {
|
|| this.selectedAppointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP) {
|
||||||
|
|
@ -639,12 +666,20 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
providerChangedFromServiceLocation(newProvider) {
|
async providerChangedFromServiceLocation(newProvider) {
|
||||||
this.selectedProvider = newProvider?.provider;
|
this.selectedProvider = newProvider?.provider;
|
||||||
|
if (newProvider?.refreshDatePicker && newProvider.provider) {
|
||||||
|
this.mainStore.updateServiceLocationProvider(newProvider.provider);
|
||||||
|
|
||||||
if (newProvider?.refreshDatePicker) {
|
|
||||||
showIssLoadingModal(true);
|
showIssLoadingModal(true);
|
||||||
this.refreshDatePicker();
|
await this.mainStore.getBillToInfo(newProvider.provider?.providerNumber)
|
||||||
|
.then(() => {
|
||||||
|
this.refreshDatePicker();
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
console.warn('Error fetching bill to info...');
|
||||||
|
showIssLoadingModal(false);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async refreshDatePicker() {
|
async refreshDatePicker() {
|
||||||
|
|
|
||||||
|
|
@ -203,7 +203,7 @@ export default {
|
||||||
return this.isBigTruck && !this.isServiceableInshop && !this.isServiceableMobile;
|
return this.isBigTruck && !this.isServiceableInshop && !this.isServiceableMobile;
|
||||||
},
|
},
|
||||||
displayLowAvailabilityInshop() {
|
displayLowAvailabilityInshop() {
|
||||||
return this.availabilityRating === 'low' && this.isInshop;
|
return this.availabilityRating === 'low' && this.isInshop && this.selectedProvider !== null;
|
||||||
},
|
},
|
||||||
displayMilitaryZipAlert() {
|
displayMilitaryZipAlert() {
|
||||||
return this.zipContainsMilitaryBase && this.isServiceableMobile;
|
return this.zipContainsMilitaryBase && this.isServiceableMobile;
|
||||||
|
|
@ -622,5 +622,8 @@ $page-side-padding: 1.5rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
:deep(.alert-shop-distance) {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1848,7 +1848,20 @@ export const useMainStore = defineStore({
|
||||||
}
|
}
|
||||||
this.order.serviceLocation.tpaSearchRadius = serviceLocationInfo.tpaSearchRadius;
|
this.order.serviceLocation.tpaSearchRadius = serviceLocationInfo.tpaSearchRadius;
|
||||||
},
|
},
|
||||||
|
updateServiceLocationProvider(providerInfo) {
|
||||||
|
this.order.serviceLocation.provider = {
|
||||||
|
providerNumber: providerInfo?.providerNumber,
|
||||||
|
address: {
|
||||||
|
streetAddress: providerInfo?.address?.streetAddress,
|
||||||
|
city: providerInfo?.address?.city,
|
||||||
|
state: providerInfo?.address?.state,
|
||||||
|
zipCode: providerInfo?.address?.zipCode,
|
||||||
|
zipCodeCtu: providerInfo?.address?.zipCodeCtu
|
||||||
|
},
|
||||||
|
companyName: providerInfo?.companyName,
|
||||||
|
phoneNumber: providerInfo?.phoneNumber
|
||||||
|
};
|
||||||
|
},
|
||||||
resetState() {
|
resetState() {
|
||||||
Object.assign(this, getDefaultState());
|
Object.assign(this, getDefaultState());
|
||||||
},
|
},
|
||||||
|
|
@ -2684,12 +2697,12 @@ export const useMainStore = defineStore({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
async getBillToInfo() {
|
async getBillToInfo(componentProviderNumber = null) {
|
||||||
const { order, issConfig } = this;
|
const { order, issConfig } = this;
|
||||||
try {
|
try {
|
||||||
const params = new URLSearchParams({
|
const params = new URLSearchParams({
|
||||||
parentAccountNumber: order.parentAccountNumber.toString(),
|
parentAccountNumber: order.parentAccountNumber.toString(),
|
||||||
providerNumber: this.providerNumber,
|
providerNumber: componentProviderNumber || this.providerNumber,
|
||||||
typeOfClaim: 'GLASS ONLY',
|
typeOfClaim: 'GLASS ONLY',
|
||||||
lineOfBusiness: 'PERSONAL',
|
lineOfBusiness: 'PERSONAL',
|
||||||
isItac: this.isITAC
|
isItac: this.isITAC
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue