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.
- data/CHANGELOG +6 -1
- data/TODO.txt +60 -38
- data/app/controllers/admin/employees_controller.rb +1 -1
- data/app/controllers/admin/invoices_controller.rb +38 -2
- data/app/controllers/admin/payments_controller.rb +13 -6
- data/app/helpers/admin/activity_tax_field_helper.rb +1 -1
- data/app/helpers/admin/activity_type_field_helper.rb +2 -2
- data/app/helpers/admin/payments_helper.rb +8 -2
- data/app/helpers/application_helper.rb +9 -2
- data/app/model_views/invoices_with_total.rb +5 -0
- data/app/models/activity.rb +7 -3
- data/app/models/activity/labor.rb +1 -1
- data/app/models/activity/labor/slimtimer.rb +2 -0
- data/app/models/client.rb +93 -3
- data/app/models/client_representative.rb +9 -1
- data/app/models/employee.rb +21 -1
- data/app/models/employee/slimtimer.rb +11 -0
- data/app/models/invoice.rb +93 -129
- data/app/models/invoice_payment.rb +54 -0
- data/app/models/payment.rb +25 -48
- data/config/boot.rb +1 -1
- data/db/migrate/029_invoices_with_totals_view_adjustment.rb +29 -0
- data/db/schema.rb +1 -1
- data/lib/brisk-bills.rb +1 -1
- data/lib/tasks/create_last_months_invoices.rake +8 -3
- data/public/javascripts/prototype.js +1573 -1019
- data/public/javascripts/prototype.js-1.6.0.3 +4320 -0
- data/test/test_unit_factory_helper.rb +16 -9
- data/test/unit/client_test.rb +298 -2
- data/test/unit/invoice_payment_test.rb +313 -3
- data/test/unit/invoice_test.rb +49 -36
- data/test/unit/payment_test.rb +35 -31
- data/vendor/plugins/active_scaffold_full_refresh/lib/active_scaffold_full_refresh.rb +4 -2
- metadata +69 -33
data/test/unit/invoice_test.rb
CHANGED
@@ -11,30 +11,29 @@ class InvoiceTest < ActiveSupport::TestCase
|
|
11
11
|
@activity_types = ActivityType.find :all
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
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)
|
20
|
-
Factory.generate_invoice(200.00, :issued_on => (DateTime.now << 3)
|
21
|
-
Factory.generate_invoice(300.00, :issued_on => (DateTime.now << 2)
|
22
|
-
Factory.generate_invoice(400.00, :issued_on => (DateTime.now << 1)
|
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
|
-
|
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
|
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
|
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 =>
|
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
|
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
|
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 =>
|
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 =>
|
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)
|
data/test/unit/payment_test.rb
CHANGED
@@ -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
|
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
|
-
|
36
|
-
|
37
|
-
payments << Factory.generate_payment(
|
38
|
-
payments << Factory.generate_payment(
|
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
|
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
|
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
|
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
|
-
|
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
|
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
|
-
|
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-
|
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
|
-
|
18
|
-
|
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
|
-
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
25
34
|
- !ruby/object:Gem::Dependency
|
26
35
|
name: extensions
|
27
|
-
|
28
|
-
|
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
|
-
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
35
48
|
- !ruby/object:Gem::Dependency
|
36
49
|
name: pdf-writer
|
37
|
-
|
38
|
-
|
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
|
-
|
60
|
+
type: :runtime
|
61
|
+
version_requirements: *id003
|
45
62
|
- !ruby/object:Gem::Dependency
|
46
63
|
name: slimtimer4r
|
47
|
-
|
48
|
-
|
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
|
-
|
74
|
+
type: :runtime
|
75
|
+
version_requirements: *id004
|
55
76
|
- !ruby/object:Gem::Dependency
|
56
77
|
name: money
|
57
|
-
|
58
|
-
|
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
|
-
|
88
|
+
type: :runtime
|
89
|
+
version_requirements: *id005
|
65
90
|
- !ruby/object:Gem::Dependency
|
66
91
|
name: mysql
|
67
|
-
|
68
|
-
|
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
|
-
|
101
|
+
type: :runtime
|
102
|
+
version_requirements: *id006
|
75
103
|
- !ruby/object:Gem::Dependency
|
76
104
|
name: rails
|
77
|
-
|
78
|
-
|
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
|
-
|
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.
|
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.
|