2023-05-25 13:46:47 +03:00

67 lines
1.7 KiB
TypeScript

import type { GetQuoteInputData, GetQuoteProcessData } from '../load-kp/types';
import initializeApollo from '@/apollo/client';
import * as CRMTypes from '@/graphql/crm.types';
import { gql } from '@apollo/client';
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const QUERY_GET_QUOTE_ELT_DATA = gql`
query GetQuoteEltData($quoteId: Uuid!) {
quote(quoteId: $quoteId) {
evo_kasko_accountid
evo_kasko_price
evo_id_elt_kasko
evo_id_kasko_calc
evo_franchise
evo_osago_accountid
evo_id_elt_osago
evo_osago_price
evo_leasingobject_typeid
}
}
`;
export async function getKPData({
values: { quote: quoteId },
}: GetQuoteInputData): Promise<GetQuoteProcessData> {
const apolloClient = initializeApollo();
const {
data: { quote },
} = await apolloClient.query({
query: CRMTypes.GetQuoteEltDataDocument,
variables: {
quoteId,
},
});
const elt: NonNullable<GetQuoteProcessData['elt']> = { kasko: undefined, osago: undefined };
if (
quote?.evo_kasko_accountid &&
quote?.evo_id_elt_kasko &&
quote?.evo_id_kasko_calc &&
quote?.evo_kasko_price &&
quote?.evo_franchise !== null
) {
elt.kasko = {
key: quote?.evo_kasko_accountid,
requestId: quote?.evo_id_elt_kasko,
skCalcId: quote?.evo_id_kasko_calc,
sum: quote?.evo_kasko_price,
totalFranchise: quote?.evo_franchise,
};
}
if (quote?.evo_osago_accountid && quote?.evo_id_elt_osago && quote?.evo_osago_price) {
elt.osago = {
key: quote?.evo_osago_accountid,
numCalc: Number.parseInt(quote?.evo_id_elt_osago, 10),
sum: quote?.evo_osago_price,
};
}
return {
elt,
};
}