billing 0.0.7i → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/billing/bill.rb +12 -33
- data/app/models/billing/report.rb +1 -2
- data/app/models/billing/version.rb +0 -2
- data/lib/billing/engine.rb +0 -5
- data/lib/billing/version.rb +1 -1
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/schema.rb +1 -4
- data/test/dummy/log/development.log +0 -479
- metadata +5 -22
- data/app/jobs/billing/issue_fiscal_doc.rb +0 -132
- data/db/migrate/20150510235441_add_master_to_billing_version.rb +0 -6
- data/db/migrate/20150512040421_add_deleted_at_to_billing_report.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ad7f574f1fd705d1c3fa07c37a6d82206cebe8d
|
4
|
+
data.tar.gz: d9c2f1161ef14b21b15fce52fa6befe525946cd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59892ba7beb3905f859f85f4c564191c0e85ac59c2cc48486f6077653f9e8881c10bba5ff39e6242ac6768e978b8de4663cad0f27f0e2c4058643ec398c77dc7
|
7
|
+
data.tar.gz: df3c4069cc8a8cb59d6439fb9daf72fa9cbba6889c02c375dc7dc9d264781ff1ce614d3056896942fdbaebcb4c885109c8a789dfb7919f3e2a8cb551224a0497
|
data/app/models/billing/bill.rb
CHANGED
@@ -39,7 +39,6 @@ module Billing
|
|
39
39
|
self.name = "B:#{number}" if name.nil?
|
40
40
|
end
|
41
41
|
before_save :perform_autofin, if: :becomes_paid?
|
42
|
-
after_save :create_fiscal_job, if: :fiscalizable?
|
43
42
|
|
44
43
|
validates_numericality_of :total, greater_than_or_equal_to: 0
|
45
44
|
validates_numericality_of :balance, less_than_or_equal_to: 0
|
@@ -90,24 +89,17 @@ module Billing
|
|
90
89
|
end
|
91
90
|
|
92
91
|
def fiscalize(detailed = false)
|
93
|
-
|
94
|
-
|
95
|
-
#self.extface_job if save
|
96
|
-
if defined?(Extface) && fiscalizable? && device = origin.try(:fiscal_device)
|
97
|
-
#self.extface_job = origin.fiscal_device.driver.fiscalize(self) if fiscalizable? && origin.try(:fiscal_device)
|
98
|
-
self.extface_job = device.jobs.new
|
99
|
-
self.extface_job if save
|
100
|
-
end
|
92
|
+
self.extface_job = origin.fiscal_device.driver.fiscalize(self, detailed) if fiscalizable? && origin.try(:fiscal_device)
|
93
|
+
self.extface_job if save
|
101
94
|
end
|
102
95
|
|
103
96
|
def global_modifier_value
|
104
|
-
global_modifiers = modifiers.select{ |m| m.charge.nil? }
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
end
|
110
|
-
return gvalue
|
97
|
+
if global_modifiers = modifiers.select{ |m| m.charge.nil? }
|
98
|
+
Money.new(0).tap() do |value|
|
99
|
+
global_modifiers.each do |global_modifier|
|
100
|
+
value += global_modifier.percent_ratio.nil? ? global_modifier.fixed_value : (charges_a.sum(&:value).to_money * global_modifier.percent_ratio)
|
101
|
+
end
|
102
|
+
end if global_modifiers.any?
|
111
103
|
end
|
112
104
|
end
|
113
105
|
|
@@ -115,10 +107,6 @@ module Billing
|
|
115
107
|
# get operator, who close/pay the bill?
|
116
108
|
#operator.operator_fiscal_driver_mapping.find_by(extface_driver_id: fiscal_driver.id) if fiscal_driver.fiscal?
|
117
109
|
end
|
118
|
-
|
119
|
-
def fiscalizable?
|
120
|
-
self.finalized_at.present? && payments.select(&:fiscal?).any? && origin.try(:fiscal_device) && balance.zero?
|
121
|
-
end
|
122
110
|
|
123
111
|
private
|
124
112
|
def calculate_modifiers
|
@@ -164,26 +152,17 @@ module Billing
|
|
164
152
|
end
|
165
153
|
|
166
154
|
def perform_autofin
|
167
|
-
p "!!!!!!!!!!perform_autofin"
|
168
155
|
if autofin
|
169
156
|
self.finalized_at = Time.now
|
170
|
-
if defined?
|
171
|
-
|
172
|
-
self.extface_job = device.jobs.new
|
157
|
+
if defined? Extface
|
158
|
+
self.extface_job = origin.fiscal_device.driver.fiscalize(self) if fiscalizable? && origin.try(:fiscal_device)
|
173
159
|
end
|
174
160
|
end
|
175
161
|
true
|
176
162
|
end
|
177
163
|
|
178
|
-
def
|
179
|
-
|
180
|
-
p "device: #{device.try(:id)}"
|
181
|
-
p "self: #{self.try(:id)}"
|
182
|
-
p "self.finalized_at changed: #{self.finalized_at_changed?}"
|
183
|
-
|
184
|
-
Resque.enqueue_to("extface_#{device.id}", Billing::IssueFiscalDoc, self.id)
|
185
|
-
end
|
186
|
-
true
|
164
|
+
def fiscalizable?
|
165
|
+
payments.select(&:fiscal?).any?
|
187
166
|
end
|
188
167
|
|
189
168
|
end
|
@@ -5,8 +5,7 @@ module Billing
|
|
5
5
|
FISCAL_PERIOD_REPORT = 'period_report'.freeze
|
6
6
|
FISCAL_PAYED_RECVD = 'payed_recvd'.freeze
|
7
7
|
F_OPERATIONS = [FISCAL_X_REPORT, FISCAL_Z_REPORT, FISCAL_PERIOD_REPORT, FISCAL_PAYED_RECVD].freeze
|
8
|
-
|
9
|
-
acts_as_paranoid if respond_to?(:acts_as_paranoid)
|
8
|
+
|
10
9
|
has_paper_trail class_name: 'Billing::Version'
|
11
10
|
belongs_to :origin, inverse_of: :reports
|
12
11
|
has_many :bills, inverse_of: :report, autosave: true
|
data/lib/billing/engine.rb
CHANGED
data/lib/billing/version.rb
CHANGED
Binary file
|
data/test/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
14
|
+
ActiveRecord::Schema.define(version: 20150510142229) do
|
15
15
|
|
16
16
|
create_table "billing_bills", force: :cascade do |t|
|
17
17
|
t.integer "billable_id"
|
@@ -231,7 +231,6 @@ ActiveRecord::Schema.define(version: 20150512040421) do
|
|
231
231
|
t.string "f_operation", limit: 255
|
232
232
|
t.integer "f_amount_cents", default: 0, null: false
|
233
233
|
t.string "f_amount_currency", limit: 255, default: "USD", null: false
|
234
|
-
t.datetime "deleted_at"
|
235
234
|
end
|
236
235
|
|
237
236
|
add_index "billing_reports", ["origin_id"], name: "index_billing_reports_on_origin_id"
|
@@ -280,8 +279,6 @@ ActiveRecord::Schema.define(version: 20150512040421) do
|
|
280
279
|
t.string "ip", limit: 255
|
281
280
|
t.string "user_agent", limit: 255
|
282
281
|
t.text "object_changes"
|
283
|
-
t.integer "master_id"
|
284
|
-
t.string "master_type"
|
285
282
|
end
|
286
283
|
|
287
284
|
add_index "billing_versions", ["item_type", "item_id"], name: "index_billing_versions_on_item_type_and_item_id"
|
@@ -2331,482 +2331,3 @@ Migrating to AddObjectChangesToBillingVersions (20150510142229)
|
|
2331
2331
|
FROM sqlite_temp_master
|
2332
2332
|
WHERE name='index_billing_versions_on_item_type_and_item_id' AND type='index'
|
2333
2333
|
[0m
|
2334
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
2335
|
-
Migrating to AddMasterToBillingVersion (20150510235441)
|
2336
|
-
[1m[35m (0.1ms)[0m begin transaction
|
2337
|
-
[1m[36m (0.5ms)[0m [1mALTER TABLE "billing_versions" ADD "master_id" integer[0m
|
2338
|
-
[1m[35m (0.3ms)[0m ALTER TABLE "billing_versions" ADD "master_type" varchar
|
2339
|
-
[1m[36mSQL (0.3ms)[0m [1mINSERT INTO "schema_migrations" ("version") VALUES (?)[0m [["version", "20150510235441"]]
|
2340
|
-
[1m[35m (82.0ms)[0m commit transaction
|
2341
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.4ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
2342
|
-
[1m[35m (0.3ms)[0m SELECT sql
|
2343
|
-
FROM sqlite_master
|
2344
|
-
WHERE name='index_billing_bills_on_billable_id_and_billable_type' AND type='index'
|
2345
|
-
UNION ALL
|
2346
|
-
SELECT sql
|
2347
|
-
FROM sqlite_temp_master
|
2348
|
-
WHERE name='index_billing_bills_on_billable_id_and_billable_type' AND type='index'
|
2349
|
-
|
2350
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2351
|
-
FROM sqlite_master
|
2352
|
-
WHERE name='index_billing_bills_on_origin_id' AND type='index'
|
2353
|
-
UNION ALL
|
2354
|
-
SELECT sql
|
2355
|
-
FROM sqlite_temp_master
|
2356
|
-
WHERE name='index_billing_bills_on_origin_id' AND type='index'
|
2357
|
-
[0m
|
2358
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2359
|
-
FROM sqlite_master
|
2360
|
-
WHERE name='index_billing_bills_on_extface_job_id' AND type='index'
|
2361
|
-
UNION ALL
|
2362
|
-
SELECT sql
|
2363
|
-
FROM sqlite_temp_master
|
2364
|
-
WHERE name='index_billing_bills_on_extface_job_id' AND type='index'
|
2365
|
-
|
2366
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2367
|
-
FROM sqlite_master
|
2368
|
-
WHERE name='index_billing_bills_on_report_id' AND type='index'
|
2369
|
-
UNION ALL
|
2370
|
-
SELECT sql
|
2371
|
-
FROM sqlite_temp_master
|
2372
|
-
WHERE name='index_billing_bills_on_report_id' AND type='index'
|
2373
|
-
[0m
|
2374
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2375
|
-
FROM sqlite_master
|
2376
|
-
WHERE name='index_billing_charges_on_bill_id' AND type='index'
|
2377
|
-
UNION ALL
|
2378
|
-
SELECT sql
|
2379
|
-
FROM sqlite_temp_master
|
2380
|
-
WHERE name='index_billing_charges_on_bill_id' AND type='index'
|
2381
|
-
|
2382
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2383
|
-
FROM sqlite_master
|
2384
|
-
WHERE name='index_billing_charges_on_revenue_at' AND type='index'
|
2385
|
-
UNION ALL
|
2386
|
-
SELECT sql
|
2387
|
-
FROM sqlite_temp_master
|
2388
|
-
WHERE name='index_billing_charges_on_revenue_at' AND type='index'
|
2389
|
-
[0m
|
2390
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2391
|
-
FROM sqlite_master
|
2392
|
-
WHERE name='index_billing_charges_on_deleted_at' AND type='index'
|
2393
|
-
UNION ALL
|
2394
|
-
SELECT sql
|
2395
|
-
FROM sqlite_temp_master
|
2396
|
-
WHERE name='index_billing_charges_on_deleted_at' AND type='index'
|
2397
|
-
|
2398
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2399
|
-
FROM sqlite_master
|
2400
|
-
WHERE name='index_billing_charges_on_origin_id' AND type='index'
|
2401
|
-
UNION ALL
|
2402
|
-
SELECT sql
|
2403
|
-
FROM sqlite_temp_master
|
2404
|
-
WHERE name='index_billing_charges_on_origin_id' AND type='index'
|
2405
|
-
[0m
|
2406
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2407
|
-
FROM sqlite_master
|
2408
|
-
WHERE name='index_billing_charges_on_chargable_id_and_chargable_type' AND type='index'
|
2409
|
-
UNION ALL
|
2410
|
-
SELECT sql
|
2411
|
-
FROM sqlite_temp_master
|
2412
|
-
WHERE name='index_billing_charges_on_chargable_id_and_chargable_type' AND type='index'
|
2413
|
-
|
2414
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2415
|
-
FROM sqlite_master
|
2416
|
-
WHERE name='index_billing_departments_on_deleted_at' AND type='index'
|
2417
|
-
UNION ALL
|
2418
|
-
SELECT sql
|
2419
|
-
FROM sqlite_temp_master
|
2420
|
-
WHERE name='index_billing_departments_on_deleted_at' AND type='index'
|
2421
|
-
[0m
|
2422
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2423
|
-
FROM sqlite_master
|
2424
|
-
WHERE name='index_billing_departments_on_tax_group_id' AND type='index'
|
2425
|
-
UNION ALL
|
2426
|
-
SELECT sql
|
2427
|
-
FROM sqlite_temp_master
|
2428
|
-
WHERE name='index_billing_departments_on_tax_group_id' AND type='index'
|
2429
|
-
|
2430
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2431
|
-
FROM sqlite_master
|
2432
|
-
WHERE name='index_billing_modifiers_on_bill_id' AND type='index'
|
2433
|
-
UNION ALL
|
2434
|
-
SELECT sql
|
2435
|
-
FROM sqlite_temp_master
|
2436
|
-
WHERE name='index_billing_modifiers_on_bill_id' AND type='index'
|
2437
|
-
[0m
|
2438
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2439
|
-
FROM sqlite_master
|
2440
|
-
WHERE name='index_billing_op_fp_mappings_on_operator_id' AND type='index'
|
2441
|
-
UNION ALL
|
2442
|
-
SELECT sql
|
2443
|
-
FROM sqlite_temp_master
|
2444
|
-
WHERE name='index_billing_op_fp_mappings_on_operator_id' AND type='index'
|
2445
|
-
|
2446
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2447
|
-
FROM sqlite_master
|
2448
|
-
WHERE name='index_billing_op_fp_mappings_on_extface_driver_id' AND type='index'
|
2449
|
-
UNION ALL
|
2450
|
-
SELECT sql
|
2451
|
-
FROM sqlite_temp_master
|
2452
|
-
WHERE name='index_billing_op_fp_mappings_on_extface_driver_id' AND type='index'
|
2453
|
-
[0m
|
2454
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2455
|
-
FROM sqlite_master
|
2456
|
-
WHERE name='index_billing_operators_on_deleted_at' AND type='index'
|
2457
|
-
UNION ALL
|
2458
|
-
SELECT sql
|
2459
|
-
FROM sqlite_temp_master
|
2460
|
-
WHERE name='index_billing_operators_on_deleted_at' AND type='index'
|
2461
|
-
|
2462
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2463
|
-
FROM sqlite_master
|
2464
|
-
WHERE name='index_billing_origins_on_transfer_device_id' AND type='index'
|
2465
|
-
UNION ALL
|
2466
|
-
SELECT sql
|
2467
|
-
FROM sqlite_temp_master
|
2468
|
-
WHERE name='index_billing_origins_on_transfer_device_id' AND type='index'
|
2469
|
-
[0m
|
2470
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2471
|
-
FROM sqlite_master
|
2472
|
-
WHERE name='index_billing_origins_on_deleted_at' AND type='index'
|
2473
|
-
UNION ALL
|
2474
|
-
SELECT sql
|
2475
|
-
FROM sqlite_temp_master
|
2476
|
-
WHERE name='index_billing_origins_on_deleted_at' AND type='index'
|
2477
|
-
|
2478
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2479
|
-
FROM sqlite_master
|
2480
|
-
WHERE name='index_billing_origins_on_fiscal_device_id' AND type='index'
|
2481
|
-
UNION ALL
|
2482
|
-
SELECT sql
|
2483
|
-
FROM sqlite_temp_master
|
2484
|
-
WHERE name='index_billing_origins_on_fiscal_device_id' AND type='index'
|
2485
|
-
[0m
|
2486
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2487
|
-
FROM sqlite_master
|
2488
|
-
WHERE name='index_billing_payment_types_on_deleted_at' AND type='index'
|
2489
|
-
UNION ALL
|
2490
|
-
SELECT sql
|
2491
|
-
FROM sqlite_temp_master
|
2492
|
-
WHERE name='index_billing_payment_types_on_deleted_at' AND type='index'
|
2493
|
-
|
2494
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2495
|
-
FROM sqlite_master
|
2496
|
-
WHERE name='index_billing_payments_on_bill_id' AND type='index'
|
2497
|
-
UNION ALL
|
2498
|
-
SELECT sql
|
2499
|
-
FROM sqlite_temp_master
|
2500
|
-
WHERE name='index_billing_payments_on_bill_id' AND type='index'
|
2501
|
-
[0m
|
2502
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2503
|
-
FROM sqlite_master
|
2504
|
-
WHERE name='index_billing_payments_on_deleted_at' AND type='index'
|
2505
|
-
UNION ALL
|
2506
|
-
SELECT sql
|
2507
|
-
FROM sqlite_temp_master
|
2508
|
-
WHERE name='index_billing_payments_on_deleted_at' AND type='index'
|
2509
|
-
|
2510
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2511
|
-
FROM sqlite_master
|
2512
|
-
WHERE name='index_billing_plus_on_department_id' AND type='index'
|
2513
|
-
UNION ALL
|
2514
|
-
SELECT sql
|
2515
|
-
FROM sqlite_temp_master
|
2516
|
-
WHERE name='index_billing_plus_on_department_id' AND type='index'
|
2517
|
-
[0m
|
2518
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2519
|
-
FROM sqlite_master
|
2520
|
-
WHERE name='index_billing_plus_on_tax_group_id' AND type='index'
|
2521
|
-
UNION ALL
|
2522
|
-
SELECT sql
|
2523
|
-
FROM sqlite_temp_master
|
2524
|
-
WHERE name='index_billing_plus_on_tax_group_id' AND type='index'
|
2525
|
-
|
2526
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2527
|
-
FROM sqlite_master
|
2528
|
-
WHERE name='index_billing_pt_fp_mappings_on_payment_type_id' AND type='index'
|
2529
|
-
UNION ALL
|
2530
|
-
SELECT sql
|
2531
|
-
FROM sqlite_temp_master
|
2532
|
-
WHERE name='index_billing_pt_fp_mappings_on_payment_type_id' AND type='index'
|
2533
|
-
[0m
|
2534
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2535
|
-
FROM sqlite_master
|
2536
|
-
WHERE name='index_billing_pt_fp_mappings_on_extface_driver_id' AND type='index'
|
2537
|
-
UNION ALL
|
2538
|
-
SELECT sql
|
2539
|
-
FROM sqlite_temp_master
|
2540
|
-
WHERE name='index_billing_pt_fp_mappings_on_extface_driver_id' AND type='index'
|
2541
|
-
|
2542
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2543
|
-
FROM sqlite_master
|
2544
|
-
WHERE name='index_billing_reports_on_origin_id' AND type='index'
|
2545
|
-
UNION ALL
|
2546
|
-
SELECT sql
|
2547
|
-
FROM sqlite_temp_master
|
2548
|
-
WHERE name='index_billing_reports_on_origin_id' AND type='index'
|
2549
|
-
[0m
|
2550
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2551
|
-
FROM sqlite_master
|
2552
|
-
WHERE name='index_billing_tg_fp_mappings_on_tax_group_id' AND type='index'
|
2553
|
-
UNION ALL
|
2554
|
-
SELECT sql
|
2555
|
-
FROM sqlite_temp_master
|
2556
|
-
WHERE name='index_billing_tg_fp_mappings_on_tax_group_id' AND type='index'
|
2557
|
-
|
2558
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2559
|
-
FROM sqlite_master
|
2560
|
-
WHERE name='index_billing_tg_fp_mappings_on_extface_driver_id' AND type='index'
|
2561
|
-
UNION ALL
|
2562
|
-
SELECT sql
|
2563
|
-
FROM sqlite_temp_master
|
2564
|
-
WHERE name='index_billing_tg_fp_mappings_on_extface_driver_id' AND type='index'
|
2565
|
-
[0m
|
2566
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2567
|
-
FROM sqlite_master
|
2568
|
-
WHERE name='index_billing_versions_on_item_type_and_item_id' AND type='index'
|
2569
|
-
UNION ALL
|
2570
|
-
SELECT sql
|
2571
|
-
FROM sqlite_temp_master
|
2572
|
-
WHERE name='index_billing_versions_on_item_type_and_item_id' AND type='index'
|
2573
|
-
|
2574
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
2575
|
-
Migrating to AddDeletedAtToBillingReport (20150512040421)
|
2576
|
-
[1m[35m (0.1ms)[0m begin transaction
|
2577
|
-
[1m[36m (0.6ms)[0m [1mALTER TABLE "billing_reports" ADD "deleted_at" datetime[0m
|
2578
|
-
[1m[35mSQL (0.3ms)[0m INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150512040421"]]
|
2579
|
-
[1m[36m (114.6ms)[0m [1mcommit transaction[0m
|
2580
|
-
[1m[35mActiveRecord::SchemaMigration Load (0.5ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
2581
|
-
[1m[36m (0.3ms)[0m [1m SELECT sql
|
2582
|
-
FROM sqlite_master
|
2583
|
-
WHERE name='index_billing_bills_on_billable_id_and_billable_type' AND type='index'
|
2584
|
-
UNION ALL
|
2585
|
-
SELECT sql
|
2586
|
-
FROM sqlite_temp_master
|
2587
|
-
WHERE name='index_billing_bills_on_billable_id_and_billable_type' AND type='index'
|
2588
|
-
[0m
|
2589
|
-
[1m[35m (0.3ms)[0m SELECT sql
|
2590
|
-
FROM sqlite_master
|
2591
|
-
WHERE name='index_billing_bills_on_origin_id' AND type='index'
|
2592
|
-
UNION ALL
|
2593
|
-
SELECT sql
|
2594
|
-
FROM sqlite_temp_master
|
2595
|
-
WHERE name='index_billing_bills_on_origin_id' AND type='index'
|
2596
|
-
|
2597
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2598
|
-
FROM sqlite_master
|
2599
|
-
WHERE name='index_billing_bills_on_extface_job_id' AND type='index'
|
2600
|
-
UNION ALL
|
2601
|
-
SELECT sql
|
2602
|
-
FROM sqlite_temp_master
|
2603
|
-
WHERE name='index_billing_bills_on_extface_job_id' AND type='index'
|
2604
|
-
[0m
|
2605
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2606
|
-
FROM sqlite_master
|
2607
|
-
WHERE name='index_billing_bills_on_report_id' AND type='index'
|
2608
|
-
UNION ALL
|
2609
|
-
SELECT sql
|
2610
|
-
FROM sqlite_temp_master
|
2611
|
-
WHERE name='index_billing_bills_on_report_id' AND type='index'
|
2612
|
-
|
2613
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2614
|
-
FROM sqlite_master
|
2615
|
-
WHERE name='index_billing_charges_on_bill_id' AND type='index'
|
2616
|
-
UNION ALL
|
2617
|
-
SELECT sql
|
2618
|
-
FROM sqlite_temp_master
|
2619
|
-
WHERE name='index_billing_charges_on_bill_id' AND type='index'
|
2620
|
-
[0m
|
2621
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2622
|
-
FROM sqlite_master
|
2623
|
-
WHERE name='index_billing_charges_on_revenue_at' AND type='index'
|
2624
|
-
UNION ALL
|
2625
|
-
SELECT sql
|
2626
|
-
FROM sqlite_temp_master
|
2627
|
-
WHERE name='index_billing_charges_on_revenue_at' AND type='index'
|
2628
|
-
|
2629
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2630
|
-
FROM sqlite_master
|
2631
|
-
WHERE name='index_billing_charges_on_deleted_at' AND type='index'
|
2632
|
-
UNION ALL
|
2633
|
-
SELECT sql
|
2634
|
-
FROM sqlite_temp_master
|
2635
|
-
WHERE name='index_billing_charges_on_deleted_at' AND type='index'
|
2636
|
-
[0m
|
2637
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2638
|
-
FROM sqlite_master
|
2639
|
-
WHERE name='index_billing_charges_on_origin_id' AND type='index'
|
2640
|
-
UNION ALL
|
2641
|
-
SELECT sql
|
2642
|
-
FROM sqlite_temp_master
|
2643
|
-
WHERE name='index_billing_charges_on_origin_id' AND type='index'
|
2644
|
-
|
2645
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2646
|
-
FROM sqlite_master
|
2647
|
-
WHERE name='index_billing_charges_on_chargable_id_and_chargable_type' AND type='index'
|
2648
|
-
UNION ALL
|
2649
|
-
SELECT sql
|
2650
|
-
FROM sqlite_temp_master
|
2651
|
-
WHERE name='index_billing_charges_on_chargable_id_and_chargable_type' AND type='index'
|
2652
|
-
[0m
|
2653
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2654
|
-
FROM sqlite_master
|
2655
|
-
WHERE name='index_billing_departments_on_deleted_at' AND type='index'
|
2656
|
-
UNION ALL
|
2657
|
-
SELECT sql
|
2658
|
-
FROM sqlite_temp_master
|
2659
|
-
WHERE name='index_billing_departments_on_deleted_at' AND type='index'
|
2660
|
-
|
2661
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2662
|
-
FROM sqlite_master
|
2663
|
-
WHERE name='index_billing_departments_on_tax_group_id' AND type='index'
|
2664
|
-
UNION ALL
|
2665
|
-
SELECT sql
|
2666
|
-
FROM sqlite_temp_master
|
2667
|
-
WHERE name='index_billing_departments_on_tax_group_id' AND type='index'
|
2668
|
-
[0m
|
2669
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2670
|
-
FROM sqlite_master
|
2671
|
-
WHERE name='index_billing_modifiers_on_bill_id' AND type='index'
|
2672
|
-
UNION ALL
|
2673
|
-
SELECT sql
|
2674
|
-
FROM sqlite_temp_master
|
2675
|
-
WHERE name='index_billing_modifiers_on_bill_id' AND type='index'
|
2676
|
-
|
2677
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2678
|
-
FROM sqlite_master
|
2679
|
-
WHERE name='index_billing_op_fp_mappings_on_operator_id' AND type='index'
|
2680
|
-
UNION ALL
|
2681
|
-
SELECT sql
|
2682
|
-
FROM sqlite_temp_master
|
2683
|
-
WHERE name='index_billing_op_fp_mappings_on_operator_id' AND type='index'
|
2684
|
-
[0m
|
2685
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2686
|
-
FROM sqlite_master
|
2687
|
-
WHERE name='index_billing_op_fp_mappings_on_extface_driver_id' AND type='index'
|
2688
|
-
UNION ALL
|
2689
|
-
SELECT sql
|
2690
|
-
FROM sqlite_temp_master
|
2691
|
-
WHERE name='index_billing_op_fp_mappings_on_extface_driver_id' AND type='index'
|
2692
|
-
|
2693
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2694
|
-
FROM sqlite_master
|
2695
|
-
WHERE name='index_billing_operators_on_deleted_at' AND type='index'
|
2696
|
-
UNION ALL
|
2697
|
-
SELECT sql
|
2698
|
-
FROM sqlite_temp_master
|
2699
|
-
WHERE name='index_billing_operators_on_deleted_at' AND type='index'
|
2700
|
-
[0m
|
2701
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2702
|
-
FROM sqlite_master
|
2703
|
-
WHERE name='index_billing_origins_on_transfer_device_id' AND type='index'
|
2704
|
-
UNION ALL
|
2705
|
-
SELECT sql
|
2706
|
-
FROM sqlite_temp_master
|
2707
|
-
WHERE name='index_billing_origins_on_transfer_device_id' AND type='index'
|
2708
|
-
|
2709
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2710
|
-
FROM sqlite_master
|
2711
|
-
WHERE name='index_billing_origins_on_deleted_at' AND type='index'
|
2712
|
-
UNION ALL
|
2713
|
-
SELECT sql
|
2714
|
-
FROM sqlite_temp_master
|
2715
|
-
WHERE name='index_billing_origins_on_deleted_at' AND type='index'
|
2716
|
-
[0m
|
2717
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2718
|
-
FROM sqlite_master
|
2719
|
-
WHERE name='index_billing_origins_on_fiscal_device_id' AND type='index'
|
2720
|
-
UNION ALL
|
2721
|
-
SELECT sql
|
2722
|
-
FROM sqlite_temp_master
|
2723
|
-
WHERE name='index_billing_origins_on_fiscal_device_id' AND type='index'
|
2724
|
-
|
2725
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2726
|
-
FROM sqlite_master
|
2727
|
-
WHERE name='index_billing_payment_types_on_deleted_at' AND type='index'
|
2728
|
-
UNION ALL
|
2729
|
-
SELECT sql
|
2730
|
-
FROM sqlite_temp_master
|
2731
|
-
WHERE name='index_billing_payment_types_on_deleted_at' AND type='index'
|
2732
|
-
[0m
|
2733
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2734
|
-
FROM sqlite_master
|
2735
|
-
WHERE name='index_billing_payments_on_bill_id' AND type='index'
|
2736
|
-
UNION ALL
|
2737
|
-
SELECT sql
|
2738
|
-
FROM sqlite_temp_master
|
2739
|
-
WHERE name='index_billing_payments_on_bill_id' AND type='index'
|
2740
|
-
|
2741
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2742
|
-
FROM sqlite_master
|
2743
|
-
WHERE name='index_billing_payments_on_deleted_at' AND type='index'
|
2744
|
-
UNION ALL
|
2745
|
-
SELECT sql
|
2746
|
-
FROM sqlite_temp_master
|
2747
|
-
WHERE name='index_billing_payments_on_deleted_at' AND type='index'
|
2748
|
-
[0m
|
2749
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2750
|
-
FROM sqlite_master
|
2751
|
-
WHERE name='index_billing_plus_on_department_id' AND type='index'
|
2752
|
-
UNION ALL
|
2753
|
-
SELECT sql
|
2754
|
-
FROM sqlite_temp_master
|
2755
|
-
WHERE name='index_billing_plus_on_department_id' AND type='index'
|
2756
|
-
|
2757
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2758
|
-
FROM sqlite_master
|
2759
|
-
WHERE name='index_billing_plus_on_tax_group_id' AND type='index'
|
2760
|
-
UNION ALL
|
2761
|
-
SELECT sql
|
2762
|
-
FROM sqlite_temp_master
|
2763
|
-
WHERE name='index_billing_plus_on_tax_group_id' AND type='index'
|
2764
|
-
[0m
|
2765
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2766
|
-
FROM sqlite_master
|
2767
|
-
WHERE name='index_billing_pt_fp_mappings_on_payment_type_id' AND type='index'
|
2768
|
-
UNION ALL
|
2769
|
-
SELECT sql
|
2770
|
-
FROM sqlite_temp_master
|
2771
|
-
WHERE name='index_billing_pt_fp_mappings_on_payment_type_id' AND type='index'
|
2772
|
-
|
2773
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2774
|
-
FROM sqlite_master
|
2775
|
-
WHERE name='index_billing_pt_fp_mappings_on_extface_driver_id' AND type='index'
|
2776
|
-
UNION ALL
|
2777
|
-
SELECT sql
|
2778
|
-
FROM sqlite_temp_master
|
2779
|
-
WHERE name='index_billing_pt_fp_mappings_on_extface_driver_id' AND type='index'
|
2780
|
-
[0m
|
2781
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2782
|
-
FROM sqlite_master
|
2783
|
-
WHERE name='index_billing_reports_on_origin_id' AND type='index'
|
2784
|
-
UNION ALL
|
2785
|
-
SELECT sql
|
2786
|
-
FROM sqlite_temp_master
|
2787
|
-
WHERE name='index_billing_reports_on_origin_id' AND type='index'
|
2788
|
-
|
2789
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2790
|
-
FROM sqlite_master
|
2791
|
-
WHERE name='index_billing_tg_fp_mappings_on_tax_group_id' AND type='index'
|
2792
|
-
UNION ALL
|
2793
|
-
SELECT sql
|
2794
|
-
FROM sqlite_temp_master
|
2795
|
-
WHERE name='index_billing_tg_fp_mappings_on_tax_group_id' AND type='index'
|
2796
|
-
[0m
|
2797
|
-
[1m[35m (0.2ms)[0m SELECT sql
|
2798
|
-
FROM sqlite_master
|
2799
|
-
WHERE name='index_billing_tg_fp_mappings_on_extface_driver_id' AND type='index'
|
2800
|
-
UNION ALL
|
2801
|
-
SELECT sql
|
2802
|
-
FROM sqlite_temp_master
|
2803
|
-
WHERE name='index_billing_tg_fp_mappings_on_extface_driver_id' AND type='index'
|
2804
|
-
|
2805
|
-
[1m[36m (0.2ms)[0m [1m SELECT sql
|
2806
|
-
FROM sqlite_master
|
2807
|
-
WHERE name='index_billing_versions_on_item_type_and_item_id' AND type='index'
|
2808
|
-
UNION ALL
|
2809
|
-
SELECT sql
|
2810
|
-
FROM sqlite_temp_master
|
2811
|
-
WHERE name='index_billing_versions_on_item_type_and_item_id' AND type='index'
|
2812
|
-
[0m
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: billing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Vangelov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: resque
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: sqlite3
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -90,7 +76,6 @@ files:
|
|
90
76
|
- MIT-LICENSE
|
91
77
|
- README.rdoc
|
92
78
|
- Rakefile
|
93
|
-
- app/jobs/billing/issue_fiscal_doc.rb
|
94
79
|
- app/models/billing/bill.rb
|
95
80
|
- app/models/billing/charge.rb
|
96
81
|
- app/models/billing/department.rb
|
@@ -172,8 +157,6 @@ files:
|
|
172
157
|
- db/migrate/20141229234928_create_billing_resources.rb
|
173
158
|
- db/migrate/20150311013019_add_pwd_to_billing_operator_mapping.rb
|
174
159
|
- db/migrate/20150510142229_add_object_changes_to_billing_versions.rb
|
175
|
-
- db/migrate/20150510235441_add_master_to_billing_version.rb
|
176
|
-
- db/migrate/20150512040421_add_deleted_at_to_billing_report.rb
|
177
160
|
- lib/billing.rb
|
178
161
|
- lib/billing/billable.rb
|
179
162
|
- lib/billing/engine.rb
|
@@ -263,12 +246,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
263
246
|
version: '0'
|
264
247
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
265
248
|
requirements:
|
266
|
-
- - "
|
249
|
+
- - ">="
|
267
250
|
- !ruby/object:Gem::Version
|
268
|
-
version:
|
251
|
+
version: '0'
|
269
252
|
requirements: []
|
270
253
|
rubyforge_project:
|
271
|
-
rubygems_version: 2.
|
254
|
+
rubygems_version: 2.4.6
|
272
255
|
signing_key:
|
273
256
|
specification_version: 4
|
274
257
|
summary: Billing for Rails 4 app
|
@@ -1,132 +0,0 @@
|
|
1
|
-
module Resque
|
2
|
-
module Plugins
|
3
|
-
module ExtfaceLonelyDevice
|
4
|
-
LOCK_TIMEOUT = 60 * 60 * 24 * 5 # 5 days
|
5
|
-
|
6
|
-
def lock_timeout
|
7
|
-
Time.now.to_i + LOCK_TIMEOUT + 1
|
8
|
-
end
|
9
|
-
|
10
|
-
def requeue_interval
|
11
|
-
self.instance_variable_get(:@requeue_interval) || 1
|
12
|
-
end
|
13
|
-
|
14
|
-
# Overwrite this method to uniquely identify which mutex should be used
|
15
|
-
# for a resque worker.
|
16
|
-
def redis_key(*args)
|
17
|
-
"extface_"
|
18
|
-
end
|
19
|
-
|
20
|
-
def can_lock_queue?(*args)
|
21
|
-
now = Time.now.to_i
|
22
|
-
key = redis_key(*args)
|
23
|
-
timeout = lock_timeout
|
24
|
-
|
25
|
-
# Per http://redis.io/commands/setnx
|
26
|
-
return true if Resque.redis.setnx(key, timeout)
|
27
|
-
return false if Resque.redis.get(key).to_i > now
|
28
|
-
return true if Resque.redis.getset(key, timeout).to_i <= now
|
29
|
-
return false
|
30
|
-
rescue ActiveRecord::RecordNotFound #redis_key exception
|
31
|
-
p "Not found!!!"
|
32
|
-
sleep 1
|
33
|
-
reenqueue(*args) #will stop if new redis_key exception
|
34
|
-
end
|
35
|
-
|
36
|
-
def unlock_queue(*args)
|
37
|
-
Resque.redis.del(redis_key(*args))
|
38
|
-
end
|
39
|
-
|
40
|
-
def reenqueue(*args)
|
41
|
-
Resque.enqueue_to(redis_key(*args), self, *args)
|
42
|
-
end
|
43
|
-
|
44
|
-
def before_perform(*args)
|
45
|
-
unless can_lock_queue?(*args)
|
46
|
-
# Sleep so the CPU's rest
|
47
|
-
sleep(requeue_interval)
|
48
|
-
|
49
|
-
# can't get the lock, so re-enqueue the task
|
50
|
-
reenqueue(*args)
|
51
|
-
|
52
|
-
# and don't perform
|
53
|
-
raise Resque::Job::DontPerform
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def around_perform(*args)
|
58
|
-
begin
|
59
|
-
yield
|
60
|
-
ensure
|
61
|
-
unlock_queue(*args)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
module Billing
|
69
|
-
class IssueFiscalDoc
|
70
|
-
extend Resque::Plugins::ExtfaceLonelyDevice
|
71
|
-
|
72
|
-
def self.redis_key(bill_id)
|
73
|
-
"extface_#{Bill.find(bill_id).extface_job.device_id}"
|
74
|
-
end
|
75
|
-
|
76
|
-
def self.perform(bill_id)
|
77
|
-
bill = Bill.find(bill_id)
|
78
|
-
qname = "extface_#{bill.extface_job.device_id}"
|
79
|
-
wjs = Resque::Worker.working.find_all{ |w| w.job && w.job['queue'] == qname }
|
80
|
-
|
81
|
-
p "############################"
|
82
|
-
p "d: #{bill.extface_job.device_id} Issue Fiscal Doc ##{bill_id}, job: #{bill.extface_job_id}, wjs: #{wjs.inspect}"
|
83
|
-
p "____________________________"
|
84
|
-
p "active jobs: #{bill.extface_job.device.jobs.active.count}"
|
85
|
-
|
86
|
-
|
87
|
-
bill.extface_job.runtime do |s|
|
88
|
-
return unless bill.fiscalizable?
|
89
|
-
operator_mapping = bill.find_operator_mapping_for(s)
|
90
|
-
s.notify "Fiscal Doc Start"
|
91
|
-
s.autofix_unclosed_doc
|
92
|
-
s.open_fiscal_doc(operator_mapping.try(:mapping), operator_mapping.try(:pwd))
|
93
|
-
s.notify "Register Sale"
|
94
|
-
bill.charges.each do |charge|
|
95
|
-
neto, percent_ratio = nil, nil, nil
|
96
|
-
if modifier = charge.modifier
|
97
|
-
neto = modifier.fixed_value
|
98
|
-
percent_ratio = modifier.percent_ratio unless neto.present?
|
99
|
-
end
|
100
|
-
if charge.price.zero? #printing comments with zero charges (TODO check zero charges allowed?)
|
101
|
-
s.add_comment charge.text
|
102
|
-
else
|
103
|
-
s.add_sale(
|
104
|
-
s.class::SaleItem.new(
|
105
|
-
price: charge.price.to_f,
|
106
|
-
text1: charge.name,
|
107
|
-
text2: charge.description,
|
108
|
-
tax_group: charge.find_tax_group_mapping_for(s), #find tax group mapping by ratio , not nice
|
109
|
-
qty: charge.qty,
|
110
|
-
neto: neto,
|
111
|
-
percent_ratio: percent_ratio #TODO check format
|
112
|
-
)
|
113
|
-
)
|
114
|
-
end
|
115
|
-
end
|
116
|
-
if global_modifier_value = bill.global_modifier_value
|
117
|
-
s.notify "Register Global Modifier"
|
118
|
-
s.add_total_modifier global_modifier_value.to_f
|
119
|
-
end
|
120
|
-
s.notify "Register Payment"
|
121
|
-
bill.payments.each do |payment|
|
122
|
-
s.add_payment payment.value.to_f, payment.find_payment_type_mapping_for(s)
|
123
|
-
end
|
124
|
-
s.notify "Close Fiscal Receipt"
|
125
|
-
s.close_fiscal_doc
|
126
|
-
s.notify "Fiscal Doc End"
|
127
|
-
end
|
128
|
-
rescue Resque::TermException
|
129
|
-
reenqueue(bill_id)
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|