ascii_invoicer 2.5.9 → 2.5.10

Sign up to get free protection for your applications and to get access to all the features.
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