Class: SepaFileParser::Entry

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(xml_data) ⇒ Entry

Returns a new instance of Entry.



8
9
10
11
# File 'lib/sepa_file_parser/general/entry.rb', line 8

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.



6
7
8
# File 'lib/sepa_file_parser/general/entry.rb', line 6

def xml_data
  @xml_data
end

Instance Method Details

#additional_informationString Also known as: description

Returns:



92
93
94
# File 'lib/sepa_file_parser/general/entry.rb', line 92

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

#amountObject



13
14
15
# File 'lib/sepa_file_parser/general/entry.rb', line 13

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

#amount_in_centsObject



17
18
19
# File 'lib/sepa_file_parser/general/entry.rb', line 17

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

#bank_referenceString

Returns:



52
53
54
# File 'lib/sepa_file_parser/general/entry.rb', line 52

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

#batch_detailSepaFileParser::BatchDetail?

Returns:



102
103
104
# File 'lib/sepa_file_parser/general/entry.rb', line 102

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

#booked?Boolean

Returns:

  • (Boolean)


87
88
89
# File 'lib/sepa_file_parser/general/entry.rb', line 87

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

#booking_dateDate

Returns:

  • (Date)


37
38
39
# File 'lib/sepa_file_parser/general/entry.rb', line 37

def booking_date
  @booking_date ||= ((date = xml_data.xpath('BookgDt/Dt/text()').text).empty? ? nil : Date.parse(date))
end

#booking_datetimeDateTime

Returns:

  • (DateTime)


47
48
49
# File 'lib/sepa_file_parser/general/entry.rb', line 47

def booking_datetime
  @booking_datetime ||= ((datetime = xml_data.xpath('BookgDt/DtTm/text()').text).empty? ? nil : DateTime.parse(datetime))
end

#chargesSepaFileParser::Charges



98
99
100
# File 'lib/sepa_file_parser/general/entry.rb', line 98

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

#credit?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/sepa_file_parser/general/entry.rb', line 67

def credit?
  !debit
end

#currencyString

Returns:



22
23
24
# File 'lib/sepa_file_parser/general/entry.rb', line 22

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

#debitBoolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/sepa_file_parser/general/entry.rb', line 27

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

#debit?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/sepa_file_parser/general/entry.rb', line 72

def debit?
  debit
end

#referenceString

Returns:



57
58
59
# File 'lib/sepa_file_parser/general/entry.rb', line 57

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

#reversal?Boolean

Returns:

  • (Boolean)


82
83
84
# File 'lib/sepa_file_parser/general/entry.rb', line 82

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

#signInteger

Returns either 1 or -1.

Returns:

  • (Integer)

    either 1 or -1



77
78
79
# File 'lib/sepa_file_parser/general/entry.rb', line 77

def sign
  credit? ? 1 : -1
end

#transactionsArray<SepaFileParser::Transaction>

Returns:



62
63
64
# File 'lib/sepa_file_parser/general/entry.rb', line 62

def transactions
  @transactions ||= parse_transactions
end

#value_dateDate

Returns:

  • (Date)


32
33
34
# File 'lib/sepa_file_parser/general/entry.rb', line 32

def value_date
  @value_date ||= ((date = xml_data.xpath('ValDt/Dt/text()').text).empty? ? nil : Date.parse(date))
end

#value_datetimeDateTime

Returns:

  • (DateTime)


42
43
44
# File 'lib/sepa_file_parser/general/entry.rb', line 42

def value_datetime
  @value_datetime ||= ((datetime = xml_data.xpath('ValDt/DtTm/text()').text).empty? ? nil : DateTime.parse(datetime))
end