Скрипт калькулятора ипотечного рефинансирования (PHP, JS)
←
Скрипты калькуляторов
Пример работы калькулятора рефинансирования ипотеки можно посмотреть здесь
здесь
Скачать архив
Файл refinancing-hypothec.php
<style> .red{ color:#FF0000} .green{ color:#009F55} </style> <h2>Калькулятор рефинансирования ипотеки</h2> <form id="form" method="post"> <em>Остаток долга по ипотеке</em> <br> <input type="text" name="sum" value=""> <br> <h4>Параметры текущей ипотеки</h4> <em>Остаток срока</em> <table> <tr> <td> <input type="text" name="srok" value=""> </td> <td> <select name="period"> <option value="1">месяцев</option> <option value="2">лет</option> </select> </td> </tr> </table> <em>Текущая ставка, %</em> <br> <input type="text" name="proc" value=""> <br> <em>Текущий вид платежа</em> <br> <select name="vid"> <option value="1">аннуитетный</option> <option value="2">дифференцированный</option> </select> <br> <label><input type="checkbox" name="graf1" value="1" checked> Показывать график платежей</label> <br> <br> <h4>Параметры рефинансирования ипотеки</h4> <em>Новый срок</em> <table class="tabtr2"> <tr> <td> <input type="text" name="srok_ref" value=""> </td> <td> <select name="period_ref"> <option value="1">месяцев</option> <option value="2">лет</option> </select> </td> </tr> </table> <em>Новая ставка, %</em> <br> <input type="text" name="proc_ref" value=""> <br> <em>Расходы на переоформление</em> <br> <input type="text" name="dop_ref" value=""> <br> <em>Новый вид платежа</em> <br> <select name="vid_ref"> <option value="1">аннуитетный</option> <option value="2">дифференцированный</option> </select> <br> <label><input type="checkbox" name="graf2" value="1" checked> Показывать график платежей</label> </form> <div id="calc" style="cursor:pointer; border:1px solid #333" >Рассчитать</div> <div id="result"></div> <br> <a rel="nofollow" target="_blank" href="https://your-online.ru/financial-calculators/refinancing-hypothec">Источник</a> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script> $("#calc").click(function(){ var msg = $('#form').serialize(); $.ajax({ type: 'POST', url: 'ajax_refinancing-hypothec.php', data: msg, success: function(data) { $('#result').html(data); } }); }); </script>
Файл ajax_refinancing-hypothec.php
<? function okr($a) { return number_format(abs($a), 2, ',', ' '); } function okr0($a) { return number_format(abs($a), 0, ',', ' '); } function do_c($a) { $a = preg_replace('/[^0-9,\.]/u', '', $a); $a = str_replace(',','.',$a); $a = floatval($a); return $a; } function m_an ($sum, $proc, $srok, $dop=0) { $all_summa_platega = 0; $all_osn_dolg = 0; $all_nach_procent = 0; $p = $proc/100/12; $koef = $p * pow((1+$p),$srok) / (pow((1+$p), $srok) - 1); ob_start(); echo '<br>'; echo '<table class="p_table tab2">'; echo '<tr>'; echo '<th>'; echo '<div class="div100"></div>'; echo 'Дата'; echo '</th>'; echo '<th>'; echo '<div class="div100"></div>'; echo 'Сумма платежа'; echo '</th>'; echo '<th>'; echo '<div class="div100"></div>'; echo 'Основной долг'; echo '</th>'; echo '<th>'; echo '<div class="div100"></div>'; echo 'Начисленные проценты'; echo '</th>'; echo '<th>'; echo '<div class="div100"></div>'; echo 'Остаток задолженности'; echo '</th>'; echo '</tr>'; for($i=1; $i<=$srok; $i++) { echo '<tr>'; if(!$ostatok) $ostatok = $sum; $summa_platega = $koef*$sum; $nach_procent = $ostatok*$proc/12/100; $osn_dolg = $summa_platega - $nach_procent; $ostatok = $ostatok - $osn_dolg; $all_summa_platega = $all_summa_platega + $summa_platega; $all_osn_dolg = $all_osn_dolg + $osn_dolg; $all_nach_procent = $all_nach_procent + $nach_procent; echo '<td>'; echo $i.'-й месяц'; echo '</td>'; echo '<td>'; echo okr($summa_platega); echo '</td>'; echo '<td>'; echo okr($osn_dolg); echo '</td>'; echo '<td>'; echo okr($nach_procent); echo '</td>'; echo '<td>'; echo okr($ostatok); echo '</td>'; echo '</tr>'; } echo '<tr>'; echo '<td>'; echo '<b>Всего:</b>'; echo '</td>'; echo '<td>'; echo '<b>'.okr($all_summa_platega).'</b>'; echo '</td>'; echo '<td>'; echo '<b>'.okr($all_osn_dolg).'</b>'; echo '</td>'; echo '<td>'; echo '<b>'.okr($all_nach_procent).'</b>'; echo '</td>'; echo '<td>'; echo '</td>'; echo '</tr>'; echo '</table>'; $buf = ob_get_contents(); ob_end_clean(); $all = $all_summa_platega+$dop; $arr['table'] = $buf; $arr['all'] = $all; $arr['dop'] = $dop; $arr['all_nach_procent'] = $all_nach_procent; $arr['all_summa_platega'] = $all_summa_platega; $arr['month_payment'] = okr($all_summa_platega/$srok); $arr['body'] = $buf; return $arr; } function m_diff ($sum, $proc, $srok, $dop=0) { $all_summa_platega = 0; $all_osn_dolg = 0; $all_nach_procent = 0; $osn_dolg = $sum/$srok; $arr_sum = array(); ob_start(); echo '<br>'; echo '<table class="p_table tab2">'; echo '<tr>'; echo '<th>'; echo '<div class="div100"></div>'; echo 'Дата'; echo '</th>'; echo '<th>'; echo '<div class="div100"></div>'; echo 'Сумма платежа'; echo '</th>'; echo '<th>'; echo '<div class="div100"></div>'; echo 'Основной долг'; echo '</th>'; echo '<th>'; echo '<div class="div100"></div>'; echo 'Начисленные проценты'; echo '</th>'; echo '<th>'; echo '<div class="div100"></div>'; echo 'Остаток задолженности'; echo '</th>'; echo '</tr>'; for($i=1; $i<=$srok; $i++) { echo '<tr>'; if(!$ostatok) $ostatok = $sum; $nach_procent = $ostatok*$proc/12/100; $summa_platega = $nach_procent+$osn_dolg; $ostatok = $sum - $osn_dolg*$i; $all_summa_platega = $all_summa_platega + $summa_platega; $all_osn_dolg = $all_osn_dolg + $osn_dolg; $all_nach_procent = $all_nach_procent + $nach_procent; $arr_sum[] = $summa_platega; echo '<td>'; echo $i.'-й месяц'; echo '</td>'; echo '<td>'; echo okr($summa_platega); echo '</td>'; echo '<td>'; echo okr($osn_dolg); echo '</td>'; echo '<td>'; echo okr($nach_procent); echo '</td>'; echo '<td>'; echo okr($ostatok); echo '</td>'; echo '</tr>'; } echo '<tr>'; echo '<td>'; echo '<b>Всего:</b>'; echo '</td>'; echo '<td>'; echo '<b>'.okr($all_summa_platega).'</b>'; echo '</td>'; echo '<td>'; echo '<b>'.okr($all_osn_dolg).'</b>'; echo '</td>'; echo '<td>'; echo '<b>'.okr($all_nach_procent).'</b>'; echo '</td>'; echo '<td>'; echo '</td>'; echo '</tr>'; echo '</table>'; $buf = ob_get_contents(); ob_end_clean(); $all = $all_summa_platega+$dop; $arr['table'] = $buf; $arr['all'] = $all; $arr['dop'] = $dop; $arr['all_nach_procent'] = $all_nach_procent; $arr['all_summa_platega'] = $all_summa_platega; $arr['month_payment'] = okr(max($arr_sum)).' ... '.okr(min($arr_sum)); $arr['body'] = $buf; return $arr; } $sum = do_c($_POST['sum']); $proc = do_c($_POST['proc']); $period = intval($_POST['period']); if($period == 1) $srok = abs(intval($_POST['srok'])); elseif($period == 2) $srok = abs(12*intval($_POST['srok'])); $vid = intval($_POST['vid']); $dop_ref = do_c($_POST['dop_ref']); $proc_ref = do_c($_POST['proc_ref']); $period_ref = intval($_POST['period_ref']); if($period_ref == 1) $srok_ref = abs(intval($_POST['srok_ref'])); elseif($period_ref == 2) $srok_ref = abs(12*intval($_POST['srok_ref'])); $vid_ref = intval($_POST['vid_ref']); if(!$sum) $err .= 'Не указан остаток долга<br>'; if(!$srok) $err .= 'Не указан остаток срока<br>'; if(!$proc) $err .= 'Не указана текущая процентная ставка<br>'; if($sum > 100000000) $err .= 'Слишком большой остаток долга<br>'; if($srok > 600) $err .= 'Слишком большой остаток срока<br>'; if($proc > 1000) $err .= 'Слишком большая текущая процентная ставка<br>'; if(!$srok_ref) $err .= 'Не указан новый срок<br>'; if(!$proc_ref) $err .= 'Не указана новая процентная ставка<br>'; if($dop_ref > 10000000) $err .= 'Слишком большие расходы на переоформление<br>'; if($srok_ref > 600) $err .= 'Слишком большой новый срок<br>'; if($proc_ref > 1000) $err .= 'Слишком большая новая процентная ставка<br>'; if($err) echo $err; else { if($vid==1) { echo '<h4 class="red">Текущая ипотека</h4>'; $arr = m_an ($sum, $proc, $srok); } elseif($vid==2) { echo '<h4 class="red">Текущая ипотека</h4>'; $arr = m_diff ($sum, $proc, $srok); } echo '<b>Проценты за кредит:</b> '.okr($arr['all_nach_procent']).'<br>'; echo '<b>Ежемесячный платеж:</b> '.$arr['month_payment'].'<br>'; echo '<b>Общая сумма:</b> '.okr($arr['all']).'<br>'; if($_POST['graf1']) echo $arr['body']; if($vid_ref==1) { echo '<h4 class="green">Рефинансирование ипотеки</h4>'; $arr2 = m_an ($sum, $proc_ref, $srok_ref, $dop_ref); } elseif($vid_ref==2) { echo '<h4 class="green">Рефинансирование ипотеки</h4>'; $arr2 = m_diff ($sum, $proc_ref, $srok_ref, $dop_ref); } echo '<b>Проценты за кредит:</b> '.okr($arr2['all_nach_procent']).' '; if($arr2['all_nach_procent'] < $arr['all_nach_procent']) echo '<span class="green"> (- '.okr(($arr['all_nach_procent']-$arr2['all_nach_procent'])).')</span>'; else echo '<span class="red"> (+ '.okr(($arr2['all_nach_procent']-$arr['all_nach_procent'])).')</span>'; echo '<br>'; echo '<b>Ежемесячный платеж:</b> '.$arr2['month_payment'].'<br>'; if($arr2['dop']) echo '<b>Переоформление:</b> <span class="red">+ '.okr($arr2['dop']).'</span><br>'; echo '<b>Общая сумма:</b> '.okr($arr2['all']).' '; if($arr2['all'] < $arr['all']) echo '<span class="green"> (- '.okr(($arr['all']-$arr2['all'])).')</span>'; else echo '<span class="red"> (+ '.okr(($arr2['all']-$arr['all'])).')</span>'; echo '<br>'; if($_POST['graf2']) echo $arr2['body']; } ?>
Поделитесь информацией с друзьями
Скачать перечень калькуляторов
Другие скрипты
Моё
Моё
×
Добавить текущую страницу в "Моё"
Удалить выбранное