vchikalkin 25ad87b7b2 В момент получения результата расчета из ELT (до вывода результата) по каждой Страховой компании осуществлять:
по КАСКО:

осуществлять проверку если в карточке Страховая компания "Фактическая доля" evo_kasko_fact_part > "Плановой доли" evo_kasko_plan_part, то в полученных результатах от ELT заменить значения:
"requestId": обнулять,
"skCalcId": обнулять
"sum": обнулять
"totalFranchise": обнулять
2024-08-01 13:13:33 +03:00

45 lines
1.6 KiB
TypeScript

import { protectedProcedure } from '../../procedure';
import { router } from '../../trpc';
import { EltInputSchema, EltOutputSchema } from './types';
import { getEltKasko } from '@/api/elt/query';
import initializeApollo from '@/apollo/client';
import eltHelper from '@/process/elt/lib/helper';
import { makeEltKaskoRequest } from '@/process/elt/lib/request';
import { convertEltKaskoResponse } from '@/process/elt/lib/response';
import RootStore from '@/stores/root';
import { createTRPCError } from '@/utils/trpc';
export const eltKaskoRouter = router({
eltKasko: protectedProcedure
.input(EltInputSchema)
.output(EltOutputSchema)
.mutation(async ({ input }) => {
try {
const apolloClient = initializeApollo();
const store = new RootStore();
store.$calculation.$values.hydrate(input.calculation.values);
const { init: initElt } = await eltHelper({ apolloClient, store });
const { kasko: initRows } = await initElt();
const requests = initRows.map((row) =>
makeEltKaskoRequest({ apolloClient, store }, row).then((request) =>
getEltKasko(request)
.then((response) =>
convertEltKaskoResponse({ context: { apolloClient, store }, response, row }).then(
(convertedRow) => convertedRow
)
)
.catch((error) => ({ ...row, message: error.message, status: 'error' }))
)
);
return {
rows: await Promise.all(requests),
};
} catch (error) {
throw createTRPCError(error);
}
}),
});