75 lines
2.0 KiB
TypeScript
75 lines
2.0 KiB
TypeScript
import type { User } from '@/api/user/types';
|
|
import { crmTools } from '@/graphql/crm.tools';
|
|
import * as CRMTypes from '@/graphql/crm.types';
|
|
import { getCurrentISODate } from '@/utils/date';
|
|
import type { ApolloClient } from '@apollo/client';
|
|
|
|
export async function getInitialData({ query }: ApolloClient<object>, user: User) {
|
|
const leadsQuery = query({
|
|
query: CRMTypes.GetLeadsDocument,
|
|
variables: { domainname: user.domainName },
|
|
});
|
|
const opportunitiesQuery = query({
|
|
query: CRMTypes.GetOpportunitiesDocument,
|
|
variables: { domainname: user.domainName },
|
|
});
|
|
const transactionCurrenciesQuery = query({ query: CRMTypes.GetTransactionCurrenciesDocument });
|
|
const productsQuery = query({
|
|
fetchPolicy: 'network-only',
|
|
query: CRMTypes.GetProductsDocument,
|
|
variables: { currentDate: getCurrentISODate() },
|
|
});
|
|
const systemUserQuery = query({
|
|
fetchPolicy: 'network-only',
|
|
query: CRMTypes.GetSystemUserDocument,
|
|
variables: { domainname: user?.domainName },
|
|
});
|
|
|
|
const [
|
|
{
|
|
data: { leads },
|
|
},
|
|
{
|
|
data: { opportunities },
|
|
},
|
|
{
|
|
data: { transactioncurrencies },
|
|
},
|
|
{
|
|
data: { evo_baseproducts },
|
|
},
|
|
{
|
|
data: { systemuser },
|
|
},
|
|
] = await Promise.all([
|
|
leadsQuery,
|
|
opportunitiesQuery,
|
|
transactionCurrenciesQuery,
|
|
productsQuery,
|
|
systemUserQuery,
|
|
]);
|
|
|
|
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,
|
|
selectProduct: crmTools.evo_baseproducts(evo_baseproducts).filterBy.systemuser(systemuser),
|
|
selectSupplierCurrency: transactioncurrencies,
|
|
},
|
|
values: {
|
|
supplierCurrency: transactioncurrency_rub?.transactioncurrencyid ?? null,
|
|
},
|
|
};
|
|
}
|