Sha256: 351c421e14632e501c4b9a22ad1be66a4ed85212e9832b38d675b63500578566

Contents?: true

Size: 1.55 KB

Versions: 62

Compression:

Stored size: 1.55 KB

Contents

module Workarea
  class Payment
    module Status
      class NotApplicable
        include StatusCalculator::Status

        def in_status?
          order.tenders.empty?
        end
      end

      class Pending
        include StatusCalculator::Status

        def in_status?
          order.transactions.map(&:success?).empty?
        end
      end

      class Authorized
        include StatusCalculator::Status

        def in_status?
          order.tenders.all? do |tender|
            tender.authorized_amount == tender.amount &&
              tender.captured_amount == 0
          end
        end
      end

      class Captured
        include StatusCalculator::Status

        def in_status?
          order.tenders.all? do |tender|
            tender.captured_amount == tender.amount &&
              tender.refunded_amount == 0
          end
        end
      end

      class PartiallyCaptured
        include StatusCalculator::Status

        def in_status?
          order.tenders.any? do |tender|
            tender.captured_amount > 0 &&
              tender.refunded_amount == 0
          end
        end
      end

      class Refunded
        include StatusCalculator::Status

        def in_status?
          order.tenders.all? do |tender|
            tender.refunded_amount == tender.amount
          end
        end
      end

      class PartiallyRefunded
        include StatusCalculator::Status

        def in_status?
          order.tenders.any? do |tender|
            tender.refunded_amount > 0
          end
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.5.27 app/models/workarea/payment/status.rb
workarea-core-3.5.26 app/models/workarea/payment/status.rb
workarea-core-3.4.45 app/models/workarea/payment/status.rb
workarea-core-3.5.25 app/models/workarea/payment/status.rb
workarea-core-3.5.23 app/models/workarea/payment/status.rb
workarea-core-3.4.44 app/models/workarea/payment/status.rb
workarea-core-3.5.22 app/models/workarea/payment/status.rb
workarea-core-3.4.43 app/models/workarea/payment/status.rb
workarea-core-3.5.21 app/models/workarea/payment/status.rb
workarea-core-3.4.42 app/models/workarea/payment/status.rb
workarea-core-3.5.20 app/models/workarea/payment/status.rb
workarea-core-3.4.41 app/models/workarea/payment/status.rb
workarea-core-3.5.19 app/models/workarea/payment/status.rb
workarea-core-3.4.40 app/models/workarea/payment/status.rb
workarea-core-3.5.18 app/models/workarea/payment/status.rb
workarea-core-3.4.39 app/models/workarea/payment/status.rb
workarea-core-3.5.17 app/models/workarea/payment/status.rb
workarea-core-3.4.38 app/models/workarea/payment/status.rb
workarea-core-3.5.16 app/models/workarea/payment/status.rb
workarea-core-3.4.37 app/models/workarea/payment/status.rb