class CamtParser::Format053::Statement
Public Class Methods
new(xml_data)
click to toggle source
# File lib/camt_parser/053/statement.rb, line 4 def initialize(xml_data) @xml_data = xml_data end
parse(xml)
click to toggle source
# File lib/camt_parser/053/statement.rb, line 64 def self.parse(xml) self.new Nokogiri::XML(xml).xpath('Stmt') end
Public Instance Methods
account()
click to toggle source
# File lib/camt_parser/053/statement.rb, line 24 def account @account ||= Account.new(@xml_data.xpath('Acct').first) end
closing_balance()
click to toggle source
# File lib/camt_parser/053/statement.rb, line 50 def closing_balance @closing_balance ||= begin bal = @xml_data.xpath('Bal/Tp//Cd[contains(text(), "CLBD")]').first.ancestors('Bal') date = bal.xpath('Dt/Dt/text()').text currency = bal.xpath('Amt').attribute('Ccy').value AccountBalance.new bal.xpath('Amt/text()').text, currency, date, true end end
Also aliased as: closing_or_intermediary_balance
electronic_sequence_number()
click to toggle source
# File lib/camt_parser/053/statement.rb, line 36 def electronic_sequence_number @electronic_sequence_number ||= @xml_data.xpath('ElctrncSeqNb/text()').text end
entries()
click to toggle source
# File lib/camt_parser/053/statement.rb, line 28 def entries @entries ||= @xml_data.xpath('Ntry').map{ |x| Entry.new(x) } end
from_date_time()
click to toggle source
# File lib/camt_parser/053/statement.rb, line 16 def from_date_time @from_date_time ||= (x = @xml_data.xpath('FrToDt/FrDtTm')).empty? ? nil : Time.parse(x.first.content) end
generation_date()
click to toggle source
# File lib/camt_parser/053/statement.rb, line 12 def generation_date @generation_date ||= Time.parse(@xml_data.xpath('CreDtTm/text()').text) end
identification()
click to toggle source
# File lib/camt_parser/053/statement.rb, line 8 def identification @identification ||= @xml_data.xpath('Id/text()').text end
legal_sequence_number()
click to toggle source
# File lib/camt_parser/053/statement.rb, line 32 def legal_sequence_number @legal_sequence_number ||= @xml_data.xpath('LglSeqNb/text()').text end
opening_balance()
click to toggle source
# File lib/camt_parser/053/statement.rb, line 40 def opening_balance @opening_balance ||= begin bal = @xml_data.xpath('Bal/Tp//Cd[contains(text(), "OPBD") or contains(text(), "PRCD")]').first.ancestors('Bal') date = bal.xpath('Dt/Dt/text()').text currency = bal.xpath('Amt').attribute('Ccy').value AccountBalance.new bal.xpath('Amt/text()').text, currency, date, true end end
Also aliased as: opening_or_intermediary_balance
source()
click to toggle source
# File lib/camt_parser/053/statement.rb, line 60 def source @xml_data.to_s end
to_date_time()
click to toggle source
# File lib/camt_parser/053/statement.rb, line 20 def to_date_time @to_date_time ||= (x = @xml_data.xpath('FrToDt/ToDtTm')).empty? ? nil : Time.parse(x.first.content) end