66 lines
1.9 KiB
TypeScript

import type { ProcessContext } from '../../types';
import defaultValues from '@/config/default-values';
import * as CRMTypes from '@/graphql/crm.types';
import type { CalculationValues } from '@/stores/calculation/values/types';
type GetImporterRewardInput = Pick<CalculationValues, 'brand' | 'leaseObjectUsed' | 'model'>;
export default function helper({ apolloClient }: Pick<ProcessContext, 'apolloClient'>) {
return {
async getImporterReward({
brand: brandId,
leaseObjectUsed,
model: modelId,
}: GetImporterRewardInput) {
if (leaseObjectUsed) {
return {
importerRewardPerc: defaultValues.importerRewardPerc,
importerRewardRub: defaultValues.importerRewardRub,
};
}
let evo_importer_reward_perc = 0;
let evo_importer_reward_rub = 0;
if (modelId) {
const {
data: { evo_model },
} = await apolloClient.query({
query: CRMTypes.GetModelDocument,
variables: { modelId },
});
if (evo_model?.evo_importer_reward_perc) {
evo_importer_reward_perc = evo_model?.evo_importer_reward_perc;
}
if (evo_model?.evo_importer_reward_rub) {
evo_importer_reward_rub = evo_model?.evo_importer_reward_rub;
}
}
if (brandId && evo_importer_reward_perc === 0 && evo_importer_reward_rub === 0) {
const {
data: { evo_brand },
} = await apolloClient.query({
query: CRMTypes.GetBrandDocument,
variables: { brandId },
});
if (evo_brand?.evo_importer_reward_perc) {
evo_importer_reward_perc = evo_brand?.evo_importer_reward_perc;
}
if (evo_brand?.evo_importer_reward_rub) {
evo_importer_reward_rub = evo_brand?.evo_importer_reward_rub;
}
}
return {
importerRewardPerc: evo_importer_reward_perc,
importerRewardRub: evo_importer_reward_rub,
};
},
};
}