invoicing_payments_processing 1.1.3 → 1.1.8
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/bufferpaypalnotification.rb +24 -5
- data/lib/movement.rb +6 -7
- 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: 151f5edd003ddd2e88cedc7222761de649a78202
|
4
|
+
data.tar.gz: 7b1345402c7424ec9c7b9dd9350c5d4a8438cdb8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 568e022a591e4272e4f6ab92928a16a901f7dc6eaf6d186ad223c4fb34a0a3f10feec25442b032f196166b0251ac78de5070435dcae34c5537990c98907a1970
|
7
|
+
data.tar.gz: f734ddee71a72789691e231d6e79aae60d5bc4aa30da2f9b2d4e93e5e5747b4ecc7ad44f0e809db9b6f5eaaec86b637440f0fc9751fd3a74421ee864624d2e54
|
@@ -43,13 +43,19 @@ module BlackStack
|
|
43
43
|
def get_client()
|
44
44
|
# obtengo el cliente que machea con este perfil
|
45
45
|
c = nil
|
46
|
-
if
|
46
|
+
if c.nil?
|
47
|
+
if self.invoice.guid?
|
48
|
+
i = BlackStack::Invoice.where(:id=>self.invoice).first
|
49
|
+
c = i.client if !i.nil?
|
50
|
+
end
|
51
|
+
end
|
52
|
+
if c.nil?
|
47
53
|
cid = self.invoice.split(".").first.to_s
|
48
54
|
if cid.guid?
|
49
55
|
c = BlackStack::Client.where(:id=>cid).first
|
50
56
|
end
|
51
57
|
end
|
52
|
-
if
|
58
|
+
if c.nil?
|
53
59
|
c = BlackStack::Client.where(:paypal_email=>self.payer_email).first
|
54
60
|
if (c == nil)
|
55
61
|
u = User.where(:email=>self.payer_email).first
|
@@ -58,13 +64,13 @@ module BlackStack
|
|
58
64
|
end
|
59
65
|
end
|
60
66
|
end
|
61
|
-
if
|
67
|
+
if c.nil?
|
62
68
|
s = BlackStack::PayPalSubscription.where(:payer_email=>self.payer_email).first
|
63
69
|
if (s!=nil)
|
64
70
|
c = s.client
|
65
71
|
end
|
66
72
|
end
|
67
|
-
if
|
73
|
+
if c.nil?
|
68
74
|
# obtengo el cliente - poco elegante
|
69
75
|
q =
|
70
76
|
"SELECT TOP 1 i.id_client AS cid " +
|
@@ -363,6 +369,19 @@ module BlackStack
|
|
363
369
|
raise 'Invoice already exists.'
|
364
370
|
end
|
365
371
|
|
372
|
+
# obtengo la ultima factura pagada, vinculada a un IPN con el mismo codigo invoice
|
373
|
+
row = DB[
|
374
|
+
"SELECT TOP 1 i.id " +
|
375
|
+
"FROM buffer_paypal_notification b " +
|
376
|
+
"JOIN invoice i ON ( b.id=i.id_buffer_paypal_notification AND i.status=#{BlackStack::Invoice::STATUS_PAID.to_s} ) " +
|
377
|
+
"WHERE b.invoice='#{b.invoice}' " +
|
378
|
+
"ORDER BY i.create_time DESC "
|
379
|
+
].first
|
380
|
+
if row.nil?
|
381
|
+
raise 'Previous Paid Invoice not found.'
|
382
|
+
end
|
383
|
+
k = BlackStack::Invoice.where(:id=>row[:id]).first
|
384
|
+
|
366
385
|
# creo la factura por el reembolso
|
367
386
|
i = BlackStack::Invoice.new()
|
368
387
|
i.id = guid()
|
@@ -378,7 +397,7 @@ module BlackStack
|
|
378
397
|
i.save()
|
379
398
|
|
380
399
|
# parseo el reeembolso - creo el registro contable
|
381
|
-
i.setup_refund(payment_gross,
|
400
|
+
i.setup_refund(payment_gross, k.id)
|
382
401
|
|
383
402
|
end
|
384
403
|
else
|
data/lib/movement.rb
CHANGED
@@ -99,17 +99,16 @@ module BlackStack
|
|
99
99
|
end
|
100
100
|
|
101
101
|
# calculo cuantos creditos tiene este cliente
|
102
|
-
x = 0.to_f - BlackStack::Balance.new(m.client.id, p[:code]).credits.to_f
|
102
|
+
#x = 0.to_f - BlackStack::Balance.new(m.client.id, p[:code]).credits.to_f
|
103
|
+
# calculo los creditos de este movimiento que voy a cancelar
|
104
|
+
x = 0.to_f - m.credits.to_f
|
103
105
|
|
104
|
-
# calculo el credito
|
106
|
+
# calculo el credito consumido luego de este movimiento que voy a cancelar
|
105
107
|
y = m.client.movements.select { |o|
|
106
|
-
|
107
|
-
o.type == BlackStack::Movement::MOVEMENT_TYPE_ADD_PAYMENT ||
|
108
|
-
o.type == BlackStack::Movement::MOVEMENT_TYPE_ADD_BONUS
|
109
|
-
) &&
|
108
|
+
o.credits.to_f > 0 &&
|
110
109
|
o.product_code.upcase == p[:code].upcase &&
|
111
110
|
o.create_time > m.create_time
|
112
|
-
}.inject(0) { |sum, o| sum.to_f +
|
111
|
+
}.inject(0) { |sum, o| sum.to_f + o.credits.to_f }.to_f
|
113
112
|
|
114
113
|
# calculo el # de creditos no usados de este movimiento que ha expirado
|
115
114
|
z = x-y>0 ? x-y : 0
|
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.8
|
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-02-
|
11
|
+
date: 2020-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: websocket
|