/* eslint-disable object-curly-newline */ import type { Values } from 'stores/results/types'; export const id = 'output'; export const title = 'Результаты'; export const titles: Record = { resultTotalGraphwithNDS: 'Итого по графику, с НДС', resultPlPrice: 'Стоимость ПЛ с НДС', resultPriceUpPr: 'Удорожание, год', resultIRRGraphPerc: 'IRR по графику клиента, %', resultIRRNominalPerc: 'IRR (номинал), %', resultInsKasko: 'КАСКО, НС, ДГО в графике', resultInsOsago: 'ОСАГО в графике', resultDopProdSum: 'Общая сумма доп.продуктов', resultFirstPayment: 'Первый платеж', resultLastPayment: 'Последний платеж', resultTerm: 'Срок, мес.', resultAB_FL: 'АВ ФЛ, без НДФЛ.', resultAB_UL: 'АВ ЮЛ, с НДС.', resultBonusMPL: 'Бонус МПЛ за лизинг, без НДФЛ', resultDopMPLLeasing: 'Доп.бонус МПЛ за лизинг, без НДФЛ', resultBonusDopProd: 'Бонус МПЛ за доп.продукты, без НДФЛ', resultBonusSafeFinance: 'Бонус за Safe Finance без НДФЛ', resultFirstPaymentRiskPolicy: 'Первый платеж по риск политике, %', }; const moneyFormatters = Object.fromEntries( ( [ 'resultTotalGraphwithNDS', 'resultPlPrice', 'resultInsKasko', 'resultInsOsago', 'resultDopProdSum', 'resultFirstPayment', 'resultLastPayment', 'resultAB_FL', 'resultAB_UL', 'resultBonusMPL', 'resultDopMPLLeasing', 'resultBonusDopProd', 'tbxSubsidySum', 'resultBonusSafeFinance', 'resultPriceUpPr', ] as Values[] ).map((a) => [ a, // prettier-ignore Intl.NumberFormat('ru', { style: 'currency', currency: 'RUB', }).format, ]) ); const percentFormatters = Object.fromEntries( (['resultIRRGraphPerc', 'resultIRRNominalPerc', 'resultFirstPaymentRiskPolicy'] as Values[]).map( (a) => [ a, // prettier-ignore Intl.NumberFormat('ru', { style: 'percent', minimumFractionDigits: 2, maximumFractionDigits: 2, }).format, ] ) ); const defaultFormatters = { resultTerm: Intl.NumberFormat('ru').format, }; export const formatters = Object.assign(moneyFormatters, percentFormatters, defaultFormatters);