Class: CamtParser::Entry

Inherits:
Object
  • Object
show all
Defined in:
lib/camt_parser/general/entry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(xml_data) ⇒ Entry

Returns a new instance of Entry.



6
7
8
9
# 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

Instance Attribute Details

#xml_dataObject (readonly)

Returns the value of attribute xml_data.



4
5
6
# File 'lib/camt_parser/general/entry.rb', line 4

def xml_data
  @xml_data
end

Instance Method Details

#additional_informationString Also known as: description

Returns:



85
86
87
# File 'lib/camt_parser/general/entry.rb', line 85

def additional_information
  @additional_information ||= xml_data.xpath('AddtlNtryInf/text()').text
end

#amountObject



11
12
13
# File 'lib/camt_parser/general/entry.rb', line 11

def amount
  CamtParser::Misc.to_amount(@amount)
end

#amount_in_centsObject



15
16
17
# File 'lib/camt_parser/general/entry.rb', line 15

def amount_in_cents
  CamtParser::Misc.to_amount_in_cents(@amount)
end

#bank_referenceString

Returns:



50
51
52
# File 'lib/camt_parser/general/entry.rb', line 50

def bank_reference # May be missing
  @bank_reference ||= xml_data.xpath('AcctSvcrRef/text()').text
end

#batch_detailCamtParser::BatchDetail?

Returns:



95
96
97
# File 'lib/camt_parser/general/entry.rb', line 95

def batch_detail
  @batch_detail ||= xml_data.xpath('NtryDtls/Btch').empty? ? nil : CamtParser::BatchDetail.new(@xml_data.xpath('NtryDtls/Btch'))
end

#booked?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/camt_parser/general/entry.rb', line 80

def booked?
  @booked ||= xml_data.xpath('Sts/text()').text.upcase == 'BOOK'
end

#booking_dateDate

Returns:

  • (Date)


35
36
37
# 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

#booking_datetimeDateTime

Returns:

  • (DateTime)


45
46
47
# 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

#chargesCamtParser::Charges

Returns:



91
92
93
# File 'lib/camt_parser/general/entry.rb', line 91

def charges
  @charges ||= CamtParser::Charges.new(xml_data.xpath('Chrgs'))
end

#credit?Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/camt_parser/general/entry.rb', line 60

def credit?
  !debit
end

#currencyString

Returns:



20
21
22
# File 'lib/camt_parser/general/entry.rb', line 20

def currency
  @currency ||= xml_data.xpath('Amt/@Ccy').text
end

#debitBoolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/camt_parser/general/entry.rb', line 25

def debit
  @debit ||= xml_data.xpath('CdtDbtInd/text()').text.upcase == 'DBIT'
end

#debit?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/camt_parser/general/entry.rb', line 65

def debit?
  debit
end

#reversal?Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/camt_parser/general/entry.rb', line 75

def reversal?
  @reversal ||= xml_data.xpath('RvslInd/text()').text.downcase == 'true'
end

#signInteger

Returns either 1 or -1.

Returns:

  • (Integer)

    either 1 or -1



70
71
72
# File 'lib/camt_parser/general/entry.rb', line 70

def sign
  credit? ? 1 : -1
end

#transactionsArray<CamtParser::Transaction>

Returns:



55
56
57
# File 'lib/camt_parser/general/entry.rb', line 55

def transactions
  @transactions ||= parse_transactions
end

#value_dateDate

Returns:

  • (Date)


30
31
32
# 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

#value_datetimeDateTime

Returns:

  • (DateTime)


40
41
42
# 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