| Server IP : 185.252.147.100 / Your IP : 216.73.216.43 Web Server : nginx/1.27.3 System : Linux mitrofanov.ru 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 User : mitr ( 1000) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/html/finance.mitrofanov.ru/public/assets/js/ |
Upload File : |
//-----------------------------------------------------------------------
// ПРОЦЕНТ ГОДОВЫХ
percentPerYear = 48;
// ----------------------------------------------------------------------
//ПОДКЛЮЧЕНИЕ К ИНПУТАМ ИЗ CALCULATOR.HTML
//------------------------------------------------------------------------
summa = document.getElementById("summa");
let summaCount;
month = document.getElementById("months");
let monthCount;
monthPay = document.getElementById("months-pay");
let monthPayCount;
summaRange = document.getElementById("summa-range");
let summaRangeCount;
monthRange = document.getElementById("months-range");
let monthRangeCount;
monthPayRange = document.getElementById("pay-range");
let monthPayRangeCount;
sumToPay = document.getElementById("sum-to-pay");
sumPercentss = document.getElementById("sum-percent");
//------------------------------------------------------------------------
//ОБЪЯВЛЕНИЕ ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ
//------------------------------------------------------------------------
let od;
let allSum;
let precentPayMonth;
//------------------------------------------------------------------------
//РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ, СЛУЖИТ ЧТОБЫ НЕЛЬЗЯ БЫЛО ВВЕСТИ НИКАКИЕ СИМВОЛЫ, КРОМЕ ЦИФР И ПРОБЕЛОВ
//------------------------------------------------------------------------
let regex = /[^ \d]/g; // регулярка только цифры
summa.oninput = function(){
this.value = this.value.replace(regex, '');
}
month.oninput = function(){
this.value = this.value.replace(regex, '');
}
monthPay.oninput = function(){
this.value = this.value.replace(regex, '');
}
//------------------------------------------------------------------------
function summaRaschet() {
if(summa.value > 500000) {
summa.value = 500000;
monthPay.value = 41667;
}
else if (summa.value < 50000) {
summa.value = 50000;
monthPay.value = 4167;
};
if(month.value > 36) {
month.value = 36;
}
if(month.value < 2) {
month.value = 2;
}
allSum = summa.value;
od = summa.value / Number(month.value);
// СЧИТАЮ ОБЩЕЕ КОЛИЧЕСТВО ПРОЦЕНТОВ В ЗАВИСИМОСТИ ОТ КОЛИЧЕСТВА МЕСЯЦЕВ
percentPerMonth = percentPerYear / 12;
// ОБЩЕЕ КОЛИЧЕСТВО ПРОЦЕНТОВ
percentAllToPayAllMonth = Number(percentPerMonth) * month.value;
let monthPayAlll = [];
let payWithPercents;
let allSumForCycle = allSum;
dolgWithOd = summa.value;
dolgWithoutOd = summa.value;
for (i = 1; i <= month.value; i++) {
if (i == 1) {
// ТЕПЕРЬ НУЖНО ПОНЯТЬ СКОЛЬКО СОСТАВЛЯЕТ 8 ПРОЦЕНТА percentAllToPayAllMonth
// ОТ ЧИСЛА 1000 SUMMA.VALUE
whatIsWillCoef = dolgWithOd / 100;
// Ежемесячный платеж в денежном эквиваленте
whatIsWillBe = Number(whatIsWillCoef) * Number(percentAllToPayAllMonth);
whatIsWillBeCount = whatIsWillBe / month.value;
monthPayCalcccc = Number(whatIsWillBeCount) + Number(od);
monthPayAlll[i] = Math.round(monthPayCalcccc);
monthPay.value = monthPayAlll[i];
}
else if (i < month.value) {
minusOd = dolgWithoutOd - od;
dolgWithoutOdRounded = Math.round(minusOd);
whatIsWillCoef = dolgWithoutOdRounded/ 100;
// Ежемесячный платеж в денежном эквиваленте
whatIsWillBe = Number(whatIsWillCoef) * Number(percentAllToPayAllMonth);
whatIsWillBeCount = whatIsWillBe / month.value;
monthPayCalcccc = Number(whatIsWillBeCount) + Number(od);
monthPayAlll[i] = Math.round(monthPayCalcccc);
dolgWithoutOd = minusOd;
}
else if (i == month.value) {
minusOd = dolgWithoutOd - od;
whatIsWillCoef = minusOd / 100;
// Ежемесячный платеж в денежном эквиваленте
whatIsWillBe = Number(whatIsWillCoef) * Number(percentAllToPayAllMonth);
monthPayCalc = Number(whatIsWillBe) + Number(od);
whatIsWillBeCount = whatIsWillBe / month.value;
monthPayCalcccc = Number(whatIsWillBeCount) + Number(od);
monthPayAlll[i] = Math.round(monthPayCalcccc);
sum = 0;
for(var isa=1;isa<monthPayAlll.length;isa++){
sum = sum + Number(monthPayAlll[isa]);
}
paySredniy = sum / monthPayAlll.length;
monthPay.value = Math.round(paySredniy);
sumToPay.innerHTML = Math.round(sum);
sumPercentss.innerHTML = monthPayAlll;
monthPay.value = Math.round(od);
monthPayRange.value = Math.round(od);
};
};
}
//------------------------------------------------------------------------
summa.addEventListener("keyup", event => {
if (event.keyCode === 13) {
summaRaschet();
};
});
summaRange.addEventListener("input", event => {
summa.value = summaRange.value;
summaRaschet();
});
month.addEventListener("keyup", event => {
if (event.keyCode === 13) {
summaRaschet();
};
});
monthRange.addEventListener("input", event => {
month.value = monthRange.value;
summaRaschet();
});
monthPay.addEventListener("keydown", event => {
odd = monthPay.value * Number(month.value);
if (event.keyCode === 13) {
monthPay.value = monthPayRange.value;
odd = monthPay.value * Number(month.value);
if(summa.value != odd) {
summa.value = odd;
summaRange.value = odd;
summaRaschet();
}
};
});
monthPayRange.addEventListener("input", event => {
monthPay.value = monthPayRange.value;
odd = monthPay.value * Number(month.value);
if(summa.value != odd) {
summa.value = odd;
summaRange.value = odd;
summaRaschet();
}
});