drei_schichten_modell 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ *.DS_Store
6
+ *.swp
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format nested
2
+ --color
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm --create ruby-1.9.2-p290@drei_schichten_modell
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in drei_schichten_modell.gemspec
4
+ gemspec
data/README.markdown ADDED
@@ -0,0 +1,42 @@
1
+ # abgabenrechner
2
+
3
+ drei_schichten_modell.gem ist ein programm zu berechnung der zulagen.
4
+
5
+
6
+ ## Installation
7
+ Add this line to your Gemfile:
8
+
9
+ ```
10
+ gem 'drei_schichten_modell'
11
+ ```
12
+
13
+
14
+
15
+ ```ruby
16
+ require 'rubygems'
17
+ require 'drei_schichten_modell'
18
+
19
+ parameter = {
20
+ :lzz => 1,
21
+ :re4 => 2600000,
22
+ :stkl => 1,
23
+ :r => 1
24
+ }
25
+
26
+ abgabenrechner = BMF::Abgabenrechner.new(parameter)
27
+ puts abgabenrechner.ausgaben.inspect # => {:solzs=>0, :bk=>313700, :solzv=>0, :bks=>0, :sts=>0, :bkv=>0, :stv=>0, :lstlzz=>313700, :solzlzz=>17253}
28
+ puts abgabenrechner.ausgaben[:lstlzz] # => 313700
29
+
30
+ puts abgabenrechner.xml =>
31
+ ```
32
+
33
+
34
+ ## Komplette API Dokumentation:
35
+ http://goo.gl/phFdj
36
+
37
+
38
+
39
+
40
+
41
+
42
+ Copyright (c) 2011 Felix Faerber. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "drei_schichten_modell/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "drei_schichten_modell"
7
+ s.version = DreiSchichtenModell::VERSION
8
+ s.authors = ["Felix Faerber"]
9
+ s.email = ["mail@ffaerber.com"]
10
+ s.homepage = "https://github.com/ffaerber/drei_schichten_modell"
11
+ s.summary = %q{drei schichten model altersforsorge rechner infos dazu hier:http://www.3-schichten-modell.de oder einfach googlen}
12
+ s.description = %q{dieses rubygem berechnet den perfekten altersvorsorge mix aus allen drei schichten. und gibt angaben ueber die zulagenhoehe}
13
+
14
+ s.rubyforge_project = "drei_schichten_modell"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+
22
+ # tests
23
+ s.add_development_dependency 'rspec'
24
+
25
+ # benchmarks
26
+ s.add_development_dependency 'abgabenrechner'
27
+
28
+ end
data/lib/.DS_Store ADDED
Binary file
data/lib/basis.rb ADDED
@@ -0,0 +1,76 @@
1
+ require 'rubygems'
2
+ require 'abgabenrechner'
3
+
4
+ class Basis
5
+
6
+ attr_reader :anlage, :zulage, :eigenbeitrag, :rendite
7
+ attr_writer :debug, :steuerklasse, :basis_pa
8
+
9
+
10
+
11
+ def initialize(bruttojahresgehalt)
12
+ @debug = false
13
+ @brutto_pa = bruttojahresgehalt
14
+ @basis_pa = 20000
15
+ @steuerklasse = 1
16
+ @plusdings = 50 # damit das ergebis besser stimmt
17
+ end
18
+
19
+
20
+
21
+
22
+
23
+ def run
24
+
25
+ @lzzfreib = (@basis_pa/100)*72
26
+
27
+
28
+ p1 = {
29
+ :lzz => 1,
30
+ :re4 => @brutto_pa*100,
31
+ :stkl => @steuerklasse,
32
+ :r => 0,
33
+ :lzzfreib => @lzzfreib*100,
34
+ :krv => 0
35
+ }
36
+ p1e = BMF::Abgabenrechner.new(p1).ausgaben
37
+
38
+
39
+ p2 = {
40
+ :lzz => 1,
41
+ :re4 => @brutto_pa*100,
42
+ :stkl => @steuerklasse,
43
+ :r => 0,
44
+ :lzzfreib => 0,
45
+ :krv => 0
46
+ }
47
+ p2e = BMF::Abgabenrechner.new(p2).ausgaben
48
+
49
+
50
+ @zulage = ((p2e[:lstlzz]-p1e[:lstlzz])/100)+@plusdings
51
+ @anlage = @basis_pa
52
+ @rendite = (@zulage*100)/@basis_pa
53
+ @eigenbeitrag= @anlage-@zulage
54
+
55
+
56
+
57
+ if @debug
58
+ puts "#{((p2e[:lstlzz]-p1e[:lstlzz])/100)+@plusdings} euro forderung"
59
+ puts "#{@basis_pa} euro gehen in die anlage"
60
+ puts "#{(p2e[:lstlzz]-p1e[:lstlzz])/@basis_pa}% Rendite"
61
+ end
62
+
63
+ end
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+ end
@@ -0,0 +1,81 @@
1
+ require 'abgabenrechner'
2
+
3
+ class BetrieblicheAltersvorsorge
4
+ attr_reader :anlage, :zulage, :rendite, :eigenbeitrag
5
+ attr_accessor :steuerklasse, :kinder, :kosten, :anlage, :debug
6
+
7
+ def initialize(bruttojahresgehalt)
8
+ @debug = false
9
+ @kinder = false
10
+ @brutto_pa = bruttojahresgehalt
11
+ @bav_pa = 185*12
12
+ @steuerklasse = 1
13
+ end
14
+
15
+
16
+
17
+
18
+ def abgaben(bav_pa)
19
+
20
+ p = {
21
+ :lzz => 1,
22
+ :re4 => @brutto_pa*100,
23
+ :stkl => @steuerklasse,
24
+ :pvz => 1, # ohne kinder weil PKZ=1
25
+ :krv => 0,
26
+ :lzzfreib => bav_pa
27
+ }
28
+
29
+ pe = BMF::Abgabenrechner.new(p).ausgaben
30
+
31
+ @lohnsteuer = pe[:lstlzz]
32
+ @soli = pe[:solzlzz]
33
+
34
+
35
+ #maximal 7573.50 in west | 6540.75 in Ost
36
+ @alv = (@brutto_pa/100)*1.5
37
+
38
+
39
+ #maximal 7573.50 in west | 6540.75 in Ost
40
+ @grv = (@brutto_pa/100)*9.95
41
+
42
+
43
+ @gkv = (@brutto_pa/100)*8.2
44
+ @pfv = @kinder ? (@brutto_pa/100)*0.975 : (@brutto_pa/100)*1.225
45
+
46
+
47
+ if @debug
48
+ puts "jahresgehalt: #{@brutto_pa}"
49
+ puts "BAV jahresbeitrag: #{bav_pa}"
50
+ puts "lohnsteuer: #{@lohnsteuer}"
51
+ puts "soli: #{@soli}"
52
+ puts "alv: #{@alv.to_f}"
53
+ puts "grv: #{@grv.to_f}"
54
+ puts "gkv: #{@gkv.to_f}"
55
+ puts "pfv: #{@pfv.to_f}"
56
+ end
57
+
58
+
59
+ return (@lohnsteuer+@soli+@alv+@grv+@gkv+@pfv)/100
60
+
61
+ end
62
+
63
+
64
+
65
+
66
+ def run
67
+ @ohnebav = @brutto_pa - abgaben(0).to_i
68
+ @mitbav = @brutto_pa - abgaben(@bav_pa*100).to_i
69
+
70
+ @zulage = (@mitbav - @ohnebav)
71
+ @anlage = @bav_pa
72
+ @eigenbeitrag = @anlage-@zulage
73
+
74
+ @rendite = @zulage*100/@anlage
75
+
76
+ end
77
+
78
+
79
+
80
+
81
+ end
@@ -0,0 +1,3 @@
1
+ module DreiSchichtenModell
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,16 @@
1
+ require "drei_schichten_modell/version"
2
+
3
+ module DreiSchichtenModell
4
+
5
+
6
+ class AltersvorsorgeMix
7
+ def initialize(avatar_info)
8
+ puts avatar_info
9
+ end
10
+
11
+ end
12
+
13
+
14
+
15
+
16
+ end
data/lib/riester.rb ADDED
@@ -0,0 +1,46 @@
1
+ class Riester
2
+
3
+ attr_reader :anlage, :zulage, :rendite, :eigenbeitrag
4
+ attr_writer :partner, :partner, :partner_rentenversicherungspflichtig, :kinderzulage
5
+
6
+
7
+ def initialize(bruttojahreseinkommen)
8
+ @bruttojahreseinkommen = bruttojahreseinkommen
9
+ @anlagebetrag = bruttojahreseinkommen/100*4 < 2100 ? bruttojahreseinkommen/100*4 : 2100
10
+ @grundzulage = 154
11
+ @partner = false
12
+ @partner_rentenversicherungspflichtig = false
13
+ @kinderzulage = 0
14
+ @zulage = 0
15
+ end
16
+
17
+
18
+ def kinder(geburtsjahre)
19
+ geburtsjahre.each do |geburtsjahr|
20
+ @kinderzulage += geburtsjahr < 2008 ? 185 : 300
21
+ end
22
+ end
23
+
24
+
25
+ def eigenbeitrag
26
+ eigenbeitrag = @anlagebetrag - @grundzulage - @kinderzulage
27
+
28
+ return eigenbeitrag > 60 ? eigenbeitrag : 60
29
+
30
+ end
31
+
32
+
33
+ def rendite
34
+ zulage*100/@anlagebetrag
35
+ end
36
+
37
+ def zulage
38
+ @grundzulage + @kinderzulage
39
+ end
40
+
41
+ def anlage
42
+ @anlagebetrag+zulage
43
+ end
44
+
45
+
46
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+ describe Abgabenrechner do
3
+
4
+
5
+ it "Simple API call with HASH feedback" do
6
+ parameter = { :lzz => 1, :re4 => 2600000, :stkl => 1 }
7
+ BMF::Abgabenrechner.new(parameter).hash
8
+ end
9
+
10
+
11
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ describe DreiSchichtenModell do
3
+
4
+
5
+ it "get perfect dsm mix" do
6
+
7
+
8
+ avatar_info = {
9
+ :name => 'ich',
10
+ :income => 48000,
11
+ :age => 30,
12
+ :taxclass => 1,
13
+ :churchtax => false,
14
+ :sozi => true,
15
+ :health_insurance => 'grv',
16
+ :children => [1999,1980],
17
+ :federal_state => 'hamburg',
18
+ :pension => 1500,
19
+ :pension_age => 67,
20
+ :interest_charges => 8
21
+ }
22
+
23
+
24
+ DreiSchichtenModell::AltersvorsorgeMix.new(avatar_info)
25
+ end
26
+
27
+
28
+ end
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'abgabenrechner'
4
+ require 'drei_schichten_model'
5
+
6
+ RSpec.configure do |config|
7
+ # some (optional) config here
8
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: drei_schichten_modell
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Felix Faerber
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-08-31 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &70101403838000 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70101403838000
25
+ - !ruby/object:Gem::Dependency
26
+ name: abgabenrechner
27
+ requirement: &70101403837580 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70101403837580
36
+ description: dieses rubygem berechnet den perfekten altersvorsorge mix aus allen drei
37
+ schichten. und gibt angaben ueber die zulagenhoehe
38
+ email:
39
+ - mail@ffaerber.com
40
+ executables: []
41
+ extensions: []
42
+ extra_rdoc_files: []
43
+ files:
44
+ - .gitignore
45
+ - .rspec
46
+ - .rvmrc
47
+ - Gemfile
48
+ - README.markdown
49
+ - Rakefile
50
+ - drei_schichten_modell.gemspec
51
+ - lib/.DS_Store
52
+ - lib/basis.rb
53
+ - lib/betriebliche_altersvorsorge.rb
54
+ - lib/drei_schichten_modell.rb
55
+ - lib/drei_schichten_modell/version.rb
56
+ - lib/riester.rb
57
+ - spec/abgabenrechner_spec.rb
58
+ - spec/altersvorsorgemix_spec.rb
59
+ - spec/spec_helper.rb
60
+ homepage: https://github.com/ffaerber/drei_schichten_modell
61
+ licenses: []
62
+ post_install_message:
63
+ rdoc_options: []
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ requirements: []
79
+ rubyforge_project: drei_schichten_modell
80
+ rubygems_version: 1.8.6
81
+ signing_key:
82
+ specification_version: 3
83
+ summary: drei schichten model altersforsorge rechner infos dazu hier:http://www.3-schichten-modell.de
84
+ oder einfach googlen
85
+ test_files:
86
+ - spec/abgabenrechner_spec.rb
87
+ - spec/altersvorsorgemix_spec.rb
88
+ - spec/spec_helper.rb