Merge branch 'release/2026.01.22' into rlsmerge/2026.01.22-to-2026.01.29
This commit is contained in:
commit
5e5bdbe993
5 changed files with 103 additions and 16 deletions
|
|
@ -12,6 +12,9 @@ const experimentSettings = {
|
||||||
SUPPRESS_VIN_CAPTURE: "SuppressVinCapture",
|
SUPPRESS_VIN_CAPTURE: "SuppressVinCapture",
|
||||||
DISPLAY_AVAILABILITY_INDICATORS: "DisplayAvailabilityIndicators",
|
DISPLAY_AVAILABILITY_INDICATORS: "DisplayAvailabilityIndicators",
|
||||||
PIA_EXPERIENCE: "PIA Experience",
|
PIA_EXPERIENCE: "PIA Experience",
|
||||||
|
CONDITIONAL_PROVIDER_NUMBERS: "ConditionalProviderNumbers",
|
||||||
|
CONDITIONAL_PROVIDER_NUMBERS_2: "ConditionalProviderNumbers2",
|
||||||
|
CONDITIONAL_PROVIDER_SHUTOFF_DATE: "ConditionalProviderShutoffDate",
|
||||||
PIA_INSURANCE: "DisplayPIAInsurance",
|
PIA_INSURANCE: "DisplayPIAInsurance",
|
||||||
SUBMIT_ORDER_ENABLE_PIA: "SubmitOrder_Enable_PIA",
|
SUBMIT_ORDER_ENABLE_PIA: "SubmitOrder_Enable_PIA",
|
||||||
IS_EMAIL_OPTIONAL: "isEmailOptional",
|
IS_EMAIL_OPTIONAL: "isEmailOptional",
|
||||||
|
|
|
||||||
|
|
@ -609,6 +609,19 @@ export default {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const billToAccountNumber = await baseMixin.methods.dispatchStoreActionWithLogging(
|
||||||
|
storeActions.GET_BILL_TO_ACCOUNT_NUMBER,
|
||||||
|
{},
|
||||||
|
"payment-method",
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
baseMixin.methods.dispatchStoreAction(
|
||||||
|
storeActions.SAVE_BILL_TO_ACCOUNT_NUMBER,
|
||||||
|
billToAccountNumber,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
this.dispatchStoreAction(storeActions.RESET_SAVE_SESSION_PROMISE);
|
this.dispatchStoreAction(storeActions.RESET_SAVE_SESSION_PROMISE);
|
||||||
|
|
||||||
const shouldUseAdyen = experimentMixin.methods.hasSettingEqualTo(
|
const shouldUseAdyen = experimentMixin.methods.hasSettingEqualTo(
|
||||||
|
|
@ -810,11 +823,51 @@ export default {
|
||||||
const piaInsurance = this.getSettingValue(experimentSettings.PIA_INSURANCE);
|
const piaInsurance = this.getSettingValue(experimentSettings.PIA_INSURANCE);
|
||||||
|
|
||||||
if (this.isInsurance) {
|
if (this.isInsurance) {
|
||||||
return piaInsurance === "true" && this.currentDeductible > 0;
|
return (
|
||||||
|
(piaInsurance === "true" || this.isConditionalPIAEnabled) &&
|
||||||
|
this.currentDeductible > 0
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
return piaExperience === "PIA Optional" || piaExperience === "PIA Required";
|
if (piaExperience?.includes("PIA Disabled")) {
|
||||||
|
return this.isConditionalPIAEnabled;
|
||||||
|
} else {
|
||||||
|
return piaExperience === "PIA Optional" || piaExperience === "PIA Required";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
isConditionalPIAEnabled() {
|
||||||
|
const conditionalProviderNumbers = this.getSettingValue(
|
||||||
|
experimentSettings.CONDITIONAL_PROVIDER_NUMBERS
|
||||||
|
);
|
||||||
|
const conditionalProviderNumbers2 = this.getSettingValue(
|
||||||
|
experimentSettings.CONDITIONAL_PROVIDER_NUMBERS_2
|
||||||
|
);
|
||||||
|
const conditionalProviderShutoffDate = this.getSettingValue(
|
||||||
|
experimentSettings.CONDITIONAL_PROVIDER_SHUTOFF_DATE
|
||||||
|
);
|
||||||
|
|
||||||
|
const allConditionalProviderNumbers = [
|
||||||
|
conditionalProviderNumbers,
|
||||||
|
conditionalProviderNumbers2,
|
||||||
|
]
|
||||||
|
.filter(Boolean)
|
||||||
|
.join(",");
|
||||||
|
const providerNumber =
|
||||||
|
this.$store.getters.order.serviceLocation.provider.providerNumber;
|
||||||
|
const appointmentDate = new Date(this.$store.getters.order.schedule.date);
|
||||||
|
const shutoffDate = new Date(conditionalProviderShutoffDate);
|
||||||
|
if (allConditionalProviderNumbers && conditionalProviderShutoffDate) {
|
||||||
|
const providerNumbersArray = allConditionalProviderNumbers
|
||||||
|
.split(",")
|
||||||
|
.map((num) => num.trim());
|
||||||
|
if (!providerNumbersArray.includes(providerNumber)) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return appointmentDate <= shutoffDate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
paymentMethod() {
|
paymentMethod() {
|
||||||
if (!this.isPiaEnabled) {
|
if (!this.isPiaEnabled) {
|
||||||
return paymentMethods.LATER;
|
return paymentMethods.LATER;
|
||||||
|
|
|
||||||
|
|
@ -1368,7 +1368,7 @@ export default {
|
||||||
this.showRecalAcknowledgementPopup = false;
|
this.showRecalAcknowledgementPopup = false;
|
||||||
},
|
},
|
||||||
async forwardButtonAction() {
|
async forwardButtonAction() {
|
||||||
const showRecalAcknowledgementModal = await this.showRecalAcknowledgementModal();
|
const showRecalAcknowledgementModal = this.showRecalAcknowledgementModal();
|
||||||
if (
|
if (
|
||||||
showRecalAcknowledgementModal &&
|
showRecalAcknowledgementModal &&
|
||||||
this.isRecalAcknowledgedForScheduling !== RECAL_ACK_YES
|
this.isRecalAcknowledgedForScheduling !== RECAL_ACK_YES
|
||||||
|
|
@ -1706,7 +1706,27 @@ export default {
|
||||||
this.selectedProvider = this.shopProviderData.shopProviders[0];
|
this.selectedProvider = this.shopProviderData.shopProviders[0];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleZipCodeChange(newZipCode) {
|
async handleZipCodeChange(newZipCode) {
|
||||||
|
// if we were showing the recal ack modal and now are changing the zip, we need to navigate
|
||||||
|
// to service-zip so we can get call parts again to add the recal part if needed
|
||||||
|
if (this.shouldShowRecalAckModal()) {
|
||||||
|
await baseMixin.methods.dispatchStoreAction(
|
||||||
|
storeActions.SAVE_SERVICE_ZIP_CODE_INFO,
|
||||||
|
{
|
||||||
|
zipCode: newZipCode.zipCode,
|
||||||
|
state: newZipCode.state,
|
||||||
|
zipCodeCtu: newZipCode.zipCodeCtu,
|
||||||
|
},
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
this.$router.navigateWithSaving(
|
||||||
|
this.navigationScenarios.ZIP_CODE_CHANGED_RECAL_ACK,
|
||||||
|
this.pageName
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.resetMobileLocation();
|
this.resetMobileLocation();
|
||||||
|
|
||||||
getShopProviderData(newZipCode.zipCode, this.pageName).then((result) => {
|
getShopProviderData(newZipCode.zipCode, this.pageName).then((result) => {
|
||||||
|
|
@ -1783,18 +1803,8 @@ export default {
|
||||||
setSelectedDateToFirstAvailable() {
|
setSelectedDateToFirstAvailable() {
|
||||||
this.selectedDate = this.getFirstAvailableDate();
|
this.selectedDate = this.getFirstAvailableDate();
|
||||||
},
|
},
|
||||||
async showRecalAcknowledgementModal() {
|
showRecalAcknowledgementModal() {
|
||||||
const order = this.$store.getters.order;
|
if (this.shouldShowRecalAckModal()) {
|
||||||
const containsRecalPart = containsRecalParts(order.lineItems);
|
|
||||||
const hasPartWithRecalRequirement = anyPartWithRequiresRecalFlag(order.lineItems);
|
|
||||||
|
|
||||||
// if any of the glass parts contain an item with the requiresRecalibration flag set to true
|
|
||||||
// and the order does not contain a recalibration part, show the recalibration acknowledgement modal
|
|
||||||
if (
|
|
||||||
!containsRecalPart &&
|
|
||||||
hasPartWithRecalRequirement &&
|
|
||||||
this.isRecalAcknowledgedForScheduling !== RECAL_ACK_YES
|
|
||||||
) {
|
|
||||||
this.$refs.navbar.removeLoader();
|
this.$refs.navbar.removeLoader();
|
||||||
this.$refs.recalAckModal.openModal();
|
this.$refs.recalAckModal.openModal();
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -1803,6 +1813,22 @@ export default {
|
||||||
this.closeRecalAcknowledgementPopup();
|
this.closeRecalAcknowledgementPopup();
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
shouldShowRecalAckModal() {
|
||||||
|
// if any of the glass parts contain an item with the requiresRecalibration flag set to true
|
||||||
|
// and the order does not contain a recalibration part, show the recalibration acknowledgement modal
|
||||||
|
const order = this.$store.getters.order;
|
||||||
|
const containsRecalPart = containsRecalParts(order.lineItems);
|
||||||
|
const hasPartWithRecalRequirement = anyPartWithRequiresRecalFlag(order.lineItems);
|
||||||
|
|
||||||
|
if (
|
||||||
|
!containsRecalPart &&
|
||||||
|
hasPartWithRecalRequirement &&
|
||||||
|
this.isRecalAcknowledgedForScheduling !== RECAL_ACK_YES
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
async showMobileFirstModal() {
|
async showMobileFirstModal() {
|
||||||
if (!this.selectedRouteCodeData?.routeCode) {
|
if (!this.selectedRouteCodeData?.routeCode) {
|
||||||
const pmMobileDays = experimentMixin.methods.getSettingValue(
|
const pmMobileDays = experimentMixin.methods.getSettingValue(
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ const navigationScenarios = {
|
||||||
|
|
||||||
// Schedule
|
// Schedule
|
||||||
CLICKED_CHANGE_LOCATION: "CLICKED_CHANGE_LOCATION",
|
CLICKED_CHANGE_LOCATION: "CLICKED_CHANGE_LOCATION",
|
||||||
|
ZIP_CODE_CHANGED_RECAL_ACK: "ZIP_CODE_CHANGED_RECAL_ACK",
|
||||||
|
|
||||||
// Payment
|
// Payment
|
||||||
CLICKED_INSURANCE: "CLICKED_INSURANCE",
|
CLICKED_INSURANCE: "CLICKED_INSURANCE",
|
||||||
|
|
|
||||||
|
|
@ -486,6 +486,10 @@ const routingTable = function () {
|
||||||
scenario: navigationScenarios.CLICKED_FORWARD_WITH_MOBILE_SERVICE,
|
scenario: navigationScenarios.CLICKED_FORWARD_WITH_MOBILE_SERVICE,
|
||||||
destinationPageData: routeData.MOBILE_DETAILS,
|
destinationPageData: routeData.MOBILE_DETAILS,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
scenario: navigationScenarios.ZIP_CODE_CHANGED_RECAL_ACK,
|
||||||
|
destinationPageData: routeData.SERVICE_ZIP,
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue