reset schedule data when appointment data for early bird not found
This commit is contained in:
CarlNation 2023-06-07 11:24:02 -04:00
parent af8db1c343
commit b1a2bd4e00

View file

@ -11,7 +11,7 @@ import { damageLocationsSelected } from "@/constants/damage-locations-selected";
import { fmgPageValues } from "@/router/router-constants/fmgPage-values"; import { fmgPageValues } from "@/router/router-constants/fmgPage-values";
import router from "@/router"; import router from "@/router";
import { deleteFunnelCookie } from "@/helpers/heritage-integration/cookie-helper.js"; import { deleteFunnelCookie } from "@/helpers/heritage-integration/cookie-helper.js";
import { AppointmentTypeStrings } from "@/constants/schedule-constants"; import { AppointmentTypeStrings, PREMIUM_FEE_PART_TYPE } from "@/constants/schedule-constants";
// Export State // Export State
const getDefaultState = () => { const getDefaultState = () => {
@ -1406,6 +1406,7 @@ export const actions = {
if (context.state.order.eon && context.state.order.eon != response.data.eon) { if (context.state.order.eon && context.state.order.eon != response.data.eon) {
context.commit(storeMutations.RESET_STATE); context.commit(storeMutations.RESET_STATE);
} }
context.commit( context.commit(
storeMutations.UPDATE_STATE_WITH_ORDER_INFORMATION, storeMutations.UPDATE_STATE_WITH_ORDER_INFORMATION,
response.data response.data
@ -2070,6 +2071,40 @@ async function validateAppointment(context, order) {
}, },
false false
); );
if (newTimeSlotsResponse?.data.days?.length === 0) {
context.commit(storeMutations.RESET_SCHEDULE);
return;
}
var mobileRouteCodeFound = false;
// if early bird fee is in supporting items then need to check the timeslot to see if offer premium is also still available
if (
order.lineItem?.supportingItems?.findIndex(
(item) => item.partNumber == PREMIUM_FEE_PART_TYPE
)
) {
newTimeSlotsResponse.data.days?.forEach((day) => {
day.timeSlots.forEach((ts) => {
if (ts.id === order.schedule.routeCode && ts.offerPremium) {
mobileRouteCodeFound = true;
}
});
});
} else {
newTimeSlotsResponse.data.days?.forEach((day) => {
day.timeSlots.forEach((ts) => {
if (ts.id === order.schedule.routeCode) {
mobileRouteCodeFound = true;
}
});
});
}
if (!mobileRouteCodeFound) {
context.commit(storeMutations.RESET_SCHEDULE);
return;
}
} else { } else {
newTimeSlotsResponse = await context.dispatch( newTimeSlotsResponse = await context.dispatch(
storeActions.GET_SHOP_TIME_SLOTS, storeActions.GET_SHOP_TIME_SLOTS,
@ -2081,24 +2116,24 @@ async function validateAppointment(context, order) {
}, },
false false
); );
}
if (newTimeSlotsResponse?.data.days?.length === 0) { if (newTimeSlotsResponse?.data.days?.length === 0) {
context.commit(storeMutations.RESET_SCHEDULE); context.commit(storeMutations.RESET_SCHEDULE);
return; return;
} }
var routeCodeFound = false; var routeCodeFound = false;
newTimeSlotsResponse.data.days?.forEach((day) => { newTimeSlotsResponse.data.days?.forEach((day) => {
day.timeSlots.forEach((ts) => { day.timeSlots.forEach((ts) => {
if (ts.id === order.schedule.routeCode) { if (ts.id === order.schedule.routeCode) {
routeCodeFound = true; routeCodeFound = true;
} }
});
}); });
});
if (!routeCodeFound) { if (!routeCodeFound) {
context.commit(storeMutations.RESET_SCHEDULE); context.commit(storeMutations.RESET_SCHEDULE);
return; return;
}
} }
} }