Class: DTA::Payments::Base

Inherits:
Object
  • Object
show all
Includes:
CharacterConversion
Defined in:
lib/payment_dta/payments/base.rb

Constant Summary

Constants included from CharacterConversion

CharacterConversion::CONVERSION_MAP_UTF8

Instance Method Summary collapse

Methods included from CharacterConversion

#dta_string, #encode_characters, #map_characters

Constructor Details

#initialize(data = {}) ⇒ Base

Returns a new instance of Base.



9
10
11
# File 'lib/payment_dta/payments/base.rb', line 9

def initialize(data = {})
  @data = CharacterConversionHash[data]
end

Instance Method Details

#account_to_be_debitedObject



109
110
111
# File 'lib/payment_dta/payments/base.rb', line 109

def 
  @data[:account_to_be_debited].to_s.ljust(24)
end

#amountObject



125
126
127
# File 'lib/payment_dta/payments/base.rb', line 125

def amount
  @data[:payment_amount]
end

#bank_payment_instructionsObject



193
194
195
# 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) ⇒ Object



153
154
155
# 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) ⇒ Object



157
158
159
# 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) ⇒ Object



161
162
163
# 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) ⇒ Object



165
166
167
# 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) ⇒ Object



169
170
171
# 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_numberObject



201
202
203
# File 'lib/payment_dta/payments/base.rb', line 201

def 
  "/C/#{@data[:beneficiary_bank_account_number].to_s}".ljust(24)
end

#beneficiary_bank_clearing_numberObject



53
54
55
# 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_numberObject



233
234
235
# 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) ⇒ Object



209
210
211
212
213
214
215
# 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_line1Object



217
218
219
# 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_line2Object



221
222
223
# 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_line3Object



225
226
227
# 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_line4Object



229
230
231
# 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_numberObject



205
206
207
# File 'lib/payment_dta/payments/base.rb', line 205

def 
  "/C/#{@data[:beneficiary_institution_bank_account_number]}".ljust(24)
end

#creation_dateObject



61
62
63
# File 'lib/payment_dta/payments/base.rb', line 61

def creation_date
  Date.today.strftime('%y%m%d')
end

#data_file_sender_identificationObject



69
70
71
72
73
74
75
# 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_numberObject



77
78
79
# 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) ⇒ Object



81
82
83
# File 'lib/payment_dta/payments/base.rb', line 81

def entry_sequence_number=(entry_sequence_number)
  @data[:entry_sequence_number] = entry_sequence_number
end

#headerObject



45
46
47
# File 'lib/payment_dta/payments/base.rb', line 45

def header
  @header ||= build_header
end

#identification_bank_addressObject



197
198
199
# File 'lib/payment_dta/payments/base.rb', line 197

def identification_bank_address
  @data[:identification_bank_address].to_s
end

#identification_purposeObject



237
238
239
# File 'lib/payment_dta/payments/base.rb', line 237

def identification_purpose
  @data[:identification_purpose].to_s[0,1]
end

#issuer_identificationObject



93
94
95
# File 'lib/payment_dta/payments/base.rb', line 93

def issuer_identification
  @data[:issuer_identification].to_s
end

#ordering_party_bank_clearing_numberObject



65
66
67
# 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) ⇒ Object



133
134
135
# 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) ⇒ Object



137
138
139
# 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) ⇒ Object



141
142
143
# 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) ⇒ Object



145
146
147
# 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) ⇒ Object



149
150
151
# 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_numberObject



57
58
59
# File 'lib/payment_dta/payments/base.rb', line 57

def output_sequence_number
  '00000'
end

#payment_amountObject



113
114
115
# 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_currencyObject



121
122
123
# 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) ⇒ Object



129
130
131
# 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_dateObject



117
118
119
# File 'lib/payment_dta/payments/base.rb', line 117

def payment_amount_value_date
  ''.ljust(6)
end

#payment_typeObject



85
86
87
# File 'lib/payment_dta/payments/base.rb', line 85

def payment_type
  '1'
end

#processing_flagObject



89
90
91
# File 'lib/payment_dta/payments/base.rb', line 89

def processing_flag
  '0'
end

#purposeObject



241
242
243
244
245
246
247
# 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) ⇒ Object



173
174
175
# 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) ⇒ Object



177
178
179
# 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) ⇒ Object



181
182
183
# 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) ⇒ Object



185
186
187
# 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) ⇒ Object



189
190
191
# 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

#recordObject



41
42
43
# File 'lib/payment_dta/payments/base.rb', line 41

def record
  @record ||= segment1 + segment2 + segment3 + segment4 + segment5 + segment6
end

#reference_numberObject



105
106
107
# File 'lib/payment_dta/payments/base.rb', line 105

def reference_number
  issuer_identification + transaction_number
end

#requested_processing_dateObject



49
50
51
# File 'lib/payment_dta/payments/base.rb', line 49

def requested_processing_date
  @data[:requested_processing_date].to_s
end

#rule_of_chargeObject



249
250
251
# File 'lib/payment_dta/payments/base.rb', line 249

def rule_of_charge
  @data[:rule_of_charge].to_s[0,1]
end

#segment1Object



17
18
19
# File 'lib/payment_dta/payments/base.rb', line 17

def segment1
  @segment1 ||= build_segment1
end

#segment2Object



21
22
23
# File 'lib/payment_dta/payments/base.rb', line 21

def segment2
  @segment2 ||= build_segment2
end

#segment3Object



25
26
27
# File 'lib/payment_dta/payments/base.rb', line 25

def segment3
  @segment3 ||= build_segment3
end

#segment4Object



29
30
31
# File 'lib/payment_dta/payments/base.rb', line 29

def segment4
  @segment4 ||= build_segment4
end

#segment5Object



33
34
35
# File 'lib/payment_dta/payments/base.rb', line 33

def segment5
  @segment5 ||= build_segment5
end

#segment6Object



37
38
39
# File 'lib/payment_dta/payments/base.rb', line 37

def segment6
  @segment6 ||= build_segment6
end

#to_dtaObject



13
14
15
# File 'lib/payment_dta/payments/base.rb', line 13

def to_dta
  dta_string(record)
end

#transaction_numberObject



97
98
99
# 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) ⇒ Object



101
102
103
# File 'lib/payment_dta/payments/base.rb', line 101

def transaction_number=(transaction_number)
  @transaction_number = transaction_number
end