lohnausweis 0.4.3 → 0.5.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9663e1dd0d189bb728541c3b404a6b4d21849374
4
- data.tar.gz: 38fa816ebf30e3b087eccba152cdc2fa0e7495e7
3
+ metadata.gz: 1d62b6cfb5df3fb217dd6421c3dee5644fdf0ce4
4
+ data.tar.gz: 1dfff497faa023dfef30dbee44531c697d93d326
5
5
  SHA512:
6
- metadata.gz: 112ba54ad5c0e13c16ae364027624a8eb9399290517daacda8150e4038591f35f18c314227d5eeb5757e14d3020e2d2ed4e43d03eb97449d33107c89efb28e38
7
- data.tar.gz: 199843412cf687c703365fd0f0f635c48d833a0f81eb4dfbdfeac4890ce1a51c5bacd148c5a609586318a2cf415c8aa81cc203faa07eb0ddab1218f4ce979cca
6
+ metadata.gz: a77fbf200bd06e2558e009241701f6c91762cc20289cd2db80d820d10e7b918c7102f838cb497a29bec0efbe5350cdfbc99a8bce8c7e6e5accddda1c5688f553
7
+ data.tar.gz: 7de6e3ab2171d922a5c8d2564190eefae7692ff13f06a487c44b2bbbcf447462eca017efcf3d645647e1574c1fb74396f924c612e517452325e5dd6c5519b3f0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lohnausweis (0.4.2)
4
+ lohnausweis (0.4.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # Lohnausweis
2
2
 
3
- TODO: Write a gem description
3
+ Ursprünglich generierte das gem einen Lohnausweis. Jetzt nur noch ein Arbeitszeitendokument
4
+
5
+
6
+ ## gem erstellen und raufladen
7
+
4
8
 
5
9
  ## Installation
6
10
 
@@ -31,10 +31,7 @@ module Planik
31
31
 
32
32
  def initialize(rohdaten)
33
33
  @rohdaten = rohdaten
34
- bruttolohn_eintrag = create_lohn_block
35
34
  create_zulagen_block
36
- create_abzuege_block(bruttolohn_eintrag)
37
- create_ferien_block
38
35
  create_arbeitszeit_block
39
36
  create_arbeitsliste
40
37
  end
@@ -53,55 +50,6 @@ module Planik
53
50
  end
54
51
 
55
52
 
56
- def create_lohn_block
57
- lohn_positiv = []
58
- lohn_positiv << Fakt.new("Monatslohn", nil, nil, @rohdaten.monatslohn)
59
- lohn_positiv << Zulage.new("Zulage Nacht (#{monat_arbeit} #{jahr_arbeit})", @rohdaten.zulage_nacht.menge, @rohdaten.zulage_nacht.ansatz)
60
- lohn_positiv << Zulage.new("Zulage Wochenende (#{monat_arbeit} #{jahr_arbeit})", @rohdaten.zulage_wochenende.menge, @rohdaten.zulage_wochenende.ansatz)
61
- lohn_positiv << Zulage.new("Kinderzulagen bis 12 Jahre", @rohdaten.kinderzulage.menge, @rohdaten.kinderzulage.ansatz) unless @rohdaten.kinderzulage.nil?
62
- lohn_positiv << Fakt.new("Funktionszulage", nil, nil, @rohdaten.funktionszulage) unless @rohdaten.funktionszulage.nil?
63
-
64
- @rohdaten.lohn_freifelder.each do |ff|
65
- lohn_positiv << Fakt.new(ff.name, ff.menge, ff.ansatz, ff.betrag)
66
- end
67
-
68
- bruttolohn_eintrag = Rechnung.new("Bruttolohn", lohn_positiv, [])
69
-
70
- lohnblock_eintraege = lohn_positiv + [bruttolohn_eintrag]
71
-
72
- @lohnblock = Block.new(lohnblock_eintraege, ["Monatslohn", "Menge", "Ansatz / %", "Betrag"])
73
- bruttolohn_eintrag
74
- end
75
-
76
- def create_abzuege_block(bruttolohn_eintrag)
77
- lohn_abzuege = []
78
- lohn_abzuege << Abzug.new("AHV, IV, EO", bruttolohn_eintrag.betrag, @rohdaten.ahv)
79
- lohn_abzuege << Abzug.new("ALV", bruttolohn_eintrag.betrag, @rohdaten.alv)
80
- lohn_abzuege << Abzug.new("NBU", bruttolohn_eintrag.betrag, @rohdaten.nbu)
81
- lohn_abzuege << Abzug.new("Krankentaggeld", bruttolohn_eintrag.betrag, @rohdaten.krankentaggeld)
82
- # lohn_abzuege << Fakt.new("Pensionskasse BVG", nil, nil, @rohdaten.pensionskasse)
83
- @rohdaten.abzug_freifelder.each do |ff|
84
- lohn_abzuege << Fakt.new(ff.name, ff.menge, ff.ansatz, ff.betrag)
85
- end
86
-
87
- nettolohn_eintrag = Rechnung.new("Nettolohn", [bruttolohn_eintrag], lohn_abzuege)
88
- abzuege_eingtraege = lohn_abzuege + [nettolohn_eintrag]
89
-
90
- @abzuege_block = Block.new(abzuege_eingtraege)
91
- end
92
-
93
-
94
- def create_ferien_block
95
- eintraege = []
96
- titel = ["Ferien", nil, nil, "Tage"]
97
-
98
- eintraege << Fakt.new("Ferienanspruch #{jahr}", nil, nil, @rohdaten.ferien.guthaben, nil)
99
- eintraege << Fakt.new("Bezogene Ferien bis #{end_datum}", nil, nil, @rohdaten.ferien.bezogen, nil)
100
- eintraege << Rechnung.new("Ferienguthaben per #{end_datum}", [eintraege[0]], [eintraege[1]], nil)
101
-
102
- @ferien_block = Block.new(eintraege, titel)
103
- end
104
-
105
53
  def create_arbeitszeit_block
106
54
  eintraege = []
107
55
  titel = ["Arbeitszeit #{monat_arbeit} #{jahr_arbeit}", nil, nil, "Stunden"]
@@ -155,18 +103,6 @@ module Planik
155
103
  @zulagen_block.daten
156
104
  end
157
105
 
158
- def lohn_daten
159
- @lohnblock.daten
160
- end
161
-
162
- def abzug_daten
163
- @abzuege_block.daten
164
- end
165
-
166
- def ferien_daten
167
- @ferien_block.daten
168
- end
169
-
170
106
  def arbeitszeit_daten
171
107
  @arbeitszeit_block.daten
172
108
  end
@@ -23,37 +23,14 @@ module Planik
23
23
  @pdf.font("Helvetica", size: 8) #Default Font and size
24
24
  @pdf.default_leading = 0
25
25
  next_y = 750
26
- next_y = header_new(next_y)
26
+ next_y = header(next_y)
27
27
  next_y -= 50
28
28
  next_y = arbeitszeit_block(next_y)
29
29
  next_y -= 50
30
30
  next_y = zulagen_block(next_y)
31
31
  next_y -= 50
32
- next_y = arbeitsliste_new(next_y)
33
-
34
- footer()
35
- @pdf
36
- end
37
-
38
-
39
- # Erstellt das PDF und liefert es zurück
40
- def create_pdf_old
41
- @pdf = Prawn::Document.new(page_size: "A4")
42
- #@pdf.stroke_axis # Die Masse auf den Achsen
43
- @pdf.font("Helvetica", size: 8) #Default Font and size
44
- @pdf.default_leading = 0
45
- next_y = 750
46
- next_y = header(next_y)
47
- next_y -= 50
48
-
49
- next_y = lohn_block(next_y)
50
- next_y -= 50
51
- next_y = ferien_block(next_y)
52
- next_y -= 70
53
- arbeitszeit_block(next_y)
54
-
32
+ next_y = arbeitsliste(next_y)
55
33
  footer()
56
- arbeitsliste()
57
34
  @pdf
58
35
  end
59
36
 
@@ -63,7 +40,7 @@ module Planik
63
40
 
64
41
  # Neu
65
42
  # Aenderung für MEDPHONE März 2015: Nur Arbeitsliste, Arbeitszeit und Zulagen
66
- def header_new(ypos)
43
+ def header(ypos)
67
44
 
68
45
  bb = @pdf.bounding_box([XPOS, ypos], width: WIDTH) do
69
46
  @pdf.font("Helvetica", size: 12) do
@@ -87,27 +64,13 @@ module Planik
87
64
  end
88
65
 
89
66
 
90
- def header(ypos)
91
-
92
- bb = @pdf.bounding_box([XPOS, ypos], width: WIDTH) do
93
- @pdf.font("Helvetica", size: 12) do
94
- parent = @pdf.bounds
95
- xpos = parent.top_left[0] + 350
96
- ypos = parent.height - 70
97
- width = parent.top_right[0] - xpos
98
-
99
- @pdf.bounding_box([350, ypos], width: width, height: 70) do
100
- @pdf.text "#{@daten.adresse.voller_name}"
101
- @pdf.text @daten.adresse.strasse_nr
102
- @pdf.text "#{@daten.adresse.plz} <u>#{@daten.adresse.ort}</u>", inline_format: true
103
- #@pdf.stroke_bounds
104
- end
105
- @pdf.move_down(50)
106
- @pdf.text("Lohnabrechnung #{@daten.monat} #{@daten.jahr}", style: :bold)
107
- end
108
- #@pdf.stroke_bounds
67
+ def arbeitszeit_block(ypos)
68
+ pp = @pdf.bounding_box([XPOS, ypos], width: WIDTH) do
69
+ ypos = 0
70
+ make_table(XPOS, ypos, @daten.arbeitszeit_daten, true)
71
+ @pdf.stroke_bounds
109
72
  end
110
- bb.absolute_bottom
73
+ pp.absolute_bottom
111
74
  end
112
75
 
113
76
 
@@ -122,72 +85,42 @@ module Planik
122
85
  bb.absolute_bottom
123
86
  end
124
87
 
125
-
126
- def lohn_block(ypos)
127
- bb = @pdf.bounding_box([XPOS, ypos], width: WIDTH) do
128
- inner_ypos = 0
129
- make_table(XPOS, inner_ypos, @daten.lohn_daten, true)
130
- @pdf.move_down 10 # Abstand
131
- make_table(XPOS, inner_ypos, @daten.abzug_daten, false)
132
- @pdf.stroke_bounds
133
- end
134
- bb.absolute_bottom
88
+ #
89
+ # Neu
90
+ # Aenderung für MEDPHONE März 2015: Nur Arbeitsliste, Arbeitszeit und Zulagen
91
+ #
92
+ def arbeitsliste(ypos)
93
+ @pdf.move_down(20)
94
+ @pdf.text("Arbeitszeit von #{@daten.start_datum_for_arbeit} bis #{@daten.end_datum_for_arbeit}", style: :bold)
95
+ arbeitsliste = @daten.arbeitsliste
96
+ make_table_without_bounding_box(arbeitsliste, true)
135
97
  end
136
98
 
137
- def ferien_block(ypos)
138
- bb = @pdf.bounding_box([XPOS, ypos], width: WIDTH) do
139
- ypos = 0
140
- make_table(XPOS, ypos, @daten.ferien_daten, true)
141
- @pdf.stroke_bounds
142
- end
143
- bb.absolute_bottom
144
- end
145
99
 
146
- def arbeitszeit_block(ypos)
147
- pp = @pdf.bounding_box([XPOS, ypos], width: WIDTH) do
148
- ypos = 0
149
- make_table(XPOS, ypos, @daten.arbeitszeit_daten, true)
150
- @pdf.stroke_bounds
151
- end
152
- pp.absolute_bottom
153
- end
100
+ # def arbeitsliste
101
+ # @pdf.start_new_page
102
+ # @pdf.text("Anhang: Arbeitszeit von #{@daten.start_datum_for_arbeit} bis #{@daten.end_datum_for_arbeit}", style: :bold)
103
+ # arbeitsliste = @daten.arbeitsliste
104
+ # make_arbeitsliste_table(XPOS, 750, arbeitsliste, true)
105
+ # ypos = 18
106
+ # @pdf.bounding_box([XPOS, ypos], width: WIDTH) do
107
+ # @pdf.font("Helvetica", size: 8) do
108
+ # @pdf.text("Generiert von Planik am #{Time.now.strftime("%d.%m.%Y um %H:%M Uhr")}", align: :right)
109
+ # end
110
+ # end
111
+ # end
112
+
154
113
 
155
114
  def footer
156
115
  ypos = 8
157
116
  @pdf.bounding_box([XPOS, ypos], width: WIDTH) do
158
117
  @pdf.font("Helvetica", size: 8) do
159
- # Neu
160
- # Aenderung für MEDPHONE März 2015: Nur Arbeitsliste, Arbeitszeit und Zulagen
161
- #@pdf.text("Wir bitten Sie, die Lohnabrechnung sofort zu prüfen und Unstimmigkeiten unverzüglich mitzuteilen.")
162
- #@pdf.text("Anhang: Arbeitszeit von #{@daten.start_datum_for_arbeit} bis #{@daten.end_datum_for_arbeit}.")
163
118
  @pdf.text("Generiert von Planik am #{Time.now.strftime("%d.%m.%Y um %H:%M Uhr")}")
164
119
  end
165
120
  end
166
121
  end
167
122
 
168
- def arbeitsliste
169
- @pdf.start_new_page
170
- @pdf.text("Anhang: Arbeitszeit von #{@daten.start_datum_for_arbeit} bis #{@daten.end_datum_for_arbeit}", style: :bold)
171
- arbeitsliste = @daten.arbeitsliste
172
- make_arbeitsliste_table(XPOS, 750, arbeitsliste, true)
173
- ypos = 18
174
- @pdf.bounding_box([XPOS, ypos], width: WIDTH) do
175
- @pdf.font("Helvetica", size: 8) do
176
- @pdf.text("Generiert von Planik am #{Time.now.strftime("%d.%m.%Y um %H:%M Uhr")}", align: :right)
177
- end
178
- end
179
- end
180
123
 
181
- #
182
- # Neu
183
- # Aenderung für MEDPHONE März 2015: Nur Arbeitsliste, Arbeitszeit und Zulagen
184
- #
185
- def arbeitsliste_new(ypos)
186
- @pdf.move_down(20)
187
- @pdf.text("Arbeitszeit von #{@daten.start_datum_for_arbeit} bis #{@daten.end_datum_for_arbeit}", style: :bold)
188
- arbeitsliste = @daten.arbeitsliste
189
- make_table_without_bounding_box(arbeitsliste, true)
190
- end
191
124
 
192
125
 
193
126
  def make_arbeitsliste_table(xpos, ypos, daten, title = false)
@@ -50,26 +50,6 @@ module Planik
50
50
 
51
51
  end
52
52
 
53
- class Ferien
54
- attr_accessor :guthaben, :bezogen
55
-
56
- def initialize(guthaben, bezogen)
57
- @guthaben, @bezogen = guthaben, bezogen
58
- end
59
- end
60
-
61
- #
62
- # Entspricht einer Zeile im PDF.
63
- # Z.B 13. Monatslohn: Freilfeld.new("13. Monatslohn, erste Hälfte", "Fr 4'500.00", "6 Monate", 2250)
64
- # Ist entweder Lohnrelevant oder Abzugsrelevant, je nachdem zu welchem Array es hinzugefügt wurde.
65
- class Freifeld
66
- attr_accessor :name, :menge, :ansatz, :betrag
67
-
68
- def initialize(name, menge, ansatz, betrag)
69
- @name, @menge, @ansatz, @betrag = name, menge, ansatz, betrag
70
- end
71
- end
72
-
73
53
  #
74
54
  # Ein Dienst, Termine mit Arbeitszeit oder "andere Arbeit". Erscheinen im Anhang des PDFs
75
55
  #
@@ -84,32 +64,14 @@ module Planik
84
64
 
85
65
  attr_accessor :start_datum, :end_datum
86
66
  attr_accessor :start_datum_for_arbeit, :end_datum_for_arbeit
87
- attr_accessor :monatslohn
88
67
  attr_accessor :adresse
89
68
  attr_accessor :arbeitszeit
90
- attr_accessor :zulage_nacht, :zulage_wochenende, :kinderzulage
91
- attr_accessor :funktionszulage
92
- attr_accessor :ahv, :alv, :nbu, :krankentaggeld
93
- #attr_accessor :pensionskasse
94
- attr_accessor :ferien
95
- attr_accessor :lohn_freifelder
96
- attr_accessor :abzug_freifelder
69
+ attr_accessor :zulage_nacht, :zulage_wochenende
97
70
  attr_accessor :arbeitsliste
98
71
 
99
72
  def initialize
100
- @lohn_freifelder = []
101
- @abzug_freifelder = []
102
73
  @arbeitsliste = []
103
74
  yield self
104
-
105
- end
106
-
107
- def add_lohn_freifeld freifeld
108
- lohn_freifelder << freifeld
109
- end
110
-
111
- def add_abzug_freifeld freifeld
112
- abzug_freifelder << freifeld
113
75
  end
114
76
  end
115
77
  end
@@ -1,5 +1,5 @@
1
1
  module Planik
2
2
  module Lohnausweis
3
- VERSION = "0.4.3"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
@@ -1590,7 +1590,7 @@ ET
1590
1590
  BT
1591
1591
  36 38.256 Td
1592
1592
  /F1.0 8 Tf
1593
- [<47656e6572> -15 <696572> -40 <742076> 25 <6f6e20506c616e696b20616d2032362e30332e3230313520756d2031383a303820556872>] TJ
1593
+ [<47656e6572> -15 <696572> -40 <742076> 25 <6f6e20506c616e696b20616d2031382e30382e3230313520756d2030393a313320556872>] TJ
1594
1594
  ET
1595
1595
 
1596
1596
  Q
@@ -11,22 +11,9 @@ module Planik
11
11
  r.start_datum_for_arbeit = Date.new(2014, 05, 01)
12
12
  r.end_datum_for_arbeit = Date.new(2014, 05, 31)
13
13
  r.adresse = Rohdaten::Adresse.new("Margherita", "Giuba", "Mauerstrasse", "34E", "3456", "Oberutzwil")
14
- r.monatslohn = 4500
15
14
  r.arbeitszeit = Rohdaten::Arbeitszeit.new(-22.3, 150, 18.3)
16
15
  r.zulage_nacht = Rohdaten::MengeAnsatz.new(3.56, 8)
17
16
  r.zulage_wochenende = Rohdaten::MengeAnsatz.new(2.12, 8)
18
- r.kinderzulage = Rohdaten::MengeAnsatz.new(2, 260)
19
- r.add_lohn_freifeld(Rohdaten::Freifeld.new("Korrektur für Februar", nil, nil, 120))
20
- r.add_lohn_freifeld(Rohdaten::Freifeld.new("13. Monatslohn, erste Hälfte", "Fr 4'500.00", "6 Monate", 2250))
21
- r.add_lohn_freifeld(Rohdaten::Freifeld.new("Minusbetrag", "irgendwas", nil, -50.35))
22
- r.funktionszulage = 234.45
23
- r.ahv = 5.1
24
- r.alv = 2.1
25
- r.nbu = 3.1
26
- r.krankentaggeld = 0
27
- #r.pensionskasse = 204.45
28
- r.add_abzug_freifeld(Rohdaten::Freifeld.new("Händischer Abzug", "irgendwas", "nochmals was", 12))
29
- r.ferien = Rohdaten::Ferien.new(304, 22)
30
17
  r.arbeitsliste = [
31
18
  #attr_accessor :datum, :name, :typ, :zeit_von, :zeit_bis, :arbeitszeit
32
19
  Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 1), "4", "Dienst", Time.new(2000, 1, 1, 6, 45), Time.new(2000, 1, 1, 16, 00), 8.2388),
@@ -40,13 +27,6 @@ module Planik
40
27
  Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 9), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
41
28
  Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 10), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
42
29
  Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 11), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
43
- # Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 12), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
44
- # Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 13), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
45
- # Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 14), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
46
- # Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 15), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
47
- # Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 16), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
48
- # Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 17), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
49
- # Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 18), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
50
30
  Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 19), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
51
31
  Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 20), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
52
32
  Rohdaten::ArbeitsItem.new(Date.new(2014, 05, 21), "2", "Dienst", Time.new(2000, 1, 1, 7, 45), Time.new(2000, 1, 1, 24, 00), 6.234),
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lohnausweis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Muehlethaler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-26 00:00:00.000000000 Z
11
+ date: 2015-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  version: '0'
100
100
  requirements: []
101
101
  rubyforge_project:
102
- rubygems_version: 2.2.2
102
+ rubygems_version: 2.4.8
103
103
  signing_key:
104
104
  specification_version: 4
105
105
  summary: Lohnausweis generieren aus den Daten von Planik
@@ -108,4 +108,3 @@ test_files:
108
108
  - spec/lohnausweis/daten_spec.rb
109
109
  - spec/lohnausweis/pdf_generator_spec.rb
110
110
  - spec/spec_helper.rb
111
- has_rdoc: