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