class ActivePayment::Models::Sales

Attributes

sales[RW]

Public Class Methods

new(sales = []) click to toggle source
# File lib/active_payment/models/sales.rb, line 8
def initialize(sales = [])
  @sales = sales
end

Public Instance Methods

amount() click to toggle source
# File lib/active_payment/models/sales.rb, line 12
def amount
  @sales.map(&:amount).inject(0, &:+)
end
amount_in_cents() click to toggle source
# File lib/active_payment/models/sales.rb, line 16
def amount_in_cents
  @sales.map(&:amount_in_cents).inject(0, &:+)
end
currency() click to toggle source
# File lib/active_payment/models/sales.rb, line 30
def currency
  @sales.first.currency
end
each() { |sale| ... } click to toggle source
# File lib/active_payment/models/sales.rb, line 53
def each
  @sales.each do |sale|
    yield sale
  end
end
paypal_hash() click to toggle source
# File lib/active_payment/models/sales.rb, line 44
def paypal_hash
  paypal_hash = []
  @sales.each do |sale|
    paypal_hash << sale.paypal_hash
  end

  paypal_hash
end
paypal_recipients() click to toggle source
# File lib/active_payment/models/sales.rb, line 59
def paypal_recipients
  recipients = []
  @sales.each do |sale|
    recipients << sale.paypal_recipient if sale.amount > 0
  end

  recipients
end
total_shipping() click to toggle source
# File lib/active_payment/models/sales.rb, line 20
def total_shipping
  total_shipping = 0

  @sales.each do |sale|
    total_shipping += sale.shipping if sale.shipping
  end

  total_shipping
end
total_tax() click to toggle source
# File lib/active_payment/models/sales.rb, line 34
def total_tax
  total_tax = 0

  @sales.each do |sale|
    total_tax += sale.tax if sale.tax
  end

  total_tax
end

Private Instance Methods

items_data() click to toggle source
# File lib/active_payment/models/sales.rb, line 71
def items_data
  data = []

  @sales.each do |sale|
    data << { name: sale.description, item_count: 1, item_price: sale.amount, price: sale.amount }
  end

  data
end