Class: DTA::Payments::Base
Constant Summary
CharacterConversion::CONVERSION_MAP_UTF8
Instance Method Summary
collapse
#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_debited ⇒ Object
109
110
111
|
# 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 ⇒ Object
125
126
127
|
# File 'lib/payment_dta/payments/base.rb', line 125
def amount
@data[:payment_amount]
end
|
#bank_payment_instructions ⇒ Object
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_number ⇒ Object
201
202
203
|
# 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 ⇒ Object
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_number ⇒ Object
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_line1 ⇒ Object
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_line2 ⇒ Object
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_line3 ⇒ Object
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_line4 ⇒ Object
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_number ⇒ Object
205
206
207
|
# 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 ⇒ Object
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_identification ⇒ Object
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_number ⇒ Object
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
|
45
46
47
|
# File 'lib/payment_dta/payments/base.rb', line 45
def
@header ||=
end
|
#identification_bank_address ⇒ Object
197
198
199
|
# File 'lib/payment_dta/payments/base.rb', line 197
def identification_bank_address
@data[:identification_bank_address].to_s
end
|
#identification_purpose ⇒ Object
237
238
239
|
# File 'lib/payment_dta/payments/base.rb', line 237
def identification_purpose
@data[:identification_purpose].to_s[0,1]
end
|
#issuer_identification ⇒ Object
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_number ⇒ Object
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_number ⇒ Object
57
58
59
|
# File 'lib/payment_dta/payments/base.rb', line 57
def output_sequence_number
'00000'
end
|
#payment_amount ⇒ Object
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_currency ⇒ Object
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_date ⇒ Object
117
118
119
|
# File 'lib/payment_dta/payments/base.rb', line 117
def payment_amount_value_date
''.ljust(6)
end
|
#payment_type ⇒ Object
85
86
87
|
# File 'lib/payment_dta/payments/base.rb', line 85
def payment_type
'1'
end
|
#processing_flag ⇒ Object
89
90
91
|
# File 'lib/payment_dta/payments/base.rb', line 89
def processing_flag
'0'
end
|
#purpose ⇒ Object
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
|
#record ⇒ Object
41
42
43
|
# File 'lib/payment_dta/payments/base.rb', line 41
def record
@record ||= segment1 + segment2 + segment3 + segment4 + segment5 + segment6
end
|
#reference_number ⇒ Object
105
106
107
|
# File 'lib/payment_dta/payments/base.rb', line 105
def reference_number
issuer_identification + transaction_number
end
|
#requested_processing_date ⇒ Object
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_charge ⇒ Object
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
|
#segment1 ⇒ Object
17
18
19
|
# File 'lib/payment_dta/payments/base.rb', line 17
def segment1
@segment1 ||= build_segment1
end
|
#segment2 ⇒ Object
21
22
23
|
# File 'lib/payment_dta/payments/base.rb', line 21
def segment2
@segment2 ||= build_segment2
end
|
#segment3 ⇒ Object
25
26
27
|
# File 'lib/payment_dta/payments/base.rb', line 25
def segment3
@segment3 ||= build_segment3
end
|
#segment4 ⇒ Object
29
30
31
|
# File 'lib/payment_dta/payments/base.rb', line 29
def segment4
@segment4 ||= build_segment4
end
|
#segment5 ⇒ Object
33
34
35
|
# File 'lib/payment_dta/payments/base.rb', line 33
def segment5
@segment5 ||= build_segment5
end
|
#segment6 ⇒ Object
37
38
39
|
# File 'lib/payment_dta/payments/base.rb', line 37
def segment6
@segment6 ||= build_segment6
end
|
#to_dta ⇒ Object
13
14
15
|
# File 'lib/payment_dta/payments/base.rb', line 13
def to_dta
dta_string(record)
end
|
#transaction_number ⇒ Object
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
|