diff --git a/graphql/crm.types.ts b/graphql/crm.types.ts index 25c51ff..29c545b 100644 --- a/graphql/crm.types.ts +++ b/graphql/crm.types.ts @@ -241,6 +241,11 @@ export type GetOwnerDataQueryVariables = Exact<{ export type GetOwnerDataQuery = { __typename?: 'Query', selectLead?: Array<{ __typename?: 'lead', label?: string | null, value?: any | null } | null> | null, selectOpportunity?: Array<{ __typename?: 'opportunity', label?: string | null, value?: any | null } | null> | null }; +export type GetTransactionCurrenciesQueryVariables = Exact<{ [key: string]: never; }>; + + +export type GetTransactionCurrenciesQuery = { __typename?: 'Query', transactioncurrencies?: Array<{ __typename?: 'transactioncurrency', isocurrencycode?: string | null, transactioncurrencyid?: any | null } | null> | null }; + export type GetOpportunityByLeadQueryVariables = Exact<{ leadid: Scalars['Uuid']; }>; diff --git a/process/init/inject-reactions/default.js b/process/init/inject-reactions/default.js index 83b38c6..c45a691 100644 --- a/process/init/inject-reactions/default.js +++ b/process/init/inject-reactions/default.js @@ -4,6 +4,7 @@ import fingapReactions from '../../fingap/reactions'; import * as leadOpportunityReactions from '../../lead-opportunity/reactions'; import paymentsReactions from '../../payments/reactions'; import * as priceReactions from '../../price/reactions'; +import setInitialValuesReactions from '../set-values/reactions'; export default function injectDefaultReactions(store, apolloClient, queryClient) { leadOpportunityReactions.common(store, apolloClient, queryClient); @@ -13,4 +14,5 @@ export default function injectDefaultReactions(store, apolloClient, queryClient) agentsReactions.common(store, apolloClient, queryClient); priceReactions.computed(store, apolloClient, queryClient); fingapReactions(store, apolloClient, queryClient); + setInitialValuesReactions(store, apolloClient, queryClient); } diff --git a/process/init/set-values/reactions.ts b/process/init/set-values/reactions.ts new file mode 100644 index 0000000..83d04de --- /dev/null +++ b/process/init/set-values/reactions.ts @@ -0,0 +1,44 @@ +/* eslint-disable @typescript-eslint/naming-convention */ +import type { ApolloClient } from '@apollo/client'; +import { gql } from '@apollo/client'; +import type { QueryClient } from '@tanstack/react-query'; +import type { GetTransactionCurrenciesQuery } from 'graphql/crm.types'; +import { when } from 'mobx'; +import type RootStore from 'stores/root'; + +export default function setInitialValuesReactions( + store: RootStore, + apolloClient: ApolloClient, + queryClient: QueryClient +) { + const QUERY_GET_TRANSACTION_CURRENCIES = gql` + query GetTransactionCurrencies { + transactioncurrencies { + isocurrencycode + transactioncurrencyid + } + } + `; + + const { $calculation } = store; + + when( + () => $calculation.$options.getOptions('selectSupplierCurrency').length > 0, + async () => { + const { + data: { transactioncurrencies }, + } = await apolloClient.query({ + query: QUERY_GET_TRANSACTION_CURRENCIES, + }); + + const transactioncurrency_rub = transactioncurrencies?.find( + (x) => x?.isocurrencycode === 'RUB' + ); + + $calculation.setElementValue( + 'selectSupplierCurrency', + transactioncurrency_rub?.transactioncurrencyid + ); + } + ); +}