Merge pull request #1839 from Safelite/feature/CSR-1742-ajc

CSR-1742: refactor to centralize all insurance constants/helpers
This commit is contained in:
AdamCaouetteSafelite 2024-05-02 10:08:40 -04:00 committed by GitHub
commit 79456bab46
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 69 additions and 42 deletions

View file

@ -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 };

View file

@ -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;
}
}

View file

@ -1 +0,0 @@
export const payWithInsuranceStates = ["AZ", "CT", "FL", "KY", "MA", "MN", "NY", "SC"];

View file

@ -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) => {

View file

@ -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",

View file

@ -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));

View file

@ -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",

View file

@ -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,

View file

@ -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 {