Abraham Rodriguez

add cancel oxxo payment

......@@ -38,9 +38,7 @@ module Var
end
def self.find_charge(id)
if Rails.env.development?
Rails.application.eager_load!
end
Rails.application.eager_load! if Rails.env.development?
@@var_classes.map do |class_name|
class_name.where(var_id: id)
end.flatten.first
......@@ -116,8 +114,8 @@ module ActsAsChargeable
end
def manual_charge
self.update_columns(var_service: 'manual', var_status: 'paid',
var_payment_at: Time.zone.now)
update_columns(var_service: 'manual', var_status: 'paid',
var_payment_at: Time.zone.now)
# TODO: Create a new table with transaction
end
......@@ -179,11 +177,6 @@ module ActsAsChargeable
send(service_attributes[key.to_sym])
end
# def sync_attribute(key)
# return self.send(key) unless self.sync_attributes.include? key.to_sym
# self.send(sync_attributes[key.to_sym])
# end
def conekta_attributes
sync_attributes[:conekta] || {}
end
......@@ -195,6 +188,27 @@ module ActsAsChargeable
def var_payed?
var_status == 'paid'
end
def cancel_oxxo_payment
return { error_message: 'Already paid' } if var_payed?
return { error_message: 'Not charged yet' } unless var_service
return { error_message: 'Not charged with oxxo' } unless barcode
charge = find_charge
if charge.status == 'paid'
update_columns(var_status: 'paid',
var_payment_at: Time.zone.at(charge.paid_at))
return { error_message: 'Already paid' }
end
clean_var_variables
end
private
def clean_var_variables
update_columns(var_status: nil, var_barcode: nil, var_barcode_url: nil,
var_id: nil, var_service: nil, var_payment_at: nil,
var_payment_expires_at: nil)
end
end
end
......
# Var Version
module Var
VERSION = '0.2.15'
VERSION = '0.2.16'
end
......