Class: Planik::Lohnausweis::Daten

Inherits:
Object
  • Object
show all
Defined in:
lib/lohnausweis/daten.rb

Defined Under Namespace

Classes: Block

Instance Method Summary collapse

Constructor Details

#initialize(rohdaten) ⇒ Daten

Returns a new instance of Daten.



32
33
34
35
36
37
# File 'lib/lohnausweis/daten.rb', line 32

def initialize(rohdaten)
  @rohdaten = rohdaten
  create_zulagen_block
  create_arbeitszeit_block
  create_arbeitsliste
end

Instance Method Details

#adresseObject



96
97
98
# File 'lib/lohnausweis/daten.rb', line 96

def adresse
  @rohdaten.adresse
end

#arbeitslisteObject



110
111
112
# File 'lib/lohnausweis/daten.rb', line 110

def arbeitsliste
  @arbeitsliste
end

#arbeitszeit_datenObject



106
107
108
# File 'lib/lohnausweis/daten.rb', line 106

def arbeitszeit_daten
  @arbeitszeit_block.daten
end

#create_arbeitslisteObject



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/lohnausweis/daten.rb', line 65

def create_arbeitsliste
  eintraege = []
  titel = ["Datum", "Dienst/Arbeit", "Typ", "Start", "Ende", "Arbeitszeit"]
  eintraege << titel

  @rohdaten.arbeitsliste.each do |a|
    d = []
    d << I18n.l(a.datum, format: :mit_wochentag)
    d << a.name
    d << a.typ
    d << (a.zeit_von.nil? ? nil: a.zeit_von.strftime("%H:%M"))
    d << (zeit_bis_to_s(a))
    d << format('%.2f', a.arbeitszeit)
    eintraege << d
  end
  sum = 0
  @rohdaten.arbeitsliste.each{|x| sum += x.arbeitszeit}
  sum = format('%.2f', sum)
  eintraege << ["Arbeitszeit total", nil, nil, nil, nil, sum]
  @arbeitsliste = eintraege
end

#create_arbeitszeit_blockObject



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/lohnausweis/daten.rb', line 53

def create_arbeitszeit_block
  eintraege = []
  titel = ["Arbeitszeit #{monat} #{jahr}", nil, nil, "Stunden"]

  eintraege << Fakt.new("Stundensaldo Vormonat", nil, nil, @rohdaten.arbeitszeit.gleitzeit_vor, nil)
  eintraege << Fakt.new("Sollstunden von #{start_datum} bis #{end_datum}", nil, nil, @rohdaten.arbeitszeit.soll_stunden, nil)
  eintraege << Fakt.new("Geleistete Stunden von #{start_datum} bis #{end_datum}", nil, nil, @rohdaten.arbeitszeit.ist_stunden, nil)
  eintraege << Rechnung.new("Saldo per #{end_datum}", [eintraege[0], eintraege[2]], [eintraege[1]], nil)

  @arbeitszeit_block = Block.new(eintraege, titel)
end

#create_zulagen_blockObject

Neu Aenderung für MEDPHONE März 2015: Nur Arbeitsliste, Arbeitszeit und Zulagen



41
42
43
44
45
46
47
48
49
50
# File 'lib/lohnausweis/daten.rb', line 41

def create_zulagen_block
  zulagen = []
  zulagen << Zulage.new("Zulage Nacht (#{monat} #{jahr})", @rohdaten.zulage_nacht.menge, @rohdaten.zulage_nacht.ansatz)
  zulagen << Zulage.new("Zulage Wochenende (#{monat} #{jahr})", @rohdaten.zulage_wochenende.menge, @rohdaten.zulage_wochenende.ansatz)
  summe = Rechnung.new("Summe", zulagen, [])

  zulagen = zulagen + [summe]

  @zulagen_block = Block.new(zulagen, ["Zulagen", "Menge", "Ansatz / %", "Betrag"])
end

#end_datumObject



118
119
120
# File 'lib/lohnausweis/daten.rb', line 118

def end_datum
  @rohdaten.end_datum.strftime("%d.%m.%Y")
end

#jahrObject



126
127
128
# File 'lib/lohnausweis/daten.rb', line 126

def jahr
  @rohdaten.start_datum.strftime("%Y")
end

#monatObject



122
123
124
# File 'lib/lohnausweis/daten.rb', line 122

def monat
  I18n.localize @rohdaten.start_datum, :format => "%B", :locale => :de
end

#start_datumObject



114
115
116
# File 'lib/lohnausweis/daten.rb', line 114

def start_datum
  @rohdaten.start_datum.strftime("%d.%m.%Y")
end

#zeit_bis_to_s(a) ⇒ Object



87
88
89
90
91
92
93
# File 'lib/lohnausweis/daten.rb', line 87

def zeit_bis_to_s(a)
  if a.zeit_bis.nil?
    return nil
  end
  s = a.zeit_bis.strftime("%H:%M")
  s == "00:00" ? "24:00" : s
end

#zulagen_datenObject

Neu Aenderung für MEDPHONE März 2015: Nur Arbeitsliste, Arbeitszeit und Zulagen



102
103
104
# File 'lib/lohnausweis/daten.rb', line 102

def zulagen_daten
  @zulagen_block.daten
end