import type { GetQuoteInputData, GetQuoteProcessData } from '../load-kp/types'; import defaultValues from '@/config/default-values'; import * as CRMTypes from '@/graphql/crm.types'; export async function getKPData({ values: { recalcWithRevision }, quote, ctx: { apolloClient }, }: GetQuoteInputData): Promise { const registration = quote?.evo_addproduct_types?.find((x) => x?.evo_product_type === 100_000_001) ?.evo_addproduct_typeid ?? defaultValues.registration; const technicalCard = quote?.evo_addproduct_types?.find((x) => x?.evo_product_type === 100_000_000) ?.evo_addproduct_typeid ?? defaultValues.technicalCard; const insNSIB = quote?.evo_addproduct_types?.find((x) => x?.evo_product_type === 100_000_002) ?.evo_addproduct_typeid ?? defaultValues.insNSIB; let tracker = quote?.evo_addproduct_types?.find((x) => x?.evo_product_type === 100_000_003) ?.evo_addproduct_typeid ?? defaultValues.tracker; let telematic = quote?.evo_addproduct_types?.find((x) => x?.evo_product_type === 100_000_004) ?.evo_addproduct_typeid ?? defaultValues.telematic; if (recalcWithRevision && quote?.evo_accept_control_addproduct_typeid) { const { data: { evo_addproduct_type }, } = await apolloClient.query({ query: CRMTypes.GetAddProductTypeDocument, variables: { addproductTypeId: quote?.evo_accept_control_addproduct_typeid }, }); if (evo_addproduct_type?.evo_product_type === 100_000_003) { tracker = evo_addproduct_type.evo_addproduct_typeid ?? defaultValues.tracker; telematic = defaultValues.telematic; } if (evo_addproduct_type?.evo_product_type === 100_000_004) { telematic = evo_addproduct_type.evo_addproduct_typeid ?? defaultValues.tracker; tracker = defaultValues.tracker; } } const fuelCard = quote?.evo_addproduct_types?.find((x) => x?.evo_product_type === 100_000_005) ?.evo_addproduct_typeid ?? defaultValues.fuelCard; const leasingWithoutKasko = quote?.evo_addproduct_types?.find((x) => x?.evo_product_type === 100_000_007) ?.evo_addproduct_typeid ?? defaultValues.leasingWithoutKasko; return { values: { fuelCard, insNSIB, leasingWithoutKasko, registration, technicalCard, telematic, tracker, }, }; }