2024-07-15 11:04:47 +03:00

66 lines
2.0 KiB
TypeScript

import type { GetQuoteInputData, GetQuoteProcessData } from '../load-kp/types';
import helper from './lib/helper';
import defaultValues from '@/config/default-values';
import { getKPData as getKPDataPrice } from '@/process/price/get-kp-data';
import { createCurrencyUtility } from '@/utils/currency';
export async function getKPData({
values,
quote,
ctx,
}: GetQuoteInputData): Promise<GetQuoteProcessData> {
const { apolloClient } = ctx;
const kpDataPrice = await getKPDataPrice({ ctx, quote, values });
const { RUB } = createCurrencyUtility({ apolloClient });
const supplierCurrency = kpDataPrice.values?.supplierCurrency ?? defaultValues.supplierCurrency;
const leaseObjectPrice = kpDataPrice.values?.leaseObjectPrice ?? defaultValues.leaseObjectPrice;
const supplierDiscountRub =
kpDataPrice.values?.supplierDiscountRub ?? defaultValues.supplierDiscountRub;
let plPriceRub = 0;
if (supplierCurrency && leaseObjectPrice) {
plPriceRub = await RUB({
currencyid: supplierCurrency,
value: leaseObjectPrice,
});
}
let discountRub = 0;
if (supplierCurrency && supplierDiscountRub) {
discountRub = await RUB({
currencyid: supplierCurrency,
value: supplierDiscountRub,
});
}
const importProgram = quote?.evo_program_import_subsidyid ?? defaultValues.importProgram;
const subsidy = quote?.evo_subsidyid ?? defaultValues.subsidy;
const { getSubsidySum } = helper({ apolloClient });
const subsidySum = await getSubsidySum({
addEquipmentPrice: kpDataPrice.values?.addEquipmentPrice ?? 0,
discountRub,
importProgramSum: kpDataPrice.values?.importProgramSum ?? 0,
plPriceRub,
subsidy: quote?.evo_subsidyid ?? defaultValues.subsidy,
});
const { getImportProgramSum } = helper({ apolloClient });
const importProgramSum = await getImportProgramSum({
discountRub,
importProgram,
plPriceRub,
});
return {
values: {
importProgram,
importProgramSum,
subsidy,
subsidySum,
},
};
}