@@ -1,10 +1,10 @@ |
||
1 | 1 | <?php |
2 | 2 | /** |
3 | - * Created by PhpStorm. |
|
4 | - * User: uruba |
|
5 | - * Date: 2/15/2016 |
|
6 | - * Time: 2:54 PM |
|
7 | - */ |
|
3 | + * Created by PhpStorm. |
|
4 | + * User: uruba |
|
5 | + * Date: 2/15/2016 |
|
6 | + * Time: 2:54 PM |
|
7 | + */ |
|
8 | 8 | |
9 | 9 | namespace FinanCalc\Utils { |
10 | 10 |
@@ -1,32 +1,32 @@ |
||
1 | 1 | <?php |
2 | 2 | /** |
3 | - * FinanCalc |
|
4 | - * |
|
5 | - * A lightweight, simple and easy PHP library for calculating annuities (e.g., mortgages) |
|
6 | - * and other financial instruments according to various input data |
|
7 | - * |
|
8 | - * |
|
9 | - * DISCLAIMER |
|
10 | - * You are free to use/modify/extend the library as you please - for it to serve your purpose. |
|
11 | - * As per the (un)license, the software is provided as is and the original author cannot be held liable |
|
12 | - * for any losses/damages directly or indirectly resulting from using thereof. |
|
13 | - * Attribution is welcome, but certainly not required. |
|
14 | - * |
|
15 | - * NOTE |
|
16 | - * The library is currently work-in-progress and it is certain that new features will be added in the process. |
|
17 | - * Consider this, therefore, as a preview product prone to abrupt and extensive changes that may affect functionality |
|
18 | - * of an external code adapted to a prior version(s) of the library. |
|
19 | - * Always explore the provisional compatibility of the library with your project in case you upgrade to a new version |
|
20 | - * of the library (by means of an extensive testing of the code in which you are exerting the library's features). |
|
21 | - * |
|
22 | - * PREREQUISITES |
|
23 | - * PHP 5.5+ |
|
24 | - * Module php-bcmath |
|
25 | - * |
|
26 | - * @author Václav Uruba |
|
27 | - * @version 0.3 |
|
28 | - * @license http://unlicense.org The Unlicense |
|
29 | - */ |
|
3 | + * FinanCalc |
|
4 | + * |
|
5 | + * A lightweight, simple and easy PHP library for calculating annuities (e.g., mortgages) |
|
6 | + * and other financial instruments according to various input data |
|
7 | + * |
|
8 | + * |
|
9 | + * DISCLAIMER |
|
10 | + * You are free to use/modify/extend the library as you please - for it to serve your purpose. |
|
11 | + * As per the (un)license, the software is provided as is and the original author cannot be held liable |
|
12 | + * for any losses/damages directly or indirectly resulting from using thereof. |
|
13 | + * Attribution is welcome, but certainly not required. |
|
14 | + * |
|
15 | + * NOTE |
|
16 | + * The library is currently work-in-progress and it is certain that new features will be added in the process. |
|
17 | + * Consider this, therefore, as a preview product prone to abrupt and extensive changes that may affect functionality |
|
18 | + * of an external code adapted to a prior version(s) of the library. |
|
19 | + * Always explore the provisional compatibility of the library with your project in case you upgrade to a new version |
|
20 | + * of the library (by means of an extensive testing of the code in which you are exerting the library's features). |
|
21 | + * |
|
22 | + * PREREQUISITES |
|
23 | + * PHP 5.5+ |
|
24 | + * Module php-bcmath |
|
25 | + * |
|
26 | + * @author Václav Uruba |
|
27 | + * @version 0.3 |
|
28 | + * @license http://unlicense.org The Unlicense |
|
29 | + */ |
|
30 | 30 | namespace FinanCalc { |
31 | 31 | use Exception; |
32 | 32 | use FinanCalc\Constants\ErrorMessages; |
@@ -80,11 +80,11 @@ |
||
80 | 80 | return (string)number_format((float)$roundedNumber, $precision); |
81 | 81 | } |
82 | 82 | |
83 | - /** |
|
84 | - * @param $roundedNumber |
|
85 | - * @param $precision |
|
86 | - * @return string |
|
87 | - */ |
|
83 | + /** |
|
84 | + * @param $roundedNumber |
|
85 | + * @param $precision |
|
86 | + * @return string |
|
87 | + */ |
|
88 | 88 | public static function round_up($roundedNumber, $precision = 2) |
89 | 89 | { |
90 | 90 | return (string)ceil((float)$roundedNumber * pow(10, $precision)) / pow(10, $precision); |
@@ -297,7 +297,7 @@ discard block |
||
297 | 297 | public function getDebtSingleRepayment_Rounded() { |
298 | 298 | // single repayment 'K = PV/((1-v^n)/i)' |
299 | 299 | return MathFuncs::round_up( |
300 | - MathFuncs::div( |
|
300 | + MathFuncs::div( |
|
301 | 301 | $this->debtPrincipal, |
302 | 302 | MathFuncs::div( |
303 | 303 | MathFuncs::sub( |
@@ -338,33 +338,33 @@ discard block |
||
338 | 338 | return $repayments; |
339 | 339 | } |
340 | 340 | |
341 | - /** |
|
342 | - * @return array |
|
343 | - */ |
|
341 | + /** |
|
342 | + * @return array |
|
343 | + */ |
|
344 | 344 | public function getDebtRepaymentsAsArrays_Rounded() |
345 | 345 | { |
346 | 346 | $repayments = array(); |
347 | 347 | $i = 1; |
348 | 348 | $balance = $this->debtPrincipal; |
349 | 349 | foreach ($this->debtRepayments as $repayment) { |
350 | - if($balance > $repayment->getTotalAmount()) { |
|
351 | - $totalAmount = MathFuncs::round_up($repayment->getTotalAmount(), 2); |
|
352 | - $interestAmount = MathFuncs::round($repayment->getInterestAmount(), 2); |
|
353 | - $principalAmount = MathFuncs::round($totalAmount - $interestAmount, 2); |
|
354 | - } |
|
355 | - else { |
|
356 | - $interestAmount = MathFuncs::round($repayment->getInterestAmount(), 2); |
|
357 | - $totalAmount = MathFuncs::round(MathFuncs::add($balance, $interestAmount), 2); |
|
358 | - $principalAmount = MathFuncs::round($balance, 2); |
|
359 | - } |
|
350 | + if($balance > $repayment->getTotalAmount()) { |
|
351 | + $totalAmount = MathFuncs::round_up($repayment->getTotalAmount(), 2); |
|
352 | + $interestAmount = MathFuncs::round($repayment->getInterestAmount(), 2); |
|
353 | + $principalAmount = MathFuncs::round($totalAmount - $interestAmount, 2); |
|
354 | + } |
|
355 | + else { |
|
356 | + $interestAmount = MathFuncs::round($repayment->getInterestAmount(), 2); |
|
357 | + $totalAmount = MathFuncs::round(MathFuncs::add($balance, $interestAmount), 2); |
|
358 | + $principalAmount = MathFuncs::round($balance, 2); |
|
359 | + } |
|
360 | 360 | |
361 | - $beginningBalance = $balance; |
|
362 | - $endingBalance = MathFuncs::sub($balance, $principalAmount); |
|
363 | - $balance = MathFuncs::sub($balance, $principalAmount); |
|
361 | + $beginningBalance = $balance; |
|
362 | + $endingBalance = MathFuncs::sub($balance, $principalAmount); |
|
363 | + $balance = MathFuncs::sub($balance, $principalAmount); |
|
364 | 364 | |
365 | 365 | $repayments[$i++] = [ |
366 | - "beginningBalance" => MathFuncs::round($beginningBalance, 2), |
|
367 | - "totalAmount" => $totalAmount, |
|
366 | + "beginningBalance" => MathFuncs::round($beginningBalance, 2), |
|
367 | + "totalAmount" => $totalAmount, |
|
368 | 368 | "principalAmount" => $principalAmount, |
369 | 369 | "interestAmount" => $interestAmount, |
370 | 370 | "endingBalance" => MathFuncs::round($endingBalance, 2) |