brisk-bills 0.6.0 → 0.7.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.
Files changed (34) hide show
  1. data/CHANGELOG +6 -1
  2. data/TODO.txt +60 -38
  3. data/app/controllers/admin/employees_controller.rb +1 -1
  4. data/app/controllers/admin/invoices_controller.rb +38 -2
  5. data/app/controllers/admin/payments_controller.rb +13 -6
  6. data/app/helpers/admin/activity_tax_field_helper.rb +1 -1
  7. data/app/helpers/admin/activity_type_field_helper.rb +2 -2
  8. data/app/helpers/admin/payments_helper.rb +8 -2
  9. data/app/helpers/application_helper.rb +9 -2
  10. data/app/model_views/invoices_with_total.rb +5 -0
  11. data/app/models/activity.rb +7 -3
  12. data/app/models/activity/labor.rb +1 -1
  13. data/app/models/activity/labor/slimtimer.rb +2 -0
  14. data/app/models/client.rb +93 -3
  15. data/app/models/client_representative.rb +9 -1
  16. data/app/models/employee.rb +21 -1
  17. data/app/models/employee/slimtimer.rb +11 -0
  18. data/app/models/invoice.rb +93 -129
  19. data/app/models/invoice_payment.rb +54 -0
  20. data/app/models/payment.rb +25 -48
  21. data/config/boot.rb +1 -1
  22. data/db/migrate/029_invoices_with_totals_view_adjustment.rb +29 -0
  23. data/db/schema.rb +1 -1
  24. data/lib/brisk-bills.rb +1 -1
  25. data/lib/tasks/create_last_months_invoices.rake +8 -3
  26. data/public/javascripts/prototype.js +1573 -1019
  27. data/public/javascripts/prototype.js-1.6.0.3 +4320 -0
  28. data/test/test_unit_factory_helper.rb +16 -9
  29. data/test/unit/client_test.rb +298 -2
  30. data/test/unit/invoice_payment_test.rb +313 -3
  31. data/test/unit/invoice_test.rb +49 -36
  32. data/test/unit/payment_test.rb +35 -31
  33. data/vendor/plugins/active_scaffold_full_refresh/lib/active_scaffold_full_refresh.rb +4 -2
  34. metadata +69 -33
@@ -11,30 +11,29 @@ class InvoiceTest < ActiveSupport::TestCase
11
11
  @activity_types = ActivityType.find :all
12
12
  end
13
13
 
14
- def test_only_newest_invoice_can_be_unpublished
14
+ def ensure_old_invoices_can_be_unpublished
15
15
  client = Factory.create_client
16
16
 
17
17
  # Once they're published they cant be unpublished unless they're the newest invoice...
18
18
  invoices = [
19
- Factory.generate_invoice(100.00, :issued_on => (DateTime.now << 4), :is_published => true ),
20
- Factory.generate_invoice(200.00, :issued_on => (DateTime.now << 3), :is_published => true ),
21
- Factory.generate_invoice(300.00, :issued_on => (DateTime.now << 2), :is_published => true ),
22
- Factory.generate_invoice(400.00, :issued_on => (DateTime.now << 1), :is_published => true )
19
+ Factory.generate_invoice( client, 100.00, :issued_on => (DateTime.now << 4) ),
20
+ Factory.generate_invoice( client, 200.00, :issued_on => (DateTime.now << 3) ),
21
+ Factory.generate_invoice( client, 300.00, :issued_on => (DateTime.now << 2) ),
22
+ Factory.generate_invoice( client, 400.00, :issued_on => (DateTime.now << 1) )
23
23
  ]
24
24
 
25
25
  invoices[0...2].each do |inv|
26
- assert_raise(ActiveRecord::RecordInvalid) {set_published inv, false}
26
+ assert_nothing_raised(ActiveRecord::RecordInvalid) {set_published inv, false}
27
27
  end
28
28
 
29
29
  assert_nothing_raised { set_published invoices[3], false }
30
-
31
30
  end
32
31
 
33
32
  def test_ensure_client_cant_be_changed
34
33
  client = Factory.create_client
35
34
  client2 = Factory.create_client :company_name => 'Client 2, Inc.'
36
35
 
37
- invoice = Factory.generate_invoice 100.00, :client => client
36
+ invoice = Factory.generate_invoice client, 100.00
38
37
 
39
38
  assert_raise(ActiveRecord::RecordInvalid) do
