2024-02-16 13:22:01 +03:00

71 lines
2.4 KiB
TypeScript

import type { GetQuoteInputData, GetQuoteProcessData } from '../load-kp/types';
import initializeApollo from '@/apollo/client';
import defaultValues from '@/config/default-values';
import * as CRMTypes from '@/graphql/crm.types';
export async function getKPData({
values: { recalcWithRevision },
quote,
}: GetQuoteInputData): Promise<GetQuoteProcessData> {
const apolloClient = initializeApollo();
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,
},
};
}