Merge branch 'develop' into CSR-2045-update-funnel-with-new-logo-and-typog
This commit is contained in:
commit
8c868a11df
11 changed files with 53 additions and 20 deletions
|
|
@ -108,6 +108,11 @@ export default {
|
||||||
required: false,
|
required: false,
|
||||||
default: true,
|
default: true,
|
||||||
},
|
},
|
||||||
|
useDefaultCashParentAccount: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
promoLinkText() {
|
promoLinkText() {
|
||||||
|
|
@ -188,7 +193,13 @@ export default {
|
||||||
resetModalButtonStyle() {
|
resetModalButtonStyle() {
|
||||||
this.modal.resetButtonStyle();
|
this.modal.resetButtonStyle();
|
||||||
},
|
},
|
||||||
async getPromoCodeData(promoCode, lineItems, addableVaps, pageNameToLog = null) {
|
async getPromoCodeData(
|
||||||
|
promoCode,
|
||||||
|
lineItems,
|
||||||
|
addableVaps,
|
||||||
|
useDefaultCashParentAccount,
|
||||||
|
pageNameToLog = null
|
||||||
|
) {
|
||||||
const pageName = pageNameToLog ?? this.$options?.name;
|
const pageName = pageNameToLog ?? this.$options?.name;
|
||||||
const promoValidationResponse = await baseMixin.methods.dispatchStoreActionWithLogging(
|
const promoValidationResponse = await baseMixin.methods.dispatchStoreActionWithLogging(
|
||||||
storeActions.VALIDATE_ORDER_PROMO_AND_SAVE_SERVER_DATA,
|
storeActions.VALIDATE_ORDER_PROMO_AND_SAVE_SERVER_DATA,
|
||||||
|
|
@ -196,6 +207,7 @@ export default {
|
||||||
promoCode: promoCode,
|
promoCode: promoCode,
|
||||||
lineItemsToUse: lineItems,
|
lineItemsToUse: lineItems,
|
||||||
addableVaps: addableVaps,
|
addableVaps: addableVaps,
|
||||||
|
useDefaultCashParentAccount: useDefaultCashParentAccount,
|
||||||
},
|
},
|
||||||
pageName,
|
pageName,
|
||||||
false
|
false
|
||||||
|
|
@ -261,6 +273,7 @@ export default {
|
||||||
this.promoCode,
|
this.promoCode,
|
||||||
this.lineItems,
|
this.lineItems,
|
||||||
this.addableVaps,
|
this.addableVaps,
|
||||||
|
this.useDefaultCashParentAccount,
|
||||||
this.pageName
|
this.pageName
|
||||||
);
|
);
|
||||||
if (promoCodeData.isValid) {
|
if (promoCodeData.isValid) {
|
||||||
|
|
@ -271,7 +284,8 @@ export default {
|
||||||
await baseMixin.methods.dispatchStoreActionWithLogging(
|
await baseMixin.methods.dispatchStoreActionWithLogging(
|
||||||
storeActions.TAX_ORDER_ITEMS_AND_SAVE_SERVER_DATA,
|
storeActions.TAX_ORDER_ITEMS_AND_SAVE_SERVER_DATA,
|
||||||
{
|
{
|
||||||
billToAccountNumber: "87291",
|
billToAccountNumber:
|
||||||
|
store.getters.order.payment.billToAccountNumber,
|
||||||
providerNumber:
|
providerNumber:
|
||||||
store.getters.order.serviceLocation.provider.providerNumber,
|
store.getters.order.serviceLocation.provider.providerNumber,
|
||||||
appointmentType:
|
appointmentType:
|
||||||
|
|
|
||||||
|
|
@ -105,16 +105,12 @@ export async function getImplicitNavigation(toRoute) {
|
||||||
Used to navigate to the heritage funnel with the correct query string and url.
|
Used to navigate to the heritage funnel with the correct query string and url.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export async function navigateToHeritageFunnel({ shouldSaveSession, pageNameToLog, loadingModal }) {
|
export async function navigateToHeritageFunnel({ shouldSaveSession, pageNameToLog }) {
|
||||||
// Create the order (or save existing order) when navigating to Heritage Funnel.
|
// Create the order (or save existing order) when navigating to Heritage Funnel.
|
||||||
if (shouldSaveSession) {
|
if (shouldSaveSession) {
|
||||||
await saveSession({ pageNameToLog: pageNameToLog, shouldAwaitSaveSessionQueue: true });
|
await saveSession({ pageNameToLog: pageNameToLog, shouldAwaitSaveSessionQueue: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loadingModal && loadingModal.showModal) {
|
|
||||||
loadingModal.showModal();
|
|
||||||
}
|
|
||||||
|
|
||||||
var heritageParms = {
|
var heritageParms = {
|
||||||
corid: store.getters.order.referralCorrelationId,
|
corid: store.getters.order.referralCorrelationId,
|
||||||
src: "concept-funnel",
|
src: "concept-funnel",
|
||||||
|
|
|
||||||
|
|
@ -554,7 +554,7 @@ describe("navigateToHeritageFunnel", () => {
|
||||||
router.navigateToExternalUrl = jest.fn();
|
router.navigateToExternalUrl = jest.fn();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
await navigateToHeritageFunnel({ loadingModal: null, shouldSaveSession: true });
|
await navigateToHeritageFunnel({ shouldSaveSession: true });
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
expect(saveSessionFunction).toHaveBeenCalled();
|
expect(saveSessionFunction).toHaveBeenCalled();
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,8 @@ export function removeVapsPromosFromPromoArray(promoArray) {
|
||||||
export async function revalidatePromosAndValidateQueryStringPromo(
|
export async function revalidatePromosAndValidateQueryStringPromo(
|
||||||
newPromo,
|
newPromo,
|
||||||
pricedLineItems,
|
pricedLineItems,
|
||||||
pageNameToLog
|
pageNameToLog,
|
||||||
|
useDefaultCashParentAccount = false
|
||||||
) {
|
) {
|
||||||
const hasActivePromos = store.getters.order.lineItems.promos;
|
const hasActivePromos = store.getters.order.lineItems.promos;
|
||||||
const hasInactivePromos = store.getters.payment.inactivePromos;
|
const hasInactivePromos = store.getters.payment.inactivePromos;
|
||||||
|
|
@ -114,7 +115,7 @@ export async function revalidatePromosAndValidateQueryStringPromo(
|
||||||
) {
|
) {
|
||||||
revalidatePromoResponse = await baseMixin.methods.dispatchStoreActionWithLogging(
|
revalidatePromoResponse = await baseMixin.methods.dispatchStoreActionWithLogging(
|
||||||
storeActions.REVALIDATE_ORDER_PROMOS_AND_SAVE_SERVER_DATA,
|
storeActions.REVALIDATE_ORDER_PROMOS_AND_SAVE_SERVER_DATA,
|
||||||
{},
|
{ useDefaultCashParentAccount },
|
||||||
pageNameToLog,
|
pageNameToLog,
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ import { storeActions } from "@/constants/store-actions";
|
||||||
import { storeMutations } from "@/constants/store-mutations";
|
import { storeMutations } from "@/constants/store-mutations";
|
||||||
import { navigationScenarios } from "@/router/router-constants/navigation-scenarios";
|
import { navigationScenarios } from "@/router/router-constants/navigation-scenarios";
|
||||||
import store from "@/store";
|
import store from "@/store";
|
||||||
import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper";
|
|
||||||
import { experimentSettings } from "@/constants/experiments";
|
import { experimentSettings } from "@/constants/experiments";
|
||||||
|
|
||||||
jest.mock("@/helpers/damage-helper", () => ({
|
jest.mock("@/helpers/damage-helper", () => ({
|
||||||
|
|
|
||||||
|
|
@ -264,7 +264,6 @@ export default {
|
||||||
navigateToHeritageFunnel({
|
navigateToHeritageFunnel({
|
||||||
shouldSaveSession: true,
|
shouldSaveSession: true,
|
||||||
pageNameToLog: "estimate",
|
pageNameToLog: "estimate",
|
||||||
loadingModal: this.$refs.loadingModal,
|
|
||||||
});
|
});
|
||||||
} else if (this.$store.getters.order.referralNumber?.length === 6) {
|
} else if (this.$store.getters.order.referralNumber?.length === 6) {
|
||||||
await this.navigateForwardWithSingleCarMatch();
|
await this.navigateForwardWithSingleCarMatch();
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,7 @@
|
||||||
:addableVaps="addableVaps"
|
:addableVaps="addableVaps"
|
||||||
pageName="quote"
|
pageName="quote"
|
||||||
:taxPromos="false"
|
:taxPromos="false"
|
||||||
|
:useDefaultCashParentAccount="true"
|
||||||
modalWidgetName="PromoModalWidget" />
|
modalWidgetName="PromoModalWidget" />
|
||||||
|
|
||||||
<textBlock
|
<textBlock
|
||||||
|
|
@ -188,7 +189,8 @@ export default {
|
||||||
await revalidatePromosAndValidateQueryStringPromo(
|
await revalidatePromosAndValidateQueryStringPromo(
|
||||||
promoCodeFromQueryString,
|
promoCodeFromQueryString,
|
||||||
pricingResults,
|
pricingResults,
|
||||||
"quote"
|
"quote",
|
||||||
|
true
|
||||||
);
|
);
|
||||||
// Sync local promos with any new promos added by validate/revalidate
|
// Sync local promos with any new promos added by validate/revalidate
|
||||||
lineItems.promos = store.getters.lineItems.promos ?? [];
|
lineItems.promos = store.getters.lineItems.promos ?? [];
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,6 @@ import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
|
||||||
import baseMixin from "@/mixins/base-mixin.js";
|
import baseMixin from "@/mixins/base-mixin.js";
|
||||||
import { storeActions } from "@/constants/store-actions";
|
import { storeActions } from "@/constants/store-actions";
|
||||||
import { settleAllPromises } from "@/helpers/layout-helper";
|
import { settleAllPromises } from "@/helpers/layout-helper";
|
||||||
import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper";
|
|
||||||
import { splitCopyOnCMSPlaceHolder } from "@/helpers/cms-content-helper";
|
import { splitCopyOnCMSPlaceHolder } from "@/helpers/cms-content-helper";
|
||||||
import {
|
import {
|
||||||
calcDaysBetweenDates,
|
calcDaysBetweenDates,
|
||||||
|
|
|
||||||
|
|
@ -458,13 +458,11 @@ export default {
|
||||||
navigateToHeritageFunnel({
|
navigateToHeritageFunnel({
|
||||||
shouldSaveSession: true,
|
shouldSaveSession: true,
|
||||||
pageNameToLog: currentPage,
|
pageNameToLog: currentPage,
|
||||||
loadingModal: self.$refs.loadingModal,
|
|
||||||
});
|
});
|
||||||
} else if (payment.isInsurance && payment.insuranceCoverage.isVerified) {
|
} else if (payment.isInsurance && payment.insuranceCoverage.isVerified) {
|
||||||
navigateToHeritageFunnel({
|
navigateToHeritageFunnel({
|
||||||
shouldSaveSession: true,
|
shouldSaveSession: true,
|
||||||
pageNameToLog: currentPage,
|
pageNameToLog: currentPage,
|
||||||
loadingModal: self.$refs.loadingModal,
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
self.$router.navigateWithSaving(
|
self.$router.navigateWithSaving(
|
||||||
|
|
|
||||||
|
|
@ -2357,7 +2357,15 @@ export const actions = {
|
||||||
// <lineItemsToUse> is an optional parameter if the lineItems in the store may not be up to date
|
// <lineItemsToUse> is an optional parameter if the lineItems in the store may not be up to date
|
||||||
async validateOrderPromoAndSaveServerData(
|
async validateOrderPromoAndSaveServerData(
|
||||||
context,
|
context,
|
||||||
{ payload: { promoCode, lineItemsToUse, addableVaps }, pageNameToLog }
|
{
|
||||||
|
payload: {
|
||||||
|
promoCode,
|
||||||
|
lineItemsToUse,
|
||||||
|
addableVaps,
|
||||||
|
useDefaultCashParentAccount = false,
|
||||||
|
},
|
||||||
|
pageNameToLog,
|
||||||
|
}
|
||||||
) {
|
) {
|
||||||
const order = context.getters.order;
|
const order = context.getters.order;
|
||||||
lineItemsToUse = lineItemsToUse ?? order.lineItems;
|
lineItemsToUse = lineItemsToUse ?? order.lineItems;
|
||||||
|
|
@ -2376,7 +2384,9 @@ export const actions = {
|
||||||
isRepair: order.damage.isRepair,
|
isRepair: order.damage.isRepair,
|
||||||
glassToReplace: renameGlassToReplaceAttributes(order.damage.glassToReplace),
|
glassToReplace: renameGlassToReplaceAttributes(order.damage.glassToReplace),
|
||||||
lineItemsOnOrder: getArrayOfAllLineItems(lineItemsToUse),
|
lineItemsOnOrder: getArrayOfAllLineItems(lineItemsToUse),
|
||||||
parentAccountNumber: order.payment.parentAccountNumber,
|
parentAccountNumber: useDefaultCashParentAccount
|
||||||
|
? applicationConfig.CASH_PARENT_ACCOUNT_NUMBER
|
||||||
|
: order.payment.parentAccountNumber,
|
||||||
referralSequenceNumber: order.referralSequenceNumber,
|
referralSequenceNumber: order.referralSequenceNumber,
|
||||||
serviceState: order.serviceLocation.state,
|
serviceState: order.serviceLocation.state,
|
||||||
serverData: order.lineItems.serverData,
|
serverData: order.lineItems.serverData,
|
||||||
|
|
@ -2413,7 +2423,15 @@ export const actions = {
|
||||||
// All payload parameters are optional - will use store data if not provided
|
// All payload parameters are optional - will use store data if not provided
|
||||||
async revalidateOrderPromosAndSaveServerData(
|
async revalidateOrderPromosAndSaveServerData(
|
||||||
context,
|
context,
|
||||||
{ payload: { activePromosToUse, inactivePromosToUse, lineItemsToUse }, pageNameToLog }
|
{
|
||||||
|
payload: {
|
||||||
|
activePromosToUse,
|
||||||
|
inactivePromosToUse,
|
||||||
|
lineItemsToUse,
|
||||||
|
useDefaultCashParentAccount = false,
|
||||||
|
},
|
||||||
|
pageNameToLog,
|
||||||
|
}
|
||||||
) {
|
) {
|
||||||
const order = context.getters.order;
|
const order = context.getters.order;
|
||||||
|
|
||||||
|
|
@ -2438,7 +2456,9 @@ export const actions = {
|
||||||
isRepair: order.damage.isRepair,
|
isRepair: order.damage.isRepair,
|
||||||
glassToReplace: renameGlassToReplaceAttributes(order.damage.glassToReplace),
|
glassToReplace: renameGlassToReplaceAttributes(order.damage.glassToReplace),
|
||||||
lineItemsOnOrder: getArrayOfAllLineItems(lineItemsToUse),
|
lineItemsOnOrder: getArrayOfAllLineItems(lineItemsToUse),
|
||||||
parentAccountNumber: order.payment.parentAccountNumber,
|
parentAccountNumber: useDefaultCashParentAccount
|
||||||
|
? applicationConfig.CASH_PARENT_ACCOUNT_NUMBER
|
||||||
|
: order.payment.parentAccountNumber,
|
||||||
referralSequenceNumber: order.referralSequenceNumber,
|
referralSequenceNumber: order.referralSequenceNumber,
|
||||||
serviceState: order.serviceLocation.state,
|
serviceState: order.serviceLocation.state,
|
||||||
serverData: order.lineItems.serverData,
|
serverData: order.lineItems.serverData,
|
||||||
|
|
|
||||||
|
|
@ -156,6 +156,11 @@ export default {
|
||||||
height: 0.75rem;
|
height: 0.75rem;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
&.drop-off-alert {
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
&.alert-dismissible {
|
&.alert-dismissible {
|
||||||
button {
|
button {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue