Class: XeroGateway::Account

Inherits:
Object
  • Object
show all
Defined in:
lib/xero_gateway/account.rb

Constant Summary collapse

TYPE =
{
  'CURRENT' =>        '',
  'FIXED' =>          '',
  'PREPAYMENT' =>     '',
  'EQUITY' =>         '',
  'DEPRECIATN' =>     '',
  'DIRECTCOSTS' =>    '',
  'EXPENSE' =>        '',
  'OVERHEADS' =>      '',
  'CURRLIAB' =>       '',
  'LIABILITY' =>      '',
  'TERMLIAB' =>       '',
  'OTHERINCOME' =>    '',
  'REVENUE' =>        '',
  'SALES' =>          ''
}
ACCOUNT_CLASS =
{
  'ASSET'     => '',
  'EQUITY'    => '',
  'EXPENSE'   => '',
  'LIABILITY' => '',
  'REVENUE'   => '',
}
STATUSES =
{
  'ACTIVE'   => '',
  'ARCHIVED' => '',
}
TAX_TYPE =
{
  'NONE' =>             'No GST',
  'EXEMPTINPUT' =>      'VAT on expenses exempt from VAT (UK only)',
  'INPUT' =>            'GST on expenses',
  'SRINPUT' =>          'VAT on expenses',
  'ZERORATEDINPUT' =>   'Expense purchased from overseas (UK only)',
  'RRINPUT' =>          'Reduced rate VAT on expenses (UK Only)',
  'EXEMPTOUTPUT' =>     'VAT on sales exempt from VAT (UK only)',
  'ECZROUTPUT' =>       'EC Zero-rated output',
  'OUTPUT' =>           'OUTPUT (old rate)',
  'OUTPUT2' =>          'OUTPUT2',
  'SROUTPUT' =>         'SROUTPUT',
  'ZERORATEDOUTPUT' =>  'Sales made from overseas (UK only)',
  'RROUTPUT' =>         'Reduced rate VAT on sales (UK Only)',
  'ZERORATED' =>        'Zero-rated supplies/sales from overseas (NZ Only)'
}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ Account

Returns a new instance of Account.



53
54
55
56
57
# File 'lib/xero_gateway/account.rb', line 53

def initialize(params = {})
  params.each do |k,v|
    self.send("#{k}=", v)
  end
end

Instance Attribute Details

#account_classObject

Returns the value of attribute account_class.



51
52
53
# File 'lib/xero_gateway/account.rb', line 51

def 
  @account_class
end

#account_idObject

Returns the value of attribute account_id.



51
52
53
# File 'lib/xero_gateway/account.rb', line 51

def 
  @account_id
end

#codeObject

Returns the value of attribute code.



51
52
53
# File 'lib/xero_gateway/account.rb', line 51

def code
  @code
end

#currency_codeObject

Returns the value of attribute currency_code.



51
52
53
# File 'lib/xero_gateway/account.rb', line 51

def currency_code
  @currency_code
end

#descriptionObject

Returns the value of attribute description.



51
52
53
# File 'lib/xero_gateway/account.rb', line 51

def description
  @description
end

#enable_payments_to_accountObject

Returns the value of attribute enable_payments_to_account.



51
52
53
# File 'lib/xero_gateway/account.rb', line 51

def 
  @enable_payments_to_account
end

#nameObject

Returns the value of attribute name.



51
52
53
# File 'lib/xero_gateway/account.rb', line 51

def name
  @name
end

#statusObject

Returns the value of attribute status.



51
52
53
# File 'lib/xero_gateway/account.rb', line 51

def status
  @status
end

#system_accountObject

Returns the value of attribute system_account.



51
52
53
# File 'lib/xero_gateway/account.rb', line 51

def 
  @system_account
end

#tax_typeObject

Returns the value of attribute tax_type.



51
52
53
# File 'lib/xero_gateway/account.rb', line 51

def tax_type
  @tax_type
end

#typeObject

Returns the value of attribute type.



51
52
53
# File 'lib/xero_gateway/account.rb', line 51

def type
  @type
end

Class Method Details

.from_xml(account_element) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/xero_gateway/account.rb', line 82

def self.from_xml()
   = Account.new
  .children.each do |element|
    case(element.name)
      when "AccountID" then . = element.text
      when "Code" then .code = element.text
      when "Name" then .name = element.text
      when "Type" then .type = element.text
      when "Status" then .status = element.text
      when "Class" then . = element.text
      when "TaxType" then .tax_type = element.text
      when "Description" then .description = element.text
      when "SystemAccount" then . = element.text
      when "EnablePaymentsToAccount" then . = (element.text == 'true')
      when "CurrencyCode" then .currency_code = element.text
    end
  end
  
end

Instance Method Details

#==(other) ⇒ Object



59
60
61
62
63
64
# File 'lib/xero_gateway/account.rb', line 59

def ==(other)
  [:account_id, :code, :name, :type, :status, :account_class, :tax_type, :description, :system_account, :enable_payments_to_account].each do |field|
    return false if send(field) != other.send(field)
  end
  return true
end

#to_xml(b = Builder::XmlMarkup.new, options = {}) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/xero_gateway/account.rb', line 66

def to_xml(b = Builder::XmlMarkup.new, options={})
  b.tag!(options[:name] ? options[:name] : 'Account') {
    b.AccountID self.
    b.Code self.code
    b.Name self.name
    b.Type self.type
    b.Status self.status
    b.Class self.
    b.TaxType self.tax_type
    b.Description self.description
    b.SystemAccount self. unless self..nil?
    b.EnablePaymentsToAccount self.
    b.CurrencyCode currency_code if currency_code
  }
end