PHP скрипт ипотечного калькулятора
В рамках работы над очередным крупным порталом посвященного недвижимости, был написан скрипт, вернее даже целый компонент «Профессиональный ипотечный калькулятор«. Сразу оговорюсь, что сама идея не нова, и мы в качестве образца решили использовать модель калькулятора с сайта (информация была скрыта по просьбе трудящихся). Иными словами задача стояла следующая: — «Сделать полную копию, аналог этому калькулятору». Разумеется аналог получился схожим лишь только визуально, для пользователя. Все обслуживающие скрипты, формулы и процессы интеграции калькулятора в уже работающую CMS были уникальны.
Подробно о работе ипотечного калькулятора.
Калькулятор был полностью написан на PHP, часть визуального оформления, я именно HTML и CSS были позаимствованы у так называемого донора (минимализм до нельзя). Так же наш калькулятор, в процессе расчетов обращается к базе mySQL для получения курсов нужных нам валют — USD, EUR (предварительно эти и многие другие курсы валют, заносятся в базу, ежечасно, специально написанным парсером).
Алгоритм работы
Пользователь переходит на страницу калькулятора и в соответствующей форме указывает все исходные значения для расчетов. Но предварительно выбрав тип расчета:
- Ежемесячные платежи исходя из известной цены квартиры
- Бюджет покупки квартиры исходя из ежемесячных платежей
Далее в зависимости от типа расчета, пользователь указывает «Стоимость квартиры» или «Ежемесячный платеж«. Заполняет поля «Первоначальный взнос«, «Ставка кредита» (в процентах) и «Срок кредитования» (кол-во лет). Так же пользователь может указать предпочитаемую валюту на против каждого поля, это может быть весьма удобным при покупке недвижимости за рубежом. Ипотечный калькулятор сам пересчитает всё, по текущему курсу валют.
Формулы по которым производится расчет
Для расчета и построения графика платежей исходя из известной цены квартиры, с отображением ежемесячного платежа (с отдельными выводом процентов по кредиту и суммы погашения основного долга), используются формула для «Погашение кредита аннуитетными платежами» взятая с сайта banki.ru за что ему отдельное спасибо.
t— количество периодов оплаты;
Кр — сумма кредита;
k — процентная ставка, начисляемая на задолженность за период;
BK — размер платежа за i — й период (i принимает значения от 1 до t);
Вычисляем общую сумму кредита, которую пользователь сможет получить (из сумму вычтены проценты, за пользование кредитом)
BK=Кр * k * (1+k)^t / ((1+k)^t — 1)
Для расчета и постарения графика исходя из ежемесячных платежей, используется формула:
Кр = BK * ((1+k)^t — 1) / (1+k)^t / k
Построение графиков
Все графики строятся с использованием библиотеки Google jsAPI из Google Chart Tools. Раньше мне не приходилось работать с этим замечательным инструментом, но тем не менее его удалось в течении получаса интегрировать в калькулятор и начать его использование. Стоит заметить, что с помощью этой библиотеки можно строить графики любых типов (например Pie Chart, Line Chart, Column Chart, Area Chart, Tree Map, Controls and Dashboards и прочие).
Приведу несколько скриншотов получившихся графиков:
Контроль ввода.
В калькуляторе реализованы методы контроля ввода пользователем данных . Для предотвращения возможных ошибок, а также для улучшения визуального отображения вводимых данных, введенная стоимость квартиры 10000000 преобразуется в 10 000 000. Это так же относится к другим числовым полям. Отвечающий за это скрипт, написанный на JavaScript был заимствован у донора. (Позже я напишу пост о принципе его работы и выложу его код).
Прочие функции.
После произведения расчетов, для удобства пользователя также предусмотрена возможность вывода страницы для последующей её печати на принтере. С помощью CSS отсекаются все ненужные блоки и меню сайта.
Кроме всего, пользователь может отредактировать введенные им значения, капелька юзабилити в этом плане не повредит.
Похожие записи
1 Comment to “PHP скрипт ипотечного калькулятора”
Оставить комментарий
Full Stack
Senior, Architect
предложить оффер
- jQuery: как получить значение атрибута?
- PHP работа с изображением, класс SimpleImage
- Интеграция с API ОСАГО сайта sravni.ru
- Комментарии на PHP, Ajax, mySQL
- PHP: Категории бесконечного уровня вложенности.
- Nginx редирект на другой сервис с сохранением URL спросил (а) Сергей
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Консольный скрипт(JavaScript) для автоматических заказов на OZON к записи
- Консольный скрипт(JavaScript) для автоматических заказов на OZON к записи
- Как создать Telegram-бота с авторизацией через сайт к записи
- PHP скрипт: каталог закладок на сайты к записи
- Валидация на PHP к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
Archive
- +2024 (25)
- Ноябрь 2024 (10)
- Октябрь 2024 (8)
- Сентябрь 2024 (1)
- Август 2024 (5)
- Май 2024 (1)
- +2023 (27)
- Ноябрь 2023 (1)
- Октябрь 2023 (13)
- Сентябрь 2023 (10)
- Апрель 2023 (1)
- Март 2023 (1)
- Февраль 2023 (1)
- +2022 (21)
- Декабрь 2022 (11)
- Ноябрь 2022 (1)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (36)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (41)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (7)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Интеграция платежной системы MoonPay на сайт по API 10.11.2024
- Парсер товаров с Taobao 08.11.2024
- Упаковка и минификация кода JavaScript онлайн 07.11.2024
- Как эффективно анализировать логи при DDOS атаке 07.11.2024
- Бот для автоматических заказов на OZON (плагин для Chrome) 07.11.2024
Появилась AJAX версия скрипта, Работает без перезагрузки страницы при проведении расчетов. Легкая установка.
Пример: http://rche.ru/calc/_ajax/index.html