Class: MT940Structured::Parsers::Rabobank::StructuredTransactionParser
- Inherits:
-
Object
- Object
- MT940Structured::Parsers::Rabobank::StructuredTransactionParser
- Includes:
- DateParser, IbanSupport, Types, StructuredDescriptionParser
- Defined in:
- lib/mt940_structured/parsers/rabobank/structured_transaction_parser.rb
Constant Summary
Constants included from Types
Constants included from IbanSupport
Instance Method Summary collapse
Methods included from DateParser
Methods included from Types
Methods included from StructuredDescriptionParser
Methods included from IbanSupport
Instance Method Details
#enrich_transaction(transaction, line_86) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/mt940_structured/parsers/rabobank/structured_transaction_parser.rb', line 26 def enrich_transaction(transaction, line_86) transaction.description = line_86[4..-1] description_parts = transaction.description.split('/') transaction.description = parse_description_after_tag description_parts, "REMI" if transaction.description == '' structured_betalingskenmerk = parse_description_after_tag(description_parts, "CDTRREF") transaction.description = "BETALINGSKENMERK #{structured_betalingskenmerk}" unless structured_betalingskenmerk == '' end transaction.contra_account_owner = description_parts[description_parts.index { |part| part == "NAME" } + 1].gsub(/\r|\n/, '') if description_parts.index { |part| part == "NAME" } transaction.description.strip! end |
#parse_transaction(line_61) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/mt940_structured/parsers/rabobank/structured_transaction_parser.rb', line 9 def parse_transaction(line_61) valuta_date = parse_date(line_61[4, 6]) sign = line_61[10, 1] == 'D' ? -1 : 1 amount = sign * line_61[11, 15].gsub(',', '.').to_f transaction_type = human_readable_type(line_61[27, 3]) parts = line_61.split(/\s/) potential_iban = parts.size > 1 ? parts.last.gsub(/^[P]{0,1}0*/, '').strip : nil number = potential_iban.nil? ? "NONREF" : iban_to_account(potential_iban) contra_account_iban = iban?(potential_iban) ? potential_iban : nil MT940::Transaction.new(amount: amount, type: transaction_type, date: valuta_date, contra_account_iban: contra_account_iban, contra_account: number.strip) end |