ascii_invoicer 2.5.9 → 2.5.10

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: 2aaed93c7c093414e9043b3dd86e9fb3ca77ce25
4
- data.tar.gz: 7a60774dd51efc5faca5c52b40f5b58589c3f06b
3
+ metadata.gz: 695e518f05626d7d49ff52e39a29005057357ab2
4
+ data.tar.gz: 8a17c19f7331d0b5ae76babf591ec2d2d975ef50
5
5
  SHA512:
6
- metadata.gz: 829c6984136235fab3c3133a2fbe43c5964722d4b51329d8d0807b887a47699d0fdb9f2307e31fa0ac8ecd8aea962e763a63182c4095aa3a19beb53e5990bc8c
7
- data.tar.gz: b558a4aa82889ab85c838a6cb2512bb41c777feb5acb1c5ab891ee2c06c5a2ab1334fe4a63154115239e5584fabf19903049345d424e28dd141aa732fe000ce1
6
+ metadata.gz: 6f6a9bf9d506f143fa8d1fa50844575cbda4c1122f608b02c7d6567ce8eabe5db376eae9c5b8fa46cea4890da48595b7913b82877c03d555d1f8d4a8881d0117
7
+ data.tar.gz: aaf28dd551e743f293538c9cf450e74b8c792b01a93e543d1ebae784b43a4f0a5b27288c2203812d40a889f54a19244ee8562bfc7441034a4f923344c0d04838
data/bin/ascii CHANGED
@@ -4,10 +4,10 @@ require 'pp'
4
4
  require 'csv'
5
5
  require 'yaml'
6
6
  require 'thor'
7
- require 'euro'
8
7
  require 'paint'
9
8
  require 'luigi'
10
9
  require 'logger'
10
+ require 'bundler/setup'
11
11
  require 'textboxes'
12
12
  require 'hash-graft'
13
13
 
@@ -39,6 +39,8 @@ $SETTINGS.version = $VERSION = AsciiInvoicer::VERSION
39
39
  ## path to the project File, here we expand the "~"
40
40
  $SETTINGS.path = File.expand_path $SETTINGS.path
41
41
 
42
+ ## money
43
+ $SETTINGS.currency_symbol = Money::Currency.new($SETTINGS.currency).symbol
42
44
 
43
45
  ## "security"
44
46
  #error "settings:editor is an elaborate string: \"#{$SETTINGS.editor}\"!\nDANGEROUS!" if $SETTINGS.editor.include? " "
@@ -264,6 +266,9 @@ class Commander < Thor
264
266
  method_option :caterers, :type=>:boolean,
265
267
  :lazy_default=> true, :required => false, :desc => "list caterers"
266
268
 
269
+ method_option :wages, :type=>:boolean,
270
+ :lazy_default=> true, :required => false, :desc => "list wages"
271
+
267
272
  method_option :blockers, :type=>:boolean, :aliases => '-b',
268
273
  :lazy_default=> true, :required => false, :desc => "list blockers"
269
274
 
@@ -292,10 +297,8 @@ class Commander < Thor
292
297
  hash = {}
293
298
  hash[:verbose] = (options[:verbose] and !options[:simple])
294
299
  hash[:colors] = (options[:colors] and !options[:no_colors])
295
- hash[:errors] = options[:errors]
296
- hash[:blockers] = options[:blockers]
297
- hash[:caterers] = options[:caterers]
298
- hash[:details] = options[:details]
300
+ [ :errors, :blockers,
301
+ :caterers, :wages, :details ].each {|name| hash[name] = options[name]}
299
302
 
300
303
  if options[:paths]
301
304
  map = $PLUMBER.map_project_files_working()
@@ -317,7 +320,6 @@ class Commander < Thor
317
320
  if options[:final]
318
321
  hash[:details] = [] if hash[:details].nil?
319
322
  hash[:details] << "invoice/final"
320
- puts hash
321
323
  end
322
324
 
323
325
  if options[:all]
@@ -1,17 +1,7 @@
1
- begin
2
- require "ascii_invoicer/version"
3
- require "ascii_invoicer/settings_manager"
4
- require "ascii_invoicer/InvoiceProject"
5
- require "ascii_invoicer/hash_transformer"
6
- require "ascii_invoicer/tweaks"
7
- require "ascii_invoicer/mixins"
8
- require "ascii_invoicer/ascii_logger"
9
- rescue LoadError
10
- require "./lib/ascii_invoicer/version"
11
- require "./lib/ascii_invoicer/settings_manager"
12
- require "./lib/ascii_invoicer/InvoiceProject"
13
- require "./lib/ascii_invoicer/hash_transformer"
14
- require "./lib/ascii_invoicer/tweaks"
15
- require "./lib/ascii_invoicer/mixins"
16
- require "./lib/ascii_invoicer/ascii_logger"
17
- end
1
+ require "ascii_invoicer/version"
2
+ require "ascii_invoicer/settings_manager"
3
+ require "ascii_invoicer/InvoiceProject"
4
+ require "ascii_invoicer/hash_transformer"
5
+ require "ascii_invoicer/tweaks"
6
+ require "ascii_invoicer/mixins"
7
+ require "ascii_invoicer/ascii_logger"
@@ -1,7 +1,7 @@
1
1
  require 'yaml'
2
2
  require 'csv'
3
3
  require 'date'
4
- require 'euro'
4
+ require 'money'
5
5
 
6
6
  require File.join __dir__, 'hash_transformer.rb'
7
7
  require File.join __dir__, 'projectFileReader.rb'
