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 скрипт ипотечного калькулятора”
Оставить комментарий
Senior, Architector
предложить оффер
- Nginx редирект на другой сервис с сохранением URL спросил (а) Сергей
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Интеграция Тинькофф банк Эквайринг на сайт для приема платежей к записи
- Скрипт парсинга форума к записи
- Интеграция по API с страховым маркетплейсом INSSMART к записи
- Интеграция Тинькофф банк Эквайринг на сайт для приема платежей к записи
- Joomla не пускает в админку к записи
- Все что нужно для работы с WSDL к записи
- Интеграция по API с страховым маркетплейсом INSSMART к записи
Archive
- +2023 (3)
- Апрель 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 (37)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Март 2016 (1)
- Февраль 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 (42)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (8)
- Февраль 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)
Свежие записи
- Поиск проблем на сервере (загрузка CPU 100%). Разбор. 15.04.2023
- Почему на сайте, что-то может «само» сломаться? 16.03.2023
- Как быстро писать статьи под низкочастотные запросы 28.02.2023
- Разработка сайта для Андрея Ковалёва 30.12.2022
- Разработка плагина для WordPress — Аудиогид 12.12.2022
Появилась AJAX версия скрипта, Работает без перезагрузки страницы при проведении расчетов. Легкая установка.
Пример: http://rche.ru/calc/_ajax/index.html