Sha256: c98a02d2e56b218ade9ae2adc7974a6fa554ce06f9bb0b31dfa302fbb2223fb4

Contents?: true

Size: 1.23 KB

Versions: 7

Compression:

Stored size: 1.23 KB

Contents

module Kaui::PaymentState

  def refundable?
    transactions.each do |transaction|
      return true if transaction.status == 'SUCCESS' && %w(CAPTURE PURCHASE).include?(transaction.transaction_type)
    end
    false
  end

  def amount_refundable
    captured_amount + purchased_amount - refunded_amount
  end

  def amount_capturable
    auth_amount - captured_amount
  end

  def capturable?
    maybe = false
    transactions.each do |transaction|
      if transaction.status == 'SUCCESS'
        return false if transaction.transaction_type == 'VOID'
        maybe = true if transaction.transaction_type == 'AUTHORIZE'
      end
    end
    maybe && refunded_amount == 0
  end

  def voidable?
    transactions.each do |transaction|
      return false if transaction.status == 'SUCCESS' && transaction.transaction_type == 'VOID'
    end
    capturable? && captured_amount == 0
  end

  def chargebackable?
    refundable?
  end

  def paid_amount_to_money
    captured_amount_to_money + purchased_amount_to_money
  end

  # TODO Better name?
  def returned_amount_to_money
    refunded_amount_to_money + credited_amount_to_money
  end

  def is_fully_refunded?
    refunded_amount == captured_amount || refunded_amount == purchased_amount
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
kaui-0.15.2 app/models/kaui/payment_state.rb
kaui-0.15.1 app/models/kaui/payment_state.rb
kaui-0.15.0 app/models/kaui/payment_state.rb
kaui-0.14.2 app/models/kaui/payment_state.rb
kaui-0.14.1 app/models/kaui/payment_state.rb
kaui-0.14.0 app/models/kaui/payment_state.rb
kaui-0.12.0 app/models/kaui/payment_state.rb