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



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

def adresse
  @rohdaten.adresse
end

#arbeitslisteObject



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

def arbeitsliste
  @arbeitsliste
end

#arbeitszeit_datenObject



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

def arbeitszeit_daten
  @arbeitszeit_block.daten
end

#create_arbeitslisteObject



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/lohnausweis/daten.rb', line 76

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



64
65
66
67
68
69
70
71
72
73
74
# File 'lib/lohnausweis/daten.rb', line 64

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
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/lohnausweis/daten.rb', line 41

def create_zulagen_block

  zulagen = []
  if @rohdaten.geldbetraege_zulagen_anzeigen
    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"])
  else
    zulagen << Fakt.new("Zulage Nacht (#{monat} #{jahr})", nil, nil, @rohdaten.zulage_nacht.menge, nil)
    zulagen << Fakt.new("Zulage Wochenende (#{monat} #{jahr})", nil, nil, @rohdaten.zulage_wochenende.menge, nil)
    summe = Rechnung.new("Summe", zulagen, [], '')
    zulagen = zulagen + [summe]

    @zulagen_block = Block.new(zulagen, ["Zulagen", nil, nil, "Stunden"])
  end

end

#end_datumObject



129
130
131
# File 'lib/lohnausweis/daten.rb', line 129

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

#jahrObject



137
138
139
# File 'lib/lohnausweis/daten.rb', line 137

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

#monatObject



133
134
135
# File 'lib/lohnausweis/daten.rb', line 133

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

#start_datumObject



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

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

#zeit_bis_to_s(a) ⇒ Object



98
99
100
101
102
103
104
# File 'lib/lohnausweis/daten.rb', line 98

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



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

def zulagen_daten
  @zulagen_block.daten
end