Skip to content

Instantly share code, notes, and snippets.

@romanzhivo
Last active August 23, 2019 21:48
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save romanzhivo/61b86a54c36da396da2f9544955ae404 to your computer and use it in GitHub Desktop.
Save romanzhivo/61b86a54c36da396da2f9544955ae404 to your computer and use it in GitHub Desktop.
Сбербанк: функция подсчёта переплаты по ипотеке и полной стоимости ипотеки
// Подсчёт суммы переплаты:
// не передавать аргументов или указать аргументом одну из строк: 'процент' или 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 'Ожидайте...';
}
@romanzhivo
Copy link
Author

romanzhivo commented Jul 15, 2019

Если вы взяли ипотеку в Сбербанке, то при входе в личный кабинет (Сбербанк Онлайн) в разделе Кредиты можно кликнуть по названию кредита и перейти на страницу кредита.
Среди прочей информации там можно ознакомиться с Графиком платежей, остатком основного долга, суммой ближайшего платежа, суммой, которую осталось погасить на текущую дату, начисленными процентами на текущую дату с момента последнего платежа. Но нигде, почему-то, нет информации о том, какова будет сумма переплаты (уплаченные проценты за весь период оплаты кредита) и общая сумма долга, то есть основной долг + проценты по кредиту за весь период.
Эта информация присутствует в первоначальном графике платежей, который вам распечатают при оформлении ипотеки. Также переплату и всю сумму выплат можно посчитать во многих существующих калькуляторах ипотеки, есть калькуляторы, которые учитывают досрочные погашения, но получается, что платежи всё равно нужно указывать вручную. Такой калькулятор есть в сервисе Сбербанка - ДомКлик, но доступен он только на этапе оформления ипотеки, и после оформления доступ к нему пропадает. То есть, если вы досрочно частично погасите кредит, то для получения информации о текущем прогнозе по переплате вам нужно будет или вручную посчитать сумму всех платежей по процентам, или обратиться в Сбербанк, что в обоих случаях не очень удобно.

Собственно, данная функция позволяет вычислить 2 значения:

  • сумма выплат процентов по кредиту на дату окончания платежей с учётом текущих досрочных погашений
  • сумма общих выплат по кредиту: основной долг + проценты

Проверял только на кредите-ипотеке, но, скорее всего, будет работать и для обычных кредитов, т.к., предположительно, разметка графика платежей не меняется.

Функция основана на данных, извлекаемых из разметки, поскольку Сбербанк Онлайн разработан по принципу, когда бэкэнд возвращает не только чистые данные, но и данные в разметке.
Функция зависима от библиотеки jQuery (но по умолчанию на сайте Сбербанк Онлайн библиотека подключена глобально).
Функция полностью безопасна.

Для работы функции нужно:

  • авторизоваться в личном кабинете и перейти на страницу с кредитом по ипотеке
  • открыть консоль браузера сочетанием клавиш ctrl + shift + j
  • скопировать и вставить функцию в консоль
  • нажать Ввод (Enter)
  • вызвать функцию с нужным параметром ('процент' или 'сумма', 'percent' или 'total'): написать в консоли getMyPayments('процент') или getMyPayments('сумма') и нажать Ввод (Enter)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment