Как выполнить рекурсивную функцию электронного калькулятора в codeigniter? - PullRequest
0 голосов
/ 30 января 2019

У меня проблема с разработкой калькулятора электромагнитных помех.Я загружаю эту программу из Интернета и перезапускаю в php codeigniter.Программа рассчитывает только ежемесячный платеж, а не другие расчеты, она работает нормально, когда я выполняю на localhost.Пожалуйста, помогите .. Заранее спасибо

Пожалуйста, попросите пациента прочитать весь мой код ..

public function index()
{
    $principle=100000; 
    $int=10.2; 
    $time=12; 
    $start_date=02-01-2019; 
    error_reporting(0); $rate1 = $int/100; $rate = $rate1/12; $x= pow(1+$rate,$time); $y=$principle*$x*$rate; 
    $monthly = $y/($x-1); $monthly = round($monthly); $k= $time; $arr= array(); $date = ""; $upto = $time; $i = 0; $totalint = 0; $payment_date = date("Y m,d"); $tp =0;
    if($principle!='0' || $int!='0' || $time!='0')
    {
        if($principle =='0') {$error  = "Amount of the loan Cant't Be Empty.<br />";}
        else if($int  =='0') {$error  = "Annual percentage rate of interest Cant't Be Empty. <br />";}
        else if($time =='0') {$error  = "Repayment period in years Cant't Be Empty. <br />";}
        else 
        {
            ?>
                Your monthly payment will be:<span id="monthly">Rs.<?php echo round($monthly);?>.00</span>
                Your total payment will be:<span id="total"></span>
                Your total interest payments will be:<span id="interest"></span>
            <tr><td>S.N</td><td>Payment Date</td><td>Interest</td><td>Beginning Balance</td><td>Principle</td><td>Total Payment</td><td>Ending Balance</td></tr>
            <?php $this->getEmi($principle);?>

            <script type="text/ecmascript">
                document.getElementById("interest").innerHTML="Rs."+<?php echo round($totalint); ?>+".00";
                document.getElementById("total").innerHTML="Rs."+<?php echo round($tp); ?>+".00";
            </script>
            <?php
        }
        $this->getNextMonth($start_date);
    }
    else {$error= "Plese Fill Up All Required Fields.";} endif; 
}

public function getNextMonth($date)
{
    global $arr; global $k;
    if($k==0){ return 0; }
    $date = new DateTime($date); $interval = new DateInterval('P1M'); $date->add($interval); $nextMonth= $date->format('Y-m-d') . "\n"; $arr[]= $nextMonth; $k--;
    return $this->getNextMonth($nextMonth);
}

public function getEmi($t)
{
    global $i, $upto, $totalint, $rate, $monthly, $payment_date, $arr, $_SESSION, $tp; 
    $i++; $r = $t*$rate; $p = round($monthly-$r); $e= round($t-$p);
    if($upto<=0){ return 0; }
    if($upto==2){ $_SESSION['tl']= $e;}
    if($upto==1){ $p= $_SESSION['tl']; $e= round($t-$p); $monthly= round($p+$r);}
    $totalint = $totalint + $r; $tp = $tp+$monthly; $upto--;
    echo '<tr><td>'.$i.'</td>'; 
    $arrDate1 = explode('-',$arr[$i-1]);
    echo '<td>'.date("M j, Y", mktime(0,0,0,$arrDate1[1],$arrDate1[2],$arrDate1[0])).'</td>';
    echo '<td>Rs.'.number_format(round($r)).'</td>'; echo '<td>Rs.'.number_format($t).'</td>'; echo '<td>Rs.'.number_format($p).'</td>'; echo '<td>Rs.'.number_format($monthly).'</td>';
    echo '<td>Rs.'.number_format(round($e)).'</td></tr>'; 
    return $this->getEmi($e);
}
...