Last active
August 23, 2019 21:48
-
-
Save romanzhivo/61b86a54c36da396da2f9544955ae404 to your computer and use it in GitHub Desktop.
Сбербанк: функция подсчёта переплаты по ипотеке и полной стоимости ипотеки
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Подсчёт суммы переплаты: | |
// не передавать аргументов или указать аргументом одну из строк: 'процент' или percent' | |
// Подсчёт общей суммы, включая переплату | |
// в качестве аргумента указать одну из строк: 'сумма' или total' | |
function getMyPayments(type) { | |
var creditID = window.location.search.substr(4); | |
var isParamID = window.location.search.substr(1,2) === 'id'; | |
if(!creditID || !isParamID) { | |
return 'Ошибка: Перейдите на страницу кредита'; | |
} | |
if(type !== 'total' && type !== 'сумма' && type !== 'percent' && type !== 'процент' && type !== undefined) { | |
return 'Ошибка аргумента'; | |
} | |
$.ajax({ | |
url: window.location.protocol + '//' + window.location.hostname + '/PhizIC/private/loans/info.do', | |
method: 'GET', | |
data: { | |
id: window.location.search.substr(4) | |
}, | |
success: function(response) { | |
countPayment(response); | |
}, | |
error() { | |
console.log('Ошибка'); | |
} | |
}); | |
function countPayment(response) { | |
var percent_DOM_EL = $(response).find('.cred-hist-report_b-sum.cred-hist-report_gray'); | |
var total_sum_DOM_EL = $(response).find('.cred-hist-report_b-pr.cred-hist-report_to-pay'); | |
var sum = 0; | |
var DOM_EL; | |
var property; | |
var formatted; | |
if(percent_DOM_EL.length === 0 || total_sum_DOM_EL.length === 0) { | |
console.log('Ошибка'); | |
return false; | |
} | |
if(type === 'total' || type === 'сумма') DOM_EL = total_sum_DOM_EL; | |
else if(type === 'percent' || type === 'процент' || !type) DOM_EL = percent_DOM_EL; | |
for(var prop in DOM_EL) { | |
property = Number(prop); | |
if(!isNaN(property)) { | |
var percent = DOM_EL[prop].innerHTML; | |
var nformat = percent.replace(' ',''); | |
nformat = Number(nformat.replace(',','.')); | |
sum += nformat; | |
if(property === DOM_EL.length - 1) { | |
formatted = new Number(Math.round(sum)).toLocaleString(); | |
console.log(formatted + ' рублей'); | |
} | |
} | |
} | |
} | |
return 'Ожидайте...'; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Если вы взяли ипотеку в Сбербанке, то при входе в личный кабинет (Сбербанк Онлайн) в разделе Кредиты можно кликнуть по названию кредита и перейти на страницу кредита.
Среди прочей информации там можно ознакомиться с Графиком платежей, остатком основного долга, суммой ближайшего платежа, суммой, которую осталось погасить на текущую дату, начисленными процентами на текущую дату с момента последнего платежа. Но нигде, почему-то, нет информации о том, какова будет сумма переплаты (уплаченные проценты за весь период оплаты кредита) и общая сумма долга, то есть основной долг + проценты по кредиту за весь период.
Эта информация присутствует в первоначальном графике платежей, который вам распечатают при оформлении ипотеки. Также переплату и всю сумму выплат можно посчитать во многих существующих калькуляторах ипотеки, есть калькуляторы, которые учитывают досрочные погашения, но получается, что платежи всё равно нужно указывать вручную. Такой калькулятор есть в сервисе Сбербанка - ДомКлик, но доступен он только на этапе оформления ипотеки, и после оформления доступ к нему пропадает. То есть, если вы досрочно частично погасите кредит, то для получения информации о текущем прогнозе по переплате вам нужно будет или вручную посчитать сумму всех платежей по процентам, или обратиться в Сбербанк, что в обоих случаях не очень удобно.
Собственно, данная функция позволяет вычислить 2 значения:
Проверял только на кредите-ипотеке, но, скорее всего, будет работать и для обычных кредитов, т.к., предположительно, разметка графика платежей не меняется.
Функция основана на данных, извлекаемых из разметки, поскольку Сбербанк Онлайн разработан по принципу, когда бэкэнд возвращает не только чистые данные, но и данные в разметке.
Функция зависима от библиотеки jQuery (но по умолчанию на сайте Сбербанк Онлайн библиотека подключена глобально).
Функция полностью безопасна.
Для работы функции нужно:
ctrl + shift + j
getMyPayments('процент')
илиgetMyPayments('сумма')
и нажать Ввод (Enter)