Class: BetrieblicheAltersvorsorge

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(bruttojahresgehalt) ⇒ BetrieblicheAltersvorsorge

Returns a new instance of BetrieblicheAltersvorsorge.



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/betriebliche_altersvorsorge.rb', line 7

def initialize(bruttojahresgehalt)
  @debug                 = false
  @kinder                = false
  @brutto_pa             = bruttojahresgehalt
  @bav_pa                = Beitragsbemessungsgrenze.new('west').bav_maximal_beitrag 
  @steuerklasse          = 1
  @verzinsung            = 2
  @aufschubzeit          = 1
  @gesamt_eigenbeitrag   = 0
  @rentengarantiefaktor  = 36.51
  @versicherungskosten   = 10000
end

Instance Attribute Details

#ablaufleistungObject (readonly)

Returns the value of attribute ablaufleistung.



4
5
6
# File 'lib/betriebliche_altersvorsorge.rb', line 4

def ablaufleistung
  @ablaufleistung
end

#anlageObject

Returns the value of attribute anlage.



4
5
6
# File 'lib/betriebliche_altersvorsorge.rb', line 4

def anlage
  @anlage
end

#aufschubzeitObject

Returns the value of attribute aufschubzeit.



5
6
7
# File 'lib/betriebliche_altersvorsorge.rb', line 5

def aufschubzeit
  @aufschubzeit
end

#bav_paObject

Returns the value of attribute bav_pa.



5
6
7
# File 'lib/betriebliche_altersvorsorge.rb', line 5

def bav_pa
  @bav_pa
end

#debugObject

Returns the value of attribute debug.



5
6
7
# File 'lib/betriebliche_altersvorsorge.rb', line 5

def debug
  @debug
end

#eigenbeitragObject (readonly)

Returns the value of attribute eigenbeitrag.



4
5
6
# File 'lib/betriebliche_altersvorsorge.rb', line 4

def eigenbeitrag
  @eigenbeitrag
end

#gesamt_eigenbeitragObject (readonly)

Returns the value of attribute gesamt_eigenbeitrag.



4
5
6
# File 'lib/betriebliche_altersvorsorge.rb', line 4

def gesamt_eigenbeitrag
  @gesamt_eigenbeitrag
end

#kostenObject

Returns the value of attribute kosten.



5
6
7
# File 'lib/betriebliche_altersvorsorge.rb', line 5

def kosten
  @kosten
end

#renditeObject (readonly)

Returns the value of attribute rendite.



4
5
6
# File 'lib/betriebliche_altersvorsorge.rb', line 4

def rendite
  @rendite
end

#renteObject (readonly)

Returns the value of attribute rente.



4
5
6
# File 'lib/betriebliche_altersvorsorge.rb', line 4

def rente
  @rente
end

#rentengarantiefaktorObject

Returns the value of attribute rentengarantiefaktor.



5
6
7
# File 'lib/betriebliche_altersvorsorge.rb', line 5

def rentengarantiefaktor
  @rentengarantiefaktor
end

#steuerklasseObject

Returns the value of attribute steuerklasse.



5
6
7
# File 'lib/betriebliche_altersvorsorge.rb', line 5

def steuerklasse
  @steuerklasse
end

#verzinsungObject

Returns the value of attribute verzinsung.



5
6
7
# File 'lib/betriebliche_altersvorsorge.rb', line 5

def verzinsung
  @verzinsung
end

#zulageObject (readonly)

Returns the value of attribute zulage.



4
5
6
# File 'lib/betriebliche_altersvorsorge.rb', line 4

def zulage
  @zulage
end

Instance Method Details

#abgaben(bav_pa) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/betriebliche_altersvorsorge.rb', line 23

def abgaben(bav_pa)

 rechen_brutto_pa = @brutto_pa - bav_pa

 p = {
  :lzz 	      =>  1,
  :re4 	      =>  rechen_brutto_pa*100,
  :stkl 	      =>  @steuerklasse,
  :pvz 	      =>  1, # ohne kinder weil PKZ=1
  :krv         =>  0,
  :lzzfreib    =>  bav_pa
 } 

 pe = BMF::Abgabenrechner.new(p).ausgaben
 
 @lohnsteuer 	= (pe[:lstlzz].to_i)/100
 @soli 	= (pe[:solzlzz].to_i)/100


 #maximal 7573.50 in west | 6540.75 in Ost
 @alv		= (rechen_brutto_pa/100)*1.5

 #maximal 7573.50 in west | 6540.75 in Ost
 @grv		= (rechen_brutto_pa/100)*9.95

 @gkv		= (rechen_brutto_pa/100)*8.2
 @pfv		= @kinder ? (rechen_brutto_pa/100)*0.975 : (rechen_brutto_pa/100)*1.225  


 if @debug
  puts "jahresgehalt: #{rechen_brutto_pa}"
  puts "BAV jahresbeitrag: #{bav_pa}"
  puts "lohnsteuer: #{@lohnsteuer}"
  puts "soli: #{@soli}"
  puts "alv: #{@alv.to_i}"
  puts "grv: #{@grv.to_i}"
  puts "gkv: #{@gkv.to_i}"
  puts "pfv: #{@pfv.to_i}"
 end

 return @lohnsteuer+@soli+@alv+@grv+@gkv+@pfv

end

#runObject



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/betriebliche_altersvorsorge.rb', line 70

def run
 @ohnebav	 = abgaben(0).to_i
 @mitbav	 = abgaben(@bav_pa).to_i
 @zulage	 = (@ohnebav - @mitbav)
 @anlage	 = @bav_pa
 @eigenbeitrag = @anlage-@zulage
 @rendite	 = (@zulage*100/@anlage)+@verzinsung
 
 invest = Investment.new
 invest.p = @verzinsung.to_f
 invest.r = @anlage
 invest.n = @aufschubzeit   
 @ablaufleistung = invest.rn.to_i - @versicherungskosten
 @gesamt_eigenbeitrag = @anlage*@aufschubzeit
 
 prozehntausend = @ablaufleistung/10000
 @rente = (prozehntausend*@rentengarantiefaktor)*12
end