diff --git a/src/store/index.js b/src/store/index.js index eac41c311..f00d6c460 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -11,7 +11,7 @@ import { damageLocationsSelected } from "@/constants/damage-locations-selected"; import { fmgPageValues } from "@/router/router-constants/fmgPage-values"; import router from "@/router"; 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 const getDefaultState = () => { @@ -1406,6 +1406,7 @@ export const actions = { if (context.state.order.eon && context.state.order.eon != response.data.eon) { context.commit(storeMutations.RESET_STATE); } + context.commit( storeMutations.UPDATE_STATE_WITH_ORDER_INFORMATION, response.data @@ -2070,6 +2071,40 @@ async function validateAppointment(context, order) { }, 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 { newTimeSlotsResponse = await context.dispatch( storeActions.GET_SHOP_TIME_SLOTS, @@ -2081,24 +2116,24 @@ async function validateAppointment(context, order) { }, false ); - } - if (newTimeSlotsResponse?.data.days?.length === 0) { - context.commit(storeMutations.RESET_SCHEDULE); - return; - } + if (newTimeSlotsResponse?.data.days?.length === 0) { + context.commit(storeMutations.RESET_SCHEDULE); + return; + } - var routeCodeFound = false; - newTimeSlotsResponse.data.days?.forEach((day) => { - day.timeSlots.forEach((ts) => { - if (ts.id === order.schedule.routeCode) { - routeCodeFound = true; - } + var routeCodeFound = false; + newTimeSlotsResponse.data.days?.forEach((day) => { + day.timeSlots.forEach((ts) => { + if (ts.id === order.schedule.routeCode) { + routeCodeFound = true; + } + }); }); - }); - if (!routeCodeFound) { - context.commit(storeMutations.RESET_SCHEDULE); - return; + if (!routeCodeFound) { + context.commit(storeMutations.RESET_SCHEDULE); + return; + } } }