class DTA::Payments::Base

Public Class Methods

new(data = {}) click to toggle source
# File lib/payment_dta/payments/base.rb, line 9
def initialize(data = {})
  @data = CharacterConversionHash[data]
end

Public Instance Methods

account_to_be_debited() click to toggle source
# File lib/payment_dta/payments/base.rb, line 109
def account_to_be_debited
  @data[:account_to_be_debited].to_s.ljust(24)
end
amount() click to toggle source
# File lib/payment_dta/payments/base.rb, line 125
def amount
  @data[:payment_amount]
end
bank_payment_instructions() click to toggle source
# File lib/payment_dta/payments/base.rb, line 193
def bank_payment_instructions
  @data[:bank_payment_instructions].to_s.ljust(120)
end
beneficiary_address(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 153
def beneficiary_address(line_size=24)
  beneficiary_address_line1(line_size) + beneficiary_address_line2(line_size) + beneficiary_address_line3(line_size) + beneficiary_address_line4(line_size)
end
beneficiary_address_line1(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 157
def beneficiary_address_line1(line_size=24)
  @data[:beneficiary_address_line1].to_s.ljust(line_size)[0, line_size]
end
beneficiary_address_line2(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 161
def beneficiary_address_line2(line_size=24)
  @data[:beneficiary_address_line2].to_s.ljust(line_size)[0, line_size]
end
beneficiary_address_line3(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 165
def beneficiary_address_line3(line_size=24)
  @data[:beneficiary_address_line3].to_s.ljust(line_size)[0, line_size]
end
beneficiary_address_line4(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 169
def beneficiary_address_line4(line_size=24)
  @data[:beneficiary_address_line4].to_s.ljust(line_size)[0, line_size]
end
beneficiary_bank_account_number() click to toggle source
# File lib/payment_dta/payments/base.rb, line 201
def beneficiary_bank_account_number
  "/C/#{@data[:beneficiary_bank_account_number].to_s}".ljust(24)
end
beneficiary_bank_clearing_number() click to toggle source
# File lib/payment_dta/payments/base.rb, line 53
def beneficiary_bank_clearing_number
  @data[:beneficiary_bank_clearing_number].to_s.ljust(12,' ')
end
beneficiary_iban_number() click to toggle source
# File lib/payment_dta/payments/base.rb, line 233
def beneficiary_iban_number
  @data[:beneficiary_iban_number].to_s.ljust(34)
end
beneficiary_institution_address(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 209
def beneficiary_institution_address(line_size=24)
  if identification_bank_address == 'A'
    @data[:beneficiarys_institution_swift_address_].to_s.ljust(24) + ''.ljust(72)
  else
    beneficiary_institution_address_line1 + beneficiary_institution_address_line2 + beneficiary_institution_address_line3 + beneficiary_institution_address_line4
  end
end
beneficiary_institution_address_line1() click to toggle source
# File lib/payment_dta/payments/base.rb, line 217
def beneficiary_institution_address_line1
 @data[:beneficiary_institution_address_line1].to_s.ljust(24)
end
beneficiary_institution_address_line2() click to toggle source
# File lib/payment_dta/payments/base.rb, line 221
def beneficiary_institution_address_line2
 @data[:beneficiary_institution_address_line2].to_s.ljust(24)
end
beneficiary_institution_address_line3() click to toggle source
# File lib/payment_dta/payments/base.rb, line 225
def beneficiary_institution_address_line3
 @data[:beneficiary_institution_address_line3].to_s.ljust(24)
end
beneficiary_institution_address_line4() click to toggle source
# File lib/payment_dta/payments/base.rb, line 229
def beneficiary_institution_address_line4
 @data[:beneficiary_institution_address_line4].to_s.ljust(24)
end
beneficiary_institution_bank_account_number() click to toggle source
# File lib/payment_dta/payments/base.rb, line 205
def beneficiary_institution_bank_account_number
  "/C/#{@data[:beneficiary_institution_bank_account_number]}".ljust(24)
end
creation_date() click to toggle source
# File lib/payment_dta/payments/base.rb, line 61
def creation_date
  Date.today.strftime('%y%m%d')
end
data_file_sender_identification() click to toggle source
# File lib/payment_dta/payments/base.rb, line 69
def data_file_sender_identification
  if @data[:data_file_sender_identification].nil?
    raise 'No file identification'
  else
    @data[:data_file_sender_identification]
  end
end
entry_sequence_number() click to toggle source
# File lib/payment_dta/payments/base.rb, line 77
def entry_sequence_number
  @data[:entry_sequence_number].to_s.rjust(5,'0')
end
entry_sequence_number=(entry_sequence_number) click to toggle source
# File lib/payment_dta/payments/base.rb, line 81
def entry_sequence_number=(entry_sequence_number)
  @data[:entry_sequence_number] = entry_sequence_number
end
header() click to toggle source
# File lib/payment_dta/payments/base.rb, line 45
def header
  @header ||= build_header
end
identification_bank_address() click to toggle source
# File lib/payment_dta/payments/base.rb, line 197
def identification_bank_address
  @data[:identification_bank_address].to_s
end
identification_purpose() click to toggle source
# File lib/payment_dta/payments/base.rb, line 237
def identification_purpose
  @data[:identification_purpose].to_s[0,1]
end
issuer_identification() click to toggle source
# File lib/payment_dta/payments/base.rb, line 93
def issuer_identification
  @data[:issuer_identification].to_s
end
ordering_party_bank_clearing_number() click to toggle source
# File lib/payment_dta/payments/base.rb, line 65
def ordering_party_bank_clearing_number
  @data[:ordering_party_bank_clearing_number].to_s.ljust(7,' ')
end
ordering_partys_address(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 133
def ordering_partys_address(line_size=24)
  ordering_partys_address_line1(line_size) + ordering_partys_address_line2(line_size) + ordering_partys_address_line3(line_size) + ordering_partys_address_line4(line_size)
end
ordering_partys_address_line1(line_size = 24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 137
def ordering_partys_address_line1(line_size = 24)
  @data[:ordering_partys_address_line1].to_s.ljust(line_size)
end
ordering_partys_address_line2(line_size = 24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 141
def ordering_partys_address_line2(line_size = 24)
  @data[:ordering_partys_address_line2].to_s.ljust(line_size)
end
ordering_partys_address_line3(line_size = 24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 145
def ordering_partys_address_line3(line_size = 24)
  @data[:ordering_partys_address_line3].to_s.ljust(line_size)
end
ordering_partys_address_line4(line_size = 24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 149
def ordering_partys_address_line4(line_size = 24)
  @data[:ordering_partys_address_line4].to_s.ljust(line_size)
end
output_sequence_number() click to toggle source
# File lib/payment_dta/payments/base.rb, line 57
def output_sequence_number
  '00000'
end
payment_amount() click to toggle source
# File lib/payment_dta/payments/base.rb, line 113
def payment_amount
  payment_amount_value_date + payment_amount_currency + payment_amount_value
end
payment_amount_currency() click to toggle source
# File lib/payment_dta/payments/base.rb, line 121
def payment_amount_currency
  @data[:payment_amount_currency].to_s
end
payment_amount_value(size=12) click to toggle source
# File lib/payment_dta/payments/base.rb, line 129
def payment_amount_value(size=12)
  @data[:payment_amount].to_s.ljust(size).gsub('.', ',')
end
payment_amount_value_date() click to toggle source
# File lib/payment_dta/payments/base.rb, line 117
def payment_amount_value_date
  ''.ljust(6)
end
payment_type() click to toggle source
# File lib/payment_dta/payments/base.rb, line 85
def payment_type
  '1'
end
processing_flag() click to toggle source
# File lib/payment_dta/payments/base.rb, line 89
def processing_flag
  '0'
end
purpose() click to toggle source
# File lib/payment_dta/payments/base.rb, line 241
def purpose
  if identification_purpose == 'I'
    @data[:purpose_structured_reference_number].to_s.ljust(105)
  else
    @data[:purpose_line_1].to_s.ljust(35) + @data[:purpose_line_2].to_s.ljust(35) + @data[:purpose_line_3].to_s.ljust(35)
  end
end
reason_for_payment_message(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 173
def reason_for_payment_message(line_size=24)
  reason_for_payment_message_line1(line_size) + reason_for_payment_message_line2(line_size) + reason_for_payment_message_line3(line_size) + reason_for_payment_message_line4(line_size)
end
reason_for_payment_message_line1(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 177
def reason_for_payment_message_line1(line_size=24)
  @data[:reason_for_payment_message_line1].to_s.ljust(line_size)
end
reason_for_payment_message_line2(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 181
def reason_for_payment_message_line2(line_size=24)
  @data[:reason_for_payment_message_line2].to_s.ljust(line_size)
end
reason_for_payment_message_line3(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 185
def reason_for_payment_message_line3(line_size=24)
  @data[:reason_for_payment_message_line3].to_s.ljust(line_size)
end
reason_for_payment_message_line4(line_size=24) click to toggle source
# File lib/payment_dta/payments/base.rb, line 189
def reason_for_payment_message_line4(line_size=24)
  @data[:reason_for_payment_message_line4].to_s.ljust(line_size)
end
record() click to toggle source
# File lib/payment_dta/payments/base.rb, line 41
def record
  @record ||= segment1 + segment2 + segment3 + segment4 + segment5 + segment6
end
reference_number() click to toggle source
# File lib/payment_dta/payments/base.rb, line 105
def reference_number
  issuer_identification + transaction_number
end
requested_processing_date() click to toggle source
# File lib/payment_dta/payments/base.rb, line 49
def requested_processing_date
  @data[:requested_processing_date].to_s
end
rule_of_charge() click to toggle source
# File lib/payment_dta/payments/base.rb, line 249
def rule_of_charge
  @data[:rule_of_charge].to_s[0,1]
end
segment1() click to toggle source
# File lib/payment_dta/payments/base.rb, line 17
def segment1
  @segment1 ||= build_segment1
end
segment2() click to toggle source
# File lib/payment_dta/payments/base.rb, line 21
def segment2
  @segment2 ||= build_segment2
end
segment3() click to toggle source
# File lib/payment_dta/payments/base.rb, line 25
def segment3
  @segment3 ||= build_segment3
end
segment4() click to toggle source
# File lib/payment_dta/payments/base.rb, line 29
def segment4
  @segment4 ||= build_segment4
end
segment5() click to toggle source
# File lib/payment_dta/payments/base.rb, line 33
def segment5
  @segment5 ||= build_segment5
end
segment6() click to toggle source
# File lib/payment_dta/payments/base.rb, line 37
def segment6
  @segment6 ||= build_segment6
end
to_dta() click to toggle source
# File lib/payment_dta/payments/base.rb, line 13
def to_dta
  dta_string(record)
end
transaction_number() click to toggle source
# File lib/payment_dta/payments/base.rb, line 97
def transaction_number
  (@transaction_number || @data[:transaction_number]).to_s.ljust(11,'0')
end
transaction_number=(transaction_number) click to toggle source
# File lib/payment_dta/payments/base.rb, line 101
def transaction_number=(transaction_number)
  @transaction_number = transaction_number
end

Protected Instance Methods

build_header() click to toggle source
# File lib/payment_dta/payments/base.rb, line 279
def build_header
  requested_processing_date + beneficiary_bank_clearing_number + output_sequence_number + creation_date + ordering_party_bank_clearing_number + data_file_sender_identification + entry_sequence_number + transaction_type + payment_type + processing_flag
end
build_segment1() click to toggle source
# File lib/payment_dta/payments/base.rb, line 255
def build_segment1
  '01'+ header
end
build_segment2() click to toggle source
# File lib/payment_dta/payments/base.rb, line 259
def build_segment2
  '02'
end
build_segment3() click to toggle source
# File lib/payment_dta/payments/base.rb, line 263
def build_segment3
  '03'
end
build_segment4() click to toggle source
# File lib/payment_dta/payments/base.rb, line 267
def build_segment4
  '04'
end
build_segment5() click to toggle source
# File lib/payment_dta/payments/base.rb, line 271
def build_segment5
  '05'
end
build_segment6() click to toggle source
# File lib/payment_dta/payments/base.rb, line 275
def build_segment6
  '06'
end
reserve_field(length = 14) click to toggle source
# File lib/payment_dta/payments/base.rb, line 283
def reserve_field(length = 14)
 ''.ljust(length)
end