invoicing_payments_processing 1.1.29 → 1.1.34

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/invoice.rb +55 -27
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9f79b2b37439a781dd15dbe9407f09907f890773
4
- data.tar.gz: 1c99bbda030268957826baaf318a30ff3fafde7e
3
+ metadata.gz: 3f6d8cf264ed1fc60388ab5c360b3cfbb8fb9bbb
4
+ data.tar.gz: 7809b0efc41be10f4db464c4a37860abd6ebba02
5
5
  SHA512:
6
- metadata.gz: 4c43270e3ed5d5c63729935fbb609f209ead4420b24bfb02d5b3d282d2ce68844d8b60e8eca3a0a28a08379b329ac4027b028f2426045f057c37d3b7140088ce
7
- data.tar.gz: 5d4315da2fdd53ccc55149cae0e5da568ca375f055b1dba014319095179171411e81908f779b535b653c191c08e0a51bcf4c1387c0f3c8b961326a794d570157
6
+ metadata.gz: ed2466965d78a825e7f4d991f62a8a57a61775d59f6fffc2dc0bffe53204312e676059607668463a6b6a558a52c68b4a3859e49587ea1c343ee8f41943d5323c
7
+ data.tar.gz: ba1ef476b3106b96f6957c02e85421f719dc1b224fae248d144b1f282841e3c5fe5a05534c9aece1ac84fcba7ab7613b662cd31811e497ff77ae7b840bab130c
@@ -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].each { |h|
329
- plan_bonus = BlackStack::InvoicingPaymentsProcessing.plan_descriptor(h[:item_number])
330
- raise "bonus plan not found" if plan_bonus.nil?
331
- bonus = BlackStack::InvoiceItem.new
332
- bonus.id = guid()
333
- bonus.id_invoice = self.id
334
- bonus.product_code = plan_bonus[:product_code]
335
- bonus.unit_price = 0
336
- bonus.units = plan_bonus[:credits] * item.number_of_packages # agrego los creditos del bono, multiplicado por la cantiad de paquetes
337
- bonus.amount = 0
338
- bonus.item_number = plan_bonus[:item_number]
339
- BlackStack::Movement.new().parse(bonus, BlackStack::Movement::MOVEMENT_TYPE_ADD_BONUS, 'Payment Bonus', payment_time, item.id).save()
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
@@ -401,25 +420,34 @@ module BlackStack
401
420
  # le seteo la fecha de hoy
402
421
  self.billing_period_from = now()
403
422
  #puts
404
- #puts
423
+ #puts
424
+ # si el plan tiene un segundo trial, y
425
+ # es la primer factura, entonces:
426
+ # => se trata del segundo pago por segundo trial
427
+ if h[:trial2_fee] != nil && prev1.nil?
428
+ #puts 'b'
429
+ units = h[:trial2_credits].to_i
430
+ unit_price = h[:trial2_fee].to_f / h[:trial2_credits].to_f
431
+ 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
432
+
433
+ # si el plan tiene un segundo trial, y
434
+ # es la segunda factura, entonces:
435
+ # => se trata del segundo pago por segundo trial
436
+ if h[:trial2_fee] != nil && !prev1.nil? && prev2.nil?
437
+ #puts 'b'
438
+ units = h[:trial_credits].to_i
439
+ unit_price = h[:trial_fee].to_f / h[:trial_credits].to_f
440
+ billing_period_to = DB["SELECT DATEADD(#{h[:trial_period].to_s}, +#{h[:trial_units].to_s}, '#{self.billing_period_from.to_s}') AS [now]"].map(:now)[0].to_s
441
+
405
442
  # si el plan tiene un primer trial, y
406
443
  # es la primer factura, entonces:
407
444
  # => se trata del primer pago por trial
408
- if h[:trial_fee] != nil && prev1.nil? && !self.disabled_for_trial_ssm
445
+ elsif h[:trial_fee] != nil && prev1.nil? && !self.disabled_for_trial_ssm
409
446
  #puts 'a'
410
447
  units = h[:trial_credits].to_i
411
448
  unit_price = h[:trial_fee].to_f / h[:trial_credits].to_f
412
449
  billing_period_to = DB["SELECT DATEADD(#{h[:trial_period].to_s}, +#{h[:trial_units].to_s}, '#{self.billing_period_from.to_s}') AS [now]"].map(:now)[0].to_s
413
-
414
- # si el plan tiene un segundo trial, y
415
- # es la segunda factura, entonces:
416
- # => se trata del segundo pago por segundo trial
417
- elsif h[:trial2_fee] != nil && !prev1.nil? && prev2.nil?
418
- #puts 'b'
419
- units = h[:trial2_credits].to_i
420
- unit_price = h[:trial2_fee].to_f / h[:trial2_credits].to_f
421
- 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
422
-
450
+
423
451
  # si el plan tiene un fee, y
424
452
  elsif h[:fee].to_f != nil && h[:type] == BlackStack::InvoicingPaymentsProcessing::BasePlan::PAYMENT_SUBSCRIPTION
425
453
  #puts 'c'
@@ -524,7 +552,7 @@ module BlackStack
524
552
  self.id_previous_invoice = i.id
525
553
  self.subscr_id = i.subscr_id
526
554
  self.disabled_for_add_remove_items = true
527
-
555
+
528
556
  i.items.each { |t|
529
557
  self.add_item(t.item_number, t.number_of_packages)
530
558
  #
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.29
4
+ version: 1.1.34
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-09-22 00:00:00.000000000 Z
11
+ date: 2020-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: websocket