cfonb 0.0.7 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/cfonb/line_parser/base.rb +1 -1
- data/lib/cfonb/line_parser/operation.rb +1 -1
- data/lib/cfonb/line_parser/{operation_detail.rb → operation_details.rb} +1 -1
- data/lib/cfonb/operation.rb +6 -1
- data/lib/cfonb/operation_details/base.rb +32 -0
- data/lib/cfonb/operation_details/fee.rb +18 -0
- data/lib/cfonb/operation_details/ibe.rb +16 -0
- data/lib/cfonb/operation_details/ipy.rb +16 -0
- data/lib/cfonb/operation_details/lc2.rb +15 -0
- data/lib/cfonb/operation_details/lcc.rb +15 -0
- data/lib/cfonb/operation_details/lcs.rb +15 -0
- data/lib/cfonb/operation_details/lib.rb +15 -0
- data/lib/cfonb/operation_details/mmo.rb +26 -0
- data/lib/cfonb/operation_details/nbe.rb +15 -0
- data/lib/cfonb/operation_details/nbu.rb +15 -0
- data/lib/cfonb/operation_details/npo.rb +15 -0
- data/lib/cfonb/operation_details/npy.rb +15 -0
- data/lib/cfonb/operation_details/rcn.rb +18 -0
- data/lib/cfonb/operation_details/ref.rb +17 -0
- data/lib/cfonb/operation_details/unknown.rb +23 -0
- data/lib/cfonb/{operation_detail.rb → operation_details.rb} +5 -3
- data/lib/cfonb.rb +18 -12
- data/spec/cfonb/line_parser/{operation_detail_spec.rb → operation_details_spec.rb} +1 -1
- data/spec/cfonb/operation_spec.rb +120 -16
- data/spec/cfonb/parser_spec.rb +125 -41
- metadata +23 -17
- data/lib/cfonb/operation_detail/fee.rb +0 -18
- data/lib/cfonb/operation_detail/lc2.rb +0 -13
- data/lib/cfonb/operation_detail/lcc.rb +0 -13
- data/lib/cfonb/operation_detail/lcs.rb +0 -13
- data/lib/cfonb/operation_detail/lib.rb +0 -13
- data/lib/cfonb/operation_detail/mmo.rb +0 -28
- data/lib/cfonb/operation_detail/nbe.rb +0 -15
- data/lib/cfonb/operation_detail/npy.rb +0 -15
- data/lib/cfonb/operation_detail/rcn.rb +0 -22
- data/lib/cfonb/operation_detail/ref.rb +0 -20
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'cfonb'
|
4
|
+
require 'securerandom'
|
4
5
|
require 'ostruct'
|
5
6
|
|
6
7
|
describe CFONB::Operation do
|
@@ -36,6 +37,9 @@ describe CFONB::Operation do
|
|
36
37
|
|
37
38
|
expect(operation.label).to eq(<<~TXT.strip)
|
38
39
|
A random operation label
|
40
|
+
TXT
|
41
|
+
|
42
|
+
expect(operation.details.free_label).to eq(<<~TXT.strip)
|
39
43
|
Extra label
|
40
44
|
TXT
|
41
45
|
end
|
@@ -49,6 +53,9 @@ describe CFONB::Operation do
|
|
49
53
|
|
50
54
|
expect(operation.label).to eq(<<~TXT.strip)
|
51
55
|
A random operation label
|
56
|
+
TXT
|
57
|
+
|
58
|
+
expect(operation.details.unstructured_label).to eq(<<~TXT.strip)
|
52
59
|
Extra label
|
53
60
|
TXT
|
54
61
|
end
|
@@ -62,6 +69,9 @@ describe CFONB::Operation do
|
|
62
69
|
|
63
70
|
expect(operation.label).to eq(<<~TXT.strip)
|
64
71
|
A random operation label
|
72
|
+
TXT
|
73
|
+
|
74
|
+
expect(operation.details.unstructured_label_2).to eq(<<~TXT.strip)
|
65
75
|
Extra label
|
66
76
|
TXT
|
67
77
|
end
|
@@ -75,6 +85,9 @@ describe CFONB::Operation do
|
|
75
85
|
|
76
86
|
expect(operation.label).to eq(<<~TXT.strip)
|
77
87
|
A random operation label
|
88
|
+
TXT
|
89
|
+
|
90
|
+
expect(operation.details.structured_label).to eq(<<~TXT.strip)
|
78
91
|
Extra label
|
79
92
|
TXT
|
80
93
|
end
|
@@ -86,9 +99,9 @@ describe CFONB::Operation do
|
|
86
99
|
it 'Adds the original currency information' do
|
87
100
|
operation.merge_detail(detail)
|
88
101
|
|
89
|
-
expect(operation).to have_attributes(
|
102
|
+
expect(operation.details).to have_attributes(
|
90
103
|
original_currency: 'USD',
|
91
|
-
original_amount:
|
104
|
+
original_amount: 12.34,
|
92
105
|
exchange_rate: nil,
|
93
106
|
)
|
94
107
|
end
|
@@ -99,9 +112,9 @@ describe CFONB::Operation do
|
|
99
112
|
it 'Adds the original currency information' do
|
100
113
|
operation.merge_detail(detail)
|
101
114
|
|
102
|
-
expect(operation).to have_attributes(
|
115
|
+
expect(operation.details).to have_attributes(
|
103
116
|
original_currency: 'USD',
|
104
|
-
original_amount:
|
117
|
+
original_amount: 8358,
|
105
118
|
exchange_rate: 1.077,
|
106
119
|
)
|
107
120
|
end
|
@@ -112,10 +125,9 @@ describe CFONB::Operation do
|
|
112
125
|
|
113
126
|
it 'Adds the original currency information' do
|
114
127
|
operation.merge_detail(detail)
|
115
|
-
|
116
|
-
expect(operation).to have_attributes(
|
128
|
+
expect(operation.details).to have_attributes(
|
117
129
|
original_currency: 'EUR',
|
118
|
-
original_amount:
|
130
|
+
original_amount: 18_756.25,
|
119
131
|
exchange_rate: nil,
|
120
132
|
)
|
121
133
|
end
|
@@ -128,7 +140,7 @@ describe CFONB::Operation do
|
|
128
140
|
it 'Adds the debtor information' do
|
129
141
|
operation.merge_detail(detail)
|
130
142
|
|
131
|
-
expect(operation).to have_attributes(debtor: 'Patrick')
|
143
|
+
expect(operation.details).to have_attributes(debtor: 'Patrick')
|
132
144
|
end
|
133
145
|
end
|
134
146
|
|
@@ -138,7 +150,7 @@ describe CFONB::Operation do
|
|
138
150
|
it 'Adds the creditor information' do
|
139
151
|
operation.merge_detail(detail)
|
140
152
|
|
141
|
-
expect(operation).to have_attributes(creditor: 'Jean-Pierre')
|
153
|
+
expect(operation.details).to have_attributes(creditor: 'Jean-Pierre')
|
142
154
|
end
|
143
155
|
end
|
144
156
|
|
@@ -151,11 +163,11 @@ describe CFONB::Operation do
|
|
151
163
|
)
|
152
164
|
end
|
153
165
|
|
154
|
-
it 'adds the reference information' do
|
166
|
+
it 'adds the client reference information' do
|
155
167
|
operation.merge_detail(detail)
|
156
168
|
|
157
|
-
expect(operation.
|
158
|
-
expect(operation.purpose).to eq('TICKET RESTO')
|
169
|
+
expect(operation.details.client_reference).to eq('SWILE-CMD-TR-YPDHMA')
|
170
|
+
expect(operation.details.purpose).to eq('TICKET RESTO')
|
159
171
|
end
|
160
172
|
end
|
161
173
|
|
@@ -168,10 +180,10 @@ describe CFONB::Operation do
|
|
168
180
|
)
|
169
181
|
end
|
170
182
|
|
171
|
-
it 'adds the reference information' do
|
183
|
+
it 'adds the operation reference information' do
|
172
184
|
operation.merge_detail(detail)
|
173
185
|
|
174
|
-
expect(operation.
|
186
|
+
expect(operation.details.operation_reference).to eq('PENNYLANE B13A93908C36C82DF5C319/1')
|
175
187
|
end
|
176
188
|
end
|
177
189
|
|
@@ -187,8 +199,100 @@ describe CFONB::Operation do
|
|
187
199
|
it 'adds the fee information' do
|
188
200
|
operation.merge_detail(detail)
|
189
201
|
|
190
|
-
expect(operation.fee_currency).to eq('EUR')
|
191
|
-
expect(operation.fee).to eq(7.4)
|
202
|
+
expect(operation.details.fee_currency).to eq('EUR')
|
203
|
+
expect(operation.details.fee).to eq(7.4)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
context 'with a IPY detail' do
|
208
|
+
let(:debtor_identifier) { SecureRandom.alphanumeric(35) }
|
209
|
+
let(:debtor_identifier_type) { SecureRandom.alphanumeric(35) }
|
210
|
+
|
211
|
+
let(:detail) do
|
212
|
+
OpenStruct.new(
|
213
|
+
body: "0530004411001871EUR2 0001016255614090823 IPY#{debtor_identifier}#{debtor_identifier_type}",
|
214
|
+
detail_code: 'IPY',
|
215
|
+
detail: "#{debtor_identifier}#{debtor_identifier_type}",
|
216
|
+
)
|
217
|
+
end
|
218
|
+
|
219
|
+
it 'adds the debtor_identifier' do
|
220
|
+
operation.merge_detail(detail)
|
221
|
+
|
222
|
+
expect(operation.details.debtor_identifier).to eq(debtor_identifier)
|
223
|
+
expect(operation.details.debtor_identifier_type).to eq(debtor_identifier_type)
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
context 'with a IBE detail' do
|
228
|
+
let(:creditor_identifier) { SecureRandom.alphanumeric(35) }
|
229
|
+
let(:creditor_identifier_type) { SecureRandom.alphanumeric(35) }
|
230
|
+
|
231
|
+
let(:detail) do
|
232
|
+
OpenStruct.new(
|
233
|
+
detail_code: 'IBE',
|
234
|
+
detail: "#{creditor_identifier}#{creditor_identifier_type}",
|
235
|
+
)
|
236
|
+
end
|
237
|
+
|
238
|
+
it 'adds the IBE information' do
|
239
|
+
operation.merge_detail(detail)
|
240
|
+
|
241
|
+
expect(operation.details.creditor_identifier).to eq(creditor_identifier)
|
242
|
+
expect(operation.details.creditor_identifier_type).to eq(creditor_identifier_type)
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
246
|
+
context 'with a NPO detail' do
|
247
|
+
let(:detail) do
|
248
|
+
OpenStruct.new(
|
249
|
+
detail_code: 'NPO',
|
250
|
+
detail: 'Patrick ',
|
251
|
+
)
|
252
|
+
end
|
253
|
+
|
254
|
+
it 'adds the NPO information' do
|
255
|
+
operation.merge_detail(detail)
|
256
|
+
|
257
|
+
expect(operation.details.ultimate_debtor).to eq('Patrick')
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
context 'with a NBU detail' do
|
262
|
+
let(:detail) do
|
263
|
+
OpenStruct.new(
|
264
|
+
detail_code: 'NBU',
|
265
|
+
detail: 'Patrick ',
|
266
|
+
)
|
267
|
+
end
|
268
|
+
|
269
|
+
it 'adds the NBU information' do
|
270
|
+
operation.merge_detail(detail)
|
271
|
+
|
272
|
+
expect(operation.details.ultimate_creditor).to eq('Patrick')
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
276
|
+
context 'with an unknown detail' do
|
277
|
+
let(:detail) do
|
278
|
+
OpenStruct.new(
|
279
|
+
body: '0530004411001871EUR2 0001016255614090823 AAAEUR200000000000740',
|
280
|
+
detail_code: 'AAA',
|
281
|
+
detail: 'EUR200000000000740',
|
282
|
+
)
|
283
|
+
end
|
284
|
+
|
285
|
+
it 'adds the detail to the unknown details hash' do
|
286
|
+
operation.merge_detail(detail)
|
287
|
+
|
288
|
+
expect(operation.details.unknown).to eq({ 'AAA' => 'EUR200000000000740' })
|
289
|
+
end
|
290
|
+
|
291
|
+
it 'updates the current details in case of duplicated codes' do
|
292
|
+
operation.merge_detail(detail)
|
293
|
+
operation.merge_detail(detail)
|
294
|
+
|
295
|
+
expect(operation.details.unknown).to eq({ 'AAA' => "EUR200000000000740\nEUR200000000000740" })
|
192
296
|
end
|
193
297
|
end
|
194
298
|
end
|
data/spec/cfonb/parser_spec.rb
CHANGED
@@ -35,17 +35,25 @@ describe CFONB::Parser do
|
|
35
35
|
exoneration_code: '0',
|
36
36
|
interbank_code: 'B1',
|
37
37
|
internal_code: '9162',
|
38
|
-
label:
|
38
|
+
label: 'PRLV SEPA TEST CABINET',
|
39
39
|
number: 0,
|
40
|
-
reference: 'REFERENCE - OTHER REFERENCE',
|
41
|
-
purpose: 'PURPOSE',
|
42
40
|
rejection_code: '',
|
43
41
|
unavailability_code: '0',
|
44
42
|
value_date: Date.new(2019, 5, 16),
|
43
|
+
reference: '',
|
44
|
+
)
|
45
|
+
expect(statements[0].operations[0].details).to have_attributes(
|
46
|
+
free_label: "MENSUEAUHTR13133\nMENSUEAUHTR13DUP",
|
45
47
|
original_currency: nil,
|
46
48
|
original_amount: nil,
|
47
49
|
exchange_rate: nil,
|
50
|
+
purpose: 'PURPOSE',
|
48
51
|
debtor: 'INTERNET SFR',
|
52
|
+
unknown: {
|
53
|
+
'AAA' => "INTERNETA AAA\nINTERNETA ABB",
|
54
|
+
'BBB' => 'INTERNETE BBB',
|
55
|
+
'CCC' => 'INTERNETI CCC',
|
56
|
+
},
|
49
57
|
)
|
50
58
|
|
51
59
|
expect(statements[0].operations[1]).to have_attributes(
|
@@ -57,14 +65,19 @@ describe CFONB::Parser do
|
|
57
65
|
internal_code: '9162',
|
58
66
|
label: 'VIR SEPA DEMONSTRATION',
|
59
67
|
number: 0,
|
60
|
-
reference: 'REFERENCE',
|
61
68
|
rejection_code: '',
|
62
69
|
unavailability_code: '0',
|
63
70
|
value_date: Date.new(2019, 5, 16),
|
71
|
+
reference: 'REFERENCE',
|
72
|
+
)
|
73
|
+
|
74
|
+
expect(statements[0].operations[1].details).to have_attributes(
|
75
|
+
debtor: 'ELEC ERDF',
|
76
|
+
free_label: nil,
|
64
77
|
original_currency: nil,
|
65
78
|
original_amount: nil,
|
66
79
|
exchange_rate: nil,
|
67
|
-
|
80
|
+
purpose: nil,
|
68
81
|
)
|
69
82
|
|
70
83
|
expect(statements[0].operations[2]).to have_attributes(
|
@@ -76,10 +89,15 @@ describe CFONB::Parser do
|
|
76
89
|
internal_code: '0117',
|
77
90
|
label: 'F COMMISSION D INTERVENTION',
|
78
91
|
number: 0,
|
79
|
-
reference: '',
|
80
92
|
rejection_code: '',
|
81
93
|
unavailability_code: '0',
|
82
94
|
value_date: Date.new(2019, 5, 15),
|
95
|
+
reference: '',
|
96
|
+
)
|
97
|
+
|
98
|
+
expect(statements[0].operations[2].details).to have_attributes(
|
99
|
+
free_label: nil,
|
100
|
+
purpose: nil,
|
83
101
|
original_currency: nil,
|
84
102
|
original_amount: nil,
|
85
103
|
exchange_rate: nil,
|
@@ -105,15 +123,21 @@ describe CFONB::Parser do
|
|
105
123
|
exoneration_code: '',
|
106
124
|
interbank_code: 'A3',
|
107
125
|
internal_code: '0158',
|
108
|
-
label:
|
126
|
+
label: 'PRLV SEPA GROUPAMA CEN',
|
109
127
|
number: 0,
|
110
|
-
reference: '',
|
111
128
|
rejection_code: '',
|
112
129
|
unavailability_code: '0',
|
113
130
|
value_date: Date.new(2019, 5, 15),
|
131
|
+
reference: '',
|
132
|
+
)
|
133
|
+
|
134
|
+
expect(statements[1].operations[0].details).to have_attributes(
|
135
|
+
free_label: 'P051928612 22793301700040',
|
114
136
|
original_currency: nil,
|
115
137
|
original_amount: nil,
|
116
138
|
exchange_rate: nil,
|
139
|
+
purpose: nil,
|
140
|
+
debtor: nil,
|
117
141
|
)
|
118
142
|
|
119
143
|
expect(statements[1].operations[1]).to have_attributes(
|
@@ -125,13 +149,19 @@ describe CFONB::Parser do
|
|
125
149
|
internal_code: '0337',
|
126
150
|
label: 'F FRAIS PRLV IMP 97 49EUR',
|
127
151
|
number: 0,
|
128
|
-
reference: '',
|
129
152
|
rejection_code: '',
|
130
153
|
unavailability_code: '0',
|
131
154
|
value_date: Date.new(2019, 5, 15),
|
155
|
+
reference: '',
|
156
|
+
)
|
157
|
+
|
158
|
+
expect(statements[1].operations[1].details).to have_attributes(
|
159
|
+
free_label: nil,
|
132
160
|
original_currency: nil,
|
133
161
|
original_amount: nil,
|
134
162
|
exchange_rate: nil,
|
163
|
+
purpose: nil,
|
164
|
+
debtor: nil,
|
135
165
|
)
|
136
166
|
|
137
167
|
expect(statements[1].operations[2]).to have_attributes(
|
@@ -143,13 +173,19 @@ describe CFONB::Parser do
|
|
143
173
|
internal_code: '0117',
|
144
174
|
label: 'F COMMISSION D INTERVENTION',
|
145
175
|
number: 0,
|
146
|
-
reference: '',
|
147
176
|
rejection_code: '',
|
148
177
|
unavailability_code: '0',
|
149
178
|
value_date: Date.new(2019, 5, 16),
|
179
|
+
reference: '',
|
180
|
+
)
|
181
|
+
|
182
|
+
expect(statements[1].operations[2].details).to have_attributes(
|
183
|
+
free_label: nil,
|
150
184
|
original_currency: nil,
|
151
185
|
original_amount: nil,
|
152
186
|
exchange_rate: nil,
|
187
|
+
purpose: nil,
|
188
|
+
debtor: nil,
|
153
189
|
)
|
154
190
|
end
|
155
191
|
end
|
@@ -232,18 +268,22 @@ describe CFONB::Parser do
|
|
232
268
|
exoneration_code: '0',
|
233
269
|
interbank_code: 'B1',
|
234
270
|
internal_code: '9162',
|
235
|
-
label:
|
271
|
+
label: 'PRLV SEPA TEST CABINET',
|
236
272
|
number: 0,
|
237
|
-
reference: 'REFERENCE - OTHER REFERENCE',
|
238
273
|
rejection_code: '',
|
239
274
|
unavailability_code: '0',
|
240
275
|
value_date: Date.new(2019, 5, 16),
|
276
|
+
)
|
277
|
+
|
278
|
+
expect(statements[0].operations[0].details).to have_attributes(
|
279
|
+
operation_reference: 'REFERENCE',
|
280
|
+
free_label: "MENSUEAUHTR13133\nMENSUEAUHTR13DUP",
|
281
|
+
debtor: 'INTERNET SFR',
|
282
|
+
client_reference: 'OTHER REFERENCE',
|
241
283
|
original_currency: nil,
|
242
284
|
original_amount: nil,
|
243
285
|
exchange_rate: nil,
|
244
|
-
debtor: 'INTERNET SFR',
|
245
286
|
)
|
246
|
-
|
247
287
|
expect(statements[0].operations[1]).to have_attributes(
|
248
288
|
amount: -10.7,
|
249
289
|
currency: 'EUR',
|
@@ -253,10 +293,13 @@ describe CFONB::Parser do
|
|
253
293
|
internal_code: '9162',
|
254
294
|
label: 'VIR SEPA DEMONSTRATION',
|
255
295
|
number: 0,
|
256
|
-
reference: 'REFERENCE',
|
257
296
|
rejection_code: '',
|
258
297
|
unavailability_code: '0',
|
259
298
|
value_date: Date.new(2019, 5, 16),
|
299
|
+
reference: 'REFERENCE',
|
300
|
+
)
|
301
|
+
|
302
|
+
expect(statements[0].operations[1].details).to have_attributes(
|
260
303
|
original_currency: nil,
|
261
304
|
original_amount: nil,
|
262
305
|
exchange_rate: nil,
|
@@ -272,10 +315,13 @@ describe CFONB::Parser do
|
|
272
315
|
internal_code: '0117',
|
273
316
|
label: 'F COMMISSION D INTERVENTION',
|
274
317
|
number: 0,
|
275
|
-
reference: '',
|
276
318
|
rejection_code: '',
|
277
319
|
unavailability_code: '0',
|
278
320
|
value_date: Date.new(2019, 5, 15),
|
321
|
+
reference: '',
|
322
|
+
)
|
323
|
+
|
324
|
+
expect(statements[0].operations[2].details).to have_attributes(
|
279
325
|
original_currency: nil,
|
280
326
|
original_amount: nil,
|
281
327
|
exchange_rate: nil,
|
@@ -301,12 +347,16 @@ describe CFONB::Parser do
|
|
301
347
|
exoneration_code: '',
|
302
348
|
interbank_code: 'A3',
|
303
349
|
internal_code: '0158',
|
304
|
-
label:
|
350
|
+
label: 'PRLV SEPA GROUPAMA CEN',
|
305
351
|
number: 0,
|
306
|
-
reference: '',
|
307
352
|
rejection_code: '',
|
308
353
|
unavailability_code: '0',
|
309
354
|
value_date: Date.new(2019, 5, 15),
|
355
|
+
reference: '',
|
356
|
+
)
|
357
|
+
|
358
|
+
expect(statements[1].operations[0].details).to have_attributes(
|
359
|
+
free_label: 'P051928612 22793301700040',
|
310
360
|
original_currency: nil,
|
311
361
|
original_amount: nil,
|
312
362
|
exchange_rate: nil,
|
@@ -321,10 +371,13 @@ describe CFONB::Parser do
|
|
321
371
|
internal_code: '0337',
|
322
372
|
label: 'F FRAIS PRLV IMP 97 49EUR',
|
323
373
|
number: 0,
|
324
|
-
reference: '',
|
325
374
|
rejection_code: '',
|
326
375
|
unavailability_code: '0',
|
327
376
|
value_date: Date.new(2019, 5, 15),
|
377
|
+
reference: '',
|
378
|
+
)
|
379
|
+
|
380
|
+
expect(statements[1].operations[1].details).to have_attributes(
|
328
381
|
original_currency: nil,
|
329
382
|
original_amount: nil,
|
330
383
|
exchange_rate: nil,
|
@@ -339,10 +392,13 @@ describe CFONB::Parser do
|
|
339
392
|
internal_code: '0117',
|
340
393
|
label: 'F COMMISSION D INTERVENTION',
|
341
394
|
number: 0,
|
342
|
-
reference: '',
|
343
395
|
rejection_code: '',
|
344
396
|
unavailability_code: '0',
|
345
397
|
value_date: Date.new(2019, 5, 16),
|
398
|
+
reference: '',
|
399
|
+
)
|
400
|
+
|
401
|
+
expect(statements[1].operations[2].details).to have_attributes(
|
346
402
|
original_currency: nil,
|
347
403
|
original_amount: nil,
|
348
404
|
exchange_rate: nil,
|
@@ -365,14 +421,17 @@ describe CFONB::Parser do
|
|
365
421
|
internal_code: '9162',
|
366
422
|
label: 'VIR SEPA DEMONSTRATION',
|
367
423
|
number: 0,
|
368
|
-
reference: '',
|
369
424
|
rejection_code: '',
|
370
425
|
unavailability_code: '0',
|
371
426
|
value_date: Date.new(2019, 5, 16),
|
427
|
+
reference: '',
|
428
|
+
)
|
429
|
+
|
430
|
+
expect(statements[0].operations[0].details).to have_attributes(
|
431
|
+
debtor: 'ELEC ERDF',
|
372
432
|
original_currency: nil,
|
373
433
|
original_amount: nil,
|
374
434
|
exchange_rate: nil,
|
375
|
-
debtor: 'ELEC ERDF',
|
376
435
|
)
|
377
436
|
end
|
378
437
|
end
|
@@ -392,14 +451,16 @@ describe CFONB::Parser do
|
|
392
451
|
internal_code: '9162',
|
393
452
|
label: 'VIR SEPA DEMONSTRATION',
|
394
453
|
number: 0,
|
395
|
-
reference: '',
|
396
454
|
rejection_code: '',
|
397
455
|
unavailability_code: '0',
|
398
456
|
value_date: Date.new(2019, 5, 16),
|
457
|
+
reference: '',
|
458
|
+
)
|
459
|
+
expect(statements[0].operations[0].details).to have_attributes(
|
460
|
+
debtor: 'ELEC ERDF',
|
399
461
|
original_currency: nil,
|
400
462
|
original_amount: nil,
|
401
463
|
exchange_rate: nil,
|
402
|
-
debtor: 'ELEC ERDF',
|
403
464
|
)
|
404
465
|
end
|
405
466
|
end
|
@@ -419,14 +480,16 @@ describe CFONB::Parser do
|
|
419
480
|
internal_code: '9162',
|
420
481
|
label: 'VIR SEPA DEMONSTRATION',
|
421
482
|
number: 0,
|
422
|
-
reference: '',
|
423
483
|
rejection_code: '',
|
424
484
|
unavailability_code: '0',
|
425
485
|
value_date: Date.new(2019, 5, 16),
|
486
|
+
reference: '',
|
487
|
+
)
|
488
|
+
expect(statements[0].operations[0].details).to have_attributes(
|
489
|
+
debtor: 'ELEC ERDF',
|
426
490
|
original_currency: nil,
|
427
491
|
original_amount: nil,
|
428
492
|
exchange_rate: nil,
|
429
|
-
debtor: 'ELEC ERDF',
|
430
493
|
)
|
431
494
|
end
|
432
495
|
end
|
@@ -446,14 +509,16 @@ describe CFONB::Parser do
|
|
446
509
|
internal_code: '9162',
|
447
510
|
label: 'VIR SEPA DEMONSTRATION',
|
448
511
|
number: 0,
|
449
|
-
reference: '',
|
450
512
|
rejection_code: '',
|
451
513
|
unavailability_code: '0',
|
452
514
|
value_date: Date.new(2019, 5, 16),
|
515
|
+
reference: '',
|
516
|
+
)
|
517
|
+
expect(statements[0].operations[0].details).to have_attributes(
|
518
|
+
debtor: 'ELEC ERDF',
|
453
519
|
original_currency: nil,
|
454
520
|
original_amount: nil,
|
455
521
|
exchange_rate: nil,
|
456
|
-
debtor: 'ELEC ERDF',
|
457
522
|
)
|
458
523
|
expect(statements[0].operations[1]).to have_attributes(
|
459
524
|
amount: -7.9,
|
@@ -464,10 +529,12 @@ describe CFONB::Parser do
|
|
464
529
|
internal_code: '0117',
|
465
530
|
label: 'F COMMISSION D INTERVENTION',
|
466
531
|
number: 0,
|
467
|
-
reference: '',
|
468
532
|
rejection_code: '',
|
469
533
|
unavailability_code: '0',
|
470
534
|
value_date: Date.new(2019, 5, 16),
|
535
|
+
reference: '',
|
536
|
+
)
|
537
|
+
expect(statements[0].operations[1].details).to have_attributes(
|
471
538
|
original_currency: nil,
|
472
539
|
original_amount: nil,
|
473
540
|
exchange_rate: nil,
|
@@ -503,16 +570,20 @@ describe CFONB::Parser do
|
|
503
570
|
exoneration_code: '0',
|
504
571
|
interbank_code: 'B1',
|
505
572
|
internal_code: '9162',
|
506
|
-
label:
|
573
|
+
label: 'PRLV SEPA TEST CABINET',
|
507
574
|
number: 0,
|
508
|
-
reference: 'REFERENCE - OTHER REFERENCE',
|
509
575
|
rejection_code: '',
|
510
576
|
unavailability_code: '0',
|
511
577
|
value_date: Date.new(2019, 5, 16),
|
578
|
+
)
|
579
|
+
expect(operation.details).to have_attributes(
|
580
|
+
operation_reference: 'REFERENCE',
|
581
|
+
client_reference: 'OTHER REFERENCE',
|
582
|
+
debtor: 'INTERNET SFR',
|
583
|
+
free_label: 'MENSUEAUHTR13133',
|
512
584
|
original_currency: nil,
|
513
585
|
original_amount: nil,
|
514
586
|
exchange_rate: nil,
|
515
|
-
debtor: 'INTERNET SFR',
|
516
587
|
)
|
517
588
|
end
|
518
589
|
end
|
@@ -563,16 +634,20 @@ describe CFONB::Parser do
|
|
563
634
|
exoneration_code: '0',
|
564
635
|
interbank_code: 'B1',
|
565
636
|
internal_code: '9162',
|
566
|
-
label:
|
637
|
+
label: 'PRLV SEPA TEST CABINET',
|
567
638
|
number: 0,
|
568
|
-
reference: 'REFERENCE - OTHER REFERENCE',
|
569
639
|
rejection_code: '',
|
570
640
|
unavailability_code: '0',
|
571
641
|
value_date: Date.new(2019, 5, 16),
|
642
|
+
)
|
643
|
+
expect(operation.details).to have_attributes(
|
644
|
+
operation_reference: 'REFERENCE',
|
645
|
+
client_reference: 'OTHER REFERENCE',
|
646
|
+
free_label: 'MENSUEAUHTR13133',
|
647
|
+
debtor: 'INTERNET SFR',
|
572
648
|
original_currency: nil,
|
573
649
|
original_amount: nil,
|
574
650
|
exchange_rate: nil,
|
575
|
-
debtor: 'INTERNET SFR',
|
576
651
|
)
|
577
652
|
end
|
578
653
|
end
|
@@ -588,16 +663,20 @@ describe CFONB::Parser do
|
|
588
663
|
exoneration_code: '0',
|
589
664
|
interbank_code: 'B1',
|
590
665
|
internal_code: '9162',
|
591
|
-
label:
|
666
|
+
label: 'PRLV SEPA TEST CABINET',
|
592
667
|
number: 0,
|
593
|
-
reference: 'REFERENCE - OTHER REFERENCE',
|
594
668
|
rejection_code: '',
|
595
669
|
unavailability_code: '0',
|
596
670
|
value_date: Date.new(2019, 5, 16),
|
671
|
+
)
|
672
|
+
expect(operation.details).to have_attributes(
|
673
|
+
client_reference: 'OTHER REFERENCE',
|
674
|
+
operation_reference: 'REFERENCE',
|
675
|
+
free_label: 'MENSUEAUHTR13133',
|
676
|
+
debtor: 'INTERNET SFR',
|
597
677
|
original_currency: nil,
|
598
678
|
original_amount: nil,
|
599
679
|
exchange_rate: nil,
|
600
|
-
debtor: 'INTERNET SFR',
|
601
680
|
)
|
602
681
|
end
|
603
682
|
end
|
@@ -621,16 +700,21 @@ describe CFONB::Parser do
|
|
621
700
|
exoneration_code: '0',
|
622
701
|
interbank_code: 'B1',
|
623
702
|
internal_code: '9162',
|
624
|
-
label:
|
703
|
+
label: 'PRLV SEPA TEST CABINET',
|
625
704
|
number: 0,
|
626
|
-
reference: 'REFERENCE - OTHER REFERENCE',
|
627
705
|
rejection_code: '',
|
628
706
|
unavailability_code: '0',
|
629
707
|
value_date: Date.new(2019, 5, 16),
|
708
|
+
)
|
709
|
+
|
710
|
+
expect(operation.details).to have_attributes(
|
711
|
+
operation_reference: 'REFERENCE',
|
712
|
+
client_reference: 'OTHER REFERENCE',
|
713
|
+
free_label: "MENSUEAUHTR13133\nMENSUEAUHTR13DUP\nP051928612 22793301700040",
|
714
|
+
debtor: 'ELEC ERDF',
|
630
715
|
original_currency: nil,
|
631
716
|
original_amount: nil,
|
632
717
|
exchange_rate: nil,
|
633
|
-
debtor: 'ELEC ERDF',
|
634
718
|
)
|
635
719
|
end
|
636
720
|
end
|