40
39
  invoice.client = client2
@@ -52,7 +51,7 @@ class InvoiceTest < ActiveSupport::TestCase
52
51
  :paid_on => (DateTime.now << 1)
53
52
  )
54
53
 
55
- inv = Factory.generate_invoice 1000.00, :issued_on => (DateTime.now >> 12)
54
+ inv = Factory.generate_invoice client, 1000.00, :issued_on => (DateTime.now >> 12), :is_published => false
56
55
 
57
56
  # Change payment, save:
58
57
  assert_nothing_raised do
@@ -126,8 +125,17 @@ class InvoiceTest < ActiveSupport::TestCase
126
125
  Factory.create_adjustment.activity.id
127
126
  ]
128
127
 
129
- assert_nothing_raised { invoice = Invoice.create! :client => client, :issued_on => (DateTime.now+1), :activity_types => @activity_types }
130
-
128
+ assert_nothing_raised do
129
+ issued_on = (DateTime.now+1)
130
+
131
+ invoice = Invoice.create!(
132
+ :client => client,
133
+ :issued_on => issued_on,
134
+ :activity_types => @activity_types,
135
+ :activities => Invoice.recommended_activities_for(client, issued_on, @activity_types)
136
+ )
137
+ end
138
+
131
139
  # Make sure the right activities were included:
132
140
  assert_equal 4, invoice.activities.length
133
141
  invoice.activities.each { |a| assert_equal true, valid_activities.include?(a.id) }
@@ -155,10 +163,12 @@ class InvoiceTest < ActiveSupport::TestCase
155
163
  invoice = nil
156
164
 
157
165
  assert_nothing_raised do
166
+ issued_on = DateTime.now
158
167
  invoice = Invoice.create!(
159
168
  :client => client,
160
- :issued_on => DateTime.now,
161
- :activity_types => @activity_types
169
+ :issued_on => issued_on,
170
+ :activity_types => @activity_types,
171
+ :activities => Invoice.recommended_activities_for(client, issued_on, @activity_types)
162
172
  )
163
173
 
164
174
  invoice.is_published = true
@@ -167,7 +177,7 @@ class InvoiceTest < ActiveSupport::TestCase
167
177
 
168
178
  # Make sure they can't destroy:
169
179
  assert_equal false, invoice.destroy
170
-
180
+
171
181
  # Make sure they can't update:
172
182
  invoice.comments = "This shouldn't be retained!"
173
183
  assert_raise(ActiveRecord::RecordInvalid) { invoice.save! }
@@ -221,7 +231,14 @@ class InvoiceTest < ActiveSupport::TestCase
221
231
  ]
222
232
 
223
233
  invoice = nil
224
- assert_nothing_raised { invoice = Invoice.create! :client => client, :issued_on => present_date, :activity_types => @activity_types }
234
+ assert_nothing_raised do
235
+ invoice = Invoice.create!(
236
+ :client => client,
237
+ :issued_on => present_date,
238
+ :activity_types => @activity_types,
239
+ :activities => Invoice.recommended_activities_for(client, present_date, @activity_types)
240
+ )
241
+ end
225
242
 
226
243
  # Make sure the right activities were included:
227
244
  assert_equal 4, invoice.activities(true).size
@@ -234,6 +251,7 @@ class InvoiceTest < ActiveSupport::TestCase
234
251
  # Now let's set to the way future:
235
252
  assert_nothing_raised do
236
253
  invoice.issued_on = present_date >> 2
254
+ invoice.activities = invoice.recommended_activities
237
255
  invoice.save!
238
256
  end
239
257
 
@@ -247,6 +265,7 @@ class InvoiceTest < ActiveSupport::TestCase
247
265
  # Now let's set back to present:
248
266
  assert_nothing_raised do
249
267
  invoice.issued_on = present_date
268
+ invoice.activities = invoice.recommended_activities
250
269
  invoice.save!
251
270
  end
252
271
 
@@ -259,22 +278,6 @@ class InvoiceTest < ActiveSupport::TestCase
259
278
  end
260
279
 
261
280
  end
