diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js
index 7a0d19c03..3e779e027 100644
--- a/src/constants/store-mutations.js
+++ b/src/constants/store-mutations.js
@@ -55,6 +55,7 @@ const storeMutations = {
WORK_ORDER_NUMBER: "updateWorkOrderNumber",
Customer_Portal_Login_Token: "updateCustomerPortalLoginToken",
LOCK_TOKEN: "updateLockToken",
+ UPDATE_SETTLED_TENDER_AMOUNT: "updateSettledTenderAmount",
// EVENT BUS MUTATIONS
ADD_EVENT_TO_BUS: "addEventToBus",
diff --git a/src/helpers/heritage-integration/order-helper.js b/src/helpers/heritage-integration/order-helper.js
index 79af9c432..e0873d822 100644
--- a/src/helpers/heritage-integration/order-helper.js
+++ b/src/helpers/heritage-integration/order-helper.js
@@ -164,6 +164,7 @@ async function saveSessionHelper(
workOrderNumber: savedSessionInfo.data.workOrderNumber,
customerPortalLoginToken: savedSessionInfo.data.customerPortalLoginToken,
lockToken: savedSessionInfo.data.lockToken,
+ settledTenderAmount: savedSessionInfo.data.settledTenderAmount,
},
false
);
diff --git a/src/helpers/promotions-helper.js b/src/helpers/promotions-helper.js
index 3968248d6..a592a6d9d 100644
--- a/src/helpers/promotions-helper.js
+++ b/src/helpers/promotions-helper.js
@@ -112,6 +112,7 @@ export async function revalidatePromosAndValidateQueryStringPromo(
pageNameToLog,
false
);
+
const revalidationErrorPromoCodes = revalidatePromoResponse.errors.map((x) => x.promoCode);
baseMixin.methods.dispatchStoreAction(
storeActions.SAVE_ACTIVE_AND_OR_INACTIVE_PROMOS,
@@ -122,6 +123,7 @@ export async function revalidatePromosAndValidateQueryStringPromo(
false
);
}
+
if (hasNewPromo) {
validatePromoResponse = await baseMixin.methods.dispatchStoreActionWithLogging(
storeActions.VALIDATE_ORDER_PROMO_AND_SAVE_SERVER_DATA,
@@ -132,6 +134,7 @@ export async function revalidatePromosAndValidateQueryStringPromo(
pageNameToLog,
false
);
+
if (validatePromoResponse.errorCode == null) {
// Save promo to store
const activePromos = store.getters.order.lineItems.promos ?? [];
diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue
index 32c36c161..32904b8ee 100644
--- a/src/layouts/confirmation/confirmation.vue
+++ b/src/layouts/confirmation/confirmation.vue
@@ -39,6 +39,7 @@
lineItem.partType == partTypeStrings.FRONT_WIPER
+ ).length > 0;
+
+ if (revalidateResponseHasFrontWiperLineItems) {
+ const frontWiperLineItemsInStore = this.lineItems.vaps.find(
+ (lineItem) => lineItem.partType == partTypeStrings.FRONT_WIPER
+ );
+ if (frontWiperLineItemsInStore.length > 0) {
+ this.lineItems.vaps = this.lineItems.vaps.find(
+ (lineItem) => lineItem.partType != partTypeStrings.FRONT_WIPER
+ );
+ }
+ }
+
+ const vapsToAddToCart = getVapsThatNeedToBeAddedToSatisfyPromos(
+ revalidatePromoResponse.promoLineItems,
+ this.availableVaps,
+ this.lineItems
+ );
+ this.lineItems.vaps.push(...vapsToAddToCart);
+
this.lineItems.promos = revalidatePromoResponse.promoLineItems;
this.inactivePromos = revalidatePromoResponse.errors.map((x) =>
getPromoCodeWithoutBundleIdentifier(x.promoCode)
diff --git a/src/layouts/vehicle/vehicle.vue b/src/layouts/vehicle/vehicle.vue
index 282133743..46c6a5b61 100644
--- a/src/layouts/vehicle/vehicle.vue
+++ b/src/layouts/vehicle/vehicle.vue
@@ -60,7 +60,7 @@
@@ -232,12 +232,14 @@ export default {
this.selectedMake = null;
this.selectedModel = null;
this.selectedStyle = null;
+ this.carId = null;
}
} else {
this.makeOptions = [];
this.selectedMake = null;
this.selectedModel = null;
this.selectedStyle = null;
+ this.carId = null;
}
},
async selectedMake(make) {
@@ -248,11 +250,13 @@ export default {
else {
this.selectedModel = null;
this.selectedStyle = null;
+ this.carId = null;
}
} else {
this.modelOptions = [];
this.selectedModel = null;
this.selectedStyle = null;
+ this.carId = null;
}
},
async selectedModel(model) {
@@ -269,10 +273,14 @@ export default {
if (sameStyle) {
this.getVehicleDetails();
}
- } else this.selectedStyle = null;
+ } else {
+ this.selectedStyle = null;
+ this.carId = null;
+ }
} else {
this.styleOptions = [];
this.selectedStyle = null;
+ this.carId = null;
}
},
async selectedStyle(style) {
@@ -280,6 +288,7 @@ export default {
this.getVehicleDetails();
} else {
this.imageUrl = null;
+ this.carId = null;
}
},
},
@@ -294,6 +303,15 @@ export default {
else if (this.imageUrl == null && this.carId !== null) return false;
else return true;
},
+ allDataRetrieved() {
+ return (
+ !!this.selectedYear &&
+ !!this.selectedMake &&
+ !!this.selectedModel &&
+ !!this.selectedStyle &&
+ !!this.carId
+ );
+ },
},
methods: {
getVehicle(year, make, model, style) {
diff --git a/src/router/index.js b/src/router/index.js
index 7769d8a2d..a20fe828f 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -172,6 +172,8 @@ router.beforeEach(async (to, from, next) => {
if (isInIframe && notToPIAReturn) {
const newUrl = `${window.top.location.origin}${to.href}`;
window.top.location.href = newUrl;
+ } else if (toQueryPage === fromQueryPage) {
+ router.go(0);
} else {
next();
}
diff --git a/src/store/index.js b/src/store/index.js
index a094a8a15..673c4dfa1 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -132,6 +132,7 @@ const getDefaultState = () => {
workOrderNumber: null,
customerPortalLoginToken: null,
lockToken: null,
+ settledTenderAmount: 0,
},
applicationUser: {
eventBus: [],
@@ -257,6 +258,9 @@ export const mutations = {
updateLockToken(state, lockToken) {
state.order.lockToken = lockToken;
},
+ updateSettledTenderAmount(state, settledTenderAmount) {
+ state.order.settledTenderAmount = settledTenderAmount;
+ },
updateCCToken(state, ccToken) {
state.order.payment.ccToken.subscriptionId = ccToken.subscriptionId;
state.order.payment.ccToken.expMonth = ccToken.expMonth;
@@ -1041,6 +1045,7 @@ export const actions = {
workOrderNumber,
customerPortalLoginToken,
lockToken,
+ settledTenderAmount,
}
) {
context.commit(storeMutations.UPDATE_REFERRAL_NUMBER, referralNumber);
@@ -1054,6 +1059,7 @@ export const actions = {
context.commit(storeMutations.WORK_ORDER_NUMBER, workOrderNumber);
context.commit(storeMutations.LOCK_TOKEN, lockToken);
context.commit(storeMutations.Customer_Portal_Login_Token, customerPortalLoginToken);
+ context.commit(storeMutations.UPDATE_SETTLED_TENDER_AMOUNT, settledTenderAmount);
},
logPageView(