Class: CamtParser::Transaction

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(xml_data, debit, amount = nil, currency = nil) ⇒ Transaction

Returns a new instance of Transaction.



6
7
8
9
10
11
# File 'lib/camt_parser/general/transaction.rb', line 6

def initialize(xml_data, debit, amount = nil, currency = nil)
  @xml_data = xml_data
  @debit    = debit
  @amount   = parse_amount || amount
  @currency = parse_currency || currency
end

Instance Attribute Details

#xml_dataObject (readonly)

Returns the value of attribute xml_data.



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

def xml_data
  @xml_data
end

Instance Method Details

#additional_informationObject

May be missing



107
108
109
# File 'lib/camt_parser/general/transaction.rb', line 107

def additional_information # May be missing
  @addition_information ||= xml_data.xpath('AddtlTxInf/text()').text
end

#amountObject



13
14
15
# File 'lib/camt_parser/general/transaction.rb', line 13

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

#amount_in_centsObject



17
18
19
# File 'lib/camt_parser/general/transaction.rb', line 17

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

#bank_referenceObject

May be missing



79
80
81
# File 'lib/camt_parser/general/transaction.rb', line 79

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

#bicObject



41
42
43
# File 'lib/camt_parser/general/transaction.rb', line 41

def bic
  credit? ? debitor.bic : creditor.bic
end

#credit?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/camt_parser/general/transaction.rb', line 45

def credit?
  !debit
end

#creditorObject



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

def creditor
  @creditor ||= CamtParser::Creditor.new(xml_data)
end

#creditor_identifierObject

May be missing



99
100
101
# File 'lib/camt_parser/general/transaction.rb', line 99

def creditor_identifier # May be missing
  @creditor_identifier ||= xml_data.xpath('RltdPties/Cdtr/Id/PrvtId/Othr/Id/text()').text
end

#creditor_referenceObject

May be missing



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

def creditor_reference # May be missing
  @creditor_reference ||= xml_data.xpath('RmtInf/Strd/CdtrRefInf/Ref/text()').text
end

#currencyObject



21
22
23
# File 'lib/camt_parser/general/transaction.rb', line 21

def currency
  @currency
end

#debitObject



53
54
55
# File 'lib/camt_parser/general/transaction.rb', line 53

def debit
  @debit
end

#debit?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/camt_parser/general/transaction.rb', line 49

def debit?
  debit
end

#debitorObject



29
30
31
# File 'lib/camt_parser/general/transaction.rb', line 29

def debitor
  @debitor ||= CamtParser::Debitor.new(xml_data)
end

#end_to_end_referenceObject

May be missing



83
84
85
# File 'lib/camt_parser/general/transaction.rb', line 83

def end_to_end_reference # May be missing
  @end_to_end_reference ||= xml_data.xpath('Refs/EndToEndId/text()').text
end

#ibanObject



37
38
39
# File 'lib/camt_parser/general/transaction.rb', line 37

def iban
  credit? ? debitor.iban : creditor.iban
end

#mandate_referenceObject

May be missing



87
88
89
# File 'lib/camt_parser/general/transaction.rb', line 87

def mandate_reference # May be missing
  @mandate_reference ||= xml_data.xpath('Refs/MndtId/text()').text
end

#nameObject



33
34
35
# File 'lib/camt_parser/general/transaction.rb', line 33

def name
  credit? ? debitor.name : creditor.name
end

#payment_informationObject

May be missing



103
104
105
# File 'lib/camt_parser/general/transaction.rb', line 103

def payment_information # May be missing
  @payment_information ||= xml_data.xpath('Refs/PmtInfId/text()').text
end

#reason_codeObject

May be missing



111
112
113
# File 'lib/camt_parser/general/transaction.rb', line 111

def reason_code # May be missing
  @reason_code ||= xml_data.xpath('RtrInf/Rsn/Cd/text()').text
end

#referenceObject



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

def reference
  @reference ||= xml_data.xpath('Refs/InstrId/text()').text
end

#remittance_informationObject



61
62
63
64
65
66
67
68
69
# File 'lib/camt_parser/general/transaction.rb', line 61

def remittance_information
  @remittance_information ||= begin
    if (x = xml_data.xpath('RmtInf/Ustrd')).empty?
      nil
    else
      x.collect(&:content).join(' ')
    end
  end
end

#signObject



57
58
59
# File 'lib/camt_parser/general/transaction.rb', line 57

def sign
  credit? ? 1 : -1
end

#swift_codeObject



71
72
73
# File 'lib/camt_parser/general/transaction.rb', line 71

def swift_code
  @swift_code ||= xml_data.xpath('BkTxCd/Prtry/Cd/text()').text.split('+')[0]
end

#transaction_idObject

May be missing



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

def transaction_id # May be missing
  @transaction_id ||= xml_data.xpath('Refs/TxId/text()').text
end