262
-
263
- def test_invoice_deletes_only_if_recent
264
- invoice_time = Time.new
265
-
266
- invoices = [20,40,80,160,320,640,1280].collect do |amt|
267
- invoice_time += 1.weeks
268
- Factory.generate_invoice amt, :issued_on => invoice_time
269
- end
270
-
271
- while invoices.length > 0
272
- 0.upto(invoices.length-2) { |i| assert_equal false, invoices[i].destroy }
273
-
274
- assert_not_equal false, invoices.delete_at(invoices.length-1).destroy
275
- end
276
-
277
- end
278
281
 
279
282
  def test_activity_type_inclusions
280
283
  client = Factory.create_client
@@ -284,7 +287,7 @@ class InvoiceTest < ActiveSupport::TestCase
284
287
  a_type_map = HashWithIndifferentAccess.new
285
288
  @activity_types.each{|at| a_type_map[at.label.downcase] = at }
286
289
 
287
- # First, let's Make sure this includion feature actually works during a create
290
+ # First, let's Make sure this inclusion feature actually works during a create
288
291
  present_date = DateTime.now
289
292
  past_date = (present_date << 1)
290
293
 
@@ -305,7 +308,8 @@ class InvoiceTest < ActiveSupport::TestCase
305
308
  invoice = Invoice.create!(
306
309
  :client => client,
307
310
  :issued_on => present_date,
308
- :activity_types => [ a_type_map[:material], a_type_map[:labor] ]
311
+ :activity_types => [ a_type_map[:material], a_type_map[:labor] ],
312
+ :activities => Invoice.recommended_activities_for(client, present_date, [ a_type_map[:material], a_type_map[:labor] ])
309
313
  )
310
314
  end
311
315
 
@@ -321,6 +325,7 @@ class InvoiceTest < ActiveSupport::TestCase
321
325
  # Let's remove a type and see if this works the way it should:
322
326
  assert_nothing_raised do
323
327
  invoice.activity_types.delete a_type_map[:material]
328
+ invoice.activities = invoice.recommended_activities
324
329
  invoice.save!
325
330
 
326
331
  # We have to expire the cache here....
@@ -339,6 +344,7 @@ class InvoiceTest < ActiveSupport::TestCase
339
344
  # Now let's add the rest of the types, and see if it works the way it should:
340
345
  assert_nothing_raised do
341
346
  invoice.activity_types.push a_type_map[:material], a_type_map[:proposal]
347
+ invoice.activities = invoice.recommended_activities
342
348
  invoice.save!
343
349
 
344
350
  # We have to expire the cache here....
@@ -388,15 +394,18 @@ class InvoiceTest < ActiveSupport::TestCase
388
394
 
389
395
  subactivities = [labor, material, proposal, adjustment]
390
396
 
397
+ present_date = DateTime.now
398
+
391
399
  invoice_src = Invoice.create!(
392
400
  :client => client_src,
393
- :issued_on => DateTime.now,
394
- :activity_types => @activity_types
401
+ :issued_on => present_date,
402
+ :activity_types => @activity_types,
403
+ :activities => Invoice.recommended_activities_for(client_src, present_date, @activity_types)
395
404
  )
396
405
 
397
406
  invoice_dest = Invoice.create!(
398
407
  :client => client_dest,
399
- :issued_on => DateTime.now
408
+ :issued_on => present_date
400
409
  )
401
410
 
402
411
  subactivities.each do |activity_type|
@@ -416,6 +425,8 @@ class InvoiceTest < ActiveSupport::TestCase
416
425
  end
417
426
  end
418
427
 
428
+ invoice_dest.activities(true)
429
+
419
430
  assert_equal 2448.99, invoice_dest.amount
420
431
 
421
432
  assert_equal 2448.99, (invoice_dest.sub_total+invoice_dest.taxes_total)
@@ -432,6 +443,8 @@ class InvoiceTest < ActiveSupport::TestCase
432
443
  assert_equal invoice_src.id, labor.activity.invoice_id
433
444
  assert_equal client_src.id, labor.activity.client_id
434
445
 
446
+ invoice_dest.activities(true)
447
+
435
448
  assert_equal 2447.0, invoice_dest.amount
436
449
 
437
450
  assert_equal 2447.0, (invoice_dest.sub_total+invoice_dest.taxes_total)
@@ -9,9 +9,9 @@ class PaymentTest < ActiveSupport::TestCase
9
9
  client = Factory.create_client
10
10
 
11
11
  invoices = []
12
-
12
+
13
13
  [1200.00, 400, 99.99, 1500.99, 430.01].each do |amt|
