diff --git a/apps/web/Components/Calculation/Form/ELT/Osago.tsx b/apps/web/Components/Calculation/Form/ELT/Osago.tsx index eeab69f..5b3103d 100644 --- a/apps/web/Components/Calculation/Form/ELT/Osago.tsx +++ b/apps/web/Components/Calculation/Form/ELT/Osago.tsx @@ -1,17 +1,67 @@ import { PolicyTable, ReloadButton, Validation } from './Components'; import { columns } from './lib/config'; +import { makeEltOsagoRequest } from './lib/make-request'; import type { StoreSelector } from './types'; +import { getEltOsago } from '@/api/elt/query'; +import { STALE_TIME } from '@/constants/request'; +import { useStore } from '@/stores/hooks'; +import { useApolloClient } from '@apollo/client'; +import type { QueryFunctionContext } from '@tanstack/react-query'; +import { useQueries } from '@tanstack/react-query'; import { clone } from 'tools'; import { Flex } from 'ui/grid'; const storeSelector: StoreSelector = ({ osago }) => osago; -function handleOnClick() {} - export function Osago() { + const store = useStore(); + const { $tables } = store; + const rows = $tables.elt.osago.getRows; + + const apolloClient = useApolloClient(); + + const queries = useQueries({ + queries: rows.map(({ key, id }) => ({ + enabled: false, + queryFn: async (context: QueryFunctionContext) => { + const payload = await makeEltOsagoRequest({ apolloClient, store }, id); + const res = await getEltOsago(payload, context); + const companyRes = res[id]; + + return { ...companyRes, id, key }; + }, + queryKey: ['elt', 'osago', id], + refetchOnWindowFocus: false, + staleTime: STALE_TIME, + })), + }); + + async function handleOnClick() { + const fetchingRows = rows.map((x) => ({ ...x, isFetching: true })); + $tables.elt.osago.setRows(fetchingRows); + + queries.forEach(({ refetch }) => { + refetch().then((res) => { + if (res.data) { + const { key, numCalc, premiumSum, message, skCalcId, error } = res.data; + $tables.elt.osago.setRow({ + isFetching: false, + key, + message: message || error, + numCalc, + skCalcId, + sum: premiumSum, + }); + } + }); + }); + } + const osagoColumns = clone(columns); osagoColumns[0].title = 'Страховая компания ОСАГО'; - osagoColumns[3].title = ; + osagoColumns[3].title = ( + handleOnClick()} /> + ); return ( diff --git a/apps/web/Components/Calculation/Form/ELT/lib/make-request.ts b/apps/web/Components/Calculation/Form/ELT/lib/make-request.ts new file mode 100644 index 0000000..bbfbdb1 --- /dev/null +++ b/apps/web/Components/Calculation/Form/ELT/lib/make-request.ts @@ -0,0 +1,281 @@ +/* eslint-disable sonarjs/cognitive-complexity */ +/* eslint-disable complexity */ +import type { RequestEltOsago } from '@/api/elt/types'; +import * as CRMTypes from '@/graphql/crm.types'; +import type { ProcessContext } from '@/process/types'; +import dayjs from 'dayjs'; + +const getSpecified = (value: unknown) => value !== null && value !== undefined; + +export async function makeEltOsagoRequest( + { store, apolloClient }: Pick, + companyId: string +): Promise { + const { $calculation, $tables } = store; + + const currentDate = dayjs().toDate(); + let kladr = '7700000000000'; + if ($calculation.element('radioObjectRegistration').getValue() === 100_000_001) { + const townRegistrationId = $calculation.element('selectTownRegistration').getValue(); + + if (townRegistrationId) { + const { + data: { evo_town }, + } = await apolloClient.query({ + query: CRMTypes.GetTownDocument, + variables: { townId: townRegistrationId }, + }); + kladr = evo_town?.evo_kladr_id || kladr; + } + } else { + const { + data: { account: insuranceCompany }, + } = await apolloClient.query({ + query: CRMTypes.GetInsuranceCompanyDocument, + variables: { accountId: companyId }, + }); + if (insuranceCompany?.evo_legal_region_calc === true) { + const regionId = $calculation.element('selectLegalClientRegion').getValue(); + let evo_region: CRMTypes.GetRegionQuery['evo_region'] = null; + if (regionId) { + const { data } = await apolloClient.query({ + query: CRMTypes.GetRegionDocument, + variables: { regionId }, + }); + ({ evo_region } = data); + } + + const townId = $calculation.element('selectLegalClientRegion').getValue(); + let evo_town: CRMTypes.GetTownQuery['evo_town'] = null; + if (townId) { + const { data } = await apolloClient.query({ + query: CRMTypes.GetTownDocument, + variables: { townId }, + }); + ({ evo_town } = data); + } + + kladr = evo_town?.evo_kladr_id || evo_region?.evo_kladr_id || kladr; + } + } + + let brandId = ''; + const brand = $calculation.element('selectBrand').getValue(); + if (brand) { + const { + data: { evo_brand }, + } = await apolloClient.query({ + query: CRMTypes.GetBrandDocument, + variables: { brandId: brand }, + }); + + if (evo_brand?.evo_id) { + brandId = evo_brand.evo_id; + } + } + + let modelId = ''; + const model = $calculation.element('selectModel').getValue(); + if (model) { + const { + data: { evo_model }, + } = await apolloClient.query({ + query: CRMTypes.GetModelDocument, + variables: { modelId: model }, + }); + + if (evo_model?.evo_id) { + modelId = evo_model.evo_id; + } + } + + let gpsMark = ''; + const gpsBrandId = $calculation.element('selectGPSBrand').getValue(); + if (gpsBrandId) { + const { + data: { evo_gps_brands }, + } = await apolloClient.query({ + query: CRMTypes.GetGpsBrandsDocument, + }); + gpsMark = evo_gps_brands?.find((x) => x?.value === gpsBrandId)?.evo_id || gpsMark; + } + + let gpsModel = ''; + const gpsModelId = $calculation.element('selectGPSModel').getValue(); + if (gpsModelId) { + const { + data: { evo_gps_models }, + } = await apolloClient.query({ + query: CRMTypes.GetGpsModelsDocument, + }); + gpsModel = evo_gps_models?.find((x) => x?.value === gpsModelId)?.evo_id || gpsModel; + } + + const vehicleYear = $calculation.element('tbxLeaseObjectYear').getValue().toString(); + const leaseObjectCategory = $calculation.element('selectLeaseObjectCategory').getValue(); + const vehiclePower = $calculation.element('tbxLeaseObjectMotorPower').getValue() || 0; + + const mapCategory: Record = { + 100_000_000: 'A', + 100_000_001: 'B', + 100_000_002: 'C', + 100_000_003: 'D', + 100_000_004: 'ПРОЧИЕ ТС', + }; + const category = (leaseObjectCategory && mapCategory[leaseObjectCategory]) || '0'; + + const leaseObjectUseFor = $calculation.element('selectLeaseObjectUseFor').getValue(); + const maxMass = $calculation.element('tbxMaxMass').getValue(); + const countSeats = $calculation.element('tbxCountSeats').getValue(); + + let subCategory = '0'; + switch (leaseObjectCategory) { + case 100_000_001: { + if (leaseObjectUseFor === 100_000_001) { + subCategory = '11'; + } + subCategory = '10'; + break; + } + + case 100_000_002: { + if (maxMass <= 16_000) { + subCategory = '20'; + } + subCategory = '21'; + break; + } + + case 100_000_003: { + if (leaseObjectUseFor === 100_000_001) { + subCategory = '32'; + } + if (countSeats <= 20) { + subCategory = '30'; + } + + subCategory = '31'; + break; + } + + case 100_000_004: { + subCategory = '22'; + break; + } + + case 100_000_000: + default: { + subCategory = '0'; + break; + } + } + + let seatingCapacity = 0; + if (leaseObjectCategory === 100_000_003) { + seatingCapacity = countSeats; + } + const seatingCapacitySpecified = getSpecified(seatingCapacity); + + let maxAllowedMass = 0; + if (leaseObjectCategory === 100_000_002) { + maxAllowedMass = maxMass; + } + const maxAllowedMassSpecified = getSpecified(maxAllowedMass); + + const useWithTrailer = $calculation.element('cbxWithTrailer').getValue(); + const useWithTrailerSpecified = true; + + const address = { + // district: '0', + city: 'Москва', + + cityKladr: '7700000000000', + + country: 'Россия', + + flat: '337', + house: '8', + region: 'Москва', + resident: 1, + street: 'ул. Котляковская', + }; + + const owner = { + JuridicalName: 'ООО "ЛК "ЭВОЛЮЦИЯ"', + email: 'client@evoleasing.ru', + factAddress: address, + inn: '9724016636', + kpp: '772401001', + ogrn: '1207700245037', + opf: 1, + opfSpecified: true, + phone: '8 (800) 333-75-75', + registrationAddress: address, + subjectType: 1, + subjectTypeSpecified: true, + }; + + let inn = '9724016636'; + const insured = $tables.insurance.row('osago').getValue('insured'); + const leadid = $calculation.element('selectLead').getValue(); + if (insured === 100_000_000 && leadid) { + const { + data: { lead }, + } = await apolloClient.query({ + query: CRMTypes.GetLeadDocument, + variables: { leadid }, + }); + + inn = lead?.evo_inn || inn; + } + + return { + ELTParams: { + FullDriversInfo: [ + { + kbm: '3', + }, + ], + carInfo: { + mark: gpsMark, + model: gpsModel, + tsType: { category, subCategory }, + useWithTrailer, + useWithTrailerSpecified, + vehicle: { + maxAllowedMass, + maxAllowedMassSpecified, + seatingCapacity, + seatingCapacitySpecified, + }, + vehiclePower, + vehicleYear, + }, + contractBeginDate: currentDate, + contractOptionId: 1, + contractStatusId: 13, + driversCount: 0, + duration: 12, + insurer: { + INN: inn, + SubjectType: 1, + SubjectTypeSpecified: true, + }, + insurerType: 1, + lessee: { + SubjectType: 1, + SubjectTypeSpecified: true, + inn, + }, + owner, + ownerType: 1, + tsToRegistrationPlace: 0, + }, + companyIds: [companyId], + preparams: { + brandId, + kladr, + modelId, + }, + }; +} diff --git a/apps/web/api/elt/query.ts b/apps/web/api/elt/query.ts index 2579227..6aaacc8 100644 --- a/apps/web/api/elt/query.ts +++ b/apps/web/api/elt/query.ts @@ -5,10 +5,14 @@ import axios from 'axios'; const { URL_ELT_KASKO, URL_ELT_OSAGO } = getUrls(); -export async function getEltOsago(payload: ELT.RequestEltOsago, { signal }: QueryFunctionContext) { - const { data } = await axios.post(URL_ELT_OSAGO, payload, { signal }); - - return data; +export async function getEltOsago( + payload: ELT.RequestEltOsago, + { signal }: QueryFunctionContext +): Promise { + return await axios + .post(URL_ELT_OSAGO, payload, { signal }) + .then((response) => response.data) + .catch((error) => error.response.data); } export async function getEltKasko(payload: ELT.RequestEltKasko, { signal }: QueryFunctionContext) { diff --git a/apps/web/config/schema/elt.ts b/apps/web/config/schema/elt.ts index 0f7ecf2..1c61fa2 100644 --- a/apps/web/config/schema/elt.ts +++ b/apps/web/config/schema/elt.ts @@ -170,6 +170,8 @@ export const RequestEltOsagoSchema = z.object({ ELTParams: z.object({ FullDriversInfo: z.array(z.object({ kbm: z.string() })), carInfo: z.object({ + mark: z.string(), + model: z.string(), tsType: z.object({ category: z.string(), subCategory: z.string() }), useWithTrailer: z.boolean(), useWithTrailerSpecified: z.boolean(), @@ -182,7 +184,7 @@ export const RequestEltOsagoSchema = z.object({ vehiclePower: z.number(), vehicleYear: z.string(), }), - contractBeginDate: z.string(), + contractBeginDate: z.date(), contractOptionId: z.number(), contractStatusId: z.number(), driversCount: z.number(), @@ -264,6 +266,7 @@ export const ResultEltOsagoSchema = z.record( ); export const RowSchema = z.object({ + id: z.string(), isFetching: z.boolean(), key: z.string(), message: z.string().nullable(), diff --git a/apps/web/graphql/crm.query.graphql b/apps/web/graphql/crm.query.graphql index c0188c5..ba15e13 100644 --- a/apps/web/graphql/crm.query.graphql +++ b/apps/web/graphql/crm.query.graphql @@ -276,6 +276,7 @@ query GetRegion($regionId: Uuid!) { accounts { accountid } + evo_kladr_id } } @@ -288,10 +289,17 @@ query GetTowns($regionId: Uuid!) { } } +query GetTown($townId: Uuid!) { + evo_town(evo_townid: $townId) { + evo_kladr_id + } +} + query GetGPSBrands { evo_gps_brands(statecode: 0) { label: evo_name value: evo_gps_brandid + evo_id } } @@ -299,6 +307,7 @@ query GetGPSModels($gpsBrandId: Uuid!) { evo_gps_models(evo_gps_brandid: $gpsBrandId) { label: evo_name value: evo_gps_modelid + evo_id } } @@ -358,6 +367,7 @@ query GetModel($modelId: Uuid!) { } evo_importer_reward_perc evo_importer_reward_rub + evo_id } } diff --git a/apps/web/graphql/crm.types.ts b/apps/web/graphql/crm.types.ts index 31c3578..47ab683 100644 --- a/apps/web/graphql/crm.types.ts +++ b/apps/web/graphql/crm.types.ts @@ -250,7 +250,7 @@ export type GetRegionQueryVariables = Exact<{ }>; -export type GetRegionQuery = { __typename?: 'Query', evo_region: { __typename?: 'evo_region', evo_oktmo: string | null, accounts: Array<{ __typename?: 'account', accountid: string | null } | null> | null } | null }; +export type GetRegionQuery = { __typename?: 'Query', evo_region: { __typename?: 'evo_region', evo_oktmo: string | null, evo_kladr_id: string | null, accounts: Array<{ __typename?: 'account', accountid: string | null } | null> | null } | null }; export type GetTownsQueryVariables = Exact<{ regionId: Scalars['Uuid']; @@ -259,17 +259,24 @@ export type GetTownsQueryVariables = Exact<{ export type GetTownsQuery = { __typename?: 'Query', evo_towns: Array<{ __typename?: 'evo_town', evo_fias_id: string | null, evo_businessunit_evolution: boolean | null, label: string | null, value: string | null } | null> | null }; +export type GetTownQueryVariables = Exact<{ + townId: Scalars['Uuid']; +}>; + + +export type GetTownQuery = { __typename?: 'Query', evo_town: { __typename?: 'evo_town', evo_kladr_id: string | null } | null }; + export type GetGpsBrandsQueryVariables = Exact<{ [key: string]: never; }>; -export type GetGpsBrandsQuery = { __typename?: 'Query', evo_gps_brands: Array<{ __typename?: 'evo_gps_brand', label: string | null, value: string | null } | null> | null }; +export type GetGpsBrandsQuery = { __typename?: 'Query', evo_gps_brands: Array<{ __typename?: 'evo_gps_brand', evo_id: string | null, label: string | null, value: string | null } | null> | null }; export type GetGpsModelsQueryVariables = Exact<{ gpsBrandId: Scalars['Uuid']; }>; -export type GetGpsModelsQuery = { __typename?: 'Query', evo_gps_models: Array<{ __typename?: 'evo_gps_model', label: string | null, value: string | null } | null> | null }; +export type GetGpsModelsQuery = { __typename?: 'Query', evo_gps_models: Array<{ __typename?: 'evo_gps_model', evo_id: string | null, label: string | null, value: string | null } | null> | null }; export type GetLeaseObjectTypesQueryVariables = Exact<{ [key: string]: never; }>; @@ -307,7 +314,7 @@ export type GetModelQueryVariables = Exact<{ }>; -export type GetModelQuery = { __typename?: 'Query', evo_model: { __typename?: 'evo_model', evo_importer_reward_perc: number | null, evo_importer_reward_rub: number | null, evo_impairment_groupidData: { __typename?: 'evo_impairment_group', evo_name: string | null } | null } | null }; +export type GetModelQuery = { __typename?: 'Query', evo_model: { __typename?: 'evo_model', evo_importer_reward_perc: number | null, evo_importer_reward_rub: number | null, evo_id: string | null, evo_impairment_groupidData: { __typename?: 'evo_impairment_group', evo_name: string | null } | null } | null }; export type GetConfigurationsQueryVariables = Exact<{ modelId: Scalars['Uuid']; @@ -615,16 +622,17 @@ export const GetSubsidiesDocument = {"kind":"Document","definitions":[{"kind":"O export const GetSubsidyDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetSubsidy"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"subsidyId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_subsidy"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_subsidyid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"subsidyId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_types"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"accounts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"accountid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_brands"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_brandid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_models"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_modelid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_subsidy_summ"}},{"kind":"Field","name":{"kind":"Name","value":"evo_percent_subsidy"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_subsidy_summ"}},{"kind":"Field","name":{"kind":"Name","value":"evo_get_subsidy_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_delivery_time"}}]}}]}}]} as unknown as DocumentNode; export const GetImportProgramDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetImportProgram"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"importProgramId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"importProgram"},"name":{"kind":"Name","value":"evo_subsidy"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_subsidyid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"importProgramId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_types"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"accounts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"accountid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_brands"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_brandid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_models"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_modelid"}}]}}]}}]}}]} as unknown as DocumentNode; export const GetRegionsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetRegions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_regions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_regionid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_fias_id"}},{"kind":"Field","name":{"kind":"Name","value":"evo_businessunit_evolution"}}]}}]}}]} as unknown as DocumentNode; -export const GetRegionDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetRegion"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"regionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_region"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_regionid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"regionId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_oktmo"}},{"kind":"Field","name":{"kind":"Name","value":"accounts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"accountid"}}]}}]}}]}}]} as unknown as DocumentNode; +export const GetRegionDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetRegion"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"regionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_region"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_regionid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"regionId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_oktmo"}},{"kind":"Field","name":{"kind":"Name","value":"accounts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"accountid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_kladr_id"}}]}}]}}]} as unknown as DocumentNode; export const GetTownsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTowns"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"regionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_towns"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_regionid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"regionId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_fias_id"}},{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_townid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_businessunit_evolution"}}]}}]}}]} as unknown as DocumentNode; -export const GetGpsBrandsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetGPSBrands"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_gps_brands"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_gps_brandid"}}]}}]}}]} as unknown as DocumentNode; -export const GetGpsModelsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetGPSModels"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"gpsBrandId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_gps_models"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_gps_brandid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"gpsBrandId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_gps_modelid"}}]}}]}}]} as unknown as DocumentNode; +export const GetTownDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTown"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"townId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_town"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_townid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"townId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_kladr_id"}}]}}]}}]} as unknown as DocumentNode; +export const GetGpsBrandsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetGPSBrands"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_gps_brands"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_gps_brandid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_id"}}]}}]}}]} as unknown as DocumentNode; +export const GetGpsModelsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetGPSModels"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"gpsBrandId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_gps_models"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_gps_brandid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"gpsBrandId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_gps_modelid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_id"}}]}}]}}]} as unknown as DocumentNode; export const GetLeaseObjectTypesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetLeaseObjectTypes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_types"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_leasingobject_typeid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}}]}}]}}]} as unknown as DocumentNode; export const GetLeaseObjectTypeDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetLeaseObjectType"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"leaseObjectTypeId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_type"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_leasingobject_typeid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"leaseObjectTypeId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_vehicle_type"}},{"kind":"Field","name":{"kind":"Name","value":"evo_id"}},{"kind":"Field","name":{"kind":"Name","value":"evo_category"}},{"kind":"Field","name":{"kind":"Name","value":"evo_vehicle_type_tax"}},{"kind":"Field","name":{"kind":"Name","value":"evo_category_tr"}},{"kind":"Field","name":{"kind":"Name","value":"evo_expluatation_period1"}},{"kind":"Field","name":{"kind":"Name","value":"evo_expluatation_period2"}},{"kind":"Field","name":{"kind":"Name","value":"evo_depreciation_rate1"}},{"kind":"Field","name":{"kind":"Name","value":"evo_depreciation_rate2"}}]}}]}}]} as unknown as DocumentNode; export const GetBrandsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetBrands"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_brands"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_brandid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_brandid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_vehicle_type"}}]}}]}}]} as unknown as DocumentNode; export const GetBrandDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetBrand"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"brandId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_brand"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_brandid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"brandId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_id"}},{"kind":"Field","name":{"kind":"Name","value":"evo_importer_reward_perc"}},{"kind":"Field","name":{"kind":"Name","value":"evo_importer_reward_rub"}},{"kind":"Field","name":{"kind":"Name","value":"evo_maximum_percentage_av"}}]}}]}}]} as unknown as DocumentNode; export const GetModelsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetModels"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"brandId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_models"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}},{"kind":"Argument","name":{"kind":"Name","value":"evo_brandid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"brandId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_modelid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_modelid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_vehicle_type"}}]}}]}}]} as unknown as DocumentNode; -export const GetModelDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetModel"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_model"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_modelid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_impairment_groupidData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_importer_reward_perc"}},{"kind":"Field","name":{"kind":"Name","value":"evo_importer_reward_rub"}}]}}]}}]} as unknown as DocumentNode; +export const GetModelDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetModel"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_model"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_modelid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_impairment_groupidData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_importer_reward_perc"}},{"kind":"Field","name":{"kind":"Name","value":"evo_importer_reward_rub"}},{"kind":"Field","name":{"kind":"Name","value":"evo_id"}}]}}]}}]} as unknown as DocumentNode; export const GetConfigurationsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetConfigurations"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_equipments"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}},{"kind":"Argument","name":{"kind":"Name","value":"evo_modelid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_equipmentid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_start_production_year"}}]}}]}}]} as unknown as DocumentNode; export const GetConfigurationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetConfiguration"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"configurationId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_equipment"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_equipmentid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"configurationId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_impairment_groupidData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_name"}}]}}]}}]}}]} as unknown as DocumentNode; export const GetDealersDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetDealers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"dealers"},"name":{"kind":"Name","value":"accounts"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_account_type"},"value":{"kind":"ListValue","values":[{"kind":"IntValue","value":"100000001"}]}},{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}},{"kind":"Argument","name":{"kind":"Name","value":"evo_legal_form"},"value":{"kind":"IntValue","value":"100000001"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"accountid"}},{"kind":"Field","name":{"kind":"Name","value":"accountid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_financing_accept"}}]}}]}}]} as unknown as DocumentNode; diff --git a/apps/web/process/elt/lib/helper.ts b/apps/web/process/elt/lib/helper.ts index 414f622..d76d090 100644 --- a/apps/web/process/elt/lib/helper.ts +++ b/apps/web/process/elt/lib/helper.ts @@ -36,6 +36,11 @@ export default function helper({ apolloClient, store }: ProcessContext) { : Boolean(x?.evo_id_elt) ) .map((x) => ({ + id: + evo_leasingobject_type?.evo_id && + ['6', '9', '10'].includes(evo_leasingobject_type?.evo_id) + ? x?.evo_id_elt_smr + : x?.evo_id_elt, isFetching: false, key: x?.value, message: null, @@ -49,6 +54,7 @@ export default function helper({ apolloClient, store }: ProcessContext) { osago: (accounts ?.filter((x) => x?.evo_type_ins_policy?.includes(100_000_001) && x?.evo_id_elt_osago) .map((x) => ({ + id: x?.evo_id_elt_osago, isFetching: false, key: x?.value, message: null, diff --git a/apps/web/stores/tables/elt/policy.ts b/apps/web/stores/tables/elt/policy.ts index b062d44..0ce76be 100644 --- a/apps/web/stores/tables/elt/policy.ts +++ b/apps/web/stores/tables/elt/policy.ts @@ -49,9 +49,9 @@ export default class PolicyStore { this.rows.replace(rows); }; - public setRow = (row: ELT.Row) => { + public setRow = (row: Partial & Pick) => { const index = this.rows.findIndex((x) => x.key === row.key); - if (index > 0) this.rows[index] = row; + if (index >= 0) this.rows[index] = { ...this.rows[index], ...row }; }; public get getRows() {