2024-04-08 21:09:28 +03:00

69 lines
2.1 KiB
TypeScript

import type { ProcessContext } from '../../types';
import type { Row } from '@/Components/Calculation/Form/ELT/types';
import * as CRMTypes from '@/graphql/crm.types';
import { defaultRow } from '@/stores/tables/elt/default-values';
export default function helper({
apolloClient,
store,
}: Pick<ProcessContext, 'apolloClient' | 'store'>) {
const { $calculation } = store;
return {
async init() {
const {
data: { accounts },
} = await apolloClient.query({
query: CRMTypes.GetInsuranceCompaniesDocument,
});
let evo_leasingobject_type: CRMTypes.GetLeaseObjectTypeQuery['evo_leasingobject_type'];
const leaseObjectTypeId = $calculation.element('selectLeaseObjectType').getValue();
if (leaseObjectTypeId) {
const { data } = await apolloClient.query({
query: CRMTypes.GetLeaseObjectTypeDocument,
variables: {
leaseObjectTypeId,
},
});
({ evo_leasingobject_type } = data);
}
return {
kasko: (accounts
?.filter((x) =>
x?.evo_type_ins_policy?.includes(100_000_000) &&
evo_leasingobject_type?.evo_id &&
['6', '9', '10'].includes(evo_leasingobject_type?.evo_id)
? Boolean(x.evo_id_elt_smr)
: Boolean(x?.evo_id_elt)
)
.map((x) => ({
...defaultRow,
id:
evo_leasingobject_type?.evo_id &&
['6', '9', '10'].includes(evo_leasingobject_type?.evo_id)
? x?.evo_id_elt_smr
: x?.evo_id_elt,
key: x?.value,
name: x?.label,
})) || []) as Row[],
osago: (accounts
?.filter(
(x) =>
x?.evo_type_ins_policy?.includes(100_000_001) &&
(x?.evo_id_elt_osago || x.evo_osago_id)
)
.map((x) => ({
...defaultRow,
id: x?.evo_id_elt_osago || x?.evo_osago_id,
key: x?.value,
metodCalc: x?.evo_osago_id ? 'CRM' : 'ELT',
name: x?.label,
})) || []) as Row[],
};
},
};
}