module NgBankParser::TransactionTools

Private Instance Methods

get_next_lines(index) click to toggle source
# File lib/ng-bank-parser/parsers/uba-pdf-parser/transaction_tools.rb, line 58
def get_next_lines(index)
  @lines[index+1..-1]
end
line_has_date?(line) click to toggle source
# File lib/ng-bank-parser/parsers/uba-pdf-parser/transaction_tools.rb, line 54
def line_has_date?(line)
  line.get_date_string.is_date?
end
seperate_lines_into_transaction_strings(lines) click to toggle source
# File lib/ng-bank-parser/parsers/uba-pdf-parser/transaction_tools.rb, line 36
def seperate_lines_into_transaction_strings(lines)
  @lines = lines[RANGE_OF_LINES_WITH_TRANSACTIONS]
  @lines.each_with_index do |line, index|
    if line_has_date?(line)
      transaction_string = line
      next_lines = get_next_lines(index)
      next_lines.each do |next_line|
        if !line_has_date?(next_line)
          transaction_string = transaction_string + next_line
        else
          break
        end
      end
    end
    @transaction_strings << transaction_string
  end
end
set_column_positions(column_header_line) click to toggle source
# File lib/ng-bank-parser/parsers/uba-pdf-parser/transaction_tools.rb, line 62
def set_column_positions(column_header_line)
  begin
    column_header_line.downcase!
    @date_column = {
        start: column_header_line.index(DATE_COLUMN_HEADER_STRING),
        end: column_header_line.index(REMARKS_COLUMN_HEADER_STRING)
    }
    @remarks_column = {
        start: column_header_line.index(REMARKS_COLUMN_HEADER_STRING),
        end: column_header_line.index(CHEQUE_NUMBER_COLUMN_HEADER_STRING)
    }
    @cheque_column = {
        start: column_header_line.index(CHEQUE_NUMBER_COLUMN_HEADER_STRING),
        end: column_header_line.index(VAL_DATE_COLUMN_HEADER_STRING)
    }
    @val_date_column = {
        start: column_header_line.index(VAL_DATE_COLUMN_HEADER_STRING),
        end: column_header_line.index(VAL_DATE_COLUMN_HEADER_STRING) + LENGTH_OF_TRANSACTION_DATE_STRING
    }
    @debit_column = {
        start: @val_date_column[:start] + LENGTH_OF_TRANSACTION_DATE_STRING,
        end: column_header_line.index(DEBIT_COLUMN_HEADER_STRING) + 5
    }
    @credit_column = {
        start: @debit_column[:end] + 1,
        end: column_header_line.index(CREDIT_COLUMN_HEADER_STRING) + 7
    }
    @balance_column = {
        start: column_header_line.index(BALANCE_COLUMN_HEADER_STRING),
        end: -1
    }
    @columns = {
        date_column: @date_column,
        remarks_column: @remarks_column,
        cheque_column: @cheque_column,
        val_date_column: @val_date_column,
        debit_column: @debit_column,
        credit_column: @credit_column,
        balance_column: @balance_column
    }

  rescue NoMethodError
    return invalid_file
  end

end
set_transactions() click to toggle source
# File lib/ng-bank-parser/parsers/uba-pdf-parser/transaction_tools.rb, line 14
def set_transactions
  @transactions = Array.new
  @transaction_strings = Array.new
  @reader.pages[0..-2].each do |page|
    seperate_lines_into_transaction_strings(page.text.remove_empty_lines.lines)
  end
  @transaction_strings.compact!
  @transaction_strings.each do |transaction_string|
    transaction = Transaction.new(transaction_string, @columns)
    @transactions << transaction
  end
  @transactions.shift
  set_transactions_hashes_array
end
set_transactions_hashes_array() click to toggle source
# File lib/ng-bank-parser/parsers/uba-pdf-parser/transaction_tools.rb, line 29
def set_transactions_hashes_array
  @transactions_hashes_array = []
  @transactions.each do |transaction|
    @transactions_hashes_array << transaction.to_hash
  end
end