44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import type { User } from '@/api/user/types';
|
|
import * as CRMTypes from '@/graphql/crm.types';
|
|
import type { ApolloClient } from '@apollo/client';
|
|
|
|
export async function getInitialData({ query }: ApolloClient<object>, user: User) {
|
|
const {
|
|
data: { leads },
|
|
} = await query({ query: CRMTypes.GetLeadsDocument, variables: { domainname: user.domainName } });
|
|
|
|
const {
|
|
data: { opportunities },
|
|
} = await query({
|
|
query: CRMTypes.GetOpportunitiesDocument,
|
|
variables: { domainname: user.domainName },
|
|
});
|
|
|
|
const {
|
|
data: { transactioncurrencies },
|
|
} = await query({
|
|
query: CRMTypes.GetTransactionCurrenciesDocument,
|
|
});
|
|
|
|
const transactioncurrency_rub = transactioncurrencies?.find((x) => x?.isocurrencycode === 'RUB');
|
|
|
|
if (transactioncurrency_rub?.transactioncurrencyid)
|
|
await query({
|
|
query: CRMTypes.GetTransactionCurrencyDocument,
|
|
variables: {
|
|
currencyid: transactioncurrency_rub?.transactioncurrencyid,
|
|
},
|
|
});
|
|
|
|
return {
|
|
options: {
|
|
selectLead: leads,
|
|
selectOpportunity: opportunities,
|
|
selectSupplierCurrency: transactioncurrencies,
|
|
},
|
|
values: {
|
|
supplierCurrency: transactioncurrency_rub?.transactioncurrencyid ?? null,
|
|
},
|
|
};
|
|
}
|