14
- inv = Factory.generate_invoice(amt)
14
+ inv = Factory.generate_invoice client, amt
15
15
 
16
16
  assert_equal amt, inv.amount # THis was a weird bug we were having so I put this here...
17
17
 
@@ -23,7 +23,7 @@ class PaymentTest < ActiveSupport::TestCase
23
23
  payments = []
24
24
 
25
25
  [1200.00, 400.00, 99.99, 0.99, 1500, 400.0, 30.01].each do |amt|
26
- payments << Factory.generate_payment(amt)
26
+ payments << Factory.generate_payment( client, amt)
27
27
  end
28
28
 
29
29
  assert_equal 0.to_money, client.balance
@@ -31,23 +31,23 @@ class PaymentTest < ActiveSupport::TestCase
31
31
  payments.delete_at(1).destroy
32
32
 
33
33
  assert_equal 400.00.to_money, client.balance
34
+
35
+ invoices.each_index { |i| assert_equal( ((i == 1) ? false : true), invoices[i].is_paid?(true) ) }
34
36
 
35
- invoices.each_index { |i| assert_equal( ((i == 1) ? false : true), invoices[i].is_paid? ) }
36
-
37
- payments << Factory.generate_payment(174.00)
38
- payments << Factory.generate_payment(15.00)
39
- payments << Factory.generate_payment(10.00)
40
- payments << Factory.generate_payment(201.00)
37
+ payments << Factory.generate_payment( client, 174.00)
38
+ payments << Factory.generate_payment( client, 15.00)
39
+ payments << Factory.generate_payment( client, 10.00)
40
+ payments << Factory.generate_payment( client, 201.00)
41
41
 
42
42
  assert_equal 0.0.to_money, client.balance
43
43
 
44
44
  assert_equal true, invoices[1].is_paid?
45
45
 
46
- payments << Factory.generate_payment(300.20)
46
+ payments << Factory.generate_payment( client, 300.20)
47
47
 
48
48
  assert_equal -300.20.to_money, client.balance
49
49
 
50
- invoices << Factory.generate_invoice(300.20)
50
+ invoices << Factory.generate_invoice( client, 300.20)
51
51
 
52
52
  assert_equal 0.to_money, client.balance
53
53
  end
@@ -55,64 +55,68 @@ class PaymentTest < ActiveSupport::TestCase
55
55
  def test_invoice_allocates_payment_credits
56
56
  client = Factory.create_client
57
57
 
58
- Factory.generate_payment 230.00
59
- Factory.generate_payment 70.00
58
+ Factory.generate_payment client, 230.00
59
+ Factory.generate_payment client, 70.00
60
60
 
61
- invoice_one = Factory.generate_invoice 290.00, :is_published => true
61
+ invoice_one = Factory.generate_invoice client, 290.00
62
62
 
63
63
  assert_equal true, invoice_one.is_paid?
64
64
  assert_equal -10.00, client.balance
65
65
 
66
- Factory.generate_payment 200.00
66
+ Factory.generate_payment client, 200.00
67
67
 
68
- invoice_two = Factory.generate_invoice 220.00, :is_published => true
68
+ invoice_two = Factory.generate_invoice client, 220.00
69
69
 
70
70
  assert_equal false, invoice_two.is_paid?
71
71
  assert_equal 10.00, client.balance
72
72
 
73
- Factory.generate_payment 10.00
73
+ Factory.generate_payment client, 10.00
74
74
 
75
75
  assert_equal true, invoice_two.is_paid?
76
76
  assert_equal 0.00, client.balance
77
77
 
78
- Factory.generate_payment 300.00
78
+ Factory.generate_payment client, 300.00
79
79
 
80
- invoice_three = Factory.generate_invoice 300.00, :is_published => true
80
+ invoice_three = Factory.generate_invoice client, 300.00
81
81
 
82
82
  assert_equal true, invoice_three.is_paid?
83
83
  assert_equal 0.00, client.balance
84
84
  end
85
85
 
86
86
  def test_invoice_paid_on
87
+ client = Factory.create_client
88
+
87
89
  payment_one_on = sanitize_time(Time.now - 3.months)
88
90
  payment_two_on = sanitize_time(Time.now - 2.months)
89
91
  payment_three_on = sanitize_time(Time.now - 2.months)
90
-
91
- Factory.generate_payment 200.00, :paid_on => payment_one_on
92
92
 
