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