Sha256: 8858bc6c0b29d0066c785b3b7a3510ff49e8c5f93ac7b8f036aaa2681338bffb

Contents?: true

Size: 1.67 KB

Versions: 24

Compression:

Stored size: 1.67 KB

Contents

module Bankserv
  
  class Credit < ActiveRecord::Base
    extend Eft

    serialize :response
    scope :unprocessed, where(status: "new")

    belongs_to :bank_account, :foreign_key => 'bankserv_bank_account_id'
    belongs_to :request, :foreign_key => 'bankserv_request_id'
    
    after_create :generate_internal_user_ref
    
    def self.bankserv_service
      Bankserv::CreditService.where(active: true).last
    end
    
    def bankserv_service
      Bankserv::Credit.bankserv_service
    end
    
    def generate_internal_user_ref
      self.internal_user_ref = "CREDIT#{id}"
      save!
    end
    
    def self.for_reference(reference)
      self.where(:user_ref => reference)
    end
    
    def self.for_internal_reference(reference)
      self.where(:internal_user_ref => reference)
    end
    
    def new?
      status == "new"
    end
    
    def pending?
      status == "pending"
    end
    
    def error?
      status == "error"
    end
    
    def completed?
      status == "completed"
    end
    
    def standard?
      record_type == "standard"
    end
    
    def contra?
      record_type == "contra"
    end
    
    def formatted_user_ref
      abbreviated_name = bankserv_service.config[:client_abbreviated_name]
      
      if contra?
        bankserv_service.config[:client_abbreviated_name]
        abbreviated_name.ljust(10, ' ') << "CONTRA#{user_ref}"
      else
        abbreviated_name.ljust(10, ' ') << user_ref
      end
    end
    
    def contra_bank_details
      if self.standard?
        Credit.where(record_type: "contra", batch_id: self.batch_id, status: "new").first.bank_account
      else
        self.bank_account
      end
    end
    
  end
  
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
bankserv-0.4.7 lib/bankserv/credit.rb
bankserv-0.4.6 lib/bankserv/credit.rb
bankserv-0.4.5 lib/bankserv/credit.rb
bankserv-0.4.4 lib/bankserv/credit.rb
bankserv-0.4.3 lib/bankserv/credit.rb
bankserv-0.4.2 lib/bankserv/credit.rb
bankserv-0.4.1 lib/bankserv/credit.rb
bankserv-0.4.0 lib/bankserv/credit.rb
bankserv-0.3.9 lib/bankserv/credit.rb
bankserv-0.3.8 lib/bankserv/credit.rb
bankserv-0.3.7 lib/bankserv/credit.rb
bankserv-0.3.6 lib/bankserv/credit.rb
bankserv-0.3.5 lib/bankserv/credit.rb
bankserv-0.3.4 lib/bankserv/credit.rb
bankserv-0.3.3 lib/bankserv/credit.rb
bankserv-0.3.2 lib/bankserv/credit.rb
bankserv-0.3.1 lib/bankserv/credit.rb
bankserv-0.3.0 lib/bankserv/credit.rb
bankserv-0.2.9 lib/bankserv/credit.rb
bankserv-0.2.8 lib/bankserv/credit.rb