konto_check 0.2.1 → 5.2.1
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.
- 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
|