2023-03-28 09:33:17 +03:00

48 lines
1.3 KiB
TypeScript

import type { ValidationContext } from '../../types';
import type { ElementsTypes } from '@/Components/Calculation/config/map/values';
import * as CRMTypes from '@/graphql/crm.types';
import dayjs from 'dayjs';
export type ProductId = ElementsTypes['selectProduct'];
export default function helper({ apolloClient, user }: ValidationContext) {
return {
async getCoefficient(productId: ProductId) {
if (!productId || !user) {
return null;
}
const {
data: { systemuser },
} = await apolloClient.query({
query: CRMTypes.GetSystemUserDocument,
variables: {
domainname: user.domainName,
},
});
if (!systemuser?.evo_job_titleid) {
return null;
}
const currentDate = dayjs().utc(false).format('YYYY-MM-DD');
const {
data: { evo_coefficients },
} = await apolloClient.query({
query: CRMTypes.GetCoefficientsDocument,
variables: {
currentDate,
jobTitleId: systemuser?.evo_job_titleid,
},
});
return evo_coefficients?.find(
(evo_coefficient) =>
evo_coefficient?.evo_sot_coefficient_typeidData?.evo_id === 'BONUS_LEASING' &&
evo_coefficient?.evo_baseproducts?.some((x) => x?.evo_baseproductid === productId)
);
},
};
}