diff --git a/apps/web/Components/Output/PaymentsTable/config.ts b/apps/web/Components/Output/PaymentsTable/config.ts index 0cba7bc..788c5a2 100644 --- a/apps/web/Components/Output/PaymentsTable/config.ts +++ b/apps/web/Components/Output/PaymentsTable/config.ts @@ -36,4 +36,49 @@ export const columns: ColumnsType = [ currency: 'RUB', }).format, }, + { + key: 'piColumn', + dataIndex: 'piColumn', + title: 'PIColumn', + render: Intl.NumberFormat('ru', { + style: 'currency', + currency: 'RUB', + }).format, + }, + { + key: 'cashflowMsfoWithCfColumn', + dataIndex: 'cashflowMsfoWithCfColumn', + title: 'CashflowMSFOWithCF', + render: Intl.NumberFormat('ru', { + style: 'currency', + currency: 'RUB', + }).format, + }, + { + key: 'creditPaymentColumn', + dataIndex: 'creditPaymentColumn', + title: 'CreditPayment', + render: Intl.NumberFormat('ru', { + style: 'currency', + currency: 'RUB', + }).format, + }, + { + key: 'cashflowMsfoColumn', + dataIndex: 'cashflowMsfoColumn', + title: 'CashflowMSFO', + render: Intl.NumberFormat('ru', { + style: 'currency', + currency: 'RUB', + }).format, + }, + { + key: 'interestColumn', + dataIndex: 'interestColumn', + title: 'Interest', + render: Intl.NumberFormat('ru', { + style: 'currency', + currency: 'RUB', + }).format, + }, ]; diff --git a/apps/web/Components/Output/PaymentsTable/index.jsx b/apps/web/Components/Output/PaymentsTable/index.jsx index afba73c..158f448 100644 --- a/apps/web/Components/Output/PaymentsTable/index.jsx +++ b/apps/web/Components/Output/PaymentsTable/index.jsx @@ -1,3 +1,4 @@ +/* eslint-disable no-negated-condition */ import { columns } from './config'; import { MAX_LEASING_PERIOD } from '@/constants/values'; import { useStore } from '@/stores/hooks'; @@ -6,11 +7,13 @@ import { observer } from 'mobx-react-lite'; import { Table } from 'ui/elements'; const PaymentsTable = observer(() => { - const { $results } = useStore(); + const { $results, $process } = useStore(); + + const unlimited = $process.has('Unlimited'); return ( !x.key.includes('Column')) : columns} dataSource={toJS($results.payments)} size="small" pagination={{ diff --git a/apps/web/api/core/types/calculate.ts b/apps/web/api/core/types/calculate.ts index 72d500a..dc8552c 100644 --- a/apps/web/api/core/types/calculate.ts +++ b/apps/web/api/core/types/calculate.ts @@ -217,6 +217,10 @@ const ColumnsSchema = z.object({ nominal: z.number(), values: z.number().array(), }), + cashflowMsfoWithCfColumn: z.object({ + sum: z.number(), + values: z.number().array(), + }), cashflowNpvColumn: z.object({ values: z.number().array(), }), @@ -240,6 +244,10 @@ const ColumnsSchema = z.object({ sum: z.number(), values: z.number().array(), }), + creditPaymentColumn: z.object({ + sum: z.number(), + values: z.number().array(), + }), creditVATColumn: z.object({ sum: z.number(), values: z.number().array(), @@ -351,6 +359,9 @@ const ColumnsSchema = z.object({ percentPaymentColumn: z.object({ values: z.number().array(), }), + piColumn: z.object({ + values: z.number().array(), + }), ratExpensesColumn: z.object({ sum: z.number(), values: z.number().array(), diff --git a/apps/web/config/schema/results.ts b/apps/web/config/schema/results.ts index 326f70f..be4744f 100644 --- a/apps/web/config/schema/results.ts +++ b/apps/web/config/schema/results.ts @@ -23,10 +23,15 @@ export const ResultValuesSchema = z.object({ }); export const ResultPaymentSchema = z.object({ + cashflowMsfoColumn: z.number(), + cashflowMsfoWithCfColumn: z.number(), + creditPaymentColumn: z.number(), + interestColumn: z.number(), key: z.string(), ndsCompensation: z.number(), num: z.number(), paymentSum: z.number(), + piColumn: z.number(), redemptionAmount: z.number(), }); diff --git a/apps/web/server/routers/calculate/lib/transform.ts b/apps/web/server/routers/calculate/lib/transform.ts index e82bcd2..cda9345 100644 --- a/apps/web/server/routers/calculate/lib/transform.ts +++ b/apps/web/server/routers/calculate/lib/transform.ts @@ -21,10 +21,15 @@ export function transformCalculateResults({ length: preparedValues.nmper, }, (_, i) => ({ + cashflowMsfoColumn: columns.cashflowMsfoColumn.values[i + 1], + cashflowMsfoWithCfColumn: columns.cashflowMsfoWithCfColumn.values[i + 1], + creditPaymentColumn: columns.creditPaymentColumn.values[i + 1], + interestColumn: columns.interestColumn.values[i + 1], key: String(i + 1), ndsCompensation: columns.vatColumn.values[i + 1], num: i + 1, paymentSum: columns.sumWithVatColumn.values[i + 1], + piColumn: columns.piColumn.values[i + 1], redemptionAmount: columns.sumRepaymentColumn.values[i + 1], }) );