lib/financial_maths.rb in financial_maths-0.0.10 vs lib/financial_maths.rb in financial_maths-0.0.11

- old
+ new

@@ -5,14 +5,19 @@ def due_variable_payment_amortization(periods, amount, rate, payment) result = [] result << {:period=> 0, :monthly_payment => nil, :interest => nil, :payment => nil, :balance => amount} for i in 1..periods - interest = amount * rate - month_payment = payment + interest - amount -= payment - #date += 1 + if i == periods + interest = month_payment * rate + month_payment = payment + interest + amount -= payment + else + interest = amount * rate + month_payment = payment + interest + amount -= payment + end result << {:period=> i, :payment => month_payment, :interest => interest, :monthly_payment => payment, :balance => amount} @@ -23,14 +28,20 @@ def anticipated_variable_payment_amortization(periods, amount, rate, payment) result = [] #result << {:period=> 0, :monthly_payment => nil, :interest => nil, :payment => nil, :balance => amount} for i in 0..periods-1 - interest = amount * rate - month_payment = payment + interest - amount -= payment - #date += 1 + if i == periods + interest = month_payment * rate + month_payment = payment + interest + amount -= payment + else + interest = amount * rate + month_payment = payment + interest + amount -= payment + end + result << {:period=> i, :payment => month_payment, :interest => interest, :monthly_payment => payment, :balance => amount} @@ -42,13 +53,19 @@ def due_fixed_payment_amortization(periods, amount, rate, payment) result = [] result << {:period=> 0, :monthly_payment => nil, :interest => nil, :payment => nil, :balance => amount} for i in 1..periods - interest = amount * rate - month_payment = payment - interest - amount -= month_payment - #date += 1 + if i == periods + interest = month_payment * rate + month_payment = payment - interest + amount -= payment + else + interest = amount * rate + month_payment = payment - interest + amount -= payment + end + result << {:period=> i, :payment => payment, :interest => interest, :monthly_payment => month_payment, :balance => amount}