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.
This commit is contained in:
CarlNation 2026-01-20 10:41:20 -05:00
parent 6b6001ab43
commit f3166de125
3 changed files with 45 additions and 14 deletions

View file

@ -1387,7 +1387,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
@ -1725,7 +1725,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) => {
@ -1803,18 +1823,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;
@ -1823,6 +1833,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(

View file

@ -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",

View file

@ -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,
},
], ],
}, },
{ {