From 6dec3371c2a7508965cfa6fa5ee46306fa62b28a Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Wed, 11 Oct 2023 14:06:21 -0400 Subject: [PATCH 1/9] Add pia to store --- src/constants/store-actions.js | 2 +- src/constants/store-mutations.js | 3 ++- src/layouts/payment-method/payment-method.vue | 16 +++++++++++++++- src/store/index.js | 19 ++++++++++++++----- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js index 288ceb67b..b37f0c249 100644 --- a/src/constants/store-actions.js +++ b/src/constants/store-actions.js @@ -77,7 +77,7 @@ const storeActions = { SAVE_MOLDING_QUESTION_ANSWERS: "saveMoldingQuestionAnswers", SAVE_CAPABILITY_QUESTION_ANSWERS: "saveCapabilityQuestionAnswers", SAVE_PAYMENT_TYPE: "savePaymentType", - SAVE_PAY_NOW_TYPE: "savePayNowType", + SAVE_PAYMENT_METHOD_CHOICE: "savePaymentMethodChoice", SAVE_PARENT_ACCOUNT_NUMBER: "saveParentAccountNumber", SAVE_SUPPORTING_ITEMS: "saveSupportingItems", SAVE_SUPPORTING_ITEMS_SUPPRESSING_STATE_RESETTING: diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index 632379de3..0ace57a7e 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -48,7 +48,8 @@ const storeMutations = { UPDATE_IS_INSURANCE: "updateIsInsurance", UPDATE_SAVED_SESSION_ID: "updateSavedSessionId", UPDATE_CRM_CUSTOMER_ID: "updateCrmCustomerId", - UPDATE_PAY_NOW_TYPE: "updatePayNowType", + UPDATE_IS_PIA: "updateIsPia", + UPDATE_PIA_TYPE: "updatePiaType", WORK_ORDER_NUMBER: "updateWorkOrderNumber", // EVENT BUS MUTATIONS diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index eac00fe15..26e8c52a5 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -161,7 +161,7 @@ export default { supportingItems: null, pricedGlassParts: null, displayPaypalAlert: this.getPaypalAlert(), - paymentMethodInternalModel: null, + paymentMethodInternalModel: this.getPaymentMethodFromStore(), }; }, methods: { @@ -220,6 +220,15 @@ export default { getPaypalAlert() { return store.getters.order.payment.piaErrorCode ? true : false; }, + getPaymentMethodFromStore() { + const isPia = store.getters.order.payment.isPia; + + if (isPia) { + return store.getters.order.payment.piaType; + } else { + return paymentMethods.LATER; + } + }, vapsItemsSelectedAction(vapsItemsSelected) { this.cartItems = vapsItemsSelected; }, @@ -246,6 +255,11 @@ export default { async forwardButtonAction() { this.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, null, false); this.dispatchStoreAction(this.storeActions.SAVE_WORK_ORDER_FLAG, true, false); + this.dispatchStoreAction( + this.storeActions.SAVE_PAYMENT_METHODS_CHOICE, + this.paymentMethod, + false + ); await submitWorkOrder({ pageNameToLog: "payment-method" }); this.$router.navigateWithoutSaving( this.navigationScenarios.CLICKED_FORWARD, diff --git a/src/store/index.js b/src/store/index.js index 2c2eb8492..d15c89209 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -21,6 +21,7 @@ import { militaryToTwelveHourTime, getDisplayTextForDurationLength, } from "@/layouts/schedule/helpers/schedule-helper"; +import { paymentMethods } from "@/constants/payment-method-constants"; import { getDateDifferenceInDays } from "@/helpers/date-helper"; // Export State @@ -92,7 +93,8 @@ const getDefaultState = () => { coverageStatus: null, }, parentAccountNumber: 0, - payNowType: "cc", + isPia: null, + piaType: null, piaErrorCode: null, }, schedule: { @@ -218,8 +220,11 @@ export const mutations = { updateIsInsurance(state, isInsurance) { state.order.payment.isInsurance = isInsurance; }, - updatePayNowType(state, payNowType) { - state.order.payment.payNowType = payNowType; + updateIsPia(state, isPia) { + state.order.payment.isPia = isPia; + }, + updatePiaType(state, piaType) { + state.order.payment.piaType = piaType; }, updatePiaErrorCode(state, piaErrorCode) { state.order.payment.piaErrorCode = piaErrorCode; @@ -1994,8 +1999,12 @@ export const actions = { context.commit(storeMutations.UPDATE_IS_INSURANCE, isInsurance); }, - savePayNowType(context, payNowType) { - context.commit(storeMutations.UPDATE_PAY_NOW_TYPE, payNowType); + savePaymentMethodChoice(context, paymentMethod) { + const isPia = paymentMethod !== paymentMethods.LATER; + + context.commit(storeMutations.UPDATE_IS_PIA, isPia); + + context.commit(storeMutations.UPDATE_PIA_TYPE, isPia ? paymentMethod : null); }, saveParentAccountNumber(context, parentAccountNumber) { From bf167c17be604a86b22dc2cd34ff00551d7967e2 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Fri, 13 Oct 2023 16:00:07 -0400 Subject: [PATCH 2/9] Patch to new store value --- src/layouts/payment-method/payment-method.vue | 3 ++- src/layouts/payment/payment.vue | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 2a0fe3c93..612d27cb6 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -271,6 +271,7 @@ export default { default: this.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, null, false); this.dispatchStoreAction(this.storeActions.SAVE_WORK_ORDER_FLAG, true, false); + this.dispatchStoreAction(storeActions.SAVE_PAYMENT_METHOD_CHOICE, this.paymentMethod, false); await submitWorkOrder({ pageNameToLog: "payment-method" }); this.$router.navigateWithoutSaving( this.navigationScenarios.CLICKED_FORWARD, @@ -292,7 +293,7 @@ export default { // since we're leaving the site for pia, clear any save session promises that we will not be able to resolve when we return await this.dispatchStoreAction(storeActions.RESET_SAVE_SESSION_PROMISE); - await this.dispatchStoreAction(storeActions.SAVE_PAY_NOW_TYPE, payNowType, false); + await this.dispatchStoreAction(storeActions.SAVE_PAYMENT_METHOD_CHOICE, this.paymentMethod, false); // make sure pia error codes are reset this.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, null, false); diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index 914a51df2..2349ff5cf 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -294,7 +294,7 @@ export default { : store.getters.order.serviceLocation.provider.address.zipCode; }, getPaymentType() { - return store.getters.order.payment.payNowType; + return store.getters.order.payment.piaType; }, getHeaderLine1() { if (!this.isPaypal()) { From 19dd003f8b835f756784df39e33390ea364cc973 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Fri, 13 Oct 2023 16:25:25 -0400 Subject: [PATCH 3/9] Don't autofill payment-method field if not defined in store --- src/layouts/payment-method/payment-method.vue | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 612d27cb6..7123a9267 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -228,6 +228,10 @@ export default { getPaymentMethodFromStore() { const isPia = store.getters.order.payment.isPia; + if (isPia === null || isPia === undefined) { + return null; + } + if (isPia) { return store.getters.order.payment.piaType; } else { @@ -271,7 +275,11 @@ export default { default: this.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, null, false); this.dispatchStoreAction(this.storeActions.SAVE_WORK_ORDER_FLAG, true, false); - this.dispatchStoreAction(storeActions.SAVE_PAYMENT_METHOD_CHOICE, this.paymentMethod, false); + this.dispatchStoreAction( + storeActions.SAVE_PAYMENT_METHOD_CHOICE, + this.paymentMethod, + false + ); await submitWorkOrder({ pageNameToLog: "payment-method" }); this.$router.navigateWithoutSaving( this.navigationScenarios.CLICKED_FORWARD, @@ -293,7 +301,11 @@ export default { // since we're leaving the site for pia, clear any save session promises that we will not be able to resolve when we return await this.dispatchStoreAction(storeActions.RESET_SAVE_SESSION_PROMISE); - await this.dispatchStoreAction(storeActions.SAVE_PAYMENT_METHOD_CHOICE, this.paymentMethod, false); + await this.dispatchStoreAction( + storeActions.SAVE_PAYMENT_METHOD_CHOICE, + this.paymentMethod, + false + ); // make sure pia error codes are reset this.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, null, false); From 119db4ade7e335be73953b37329ff281e8011782 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Fri, 13 Oct 2023 16:26:14 -0400 Subject: [PATCH 4/9] Remove unused constants --- src/constants/payment-method-constants.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/constants/payment-method-constants.js b/src/constants/payment-method-constants.js index 807e44c0e..e76724297 100644 --- a/src/constants/payment-method-constants.js +++ b/src/constants/payment-method-constants.js @@ -4,10 +4,4 @@ export const paymentMethods = { CREDIT_CARD: "CreditCard", PAYPAL: "Paypal", AFTERPAY: "Afterpay", -}; - -export const paymentTimes = { - NONE: null, - ADVANCE: "Advance", - LATER: "Later", -}; +}; \ No newline at end of file From 5e5a1ff58a98a051982947a5bd5481f1423dcfc3 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Fri, 13 Oct 2023 16:55:18 -0400 Subject: [PATCH 5/9] Make field required --- .../payment-method-question/payment-method-question.vue | 2 ++ src/layouts/payment-method/payment-method.vue | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/layouts/payment-method/payment-method-question/payment-method-question.vue b/src/layouts/payment-method/payment-method-question/payment-method-question.vue index 473e36114..1544cede7 100644 --- a/src/layouts/payment-method/payment-method-question/payment-method-question.vue +++ b/src/layouts/payment-method/payment-method-question/payment-method-question.vue @@ -8,6 +8,7 @@ :questionText="paymentMethodQuestionText" :answers="paymentMethodAnswerData" isRequired + :validationRules="validationRules" v-model="selectedMethod" textPosition="text-start" /> @@ -27,6 +28,7 @@ export default { }, props: { modelValue: String, + validationRules: String, }, methods: { getAnswersNullSafe(widgetName) { diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 7123a9267..071af5138 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -42,7 +42,8 @@ + v-model="paymentMethodInternalModel" + validationRules="option-required" /> Date: Fri, 13 Oct 2023 16:55:26 -0400 Subject: [PATCH 6/9] Formatting --- src/constants/payment-method-constants.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/constants/payment-method-constants.js b/src/constants/payment-method-constants.js index e76724297..0799f2b2a 100644 --- a/src/constants/payment-method-constants.js +++ b/src/constants/payment-method-constants.js @@ -4,4 +4,4 @@ export const paymentMethods = { CREDIT_CARD: "CreditCard", PAYPAL: "Paypal", AFTERPAY: "Afterpay", -}; \ No newline at end of file +}; From 5e2a07df2f3406c8083bf6eb4fa07f85486091a7 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 17 Oct 2023 10:08:34 -0400 Subject: [PATCH 7/9] Add subheader when pia disabled --- src/layouts/payment-method/payment-method.vue | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 071af5138..1136353d4 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -13,7 +13,16 @@ cmsWidgetName="VehicleBannerWidget" :displayGenericVehicleImage="false" /> - + + +

+ {{ noPiaDisclaimer }} +

+ +
+ + From 1e9d3f7a4d070eed77fb91cd8a80734bcb170e14 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 17 Oct 2023 10:57:19 -0400 Subject: [PATCH 8/9] Add payment-method resetting --- src/constants/store-mutations.js | 1 + .../add-vaps-modal-buttons/add-vaps-modal-buttons.vue | 4 ++-- src/store/index.js | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index f4a43e91f..f5f2ca432 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -69,6 +69,7 @@ const storeMutations = { RESET_SERVICE_LOCATION_PROVIDER: "resetServiceLocationProvider", RESET_SERVICE_LOCATION_MOBILE_ADDRESS: "resetServiceLocationMobileAddress", RESET_SCHEDULE: "resetSchedule", + RESET_PAYMENT_METHOD_CHOICE: "resetPaymentMethodChoice", // OTHER MUTATIONS UPDATE_PAGE_DATA: "updatePageData", diff --git a/src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue b/src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue index d894f2ee8..7549bb69b 100644 --- a/src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue +++ b/src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue @@ -93,8 +93,8 @@ export default { } if (this.showAddRainDefense) { const answer = getAnswer("ADD RAIN DEFENSE", this.answersCmsData); - answer.SubText = "+$" + this.rainDefensePrice; - answers.push(answer); + //answer.SubText = "+$" + this.rainDefensePrice; + //answers.push(answer); } return answers; diff --git a/src/store/index.js b/src/store/index.js index 639f9d77c..0b0f684eb 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -423,6 +423,10 @@ export const mutations = { state.order.serviceLocation.state = null; state.order.serviceLocation.isVehicleProtected = null; }, + resetPaymentMethodChoice(state) { + state.order.payment.isPia = null; + state.order.payment.piaType = null; + }, // Misc Mutations updateStateWithOrderInformation(state, sessionInformation) { state.order.referralNumber = sessionInformation.order.referralNumber; @@ -893,6 +897,7 @@ export const actions = { context.commit(storeMutations.RESET_SERVICE_LOCATION_PROVIDER); context.commit(storeMutations.RESET_SCHEDULE); + context.commit(storeMutations.RESET_PAYMENT_METHOD_CHOICE); }, resetState(context) { @@ -2017,6 +2022,8 @@ export const actions = { savePaymentType(context, isInsurance) { context.commit(storeMutations.UPDATE_IS_INSURANCE, isInsurance); + + context.commit(storeMutations.RESET_PAYMENT_METHOD_CHOICE); }, savePaymentMethodChoice(context, paymentMethod) { @@ -2294,6 +2301,7 @@ export const actions = { context.state.order.serviceLocation.appointmentType ) { context.commit(storeMutations.RESET_SCHEDULE); + context.commit(storeMutations.RESET_PAYMENT_METHOD_CHOICE); } } From db846e974c9a2e19c5aadbe03c00f6c406ed3f36 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 17 Oct 2023 11:43:57 -0400 Subject: [PATCH 9/9] Undo local fix --- .../add-vaps-modal-buttons/add-vaps-modal-buttons.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue b/src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue index 7549bb69b..d894f2ee8 100644 --- a/src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue +++ b/src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue @@ -93,8 +93,8 @@ export default { } if (this.showAddRainDefense) { const answer = getAnswer("ADD RAIN DEFENSE", this.answersCmsData); - //answer.SubText = "+$" + this.rainDefensePrice; - //answers.push(answer); + answer.SubText = "+$" + this.rainDefensePrice; + answers.push(answer); } return answers;