find account by id; show account full name

This commit is contained in:
Josh Holtrop 2013-07-30 22:53:58 -04:00
parent 2d42346541
commit 79219686aa
2 changed files with 23 additions and 0 deletions

View File

@ -1,9 +1,28 @@
module Gnucash
class Account
attr_accessor :name
attr_accessor :type
attr_accessor :id
def initialize(book, node)
@book = book
@node = node
@name = node.xpath('act:name').text
@type = node.xpath('act:type').text
@id = node.xpath('act:id').text
@parent_id = node.xpath('act:parent').text
@parent_id = nil if @parent_id == ""
end
def full_name
prefix = ""
if @parent_id
parent = @book.find_account_by_id(@parent_id)
if parent and parent.type != 'ROOT'
prefix = parent.full_name + "::"
end
end
prefix + name
end
end
end

View File

@ -15,6 +15,10 @@ module Gnucash
build_accounts
end
def find_account_by_id(id)
@accounts.find { |a| a.id == id }
end
private
def build_accounts