93
- invoice = Factory.generate_invoice 600.00, :issued_on => payment_two_on, :is_published => true
93
+ payment_one = Factory.generate_payment client, 201.00, :paid_on => payment_one_on
94
+
95
+ invoice = Factory.generate_invoice client, 601.00, :issued_on => payment_two_on, :is_published => true
94
96
 
95
- payment_two = Factory.generate_payment 200.00, :paid_on => payment_two_on
96
- Factory.generate_payment 200.00, :paid_on => payment_three_on
97
+ payment_two = Factory.generate_payment client, 200.00, :paid_on => payment_two_on
98
+ payment_three = Factory.generate_payment client, 200.00, :paid_on => payment_three_on
97
99
 
98
- assert_equal true, invoice.is_paid?
100
+ assert_equal true, invoice.is_paid?(true)
99
101
  assert_equal payment_two_on, invoice.paid_on
100
102
 
101
103
  payment_two.destroy
102
104
 
103
- assert_equal false, invoice.is_paid?
105
+ assert_equal false, invoice.is_paid?(true)
104
106
  assert_equal nil, invoice.paid_on
105
107
  end
106
108
 
107
109
  def test_whacko_payment_deletes
110
+ client = Factory.create_client
111
+
108
112
  running_time = sanitize_time(Time.now - 1.years)
109
113
 
110
114
  payments = []
111
115
  invoices = []
112
116
 
113
117
  [2,4,8,16,32,64,128,256,512,1024].each do |amt|
114
- invoice = Factory.generate_invoice( amt, :issued_on => (running_time += 2.weeks) )
115
- payments << Factory.generate_payment( amt, :paid_on => (running_time += 2.weeks) )
118
+ invoice = Factory.generate_invoice( client, amt, :issued_on => (running_time += 2.weeks) )
119
+ payments << Factory.generate_payment( client, amt, :paid_on => (running_time += 2.weeks) )
116
120
 
117
121
  assert_equal running_time, invoice.paid_on
118
122
  invoices << invoice
@@ -126,9 +130,9 @@ class PaymentTest < ActiveSupport::TestCase
126
130
 
127
131
  [1,3,5,7,9].each do |i|
128
132
  running_time += 2.weeks
129
- payments << Factory.generate_payment( invoices[i].amount, :paid_on => running_time )
133
+ payments << Factory.generate_payment( client, invoices[i].amount, :paid_on => running_time )
130
134
 
131
- assert_equal true, invoices[i].is_paid?
135
+ assert_equal true, invoices[i].is_paid?(true)
132
136
  assert_equal running_time, invoices[i].paid_on
133
137
  end
134
138
 
@@ -138,7 +142,7 @@ class PaymentTest < ActiveSupport::TestCase
138
142
 
139
143
  assert_equal 682.to_money, Factory.create_client.balance
140
144
 
141
- Factory.generate_payment 682, :paid_on => (running_time += 2.weeks)
145
+ Factory.generate_payment client, 682, :paid_on => (running_time += 2.weeks)
142
146
 
143
147
  [0,2,4,6,8].each { |i| assert_equal running_time, invoices[i].paid_on }
144
148
 
@@ -9,7 +9,7 @@ module ActiveScaffoldFullRefresh
9
9
  if successful?
10
10
  do_list unless @records
11
11
 
12
- render(:update) do |page|
12
+ render(:update) do |page|
13
13
  page.replace_html active_scaffold_content_id, :partial => 'list', :layout => false
14
14
 
15
15
  if on_action == :create
@@ -21,7 +21,9 @@ module ActiveScaffoldFullRefresh
21
21
  end
22
22
  end
23
23
  else
24
- render :action => "#{on_action}.html.erb", :layout => false
24
+ render(:update) do |page|
25
+ page.replace_html element_form_id(:action => :update), :partial => 'update_form', :layout => false
26
+ end
25
27
  end
26
28
 
27
29
  else
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brisk-bills
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 7
8
+ - 0
9
+ version: 0.7.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Chris DeRose, DeRose Technologies, Inc.
@@ -9,79 +14,106 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-05-03 00:00:00 -04:00
17
+ date: 2010-10-06 00:00:00 -04:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: rake
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 8
30
+ - 3
23
31
  version: 0.8.3
24
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: extensions
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ - 6
44
+ - 0
33
45
  version: 0.6.0
