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 { 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, }, }; }