diff --git a/src/constants/experiments.js b/src/constants/experiments.js index 1d689d727..f81484058 100644 --- a/src/constants/experiments.js +++ b/src/constants/experiments.js @@ -36,6 +36,9 @@ const experimentSettings = { SHOW_PM_MOBILE_DAYS: "Show_PMmobileDays", SHOW_NO_PM_MOBILE_DAYS: "Show_NoPMmobileDays", SHOW_NO_MOBILE_AVAILABLE_DAYS: "Show_NoMobileAvailableDays", + SHOW_MOBILE_FIRST_POPUP_REPAIR: "Show_Mobile_First_Popup_Repair", + SHOW_MOBILE_FIRST_POPUP_REPLACE_WITHOUT_MSR: "Show_Mobile_First_Popup_Replace_Without_MSR", + SHOW_MOBILE_FIRST_POPUP_REPLACE_WITH_MSR: "Show_Mobile_First_Popup_Replace_With_MSR", OFFER_OEM: "OfferOem", USE_ADYEN_PAYMENT: "UseAdyenPayment", }; diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index f7c1ead18..d6313375e 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -1840,7 +1840,19 @@ export default { const noMobileAvailableDays = experimentMixin.methods.getSettingValue( experimentSettings.SHOW_NO_MOBILE_AVAILABLE_DAYS ); + const mobileFirstPopupRepairSetting = experimentMixin.methods.getSettingValue( + experimentSettings.SHOW_MOBILE_FIRST_POPUP_REPAIR + ); + const mobileFirstPopupReplaceWithoutMsrSetting = experimentMixin.methods.getSettingValue( + experimentSettings.SHOW_MOBILE_FIRST_POPUP_REPLACE_WITHOUT_MSR + ); + const mobileFirstPopupReplaceWithMsrSetting = experimentMixin.methods.getSettingValue( + experimentSettings.SHOW_MOBILE_FIRST_POPUP_REPLACE_WITH_MSR + ); + const order = this.$store.getters.order; + const isRepair = order.damage.isRepair; + let preSelectedMobileAppointment = null; const todaysDate = getTodayDate(); let firstMobileAMAppt = await this.getFirstAvailableMobileApptByTOD("AM"); @@ -1856,12 +1868,44 @@ export default { (new Date(firstMobilePMDate) - todaysDate) / (1000 * 60 * 60 * 24); const shouldExposeMobileFirstAppointment = () => { - return ( - (firstMobileAMDate && - numberOfDaysToFirstMobileAMDate <= noMobileAvailableDays) || - (firstMobilePMDate && - numberOfDaysToFirstMobilePMDate <= noMobileAvailableDays) - ); + const mobileFirstDaysCheck = (firstMobileAMDate && numberOfDaysToFirstMobileAMDate <= noMobileAvailableDays) || + (firstMobilePMDate && numberOfDaysToFirstMobilePMDate <= noMobileAvailableDays); + debugLog("MSR::: Mobile First Days Check:", mobileFirstDaysCheck); + + if (mobileFirstPopupRepairSetting === "false" && + mobileFirstPopupReplaceWithoutMsrSetting === "false" && + mobileFirstPopupReplaceWithMsrSetting === "false") { + debugLog("MSR::: Mobile First Damage Popup settings are all false, using default check."); + return mobileFirstDaysCheck; + } + + if (isRepair) { + if (mobileFirstPopupRepairSetting === "true") { + debugLog("MSR::: Mobile First Popup Repair setting is true, showing mobile first appointment for repair."); + return mobileFirstDaysCheck; + } else { + debugLog("MSR::: Mobile First Popup Repair setting is false, not showing mobile first appointment for repair."); + return false; + } + } + + if (this.isMobileStaticRecalibrationApplicable) { + if (mobileFirstPopupReplaceWithMsrSetting === "true") { + debugLog("MSR::: Mobile First Popup Replace with MSR setting is true, showing mobile first appointment for replace with MSR."); + return mobileFirstDaysCheck; + } else { + debugLog("MSR::: Mobile First Popup Replace with MSR setting is false, not showing mobile first appointment for replace with MSR."); + return false; + } + } + + if (mobileFirstPopupReplaceWithoutMsrSetting === "true") { + debugLog("MSR::: Mobile First Popup Replace without MSR setting is true, showing mobile first appointment for replace without MSR."); + return mobileFirstDaysCheck; + } else { + debugLog("MSR::: Mobile First Popup Replace without MSR setting is false, not showing mobile first appointment for replace without MSR."); + return false; + } }; if (shouldExposeMobileFirstAppointment()) {