Sha256: 05a635ad1ea34b2626b0e098c7e4d57609812aa9d112380863d5c27ac93a8e45

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

Contents

module LoanCreator
  class Bullet < LoanCreator::Common
    def lender_timetable
      raise ArgumentError.new(:deferred_in_periods) unless deferred_in_periods == 0
      timetable = new_timetable
      reset_current_term
      @crd_beginning_of_period = amount
      @crd_end_of_period = amount
      (duration_in_periods - 1).times { timetable << current_term }
      compute_last_term
      timetable << current_term
      timetable
    end

    private

    def compute_last_term
      @crd_end_of_period = bigd('0')
      @period_interests = total_interests
      @period_capital = @crd_beginning_of_period
      @total_paid_capital_end_of_period = @period_capital
      @total_paid_interests_end_of_period = @period_interests
      @period_amount_to_pay = @period_capital + @period_interests
    end

    #   Capital * (periodic_interests_rate ^(total_terms))
    #
    def total_payment
      amount.mult(
        (bigd(1) + periodic_interests_rate) ** bigd(duration_in_periods),
        BIG_DECIMAL_DIGITS
      )
    end

    def total_interests
      total_payment - amount
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
loan_creator-0.2.0 lib/loan_creator/bullet.rb
loan_creator-0.2.1 lib/loan_creator/bullet.rb
loan_creator-0.2.2 lib/loan_creator/bullet.rb
loan_creator-0.2.3 lib/loan_creator/bullet.rb