From f3166de125140c0cd29aeb4eec5da08152e0f776 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Tue, 20 Jan 2026 10:41:20 -0500 Subject: [PATCH] CASH-2186 CASSH-2186 when doing a zip change when the recal ack modal is in effect, will have to navigate back to service-zip so we can add any necessary recal parts. --- src/layouts/schedule/schedule.vue | 54 +++++++++++++++----- src/router/constants/navigation-scenarios.js | 1 + src/router/constants/routing-table.js | 4 ++ 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index a812ab5f6..b63e5fb21 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -1387,7 +1387,7 @@ export default { this.showRecalAcknowledgementPopup = false; }, async forwardButtonAction() { - const showRecalAcknowledgementModal = await this.showRecalAcknowledgementModal(); + const showRecalAcknowledgementModal = this.showRecalAcknowledgementModal(); if ( showRecalAcknowledgementModal && this.isRecalAcknowledgedForScheduling !== RECAL_ACK_YES @@ -1725,7 +1725,27 @@ export default { 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(); getShopProviderData(newZipCode.zipCode, this.pageName).then((result) => { @@ -1803,18 +1823,8 @@ export default { setSelectedDateToFirstAvailable() { this.selectedDate = this.getFirstAvailableDate(); }, - async showRecalAcknowledgementModal() { - const order = this.$store.getters.order; - 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 - ) { + showRecalAcknowledgementModal() { + if (this.shouldShowRecalAckModal()) { this.$refs.navbar.removeLoader(); this.$refs.recalAckModal.openModal(); return true; @@ -1823,6 +1833,22 @@ export default { this.closeRecalAcknowledgementPopup(); 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() { if (!this.selectedRouteCodeData?.routeCode) { const pmMobileDays = experimentMixin.methods.getSettingValue( diff --git a/src/router/constants/navigation-scenarios.js b/src/router/constants/navigation-scenarios.js index c2247d59b..0d0ee836f 100644 --- a/src/router/constants/navigation-scenarios.js +++ b/src/router/constants/navigation-scenarios.js @@ -57,6 +57,7 @@ const navigationScenarios = { // Schedule CLICKED_CHANGE_LOCATION: "CLICKED_CHANGE_LOCATION", + ZIP_CODE_CHANGED_RECAL_ACK: "ZIP_CODE_CHANGED_RECAL_ACK", // Payment CLICKED_INSURANCE: "CLICKED_INSURANCE", diff --git a/src/router/constants/routing-table.js b/src/router/constants/routing-table.js index 192e1572e..562615591 100644 --- a/src/router/constants/routing-table.js +++ b/src/router/constants/routing-table.js @@ -486,6 +486,10 @@ const routingTable = function () { scenario: navigationScenarios.CLICKED_FORWARD_WITH_MOBILE_SERVICE, destinationPageData: routeData.MOBILE_DETAILS, }, + { + scenario: navigationScenarios.ZIP_CODE_CHANGED_RECAL_ACK, + destinationPageData: routeData.SERVICE_ZIP, + }, ], }, {