import type { ValidationContext } from '../../types'; import type { ElementsTypes } from '@/Components/Calculation/config/map/values'; import * as CRMTypes from '@/graphql/crm.types'; import { getCurrentISODate } from '@/utils/date'; 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 = getCurrentISODate(); 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_job_titleid === systemuser.evo_job_titleid && evo_coefficient?.evo_sot_coefficient_typeidData?.evo_id === 'BONUS_LEASING' && evo_coefficient?.evo_baseproducts?.some((x) => x?.evo_baseproductid === productId) ); }, }; }