34
- version:
46
+ type: :runtime
47
+ version_requirements: *id002
35
48
  - !ruby/object:Gem::Dependency
36
49
  name: pdf-writer
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
40
52
  requirements:
41
53
  - - ">="
42
54
  - !ruby/object:Gem::Version
55
+ segments:
56
+ - 1
57
+ - 1
58
+ - 8
43
59
  version: 1.1.8
44
- version:
60
+ type: :runtime
61
+ version_requirements: *id003
45
62
  - !ruby/object:Gem::Dependency
46
63
  name: slimtimer4r
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
50
66
  requirements:
51
67
  - - ">="
52
68
  - !ruby/object:Gem::Version
69
+ segments:
70
+ - 0
71
+ - 2
72
+ - 4
53
73
  version: 0.2.4
54
- version:
74
+ type: :runtime
75
+ version_requirements: *id004
55
76
  - !ruby/object:Gem::Dependency
56
77
  name: money
57
- type: :runtime
58
- version_requirement:
59
- version_requirements: !ruby/object:Gem::Requirement
78
+ prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
60
80
  requirements:
61
81
  - - ">="
62
82
  - !ruby/object:Gem::Version
83
+ segments:
84
+ - 2
85
+ - 2
86
+ - 0
63
87
  version: 2.2.0
64
- version:
88
+ type: :runtime
89
+ version_requirements: *id005
65
90
  - !ruby/object:Gem::Dependency
66
91
  name: mysql
67
- type: :runtime
68
- version_requirement:
69
- version_requirements: !ruby/object:Gem::Requirement
92
+ prerelease: false
93
+ requirement: &id006 !ruby/object:Gem::Requirement
70
94
  requirements:
71
95
  - - ">="
72
96
  - !ruby/object:Gem::Version
97
+ segments:
98
+ - 2
99
+ - 7
73
100
  version: "2.7"
74
- version:
101
+ type: :runtime
102
+ version_requirements: *id006
75
103
  - !ruby/object:Gem::Dependency
76
104
  name: rails
77
- type: :runtime
78
- version_requirement:
79
- version_requirements: !ruby/object:Gem::Requirement
105
+ prerelease: false
106
+ requirement: &id007 !ruby/object:Gem::Requirement
80
107
  requirements:
81
108
  - - ">="
82
109
  - !ruby/object:Gem::Version
110
+ segments:
111
+ - 2
112
+ - 3
113
+ - 2
83
114
  version: 2.3.2
84
- version:
115
+ type: :runtime
116
+ version_requirements: *id007
85
117
  description: A full-featured, rails-based system for basic accounting, with a particular focus on invoicing and automatic bill generation.
86
118
  email: cderose@derosetechnologies.com
87
119
  executables:
@@ -246,6 +278,7 @@ files:
246
278
  - db/migrate/026_create_st_settings.rb
247
279
  - db/migrate/027_create_sessions.rb
248
280
  - db/migrate/028_money_to_cents.rb
281
+ - db/migrate/029_invoices_with_totals_view_adjustment.rb
249
282
  - db/schema.rb
250
283
  - INSTALL
251
284
  - lib/brisk-bills/initializer.rb
@@ -309,6 +342,7 @@ files:
309
342
  - public/javascripts/effects.js
310
343
  - public/javascripts/modalbox.js
311
344
  - public/javascripts/prototype.js
345
+ - public/javascripts/prototype.js-1.6.0.3
312
346
  - public/javascripts/scriptaculous.js
313
347
  - public/javascripts/shadedborder.js
314
348
  - public/javascripts/slider.js
@@ -638,18 +672,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
638
672
  requirements:
639
673
  - - ">="
640
674
  - !ruby/object:Gem::Version
675
+ segments:
676
+ - 0
641
677
  version: "0"
642
- version:
643
678
  required_rubygems_version: !ruby/object:Gem::Requirement
644
679
  requirements:
645
680
  - - ">="
646
681
  - !ruby/object:Gem::Version
682
+ segments:
683
+ - 0
647
684
  version: "0"
648
- version:
649
685
  requirements: []
650
686
 
651
687
  rubyforge_project: brisk-bills
652
- rubygems_version: 1.3.5
688
+ rubygems_version: 1.3.6
653
689
  signing_key:
654
690
  specification_version: 3
655
691
  summary: A full-featured, rails-based system for basic accounting, with a particular focus on invoicing and automatic bill generation.