Sha256: 76e8f05dda6147f75431e47d523b6893f2b91e9d1511c8f42868fa957cb7f4bb
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
module Lolita module FirstData module Billing def self.included(base) base.has_many :fd_transactions, :as => :paymentable, :class_name => "Lolita::FirstData::Transaction", :dependent => :destroy base.extend ClassMethods base.class_eval do # returns true if exists transaction with status 'completed' # and updates status if needed def paid? self.fd_transactions.count(:conditions => {:status => 'completed', :transaction_code => '000'}) >= 1 end def fd_error_message if !fd_transactions.empty? && fd_transactions.last.transaction_code I18n.t("fd.response.code_#{fd_transactions.last.transaction_code}", :default => I18n.t('fd.unknown_error')) end end end end module ClassMethods # Closes business day # should be executed every day ~midnight # Like "ruby script/runner <YourBillingModel>.close_business_day" def close_business_day gw = ActiveMerchant::Billing::FirstDataGateway.new( :pem => File.open(FD_PEM).read, :pem_password => FD_PASS ) rs =gw.close_day rs.success? or raise("FirstData close day: #{rs.message}") end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lolita-first-data-1.0.0 | lib/lolita-first-data/billing.rb |