mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-21 22:29:38 +02:00
* Move accountable partials * Split accountables into separate view partials * Fix test * Add form to permitted partials * Fix failing system tests * Update new account modal views * New sync algorithm implementation * Update account system test assertions to match new behavior * Fix off by 1 date error * Revert new balance sync algorithm * Add missing account overviews
23 lines
694 B
Ruby
23 lines
694 B
Ruby
class Loan < ApplicationRecord
|
|
include Accountable
|
|
|
|
def monthly_payment
|
|
return nil if term_months.nil? || interest_rate.nil? || rate_type.nil? || rate_type != "fixed"
|
|
return Money.new(0, account.currency) if account.original_balance.amount.zero? || term_months.zero?
|
|
|
|
annual_rate = interest_rate / 100.0
|
|
monthly_rate = annual_rate / 12.0
|
|
|
|
if monthly_rate.zero?
|
|
payment = account.original_balance.amount / term_months
|
|
else
|
|
payment = (account.original_balance.amount * monthly_rate * (1 + monthly_rate)**term_months) / ((1 + monthly_rate)**term_months - 1)
|
|
end
|
|
|
|
Money.new(payment.round, account.currency)
|
|
end
|
|
|
|
def color
|
|
"#D444F1"
|
|
end
|
|
end
|