class CamtParser::Transaction
Attributes
Public Class Methods
Source
# 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
Public Instance Methods
Source
# File lib/camt_parser/general/transaction.rb, line 123 def additional_information # May be missing @addition_information ||= xml_data.xpath('AddtlTxInf/text()').text end
Source
# File lib/camt_parser/general/transaction.rb, line 13 def amount CamtParser::Misc.to_amount(@amount) end
Source
# File lib/camt_parser/general/transaction.rb, line 17 def amount_in_cents CamtParser::Misc.to_amount_in_cents(@amount) end
Source
# File lib/camt_parser/general/transaction.rb, line 95 def bank_reference # May be missing @bank_reference ||= xml_data.xpath('Refs/AcctSvcrRef/text()').text end
Source
# File lib/camt_parser/general/transaction.rb, line 41 def bic credit? ? debitor.bic : creditor.bic end
Source
# File lib/camt_parser/general/transaction.rb, line 25 def creditor @creditor ||= CamtParser::Creditor.new(xml_data) end
Source
# File lib/camt_parser/general/transaction.rb, line 115 def creditor_identifier # May be missing @creditor_identifier ||= xml_data.xpath('RltdPties/Cdtr/Id/PrvtId/Othr/Id/text()').text end
Source
# File lib/camt_parser/general/transaction.rb, line 107 def creditor_reference # May be missing @creditor_reference ||= xml_data.xpath('RmtInf/Strd/CdtrRefInf/Ref/text()').text end
Source
# File lib/camt_parser/general/transaction.rb, line 21 def currency @currency end
Source
# File lib/camt_parser/general/transaction.rb, line 29 def debitor @debitor ||= CamtParser::Debitor.new(xml_data) end
Source
# File lib/camt_parser/general/transaction.rb, line 99 def end_to_end_reference # May be missing @end_to_end_reference ||= xml_data.xpath('Refs/EndToEndId/text()').text end
Source
# File lib/camt_parser/general/transaction.rb, line 91 def exchange_rate # May be missing @exchange_rate ||= xml_data.xpath('AmtDtls/TxAmt/CcyXchg/XchgRate/text()').text end
Source
# File lib/camt_parser/general/transaction.rb, line 37 def iban credit? ? debitor.iban : creditor.iban end
Source
# File lib/camt_parser/general/transaction.rb, line 103 def mandate_reference # May be missing @mandate_reference ||= xml_data.xpath('Refs/MndtId/text()').text end
Source
# File lib/camt_parser/general/transaction.rb, line 33 def name credit? ? debitor.name : creditor.name end
Source
# File lib/camt_parser/general/transaction.rb, line 87 def original_currency # May be missing @original_currency ||= xml_data.xpath('AmtDtls/InstdAmt/Amt/@Ccy').text end
Source
# File lib/camt_parser/general/transaction.rb, line 83 def original_currency_amount # May be missing @original_currency_amount ||= CamtParser::Misc.to_amount(parse_original_currency_amount) end
Source
# File lib/camt_parser/general/transaction.rb, line 119 def payment_information # May be missing @payment_information ||= xml_data.xpath('Refs/PmtInfId/text()').text end
Source
# File lib/camt_parser/general/transaction.rb, line 45 def postal_address credit? ? debitor.postal_address : creditor.postal_address end
Source
# File lib/camt_parser/general/transaction.rb, line 127 def reason_code # May be missing @reason_code ||= xml_data.xpath('RtrInf/Rsn/Cd/text()').text end
Source
# File lib/camt_parser/general/transaction.rb, line 79 def reference @reference ||= xml_data.xpath('Refs/InstrId/text()').text end
Source
# File lib/camt_parser/general/transaction.rb, line 65 def remittance_information @remittance_information ||= begin if (x = xml_data.xpath('RmtInf/Ustrd')).empty? nil else x.collect(&:content).join(' ') end end end
Source
# File lib/camt_parser/general/transaction.rb, line 75 def swift_code @swift_code ||= xml_data.xpath('BkTxCd/Prtry/Cd/text()').text.split('+')[0] end
Source
# File lib/camt_parser/general/transaction.rb, line 111 def transaction_id # May be missing @transaction_id ||= xml_data.xpath('Refs/TxId/text()').text end
Private Instance Methods
Source
# File lib/camt_parser/general/transaction.rb, line 137 def parse_amount if xml_data.xpath('Amt').any? xml_data.xpath('Amt/text()').text elsif xml_data.xpath('AmtDtls').any? xml_data.xpath('AmtDtls//Amt/text()').first.text end end
Source
# File lib/camt_parser/general/transaction.rb, line 145 def parse_currency if xml_data.xpath('Amt').any? xml_data.xpath('Amt/@Ccy').text elsif xml_data.xpath('AmtDtls').any? xml_data.xpath('AmtDtls//Amt/@Ccy').first.text end end
Source
# File lib/camt_parser/general/transaction.rb, line 133 def parse_original_currency_amount xml_data.xpath('AmtDtls/InstdAmt/Amt/text()').text end