diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 688d98b8a..6106e4008 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -628,13 +628,16 @@ export default { }, showInsuranceCoverageAs() { if (!this.isInsurance) return null; + if (this.isNoComp || this.isItac) { return coverageStatus.NOCOMP; - } else { - return this.hasSubmittedOrder() - ? this.getSubmittedOrder()?.payment.insuranceCoverage.coverageStatus - : this.$store.getters.payment.insuranceCoverage.coverageStatus; } + + if (this.$store.getters.coverageIsVerified) { + return coverageStatus.VERIFIED; + } + + return coverageStatus.PENDING; }, currentDeductible() { return this.hasSubmittedOrder() diff --git a/src/mixins/base-mixin.js b/src/mixins/base-mixin.js index 77cd2812b..e30663fea 100644 --- a/src/mixins/base-mixin.js +++ b/src/mixins/base-mixin.js @@ -145,18 +145,30 @@ export default { includeTax ); } + if (lineItems.supportingItems) { amountDue += this.getTotalPriceOfAllLineItemsAndChildParts( lineItems.supportingItems, includeTax ); } + + const order = this.hasSubmittedOrder() ? this.getSubmittedOrder() : store.getters.order; + if ( + store.getters.coverageIsVerified && + !order.policy.isNoComp && + !order.policy.isItac + ) { + amountDue = order.policy.currentDeductible; + } + if (lineItems.vaps) { amountDue += this.getTotalPriceOfAllLineItemsAndChildParts( lineItems.vaps, includeTax ); } + if (lineItems.promos) { amountDue += this.getTotalPriceOfAllLineItemsAndChildParts( lineItems.promos, @@ -164,16 +176,6 @@ export default { ); } - const order = this.hasSubmittedOrder() ? this.getSubmittedOrder() : store.getters.order; - - if ( - order.payment.insuranceCoverage.isVerified && - !order.policy.isNoComp && - !order.policy.isItac - ) { - amountDue = order.policy.currentDeductible; - } - return ((amountDue * 100) / 100).toFixed(2); }, getSubTotal(lineItems) { diff --git a/src/store/index.js b/src/store/index.js index 2b07d1dc1..29289db6e 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -775,6 +775,24 @@ export const getters = { ); return !!nonWindshieldItems?.length; }, + coverageIsVerified: (state) => { + let order; + if (window.sessionStorage.getItem("submittedOrder") !== null) { + order = JSON.parse(window.sessionStorage.getItem("submittedOrder")); + } else { + order = state.order; + } + + if ( + order.payment?.insuranceCoverage?.isVerified && + order.policy?.currentDeductible != 9999 && + order.policy?.currentDeductible != 7777 + ) { + return true; + } + + return false; + }, isMobileAppointment: (state) => { return state.order.serviceLocation.appointmentType === AppointmentTypeStrings.MOBILE; }, @@ -900,13 +918,13 @@ export const getters = { isVerifiedAndDeductibleZeroConfirmed: (state) => { // used as a CMS variable on /payment-method, needed for FunnelSubHeaderWidget on cart pages if ( - (state.order.policy.currentDeductible === 0 || - state.order.policy.currentDeductible > 0) && - state.order.payment.insuranceCoverage.coverageStatus === coverageStatus.VERIFIED && + state.order.policy.currentDeductible === 0 && + getters.coverageIsVerified(state) && !state.order.policy.isNoComp ) { return true; } + return false; }, requiresVerifiedRedirecting: (state) => {