Class: DreiSchichtenModell::AltersvorsorgeMix

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

Instance Method Summary collapse

Constructor Details

#initialize(avatar_info) ⇒ AltersvorsorgeMix

Returns a new instance of AltersvorsorgeMix.



19
20
21
# File 'lib/drei_schichten_modell.rb', line 19

def initialize(avatar_info)
  @avatar_info = avatar_info
end

Instance Method Details

#basisObject



121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/drei_schichten_modell.rb', line 121

def basis
  if @avatar_info.basis_beitrag_pa && 
     @avatar_info.steuerklasse && 
     @avatar_info.verzinsung && 
     @avatar_info.aufschubzeit

     basis =                         Basis.new(@avatar_info.einkommen)
     basis.basis_pa =                @avatar_info.basis_beitrag_pa
     basis.steuerklasse =            @avatar_info.steuerklasse
     basis.verzinsung =              @avatar_info.verzinsung
     basis.aufschubzeit =            @avatar_info.aufschubzeit
     basis.rentengarantiefaktor =    @avatar_info.rentengarantiefaktor
     basis.run
     
     if @avatar_info.basis_wunsch == nil
       @empfehlung = @avatar_info.grv ? false : true
     else
       @empfehlung = @avatar_info.basis_wunsch
     end
     
     return to_hash("basis", basis, @empfehlung)
   else
     puts 'es fehlen daten zur berechnung der Ruerup-Rente'
 end
end

#bavObject



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/drei_schichten_modell.rb', line 88

def bav
  if @avatar_info.steuerklasse && 
     @avatar_info.bav_beitrag_pa && 
     @avatar_info.verzinsung && 
     @avatar_info.aufschubzeit
     
    
    bav =                            BetrieblicheAltersvorsorge.new(@avatar_info.einkommen)
    bav.steuerklasse =               @avatar_info.steuerklasse
    bav.bav_pa =                     @avatar_info.bav_beitrag_pa
    bav.verzinsung =                 @avatar_info.verzinsung
    bav.aufschubzeit =               @avatar_info.aufschubzeit
    bav.rentengarantiefaktor =       @avatar_info.rentengarantiefaktor
    bav.run
    
    
    if @avatar_info.bav_wunsch == nil
      @empfehlung = @avatar_info.pflichtversichert ? true : false
    else
      @empfehlung = @avatar_info.bav_wunsch
    end
    
    
    return to_hash("bav", bav, @empfehlung )
  else
    puts 'es fehlen daten zur berechnung der Betriebliche Altersvorsorge'
  end
end

#flexObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/drei_schichten_modell.rb', line 26

def flex
  if @avatar_info.verzinsung && 
     @avatar_info.aufschubzeit
     
    flex =                           Flex.new
    flex.flex_pa =                   @avatar_info.flex_beitrag_pa
    flex.verzinsung =                @avatar_info.verzinsung
    flex.aufschubzeit =              @avatar_info.aufschubzeit
    flex.rentengarantiefaktor =      @avatar_info.rentengarantiefaktor
    flex.run
    
   
    if @avatar_info.flex_wunsch == nil
      @empfehlung = false
    else
      @empfehlung = @avatar_info.flex_wunsch
    end

    
    return to_hash("flex", flex, @empfehlung)
  else
    puts 'es fehlen daten zur berechnung der Flexiblen Altersvorsorge'
  end
end

#grvObject



150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# File 'lib/drei_schichten_modell.rb', line 150

def grv
  if @avatar_info.renteneintrittsalter && 
     @avatar_info.geburtsjahr &&
     @avatar_info.berufseinstieg && 
     @avatar_info.bundesland

     grv =                           GesetzlichenRentenversicherung.new(@avatar_info.einkommen)
     grv.renteneintrittsalter =      @avatar_info.renteneintrittsalter
     grv.geburtsjahr =               @avatar_info.geburtsjahr
     grv.bundesland =                @avatar_info.bundesland
     grv.berufseinstieg =            @avatar_info.berufseinstieg
     grv.grv_pa =                    @avatar_info.grv_rente_pa ? @avatar_info.grv_rente_pa : 0
     grv.run

     @empfehlung =                   @avatar_info.grv ? true : false
     
     return to_hash("grv", grv, @empfehlung)
   else
     puts 'es fehlen daten zur berechnung der gesetzlichen Rentenversicherung'
 end
end

#produkteObject



193
194
195
# File 'lib/drei_schichten_modell.rb', line 193

def produkte
  return  flex, riester, bav, basis, grv
end

#riesterObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/drei_schichten_modell.rb', line 54

def riester
  if @avatar_info.kinder && 
     @avatar_info.verzinsung && 
     @avatar_info.aufschubzeit &&
     @avatar_info.job_status
         
    riester =                        Riester.new(@avatar_info.einkommen)
    riester.kinder =                 @avatar_info.kinder
    riester.beitrag_pa =             @avatar_info.riester_beitrag_pa if @avatar_info.riester_beitrag_pa
    riester.job_status =             @avatar_info.job_status
    riester.verzinsung =             @avatar_info.verzinsung
    riester.aufschubzeit =           @avatar_info.aufschubzeit
    riester.rentengarantiefaktor =   @avatar_info.rentengarantiefaktor
    riester.run
    
    
    if @avatar_info.riester_wunsch == nil
      @empfehlung = @avatar_info.grv ? true : false
    else
      @empfehlung = @avatar_info.riester_wunsch
    end
                      
    return to_hash("riester", riester, @empfehlung)
  else
    puts 'es fehlen daten zur berechnung der Riester Rente'
  end
end

#to_hash(name, produkt, empfehlung) ⇒ Object



176
177
178
179
180
181
182
183
184
185
186
187
188
189
# File 'lib/drei_schichten_modell.rb', line 176

def to_hash(name, produkt, empfehlung)

   {
     empfehlung:             empfehlung,
     typ:                    name, 
     anlage:                 produkt.anlage, 
     rendite:                produkt.rendite,
     zulage:                 produkt.zulage,
     eigenbeitrag:           produkt.eigenbeitrag,
     gesamt_eigenbeitrag:    produkt.gesamt_eigenbeitrag,
     ablaufleistung:         produkt.ablaufleistung,
     rente:                  produkt.rente.to_i
   }
end