diff --git a/src/store/paymentStore.js b/src/store/paymentStore.js deleted file mode 100644 index 21a74436..00000000 --- a/src/store/paymentStore.js +++ /dev/null @@ -1,105 +0,0 @@ -import { defineStore } from 'pinia'; -import { endpoints } from '@/constants/endpoints'; -import globalMethods from '@/global-methods'; -import applicationConfig from '@/constants/application-config'; -import coverageStatuses from '@/constants/coverage-statuses'; -import { useMainStore } from '@/store'; - -const paymentStoreId = 'payment'; - -function getLineItemQueryStringForPricing(lineItems) { - return lineItems.map((lineItem, index) => { - let queryStringSnippet = `&LineItems[${index}].partNumber=${lineItem.partNumber}`; - if (lineItem.childParts) { - queryStringSnippet += getLineItemQueryStringForPricing(lineItem.childParts); - } - - return queryStringSnippet; - }).join(''); -} - -function getPricedLineItems(lineItems, pricingLineItems) { - return lineItems.map((lineItem) => { - const updatedLineItem = lineItem; - updatedLineItem.childParts = lineItem.childParts.map((childItem) => getPricedLineItems(childItem, pricingLineItems)); - - const lineItemIndex = pricingLineItems.findIndex((pricingLineItem) => pricingLineItem.partNumber === lineItem.partNumber); - - if (lineItemIndex > -1) { - const pricedLineItem = pricingLineItems[lineItemIndex]; - updatedLineItem.laborAmount = pricedLineItem.laborAmount; - updatedLineItem.sellingPrice = pricedLineItem.sellingPrice; - updatedLineItem.kitPrice = pricedLineItem.kitPrice; - } - return updatedLineItem; - }); -} - -const usePaymentStore = defineStore({ - id: paymentStoreId, - state: () => ({ - deductible: null, - coverageStatus: coverageStatuses.PENDING, - isITAC: false, - isNoComp: false, - baseServiceLineItems: null, - supportingItems: null - }), - getters: {}, - actions: { - setBaseServiceLineItems() { - this.baseServiceLineItems = []; - }, - async getPriceOrderItems(availableLineItems) { - const { zipCode, zipCodeCtu } = useMainStore().order.serviceLocation; - const availableLineItemsFormattedForRequest = getLineItemQueryStringForPricing(availableLineItems); - const deductibleToUse = this.currentDeductible ?? 0; - - let queryString = - `ParentAccountNumber=${useMainStore().order.accountNumber}` - + `&CTU=${zipCodeCtu}` - + `&Deductible=${deductibleToUse}` - + `&ZipCode=${zipCode}` - + `${availableLineItemsFormattedForRequest}`; - - const lineItemServerData = useMainStore().lineItems?.serverData; - queryString += lineItemServerData ? `&ServerData=${encodeURIComponent(lineItemServerData)}` : ''; - - const response = await globalMethods - .callHttpClient({ - method: endpoints.GetInsurancePriceOrderItems.method, - endpoint: `${endpoints.GetInsurancePriceOrderItems.url}?${queryString}` - }).catch((error) => { - console.error(error); - throw error; - }); - - if (response.data?.lineItems) { - const returnedAvailableLineItems = getPricedLineItems(availableLineItems, response.data.lineItems); - return returnedAvailableLineItems; - } - return availableLineItems; - }, - async setSupportingItems() { - const glassPartsArray = useMainStore().lineItems.glassParts ?? []; - const { carId } = useMainStore().vehicle; - const { isRepair, numberOfChips } = useMainStore().damage; - - this.supportingItems = await globalMethods - .callHttpClient({ - method: endpoints.GetSupportingItems.method, - endpoint: endpoints.GetSupportingItems.url, - payload: { - carId, - damageType: isRepair ? 'Repair' : 'Replace', - parentAccountNumber: applicationConfig.CASH_PARENT_ACCOUNT_NUMBER, - parts: glassPartsArray, - numberOfRepairChips: isRepair ? numberOfChips : 0 - } - }); - } - }, - persist: true -}); - -export { usePaymentStore };