Showing
2 changed files
with
24 additions
and
10 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,7 +114,7 @@ module ActsAsChargeable | ... | @@ -116,7 +114,7 @@ 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 |
| ... | @@ -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