diff --git a/src/fmg-components/promo-modal-question/promo-modal-question.vue b/src/fmg-components/promo-modal-question/promo-modal-question.vue index 59e4fccf4..cf5e52f21 100644 --- a/src/fmg-components/promo-modal-question/promo-modal-question.vue +++ b/src/fmg-components/promo-modal-question/promo-modal-question.vue @@ -108,6 +108,11 @@ export default { required: false, default: true, }, + useDefaultCashParentAccount: { + type: Boolean, + required: false, + default: false, + }, }, computed: { promoLinkText() { @@ -188,7 +193,13 @@ export default { resetModalButtonStyle() { 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 promoValidationResponse = await baseMixin.methods.dispatchStoreActionWithLogging( storeActions.VALIDATE_ORDER_PROMO_AND_SAVE_SERVER_DATA, @@ -196,6 +207,7 @@ export default { promoCode: promoCode, lineItemsToUse: lineItems, addableVaps: addableVaps, + useDefaultCashParentAccount: useDefaultCashParentAccount, }, pageName, false @@ -261,6 +273,7 @@ export default { this.promoCode, this.lineItems, this.addableVaps, + this.useDefaultCashParentAccount, this.pageName ); if (promoCodeData.isValid) { @@ -271,7 +284,8 @@ export default { await baseMixin.methods.dispatchStoreActionWithLogging( storeActions.TAX_ORDER_ITEMS_AND_SAVE_SERVER_DATA, { - billToAccountNumber: "87291", + billToAccountNumber: + store.getters.order.payment.billToAccountNumber, providerNumber: store.getters.order.serviceLocation.provider.providerNumber, appointmentType: diff --git a/src/helpers/promotions-helper.js b/src/helpers/promotions-helper.js index e8d5f4e8f..9155c2f61 100644 --- a/src/helpers/promotions-helper.js +++ b/src/helpers/promotions-helper.js @@ -98,7 +98,8 @@ export function removeVapsPromosFromPromoArray(promoArray) { export async function revalidatePromosAndValidateQueryStringPromo( newPromo, pricedLineItems, - pageNameToLog + pageNameToLog, + useDefaultCashParentAccount = false ) { const hasActivePromos = store.getters.order.lineItems.promos; const hasInactivePromos = store.getters.payment.inactivePromos; @@ -114,7 +115,7 @@ export async function revalidatePromosAndValidateQueryStringPromo( ) { revalidatePromoResponse = await baseMixin.methods.dispatchStoreActionWithLogging( storeActions.REVALIDATE_ORDER_PROMOS_AND_SAVE_SERVER_DATA, - {}, + { useDefaultCashParentAccount }, pageNameToLog, false ); diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 002c679f5..065d44e82 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -47,6 +47,7 @@ :addableVaps="addableVaps" pageName="quote" :taxPromos="false" + :useDefaultCashParentAccount="true" modalWidgetName="PromoModalWidget" /> is an optional parameter if the lineItems in the store may not be up to date async validateOrderPromoAndSaveServerData( context, - { payload: { promoCode, lineItemsToUse, addableVaps }, pageNameToLog } + { + payload: { + promoCode, + lineItemsToUse, + addableVaps, + useDefaultCashParentAccount = false, + }, + pageNameToLog, + } ) { const order = context.getters.order; lineItemsToUse = lineItemsToUse ?? order.lineItems; @@ -2376,7 +2384,9 @@ export const actions = { isRepair: order.damage.isRepair, glassToReplace: renameGlassToReplaceAttributes(order.damage.glassToReplace), lineItemsOnOrder: getArrayOfAllLineItems(lineItemsToUse), - parentAccountNumber: order.payment.parentAccountNumber, + parentAccountNumber: useDefaultCashParentAccount + ? applicationConfig.CASH_PARENT_ACCOUNT_NUMBER + : order.payment.parentAccountNumber, referralSequenceNumber: order.referralSequenceNumber, serviceState: order.serviceLocation.state, serverData: order.lineItems.serverData, @@ -2413,7 +2423,15 @@ export const actions = { // All payload parameters are optional - will use store data if not provided async revalidateOrderPromosAndSaveServerData( context, - { payload: { activePromosToUse, inactivePromosToUse, lineItemsToUse }, pageNameToLog } + { + payload: { + activePromosToUse, + inactivePromosToUse, + lineItemsToUse, + useDefaultCashParentAccount = false, + }, + pageNameToLog, + } ) { const order = context.getters.order; @@ -2438,7 +2456,9 @@ export const actions = { isRepair: order.damage.isRepair, glassToReplace: renameGlassToReplaceAttributes(order.damage.glassToReplace), lineItemsOnOrder: getArrayOfAllLineItems(lineItemsToUse), - parentAccountNumber: order.payment.parentAccountNumber, + parentAccountNumber: useDefaultCashParentAccount + ? applicationConfig.CASH_PARENT_ACCOUNT_NUMBER + : order.payment.parentAccountNumber, referralSequenceNumber: order.referralSequenceNumber, serviceState: order.serviceLocation.state, serverData: order.lineItems.serverData,