2023-09-20 17:21:33 +03:00

70 lines
1.9 KiB
TypeScript

import type { User } from '@/api/user/types';
import { crmTools } from '@/graphql/crm.tools';
import * as CRMTypes from '@/graphql/crm.types';
import type { ApolloClient } from '@apollo/client';
import dayjs from 'dayjs';
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,
},
});
const currentDate = dayjs().utc(false).toISOString();
let {
data: { evo_baseproducts },
} = await query({
fetchPolicy: 'network-only',
query: CRMTypes.GetProductsDocument,
variables: {
currentDate,
},
});
const {
data: { systemuser },
} = await query({
fetchPolicy: 'network-only',
query: CRMTypes.GetSystemUserDocument,
variables: {
domainname: user?.domainName,
},
});
evo_baseproducts = crmTools.evo_baseproducts(evo_baseproducts).filterBy.systemuser(systemuser);
return {
options: {
selectLead: leads,
selectOpportunity: opportunities,
selectProduct: evo_baseproducts,
selectSupplierCurrency: transactioncurrencies,
},
values: {
supplierCurrency: transactioncurrency_rub?.transactioncurrencyid ?? null,
},
};
}