class Ach::EntryDetailRecord

Attributes

ach_batch_id[RW]
addenda_record_indicator[RW]
amount[RW]
db_entry_amount[RW]
disc_data[RW]
individual_id[RW]
individual_name[RW]
receiving_dfi_acc_num[RW]
receiving_dfi_routing_num[RW]
record_type[RW]
routing_number[RW]
routing_number_check[RW]
rt_num_check[RW]
settlement_id[RW]
trace_number[RW]
transaction_code[RW]

Public Class Methods

decode(record,processor) click to toggle source
# File lib/ach/creator.rb, line 331
def self.decode(record,processor)
  entry_detail = CustomOrderedHash.new
  entry_detail.insert(:record_type,record[0].chr)
  entry_detail.insert(:transaction_code, record[1,2])
  entry_detail.insert(:receiving_dfi_routing_num,record[3,8])
  entry_detail.insert(:rt_num_check,record[11,1])
  entry_detail.insert(:receiving_dfi_acc_num,record[12,17])
  entry_detail.insert(:amount,record[29,10])
  entry_detail.insert(:individual_id,record[39,15])
  entry_detail.insert(:individual_name,record[54,22])
  entry_detail.insert(:disc_data,record[76,2])
  entry_detail.insert(:addenda_record_indicator,record[78,1])
  entry_detail.insert(:@trace_number,record[79,15])
  processor.process(entry_detail)
end
new(options = {}) click to toggle source
# File lib/ach/creator.rb, line 313
def initialize(options = {})
  @record_type = '6'
  @transaction_code = options[:transaction_code]
  @receiving_dfi_routing_num = options[:receiving_dfi_routing_num]
  @receiving_dfi_acc_num = options[:receiving_dfi_acc_num]
  @rt_num_check = options[:rt_num_check]
  @amount = options[:amount]
  @individual_id = options[:individual_id]
  @individual_name = options[:individual_name]
  @routing_number = options[:routing_number]
  @trace_number = options[:trace_number]
  @ach_batch_id = options[:ach_batch_id]
  @settlement_id = options[:settlement_id]
  @db_entry_amount = options[:db_entry_amount]
  @write_to_file = options[:write_to_file]
  encode
end

Protected Instance Methods

encode() click to toggle source
# File lib/ach/creator.rb, line 349
def encode
  begin
    file = @record_type
    file << @transaction_code
    file << @receiving_dfi_routing_num.to_s.split(//).first(8).to_s
    file << @rt_num_check.to_s
    file << @receiving_dfi_acc_num.to_s.split(//).last(17).to_s.ljust(17)
    file << @amount.rjust(10,"0")
    file << @individual_id.to_s.ljust(15)
    file << @individual_name.slice(0..21).ljust(22)
    file << "".ljust(2)       #9. discretionary data
    file << "0"
    @trace_number = "000000000000000"+@trace_number.to_s
    file << @routing_number+@trace_number[-7,7]
    Ach::Creator.write_header(file,@write_to_file)
  rescue Exception => ex
    puts "Exception while writing ach file -- #{ex.class} #{ex.message} #{ex.backtrace.pp_s}"
  end
end