Class: Planik::Lohnausweis::Daten
- Inherits:
-
Object
- Object
- Planik::Lohnausweis::Daten
- Defined in:
- lib/lohnausweis/daten.rb
Defined Under Namespace
Classes: Block
Instance Method Summary collapse
- #abzug_daten ⇒ Object
- #adresse ⇒ Object
- #arbeitsliste ⇒ Object
- #arbeitszeit_daten ⇒ Object
- #create_abzuege_block(bruttolohn_eintrag) ⇒ Object
- #create_arbeitsliste ⇒ Object
- #create_arbeitszeit_block ⇒ Object
- #create_ferien_block ⇒ Object
- #create_lohn_block ⇒ Object
- #end_datum ⇒ Object
- #ferien_daten ⇒ Object
-
#initialize(rohdaten) ⇒ Daten
constructor
A new instance of Daten.
- #jahr ⇒ Object
- #lohn_daten ⇒ Object
- #monat ⇒ Object
- #start_datum ⇒ Object
- #zeit_bis_to_s(a) ⇒ Object
Constructor Details
#initialize(rohdaten) ⇒ Daten
Returns a new instance of Daten.
32 33 34 35 36 37 38 39 |
# 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 create_arbeitsliste end |
Instance Method Details
#abzug_daten ⇒ Object
141 142 143 |
# File 'lib/lohnausweis/daten.rb', line 141 def abzug_daten @abzuege_block.daten end |
#adresse ⇒ Object
133 134 135 |
# File 'lib/lohnausweis/daten.rb', line 133 def adresse @rohdaten.adresse end |
#arbeitsliste ⇒ Object
153 154 155 |
# File 'lib/lohnausweis/daten.rb', line 153 def arbeitsliste @arbeitsliste end |
#arbeitszeit_daten ⇒ Object
149 150 151 |
# File 'lib/lohnausweis/daten.rb', line 149 def arbeitszeit_daten @arbeitszeit_block.daten end |
#create_abzuege_block(bruttolohn_eintrag) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/lohnausweis/daten.rb', line 61 def create_abzuege_block(bruttolohn_eintrag) lohn_abzuege = [] lohn_abzuege << Abzug.new("AHV, IV, EO", bruttolohn_eintrag.betrag, @rohdaten.ahv) lohn_abzuege << Abzug.new("ALV", bruttolohn_eintrag.betrag, @rohdaten.alv) lohn_abzuege << Abzug.new("NBU", bruttolohn_eintrag.betrag, @rohdaten.nbu) lohn_abzuege << Abzug.new("Krankentaggeld", bruttolohn_eintrag.betrag, @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_arbeitsliste ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/lohnausweis/daten.rb', line 102 def create_arbeitsliste eintraege = [] titel = ["Datum", "Dienst/Arbeit", "Typ", "Start", "Ende", "Arbeitszeit"] eintraege << titel @rohdaten.arbeitsliste.each do |a| d = [] d << a.datum.strftime("%d.%m.%Y") 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_block ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/lohnausweis/daten.rb', line 90 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_block ⇒ Object
79 80 81 82 83 84 85 86 87 88 |
# File 'lib/lohnausweis/daten.rb', line 79 def create_ferien_block eintraege = [] titel = ["Ferien", nil, nil, "Tage"] eintraege << Fakt.new("Ferienanspruch #{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_block ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/lohnausweis/daten.rb', line 41 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_datum ⇒ Object
161 162 163 |
# File 'lib/lohnausweis/daten.rb', line 161 def end_datum @rohdaten.end_datum.strftime("%d.%m.%Y") end |
#ferien_daten ⇒ Object
145 146 147 |
# File 'lib/lohnausweis/daten.rb', line 145 def ferien_daten @ferien_block.daten end |
#jahr ⇒ Object
165 166 167 |
# File 'lib/lohnausweis/daten.rb', line 165 def jahr @rohdaten.start_datum.strftime("%Y") end |
#lohn_daten ⇒ Object
137 138 139 |
# File 'lib/lohnausweis/daten.rb', line 137 def lohn_daten @lohnblock.daten end |
#monat ⇒ Object
169 170 171 |
# File 'lib/lohnausweis/daten.rb', line 169 def monat I18n.localize @rohdaten.start_datum, :format => "%B", :locale => :de end |
#start_datum ⇒ Object
157 158 159 |
# File 'lib/lohnausweis/daten.rb', line 157 def start_datum @rohdaten.start_datum.strftime("%d.%m.%Y") end |
#zeit_bis_to_s(a) ⇒ Object
124 125 126 127 128 129 130 |
# File 'lib/lohnausweis/daten.rb', line 124 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 |