invoicing_payments_processing 1.1.16 → 1.1.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/balance.rb +6 -2
- data/lib/extend_client_by_invoicing_payments_processing.rb +11 -11
- data/lib/invoice.rb +1 -1
- data/lib/movement.rb +4 -4
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ba80e4b1b4e72baf07ccb19207e125930eadf71
|
4
|
+
data.tar.gz: 2df78c09cd1e6b9a467454ab886c484336c57391
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 119752cad89e007e3a124144e0f27af20be2669867311a36c863227897c1b80108d2938e368aee0fd7f44b5816db05cc0f1aecfd31621997757a470e5c3b40f7
|
7
|
+
data.tar.gz: 9e1bc580c20e46a192b1e549325f77a2bd1da9b059e4908bea40a62476f11ec4fb293f2241784c3b1803832d89a6443e6f5dd2e53807cd59f01e741286445cbb
|
data/lib/balance.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
module BlackStack
|
2
2
|
class Balance
|
3
|
-
attr_accessor :client, :product_code, :amount, :credits
|
3
|
+
attr_accessor :client, :product_code, :amount, :credits, :up_time
|
4
4
|
|
5
|
-
def initialize(id_client, product_code)
|
5
|
+
def initialize(id_client, product_code, up_time=nil)
|
6
6
|
self.client = BlackStack::Client.where(:id => id_client).first
|
7
7
|
self.product_code = product_code
|
8
|
+
self.up_time = up_time
|
8
9
|
self.calculate()
|
9
10
|
end
|
10
11
|
|
@@ -14,6 +15,9 @@ module BlackStack
|
|
14
15
|
"from movement with (nolock index(IX_movement__id_client__product_code)) " +
|
15
16
|
"where id_client='#{self.client.id}' " +
|
16
17
|
"and product_code='#{self.product_code}' "
|
18
|
+
|
19
|
+
q += "and create_time < '#{self.up_time.to_sql}' " if !self.up_time.nil?
|
20
|
+
|
17
21
|
row = DB[q].first
|
18
22
|
self.amount = row[:amount].to_f
|
19
23
|
self.credits = row[:credits].to_f
|
@@ -68,11 +68,11 @@ module BlackStack
|
|
68
68
|
end
|
69
69
|
|
70
70
|
# crea un registro en la tabla movment, reduciendo la cantidad de creditos con saldo importe 0, para el producto indicado en product_code.
|
71
|
-
def adjustment(product_code, adjustment_amount=0, adjustment_credits=0, description=nil, type=BlackStack::Movement::MOVEMENT_TYPE_ADJUSTMENT)
|
71
|
+
def adjustment(product_code, adjustment_amount=0, adjustment_credits=0, description=nil, type=BlackStack::Movement::MOVEMENT_TYPE_ADJUSTMENT, registraton_time=nil)
|
72
72
|
adjust = BlackStack::Movement.new
|
73
73
|
adjust.id = guid()
|
74
74
|
adjust.id_client = self.id
|
75
|
-
adjust.create_time = now()
|
75
|
+
adjust.create_time = registraton_time.nil? ? now() : registraton_time
|
76
76
|
adjust.type = type
|
77
77
|
adjust.description = description.nil? ? 'Adjustment' : description
|
78
78
|
adjust.paypal1_amount = 0
|
@@ -110,18 +110,18 @@ module BlackStack
|
|
110
110
|
o.amount = x
|
111
111
|
o.profits_amount = -x
|
112
112
|
o.save
|
113
|
-
|
114
|
-
# if there is negative credits
|
115
|
-
total_credits = 0.to_f - BlackStack::Balance.new(self.id, product_code).credits.to_f
|
116
|
-
total_amount = 0.to_f - BlackStack::Balance.new(self.id, product_code).amount.to_f
|
117
|
-
sleep(2) # delay to ensure the time of the bonus movement will be later than the time of the consumption movement
|
118
|
-
if total_credits < 0
|
119
|
-
self.adjustment(product_code, total_amount, total_credits, 'Adjustment Because Quota Has Been Exceeded.')
|
120
|
-
end
|
121
|
-
|
122
113
|
end
|
123
114
|
amount_paid += 0.to_f - o.amount.to_f
|
124
115
|
credits_paid += 0.to_i - o.credits.to_i
|
116
|
+
|
117
|
+
# if there is negative credits
|
118
|
+
total_credits = credits_paid
|
119
|
+
total_amount = amount_paid
|
120
|
+
if total_credits < 0
|
121
|
+
self.adjustment(product_code, total_amount, total_credits, 'Adjustment Because Quota Has Been Exceeded.', BlackStack::Movement::MOVEMENT_TYPE_ADJUSTMENT, o.create_time)
|
122
|
+
amount_paid = 0.to_f
|
123
|
+
credits_paid = 0.to_i
|
124
|
+
end
|
125
125
|
}
|
126
126
|
end
|
127
127
|
|
data/lib/invoice.rb
CHANGED
@@ -294,7 +294,7 @@ module BlackStack
|
|
294
294
|
#
|
295
295
|
BlackStack::Movement.where(:id_invoice_item => item.id).all { |mov|
|
296
296
|
#
|
297
|
-
mov.expire if mov.expiration_on_next_payment == true
|
297
|
+
mov.expire(self.billing_period_from) if mov.expiration_on_next_payment == true
|
298
298
|
#
|
299
299
|
DB.disconnect
|
300
300
|
GC.start
|
data/lib/movement.rb
CHANGED
@@ -153,15 +153,15 @@ module BlackStack
|
|
153
153
|
end
|
154
154
|
|
155
155
|
# credits expiration
|
156
|
-
def expire()
|
156
|
+
def expire(registraton_time=nil)
|
157
157
|
credits_consumed = self.credits_consumed
|
158
158
|
#
|
159
159
|
self.expiration_start_time = now()
|
160
160
|
self.expiration_tries = self.expiration_tries.to_i + 1
|
161
161
|
self.save
|
162
162
|
#
|
163
|
-
total_credits = 0.to_f - BlackStack::Balance.new(self.client.id, self.product_code).credits.to_f
|
164
|
-
total_amount = 0.to_f - BlackStack::Balance.new(self.client.id, self.product_code).amount.to_f
|
163
|
+
total_credits = 0.to_f - BlackStack::Balance.new(self.client.id, self.product_code, registraton_time).credits.to_f
|
164
|
+
total_amount = 0.to_f - BlackStack::Balance.new(self.client.id, self.product_code, registraton_time).amount.to_f
|
165
165
|
#
|
166
166
|
credits = 0.to_i - self.credits.to_i
|
167
167
|
#
|
@@ -171,7 +171,7 @@ module BlackStack
|
|
171
171
|
exp = BlackStack::Movement.new
|
172
172
|
exp.id = guid()
|
173
173
|
exp.id_client = self.client.id
|
174
|
-
exp.create_time = now()
|
174
|
+
exp.create_time = registraton_time.nil? ? now() : registraton_time
|
175
175
|
exp.type = BlackStack::Movement::MOVEMENT_TYPE_EXPIRATION
|
176
176
|
exp.id_user_creator = self.id_user_creator
|
177
177
|
exp.description = 'Expiration Because Allocation is Renewed'
|