class Planik::Lohnausweis::Eintrag

Abstrakte Klasse für alle Einträge in den Tabellen des Lohnausweises Ein Eintrag hat vier mögliche Spalten: Name, Menge, Ansatz und Betrag, von denen aber der einte oder andere nil sein kann.

Attributes

ansatz[R]
einheit[R]
menge[R]
name[R]

Public Class Methods

new(name, menge, ansatz, einheit = "Fr") click to toggle source
# File lib/lohnausweis/daten_eintrag.rb, line 12
def initialize(name, menge, ansatz, einheit = "Fr")
  @name, @menge, @ansatz, @einheit= name, menge, ansatz, einheit
end

Public Instance Methods

ansatz_to_s() click to toggle source

Default Wert ist nil

# File lib/lohnausweis/daten_eintrag.rb, line 27
def ansatz_to_s
  nil
end
betrag() click to toggle source
# File lib/lohnausweis/daten_eintrag.rb, line 16
def betrag
  raise "implement in subclass"
end
betrag_gerundet_to_s() click to toggle source
# File lib/lohnausweis/daten_eintrag.rb, line 31
def betrag_gerundet_to_s
  value_gerundet_to_s betrag
end
menge_to_s() click to toggle source

Die Menge, gerundet auf zwei Kommastellen genau

# File lib/lohnausweis/daten_eintrag.rb, line 21
def menge_to_s
  return menge if menge.instance_of? String
  menge.nil? ? nil :format('%.2f', menge)
end

Private Instance Methods

betrag_gerundet(_betrag) click to toggle source
# File lib/lohnausweis/daten_eintrag.rb, line 48
def betrag_gerundet(_betrag)
  (_betrag * 2).round(1) / 2.0
end
value_gerundet_to_s(value) click to toggle source
# File lib/lohnausweis/daten_eintrag.rb, line 37
def value_gerundet_to_s value
  value = betrag_gerundet(value) if einheit == "Fr"
  x = format('%.2f', value)
  x = ActiveSupport::NumberHelper.number_to_delimited(x, delimiter: "'")
  # x = ActiveSupport::NumberHelper.number_to_rounded(value, precision: 2)
  # x = ActiveSupport::NumberHelper.number_to_delimited(x, delimiter: "'")
  x = "#{einheit} #{x}" if einheit
  x
end