Showing
2 changed files
with
25 additions
and
11 deletions
... | @@ -38,9 +38,7 @@ module Var | ... | @@ -38,9 +38,7 @@ module Var |
38 | end | 38 | end |
39 | 39 | ||
40 | def self.find_charge(id) | 40 | def self.find_charge(id) |
41 | - if Rails.env.development? | 41 | + Rails.application.eager_load! if Rails.env.development? |
42 | - Rails.application.eager_load! | ||
43 | - end | ||
44 | @@var_classes.map do |class_name| | 42 | @@var_classes.map do |class_name| |
45 | class_name.where(var_id: id) | 43 | class_name.where(var_id: id) |
46 | end.flatten.first | 44 | end.flatten.first |
... | @@ -116,8 +114,8 @@ module ActsAsChargeable | ... | @@ -116,8 +114,8 @@ module ActsAsChargeable |
116 | end | 114 | end |
117 | 115 | ||
118 | def manual_charge | 116 | def manual_charge |
119 | - self.update_columns(var_service: 'manual', var_status: 'paid', | 117 | + update_columns(var_service: 'manual', var_status: 'paid', |
120 | - var_payment_at: Time.zone.now) | 118 | + var_payment_at: Time.zone.now) |
121 | # TODO: Create a new table with transaction | 119 | # TODO: Create a new table with transaction |
122 | end | 120 | end |
123 | 121 | ||
... | @@ -179,11 +177,6 @@ module ActsAsChargeable | ... | @@ -179,11 +177,6 @@ module ActsAsChargeable |
179 | send(service_attributes[key.to_sym]) | 177 | send(service_attributes[key.to_sym]) |
180 | end | 178 | end |
181 | 179 | ||
182 | - # def sync_attribute(key) | ||
183 | - # return self.send(key) unless self.sync_attributes.include? key.to_sym | ||
184 | - # self.send(sync_attributes[key.to_sym]) | ||
185 | - # end | ||
186 | - | ||
187 | def conekta_attributes | 180 | def conekta_attributes |
188 | sync_attributes[:conekta] || {} | 181 | sync_attributes[:conekta] || {} |
189 | end | 182 | end |
... | @@ -195,6 +188,27 @@ module ActsAsChargeable | ... | @@ -195,6 +188,27 @@ module ActsAsChargeable |
195 | def var_payed? | 188 | def var_payed? |
196 | var_status == 'paid' | 189 | var_status == 'paid' |
197 | end | 190 | end |
191 | + | ||
192 | + def cancel_oxxo_payment | ||
193 | + return { error_message: 'Already paid' } if var_payed? | ||
194 | + return { error_message: 'Not charged yet' } unless var_service | ||
195 | + return { error_message: 'Not charged with oxxo' } unless barcode | ||
196 | + charge = find_charge | ||
197 | + if charge.status == 'paid' | ||
198 | + update_columns(var_status: 'paid', | ||
199 | + var_payment_at: Time.zone.at(charge.paid_at)) | ||
200 | + return { error_message: 'Already paid' } | ||
201 | + end | ||
202 | + clean_var_variables | ||
203 | + end | ||
204 | + | ||
205 | + private | ||
206 | + | ||
207 | + def clean_var_variables | ||
208 | + update_columns(var_status: nil, var_barcode: nil, var_barcode_url: nil, | ||
209 | + var_id: nil, var_service: nil, var_payment_at: nil, | ||
210 | + var_payment_expires_at: nil) | ||
211 | + end | ||
198 | end | 212 | end |
199 | end | 213 | end |
200 | 214 | ... | ... |
-
Please register or login to post a comment