70 lines
1.9 KiB
TypeScript
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,
|
|
},
|
|
};
|
|
}
|