ascii_invoicer 2.5.5

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.
@@ -0,0 +1,74 @@
1
+ --- # ascii invoicer document (version: <%= version %>, template: <%= template %>)
2
+ format: 2.4.0
3
+ created: <%= Date.today.strftime "%d.%m.%Y" %>
4
+
5
+ client:
6
+ title: Herr # Frau, Professor, Professorin
7
+ first_name: John
8
+ last_name: Doe
9
+
10
+ email: jon.doe@example.com
11
+ address: |
12
+ John Doe
13
+ Nöthnitzerstraße 46
14
+ 01187 Dresden
15
+
16
+ event:
17
+ name: "<%= project_name %>"
18
+ location: # might be a list
19
+ dates:
20
+ - begin: <%= (Date.today+ 14).strftime "%d.%m.%Y" %> # bezieht sich auf die veranstaltung selbst
21
+ #end:
22
+ times:
23
+ - begin: "9:00"
24
+ end: "17:00"
25
+
26
+ description: |
27
+
28
+ offer:
29
+ date: <%= Date.today.strftime "%d.%m.%Y" %>
30
+ appendix: 1
31
+
32
+ invoice:
33
+ number: #27
34
+ date: #leave empty for auto date
35
+ payed_date:
36
+
37
+ cataloge:
38
+ product: &kaffee { name: Kaffee , price: 2.5 , unit: 1l }
39
+ product: &tee { name: Tee , price: 1.75 , unit: 1l }
40
+ product: &wasser_gross { name: Mineralwasser , price: 0.61 , unit: 1l }
41
+ product: &wasser_klein { name: Mineralwasser , price: 0.59 , unit: 1l }
42
+ product: &apfelsaft { name: Apfelsaft , price: 1.64 , unit: 1l }
43
+ product: &orangensaft { name: Orangensaft , price: 1.86 , unit: 1l }
44
+ product: &bagel { name: Bagel , price: 2.19 , unit: stk }
45
+ product: &kekse { name: Kekse Lamberts , price: 3.40 , unit: 400g}
46
+ product: &broetchen { name: halbe Brötchen , price: 1.16 , unit: stk }
47
+ product: &kuchen { name: Kuchen , price: 0.94 , unit: stk }
48
+ product: &suppe { name: Suppe , price: 3.10 , unit: Portion }
49
+ product: &obstplatte { name: Obstplatte , price: 30.00 , unit: stk }
50
+
51
+ products:
52
+
53
+ *kaffee: { amount: 4, sold: 5 }
54
+ *wasser_gross:
55
+ amount: 4
56
+ returned: 3
57
+ *kekse:
58
+ amount: 4
59
+ sold: 2
60
+
61
+ hours:
62
+ salary: 8.00
63
+ caterers:
64
+ "unknown" : 0 #Stunden
65
+
66
+ manager: <%= manager_name %>
67
+
68
+ #canceled: yes
69
+ #lang:
70
+ #tax:
71
+
72
+ #messages: # read default-settings.yml on how to overwrite
73
+
74
+ ...
@@ -0,0 +1,87 @@
1
+ \documentclass[11pt,utf8]{<%= File.join $SETTINGS.plumber_dirs.templates, "latex/ascii-brief" %>}
2
+ \Logo {<%= File.join $SETTINGS.plumber_dirs.templates, @data[:includes][:logopath] %>}
3
+
4
+ \lochermarke
5
+ \faltmarken
6
+ \fenstermarken
7
+ \trennlinien
8
+ %%\klassisch
9
+
10
+ \Name {<%= @data[:includes][:name] %>}
11
+ \Strasse {<%= @data[:includes][:strasse] %>}
12
+ \Universitaet {<%= @data[:includes][:universitaet] %>}
13
+ \Fakultaet {<%= @data[:includes][:fakultaet] %>}
14
+ \Zusatz {<%= @data[:includes][:zusatz] %>}
15
+ \RetourAdresse {<%= @data[:includes][:retouradresse] %>}
16
+ \Ort {<%= @data[:includes][:ort] %>}
17
+ \Land {<%= @data[:includes][:land] %>}
18
+ \Telefon {<%= @data[:includes][:telefon] %>}
19
+ \Telefax {<%= @data[:includes][:telefax] %>}
20
+ \Telex {<%= @data[:includes][:telex] %>}
21
+ \HTTP {<%= @data[:includes][:http] %>}
22
+ \EMail {<%= @data[:includes][:email] %>}
23
+ \Bank {<%= @data[:includes][:bank] %>}
24
+ \BLZ {<%= @data[:includes][:blz] %>}
25
+ \IBAN {<%= @data[:includes][:iban] %>}
26
+ \BIC {<%= @data[:includes][:bic] %>}
27
+ \Konto {<%= @data[:includes][:konto] %>}
28
+ \Steuernummer {<%= @data[:includes][:steuernummer] %>}
29
+
30
+ \Unterschrift {<%= @data[:manager] %>}
31
+ \Postvermerk {}
32
+ \Adresse {<%= @data[:client][:address].gsub("\n","\\newline ") %>}
33
+
34
+ \Betreff {<%= @data[:messages][document_type][0] %>} %% [Angebot|Rechnung]
35
+
36
+ \Datum {<%= @data[type][:date] %>}
37
+ \AngebotManuel {<%= @data[:offer][:number] if type == :offer %>} %% Manuel ueberschreibbar ansonsten automatisch heute
38
+ \Veranstaltung {<%= @data[:event][:name] %>}
39
+ \RechnungsNummer {<%= @data[:invoice][:longnumber] %>} %% bei Angeboten leer lassen
40
+ \Anrede {<%= @data[:client][:addressing] %>,}
41
+ \Gruss {<%= @data[:messages][:signature] %> <%= @data[:signature] %>}{1cm}
42
+
43
+ %\Anlagen {Anlagen}
44
+ %\Verteiler {Verteiler}
45
+
46
+ \begin{document}
47
+ \begin{ascii-brief}
48
+
49
+
50
+ <%= @data[:messages][document_type][1] %>
51
+
52
+ \begin{center}
53
+ \begin{tabular}{rp{7cm}rrr}
54
+ \textbf{Nr.} & \textbf{Bezeichnung}& \textbf{Menge} & \textbf{EP}& \textbf{Preis} \\
55
+ \midrule
56
+ <% @data[:products].each_index do |i|
57
+ product = @data[:products][i] %>
58
+ <%= i + 1 %> & <%= product.name %> <%if product.unit %>
59
+ (<%= product.unit %>)
60
+ <% end %> & <%= product.amount type %> & <%= product.price %> & <%= product.cost type %> \\
61
+ <% end %>
62
+ <% if @data[:hours][:time] >0%>
63
+ <%= @data[:products].count + 1 %> & Betreuung (Stunden) & <%= @data[:hours][:time] %> & <%= @data[:hours][:salary] %> & <%= @data[:hours][:total] %> \\
64
+ <% end %>
65
+
66
+ \bottomrule[1pt]
67
+ \multicolumn{4}{r}{Netto MwSt.} & <%= @data[type][:costs] %> \\
68
+ %\multicolumn{4}{r}{Brutto MwSt. 19\%} & <%= @data[type][:total] %> \\
69
+
70
+ <% @data[:productsbytax].each {|tax,products|
71
+ t = 0 .to_euro
72
+ products.each {|p| t+= p.tax(type)}
73
+ %>
74
+ \multicolumn{4}{r}{+MwSt. <%= (tax.rationalize*100).to_f %>\%} & <%= t %> \\
75
+ <% } %>
76
+
77
+ <% if @data[:hours][:time] >0%>
78
+ \multicolumn{4}{r}{MwSt 0\%} & <%= @data[:hours][:total] %> \\
79
+ <% end %>
80
+ \multicolumn{4}{r}{Gesamtpreis} & <%= @data[type][:final] %> \\
81
+ \end{tabular}
82
+ \end{center}
83
+
84
+ <%= @data[:messages][document_type][2] %>
85
+
86
+ \end{ascii-brief}
87
+ \end{document}
metadata ADDED
@@ -0,0 +1,297 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ascii_invoicer
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.5.5
5
+ platform: ruby
6
+ authors:
7
+ - Hendrik Sollich
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec-core
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10'
55
+ - !ruby/object:Gem::Dependency
56
+ name: git
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.2'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 1.2.8
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '1.2'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.2.8
75
+ - !ruby/object:Gem::Dependency
76
+ name: thor
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.19'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.19'
89
+ - !ruby/object:Gem::Dependency
90
+ name: icalendar
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '2.1'
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 2.1.1
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '2.1'
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 2.1.1
109
+ - !ruby/object:Gem::Dependency
110
+ name: textboxes
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '0.0'
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: 0.0.1
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '0.0'
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: 0.0.1
129
+ - !ruby/object:Gem::Dependency
130
+ name: euro
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: '0.3'
136
+ type: :runtime
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - "~>"
141
+ - !ruby/object:Gem::Version
142
+ version: '0.3'
143
+ - !ruby/object:Gem::Dependency
144
+ name: hash-graft
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '0.9'
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 0.9.0
153
+ type: :runtime
154
+ prerelease: false
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '0.9'
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 0.9.0
163
+ - !ruby/object:Gem::Dependency
164
+ name: luigi
165
+ requirement: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '1.1'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 1.1.0
173
+ type: :runtime
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '1.1'
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 1.1.0
183
+ - !ruby/object:Gem::Dependency
184
+ name: paint
185
+ requirement: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: '0.8'
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 0.8.7
193
+ type: :runtime
194
+ prerelease: false
195
+ version_requirements: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: '0.8'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 0.8.7
203
+ - !ruby/object:Gem::Dependency
204
+ name: hashr
205
+ requirement: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: 0.0.22
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 0.0.22
213
+ type: :runtime
214
+ prerelease: false
215
+ version_requirements: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - "~>"
218
+ - !ruby/object:Gem::Version
219
+ version: 0.0.22
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: 0.0.22
223
+ - !ruby/object:Gem::Dependency
224
+ name: repl
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '1.0'
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: 1.0.0
233
+ type: :runtime
234
+ prerelease: false
235
+ version_requirements: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - "~>"
238
+ - !ruby/object:Gem::Version
239
+ version: '1.0'
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: 1.0.0
243
+ description: "\n A commandline project management tool.\n It manages future and
244
+ past projects, can create invoice documents, csv and ical overviews.\n All from
245
+ the commandline, syncs via git.\n "
246
+ email: hendrik@hoodie.de
247
+ executables:
248
+ - ascii
249
+ extensions: []
250
+ extra_rdoc_files: []
251
+ files:
252
+ - bin/ascii
253
+ - latex/ascii-brief.cls
254
+ - latex/ascii-brief.sty
255
+ - lib/ascii_invoicer.rb
256
+ - lib/ascii_invoicer/InvoiceProject.rb
257
+ - lib/ascii_invoicer/ascii_logger.rb
258
+ - lib/ascii_invoicer/filters.rb
259
+ - lib/ascii_invoicer/generators.rb
260
+ - lib/ascii_invoicer/hash_transformer.rb
261
+ - lib/ascii_invoicer/mixins.rb
262
+ - lib/ascii_invoicer/projectFileReader.rb
263
+ - lib/ascii_invoicer/rfc5322_regex.rb
264
+ - lib/ascii_invoicer/settings_manager.rb
265
+ - lib/ascii_invoicer/texwriter.rb
266
+ - lib/ascii_invoicer/tweaks.rb
267
+ - lib/ascii_invoicer/version.rb
268
+ - repl/ascii
269
+ - settings/default-settings.yml
270
+ - settings/settings_template.yml
271
+ - templates/default.yml.erb
272
+ - templates/document.tex.erb
273
+ homepage: https://github.com/ascii-dresden/ascii-invoicer
274
+ licenses:
275
+ - GPL
276
+ metadata: {}
277
+ post_install_message:
278
+ rdoc_options: []
279
+ require_paths:
280
+ - lib
281
+ required_ruby_version: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '2.1'
286
+ required_rubygems_version: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - ">="
289
+ - !ruby/object:Gem::Version
290
+ version: '0'
291
+ requirements: []
292
+ rubyforge_project:
293
+ rubygems_version: 2.4.5
294
+ signing_key:
295
+ specification_version: 4
296
+ summary: ascii-invoicer
297
+ test_files: []