class AppEarnings::Amazon::AmazonReport

Converts a csv file to a hash.

Attributes

exchange_info[RW]

Public Class Methods

new(name, transactions, exchange_info) click to toggle source
# File lib/app_earnings/amazon/amazon_report.rb, line 11
def initialize(name, transactions, exchange_info)
  @exchange_info = exchange_info
  extract_amount(name, transactions)
end

Public Instance Methods

amount_from_transactions(transactions) click to toggle source
# File lib/app_earnings/amazon/amazon_report.rb, line 23
def amount_from_transactions(transactions)
  amounts = transactions.reduce({}) do |sum, transaction|
    marketplace = transaction[:marketplace]
    sum[marketplace] ||= 0.0
    sum[marketplace] += transaction[:gross_earnings_or_refunds].to_f
    sum
  end

  {
    currency: 'USD',
    amount: convert_amounts(amounts).round(2)
  }
end
convert_amounts(amounts) click to toggle source
# File lib/app_earnings/amazon/amazon_report.rb, line 16
def convert_amounts(amounts)
  amounts.reduce(0.0) do |sum, (marketplace, amount)|
    amount = amount * @exchange_info[marketplace].to_f
    sum + amount
  end
end