diff --git a/src/constants/coverage-status.js b/src/constants/coverage-status.js deleted file mode 100644 index 1c75c00a6..000000000 --- a/src/constants/coverage-status.js +++ /dev/null @@ -1,20 +0,0 @@ -const coverageStatus = { - PENDING: "Pending", - NOCOMP: "NoComp", - VERIFIED: "Verified", -}; - -export function coverageStatusValue(intCoverageStatus) { - switch (intCoverageStatus) { - case 0: - return coverageStatus.PENDING; - case 1: - return coverageStatus.NOCOMP; - case 2: - return coverageStatus.VERIFIED; - default: - return null; - } -} - -export { coverageStatus }; diff --git a/src/constants/insurance.js b/src/constants/insurance.js new file mode 100644 index 000000000..2574fdbc6 --- /dev/null +++ b/src/constants/insurance.js @@ -0,0 +1,30 @@ +import { cartItemTypes } from "@/constants/cart-item-types"; + +export const payWithInsuranceStates = ["AZ", "CT", "FL", "KY", "MA", "MN", "NY", "SC"]; + +export const cartItemTypesCoveredByInsurance = [ + cartItemTypes.GLASS_PARTS, + cartItemTypes.SUPPORTING_ITEMS, + cartItemTypes.RECYCLE_FEE, + cartItemTypes.REPLACE_FEE, + cartItemTypes.SUPPLIES_REPAIR, +]; + +export const coverageStatus = { + PENDING: "Pending", + NOCOMP: "NoComp", + VERIFIED: "Verified", +}; + +export function coverageStatusValue(intCoverageStatus) { + switch (intCoverageStatus) { + case 0: + return coverageStatus.PENDING; + case 1: + return coverageStatus.NOCOMP; + case 2: + return coverageStatus.VERIFIED; + default: + return null; + } +} diff --git a/src/constants/pay-with-insurance-states.js b/src/constants/pay-with-insurance-states.js deleted file mode 100644 index e65589557..000000000 --- a/src/constants/pay-with-insurance-states.js +++ /dev/null @@ -1 +0,0 @@ -export const payWithInsuranceStates = ["AZ", "CT", "FL", "KY", "MA", "MN", "NY", "SC"]; diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index a5df47da1..d231862fa 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -177,7 +177,7 @@ import { getPromoCodeWithoutBundleIdentifier } from "@/helpers/promotions-helper import { partTypeStrings } from "@/constants/part-type-strings"; import { cartItemCategories } from "@/constants/cart-item-categories"; import { cartItemTypes } from "@/constants/cart-item-types"; -import { coverageStatus } from "@/constants/coverage-status"; +import { coverageStatus, cartItemTypesCoveredByInsurance } from "@/constants/insurance"; export default { name: "cart", @@ -520,7 +520,9 @@ export default { subTotal: 0, salesTax: 0, lineItems: [], - isCoveredByInsurance: false, + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.FRONT_WIPERS + ), }; frontWiperLineItems.forEach((lineItem) => { @@ -558,7 +560,9 @@ export default { subTotal: 0, salesTax: 0, lineItems: [], - isCoveredByInsurance: false, + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.REAR_WIPERS + ), }; rearWiperLineItems.forEach((lineItem) => { @@ -596,7 +600,9 @@ export default { subTotal: 0, salesTax: 0, lineItems: [], - isCoveredByInsurance: false, + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.RAIN_DEFENSE + ), }; rainDefenseLineItem.cartItemType = cartItem.cartItemType; @@ -617,7 +623,7 @@ export default { if (this.glassParts.length > 0) { this.glassParts.forEach((lineItem) => { - let glassPartCartItem = { + let cartItem = { name: null, category: cartItemCategories.GLASS_PARTS, cartItemType: cartItemTypes.GLASS_PARTS, @@ -627,24 +633,25 @@ export default { (lineItem.kitPrice ?? 0) + (lineItem.laborAmount ?? 0) + (lineItem.sellingPrice ?? 0), - salesTax: lineItem.salesTax ?? 0, lineItems: [], - isCoveredByInsurance: true, + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.GLASS_PARTS + ), }; if (lineItem.childParts?.length > 0) { lineItem.childParts.forEach((childPartLineItem) => { - glassPartCartItem.subTotal += + cartItem.subTotal += (childPartLineItem.kitPrice ?? 0) + (childPartLineItem.laborAmount ?? 0) + (childPartLineItem.sellingPrice ?? 0); - glassPartCartItem.salesTax += childPartLineItem.salesTax; + cartItem.salesTax += childPartLineItem.salesTax; }); } - glassPartCartItems.push(glassPartCartItem); + glassPartCartItems.push(cartItem); }); } @@ -670,7 +677,9 @@ export default { subTotal: 0, salesTax: 0, lineItems: [], - isCoveredByInsurance: true, + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.REPLACE_FEE + ), }; recycleFeeLineItem.cartItemType = cartItem.cartItemType; @@ -708,7 +717,9 @@ export default { subTotal: 0, salesTax: 0, lineItems: [], - isCoveredByInsurance: true, + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.SUPPLIES_REPAIR + ), }; suppliesRepairLineItem.cartItemType = cartItem.cartItemType; @@ -744,7 +755,9 @@ export default { subTotal: 0, salesTax: 0, lineItems: [], - isCoveredByInsurance: false, + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.MOBILE_FEE + ), }; mobileFeeLineItem.cartItemType = cartItem.cartItemType; @@ -778,7 +791,9 @@ export default { subTotal: 0, salesTax: 0, lineItems: [], - isCoveredByInsurance: true, + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.SUPPORTING_ITEMS + ), }; otherSupportingItemsLineItems.forEach((lineItem) => { @@ -816,7 +831,9 @@ export default { subTotal: 0, salesTax: 0, lineItems: [], - isCoveredByInsurance: false, + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.EARLY_BIRD + ), }; premiumAppointmentDiscountLineItem.cartItemType = cartItem.cartItemType; @@ -862,7 +879,7 @@ export default { subTotal: 0, salesTax: 0, lineItems: [], - isCoveredByInsurance: false, + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes(promoCode), }; promoLineItems.forEach((promoLineItem) => { diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index 1947bec22..39da072a3 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -96,7 +96,7 @@ import { convertDateStringToDate } from "@/layouts/schedule/helpers/schedule-hel import { deepClone } from "@/helpers/object-helper"; import { Form } from "vee-validate"; import { get12HourTimeFormat, get12HourTimeMobileFormat } from "@/helpers/date-helper"; -import { coverageStatus } from "@/constants/coverage-status"; +import { coverageStatus } from "@/constants/insurance"; export default { name: "confirmation", diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 07414ae7d..f3ada1154 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -113,7 +113,7 @@ import { errorMessages } from "@/constants/error-messages"; import { AppointmentTypeStrings } from "@/constants/schedule-constants"; import { partTypeStrings } from "@/constants/part-type-strings"; import { mapTaxedLineItemsToStoreFormat } from "../../store"; -import { coverageStatus } from "@/constants/coverage-status"; +import { coverageStatus } from "@/constants/insurance"; defineRule("option-required", required(errorMessages.OPTION_REQUIRED)); diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index 90378efea..e21780181 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -224,7 +224,7 @@ import { deepClone } from "@/helpers/object-helper"; import { submitWorkOrder } from "@/helpers/heritage-integration/order-helper.js"; import iframeResize from "../../../node_modules/iframe-resizer/js/iframeResizer.js"; import { routerParams } from "@/router/router-constants/router-params"; -import { coverageStatus } from "@/constants/coverage-status"; +import { coverageStatus } from "@/constants/insurance"; export default { name: "payment", diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 065d44e82..c9ddd2f89 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -96,7 +96,7 @@ import { required } from "@/helpers/validation-rules"; import { errorMessages } from "@/constants/error-messages"; import { Form, defineRule } from "vee-validate"; import { applicationConfig } from "@/constants/application-config"; -import { payWithInsuranceStates } from "@/constants/pay-with-insurance-states"; +import { payWithInsuranceStates } from "@/constants/insurance"; import { revalidatePromosAndValidateQueryStringPromo, buildToastMessagesFromRevalidateOrValidatePromoResponse, diff --git a/src/store/index.js b/src/store/index.js index 372ea28d5..4c0766448 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -33,7 +33,8 @@ import { } from "@/helpers/promotions-helper"; import { getDateDifferenceInDays } from "@/helpers/date-helper"; import sharedMutations from "./vuex-shared-mutations/vuexSharedMutations"; -import { coverageStatus, coverageStatusValue } from "@/constants/coverage-status"; +import { coverageStatus, coverageStatusValue } from "@/constants/insurance"; + // Export State const getDefaultState = () => { return {