class CamtParser::Entry
Attributes
Public Class Methods
Source
# File lib/camt_parser/general/entry.rb, line 6 def initialize(xml_data) @xml_data = xml_data @amount = xml_data.xpath('Amt/text()').text end
Public Instance Methods
Source
# File lib/camt_parser/general/entry.rb, line 90 def additional_information @additional_information ||= xml_data.xpath('AddtlNtryInf/text()').text end
@return [String]
Also aliased as: description
Source
# File lib/camt_parser/general/entry.rb, line 11 def amount CamtParser::Misc.to_amount(@amount) end
Source
# File lib/camt_parser/general/entry.rb, line 15 def amount_in_cents CamtParser::Misc.to_amount_in_cents(@amount) end
Source
# File lib/camt_parser/general/entry.rb, line 50 def bank_reference # May be missing @bank_reference ||= xml_data.xpath('AcctSvcrRef/text()').text end
@return [String]
Source
# File lib/camt_parser/general/entry.rb, line 100 def batch_detail @batch_detail ||= xml_data.xpath('NtryDtls/Btch').empty? ? nil : CamtParser::BatchDetail.new(@xml_data.xpath('NtryDtls/Btch')) end
@return [CamtParser::BatchDetail, nil]
Source
# File lib/camt_parser/general/entry.rb, line 85 def booked? @booked ||= xml_data.xpath('Sts/text()').text.upcase == 'BOOK' end
@return [Boolean]
Source
# File lib/camt_parser/general/entry.rb, line 35 def booking_date @booking_date ||= ((date = xml_data.xpath('BookgDt/Dt/text()').text).empty? ? nil : Date.parse(date)) end
@return [Date]
Source
# File lib/camt_parser/general/entry.rb, line 45 def booking_datetime @booking_datetime ||= ((datetime = xml_data.xpath('BookgDt/DtTm/text()').text).empty? ? nil : DateTime.parse(datetime)) end
@return [DateTime]
Source
# File lib/camt_parser/general/entry.rb, line 96 def charges @charges ||= CamtParser::Charges.new(xml_data.xpath('Chrgs')) end
@return [CamtParser::Charges]
Source
# File lib/camt_parser/general/entry.rb, line 65 def credit? !debit end
@return [Boolean]
Source
# File lib/camt_parser/general/entry.rb, line 20 def currency @currency ||= xml_data.xpath('Amt/@Ccy').text end
@return [String]
Source
# File lib/camt_parser/general/entry.rb, line 25 def debit @debit ||= xml_data.xpath('CdtDbtInd/text()').text.upcase == 'DBIT' end
@return [Boolean]
Source
# File lib/camt_parser/general/entry.rb, line 70 def debit? debit end
@return [Boolean]
Source
# File lib/camt_parser/general/entry.rb, line 55 def reference # May be missing @reference ||= xml_data.xpath('NtryRef/text()').text end
@return [String]
Source
# File lib/camt_parser/general/entry.rb, line 80 def reversal? @reversal ||= xml_data.xpath('RvslInd/text()').text.downcase == 'true' end
@return [Boolean]
Source
# File lib/camt_parser/general/entry.rb, line 75 def sign credit? ? 1 : -1 end
@return [Integer] either 1 or -1
Source
# File lib/camt_parser/general/entry.rb, line 60 def transactions @transactions ||= parse_transactions end
@return [Array<CamtParser::Transaction>]
Source
# File lib/camt_parser/general/entry.rb, line 30 def value_date @value_date ||= ((date = xml_data.xpath('ValDt/Dt/text()').text).empty? ? nil : Date.parse(date)) end
@return [Date]
Source
# File lib/camt_parser/general/entry.rb, line 40 def value_datetime @value_datetime ||= ((datetime = xml_data.xpath('ValDt/DtTm/text()').text).empty? ? nil : DateTime.parse(datetime)) end
@return [DateTime]
Private Instance Methods
Source
# File lib/camt_parser/general/entry.rb, line 106 def parse_transactions transaction_details = xml_data.xpath('NtryDtls/TxDtls') amt = nil ccy = nil if transaction_details.length == 1 amt = xml_data.xpath('Amt/text()').text ccy = xml_data.xpath('Amt/@Ccy').text end xml_data.xpath('NtryDtls/TxDtls').map { |x| Transaction.new(x, debit?, amt, ccy) } end