Mortcalcsplus > Mortgage Calculators / Calc Biweeklypayment.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 Biweeklypayment.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)){
            
$mo_periods  $param['loan_term'] * 12;
            
$mo_balance  $bw_balance $param['loan_amount'];
            
$mo_interest $param['interest_rate'] / 12 100;
            
$mo_payment  $mo_balance $mo_interest / (pow(($mo_interest),  -$mo_periods));
            
$bw_interest $param['interest_rate'] / 26 100;
            
$bw_payment  $mo_payment 2;
            
$bw_periods  round(-log($bw_interest $bw_balance $bw_payment) / log($bw_interest));
            
            for(
$period 1$period <= $mo_periods$period++){
                
$mo_balance $mo_balance * ($mo_interest) - $mo_payment;
                if(
$mo_balance 0$mo_balance 0;
                if((
$period 12 == 0) || ($period == $mo_periods)){
                    
$year $param['start_year'] + ceil($period 12);
                    
$balances[$year]['year']       = $config['month_names'][$param['start_month']].',  '.$year;
                    if(
$param['download_csv']){
                        
$balances[$year]['mo_balance'] = $mo_balance;
                    } else {
                        
$balances[$year]['mo_balance'] = $config['currency_symb'].number_format($mo_balance,  $config['decimals'],  $config['dec_point'],  $config['thousands_sep']);
                    }
                }
            }
            for(
$period 1$period <= $bw_periods$period++){
                
$bw_balance $bw_balance * ($bw_interest) - $bw_payment;
                if(
$bw_balance 0$bw_balance 0;
                if((
$period 26 == 0) || ($period == $bw_periods)){
                    
$year $param['start_year'] + ceil($period 26);
                    
$balances[$year]['year']       = $config['month_names'][$param['start_month']].',  '.$year;
                    if(
$param['download_csv']){
                        
$balances[$year]['bw_balance'] = $bw_balance;
                    } else {
                        
$balances[$year]['bw_balance'] = $config['currency_symb'].number_format($bw_balance,  $config['decimals'],  $config['dec_point'],  $config['thousands_sep']);
                    }
                }
            }
            if(!
$param['calculate']) $smarty->assign('balances',  $balances);

            
$summary['mo_periods']   = $param['loan_term'] * 12;
            
$summary['mo_payment']   = $param['loan_amount'] * $param['interest_rate'] / 12 100 / (pow(($param['interest_rate'] / 12 100),  -$mo_periods));
            
$summary['mo_interest']  = $summary['mo_payment'] * $summary['mo_periods'] - $param['loan_amount'];
            
$summary['mo_end_date']  = get_date($param['start_year'],  $param['start_month'] + $summary['mo_periods'] - 1,  'M,  Y',  $config['month_names']);
            
            
$summary['bw_payment']   = $summary['mo_payment'] / 2;
            
$summary['bw_periods']   = round(-log($param['interest_rate'] / 26 100 $param['loan_amount'] / $summary['bw_payment']) / log($param['interest_rate'] / 26 100));
            
$summary['bw_moperiods'] = round(($summary['bw_periods'] / 26) * 12);
            
$summary['bw_interest']  = $summary['bw_payment'] * $summary['bw_periods'] - $param['loan_amount'];
            
$summary['bw_end_date']  = get_date($param['start_year'],  $param['start_month'] + $summary['bw_moperiods'] - 1,  'M,  Y',  $config['month_names']);
            list(
$summary['time_saved']['years'],  $summary['time_saved']['months']) = get_year_month(0,  $mo_periods $summary['bw_moperiods']);
            
$summary['interest_saved'] = $summary['mo_interest'] - $summary['bw_interest'];
            
            
$summary['mo_payment']     = $config['currency_symb'].number_format($summary['mo_payment'],  $config['decimals'],  $config['dec_point'],  $config['thousands_sep']);
            
$summary['bw_payment']     = $config['currency_symb'].number_format($summary['bw_payment'],  $config['decimals'],  $config['dec_point'],  $config['thousands_sep']);
            
$summary['mo_interest']    = $config['currency_symb'].number_format($summary['mo_interest'],  $config['decimals'],  $config['dec_point'],  $config['thousands_sep']);
            
$summary['bw_interest']    = $config['currency_symb'].number_format($summary['bw_interest'],  $config['decimals'],  $config['dec_point'],  $config['thousands_sep']);
            
$summary['interest_saved'] = $config['currency_symb'].number_format($summary['interest_saved'],  $config['decimals'],  $config['dec_point'],  $config['thousands_sep']);
            
            
$smarty->assign('summary',  $summary);
            
            if(
$param['download_csv']){
                
header('Content-Type: application/octetstream');
                
header('Content-Disposition: attachment; filename="biweekly-payments.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", "Monthly Payment", "Bi-weekly Payment"'."\n";
                foreach(
$balances as $balance){
                    if(!
$balance['bw_balance']) $balance['bw_balance'] = 0;
                    echo 
'"'.$balance['year'].'"'.", $balance[mo_balance], $balance[bw_balance]\n";
                }
                exit;
            }
        } else {
            
$smarty->assign('err',  $err);
        }
    } elseif(
$config['fill_biweeklypayment']) {
        
$param['loan_amount']   = $config['loan_amount'];
        
$param['interest_rate'] = $config['interest_rate'];
        
$param['loan_term']     = $config['loan_term'];
        
$param['start_year']     = date('Y');
        
$param['start_month']    = date('n');
        
$smarty->assign('param',  $param);
    }
    for(
$i=$config['min_start_year']; $i<=$config['max_start_year']; $i++) $years[$i] = $i;
    
$smarty->assign('years',  $years);

    
$smarty->assign('contents',  $smarty->fetch('calc-biweeklypayment.tpl'));
    
$smarty->display('main.tpl');

    
/* ----- FUNCTIONS ----- */
    
function get_date($year,  $month,  $group_by 'M,  Y',  $month_names = array(1=>'Jan',  'Feb',  'Mar',  'Apr',  'May',  'Jun',  'Jul',  'Aug',  'Sep',  'Oct',  'Nov',  'Dec')){
        
$year  $year intval($month 12);
        
$month $month 12;
        if(!
$month){
            
$month 12;
            
$year -= 1;
        }
        return 
str_replace(array('M',  'Y'),  array($month_names[$month],  $year), $group_by);
    }
    function 
get_year_month($year,  $month){
        
$year  $year intval($month 12);
        
$month $month 12;
        if(!
$month){
            
$month 12;
            
$year -= 1;
        }
        return array(
$year,  $month);
    }
?>


Other Calculators Scripts:

WebMaster Resources Home

©RingsWorld.com