@@ -1,5 +1,47 @@
1
1
  require 'icalendar'
2
2
  require 'fileutils'
3
+ require 'money'
4
+
5
+ module EuroConversion
6
+
7
+ def euro
8
+ self.to_euro
9
+ end
10
+
11
+ def €
12
+ self.to_euro
13
+ end
14
+
15
+ def to_euro
16
+ Money.new self*100, $SETTINGS.currency
17
+ end
18
+
19
+ end
20
+
21
+ class Money
22
+ def to_s
23
+ value = self.amount
24
+ a,b = sprintf("%0.2f", value.to_s).split('.')
25
+ a.gsub!(/(\d)(?=(\d{3})+(?!\d))/, '\\1.')
26
+ "#{a}#{self.currency.separator}#{b}#{self.currency.symbol}"
27
+ end
28
+
29
+ def to_euro
30
+ self
31
+ end
32
+ end
33
+
34
+ class Fixnum
35
+ include EuroConversion
36
+ end
37
+
38
+ class Rational
39
+ include EuroConversion
40
+ end
41
+
42
+ class Float
43
+ include EuroConversion
44
+ end
3
45
 
4
46
  module AsciiMixins
5
47
 
@@ -48,6 +90,7 @@ module AsciiMixins
48
90
  end
49
91
 
50
92
  row << caterers_string(project) if hash[:caterers] and project.data[:hours][:caterers]
93
+ row << wages_string(project) if hash[:wages] and project.data[:hours][:caterers]
51
94
 
52
95
  row << project.blockers(:archive) if hash[:blockers]
53
96
  if hash[:details]
@@ -65,7 +108,7 @@ module AsciiMixins
65
108
  puts table
66
109
  end
67
110
 
68
- def print_row_simple(project,hash)
111
+ def print_row_simple(project,hash)
69
112
  row = [
70
113
  project.pretty_name,
71
114
  project.data[:manager],
@@ -140,6 +183,12 @@ module AsciiMixins
140
183
  data[:hours][:caterers].map{|name, hours| "#{name} (#{hours})" if hours > 0 }.join join if data[:hours][:caterers]
141
184
  end
142
185
 
186
+ def wages_string project, join = ", "
187
+ data = project.data
188
+ salary = data[:hours][:salary]
189
+ data[:hours][:caterers].map{|name, hours| "#{name} (#{salary* hours})" if hours > 0 }.join join if data[:hours][:caterers]
190
+ end
191
+
143
192
  #takes an array of invoices (@plumber.working_projects)
144
193
  def print_project_list_csv(projects)
145
194
  header = [
@@ -254,7 +303,7 @@ module AsciiMixins
254
303
  ## hand path to default programm
255
304
  def open_file path
256
305
  unless path.class == String and File.exists? path
257
- $logger.error "Cannot open #{path}", :both
306
+ $logger.error "Cannot open #{path}", :both
258
307
  return false
259
308
  end
260
309
  opener = $SETTINGS.opener
@@ -1,3 +1,3 @@
1
1
  module AsciiInvoicer
2
- VERSION = '2.5.9'
2
+ VERSION = '2.5.10'
3
3
  end
@@ -59,7 +59,7 @@ defaults:
59
59
  - "Wir bitten um eine Begleichung des Betrags innerhalb von 14 Tagen nach Erhalt der Rechnung."
60
60
  signature: Mit freundlichen Grüßen
61
61
 
62
- currency_symbol:
62
+ currency: "eur" # see gem "money"
63
63
 
64
64
  gender_matches:
65
65
  herr: male
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ascii_invoicer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.9
4
+ version: 2.5.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hendrik Sollich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-01 00:00:00.000000000 Z
11
+ date: 2015-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -127,19 +127,19 @@ dependencies:
127
127
  - !ruby/object:Gem::Version
128
128
  version: 0.0.1
129
129
  - !ruby/object:Gem::Dependency
130
- name: euro
130
+ name: money
131
131
  requirement: !ruby/object:Gem::Requirement
132
132
  requirements:
133
133
  - - "~>"
134
134
  - !ruby/object:Gem::Version
135
- version: '0.3'
135
+ version: 6.5.1
136
136
  type: :runtime
137
137
  prerelease: false
138
138
  version_requirements: !ruby/object:Gem::Requirement
139
139
  requirements:
140
140
  - - "~>"
141
141
  - !ruby/object:Gem::Version
142
- version: '0.3'
142
+ version: 6.5.1
143
143
  - !ruby/object:Gem::Dependency
144
144
  name: hash-graft
145
145
  requirement: !ruby/object:Gem::Requirement
@@ -186,20 +186,20 @@ dependencies:
186
186
  requirements:
187
187
  - - "~>"
188
188
  - !ruby/object:Gem::Version
189
- version: '0.8'
189
+ version: '1.0'
190
190
  - - ">="
191
191
  - !ruby/object:Gem::Version
192
- version: 0.8.7
192
+ version: 1.0.0
193
193
  type: :runtime
194
194
  prerelease: false
195
195
  version_requirements: !ruby/object:Gem::Requirement
196
196
  requirements:
197
197
  - - "~>"
198
198
  - !ruby/object:Gem::Version
199
- version: '0.8'
199
+ version: '1.0'
200
200
  - - ">="
201
201
  - !ruby/object:Gem::Version
202
- version: 0.8.7
202
+ version: 1.0.0
203
203
  - !ruby/object:Gem::Dependency
204
204
  name: hashr
205
205
  requirement: !ruby/object:Gem::Requirement