konto_check 0.2.1 → 5.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +1 -1
- data/README.textile +10 -605
- data/ext/konto_check_raw/extconf.rb +7 -3
- data/ext/konto_check_raw/konto_check.c +7242 -578
- data/ext/konto_check_raw/konto_check.h +230 -19
- data/ext/konto_check_raw/konto_check_raw_ruby.c +1586 -672
- data/lib/konto_check.rb +487 -197
- metadata +43 -50
- data/CHANGES +0 -21
- data/Rakefile +0 -79
- data/VERSION.yml +0 -5
- data/init.rb +0 -1
- data/konto_check.gemspec +0 -54
- data/test/helper.rb +0 -10
- data/test/test_konto_check.rb +0 -7
data/lib/konto_check.rb
CHANGED
@@ -1,19 +1,21 @@
|
|
1
|
+
# vi: ft=ruby:set si:set fileencoding=UTF-8
|
2
|
+
|
1
3
|
# load the c extension
|
2
4
|
require 'konto_check_raw'
|
3
5
|
|
4
6
|
#This is a C/Ruby library to check the validity of German Bank Account
|
5
|
-
#Numbers. All currently defined test methods by Deutsche Bundesbank
|
6
|
-
#
|
7
|
+
#Numbers. All currently defined test methods by Deutsche Bundesbank
|
8
|
+
#(April 2013: 00 to E0) are implemented.
|
7
9
|
#
|
8
10
|
#<b>ATTENTION:</b> There are a few important changes in the API between version 0.0.2 (version
|
9
11
|
#by Peter Horn/Provideal), version 0.0.6 (jeanmartin) and this version:
|
10
12
|
#
|
11
13
|
#* The function KontoCheck::load_bank_data() is no longer used; it is replaced by KontoCheck::init() and KontoCheck::generate_lutfile().
|
12
|
-
#* The function KontoCheck::konto_check(blz,kto) changed the order of parameters from (kto,blz) to (blz,kto)
|
14
|
+
#* The function KontoCheck::konto_check( blz,kto) changed the order of parameters from (kto,blz) to (blz,kto)
|
13
15
|
#
|
14
16
|
#Another change affects only the version 0.0.6 by jeanmartin:
|
15
17
|
#
|
16
|
-
#* In KontoCheck::init(level,name,set) the order of the two first parameters is now free; the order is determined by the type of the variable (level is integer, filename string).
|
18
|
+
#* In KontoCheck::init( level,name,set) the order of the two first parameters is now free; the order is determined by the type of the variable (level is integer, filename string).
|
17
19
|
#
|
18
20
|
#Because this class is inteded for german bank accounts, the rest of the
|
19
21
|
#documentation is in german too.
|
@@ -58,7 +60,7 @@ module KontoCheck
|
|
58
60
|
#mögliche Suchschlüssel für die Funktion KontoCheck::suche()
|
59
61
|
#
|
60
62
|
#:ort, :plz, :pz, :bic, :blz, :namen, :namen_kurz
|
61
|
-
SEARCH_KEYS = [:ort, :plz, :pz, :bic, :blz, :namen, :namen_kurz]
|
63
|
+
SEARCH_KEYS = [:ort, :plz, :pz, :bic, :blz, :namen, :namen_kurz, :regel, :volltext, :multiple]
|
62
64
|
#Aliasnamen für einige Suchschlüssel der Funktion KontoCheck::suche()
|
63
65
|
#
|
64
66
|
#:bankleitzahl, :city, :zip, :name, :kurzname, :shortname, :pruefziffer
|
@@ -69,15 +71,20 @@ module KontoCheck
|
|
69
71
|
:name => :namen,
|
70
72
|
:kurzname => :namen_kurz,
|
71
73
|
:shortname => :namen_kurz,
|
72
|
-
:pruefziffer => :pz
|
74
|
+
:pruefziffer => :pz,
|
75
|
+
:regel => :regel,
|
76
|
+
:vt => :volltext,
|
77
|
+
:fulltext => :volltext,
|
78
|
+
:m => :multiple,
|
79
|
+
:x => :multiple
|
73
80
|
}
|
74
81
|
|
75
82
|
class << self
|
76
83
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
84
|
+
#===KontoCheck::lut_info()
|
85
|
+
#=====KontoCheckRaw::lut_info( [lutfile])
|
86
|
+
#=====KontoCheck::lut_info1( lutfile)
|
87
|
+
#=====KontoCheck::lut_info2( lutfile)
|
81
88
|
#
|
82
89
|
#Diese Funktion liefert den Infoblock des Datensatzes zurück, der mittels
|
83
90
|
#init() in den Speichergeladen wurde. Weitere Infos über die LUT-Datei
|
@@ -88,10 +95,10 @@ module KontoCheck
|
|
88
95
|
KontoCheckRaw::lut_info()[3]
|
89
96
|
end
|
90
97
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
98
|
+
#===KontoCheck::lut_info1( lutfile)
|
99
|
+
#=====KontoCheck::lut_info()
|
100
|
+
#=====KontoCheck::lut_info2()
|
101
|
+
#=====KontoCheckRaw::lut_info()
|
95
102
|
#
|
96
103
|
#Diese Funktion liefert den Infoblock des ersten Datensatzes der angegebenen
|
97
104
|
#LUT-Datei zurück. Weitere Infos über die LUT-Datei lassen sich mit der
|
@@ -101,10 +108,10 @@ module KontoCheck
|
|
101
108
|
KontoCheckRaw::lut_info(filename)[3]
|
102
109
|
end
|
103
110
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
111
|
+
#===KontoCheck::lut_info2( lutfile)
|
112
|
+
#=====KontoCheck::lut_info()
|
113
|
+
#=====KontoCheck::lut_info1( lutfile)
|
114
|
+
#=====KontoCheckRaw::lut_info( [lutfile])
|
108
115
|
#
|
109
116
|
#Diese Funktion liefert den Infoblock des zweiten Datensatzes der angegebenen
|
110
117
|
#LUT-Datei zurück. Weitere Infos über die LUT-Datei lassen sich mit der
|
@@ -115,8 +122,8 @@ module KontoCheck
|
|
115
122
|
end
|
116
123
|
|
117
124
|
|
118
|
-
|
119
|
-
|
125
|
+
#===KontoCheck::dump_lutfile( lutfile)
|
126
|
+
#=====KontoCheckRaw::dump_lutfile( lutfile)
|
120
127
|
#
|
121
128
|
#Diese Funktion liefert detaillierte Informationen über alle Blocks, die in der
|
122
129
|
#LUT-Datei gespeichert sind, sowie noch einige Internas der LUT-Datei. Im
|
@@ -126,10 +133,10 @@ module KontoCheck
|
|
126
133
|
KontoCheckRaw::dump_lutfile(filename).first
|
127
134
|
end
|
128
135
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
136
|
+
#===KontoCheck::encoding( [mode])
|
137
|
+
#=====KontoCheckRaw::encoding( [mode])
|
138
|
+
#=====KontoCheck::encoding_str( [mode])
|
139
|
+
#=====KontoCheckRaw::keep_raw_data( mode)
|
133
140
|
#
|
134
141
|
#Diese Funktion legt den benutzten Zeichensatz für Fehlermeldungen durch die
|
135
142
|
#Funktion KontoCheck::retval2txt() und einige Felder der LUT-Datei (Name,
|
@@ -189,10 +196,10 @@ module KontoCheck
|
|
189
196
|
KontoCheckRaw::encoding(*args)
|
190
197
|
end
|
191
198
|
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
199
|
+
#===KontoCheck::encoding_str( [mode])
|
200
|
+
#=====KontoCheckRaw::encoding_str( [mode])
|
201
|
+
#=====KontoCheck::encoding( [mode])
|
202
|
+
#=====KontoCheckRaw::keep_raw_data( mode)
|
196
203
|
#
|
197
204
|
#Diese Funktion entspricht der Funktion KontoCheck::encoding(). Allerdings
|
198
205
|
#ist der Rückgabewert nicht numerisch, sondern ein String, der die aktuelle
|
@@ -226,8 +233,8 @@ module KontoCheck
|
|
226
233
|
KontoCheckRaw::encoding_str(*args)
|
227
234
|
end
|
228
235
|
|
229
|
-
|
230
|
-
|
236
|
+
#===KontoCheck::retval2txt( retval)
|
237
|
+
#=====KontoCheckRaw::retval2txt( retval)
|
231
238
|
#
|
232
239
|
#Diese Funktion konvertiert einen numerischen Rückgabewert in einen String. Der
|
233
240
|
#benutzte Zeichensatz wird über die Funktion KontoCheck::encoding() festgelegt.
|
@@ -238,8 +245,8 @@ module KontoCheck
|
|
238
245
|
KontoCheckRaw::retval2txt(retval)
|
239
246
|
end
|
240
247
|
|
241
|
-
|
242
|
-
|
248
|
+
#===KontoCheck::retval2iso( retval)
|
249
|
+
#=====KontoCheckRaw::retval2iso( retval)
|
243
250
|
#
|
244
251
|
#Diese Funktion konvertiert einen numerischen Rückgabewert in einen String.
|
245
252
|
#Der benutzte Zeichensatz ist ISO 8859-1.
|
@@ -248,9 +255,9 @@ module KontoCheck
|
|
248
255
|
KontoCheckRaw::retval2iso(retval)
|
249
256
|
end
|
250
257
|
|
251
|
-
|
252
|
-
|
253
|
-
|
258
|
+
#===KontoCheck::retval2txt_short( retval)
|
259
|
+
#=====KontoCheckRaw::retval2txt_short( retval)
|
260
|
+
#=====KontoCheck::retval2txt_kurz( retval)
|
254
261
|
#
|
255
262
|
#Diese Funktion konvertiert einen numerischen Rückgabewert in einen kurzen
|
256
263
|
#String. Die Ausgabe ist der Makroname, wie er in C benutzt wird.
|
@@ -260,9 +267,9 @@ module KontoCheck
|
|
260
267
|
end
|
261
268
|
alias_method :retval2txt_kurz, :retval2txt_short
|
262
269
|
|
263
|
-
|
264
|
-
|
265
|
-
|
270
|
+
#===KontoCheck::retval2txt_kurz( retval)
|
271
|
+
#=====KontoCheckRaw::retval2txt_short( retval)
|
272
|
+
#=====KontoCheck::retval2txt_short( retval)
|
266
273
|
#
|
267
274
|
#Diese Funktion konvertiert einen numerischen Rückgabewert in einen kurzen
|
268
275
|
#String. Die Ausgabe ist der Makroname, wie er in C benutzt wird. Die Funktion
|
@@ -272,8 +279,8 @@ module KontoCheck
|
|
272
279
|
KontoCheckRaw::retval2txt_short(retval)
|
273
280
|
end
|
274
281
|
|
275
|
-
|
276
|
-
|
282
|
+
#===KontoCheck::retval2dos( retval)
|
283
|
+
#=====KontoCheckRaw::retval2dos( retval)
|
277
284
|
#
|
278
285
|
#Diese Funktion konvertiert einen numerischen Rückgabewert in einen String.
|
279
286
|
#Der benutzte Zeichensatz ist cp850 (DOS).
|
@@ -282,8 +289,8 @@ module KontoCheck
|
|
282
289
|
KontoCheckRaw::retval2dos(retval)
|
283
290
|
end
|
284
291
|
|
285
|
-
|
286
|
-
|
292
|
+
#===KontoCheck::retval2html( retval)
|
293
|
+
#=====KontoCheckRaw::retval2html( retval)
|
287
294
|
#
|
288
295
|
#Diese Funktion konvertiert einen numerischen Rückgabewert in einen String.
|
289
296
|
#Für Umlaute werden HTML-Entities benutzt.
|
@@ -292,8 +299,8 @@ module KontoCheck
|
|
292
299
|
KontoCheckRaw::retval2html(retval)
|
293
300
|
end
|
294
301
|
|
295
|
-
|
296
|
-
|
302
|
+
#===KontoCheck::retval2utf8( retval)
|
303
|
+
#=====KontoCheckRaw::retval2utf8( retval)
|
297
304
|
#
|
298
305
|
#Diese Funktion konvertiert einen numerischen Rückgabewert in einen String.
|
299
306
|
#Der benutzte Zeichensatz ist UTF-8.
|
@@ -302,8 +309,8 @@ module KontoCheck
|
|
302
309
|
KontoCheckRaw::retval2utf8(retval)
|
303
310
|
end
|
304
311
|
|
305
|
-
|
306
|
-
|
312
|
+
#===KontoCheck::generate_lutfile( inputfile,outputfile [,user_info [,gueltigkeit [,felder [,filialen [,set [,iban_file]]]]]])
|
313
|
+
#=====KontoCheckRaw::generate_lutfile( inputfile,outputfile [,user_info [,gueltigkeit [,felder [,filialen [,set [,iban_file]]]]]])
|
307
314
|
#
|
308
315
|
#Diese Funktion generiert eine neue LUT-Datei aus der BLZ-Datei der Deutschen Bundesbank. Die folgenden
|
309
316
|
#Parameter werden unterstützt:
|
@@ -346,8 +353,8 @@ module KontoCheck
|
|
346
353
|
KontoCheckRaw::generate_lutfile(*args)
|
347
354
|
end
|
348
355
|
|
349
|
-
|
350
|
-
|
356
|
+
#===KontoCheck::init( [p1 [,p2 [,set]]])
|
357
|
+
#=====KontoCheckRaw::init( [p1 [,p2 [,set]]])
|
351
358
|
#Die Variablen p1 und p2 stehen für level und lutfile (in beliebiger
|
352
359
|
#Reihenfolge); die Zuordnung der beiden Parameter erfolgt on the fly durch eine
|
353
360
|
#Typüberprüfung.
|
@@ -424,8 +431,31 @@ module KontoCheck
|
|
424
431
|
KontoCheckRaw::init(*args)
|
425
432
|
end
|
426
433
|
|
427
|
-
|
428
|
-
|
434
|
+
#===KontoCheck::lut_blocks( )
|
435
|
+
#=====KontoCheckRaw::lut_blocks1( )
|
436
|
+
#=====KontoCheckRaw::lut_blocks( mode)
|
437
|
+
#Die Funktion gibt Auskunft, ob bei der Initialisierung alle angeforderten
|
438
|
+
#Blocks der LUT-Datei geladen wurden. Die korrespondierende Funktion
|
439
|
+
#KontoCheckRaw::lut_blocks( mode) gibt noch einige weitere Infos über die
|
440
|
+
#geladenen Blocks aus.
|
441
|
+
#
|
442
|
+
#====Aufruf:
|
443
|
+
#ret=KontoCheck::lut_blocks( )
|
444
|
+
#
|
445
|
+
#====Rückgabe:
|
446
|
+
#Rückgabe ist ein skalarer Wert, der Information über den Initialisierungsprozess gibt:
|
447
|
+
#
|
448
|
+
#* -136 LUT2_BLOCKS_MISSING "ok, bei der Initialisierung konnten allerdings ein oder mehrere Blocks nicht geladen werden"
|
449
|
+
#* -40 LUT2_NOT_INITIALIZED "die Programmbibliothek wurde noch nicht initialisiert"
|
450
|
+
#* -9 ERROR_MALLOC "kann keinen Speicher allokieren"
|
451
|
+
#* 1 OK "ok"
|
452
|
+
|
453
|
+
def lut_blocks()
|
454
|
+
KontoCheckRaw::lut_blocks1()
|
455
|
+
end
|
456
|
+
|
457
|
+
#===KontoCheck::load_bank_data( datafile)
|
458
|
+
#=====KontoCheckRaw::load_bank_data( datafile)
|
429
459
|
#
|
430
460
|
#Diese Funktion war die alte Initialisierungsroutine für konto_check; es ist
|
431
461
|
#nun durch die Funktionen KontoCheck::init() und KontoCheck::generate_lutfile()
|
@@ -452,10 +482,10 @@ module KontoCheck
|
|
452
482
|
KontoCheckRaw::load_bank_data(*args)
|
453
483
|
end
|
454
484
|
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
485
|
+
#===KontoCheck::current_lutfile_name()
|
486
|
+
#=====KontoCheckRaw::current_lutfile_name()
|
487
|
+
#=====KontoCheck::current_lutfile_set()
|
488
|
+
#=====KontoCheck::current_init_level()
|
459
489
|
#
|
460
490
|
#Diese Funktion bestimmt den Dateinamen der zur Initialisierung benutzten LUT-Datei.
|
461
491
|
|
@@ -463,10 +493,10 @@ module KontoCheck
|
|
463
493
|
KontoCheckRaw::current_lutfile_name().first
|
464
494
|
end
|
465
495
|
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
496
|
+
#===KontoCheck::current_lutfile_set()
|
497
|
+
#=====KontoCheckRaw::current_lutfile_name()
|
498
|
+
#=====KontoCheck::current_lutfile_name()
|
499
|
+
#=====KontoCheck::current_init_level()
|
470
500
|
#
|
471
501
|
#Diese Funktion bestimmt das Set der LUT-Datei, das bei der Initialisierung benutzt wurde.
|
472
502
|
|
@@ -475,10 +505,10 @@ module KontoCheck
|
|
475
505
|
raw_results[1]
|
476
506
|
end
|
477
507
|
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
508
|
+
#===KontoCheck::current_init_level()
|
509
|
+
#=====KontoCheckRaw::current_lutfile_name()
|
510
|
+
#=====KontoCheckRaw::current_lutfile_name()
|
511
|
+
#=====KontoCheck::current_lutfile_set()
|
482
512
|
#
|
483
513
|
#Diese Funktion bestimmt den aktuell benutzten Initialisierungslevel
|
484
514
|
|
@@ -487,17 +517,17 @@ module KontoCheck
|
|
487
517
|
raw_results[2]
|
488
518
|
end
|
489
519
|
|
490
|
-
|
491
|
-
|
520
|
+
#===KontoCheck::free()
|
521
|
+
#=====KontoCheckRaw::free()
|
492
522
|
#Diese Funktion gibt allen allokierten Speicher wieder frei.
|
493
523
|
|
494
524
|
def free()
|
495
525
|
KontoCheckRaw::free()
|
496
526
|
end
|
497
527
|
|
498
|
-
|
499
|
-
|
500
|
-
|
528
|
+
#===KontoCheck::konto_check( blz,kto)
|
529
|
+
#=====KontoCheckRaw::konto_check( blz,kto)
|
530
|
+
#=====KontoCheck::valid( blz,kto)
|
501
531
|
#Test, ob eine BLZ/Konto-Kombination eine gültige Prüfziffer enthält. Die Funktion gibt einen skalaren
|
502
532
|
#Statuswert zurück, der das Ergebnis der Prüfung enthält. Mögliche Rückgabewerte sind:
|
503
533
|
#
|
@@ -520,18 +550,18 @@ module KontoCheck
|
|
520
550
|
KontoCheckRaw::konto_check(blz,kto)
|
521
551
|
end
|
522
552
|
|
523
|
-
|
524
|
-
|
525
|
-
|
553
|
+
#===KontoCheck::valid( blz,kto)
|
554
|
+
#=====KontoCheck::konto_check( blz,kto)
|
555
|
+
#=====KontoCheckRaw::konto_check( blz,kto)
|
526
556
|
#Dies ist ein Alias für die Funktion KontoCheck::konto_check()
|
527
557
|
|
528
558
|
def valid(blz,kto)
|
529
|
-
KontoCheckRaw::konto_check(blz,kto)
|
559
|
+
KontoCheckRaw::konto_check( blz,kto)
|
530
560
|
end
|
531
561
|
|
532
|
-
|
533
|
-
|
534
|
-
|
562
|
+
#===KontoCheck::konto_check?( blz, kto)
|
563
|
+
#=====KontoCheck::konto_check( blz,kto)
|
564
|
+
#=====KontoCheckRaw::konto_check( blz,kto)
|
535
565
|
#Test, ob eine BLZ/Konto-Kombination eine gültige Prüfziffer enthält. Die
|
536
566
|
#Funktion gibt einen skalaren Statuswert zurück, der das Ergebnis der Prüfung
|
537
567
|
#enthält. Mögliche Rückgabewerte sind einfach true und false (convenience
|
@@ -541,18 +571,18 @@ module KontoCheck
|
|
541
571
|
KontoCheckRaw::konto_check(blz,kto)>0?true:false
|
542
572
|
end
|
543
573
|
|
544
|
-
|
545
|
-
|
546
|
-
|
574
|
+
#===KontoCheck::valid?( blz, kto)
|
575
|
+
#=====KontoCheck::valid( blz, kto)
|
576
|
+
#=====KontoCheckRaw::konto_check (blz, kto)
|
547
577
|
#Dies ist einn Alias für die Funktion KontoCheck::konto_check?. Mögliche Rückgabewerte sind true oder false.
|
548
578
|
|
549
579
|
def valid?(blz,kto)
|
550
580
|
KontoCheckRaw::konto_check(blz, kto)>0?true:false
|
551
581
|
end
|
552
582
|
|
553
|
-
|
554
|
-
|
555
|
-
|
583
|
+
#===KontoCheck::konto_check_pz (pz,kto [,blz])
|
584
|
+
#=====KontoCheckRaw::konto_check_pz (pz,kto [,blz])
|
585
|
+
#=====KontoCheck::valid_pz (pz,kto [,blz])
|
556
586
|
#Diese Funktion testet, ob eine gegebene Prüfziffer/Kontonummer-Kombination gültig ist.
|
557
587
|
#
|
558
588
|
#Der zusätzliche Parameter blz ist nur für die Verfahren 52, 53, B6 und C0 notwendig; bei
|
@@ -580,9 +610,9 @@ module KontoCheck
|
|
580
610
|
KontoCheckRaw::konto_check_pz(*args)
|
581
611
|
end
|
582
612
|
|
583
|
-
|
584
|
-
|
585
|
-
|
613
|
+
#===KontoCheck::konto_check_pz?( pz,kto [,blz])
|
614
|
+
#=====KontoCheckRaw::konto_check_pz (pz,kto [,blz])
|
615
|
+
#=====KontoCheck::valid_pz?( pz,kto [,blz])
|
586
616
|
#Diese Funktion testet, ob eine gegebene Prüfziffer/Kontonummer-Kombination
|
587
617
|
#gültig ist. Der Rückgabewert dieser Funktion ist true oder false (convenience
|
588
618
|
#function für KontoCheck::konto_check_pz()).
|
@@ -596,27 +626,94 @@ module KontoCheck
|
|
596
626
|
KontoCheckRaw::konto_check_pz(*args)>0?true:false
|
597
627
|
end
|
598
628
|
|
599
|
-
|
600
|
-
|
601
|
-
|
629
|
+
#===KontoCheck::valid_pz( pz,kto [,blz])
|
630
|
+
#=====KontoCheck::konto_check_pz( pz,kto [,blz])
|
631
|
+
#=====KontoCheckRaw::konto_check_pz( pz,kto [,blz])
|
602
632
|
#Diese Funktion ist ein Alias für KontoCheck::konto_check_pz
|
603
633
|
|
604
634
|
def valid_pz(*args)
|
605
635
|
KontoCheckRaw::konto_check_pz(*args)
|
606
636
|
end
|
607
637
|
|
608
|
-
|
609
|
-
|
610
|
-
|
638
|
+
#===KontoCheck::valid_pz?( pz,kto [,blz])
|
639
|
+
#=====KontoCheck::valid_pz( pz,kto [,blz])
|
640
|
+
#=====KontoCheckRaw::konto_check_pz( pz,kto [,blz])
|
611
641
|
#Diese Funktion ist ein Alias für KontoCheck::konto_check_pz?()
|
612
642
|
|
613
643
|
def valid_pz?(*args)
|
614
644
|
KontoCheckRaw::konto_check_pz(*args)>0?true:false
|
615
645
|
end
|
616
646
|
|
617
|
-
|
618
|
-
|
619
|
-
|
647
|
+
#===KontoCheck::konto_check_regel( blz,kto)
|
648
|
+
#=====KontoCheck::konto_check_regel?( blz,kto)
|
649
|
+
#=====KontoCheckRaw::konto_check_regel( blz,kto)
|
650
|
+
#=====KontoCheckRaw::konto_check_regel_dbg( blz,kto)
|
651
|
+
#Test, ob eine BLZ/Konto-Kombination eine gültige Prüfziffer enthält. Die Funktion gibt einen skalaren
|
652
|
+
#Statuswert zurück, der das Ergebnis der Prüfung enthält. Vor dem Test werden die IBAN-Regeln angewendet,
|
653
|
+
#dadurch werden u.U. Konto und BLZ ersetzt.
|
654
|
+
#Falls nicht alle für IBAN-Berechnung notwendigen Blocks geladen sind, werden diese automatisch noch
|
655
|
+
#nachgeladen. Dadurch tauchen hier auch die Rückgabewerte für die Initialisierung auf.
|
656
|
+
#Mögliche Rückgabewerte sind:
|
657
|
+
#
|
658
|
+
# -135 FALSE_UNTERKONTO_ATTACHED "falsch, es wurde ein Unterkonto hinzugefügt (IBAN-Regel)"
|
659
|
+
# -133 BLZ_MARKED_AS_DELETED "Die BLZ ist in der Bundesbank-Datei als gelöscht markiert und somit ungültig"
|
660
|
+
# -128 IBAN_INVALID_RULE "Die BLZ passt nicht zur angegebenen IBAN-Regel"
|
661
|
+
# -127 IBAN_AMBIGUOUS_KTO "Die Kontonummer ist nicht eindeutig (es gibt mehrere Möglichkeiten)"
|
662
|
+
# -125 IBAN_RULE_UNKNOWN "Die IBAN-Regel ist nicht bekannt"
|
663
|
+
# -124 NO_IBAN_CALCULATION "Für die Bankverbindung ist keine IBAN-Berechnung erlaubt"
|
664
|
+
# -112 KTO_CHECK_UNSUPPORTED_COMPRESSION "die notwendige Kompressions-Bibliothek wurden beim Kompilieren nicht eingebunden"
|
665
|
+
# -77 BAV_FALSE "BAV denkt, das Konto ist falsch (konto_check hält es für richtig)"
|
666
|
+
# -69 MISSING_PARAMETER "Für die aufgerufene Funktion fehlt ein notwendiger Parameter"
|
667
|
+
# -64 INIT_FATAL_ERROR "Initialisierung fehlgeschlagen (init_wait geblockt)"
|
668
|
+
# -63 INCREMENTAL_INIT_NEEDS_INFO "Ein inkrementelles Initialisieren benötigt einen Info-Block in der LUT-Datei"
|
669
|
+
# -62 INCREMENTAL_INIT_FROM_DIFFERENT_FILE "Ein inkrementelles Initialisieren mit einer anderen LUT-Datei ist nicht möglich"
|
670
|
+
# -40 LUT2_NOT_INITIALIZED "die Programmbibliothek wurde noch nicht initialisiert"
|
671
|
+
# -38 LUT2_PARTIAL_OK "es wurden nicht alle Blocks geladen"
|
672
|
+
# -36 LUT2_Z_MEM_ERROR "Memory error in den ZLIB-Routinen"
|
673
|
+
# -35 LUT2_Z_DATA_ERROR "Datenfehler im komprimierten LUT-Block"
|
674
|
+
# -34 LUT2_BLOCK_NOT_IN_FILE "Der Block ist nicht in der LUT-Datei enthalten"
|
675
|
+
# -33 LUT2_DECOMPRESS_ERROR "Fehler beim Dekomprimieren eines LUT-Blocks"
|
676
|
+
# -31 LUT2_FILE_CORRUPTED "Die LUT-Datei ist korrumpiert"
|
677
|
+
# -29 UNDEFINED_SUBMETHOD "Die (Unter)Methode ist nicht definiert"
|
678
|
+
# -20 LUT_CRC_ERROR "Prüfsummenfehler in der blz.lut Datei"
|
679
|
+
# -12 INVALID_KTO_LENGTH "ein Konto muß zwischen 1 und 10 Stellen haben"
|
680
|
+
# -10 FILE_READ_ERROR "kann Datei nicht lesen"
|
681
|
+
# -9 ERROR_MALLOC "kann keinen Speicher allokieren"
|
682
|
+
# -7 INVALID_LUT_FILE "die blz.lut Datei ist inkosistent/ungültig"
|
683
|
+
# -6 NO_LUT_FILE "die blz.lut Datei wurde nicht gefunden"
|
684
|
+
# -5 INVALID_BLZ_LENGTH "die Bankleitzahl ist nicht achtstellig"
|
685
|
+
# -4 INVALID_BLZ "die Bankleitzahl ist ungültig"
|
686
|
+
# -3 INVALID_KTO "das Konto ist ungültig"
|
687
|
+
# -2 NOT_IMPLEMENTED "die Methode wurde noch nicht implementiert"
|
688
|
+
# -1 NOT_DEFINED "die Methode ist nicht definiert"
|
689
|
+
# 0 FALSE "falsch"
|
690
|
+
# 1 OK "ok"
|
691
|
+
# 1 OK "ok"
|
692
|
+
# 2 OK_NO_CHK "ok, ohne Prüfung"
|
693
|
+
# 6 LUT1_SET_LOADED "Die Datei ist im alten LUT-Format (1.0/1.1)"
|
694
|
+
# 18 OK_KTO_REPLACED "ok, die Kontonummer wurde allerdings ersetzt"
|
695
|
+
# 21 OK_IBAN_WITHOUT_KC_TEST "ok, die Bankverbindung ist (ohne Test) als richtig anzusehen"
|
696
|
+
# 25 OK_UNTERKONTO_ATTACHED "ok, es wurde ein (weggelassenes) Unterkonto angefügt"
|
697
|
+
|
698
|
+
def konto_check_regel(blz,kto)
|
699
|
+
KontoCheckRaw::konto_check_regel(blz,kto)
|
700
|
+
end
|
701
|
+
|
702
|
+
#===KontoCheck::konto_check_regel?( blz,kto)
|
703
|
+
#=====KontoCheck::konto_check_regel( blz,kto)
|
704
|
+
#=====KontoCheckRaw::konto_check_regel( blz,kto)
|
705
|
+
#=====KontoCheckRaw::konto_check_regel_dbg( blz,kto)
|
706
|
+
#Diese Funktion testet, ob eine gegebene Prüfziffer/Kontonummer-Kombination
|
707
|
+
#gültig ist (mit IBAN-Regeln). Der Rückgabewert dieser Funktion ist nur true
|
708
|
+
#oder false (convenience function für KontoCheck::konto_check_regel()).
|
709
|
+
|
710
|
+
def konto_check_regel?(*args)
|
711
|
+
KontoCheckRaw::konto_check_regel(*args)>0?true:false
|
712
|
+
end
|
713
|
+
|
714
|
+
#==== KontoCheck::bank_valid( blz [,filiale])
|
715
|
+
#======KontoCheckRaw::bank_valid( blz [,filiale])
|
716
|
+
#======KontoCheck::bank_valid?( blz [,filiale])
|
620
717
|
#Diese Funktion testet, ob eine gegebene BLZ gültig ist. Der Rückgabewert ist ein
|
621
718
|
#Statuscode mit den unten angegebenen Werten. Falls das Argument filiale auch
|
622
719
|
#angegeben ist, wird zusätzlich noch getestet, ob eine Filiale mit dem gegebenen
|
@@ -634,9 +731,9 @@ module KontoCheck
|
|
634
731
|
KontoCheckRaw::bank_valid(*args)
|
635
732
|
end
|
636
733
|
|
637
|
-
|
638
|
-
|
639
|
-
|
734
|
+
#====KontoCheck::bank_valid?( blz [,filiale])
|
735
|
+
#======KontoCheckRaw::bank_valid( blz [,filiale])
|
736
|
+
#======KontoCheck::bank_valid( blz [,filiale])
|
640
737
|
#Dies ist eine convenience function zu KontoCheck::bank_valid(). Es wird getestet, ob
|
641
738
|
#die gegebene BLZ (und evl. noch der Filialindex) gültig ist. Der Rückgabewert ist
|
642
739
|
#nur true oder false.
|
@@ -645,8 +742,8 @@ module KontoCheck
|
|
645
742
|
KontoCheckRaw::bank_valid(*args)>0?true:false
|
646
743
|
end
|
647
744
|
|
648
|
-
|
649
|
-
|
745
|
+
#===KontoCheck::bank_filialen( blz)
|
746
|
+
#=====KontoCheckRaw::bank_filialen(blz)
|
650
747
|
#
|
651
748
|
#Diese Funktion liefert die Anzahl Filialen einer Bank (inklusive Hauptstelle).
|
652
749
|
#Die LUT-Datei muß dazu natürlich mit den Filialdaten generiert sein, sonst
|
@@ -656,8 +753,8 @@ module KontoCheck
|
|
656
753
|
KontoCheckRaw::bank_filialen(*args).first
|
657
754
|
end
|
658
755
|
|
659
|
-
|
660
|
-
|
756
|
+
#===KontoCheck::bank_name( blz [,filiale])
|
757
|
+
#=====KontoCheckRaw::bank_name(blz [,filiale])
|
661
758
|
#
|
662
759
|
#Diese Funktion liefert den Namen einer Bank, oder nil im Fehlerfall.
|
663
760
|
|
@@ -665,8 +762,8 @@ module KontoCheck
|
|
665
762
|
KontoCheckRaw::bank_name(*args).first
|
666
763
|
end
|
667
764
|
|
668
|
-
|
669
|
-
|
765
|
+
#===KontoCheck::bank_name_kurz( blz [,filiale])
|
766
|
+
#=====KontoCheckRaw::bank_name_kurz(blz [,filiale])
|
670
767
|
#
|
671
768
|
#Diese Funktion liefert den Kurznamen einer Bank, oder nil im Fehlerfall.
|
672
769
|
|
@@ -674,8 +771,8 @@ module KontoCheck
|
|
674
771
|
KontoCheckRaw::bank_name_kurz(*args).first
|
675
772
|
end
|
676
773
|
|
677
|
-
|
678
|
-
|
774
|
+
#===KontoCheck::bank_ort( blz [,filiale])
|
775
|
+
#=====KontoCheckRaw::bank_ort(blz [,filiale])
|
679
776
|
#
|
680
777
|
#Diese Funktion liefert den Ort einer Bank. Falls der Parameter filiale nicht
|
681
778
|
#angegeben ist, wird der Sitz der Hauptstelle ausgegeben. Im Fehlerfall wird
|
@@ -685,8 +782,8 @@ module KontoCheck
|
|
685
782
|
KontoCheckRaw::bank_ort(*args).first
|
686
783
|
end
|
687
784
|
|
688
|
-
|
689
|
-
|
785
|
+
#===KontoCheck::bank_plz( blz [,filiale])
|
786
|
+
#=====KontoCheckRaw::bank_plz(blz [,filiale])
|
690
787
|
#
|
691
788
|
#Diese Funktion liefert die Postleitzahl einer Bank. Falls der Parameter
|
692
789
|
#filiale nicht angegeben ist, wird die PLZ der Hauptstelle ausgegeben. Im
|
@@ -696,8 +793,8 @@ module KontoCheck
|
|
696
793
|
KontoCheckRaw::bank_plz(*args).first
|
697
794
|
end
|
698
795
|
|
699
|
-
|
700
|
-
|
796
|
+
#===KontoCheck::bank_pz( blz)
|
797
|
+
#=====KontoCheckRaw::bank_pz(blz)
|
701
798
|
#
|
702
799
|
#Diese Funktion liefert die Prüfziffer einer Bank. Die Funktion unterstützt
|
703
800
|
#keine Filialen; zu jeder BLZ kann es in der LUT-Datei nur eine
|
@@ -707,8 +804,8 @@ module KontoCheck
|
|
707
804
|
KontoCheckRaw::bank_pz(blz).first
|
708
805
|
end
|
709
806
|
|
710
|
-
|
711
|
-
|
807
|
+
#===KontoCheck::bank_bic( blz [,filiale])
|
808
|
+
#=====KontoCheckRaw::bank_bic(blz [,filiale])
|
712
809
|
#
|
713
810
|
#Diese Funktion liefert den BIC (Bank Identifier Code) einer Bank. Im
|
714
811
|
#Fehlerfall wird nil zurückgegeben.
|
@@ -717,8 +814,8 @@ module KontoCheck
|
|
717
814
|
KontoCheckRaw::bank_bic(*args).first
|
718
815
|
end
|
719
816
|
|
720
|
-
|
721
|
-
|
817
|
+
#===KontoCheck::bank_aenderung( blz [,filiale])
|
818
|
+
#=====KontoCheckRaw::bank_aenderung(blz [,filiale])
|
722
819
|
#
|
723
820
|
#Diese Funktion liefert das 'Änderung' Flag einer Bank (als string). Mögliche
|
724
821
|
#Werte sind: A (Addition), M (Modified), U (Unchanged), D (Deletion).
|
@@ -727,8 +824,8 @@ module KontoCheck
|
|
727
824
|
KontoCheckRaw::bank_aenderung(*args).first
|
728
825
|
end
|
729
826
|
|
730
|
-
|
731
|
-
|
827
|
+
#===KontoCheck::bank_loeschung( blz [,filiale])
|
828
|
+
#=====KontoCheckRaw::bank_loeschung(blz [,filiale])
|
732
829
|
#
|
733
830
|
#Diese Funktion liefert das Lösch-Flag für eine Bank zurück (als Integer;
|
734
831
|
#mögliche Werte sind 0 und 1); im Fehlerfall wird nil zurückgegeben.
|
@@ -737,8 +834,8 @@ module KontoCheck
|
|
737
834
|
KontoCheckRaw::bank_loeschung(*args).first
|
738
835
|
end
|
739
836
|
|
740
|
-
|
741
|
-
|
837
|
+
#===KontoCheck::bank_nachfolge_blz( blz [,filiale])
|
838
|
+
#=====KontoCheckRaw::bank_nachfolge_blz(blz [,filiale])
|
742
839
|
#Diese Funktion liefert die Nachfolge-BLZ für eine Bank, die gelöscht werden
|
743
840
|
#soll (bei der das 'Löschung' Flag 1 ist).
|
744
841
|
|
@@ -746,8 +843,8 @@ module KontoCheck
|
|
746
843
|
KontoCheckRaw::bank_nachfolge_blz(*args).first
|
747
844
|
end
|
748
845
|
|
749
|
-
|
750
|
-
|
846
|
+
#===KontoCheck::bank_pan( blz [,filiale])
|
847
|
+
#=====KontoCheckRaw::bank_pan(blz [,filiale])
|
751
848
|
#
|
752
849
|
#Diese Funktion liefert den PAN (Primary Account Number) einer Bank.
|
753
850
|
|
@@ -755,8 +852,8 @@ module KontoCheck
|
|
755
852
|
KontoCheckRaw::bank_pan(*args).first
|
756
853
|
end
|
757
854
|
|
758
|
-
|
759
|
-
|
855
|
+
#===KontoCheck::bank_nr( blz [,filiale])
|
856
|
+
#=====KontoCheckRaw::bank_nr(blz [,filiale])
|
760
857
|
#
|
761
858
|
#Diese Funktion liefert die laufende Nummer einer Bank (internes Feld der BLZ-Datei). Der Wert
|
762
859
|
#wird wahrscheinlich nicht oft benötigt, ist aber der Vollständigkeit halber enthalten.
|
@@ -765,8 +862,8 @@ module KontoCheck
|
|
765
862
|
KontoCheckRaw::bank_nr(*args).first
|
766
863
|
end
|
767
864
|
|
768
|
-
|
769
|
-
|
865
|
+
#===KontoCheck::bank_alles( blz [,filiale])
|
866
|
+
#=====KontoCheckRaw::bank_alles(blz [,filiale])
|
770
867
|
#
|
771
868
|
#Dies ist eine Mammutfunktion, die alle vorhandenen Informationen über eine
|
772
869
|
#Bank zurückliefert. Das Ergebnis ist ein Array mit den folgenden Komponenten:
|
@@ -800,8 +897,8 @@ module KontoCheck
|
|
800
897
|
KontoCheckRaw::bank_alles(*args)
|
801
898
|
end
|
802
899
|
|
803
|
-
|
804
|
-
|
900
|
+
#===KontoCheck::iban2bic( iban)
|
901
|
+
#=====KontoCheckRaw::iban2bic(iban)
|
805
902
|
#
|
806
903
|
#Diese Funktion bestimmt zu einer (deutschen!) IBAN den zugehörigen BIC (Bank
|
807
904
|
#Identifier Code). Der BIC wird für eine EU-Standard-Überweisung im
|
@@ -813,8 +910,38 @@ module KontoCheck
|
|
813
910
|
KontoCheckRaw::iban2bic(*args).first
|
814
911
|
end
|
815
912
|
|
816
|
-
|
817
|
-
|
913
|
+
#===KontoCheck::ci_check( ci)
|
914
|
+
#=====KontoCheckRaw::ci_check( ci)
|
915
|
+
#
|
916
|
+
#Diese Funktion testet eine Gläubiger-Identifikationsnummer (Credit Identifier, ci)
|
917
|
+
#
|
918
|
+
#Mögliche Rückgabewerte sind:
|
919
|
+
#
|
920
|
+
# 0 (FALSE) "falsch"
|
921
|
+
# 1 (OK) "ok"
|
922
|
+
|
923
|
+
def ci_check(*args)
|
924
|
+
KontoCheckRaw::ci_check(*args)
|
925
|
+
end
|
926
|
+
|
927
|
+
#===KontoCheck::bic_check( bic)
|
928
|
+
#=====KontoCheckRaw::bic_check( bic)
|
929
|
+
#
|
930
|
+
#Diese Funktion testet einen BIC (nur für deutsche Bankverbindungen).
|
931
|
+
#
|
932
|
+
#Mögliche Rückgabewerte sind:
|
933
|
+
#
|
934
|
+
# -145 (BIC_ONLY_GERMAN) "Es werden nur deutsche BICs unterstützt"
|
935
|
+
# -144 (INVALID_BIC_LENGTH) "Die Länge des BIC muß genau 8 oder 11 Zeichen sein"
|
936
|
+
# 0 (FALSE) "falsch"
|
937
|
+
# 1 (OK) "ok"
|
938
|
+
|
939
|
+
def bic_check(*args)
|
940
|
+
KontoCheckRaw::bic_check(*args).first
|
941
|
+
end
|
942
|
+
|
943
|
+
#===KontoCheck::iban_check( iban)
|
944
|
+
#=====KontoCheckRaw::iban_check( iban)
|
818
945
|
#
|
819
946
|
#Diese Funktion testet einen IBAN. Dabei wird sowohl die Prüfziffer des IBAN
|
820
947
|
#getestet als auch (bei deutschen Konten) die Prüfziffer der Bankverbindung
|
@@ -833,56 +960,40 @@ module KontoCheck
|
|
833
960
|
KontoCheckRaw::iban_check(*args).first
|
834
961
|
end
|
835
962
|
|
836
|
-
|
837
|
-
|
838
|
-
#Diese Funktion generiert aus (deutscher) BLZ und Konto einen IBAN.
|
839
|
-
#ist zu beachten, daß nicht alle Banken der Selbstberechnung zugestimmt
|
840
|
-
#haben. Es gibt von den Sparkassen eine Liste dieser Institute; sie ist auch
|
841
|
-
#in der LUT-Datei mit der ID 22 (1. Eigene IBAN) enthalten. Bei diesen Banken
|
842
|
-
#wird - falls der Block in der LUT-Datei enthalten ist - keine Berechnung
|
843
|
-
#durchgeführt, sondern die Status-Variable auf NO_OWN_IBAN_CALCULATION
|
844
|
-
#gesetzt.
|
845
|
-
#
|
846
|
-
#Alle Banken der Liste erzeugen eine Statusmeldung mit dem Wert
|
847
|
-
#OK_UNTERKONTO_ATTACHED, OK_UNTERKONTO_POSSIBLE oder OK_UNTERKONTO_GIVEN. Falls
|
848
|
-
#einer dieser Stauswerte zurückgegeben wird, ist somit immer Vorsicht geboten;
|
849
|
-
#der generierte IBAN sollte direkt bei dem zugehörigen Institut überprüft
|
850
|
-
#werden.
|
851
|
-
#
|
852
|
-
#Hier ein Auszug aus der Anleitung des SEPA Account Converters:
|
963
|
+
#===KontoCheck::iban_gen( kto,blz)
|
964
|
+
#=====KontoCheckRaw::iban_gen( kto,blz)
|
965
|
+
#Diese Funktion generiert aus (deutscher) BLZ und Konto einen IBAN.
|
853
966
|
#
|
854
|
-
#
|
855
|
-
#
|
856
|
-
#
|
857
|
-
#
|
858
|
-
#
|
859
|
-
#
|
860
|
-
#
|
861
|
-
#BIC fehlerhaft sein können und deshalb mit ihren Kunden zu überprüfen sind.
|
862
|
-
#
|
863
|
-
#Weblinks:
|
864
|
-
#
|
865
|
-
# https://www.sparkasse-rhein-neckar-nord.de/pdf/content/sepa/kurzanleitung.pdf
|
866
|
-
# https://www.sparkasse-rhein-neckar-nord.de/firmenkunden/internationales_geschaeft/sepa/vorteile/index.php
|
867
|
-
# https://www.sparkasse-rhein-neckar-nord.de/firmenkunden/internationales_geschaeft/sepa/vorteile/sepa_account_converter.msi
|
967
|
+
#Nachdem im Mai 2013 die IBAN-Regeln zur Berechnung von IBAN und BIC aus
|
968
|
+
#Kontonummer und BLZ veröffentlicht wurden, gibt es endlich ein verbindliches
|
969
|
+
#Verfahren zur Bestimmung der IBAN. Die definierten IBAN-Regeln wurden in der
|
970
|
+
#C-Datei eingearbeitet und werden automatisch ausgewertet, falls der Block mit
|
971
|
+
#den IBAN-Regeln in der LUT-Datei enthalten ist. Andere LUT-Dateien sollten
|
972
|
+
#für die IBAN-Berechnung möglichst nicht verwendet werden, da die Anzahl der
|
973
|
+
#BLZs mit Sonderregelungen doch sehr groß ist.
|
868
974
|
#
|
869
975
|
#Es ist möglich, sowohl die Prüfung auf Stimmigkeit der Kontonummer als auch
|
870
|
-
#
|
871
|
-
#
|
976
|
+
#die "schwarze Liste" (ausgeschlossene BLZs) zu deaktivieren. Falls die IBAN
|
977
|
+
#ohne Test der Blacklist berechnet werden soll, ist vor die BLZ ein @ zu
|
872
978
|
#setzen; falls auch bei falscher Bankverbindung ein IBAN berechnet werden
|
873
979
|
#soll, ist vor die BLZ ein + zu setzen. Um beide Prüfungen zu deaktiviern,
|
874
980
|
#kann @+ (oder +@) vor die BLZ gesetzt werden. Die so erhaltenen IBANs sind
|
875
|
-
#dann
|
981
|
+
#dann u.U. allerdings wohl nicht gültig.
|
982
|
+
#
|
983
|
+
#Rückgabewert ist der generierte IBAN oder nil, falls ein Fehler aufgetreten
|
984
|
+
#ist. Die genauere Fehlerursache läßt sich mit der Funktion
|
985
|
+
#KontoCheckRaw::iban_gen() feststellen.
|
876
986
|
#
|
877
|
-
#
|
878
|
-
#
|
987
|
+
#Bei vielen Banken wird die BLZ und damit der BIC ebenfalls ersetzt. Der
|
988
|
+
#gültige BIC sowie viele andere Werte interessante Werte lassen sich durch die
|
989
|
+
#Funktion KontoCheckRaw::iban_gen() ermitteln.
|
879
990
|
|
880
991
|
def iban_gen(*args)
|
881
992
|
KontoCheckRaw::iban_gen(*args).first
|
882
993
|
end
|
883
994
|
|
884
|
-
|
885
|
-
|
995
|
+
#===KontoCheck::ipi_gen( zweck)
|
996
|
+
#=====KontoCheckRaw::ipi_gen( zweck)
|
886
997
|
#
|
887
998
|
#Diese Funktion generiert einen "Strukturierten Verwendungszweck" für SEPA-Überweisungen.
|
888
999
|
#Der Rückgabewert ist der Strukturierte Verwendungszweck als String oder nil, falls ein Fehler
|
@@ -896,8 +1007,8 @@ module KontoCheck
|
|
896
1007
|
KontoCheckRaw::ipi_gen(zweck).first
|
897
1008
|
end
|
898
1009
|
|
899
|
-
|
900
|
-
|
1010
|
+
#===KontoCheck::ipi_check( zweck)
|
1011
|
+
#=====KontoCheckRaw::ipi_check( zweck)
|
901
1012
|
#
|
902
1013
|
#Die Funktion testet, ob ein Strukturierter Verwendungszweck gültig ist (Anzahl Zeichen, Prüfziffer). Der
|
903
1014
|
#Rückgabewert ist true oder false.
|
@@ -906,32 +1017,35 @@ module KontoCheck
|
|
906
1017
|
KontoCheckRaw::ipi_check(zweck)>0?true:false
|
907
1018
|
end
|
908
1019
|
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
1020
|
+
#===KontoCheck::suche()
|
1021
|
+
#=====KontoCheck::search()
|
1022
|
+
#=====KontoCheck::SEARCH_KEYS
|
1023
|
+
#=====KontoCheck::SEARCH_KEY_MAPPINGS
|
1024
|
+
#=====KontoCheckRaw::bank_suche_bic(search_bic)
|
1025
|
+
#=====KontoCheckRaw::bank_suche_blz(blz1 [,blz2])
|
1026
|
+
#=====KontoCheckRaw::bank_suche_namen(name)
|
1027
|
+
#=====KontoCheckRaw::bank_suche_namen_kurz(short_name)
|
1028
|
+
#=====KontoCheckRaw::bank_suche_plz(plz1 [,plz2])
|
1029
|
+
#=====KontoCheckRaw::bank_suche_pz(pz1 [,pz2])
|
1030
|
+
#=====KontoCheckRaw::bank_suche_ort(suchort)
|
1031
|
+
#=====KontoCheckRaw::bank_suche_regel(regel1 [,regel2])
|
1032
|
+
#=====KontoCheckRaw::bank_suche_volltext(suchwort)
|
1033
|
+
#=====KontoCheckRaw::bank_suche_multiple(suchworte)
|
920
1034
|
#
|
921
1035
|
#Diese Funktion sucht alle Banken, die auf bestimmte Suchmuster passen.
|
922
|
-
#
|
923
|
-
#
|
924
|
-
#
|
1036
|
+
#Mit dem Schlüssel multiple ist auch eine Suche nach mehreren Kriterien
|
1037
|
+
#möglich; näheres findet sich in der Beschreibung von
|
1038
|
+
#KontoCheckRaw::bank_suche_multiple().
|
925
1039
|
#
|
926
1040
|
#Eine Suche ist möglich nach den Schlüsseln BIC, Bankleitzahl, Postleitzahl,
|
927
|
-
#Prüfziffer, Ort, Name oder Kurzname. Bei den alphanumerischen
|
928
|
-
#Ort, Name, Kurzname) ist der Suchschlüssel der Wortanfang des zu
|
929
|
-
#Feldes (ohne Unterscheidung zwischen Groß- und Kleinschreibung); bei
|
930
|
-
#numerischen Feldern (BLZ, PLZ, Prüfziffer) ist die Suche nach einem
|
931
|
-
#Wert oder nach einem Wertebereich möglich; dieser wird dann
|
932
|
-
#Array mit zwei Elementen. Der Rückgabewert ist jeweils ein Array
|
933
|
-
#Bankleitzahlen, oder nil falls die Suche fehlschlug. Die Ursache für
|
934
|
-
#fehlgeschlagene Suche läßt sich nur mit den Funktionen der KontoCheckRaw
|
1041
|
+
#Prüfziffer, Ort, Name oder Kurzname oder Volltext. Bei den alphanumerischen
|
1042
|
+
#Feldern (BIC, Ort, Name, Kurzname) ist der Suchschlüssel der Wortanfang des zu
|
1043
|
+
#suchenden Feldes (ohne Unterscheidung zwischen Groß- und Kleinschreibung); bei
|
1044
|
+
#den numerischen Feldern (BLZ, PLZ, Prüfziffer) ist die Suche nach einem
|
1045
|
+
#bestimmten Wert oder nach einem Wertebereich möglich; dieser wird dann
|
1046
|
+
#angegeben als Array mit zwei Elementen. Der Rückgabewert ist jeweils ein Array
|
1047
|
+
#mit den Bankleitzahlen, oder nil falls die Suche fehlschlug. Die Ursache für
|
1048
|
+
#eine fehlgeschlagene Suche läßt sich nur mit den Funktionen der KontoCheckRaw
|
935
1049
|
#Bibliothek näher lokalisieren.
|
936
1050
|
#
|
937
1051
|
#Die Funktion KontoCheck::search() ist ein Alias für die Funktion
|
@@ -941,6 +1055,14 @@ module KontoCheck
|
|
941
1055
|
#definiert; in der Variablen KontoCheck::SEARCH_KEY_MAPPINGS finden sich noch
|
942
1056
|
#einige Aliasdefinitionen zu den Suchschlüsseln.
|
943
1057
|
#
|
1058
|
+
#Für das Suchkommando von KontoCheckRaw::bank_suche_multiple() gibt es die Alias-
|
1059
|
+
#Varianten cmd, such_cmd und search_cmd.
|
1060
|
+
#
|
1061
|
+
#Bei allen Suchfeldern wird noch die Option :uniq=>[01] unterstützt. Bei uniq==0
|
1062
|
+
#werden alle gefundenen Zweigstellen ausgegeben, bei uniq==1 nur jeweils die
|
1063
|
+
#erste gefundene Zweigstelle. Das Schlüsselwort ist in allen Suchfunktionen
|
1064
|
+
#vorhanden; in der C-Bibliothek ist es nur für lut_suche_multiple() implementiert.
|
1065
|
+
#
|
944
1066
|
#Hier einige Beispiele möglicher Suchaufrufe:
|
945
1067
|
#
|
946
1068
|
# s=KontoCheck::suche( :blz => [13051172,13070172] ) BLZ-Bereich
|
@@ -950,25 +1072,193 @@ module KontoCheck
|
|
950
1072
|
# s=KontoCheck::suche( :pz => 90 ) Prüfziffer numerisch
|
951
1073
|
# s=KontoCheck::suche( :pz => '90' ) Prüfziffer als String
|
952
1074
|
# s=KontoCheck::suche( :pz => ['95',98] ) Prüfzifferbereich gemischt String/numerisch auch möglich
|
1075
|
+
# s=KontoCheck::suche( :regel => [20,25] ) IBAN-Regeln
|
953
1076
|
# s=KontoCheck::suche( :name => 'postbank' )
|
954
1077
|
# s=KontoCheck::suche( :ort => 'lingenfeld' )
|
1078
|
+
# r=KontoCheck::suche( :volltext=>'südwest',:uniq=>1) Volltextsuche mit uniq
|
1079
|
+
# s=KontoCheck::suche( :multiple=>'deutsche bank mannheim y:sparda x:südwest',:uniq=>1, :cmd=>'ac+xy')
|
1080
|
+
# Suche nach mehreren Kriterien: Deutsche Bank in Mannheim oder Sparda Südwest
|
1081
|
+
# r=KontoCheck::suche( :multiple=>'deutsche bank mannheim sparda mainz', :cmd=>'abc+de')
|
1082
|
+
# nochmal dasselbe, nur Sparda in Mainz
|
1083
|
+
|
955
1084
|
|
956
1085
|
def suche(options={})
|
957
|
-
key
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
1086
|
+
search_cmd=value=key=""
|
1087
|
+
sort=uniq=1
|
1088
|
+
options.each{ |k,v|
|
1089
|
+
uniq=v if k.to_s=="uniq"
|
1090
|
+
sort=v if k.to_s=="sort"
|
1091
|
+
search_cmd=v if k.to_s=="such_cmd" or k.to_s=="search_cmd" or k.to_s=="cmd"
|
1092
|
+
if SEARCH_KEYS.include?(k)
|
1093
|
+
key=k
|
1094
|
+
value=options[k]
|
1095
|
+
end
|
1096
|
+
if SEARCH_KEY_MAPPINGS.keys.include?(k)
|
1097
|
+
key=SEARCH_KEY_MAPPINGS[k]
|
1098
|
+
value=options[k]
|
1099
|
+
end
|
1100
|
+
}
|
1101
|
+
raise 'no valid search key found' if key.length==0
|
1102
|
+
uniq=2 if uniq>0 # sortieren und uniq
|
1103
|
+
uniq=1 if sort>0 && uniq==0 # nur sortieren
|
1104
|
+
raw_results = KontoCheckRaw::send("bank_suche_#{key}",value,search_cmd,uniq)
|
962
1105
|
raw_results[1]
|
963
1106
|
end
|
964
1107
|
alias_method :search, :suche
|
965
1108
|
|
966
|
-
|
967
|
-
|
968
|
-
|
1109
|
+
#===KontoCheck::bank_suche_bic( search_bic [,sort_uniq [,sort]])
|
1110
|
+
#=====KontoCheckRaw::bank_suche_bic( search_bic [,sort_uniq [,sort]])
|
1111
|
+
#=====KontoCheck::suche()
|
1112
|
+
#
|
1113
|
+
#Diese Funktion sucht alle Banken, deren BIC mit dem angegebenen Wert <search_bic> beginnen.
|
1114
|
+
#Die Rückgabe ist ein Array mit den Bankleitzahlen, die auf das Suchmuster passen.
|
1115
|
+
|
1116
|
+
def bank_suche_bic(*args)
|
1117
|
+
KontoCheckRaw::bank_suche_bic(*args)[1]
|
1118
|
+
end
|
1119
|
+
|
1120
|
+
|
1121
|
+
#===KontoCheck::bank_suche_namen( name [,sort_uniq [,sort]])
|
1122
|
+
#===KontoCheckRaw::bank_suche_namen( name [,sort_uniq [,sort]])
|
1123
|
+
#=====KontoCheck::suche()
|
1124
|
+
#
|
1125
|
+
#Diese Funktion sucht alle Banken, deren Namen mit dem angegebenen Wert <name> beginnen.
|
1126
|
+
#Die Rückgabe ist ein Array mit den Bankleitzahlen, die auf das Suchmuster passen.
|
1127
|
+
|
1128
|
+
def bank_suche_namen(*args)
|
1129
|
+
KontoCheckRaw::bank_suche_namen(*args)[1]
|
1130
|
+
end
|
1131
|
+
|
1132
|
+
|
1133
|
+
#===KontoCheck::bank_suche_namen_kurz( name [,sort_uniq [,sort]])
|
1134
|
+
#===KontoCheckRaw::bank_suche_namen_kurz( name [,sort_uniq [,sort]])
|
1135
|
+
#=====KontoCheck::suche()
|
1136
|
+
#
|
1137
|
+
#Diese Funktion sucht alle Banken, deren Kurznamen mit dem angegebenen Wert <name> beginnen.
|
1138
|
+
#Die Rückgabe ist ein Array mit den Bankleitzahlen, die auf das Suchmuster passen.
|
1139
|
+
|
1140
|
+
def bank_suche_namen_kurz(*args)
|
1141
|
+
KontoCheckRaw::bank_suche_namen_kurz(*args)[1]
|
1142
|
+
end
|
1143
|
+
|
1144
|
+
|
1145
|
+
#===KontoCheck::bank_suche_ort( ort [,sort_uniq [,sort]])
|
1146
|
+
#===KontoCheckRaw::bank_suche_ort( ort [,sort_uniq [,sort]])
|
1147
|
+
#=====KontoCheck::suche()
|
1148
|
+
#
|
1149
|
+
#Diese Funktion sucht alle Banken, deren Sitz mit dem angegebenen Wert <ort> beginnen.
|
1150
|
+
#Die Rückgabe ist ein Array mit den Bankleitzahlen, die auf das Suchmuster passen.
|
1151
|
+
|
1152
|
+
def bank_suche_ort(*args)
|
1153
|
+
KontoCheckRaw::bank_suche_ort(*args)[1]
|
1154
|
+
end
|
1155
|
+
|
1156
|
+
|
1157
|
+
#===KontoCheck::bank_suche_blz( blz1 [,blz2 [,sort_uniq [,sort]]])
|
1158
|
+
#=====KontoCheckRaw::bank_suche_blz( blz1 [,blz2 [,sort_uniq [,sort]]])
|
1159
|
+
#=====KontoCheck::suche()
|
1160
|
+
#
|
1161
|
+
#Diese Funktion sucht alle Banken, deren BLZ gleich <blz1> ist oder (bei
|
1162
|
+
#Angabe von blz2) die im Bereich zwischen <blz1> und <blz2> liegen. Die
|
1163
|
+
#Rückgabe ist ein Array mit den Bankleitzahlen, die auf das Suchmuster passen.
|
1164
|
+
|
1165
|
+
def bank_suche_blz(*args)
|
1166
|
+
KontoCheckRaw::bank_suche_blz(*args)[1]
|
1167
|
+
end
|
1168
|
+
|
1169
|
+
|
1170
|
+
#===KontoCheck::bank_suche_plz( plz1 [,plz2 [,sort_uniq [,sort]]])
|
1171
|
+
#=====KontoCheckRaw::bank_suche_plz( plz1 [,plz2 [,sort_uniq [,sort]]])
|
1172
|
+
#=====KontoCheck::suche()
|
1173
|
+
#
|
1174
|
+
#Diese Funktion sucht alle Banken, deren PLZ gleich <plz1> ist oder (bei
|
1175
|
+
#Angabe von plz2) die im Bereich zwischen <plz1> und <plz2> liegen. Die
|
1176
|
+
#Rückgabe ist ein Array mit den Bankleitzahlen, die auf das Suchmuster passen.
|
1177
|
+
|
1178
|
+
def bank_suche_plz(*args)
|
1179
|
+
KontoCheckRaw::bank_suche_plz(*args)[1]
|
1180
|
+
end
|
1181
|
+
|
1182
|
+
|
1183
|
+
#===KontoCheck::bank_suche_pz( pz1 [,pz2 [,sort_uniq [,sort]]])
|
1184
|
+
#=====KontoCheckRaw::bank_suche_pz( pz1 [,pz2 [,sort_uniq [,sort]]])
|
1185
|
+
#=====KontoCheck::suche()
|
1186
|
+
#
|
1187
|
+
#Diese Funktion sucht alle Banken, deren Prüfziffer gleich <pz1> ist oder (bei
|
1188
|
+
#Angabe von pz2) die im Bereich zwischen <pz1> und <pz2> liegen. Die Rückgabe
|
1189
|
+
#ist ein Array mit den Bankleitzahlen, die auf das Suchmuster passen.
|
1190
|
+
|
1191
|
+
def bank_suche_pz(*args)
|
1192
|
+
KontoCheckRaw::bank_suche_pl(*args)[1]
|
1193
|
+
end
|
1194
|
+
|
1195
|
+
|
1196
|
+
#===KontoCheck::bank_suche_regel( regel1 [,regel2 [,sort_uniq [,sort]]])
|
1197
|
+
#=====KontoCheckRaw::bank_suche_regel( regel1 [,regel2 [,sort_uniq [,sort]]])
|
1198
|
+
#=====KontoCheck::suche()
|
1199
|
+
#
|
1200
|
+
#Diese Funktion sucht alle Banken, deren IBAN-Regel gleich <regel1> ist oder (bei
|
1201
|
+
#Angabe von regel2) die im Bereich zwischen <regel1> und <regel2> liegen. Die Rückgabe
|
1202
|
+
#ist ein Array mit den Bankleitzahlen, die auf das Suchmuster passen.
|
1203
|
+
|
1204
|
+
def bank_suche_regel(*args)
|
1205
|
+
KontoCheckRaw::bank_suche_regel(*args)[1]
|
1206
|
+
end
|
1207
|
+
|
1208
|
+
|
1209
|
+
#===KontoCheck::bank_suche_volltext( suchwort [,sort_uniq [,sort]])
|
1210
|
+
#=====KontoCheckRaw::bank_suche_volltext( suchwort [,sort_uniq [,sort]])
|
1211
|
+
#=====KontoCheck::suche()
|
1212
|
+
#
|
1213
|
+
#Diese Funktion sucht alle Banken, bei denen in Name, Kurzname oder Ort das
|
1214
|
+
#angegebenen Wort <suchwort> vorkommt. Dabei wird immer nur ein einziges Wort
|
1215
|
+
#gesucht; mehrere Worte führen zu einer Fehlermeldung in der KontoCheckRaw-
|
1216
|
+
#Bibliothek. Eine solche Suche läßt sich durch die Funktion
|
1217
|
+
#KontoCheck::bank_suche_multiple( ) bewerkstelligen. Die Rückgabe ist ein Array
|
1218
|
+
#mit den Bankleitzahlen, die auf das Suchmuster passen.
|
1219
|
+
|
1220
|
+
def bank_suche_volltext(*args)
|
1221
|
+
KontoCheckRaw::bank_suche_volltext(*args)[1]
|
1222
|
+
end
|
1223
|
+
|
1224
|
+
|
1225
|
+
#===KontoCheck::bank_suche_multiple( suchtext [,such_cmd] [,uniq])
|
1226
|
+
#===KontoCheckRaw::bank_suche_multiple( suchtext [,such_cmd] [,uniq])
|
1227
|
+
#=====KontoCheck::suche()
|
1228
|
+
#
|
1229
|
+
#Diese Funktion sucht alle Banken, die mehreren Kriterien entsprechen. Dabei
|
1230
|
+
#können bis zu 26 Teilsuchen definiert werden, die beliebig miteinander
|
1231
|
+
#verknüpft werden können (additiv, subtraktiv und multiplikativ). Eine nähere
|
1232
|
+
#Beschreibung der Funktion und der Parameter findet sich unter
|
1233
|
+
#KontoCheckRaw::bank_suche_multiple( ). Die Rückgabe ist ein Array
|
1234
|
+
#mit den Bankleitzahlen, die auf das Suchmuster passen.
|
1235
|
+
|
1236
|
+
#
|
1237
|
+
#====Aufruf:
|
1238
|
+
#result=bank_suche_multiple(such_string [,such_cmd] [,uniq])
|
1239
|
+
|
1240
|
+
def bank_suche_multiple(*args)
|
1241
|
+
KontoCheckRaw::bank_suche_multiple(*args)[1]
|
1242
|
+
end
|
1243
|
+
|
1244
|
+
|
1245
|
+
|
1246
|
+
#===KontoCheck::version( [mode] )
|
1247
|
+
#=====KontoCheckRaw::version( [mode] )
|
1248
|
+
#Diese Funktion gibt die Versions-Infos der C-Bibliothek zurück.
|
1249
|
+
#
|
1250
|
+
#====Mögliche Werte für mode:
|
1251
|
+
#* 0 bzw. ohne Parameter: Versionsstring der C-Bibliothek
|
1252
|
+
#* 1: Versionsnummer
|
1253
|
+
#* 2: Versionsdatum
|
1254
|
+
#* 3: Compilerdatum und -zeit
|
1255
|
+
#* 4: Datum der Prüfziffermethoden
|
1256
|
+
#* 5: Datum der IBAN-Regeln
|
1257
|
+
#* 6: Klartext-Datum der Bibliotheksversion
|
1258
|
+
#* 7: Versionstyp (devel, beta, final)
|
969
1259
|
|
970
|
-
def version()
|
971
|
-
KontoCheckRaw::version()
|
1260
|
+
def version(*args)
|
1261
|
+
KontoCheckRaw::version(*args)
|
972
1262
|
end
|
973
1263
|
|
974
1264
|
end
|