tamaloa/direktkreditverwaltung

View on GitHub
app/views/contracts/interest_average.html.haml

Summary

Maintainability
Test Coverage
%h1 Berechnung des durchschnittlichen Zinssatz
- sum=AccountingEntry.sum(:amount)
%h3 Aktuelle Summe aller Direktkredite:
%b= currency(sum)
%br/
%h3 Direktkredite nach Kategorie
- categories = Contract.pluck(:category).uniq
%ul
  - categories.each do |category|
    %li
      - contracts_of_category = Contract.where(category: category)
      = "Categorie: #{category} - Summe: "
      = currency contracts_of_category.map(&:balance).sum
      = " - AVG Zinssatz: "
      = number_with_precision( contracts_of_category.map(&:last_version).map(&:interest_rate).sum / contracts_of_category.size.to_f)
%h3 Berechnung:
%table.table
  %tr
    %th Vertrag Nr
    %th Name
    %th Kontostand
    %th Anteil an Gesamtsumme
    %th Zinssatz
    %th Relativer Zinssatz
  - rel_sum = 0
  - @contracts.each do |contract|
    - last_version = contract.last_version
    %tr
      %td= link_to contract.number, contract
      %td= "#{contract.contact.try(:prename)} #{contract.contact.try(:name)}"
      %td= currency(balance=contract.balance)
      %td= fraction(sum_fraction=balance/sum)
      %td= fraction(last_version.interest_rate)
      %td= fraction(rel=sum_fraction * last_version.interest_rate)
    - rel_sum+=rel
%br/
%h3 Durchschnittlicher Zinssatz:
%h1= fraction(rel_sum)