class Akatus::Payment

Attributes

currency[RW]
discount[RW]
error[RW]
id[RW]
items[RW]
payer[RW]
payment_method[RW]
receiver[R]
reference[RW]
shipping_cost[RW]
status[RW]
total_amount[RW]
transaction_id[RW]
url[RW]
weight[RW]

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method Akatus::Transferrable::new
# File lib/akatus/payment.rb, line 11
def initialize(opts = {})
  options = {
    :items         => [],
    :discount      => 0,
    :shipping_cost => 0,
    :weight        => 0
  }.merge(opts)
  super(options)

  @receiver = Receiver.new({ :email => Akatus.config.email, :api_key => Akatus.config.api_key })
end

Public Instance Methods

to_payload() click to toggle source
# File lib/akatus/payment.rb, line 23
def to_payload
  hsh = {
    'carrinho' => {
      'produtos'  => { 'produto' => items.map { |i| i.to_payload(false) } },
      'transacao' => {
        'peso'       => Akatus.format_number(total_weight),
        'frete'      => Akatus.format_number(total_shipping_cost),
        'desconto'   => Akatus.format_number(total_discount),
        'referencia' => reference,
        'moeda'      => 'BRL'
      }.merge(payment_method.to_payload),
      'recebedor'  => receiver.to_payload(false),
      'pagador'    => payer.to_payload(false)
    }
  }
end
total_discount() click to toggle source
# File lib/akatus/payment.rb, line 48
def total_discount
  discount + items.inject(0) { |sum, item| sum + item.discount }
end
total_items_amount() click to toggle source
# File lib/akatus/payment.rb, line 52
def total_items_amount
  items.inject(0) { |sum, item| sum + item.total_amount }
end
total_shipping_cost() click to toggle source
# File lib/akatus/payment.rb, line 44
def total_shipping_cost
  shipping_cost + items.inject(0) { |sum, item| sum + item.shipping_cost }
end
total_weight() click to toggle source
# File lib/akatus/payment.rb, line 40
def total_weight
  weight + items.inject(0) { |sum, item| sum + item.weight }
end