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
38
# File 'lib/lohnausweis/daten.rb', line 32

def initialize(rohdaten)
  @rohdaten = rohdaten
  bruttolohn_eintrag = create_lohn_block
  create_abzuege_block(bruttolohn_eintrag)
  create_ferien_block
  create_arbeitszeit_block
end

Instance Method Details

#abzug_datenObject



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

def abzug_daten
  @abzuege_block.daten

end

#adresseObject



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

def adresse
  @rohdaten.adresse
end

#arbeitszeit_datenObject



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

def arbeitszeit_daten
  @arbeitszeit_block.daten
end

#create_abzuege_block(bruttolohn_eintrag) ⇒ Object



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

def create_abzuege_block(bruttolohn_eintrag)
  lohn_abzuege = []
  lohn_abzuege << Abzug.new("AHV, IV, EO", @rohdaten.monatslohn, @rohdaten.ahv)
  lohn_abzuege << Abzug.new("ALV", @rohdaten.monatslohn, @rohdaten.alv)
  lohn_abzuege << Abzug.new("NBU", @rohdaten.monatslohn, @rohdaten.nbu)
  lohn_abzuege << Abzug.new("Krankentaggeld", @rohdaten.monatslohn, @rohdaten.krankentaggeld)
#        lohn_abzuege << Fakt.new("Pensionskasse BVG", nil, nil, @rohdaten.pensionskasse)
  @rohdaten.abzug_freifelder.each do |ff|
    lohn_abzuege << Fakt.new(ff.name, ff.menge, ff.ansatz, ff.betrag)
  end

  nettolohn_eintrag = Rechnung.new("Nettolohn", [bruttolohn_eintrag], lohn_abzuege)
  abzuege_eingtraege = lohn_abzuege + [nettolohn_eintrag]

  @abzuege_block = Block.new(abzuege_eingtraege)
end

#create_arbeitszeit_blockObject



89
90
91
92
93
94
95
96
97
98
99
# File 'lib/lohnausweis/daten.rb', line 89

def create_arbeitszeit_block
  eintraege = []
  titel = ["Arbeitszeit", 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_ferien_blockObject



78
79
80
81
82
83
84
85
86
87
# File 'lib/lohnausweis/daten.rb', line 78

def create_ferien_block
  eintraege = []
  titel = ["Ferien", nil, nil, "Tage"]

  eintraege << Fakt.new("Ferienguthaben #{jahr}", nil, nil, @rohdaten.ferien.guthaben, nil)
  eintraege << Fakt.new("Bezogene Ferien bis #{end_datum}", nil, nil, @rohdaten.ferien.bezogen, nil)
  eintraege << Rechnung.new("Ferienguthaben per #{end_datum}", [eintraege[0]], [eintraege[1]], nil)

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

#create_lohn_blockObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/lohnausweis/daten.rb', line 40

def create_lohn_block
  lohn_positiv = []
  lohn_positiv << Fakt.new("Monatslohn", nil, nil, @rohdaten.monatslohn)
  lohn_positiv << Zulage.new("Zulage Nacht", @rohdaten.zulage_nacht.menge, @rohdaten.zulage_nacht.ansatz)
  lohn_positiv << Zulage.new("Zulage Wochenende", @rohdaten.zulage_wochenende.menge, @rohdaten.zulage_wochenende.ansatz)
  lohn_positiv << Zulage.new("Kinderzulagen bis 12 Jahre", @rohdaten.kinderzulage.menge, @rohdaten.kinderzulage.ansatz) unless @rohdaten.kinderzulage.nil?
  lohn_positiv << Fakt.new("Funktionszulage", nil, nil, @rohdaten.funktionszulage) unless @rohdaten.funktionszulage.nil?

  @rohdaten.lohn_freifelder.each do |ff|
    lohn_positiv << Fakt.new(ff.name, ff.menge, ff.ansatz, ff.betrag)
  end

  bruttolohn_eintrag = Rechnung.new("Bruttolohn", lohn_positiv, [])

  lohnblock_eintraege = lohn_positiv + [bruttolohn_eintrag]

  @lohnblock = Block.new(lohnblock_eintraege, ["Monatslohn", "Menge", "Ansatz / %", "Betrag"])
  bruttolohn_eintrag
end

#end_datumObject



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

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

#ferien_datenObject



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

def ferien_daten
  @ferien_block.daten
end

#jahrObject



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

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

#lohn_datenObject



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

def lohn_daten
  @lohnblock.daten
end

#monatObject



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

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

#start_datumObject



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

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