Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const { Client } = require('pg');
- const client = new Client({
- host: 'localhost',
- user: 'postgres',
- port: 5432,
- password: '123',
- database: 'AltOne',
- });
- function calculateData(result) {
- let monthCounter = 0;
- let interestDebt = 0;
- let principalDebt = 0;
- let balanceDebt = result.credit_amount;
- const monthlyRate = +(result.bet_amount / (100 * 12));
- const monthlyPaymentDenominator = (1 - ((1 + monthlyRate) ** (-result.credit_term)));
- const monthlyPayment = +(result.credit_amount * (monthlyRate / monthlyPaymentDenominator));
- return () => {
- monthCounter += 1;
- interestDebt = (balanceDebt * monthlyRate);
- principalDebt = (monthlyPayment - interestDebt);
- balanceDebt -= principalDebt;
- return {
- a: monthCounter,
- b: monthlyPayment.toFixed(2),
- d: principalDebt.toFixed(2),
- c: interestDebt.toFixed(2),
- e: balanceDebt.toFixed(2),
- };
- };
- }
- async function getData(applicationId) {
- const rqst1 = 'select credit_amount, bet_amount, credit_term from applications where id = $1';
- const rqst2 = 'select sum(service_cost)'
- + ' from application_additional_services'
- + ' join additional_services asm on asm.id = application_additional_services.additional_service_id'
- + ' where application_id = $1';
- try {
- client.connect();
- const objectsArray = [];
- const appData = await client.query(rqst1, [applicationId]);
- const serviceCostData = await client.query(rqst2, [applicationId]);
- appData.rows[0].credit_amount = +appData.rows[0].credit_amount + +serviceCostData.rows[0].sum;
- const calculator = calculateData(appData.rows[0]);
- console.log(`Сумма кредита: ${appData.rows[0].credit_amount}`);
- console.log(`Ставка: ${appData.rows[0].bet_amount}`);
- console.log(`Срок: ${appData.rows[0].credit_term}`);
- console.log('Месяц | Ежемесячный платеж | Основной долг | Долг по процентам | Остаток');
- for (let i = 0; i < appData.rows[0].credit_term; i += 1) {
- objectsArray.push(calculator());
- console.log(`${objectsArray[i].a} | ${objectsArray[i].b} | ${objectsArray[i].c} | ${objectsArray[i].d} | ${objectsArray[i].e}`);
- }
- return objectsArray;
- } catch (err) { return err.stack; } finally { client.end(); }
- }
- getData(5);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement