diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue
index 07330b5d6..e1dd86e06 100644
--- a/src/layouts/schedule/schedule.vue
+++ b/src/layouts/schedule/schedule.vue
@@ -5,7 +5,7 @@
+ @confirm-appointment="updateMobileFirstTimeSlotandNavigateForward" />
0;
}
},
+ isShowMobileFirstAppt() {
+ return experimentMixin.methods.hasSettingEqualTo(
+ experimentSettings.SHOW_MOBILE_FIRST_APPT,
+ "true"
+ );
+ },
},
methods: {
splitCopyOnCMSPlaceHolder,
@@ -1934,10 +1936,10 @@ export default {
const order = this.$store.getters.order;
const isRepair = order.damage.isRepair;
- let preSelectedMobileAppointment = null;
+ let promotedMobileAppointment = null;
const todaysDate = getTodayDate();
- let firstMobileAMAppt = await this.getFirstAvailableMobileApptByTOD("AM");
- let firstMobilePMAppt = await this.getFirstAvailableMobileApptByTOD("PM");
+ let firstMobileAMAppt = await this.getFirstAvailableApptByTOD("AM", "mobile");
+ let firstMobilePMAppt = await this.getFirstAvailableApptByTOD("PM", "mobile");
if (!firstMobileAMAppt && !firstMobilePMAppt) {
return;
}
@@ -2032,7 +2034,7 @@ export default {
if (this.isShowMobileFirstAppt) {
if (pmMobileDays == 0) {
// Selects the first available time slot
- preSelectedMobileAppointment =
+ promotedMobileAppointment =
numberOfDaysToFirstMobileAMDate <= numberOfDaysToFirstMobilePMDate
? firstMobileAMAppt
: firstMobilePMAppt;
@@ -2041,20 +2043,20 @@ export default {
numberOfDaysToFirstMobilePMDate <= pmMobileDays
) {
// Selects the first available PM time slot
- preSelectedMobileAppointment = firstMobilePMAppt;
+ promotedMobileAppointment = firstMobilePMAppt;
} else if (
firstMobilePMDate &&
numberOfDaysToFirstMobilePMDate >= noPMMobileDays
) {
// Selects the first available AM time slot. If none, selects the first available PM time slot
- preSelectedMobileAppointment = firstMobileAMAppt
+ promotedMobileAppointment = firstMobileAMAppt
? firstMobileAMAppt
: firstMobilePMAppt;
}
- if (preSelectedMobileAppointment) {
+ if (promotedMobileAppointment) {
this.$refs.mobileFirstModal.setSelectedAppointment(
- preSelectedMobileAppointment
+ promotedMobileAppointment
);
this.$refs.mobileFirstModal.openModal();
}
@@ -2062,11 +2064,19 @@ export default {
}
}
},
- async getFirstAvailableMobileApptByTOD(timeOfDay) {
- if (!this.selectableDatesMobile?.days?.length) {
+ async getFirstAvailableApptByTOD(timeOfDay, appointmentType) {
+ let selectableDays;
+ if (appointmentType?.toLowerCase() == "mobile") {
+ selectableDays = this.selectableDatesMobile?.days;
+ } else if (appointmentType?.toLowerCase() == "inshop") {
+ selectableDays = this.selectableDatesInshop?.days;
+ } else {
+ return;
+ }
+ if (!selectableDays?.length) {
return null;
} else {
- for (const dateObj of this.selectableDatesMobile.days) {
+ for (const dateObj of selectableDays) {
let matchingTimeSlot = {
estimatedServiceMinutes: {
minimum: this.estimatedServiceMinutesMinimum,
@@ -2081,6 +2091,16 @@ export default {
(matchingTimeSlot.timeSlot = slot) &&
(matchingTimeSlot.date = dateObj.date)
);
+ if (
+ appointmentType?.toLowerCase() == "inshop" &&
+ this.selectedShopAnswer?.address1 &&
+ this.selectedShopAnswer?.address2
+ ) {
+ matchingTimeSlot.addressCopy =
+ this.selectedShopAnswer?.address1 +
+ ", " +
+ this.selectedShopAnswer?.address2;
+ }
if (isMatchingApptDay && matchingTimeSlot) {
return matchingTimeSlot;
}
@@ -2088,7 +2108,7 @@ export default {
return null;
}
},
- updateTimeSlotandNavigateForward(timeSlotObj) {
+ updateMobileFirstTimeSlotandNavigateForward(timeSlotObj) {
this.selectedMobileFirstAppointment = true;
this.appointmentType = AppointmentTypeStrings.MOBILE;
this.selectedDate = timeSlotObj.date;