Sha256: 87f089bf0b9d2f3843e3b06c475d9533116086a8d65e4295d3a9f1d5258f6ef2

Contents?: true

Size: 1.67 KB

Versions: 2

Compression:

Stored size: 1.67 KB

Contents

class Kaui::Account < Kaui::Base
  define_attr :account_id
  define_attr :external_key
  define_attr :name
  define_attr :first_name_length
  define_attr :email
  define_attr :currency
  define_attr :payment_method_id
  define_attr :timezone
  define_attr :address1
  define_attr :address2
  define_attr :company
  define_attr :state
  define_attr :country
  define_attr :phone
  define_attr :balance
  define_attr :cba
  define_attr :is_notified_for_invoices
  has_one :bill_cycle_day, Kaui::BillCycleDay

  def initialize(data = {})
    super(:account_id => data['accountId'],
          :external_key => data['externalKey'],
          :name => data['name'] || "#{data['firstName'] || ''}#{data.has_key?('firstName') ? ' ' : ''}#{data['lastName'] || ''}",
          :first_name_length => data['length'] || (data.has_key?('firstName') ? data['firstName'].length : 0),
          :email => data['email'],
          :currency => data['currency'],
          :payment_method_id => data['paymentMethodId'],
          :timezone => data['timeZone'] || data['time_zone'] || data['timezone'],
          :address1 => data['address1'],
          :address2 => data['address2'],
          :company =>  data['company'],
          :state => data['state'],
          :country => data['country'],
          :phone => data['phone'],
          :bill_cycle_day => data['billCycleDay'],
          :balance => data['accountBalance'],
          :cba => data['accountCBA'],
          :is_notified_for_invoices => data['isNotifiedForInvoices'])
  end

  def to_param
    @account_id
  end

  def balance_to_money
    Kaui::Base.to_money(balance.abs, currency)
  end

  def cba_to_money
    Kaui::Base.to_money(cba.abs, currency)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
kaui-0.2.1 app/models/kaui/account.rb
kaui-0.2.0 app/models/kaui/account.rb