Mortcalcsplus > Mortgage Calculators / Calc Monthlypayment.php

Questions? Need Help? Want to share? » PHP Forum
Script Name:
Mortcalcsplus

Download:
mortcalcsplus.zip

Category:
Calculators

Archive Content:

Mortgage Calculators

Mortgage Calculators > Images

Mortgage Calculators > Includes

Mortgage Calculators > Includes > Smarty

Mortgage Calculators > Includes > Smarty > Core

Mortgage Calculators > Includes > Smarty

Mortgage Calculators > Includes > Smarty > Plugins

Mortgage Calculators > Includes > Smarty

Mortgage Calculators > Includes > Smarty > Templates C

Mortgage Calculators

Mortgage Calculators > Templates

Calc Monthlypayment.php:


<?php
// Mortgage Calculators Plus
// ------------------------------------------------------------------------
// Copyright (c) 2005,  MortgageCalculatorsPlus.com
// ------------------------------------------------------------------------
// This file is part of "Mortgage Calculators Plus" software
// ------------------------------------------------------------------------

    
include('includes/overall.inc.php');
    
    
$param get_request_var('param');
    
    if(
$param){
        
$param['loan_amount'] = preg_replace('/[^0-9\.]/',  '',  $param['loan_amount']);
        if(
$param['loan_amount'] < $config['min_loan_amount'] || $param['loan_amount'] > $config['max_loan_amount']) $err['loan_amount'] = true;
        if(
$param['interest_rate'] < $config['min_interest_rate'] || $param['interest_rate'] > $config['max_interest_rate']) $err['interest_rate'] = true;
        if(
$param['loan_term'] < $config['min_loan_term'] || $param['loan_term'] > $config['max_loan_term']) $err['loan_term'] = true;
        
        if(!isset(
$err)){
            
$summary['loan_amount']     = $config['currency_symb'].number_format($param['loan_amount'],  $config['decimals'],  $config['dec_point'],  $config['thousands_sep']);
            
$summary['interest_rate']   = number_format($param['interest_rate'],  $config['decimals'],  $config['dec_point'],  $config['thousands_sep']).'%';
            
$summary['loan_term']       = $param['loan_term'];
            
$summary['monthly_payment'] = monthly_payment($param['loan_amount'],  $param['interest_rate'],  $param['loan_term'],  $config['currency_symb'],  $config['decimals'],  $config['dec_point'],  $config['thousands_sep'],  true);
            
$smarty->assign('summary',  $summary);
            
            if(!
$param['calculate']){
                
$payments loan_payments($param['loan_amount'],  $param['interest_rate'],  $param['loan_term'],  $config['currency_symb'],  $config['decimals'],  $config['dec_point'],  $config['thousands_sep'],  true);
                
$smarty->assign('payments',  $payments);
            }
            if(
$param['download_csv']){
                
$payments loan_payments($param['loan_amount'],  $param['interest_rate'],  $param['loan_term'],  $config['currency_symb'],  $config['decimals'],  $config['dec_point'],  $config['thousands_sep'],  false);

                
header('Content-Type: application/octetstream');
                
header('Content-Disposition: attachment; filename="monthly-amortization.csv"');
                
header('Cache-Control: no-store,  no-cache,  must-revalidate,  pre-check=0,  post-check=0,  max-age=0');
                
header('Pragma: no-cache');
                
                echo 
'"Year", "Month", "Interest Paid", "Principal Paid", "Balance"'."\n";
                foreach(
$payments as $payment){
                    echo 
"$payment[year], $payment[month], $payment[interest], $payment[principal], $payment[balance]\n";
                }
                exit;
            }
        } else {
            
$smarty->assign('err',  $err);
        }
    } elseif(
$config['fill_monthlypayment']) {
        
$param['loan_amount']   = $config['loan_amount'];
        
$param['interest_rate'] = $config['interest_rate'];
        
$param['loan_term']     = $config['loan_term'];
        
$smarty->assign('param',  $param);
    }
    
$smarty->assign('contents',  $smarty->fetch('calc-monthlypayment.tpl'));
    
$smarty->display('main.tpl');

    
/* ----- FUNCTIONS ----- */
    
function monthly_payment($loan_amount,  $interest_rate,  $loan_term,  $currency_symb,  $decimals,  $dec_point,  $thousands_sep,  $format_numbers false){
        
$payment $loan_amount $interest_rate 100 12 / (pow(($interest_rate 100 12),  -$loan_term*12));
        if(
$format_numbers$payment $currency_symb.number_format($payment,  $decimals,  $dec_point,  $thousands_sep);
        return 
$payment;
    }
    
    function 
loan_payments($loan_amount,  $interest_rate,  $loan_term,  $currency_symb,  $decimals,  $dec_point,  $thousands_sep,  $format_numbers false){
        
$balance  $loan_amount;
        
$periods  $loan_term 12;
        
$interest $interest_rate 100 12;
        
$payment  $loan_amount $interest / (pow(($interest),  -$periods));
        for(
$period 1$period <= $periods$period++){
            
$payments[$period]['year']      = ceil($period 12);
            
$payments[$period]['month']     = $period 12 $period 12 12;
            
$payments[$period]['interest']  = $balance $interest;
            
$payments[$period]['principal'] = $payment $balance $interest;
            
$payments[$period]['balance']   = $balance $balance $payment $balance $interest;
            
            
$totals['interest']  += $payments[$period]['interest'];
            
$totals['principal'] += $payments[$period]['principal'];
            
$totals['balance']    = $payments[$period]['balance'];

            if(
$payments[$period]['balance'] < 0$payments[$period]['balance'] = 0;

            if(
$payments[$period]['month'] == 12){
                if(
$totals['balance'] < 0$totals['balance'] = 0;
                
$totals['interest']  = $currency_symb.number_format($totals['interest'],  $decimals,  $dec_point,  $thousands_sep);
                
$totals['principal'] = $currency_symb.number_format($totals['principal'],  $decimals,  $dec_point,  $thousands_sep);
                
$totals['balance']   = $currency_symb.number_format($totals['balance'],  $decimals,  $dec_point,  $thousands_sep);

                
$payments[$period]['totals'] = $totals;
                
$totals = array();
            }
            
            if(
$format_numbers){
                
$payments[$period]['interest']  = $currency_symb.number_format($payments[$period]['interest'],  $decimals,  $dec_point,  $thousands_sep);
                
$payments[$period]['principal'] = $currency_symb.number_format($payments[$period]['principal'],  $decimals,  $dec_point,  $thousands_sep);
                
$payments[$period]['balance']   = $currency_symb.number_format($payments[$period]['balance'],  $decimals,  $dec_point,  $thousands_sep);
            }
        }
        return 
$payments;
    }
?>


Other Calculators Scripts:

WebMaster Resources Home

©RingsWorld.com