invoicing_payments_processing 1.1.27 → 1.1.33
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 +4 -4
- data/lib/invoice.rb +39 -19
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5243e3335e6493c1a4ce19769c46730729576904
|
4
|
+
data.tar.gz: 068bb5e32c323da931510da9c205606a8778e645
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5310182c911009e0e22aae4f5ceaacce08472298b9c4126953ba0831850a60cb161b6979b85d29e890b8da028620b71b657a2abbaf6e4656b901f85d8208f2a3
|
7
|
+
data.tar.gz: 2b86a7c418f70faa014d76e3025423b680c011eed88bb29c0176c1e0402fe67b647d83c5cdd20a77ee0a2e9a493ec48690da965c35c543eddd854af4bc26a572
|
data/lib/invoice.rb
CHANGED
@@ -10,10 +10,16 @@ module BlackStack
|
|
10
10
|
|
11
11
|
many_to_one :buffer_paypal_notification, :class=>:'BlackStack::BufferPayPalNotification', :key=>:id_buffer_paypal_notification
|
12
12
|
many_to_one :client, :class=>:'BlackStack::Client', :key=>:id_client
|
13
|
-
many_to_one :paypal_subscription, :class=>:'BlackStack::PayPalSubscription', :key=>:id_paypal_subscription
|
13
|
+
#many_to_one :paypal_subscription, :class=>:'BlackStack::PayPalSubscription', :key=>:id_paypal_subscription
|
14
14
|
many_to_one :previous, :class=>:'BlackStack::Invoice', :key=>:id_previous_invoice
|
15
15
|
one_to_many :items, :class=>:'BlackStack::InvoiceItem', :key=>:id_invoice
|
16
16
|
|
17
|
+
def paypal_subscription
|
18
|
+
return nil if self.subscr_id.nil?
|
19
|
+
return nil if self.subscr_id.to_s.size == 0
|
20
|
+
return BlackStack::PayPalSubscription.where(:subscr_id=>self.subscr_id.to_s).first
|
21
|
+
end
|
22
|
+
|
17
23
|
# compara 2 planes, y retorna TRUE si ambos pueden coexistir en una misma facutra, con un mismo enlace de PayPal
|
18
24
|
def self.compatibility?(h, i)
|
19
25
|
return false if h[:type]!=i[:type]
|
@@ -60,6 +66,7 @@ module BlackStack
|
|
60
66
|
#
|
61
67
|
def set_subscription(s)
|
62
68
|
self.subscr_id = s.subscr_id
|
69
|
+
self.delete_time = nil
|
63
70
|
self.save
|
64
71
|
# aplico la mismam modificacion a todas las factuas que le siguieron a esta
|
65
72
|
BlackStack::Invoice.where(:id_previous_invoice=>self.id).all { |j|
|
@@ -246,6 +253,15 @@ module BlackStack
|
|
246
253
|
def canBePaid?
|
247
254
|
self.status == nil || self.status == BlackStack::Invoice::STATUS_UNPAID
|
248
255
|
end
|
256
|
+
|
257
|
+
# retorna true si el estado de la factura sea NULL o UNPAID
|
258
|
+
def canBeDeleted?
|
259
|
+
if self.paypal_subscription.nil?
|
260
|
+
return self.status == nil || self.status == BlackStack::Invoice::STATUS_UNPAID
|
261
|
+
else # !self.paypal_subscription.nil?
|
262
|
+
return (self.status == nil || self.status == BlackStack::Invoice::STATUS_UNPAID) && !self.paypal_subscription.active
|
263
|
+
end # if self.paypal_subscription.nil?
|
264
|
+
end
|
249
265
|
|
250
266
|
# actualiza el registro en la tabla invoice segun los parametros.
|
251
267
|
# en este caso la factura se genera antes del pago.
|
@@ -298,6 +314,7 @@ module BlackStack
|
|
298
314
|
end
|
299
315
|
# marco la factura como pagada
|
300
316
|
self.status = BlackStack::Invoice::STATUS_PAID
|
317
|
+
self.delete_time = nil
|
301
318
|
self.save
|
302
319
|
# expiracion de creditos de la factura anterior
|
303
320
|
i = self.previous
|
@@ -325,19 +342,21 @@ module BlackStack
|
|
325
342
|
# registro el pago
|
326
343
|
BlackStack::Movement.new().parse(item, BlackStack::Movement::MOVEMENT_TYPE_ADD_PAYMENT, "Invoice Payment", payment_time, item.id).save()
|
327
344
|
# agrego los bonos de este plan
|
328
|
-
plan[:bonus_plans].
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
345
|
+
if !plan[:bonus_plans].nil?
|
346
|
+
plan[:bonus_plans].each { |h|
|
347
|
+
plan_bonus = BlackStack::InvoicingPaymentsProcessing.plan_descriptor(h[:item_number])
|
348
|
+
raise "bonus plan not found" if plan_bonus.nil?
|
349
|
+
bonus = BlackStack::InvoiceItem.new
|
350
|
+
bonus.id = guid()
|
351
|
+
bonus.id_invoice = self.id
|
352
|
+
bonus.product_code = plan_bonus[:product_code]
|
353
|
+
bonus.unit_price = 0
|
354
|
+
bonus.units = plan_bonus[:credits] * item.number_of_packages # agrego los creditos del bono, multiplicado por la cantiad de paquetes
|
355
|
+
bonus.amount = 0
|
356
|
+
bonus.item_number = plan_bonus[:item_number]
|
357
|
+
BlackStack::Movement.new().parse(bonus, BlackStack::Movement::MOVEMENT_TYPE_ADD_BONUS, 'Payment Bonus', payment_time, item.id).save()
|
358
|
+
}
|
359
|
+
end # if !plan[:bonus_plans].nil?
|
341
360
|
#
|
342
361
|
DB.disconnect
|
343
362
|
GC.start
|
@@ -400,11 +419,12 @@ module BlackStack
|
|
400
419
|
|
401
420
|
# le seteo la fecha de hoy
|
402
421
|
self.billing_period_from = now()
|
403
|
-
|
422
|
+
#puts
|
423
|
+
#puts
|
404
424
|
# si el plan tiene un primer trial, y
|
405
425
|
# es la primer factura, entonces:
|
406
426
|
# => se trata del primer pago por trial
|
407
|
-
if h[:trial_fee] != nil && prev1.nil?
|
427
|
+
if h[:trial_fee] != nil && prev1.nil? && !self.disabled_for_trial_ssm
|
408
428
|
#puts 'a'
|
409
429
|
units = h[:trial_credits].to_i
|
410
430
|
unit_price = h[:trial_fee].to_f / h[:trial_credits].to_f
|
@@ -420,13 +440,13 @@ module BlackStack
|
|
420
440
|
billing_period_to = DB["SELECT DATEADD(#{h[:trial2_period].to_s}, +#{h[:trial2_units].to_s}, '#{self.billing_period_from.to_s}') AS [now]"].map(:now)[0].to_s
|
421
441
|
|
422
442
|
# si el plan tiene un fee, y
|
423
|
-
elsif h[:fee].to_f != nil &&
|
443
|
+
elsif h[:fee].to_f != nil && h[:type] == BlackStack::InvoicingPaymentsProcessing::BasePlan::PAYMENT_SUBSCRIPTION
|
424
444
|
#puts 'c'
|
425
445
|
units = n.to_i * h[:credits].to_i
|
426
446
|
unit_price = h[:fee].to_f / h[:credits].to_f
|
427
447
|
billing_period_to = DB["SELECT DATEADD(#{h[:period].to_s}, +#{h[:units].to_s}, '#{self.billing_period_from.to_s}') AS [now]"].map(:now)[0].to_s
|
428
448
|
|
429
|
-
elsif
|
449
|
+
elsif h[:fee].to_f != nil && h[:type] == BlackStack::InvoicingPaymentsProcessing::BasePlan::PAYMENT_PAY_AS_YOU_GO
|
430
450
|
#puts 'd'
|
431
451
|
units = n.to_i * h[:credits].to_i
|
432
452
|
unit_price = h[:fee].to_f / h[:credits].to_f
|
@@ -523,7 +543,7 @@ module BlackStack
|
|
523
543
|
self.id_previous_invoice = i.id
|
524
544
|
self.subscr_id = i.subscr_id
|
525
545
|
self.disabled_for_add_remove_items = true
|
526
|
-
|
546
|
+
|
527
547
|
i.items.each { |t|
|
528
548
|
self.add_item(t.item_number, t.number_of_packages)
|
529
549
|
#
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: invoicing_payments_processing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.33
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leandro Daniel Sardi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: websocket
|