ministryofjustice/Claim-for-Crown-Court-Defence

View on GitHub
app/presenters/determination_presenter.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
class DeterminationPresenter < BasePresenter
  presents :version

  delegate :event, to: :version

  def timestamp
    version.created_at.strftime('%H:%M')
  end

  def itemise(&)
    items.each(&)
  end

  def items
    {
      'Fees' => changes['fees'].last,
      'Expenses' => changes['expenses'].last,
      'Disbursements' => changes['disbursements'].last,
      'Total (ex VAT)' => changes['total'].last,
      'VAT' => changes['vat_amount'].last,
      'Total (inc VAT)' => total_inc_vat
    }
  end

  def total_inc_vat
    changes['vat_amount'].last + changes['total'].last
  end

  private

  def changes
    {
      'fees' => [0.00, 0.00],
      'expenses' => [0.00, 0.00],
      'disbursements' => [0.00, 0.00],
      'total' => [0.00, 0.00],
      'vat_amount' => [0.00, 0.00]
    }.merge(changeset) { |_key, _old, new_array| new_array.zeroize_nils }
  end
end