konto_check 5.3.0 → 5.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -336,6 +336,8 @@ extern const char *lut2_feld_namen[256];
336
336
  */
337
337
 
338
338
  #undef FALSE
339
+ #define INVALID_BIQ_INDEX -149
340
+ #define ARRAY_INDEX_OUT_OF_RANGE -148
339
341
  #define IBAN_ONLY_GERMAN -147
340
342
  #define INVALID_PARAMETER_TYPE -146
341
343
  #define BIC_ONLY_GERMAN -145
@@ -379,31 +381,6 @@ extern const char *lut2_feld_namen[256];
379
381
  #define KTO_CHECK_NO_DEFAULT_BLOCK -107
380
382
  #define KTO_CHECK_KEY_NOT_FOUND -106
381
383
  #define LUT2_NO_LONGER_VALID_BETTER -105
382
- #define DTA_SRC_KTO_DIFFERENT -104
383
- #define DTA_SRC_BLZ_DIFFERENT -103
384
- #define DTA_CR_LF_IN_FILE -102
385
- #define DTA_INVALID_C_EXTENSION -101
386
- #define DTA_FOUND_SET_A_NOT_C -100
387
- #define DTA_FOUND_SET_E_NOT_C -99
388
- #define DTA_FOUND_SET_C_NOT_EXTENSION -98
389
- #define DTA_FOUND_SET_E_NOT_EXTENSION -97
390
- #define DTA_INVALID_EXTENSION_COUNT -96
391
- #define DTA_INVALID_NUM -95
392
- #define DTA_INVALID_CHARS -94
393
- #define DTA_CURRENCY_NOT_EURO -93
394
- #define DTA_EMPTY_AMOUNT -92
395
- #define DTA_INVALID_TEXT_KEY -91
396
- #define DTA_EMPTY_STRING -90
397
- #define DTA_MARKER_A_NOT_FOUND -89
398
- #define DTA_MARKER_C_NOT_FOUND -88
399
- #define DTA_MARKER_E_NOT_FOUND -87
400
- #define DTA_INVALID_SET_C_LEN -86
401
- #define DTA_INVALID_SET_LEN -85
402
- #define DTA_WAERUNG_NOT_EURO -84
403
- #define DTA_INVALID_ISSUE_DATE -83
404
- #define DTA_INVALID_DATE -82
405
- #define DTA_FORMAT_ERROR -81
406
- #define DTA_FILE_WITH_ERRORS -80
407
384
  #define INVALID_SEARCH_RANGE -79
408
385
  #define KEY_NOT_FOUND -78
409
386
  #define BAV_FALSE -77
@@ -1063,6 +1040,9 @@ DLL_EXPORT const char *kto_check_retval2dos(int retval);
1063
1040
  /* Pr�fziffer (numerisch) in String umwandeln */
1064
1041
  const DLL_EXPORT char *pz2str(int pz,int *ret);
1065
1042
 
1043
+ /* Flag f�r neue Pr�fziffermethoden setzen bzw. abfragen */
1044
+ DLL_EXPORT int pz_aenderungen_enable(int set);
1045
+
1066
1046
  /*
1067
1047
  * ######################################################################
1068
1048
  * # globale Variablen #
@@ -43,7 +43,7 @@ vim: ft=c:set si:set fileencoding=utf-8
43
43
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
44
44
  */
45
45
 
46
- #line 54 "konto_check_raw_ruby.lxx"
46
+ #line 56 "konto_check_raw_ruby.lxx"
47
47
  // Include the Ruby headers and goodies
48
48
  #include "ruby.h"
49
49
  #include <stdio.h>
@@ -2400,6 +2400,1230 @@ static VALUE bank_nr(int argc,VALUE* argv,VALUE self)
2400
2400
  return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(nr),INT2FIX(retval));
2401
2401
  }
2402
2402
 
2403
+ /**
2404
+ * get_params_bic()
2405
+ *
2406
+ * extract params from argc/argv for the bic_*(), biq_*() and iban_*() function groups
2407
+ */
2408
+ static void get_params_bic(int argc,VALUE* argv,char *bic,int *argi1,int *argi2,int arg_mode)
2409
+ {
2410
+ int len,maxlen=11;
2411
+ VALUE arg1_rb,arg2_rb,arg3_rb;
2412
+
2413
+ switch(arg_mode){
2414
+ case 0: /* ein notwendiger, zwei optionale Parameter (für bic_*()) */
2415
+ rb_scan_args(argc,argv,"12",&arg1_rb,&arg2_rb,&arg3_rb);
2416
+ if(NIL_P(arg2_rb)) /* mode (default 0) */
2417
+ *argi1=0;
2418
+ else
2419
+ *argi1=NUM2INT(arg2_rb);
2420
+ if(NIL_P(arg3_rb)) /* Filiale (Default Hauptstelle) */
2421
+ *argi2=0;
2422
+ else
2423
+ *argi2=NUM2INT(arg3_rb);
2424
+ break;
2425
+
2426
+ case 1: /* ein notwendiger Integer-Parameter (für biq_*()) */
2427
+ rb_scan_args(argc,argv,"10",&arg1_rb);
2428
+ *argi1=NUM2INT(arg1_rb);
2429
+ return;
2430
+
2431
+ case 2: /* ein notwendiger, ein optionaler Parameter (für bic_info()) */
2432
+ case 3: /* ein notwendiger, ein optionaler Parameter (für iban_*() */
2433
+ if(arg_mode==2)
2434
+ maxlen=9;
2435
+ else
2436
+ maxlen=22;
2437
+ rb_scan_args(argc,argv,"11",&arg1_rb,&arg2_rb);
2438
+ if(NIL_P(arg2_rb)) /* Filiale bei iban_*(), bzw. mode bei bic_info() */
2439
+ *argi1=0;
2440
+ else
2441
+ *argi1=NUM2INT(arg2_rb);
2442
+ break;
2443
+
2444
+ default:
2445
+ break;
2446
+ }
2447
+
2448
+ if(TYPE(arg1_rb)!=RUBY_T_STRING)rb_raise(rb_eTypeError,"%s","First parameter must be string.");
2449
+ if((len=RSTRING_LEN(arg1_rb))>maxlen)len=maxlen;
2450
+ if(bic){
2451
+ strncpy(bic,RSTRING_PTR(arg1_rb),len);
2452
+ *(bic+len)=0;
2453
+ }
2454
+ }
2455
+
2456
+ /**
2457
+ * ===KontoCheckRaw::bic_info( bic [,mode [,filiale]])
2458
+ * =====KontoCheck::bic_info( bic [,mode [,filiale]])
2459
+ *
2460
+ * Diese Funktion sucht Banken mit einem bestimmten BIC und gibt die
2461
+ * gefundene Anzahl sowie den Startindex in den internen Arrays zurück. Sie
2462
+ * ist für die Funktionsgruppe biq_* gedacht, falls mehrere Werte aus der
2463
+ * BLZ-Datei bestimmt werden sollen (z.B. verschiedene Felder oder Werte für
2464
+ * mehrere Zweigstellen einer Bank). So erspart man sich die relativ
2465
+ * aufwendige Suche; sie ist nur einmal notwendig.
2466
+ *
2467
+ * Parameter:
2468
+ * * bic: BIC zu dem die Banken bestimmt werden sollen (komplett oder teilweise)
2469
+ * * mode: Suchmodus; er kann die folgenden Werte annehmen:
2470
+ * mode=1: Suche in allen BICs der BLZ-Datei (Haupt- und Nebenstellen)
2471
+ * mode=2: Suche nur in den BICs der Hauptstellen
2472
+ * mode=0: zunächst Suche bei den Hauptstellen, dann bei Haupt- und Nebenstellen;
2473
+ * falls dann noch nichts gefunden wurde, werden die drei letzten Stellen
2474
+ * (Filialcode) mit XXX gefüllt und noch einmal eine Suche gemacht.
2475
+ *
2476
+ * Zurückgegeben wird ein Array mit drei Elementen: Das erste ist der
2477
+ * Startindex in den internen Arrays (zur Verwendung in der Funktionsgruppe
2478
+ * biq_*()), das zweite die Anzahl der gefundenen BICs und das dritte ein
2479
+ * Statuscode. Der Startindex kann sowohl positiv als auch negativ sein; im
2480
+ * Fehlerfall wird nil zurückgegeben. Daher sollte in jedem Fall der Statuscode
2481
+ * und die zurückgegebee Anzahl gefundener Banken kontrolliert werden.
2482
+ *
2483
+ * Mögliche Statuscodes:
2484
+ *
2485
+ * * -78 KEY_NOT_FOUND "Die Suche lieferte kein Ergebnis"
2486
+ * * -70 LUT1_FILE_USED "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2487
+ * * -46 LUT2_BIC_NOT_INITIALIZED "Das Feld BIC wurde nicht initialisiert"
2488
+ * * -40 LUT2_NOT_INITIALIZED "die Programmbibliothek wurde noch nicht initialisiert"
2489
+ * * -10 FILE_READ_ERROR "kann Datei nicht lesen"
2490
+ * * -9 ERROR_MALLOC "kann keinen Speicher allokieren"
2491
+ * * 1 OK "ok"
2492
+ * * 26 OK_SHORT_BIC_USED "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2493
+ */
2494
+ static VALUE bic_info_rb(int argc,VALUE* argv,VALUE self)
2495
+ {
2496
+ char bic[24],error_msg[512];
2497
+ int retval,cnt,mode,start_idx;
2498
+
2499
+ get_params_bic(argc,argv,bic,&mode,NULL,2);
2500
+ retval=bic_info(bic,mode,&cnt,&start_idx);
2501
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2502
+ return rb_ary_new3(3,retval<0?Qnil:INT2FIX(start_idx),INT2FIX(cnt),INT2FIX(retval));
2503
+ }
2504
+
2505
+ /**
2506
+ * ===KontoCheckRaw::bic_name( bic [,mode [,filiale]])
2507
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2508
+ * =====KontoCheck::bic_name( bic [,mode [,filiale]])
2509
+ *
2510
+ * Diese Funktion liefert den Namen einer Bank. Der Rückgabewert ist ein
2511
+ * Array mit zwei Elementen: im ersten steht ein String mit dem Namen, im
2512
+ * zweiten ein Statuscode. Im Fehlerfall wird für den Namen nil zurückgegeben.
2513
+ *
2514
+ * Mögliche Statuscodes:
2515
+ *
2516
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2517
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2518
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2519
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2520
+ * * -51 (LUT2_NAME_NOT_INITIALIZED) "Das Feld Bankname wurde nicht initialisiert"
2521
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2522
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2523
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2524
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2525
+ * * 1 (OK) "ok"
2526
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2527
+ */
2528
+ static VALUE bic_name_rb(int argc,VALUE* argv,VALUE self)
2529
+ {
2530
+ char bic[16],error_msg[512];
2531
+ const char *name;
2532
+ int retval,filiale,mode;
2533
+
2534
+ get_params_bic(argc,argv,bic,&mode,&filiale,0);
2535
+ name=bic_name(bic,mode,filiale,&retval);
2536
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2537
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(name),INT2FIX(retval));
2538
+ }
2539
+
2540
+ /**
2541
+ * ===KontoCheckRaw::bic_name_kurz( bic [,mode [,filiale]])
2542
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2543
+ * =====KontoCheck::bic_name_kurz( bic [,mode [,filiale]])
2544
+ *
2545
+ * Diese Funktion liefert den Kurznamen einer Bank. Der Rückgabewert ist ein
2546
+ * Array mit zwei Elementen: im ersten steht ein String mit dem Namen, im
2547
+ * zweiten ein Statuscode. Im Fehlerfall wird für den Namen nil zurückgegeben.
2548
+ *
2549
+ * Mögliche Statuscodes:
2550
+ *
2551
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2552
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2553
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2554
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2555
+ * * -48 (LUT2_NAME_KURZ_NOT_INITIALIZED) "Das Feld Kurzname wurde nicht initialisiert"
2556
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2557
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2558
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2559
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2560
+ * * 1 (OK) "ok"
2561
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2562
+ */
2563
+ static VALUE bic_name_kurz_rb(int argc,VALUE* argv,VALUE self)
2564
+ {
2565
+ char bic[16],error_msg[512];
2566
+ const char *name;
2567
+ int retval,filiale,mode;
2568
+
2569
+ get_params_bic(argc,argv,bic,&mode,&filiale,0);
2570
+ name=bic_name_kurz(bic,mode,filiale,&retval);
2571
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2572
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(name),INT2FIX(retval));
2573
+ }
2574
+
2575
+ /**
2576
+ * ===KontoCheckRaw::bic_ort( bic [,mode [,filiale]])
2577
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2578
+ * =====KontoCheck::bic_ort( bic [,mode [,filiale]])
2579
+ *
2580
+ * Diese Funktion liefert den Ort einer Bank. Falls der Parameter filiale nicht
2581
+ * angegeben ist, wird der Sitz der Hauptstelle ausgegeben. Der Rückgabewert
2582
+ * ist ein Array mit zwei Elementen: im ersten steht ein String mit dem Namen,
2583
+ * im zweiten ein Statuscode. Im Fehlerfall wird für den Ort nil
2584
+ * zurückgegeben.
2585
+ *
2586
+ * Mögliche Statuscodes:
2587
+ *
2588
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2589
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2590
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2591
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2592
+ * * -49 (LUT2_ORT_NOT_INITIALIZED) "Das Feld Ort wurde nicht initialisiert"
2593
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2594
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2595
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2596
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2597
+ * * 1 (OK) "ok"
2598
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2599
+ */
2600
+ static VALUE bic_ort_rb(int argc,VALUE* argv,VALUE self)
2601
+ {
2602
+ char bic[16],error_msg[512];
2603
+ const char *ort;
2604
+ int retval,filiale,mode;
2605
+
2606
+ get_params_bic(argc,argv,bic,&mode,&filiale,0);
2607
+ ort=bic_ort(bic,mode,filiale,&retval);
2608
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2609
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(ort),INT2FIX(retval));
2610
+ }
2611
+
2612
+ /**
2613
+ * ===KontoCheckRaw::bic_plz( bic [,mode [,filiale]])
2614
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2615
+ * =====KontoCheck::bic_plz( bic [,mode [,filiale]])
2616
+ *
2617
+ * Diese Funktion liefert die Postleitzahl einer Bank. Falls der Parameter
2618
+ * filiale nicht angegeben ist, wird die PLZ der Hauptstelle ausgegeben. Der
2619
+ * Rückgabewert ist ein Array mit zwei Elementen: im ersten steht die PLZ, im
2620
+ * zweiten ein Statuscode. Im Fehlerfall wird für die PLZ nil zurückgegeben.
2621
+ *
2622
+ * Mögliche Statuscodes:
2623
+ *
2624
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2625
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2626
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2627
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2628
+ * * -50 (LUT2_PLZ_NOT_INITIALIZED) "Das Feld PLZ wurde nicht initialisiert"
2629
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2630
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2631
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2632
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2633
+ * * 1 (OK) "ok"
2634
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2635
+ */
2636
+ static VALUE bic_plz_rb(int argc,VALUE* argv,VALUE self)
2637
+ {
2638
+ char bic[16],error_msg[512];
2639
+ int retval,plz,filiale,mode;
2640
+
2641
+ get_params_bic(argc,argv,bic,&mode,&filiale,0);
2642
+ plz=bic_plz(bic,mode,filiale,&retval);
2643
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2644
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(plz),INT2FIX(retval));
2645
+ }
2646
+
2647
+ /**
2648
+ * ===KontoCheckRaw::bic_pz( bic [,mode [,filiale]])
2649
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2650
+ * =====KontoCheck::bic_pz( bic [,mode [,filiale]])
2651
+ *
2652
+ * Diese Funktion liefert die Prüfziffer einer Bank. Die Funktion unterstützt
2653
+ * keine Filialen; zu jeder bic kann es in der LUT-Datei nur eine
2654
+ * Prüfziffermethode geben. Der Rückgabewert ist ein Array mit zwei Elementen:
2655
+ * im ersten steht die Prüfziffer, im zweiten ein Statuscode. Im Fehlerfall
2656
+ * wird für den Prüfziffer nil zurückgegeben.
2657
+ *
2658
+ * Mögliche Statuscodes:
2659
+ *
2660
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2661
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2662
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2663
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2664
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2665
+ * * -45 (LUT2_PZ_NOT_INITIALIZED) "Das Feld Prüfziffer wurde nicht initialisiert"
2666
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2667
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2668
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2669
+ * * 1 (OK) "ok"
2670
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2671
+ */
2672
+ static VALUE bic_pz_rb(int argc,VALUE* argv,VALUE self)
2673
+ {
2674
+ char bic[16],error_msg[512];
2675
+ int retval,pz,filiale,mode;
2676
+
2677
+ get_params_bic(argc,argv,bic,&mode,&filiale,0);
2678
+ pz=bic_pz(bic,mode,filiale,&retval);
2679
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2680
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(pz),INT2FIX(retval));
2681
+ }
2682
+
2683
+ /**
2684
+ * ===KontoCheckRaw::bic_bic( bic [,mode [,filiale]])
2685
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2686
+ * =====KontoCheck::bic_bic( bic [,mode [,filiale]])
2687
+ *
2688
+ * Diese Funktion liefert den BIC (Bank Identifier Code) einer Bank. Der
2689
+ * Rückgabewert ist ein Array mit zwei Elementen: im ersten steht ein String
2690
+ * mit dem BIC, im zweiten ein Statuscode. Im Fehlerfall wird für den BIC
2691
+ * nil zurückgegeben.
2692
+ *
2693
+ * Mögliche Statuscodes:
2694
+ *
2695
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2696
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2697
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2698
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2699
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2700
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2701
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2702
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2703
+ * * 1 (OK) "ok"
2704
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2705
+ */
2706
+ static VALUE bic_bic_rb(int argc,VALUE* argv,VALUE self)
2707
+ {
2708
+ char bic[16],error_msg[512];
2709
+ const char *ptr;
2710
+ int retval,filiale,mode;
2711
+
2712
+ get_params_bic(argc,argv,bic,&mode,&filiale,0);
2713
+ ptr=bic_bic(bic,mode,filiale,&retval);
2714
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2715
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(ptr),INT2FIX(retval));
2716
+ }
2717
+
2718
+ /**
2719
+ * ===KontoCheckRaw::bic_aenderung( bic [,mode [,filiale]])
2720
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2721
+ * =====KontoCheck::bic_aenderung( bic [,mode [,filiale]])
2722
+ *
2723
+ * Diese Funktion liefert das 'Änderung' Flag einer Bank (als string).
2724
+ * Mögliche Werte sind: A (Addition), M (Modified), U (Unchanged), D
2725
+ * (Deletion). Der Rückgabewert ist ein Array mit zwei Elementen: im ersten
2726
+ * steht ein String mit dem Änderungsflag, im zweiten ein Statuscode. Im
2727
+ * Fehlerfall wird für das Flag nil zurückgegeben.
2728
+ *
2729
+ * Mögliche Statuscodes:
2730
+ *
2731
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2732
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2733
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2734
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2735
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2736
+ * * -43 (LUT2_AENDERUNG_NOT_INITIALIZED) "Das Feld Änderung wurde nicht initialisiert"
2737
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2738
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2739
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2740
+ * * 1 (OK) "ok"
2741
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2742
+ */
2743
+ static VALUE bic_aenderung_rb(int argc,VALUE* argv,VALUE self)
2744
+ {
2745
+ char bic[16],aenderung[2],error_msg[512];
2746
+ int retval,filiale,mode;
2747
+
2748
+ get_params_bic(argc,argv,bic,&mode,&filiale,0);
2749
+ *aenderung=bic_aenderung(bic,mode,filiale,&retval);
2750
+ aenderung[1]=0;
2751
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2752
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(aenderung),INT2FIX(retval));
2753
+ }
2754
+
2755
+ /**
2756
+ * ===KontoCheckRaw::bic_loeschung( bic [,mode [,filiale]])
2757
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2758
+ * =====KontoCheck::bic_loeschung( bic [,mode [,filiale]])
2759
+ *
2760
+ * Diese Funktion liefert das Lösch-Flag für eine Bank zurück (als Integer;
2761
+ * mögliche Werte sind 0 und 1). Der Rückgabewert ist ein Array mit zwei
2762
+ * Elementen: im ersten steht das Flag, im zweiten ein Statuscode. Im
2763
+ * Fehlerfall wird für das Flag nil zurückgegeben.
2764
+ *
2765
+ * Mögliche Statuscodes:
2766
+ *
2767
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2768
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2769
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2770
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2771
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2772
+ * * -42 (LUT2_LOESCHUNG_NOT_INITIALIZED) "Das Feld Löschung wurde nicht initialisiert"
2773
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2774
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2775
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2776
+ * * 1 (OK) "ok"
2777
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2778
+ */
2779
+ static VALUE bic_loeschung_rb(int argc,VALUE* argv,VALUE self)
2780
+ {
2781
+ char bic[16],error_msg[512];
2782
+ int retval,loeschung,filiale,mode;
2783
+
2784
+ get_params_bic(argc,argv,bic,&mode,&filiale,0);
2785
+ loeschung=bic_loeschung(bic,mode,filiale,&retval)-'0';
2786
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2787
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(loeschung),INT2FIX(retval));
2788
+ }
2789
+
2790
+ /**
2791
+ * ===KontoCheckRaw::bic_nachfolge_blz( bic [,mode [,filiale]])
2792
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2793
+ * =====KontoCheck::bic_nachfolge_blz( bic [,mode [,filiale]])
2794
+ *
2795
+ * Diese Funktion liefert die Nachfolge-BLZ für eine Bank, die gelöscht werden
2796
+ * soll (bei der das 'Löschung' Flag 1 ist). Der Rückgabewert ist ein Array mit
2797
+ * zwei Elementen: im ersten steht die Nachfolge-BLZ, im zweiten ein Statuscode. Im
2798
+ * Fehlerfall wird für die Nachfolge-BLZ nil zurückgegeben.
2799
+ *
2800
+ * Mögliche Statuscodes:
2801
+ *
2802
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2803
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2804
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2805
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2806
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2807
+ * * -41 (LUT2_NACHFOLGE_BLZ_NOT_INITIALIZED) "Das Feld Nachfolge-BLZ wurde nicht initialisiert"
2808
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2809
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2810
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2811
+ * * 1 (OK) "ok"
2812
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2813
+ */
2814
+ static VALUE bic_nachfolge_blz_rb(int argc,VALUE* argv,VALUE self)
2815
+ {
2816
+ char bic[16],error_msg[512];
2817
+ int retval,n_blz,filiale,mode;
2818
+
2819
+ get_params_bic(argc,argv,bic,&mode,&filiale,0);
2820
+ n_blz=bic_nachfolge_blz(bic,mode,filiale,&retval);
2821
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2822
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(n_blz),INT2FIX(retval));
2823
+ }
2824
+
2825
+ /**
2826
+ * ===KontoCheckRaw::bic_pan( bic [,mode [,filiale]])
2827
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2828
+ * =====KontoCheck::bic_pan( bic [,mode [,filiale]])
2829
+ *
2830
+ * Diese Funktion liefert den PAN (Primary Account Number) einer Bank. Der
2831
+ * Rückgabewert ist ein Array mit zwei Elementen: im ersten steht der PAN, im
2832
+ * zweiten ein Statuscode. Im Fehlerfall wird für den PAN nil zurückgegeben.
2833
+ *
2834
+ * Mögliche Statuscodes:
2835
+ *
2836
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2837
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2838
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2839
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2840
+ * * -47 (LUT2_PAN_NOT_INITIALIZED) "Das Feld PAN wurde nicht initialisiert"
2841
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2842
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2843
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2844
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2845
+ * * 1 (OK) "ok"
2846
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2847
+ */
2848
+ static VALUE bic_pan_rb(int argc,VALUE* argv,VALUE self)
2849
+ {
2850
+ char bic[16],error_msg[512];
2851
+ int retval,pan,filiale,mode;
2852
+
2853
+ get_params_bic(argc,argv,bic,&mode,&filiale,0);
2854
+ pan=bic_pan(bic,mode,filiale,&retval);
2855
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2856
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(pan),INT2FIX(retval));
2857
+ }
2858
+
2859
+ /**
2860
+ * ===KontoCheckRaw::bic_nr( bic [,mode [,filiale]])
2861
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2862
+ * =====KontoCheck::bic_nr( bic [,mode [,filiale]])
2863
+ *
2864
+ * Diese Funktion liefert die laufende Nummer einer Bank (internes Feld der
2865
+ * BLZ-Datei). Der Wert wird wahrscheinlich nicht oft benötigt, ist aber der
2866
+ * Vollständigkeit halber enthalten. Der Rückgabewert ist ein Array mit zwei
2867
+ * Elementen: im ersten steht die Nummer, im zweiten ein Statuscode. Im Fehlerfall
2868
+ * wird für die Nummer nil zurückgegeben.
2869
+ *
2870
+ * Mögliche Statuscodes:
2871
+ *
2872
+ * Possible return values (and short description):
2873
+ *
2874
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2875
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2876
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2877
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2878
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2879
+ * * -44 (LUT2_NR_NOT_INITIALIZED) "Das Feld NR wurde nicht initialisiert"
2880
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2881
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2882
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2883
+ * * 1 (OK) "ok"
2884
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2885
+ */
2886
+ static VALUE bic_nr_rb(int argc,VALUE* argv,VALUE self)
2887
+ {
2888
+ char bic[16],error_msg[512];
2889
+ int retval,nr,filiale,mode;
2890
+
2891
+ get_params_bic(argc,argv,bic,&mode,&filiale,0);
2892
+ nr=bic_nr(bic,mode,filiale,&retval);
2893
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2894
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(nr),INT2FIX(retval));
2895
+ }
2896
+
2897
+ /**
2898
+ * ===KontoCheckRaw::biq_name( idx)
2899
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2900
+ * =====KontoCheck::biq_name( idx)
2901
+ *
2902
+ * Diese Funktion liefert den Namen einer Bank. Der Rückgabewert ist ein
2903
+ * Array mit zwei Elementen: im ersten steht ein String mit dem Namen, im
2904
+ * zweiten ein Statuscode. Im Fehlerfall wird für den Namen nil zurückgegeben.
2905
+ *
2906
+ * Mögliche Statuscodes:
2907
+ *
2908
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2909
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2910
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2911
+ * * -51 (LUT2_NAME_NOT_INITIALIZED) "Das Feld Bankname wurde nicht initialisiert"
2912
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2913
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2914
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2915
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2916
+ * * 1 (OK) "ok"
2917
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2918
+ */
2919
+ static VALUE biq_name_rb(int argc,VALUE* argv,VALUE self)
2920
+ {
2921
+ char error_msg[512];
2922
+ const char *name;
2923
+ int retval,idx;
2924
+
2925
+ get_params_bic(argc,argv,NULL,&idx,NULL,1);
2926
+ name=biq_name(idx,&retval);
2927
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2928
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(name),INT2FIX(retval));
2929
+ }
2930
+
2931
+ /**
2932
+ * ===KontoCheckRaw::biq_name_kurz( idx)
2933
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2934
+ * =====KontoCheck::biq_name_kurz( idx)
2935
+ *
2936
+ * Diese Funktion liefert den Kurznamen einer Bank. Der Rückgabewert ist ein
2937
+ * Array mit zwei Elementen: im ersten steht ein String mit dem Namen, im
2938
+ * zweiten ein Statuscode. Im Fehlerfall wird für den Namen nil zurückgegeben.
2939
+ *
2940
+ * Mögliche Statuscodes:
2941
+ *
2942
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2943
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2944
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2945
+ * * -48 (LUT2_NAME_KURZ_NOT_INITIALIZED) "Das Feld Kurzname wurde nicht initialisiert"
2946
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2947
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2948
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2949
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2950
+ * * 1 (OK) "ok"
2951
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2952
+ */
2953
+ static VALUE biq_name_kurz_rb(int argc,VALUE* argv,VALUE self)
2954
+ {
2955
+ char error_msg[512];
2956
+ const char *name;
2957
+ int retval,idx;
2958
+
2959
+ get_params_bic(argc,argv,NULL,&idx,NULL,1);
2960
+ name=biq_name_kurz(idx,&retval);
2961
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2962
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(name),INT2FIX(retval));
2963
+ }
2964
+
2965
+ /**
2966
+ * ===KontoCheckRaw::biq_ort( idx)
2967
+ * ===KontoCheckRaw::bic_info( bic [,mode])
2968
+ * =====KontoCheck::biq_ort( idx)
2969
+ *
2970
+ * Diese Funktion liefert den Ort einer Bank. Falls der Parameter filiale nicht
2971
+ * angegeben ist, wird der Sitz der Hauptstelle ausgegeben. Der Rückgabewert
2972
+ * ist ein Array mit zwei Elementen: im ersten steht ein String mit dem Namen,
2973
+ * im zweiten ein Statuscode. Im Fehlerfall wird für den Ort nil
2974
+ * zurückgegeben.
2975
+ *
2976
+ * Mögliche Statuscodes:
2977
+ *
2978
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2979
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2980
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2981
+ * * -49 (LUT2_ORT_NOT_INITIALIZED) "Das Feld Ort wurde nicht initialisiert"
2982
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2983
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2984
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
2985
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2986
+ * * 1 (OK) "ok"
2987
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
2988
+ */
2989
+ static VALUE biq_ort_rb(int argc,VALUE* argv,VALUE self)
2990
+ {
2991
+ char error_msg[512];
2992
+ const char *ort;
2993
+ int retval,idx;
2994
+
2995
+ get_params_bic(argc,argv,NULL,&idx,NULL,1);
2996
+ ort=biq_ort(idx,&retval);
2997
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
2998
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(ort),INT2FIX(retval));
2999
+ }
3000
+
3001
+ /**
3002
+ * ===KontoCheckRaw::biq_plz( idx)
3003
+ * ===KontoCheckRaw::bic_info( bic [,mode])
3004
+ * =====KontoCheck::biq_plz( idx)
3005
+ *
3006
+ * Diese Funktion liefert die Postleitzahl einer Bank. Falls der Parameter
3007
+ * filiale nicht angegeben ist, wird die PLZ der Hauptstelle ausgegeben. Der
3008
+ * Rückgabewert ist ein Array mit zwei Elementen: im ersten steht die PLZ, im
3009
+ * zweiten ein Statuscode. Im Fehlerfall wird für die PLZ nil zurückgegeben.
3010
+ *
3011
+ * Mögliche Statuscodes:
3012
+ *
3013
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
3014
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3015
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3016
+ * * -50 (LUT2_PLZ_NOT_INITIALIZED) "Das Feld PLZ wurde nicht initialisiert"
3017
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
3018
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
3019
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
3020
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
3021
+ * * 1 (OK) "ok"
3022
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
3023
+ */
3024
+ static VALUE biq_plz_rb(int argc,VALUE* argv,VALUE self)
3025
+ {
3026
+ char error_msg[512];
3027
+ int retval,plz,idx;
3028
+
3029
+ get_params_bic(argc,argv,NULL,&idx,NULL,1);
3030
+ plz=biq_plz(idx,&retval);
3031
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
3032
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(plz),INT2FIX(retval));
3033
+ }
3034
+
3035
+ /**
3036
+ * ===KontoCheckRaw::biq_pz( bic)
3037
+ * ===KontoCheckRaw::bic_info( bic [,mode])
3038
+ * =====KontoCheck::biq_pz( bic)
3039
+ *
3040
+ * Diese Funktion liefert die Prüfziffer einer Bank. Die Funktion unterstützt
3041
+ * keine Filialen; zu jeder bic kann es in der LUT-Datei nur eine
3042
+ * Prüfziffermethode geben. Der Rückgabewert ist ein Array mit zwei Elementen:
3043
+ * im ersten steht die Prüfziffer, im zweiten ein Statuscode. Im Fehlerfall
3044
+ * wird für den Prüfziffer nil zurückgegeben.
3045
+ *
3046
+ * Mögliche Statuscodes:
3047
+ *
3048
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
3049
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3050
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3051
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
3052
+ * * -45 (LUT2_PZ_NOT_INITIALIZED) "Das Feld Prüfziffer wurde nicht initialisiert"
3053
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
3054
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
3055
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
3056
+ * * 1 (OK) "ok"
3057
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
3058
+ */
3059
+ static VALUE biq_pz_rb(int argc,VALUE* argv,VALUE self)
3060
+ {
3061
+ char error_msg[512];
3062
+ int retval,pz,idx;
3063
+
3064
+ get_params_bic(argc,argv,NULL,&idx,NULL,1);
3065
+ pz=biq_pz(idx,&retval);
3066
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
3067
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(pz),INT2FIX(retval));
3068
+ }
3069
+
3070
+ /**
3071
+ * ===KontoCheckRaw::biq_bic( idx)
3072
+ * ===KontoCheckRaw::bic_info( bic [,mode])
3073
+ * =====KontoCheck::biq_bic( idx)
3074
+ *
3075
+ * Diese Funktion liefert den BIC (Bank Identifier Code) einer Bank. Der
3076
+ * Rückgabewert ist ein Array mit zwei Elementen: im ersten steht ein String
3077
+ * mit dem BIC, im zweiten ein Statuscode. Im Fehlerfall wird für den BIC
3078
+ * nil zurückgegeben.
3079
+ *
3080
+ * Mögliche Statuscodes:
3081
+ *
3082
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
3083
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3084
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3085
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
3086
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
3087
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
3088
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
3089
+ * * 1 (OK) "ok"
3090
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
3091
+ */
3092
+ static VALUE biq_bic_rb(int argc,VALUE* argv,VALUE self)
3093
+ {
3094
+ char error_msg[512];
3095
+ const char *ptr;
3096
+ int retval,idx;
3097
+
3098
+ get_params_bic(argc,argv,NULL,&idx,NULL,1);
3099
+ ptr=biq_bic(idx,&retval);
3100
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
3101
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(ptr),INT2FIX(retval));
3102
+ }
3103
+
3104
+ /**
3105
+ * ===KontoCheckRaw::biq_aenderung( idx)
3106
+ * ===KontoCheckRaw::bic_info( bic [,mode])
3107
+ * =====KontoCheck::biq_aenderung( idx)
3108
+ *
3109
+ * Diese Funktion liefert das 'Änderung' Flag einer Bank (als string).
3110
+ * Mögliche Werte sind: A (Addition), M (Modified), U (Unchanged), D
3111
+ * (Deletion). Der Rückgabewert ist ein Array mit zwei Elementen: im ersten
3112
+ * steht ein String mit dem Änderungsflag, im zweiten ein Statuscode. Im
3113
+ * Fehlerfall wird für das Flag nil zurückgegeben.
3114
+ *
3115
+ * Mögliche Statuscodes:
3116
+ *
3117
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
3118
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3119
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3120
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
3121
+ * * -43 (LUT2_AENDERUNG_NOT_INITIALIZED) "Das Feld Änderung wurde nicht initialisiert"
3122
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
3123
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
3124
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
3125
+ * * 1 (OK) "ok"
3126
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
3127
+ */
3128
+ static VALUE biq_aenderung_rb(int argc,VALUE* argv,VALUE self)
3129
+ {
3130
+ char aenderung[2],error_msg[512];
3131
+ int retval,idx;
3132
+
3133
+ get_params_bic(argc,argv,NULL,&idx,NULL,1);
3134
+ *aenderung=biq_aenderung(idx,&retval);
3135
+ aenderung[1]=0;
3136
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
3137
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(aenderung),INT2FIX(retval));
3138
+ }
3139
+
3140
+ /**
3141
+ * ===KontoCheckRaw::biq_loeschung( idx)
3142
+ * ===KontoCheckRaw::bic_info( bic [,mode])
3143
+ * =====KontoCheck::biq_loeschung( idx)
3144
+ *
3145
+ * Diese Funktion liefert das Lösch-Flag für eine Bank zurück (als Integer;
3146
+ * mögliche Werte sind 0 und 1). Der Rückgabewert ist ein Array mit zwei
3147
+ * Elementen: im ersten steht das Flag, im zweiten ein Statuscode. Im
3148
+ * Fehlerfall wird für das Flag nil zurückgegeben.
3149
+ *
3150
+ * Mögliche Statuscodes:
3151
+ *
3152
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
3153
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3154
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3155
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
3156
+ * * -42 (LUT2_LOESCHUNG_NOT_INITIALIZED) "Das Feld Löschung wurde nicht initialisiert"
3157
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
3158
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
3159
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
3160
+ * * 1 (OK) "ok"
3161
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
3162
+ */
3163
+ static VALUE biq_loeschung_rb(int argc,VALUE* argv,VALUE self)
3164
+ {
3165
+ char error_msg[512];
3166
+ int retval,loeschung,idx;
3167
+
3168
+ get_params_bic(argc,argv,NULL,&idx,NULL,1);
3169
+ loeschung=biq_loeschung(idx,&retval)-'0';
3170
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
3171
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(loeschung),INT2FIX(retval));
3172
+ }
3173
+
3174
+ /**
3175
+ * ===KontoCheckRaw::biq_nachfolge_blz( idx)
3176
+ * ===KontoCheckRaw::bic_info( bic [,mode])
3177
+ * =====KontoCheck::biq_nachfolge_blz( idx)
3178
+ *
3179
+ * Diese Funktion liefert die Nachfolge-BLZ für eine Bank, die gelöscht werden
3180
+ * soll (bei der das 'Löschung' Flag 1 ist). Der Rückgabewert ist ein Array mit
3181
+ * zwei Elementen: im ersten steht die Nachfolge-BLZ, im zweiten ein Statuscode. Im
3182
+ * Fehlerfall wird für die Nachfolge-BLZ nil zurückgegeben.
3183
+ *
3184
+ * Mögliche Statuscodes:
3185
+ *
3186
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
3187
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3188
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3189
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
3190
+ * * -41 (LUT2_NACHFOLGE_BLZ_NOT_INITIALIZED) "Das Feld Nachfolge-BLZ wurde nicht initialisiert"
3191
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
3192
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
3193
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
3194
+ * * 1 (OK) "ok"
3195
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
3196
+ */
3197
+ static VALUE biq_nachfolge_blz_rb(int argc,VALUE* argv,VALUE self)
3198
+ {
3199
+ char error_msg[512];
3200
+ int retval,n_blz,idx;
3201
+
3202
+ get_params_bic(argc,argv,NULL,&idx,NULL,1);
3203
+ n_blz=biq_nachfolge_blz(idx,&retval);
3204
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
3205
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(n_blz),INT2FIX(retval));
3206
+ }
3207
+
3208
+ /**
3209
+ * ===KontoCheckRaw::biq_pan( idx)
3210
+ * ===KontoCheckRaw::bic_info( bic [,mode])
3211
+ * =====KontoCheck::biq_pan( idx)
3212
+ *
3213
+ * Diese Funktion liefert den PAN (Primary Account Number) einer Bank. Der
3214
+ * Rückgabewert ist ein Array mit zwei Elementen: im ersten steht der PAN, im
3215
+ * zweiten ein Statuscode. Im Fehlerfall wird für den PAN nil zurückgegeben.
3216
+ *
3217
+ * Mögliche Statuscodes:
3218
+ *
3219
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
3220
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3221
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3222
+ * * -47 (LUT2_PAN_NOT_INITIALIZED) "Das Feld PAN wurde nicht initialisiert"
3223
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
3224
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
3225
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
3226
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
3227
+ * * 1 (OK) "ok"
3228
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
3229
+ */
3230
+ static VALUE biq_pan_rb(int argc,VALUE* argv,VALUE self)
3231
+ {
3232
+ char error_msg[512];
3233
+ int retval,pan,idx;
3234
+
3235
+ get_params_bic(argc,argv,NULL,&idx,NULL,1);
3236
+ pan=biq_pan(idx,&retval);
3237
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
3238
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(pan),INT2FIX(retval));
3239
+ }
3240
+
3241
+ /**
3242
+ * ===KontoCheckRaw::biq_nr( idx)
3243
+ * ===KontoCheckRaw::bic_info( bic [,mode])
3244
+ * =====KontoCheck::biq_nr( idx)
3245
+ *
3246
+ * Diese Funktion liefert die laufende Nummer einer Bank (internes Feld der
3247
+ * BLZ-Datei). Der Wert wird wahrscheinlich nicht oft benötigt, ist aber der
3248
+ * Vollständigkeit halber enthalten. Der Rückgabewert ist ein Array mit zwei
3249
+ * Elementen: im ersten steht die Nummer, im zweiten ein Statuscode. Im Fehlerfall
3250
+ * wird für die Nummer nil zurückgegeben.
3251
+ *
3252
+ * Mögliche Statuscodes:
3253
+ *
3254
+ * Possible return values (and short description):
3255
+ *
3256
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
3257
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3258
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3259
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
3260
+ * * -44 (LUT2_NR_NOT_INITIALIZED) "Das Feld NR wurde nicht initialisiert"
3261
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
3262
+ * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
3263
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
3264
+ * * 1 (OK) "ok"
3265
+ * * 26 (OK_SHORT_BIC_USED) "ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt"
3266
+ */
3267
+ static VALUE biq_nr_rb(int argc,VALUE* argv,VALUE self)
3268
+ {
3269
+ char error_msg[512];
3270
+ int retval,nr,idx;
3271
+
3272
+ get_params_bic(argc,argv,NULL,&idx,NULL,1);
3273
+ nr=biq_nr(idx,&retval);
3274
+ if(retval<0 && retval!=KEY_NOT_FOUND)RUNTIME_ERROR(retval);
3275
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(nr),INT2FIX(retval));
3276
+ }
3277
+
3278
+ /**
3279
+ * ===KontoCheckRaw::iban_name( iban [,filiale])
3280
+ * ===KontoCheckRaw::bic_info( bic [,mode])
3281
+ * =====KontoCheck::iban_name( iban [,filiale])
3282
+ *
3283
+ * Diese Funktion liefert den Namen einer Bank. Der Rückgabewert ist ein
3284
+ * Array mit zwei Elementen: im ersten steht ein String mit dem Namen, im
3285
+ * zweiten ein Statuscode. Im Fehlerfall wird für den Namen nil zurückgegeben.
3286
+ *
3287
+ * Mögliche Statuscodes:
3288
+ *
3289
+ * * -147 (IBAN_ONLY_GERMAN) "Es werden nur deutsche IBANs unterstützt"
3290
+ * * -121 (INVALID_IBAN_LENGTH) "Die Länge der IBAN für das angegebene Länderkürzel ist falsch"
3291
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3292
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3293
+ * * -51 (LUT2_NAME_NOT_INITIALIZED) "Das Feld Bankname wurde nicht initialisiert"
3294
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
3295
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
3296
+ * * 1 (OK) "ok"
3297
+ */
3298
+ static VALUE iban_name_rb(int argc,VALUE* argv,VALUE self)
3299
+ {
3300
+ char iban[64],error_msg[512];
3301
+ const char *name;
3302
+ int retval,filiale;
3303
+
3304
+ get_params_bic(argc,argv,iban,&filiale,NULL,1);
3305
+ name=iban_name(iban,filiale,&retval);
3306
+ if(retval==LUT2_BLZ_NOT_INITIALIZED || retval==LUT2_NAME_NOT_INITIALIZED)RUNTIME_ERROR(retval);
3307
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(name),INT2FIX(retval));
3308
+ }
3309
+
3310
+ /**
3311
+ * ===KontoCheckRaw::iban_name_kurz( iban [,filiale])
3312
+ * =====KontoCheck::iban_name_kurz( iban [,filiale])
3313
+ *
3314
+ * Diese Funktion liefert den Kurznamen einer Bank. Der Rückgabewert ist ein
3315
+ * Array mit zwei Elementen: im ersten steht ein String mit dem Namen, im
3316
+ * zweiten ein Statuscode. Im Fehlerfall wird für den Namen nil zurückgegeben.
3317
+ *
3318
+ * Mögliche Statuscodes:
3319
+ *
3320
+ * * -147 (IBAN_ONLY_GERMAN) "Es werden nur deutsche IBANs unterstützt"
3321
+ * * -121 (INVALID_IBAN_LENGTH) "Die Länge der IBAN für das angegebene Länderkürzel ist falsch"
3322
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3323
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
3324
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
3325
+ * * 1 (OK) "ok"
3326
+ */
3327
+ static VALUE iban_name_kurz_rb(int argc,VALUE* argv,VALUE self)
3328
+ {
3329
+ char iban[64],error_msg[512];
3330
+ const char *name;
3331
+ int retval,filiale;
3332
+
3333
+ get_params_bic(argc,argv,iban,&filiale,NULL,3);
3334
+ name=iban_name_kurz(iban,filiale,&retval);
3335
+ if(retval==LUT2_BLZ_NOT_INITIALIZED || retval==LUT2_NAME_KURZ_NOT_INITIALIZED)RUNTIME_ERROR(retval);
3336
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(name),INT2FIX(retval));
3337
+ }
3338
+
3339
+ /**
3340
+ * ===KontoCheckRaw::iban_ort( iban [,filiale])
3341
+ * =====KontoCheck::iban_ort( iban [,filiale])
3342
+ *
3343
+ * Diese Funktion liefert den Ort einer Bank. Falls der Parameter filiale nicht
3344
+ * angegeben ist, wird der Sitz der Hauptstelle ausgegeben. Der Rückgabewert
3345
+ * ist ein Array mit zwei Elementen: im ersten steht ein String mit dem Namen,
3346
+ * im zweiten ein Statuscode. Im Fehlerfall wird für den Ort nil
3347
+ * zurückgegeben.
3348
+ *
3349
+ * Mögliche Statuscodes:
3350
+ *
3351
+ * * -147 (IBAN_ONLY_GERMAN) "Es werden nur deutsche IBANs unterstützt"
3352
+ * * -121 (INVALID_IBAN_LENGTH) "Die Länge der IBAN für das angegebene Länderkürzel ist falsch"
3353
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3354
+ * * -49 (LUT2_ORT_NOT_INITIALIZED) "Das Feld Ort wurde nicht initialisiert"
3355
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3356
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
3357
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
3358
+ * * 1 (OK) "ok"
3359
+ */
3360
+ static VALUE iban_ort_rb(int argc,VALUE* argv,VALUE self)
3361
+ {
3362
+ char iban[64],error_msg[512];
3363
+ const char *ort;
3364
+ int retval,filiale;
3365
+
3366
+ get_params_bic(argc,argv,iban,&filiale,NULL,3);
3367
+ ort=iban_ort(iban,filiale,&retval);
3368
+ if(retval==LUT2_BLZ_NOT_INITIALIZED || retval==LUT2_ORT_NOT_INITIALIZED)RUNTIME_ERROR(retval);
3369
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(ort),INT2FIX(retval));
3370
+ }
3371
+
3372
+ /**
3373
+ * ===KontoCheckRaw::iban_plz( iban [,filiale])
3374
+ * =====KontoCheck::iban_plz( iban [,filiale])
3375
+ *
3376
+ * Diese Funktion liefert die Postleitzahl einer Bank. Falls der Parameter
3377
+ * filiale nicht angegeben ist, wird die PLZ der Hauptstelle ausgegeben. Der
3378
+ * Rückgabewert ist ein Array mit zwei Elementen: im ersten steht die PLZ, im
3379
+ * zweiten ein Statuscode. Im Fehlerfall wird für die PLZ nil zurückgegeben.
3380
+ *
3381
+ * Mögliche Statuscodes:
3382
+ *
3383
+ * * -147 (IBAN_ONLY_GERMAN) "Es werden nur deutsche IBANs unterstützt"
3384
+ * * -121 (INVALID_IBAN_LENGTH) "Die Länge der IBAN für das angegebene Länderkürzel ist falsch"
3385
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3386
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3387
+ * * -50 (LUT2_PLZ_NOT_INITIALIZED) "Das Feld PLZ wurde nicht initialisiert"
3388
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
3389
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
3390
+ * * 1 (OK) "ok"
3391
+ */
3392
+ static VALUE iban_plz_rb(int argc,VALUE* argv,VALUE self)
3393
+ {
3394
+ char iban[64],error_msg[512];
3395
+ int retval,plz,filiale;
3396
+
3397
+ get_params_bic(argc,argv,iban,&filiale,NULL,3);
3398
+ plz=iban_plz(iban,filiale,&retval);
3399
+ if(retval==LUT2_BLZ_NOT_INITIALIZED || retval==LUT2_PLZ_NOT_INITIALIZED)RUNTIME_ERROR(retval);
3400
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(plz),INT2FIX(retval));
3401
+ }
3402
+
3403
+ /**
3404
+ * ===KontoCheckRaw::iban_pz( iban)
3405
+ * =====KontoCheck::iban_pz( iban)
3406
+ *
3407
+ * Diese Funktion liefert die Prüfziffer einer Bank. Die Funktion unterstützt
3408
+ * keine Filialen; zu jeder BLZ kann es in der LUT-Datei nur eine
3409
+ * Prüfziffermethode geben. Der Rückgabewert ist ein Array mit zwei Elementen:
3410
+ * im ersten steht die Prüfziffer, im zweiten ein Statuscode. Im Fehlerfall
3411
+ * wird für den Prüfziffer nil zurückgegeben.
3412
+ *
3413
+ * Mögliche Statuscodes:
3414
+ *
3415
+ * * -147 (IBAN_ONLY_GERMAN) "Es werden nur deutsche IBANs unterstützt"
3416
+ * * -121 (INVALID_IBAN_LENGTH) "Die Länge der IBAN für das angegebene Länderkürzel ist falsch"
3417
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3418
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3419
+ * * -45 (LUT2_PZ_NOT_INITIALIZED) "Das Feld Prüfziffer wurde nicht initialisiert"
3420
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
3421
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
3422
+ * * 1 (OK) "ok"
3423
+ */
3424
+ static VALUE iban_pz_rb(int argc,VALUE* argv,VALUE self)
3425
+ {
3426
+ char iban[64],error_msg[512];
3427
+ int retval,pz,filiale;
3428
+
3429
+ get_params_bic(argc,argv,iban,&filiale,NULL,3);
3430
+ pz=iban_pz(iban,0,&retval);
3431
+ if(retval==LUT2_BLZ_NOT_INITIALIZED || retval==LUT2_PZ_NOT_INITIALIZED)RUNTIME_ERROR(retval);
3432
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(pz),INT2FIX(retval));
3433
+ }
3434
+
3435
+ /**
3436
+ * ===KontoCheckRaw::iban_bic( iban [,filiale])
3437
+ * =====KontoCheck::iban_bic( iban [,filiale])
3438
+ *
3439
+ * Diese Funktion liefert den BIC (Bank Identifier Code) einer Bank. Der
3440
+ * Rückgabewert ist ein Array mit zwei Elementen: im ersten steht ein String
3441
+ * mit dem BIC, im zweiten ein Statuscode. Im Fehlerfall wird für den BIC
3442
+ * nil zurückgegeben.
3443
+ *
3444
+ * Mögliche Statuscodes:
3445
+ *
3446
+ * * -147 (IBAN_ONLY_GERMAN) "Es werden nur deutsche IBANs unterstützt"
3447
+ * * -121 (INVALID_IBAN_LENGTH) "Die Länge der IBAN für das angegebene Länderkürzel ist falsch"
3448
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3449
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3450
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
3451
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
3452
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
3453
+ * * 1 (OK) "ok"
3454
+ */
3455
+ static VALUE iban_bic_rb(int argc,VALUE* argv,VALUE self)
3456
+ {
3457
+ char iban[64],error_msg[512];
3458
+ const char *ptr;
3459
+ int retval,filiale;
3460
+
3461
+ get_params_bic(argc,argv,iban,&filiale,NULL,3);
3462
+ ptr=iban_bic(iban,filiale,&retval);
3463
+ if(retval==LUT2_BLZ_NOT_INITIALIZED || retval==LUT2_BIC_NOT_INITIALIZED)RUNTIME_ERROR(retval);
3464
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(ptr),INT2FIX(retval));
3465
+ }
3466
+
3467
+ /**
3468
+ * ===KontoCheckRaw::iban_aenderung( iban [,filiale])
3469
+ * =====KontoCheck::iban_aenderung( iban [,filiale])
3470
+ *
3471
+ * Diese Funktion liefert das 'Änderung' Flag einer Bank (als string).
3472
+ * Mögliche Werte sind: A (Addition), M (Modified), U (Unchanged), D
3473
+ * (Deletion). Der Rückgabewert ist ein Array mit zwei Elementen: im ersten
3474
+ * steht ein String mit dem Änderungsflag, im zweiten ein Statuscode. Im
3475
+ * Fehlerfall wird für das Flag nil zurückgegeben.
3476
+ *
3477
+ * Mögliche Statuscodes:
3478
+ *
3479
+ * * -147 (IBAN_ONLY_GERMAN) "Es werden nur deutsche IBANs unterstützt"
3480
+ * * -121 (INVALID_IBAN_LENGTH) "Die Länge der IBAN für das angegebene Länderkürzel ist falsch"
3481
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3482
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3483
+ * * -43 (LUT2_AENDERUNG_NOT_INITIALIZED) "Das Feld Änderung wurde nicht initialisiert"
3484
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
3485
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
3486
+ * * 1 (OK) "ok"
3487
+ */
3488
+ static VALUE iban_aenderung_rb(int argc,VALUE* argv,VALUE self)
3489
+ {
3490
+ char iban[64],aenderung[2],error_msg[512];
3491
+ int retval,filiale;
3492
+
3493
+ get_params_bic(argc,argv,iban,&filiale,NULL,3);
3494
+ *aenderung=iban_aenderung(iban,filiale,&retval);
3495
+ aenderung[1]=0;
3496
+ if(retval==LUT2_BLZ_NOT_INITIALIZED || retval==LUT2_AENDERUNG_NOT_INITIALIZED)RUNTIME_ERROR(retval);
3497
+ return rb_ary_new3(2,retval<=0?Qnil:rb_str_new2(aenderung),INT2FIX(retval));
3498
+ }
3499
+
3500
+ /**
3501
+ * ===KontoCheckRaw::iban_loeschung( iban [,filiale])
3502
+ * =====KontoCheck::iban_loeschung( iban [,filiale])
3503
+ *
3504
+ * Diese Funktion liefert das Lösch-Flag für eine Bank zurück (als Integer;
3505
+ * mögliche Werte sind 0 und 1). Der Rückgabewert ist ein Array mit zwei
3506
+ * Elementen: im ersten steht das Flag, im zweiten ein Statuscode. Im
3507
+ * Fehlerfall wird für das Flag nil zurückgegeben.
3508
+ *
3509
+ * Mögliche Statuscodes:
3510
+ *
3511
+ * * -147 (IBAN_ONLY_GERMAN) "Es werden nur deutsche IBANs unterstützt"
3512
+ * * -121 (INVALID_IBAN_LENGTH) "Die Länge der IBAN für das angegebene Länderkürzel ist falsch"
3513
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3514
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3515
+ * * -42 (LUT2_LOESCHUNG_NOT_INITIALIZED) "Das Feld Löschung wurde nicht initialisiert"
3516
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
3517
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
3518
+ * * 1 (OK) "ok"
3519
+ */
3520
+ static VALUE iban_loeschung_rb(int argc,VALUE* argv,VALUE self)
3521
+ {
3522
+ char iban[64],error_msg[512];
3523
+ int retval,loeschung,filiale;
3524
+
3525
+ get_params_bic(argc,argv,iban,&filiale,NULL,3);
3526
+ loeschung=iban_loeschung(iban,filiale,&retval)-'0';
3527
+ if(retval==LUT2_BLZ_NOT_INITIALIZED || retval==LUT2_LOESCHUNG_NOT_INITIALIZED)RUNTIME_ERROR(retval);
3528
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(loeschung),INT2FIX(retval));
3529
+ }
3530
+
3531
+ /**
3532
+ * ===KontoCheckRaw::iban_nachfolge_iban( iban [,filiale])
3533
+ * =====KontoCheck::iban_nachfolge_iban( iban [,filiale])
3534
+ *
3535
+ * Diese Funktion liefert die Nachfolge-BLZ für eine Bank, die gelöscht werden
3536
+ * soll (bei der das 'Löschung' Flag 1 ist). Der Rückgabewert ist ein Array mit
3537
+ * zwei Elementen: im ersten steht die Nachfolge-BLZ, im zweiten ein Statuscode. Im
3538
+ * Fehlerfall wird für die Nachfolge-BLZ nil zurückgegeben.
3539
+ *
3540
+ * Mögliche Statuscodes:
3541
+ *
3542
+ * * -147 (IBAN_ONLY_GERMAN) "Es werden nur deutsche IBANs unterstützt"
3543
+ * * -121 (INVALID_IBAN_LENGTH) "Die Länge der IBAN für das angegebene Länderkürzel ist falsch"
3544
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3545
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3546
+ * * -41 (LUT2_NACHFOLGE_BLZ_NOT_INITIALIZED) "Das Feld Nachfolge-BLZ wurde nicht initialisiert"
3547
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
3548
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
3549
+ * * 1 (OK) "ok"
3550
+ */
3551
+ static VALUE iban_nachfolge_blz_rb(int argc,VALUE* argv,VALUE self)
3552
+ {
3553
+ char iban[64],error_msg[512];
3554
+ int retval,n_iban,filiale;
3555
+
3556
+ get_params_bic(argc,argv,iban,&filiale,NULL,3);
3557
+ n_iban=iban_nachfolge_blz(iban,filiale,&retval);
3558
+ if(retval==LUT2_BLZ_NOT_INITIALIZED || retval==LUT2_NACHFOLGE_BLZ_NOT_INITIALIZED)RUNTIME_ERROR(retval);
3559
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(n_iban),INT2FIX(retval));
3560
+ }
3561
+
3562
+ /**
3563
+ * ===KontoCheckRaw::iban_pan( iban [,filiale])
3564
+ * =====KontoCheck::iban_pan( iban [,filiale])
3565
+ *
3566
+ * Diese Funktion liefert den PAN (Primary Account Number) einer Bank. Der
3567
+ * Rückgabewert ist ein Array mit zwei Elementen: im ersten steht der PAN, im
3568
+ * zweiten ein Statuscode. Im Fehlerfall wird für den PAN nil zurückgegeben.
3569
+ *
3570
+ * Mögliche Statuscodes:
3571
+ *
3572
+ * * -147 (IBAN_ONLY_GERMAN) "Es werden nur deutsche IBANs unterstützt"
3573
+ * * -121 (INVALID_IBAN_LENGTH) "Die Länge der IBAN für das angegebene Länderkürzel ist falsch"
3574
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3575
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3576
+ * * -47 (LUT2_PAN_NOT_INITIALIZED) "Das Feld PAN wurde nicht initialisiert"
3577
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
3578
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
3579
+ * * 1 (OK) "ok"
3580
+ */
3581
+ static VALUE iban_pan_rb(int argc,VALUE* argv,VALUE self)
3582
+ {
3583
+ char iban[64],error_msg[512];
3584
+ int retval,pan,filiale;
3585
+
3586
+ get_params_bic(argc,argv,iban,&filiale,NULL,3);
3587
+ pan=iban_pan(iban,filiale,&retval);
3588
+ if(retval==LUT2_BLZ_NOT_INITIALIZED || retval==LUT2_PAN_NOT_INITIALIZED)RUNTIME_ERROR(retval);
3589
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(pan),INT2FIX(retval));
3590
+ }
3591
+
3592
+ /**
3593
+ * ===KontoCheckRaw::iban_nr( iban [,filiale])
3594
+ * =====KontoCheck::iban_nr( iban [,filiale])
3595
+ *
3596
+ * Diese Funktion liefert die laufende Nummer einer Bank (internes Feld der
3597
+ * BLZ-Datei). Der Wert wird wahrscheinlich nicht oft benötigt, ist aber der
3598
+ * Vollständigkeit halber enthalten. Der Rückgabewert ist ein Array mit zwei
3599
+ * Elementen: im ersten steht die Nummer, im zweiten ein Statuscode. Im Fehlerfall
3600
+ * wird für die Nummer nil zurückgegeben.
3601
+ *
3602
+ * Mögliche Statuscodes:
3603
+ *
3604
+ * Possible return values (and short description):
3605
+ *
3606
+ * * -147 (IBAN_ONLY_GERMAN) "Es werden nur deutsche IBANs unterstützt"
3607
+ * * -121 (INVALID_IBAN_LENGTH) "Die Länge der IBAN für das angegebene Länderkürzel ist falsch"
3608
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
3609
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
3610
+ * * -44 (LUT2_NR_NOT_INITIALIZED) "Das Feld NR wurde nicht initialisiert"
3611
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
3612
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
3613
+ * * 1 (OK) "ok"
3614
+ */
3615
+ static VALUE iban_nr_rb(int argc,VALUE* argv,VALUE self)
3616
+ {
3617
+ char iban[64],error_msg[512];
3618
+ int retval,nr,filiale;
3619
+
3620
+ get_params_bic(argc,argv,iban,&filiale,NULL,3);
3621
+ nr=iban_nr(iban,filiale,&retval);
3622
+ if(retval==LUT2_BLZ_NOT_INITIALIZED || retval==LUT2_NR_NOT_INITIALIZED)RUNTIME_ERROR(retval);
3623
+ return rb_ary_new3(2,retval<=0?Qnil:INT2FIX(nr),INT2FIX(retval));
3624
+ }
3625
+
3626
+
2403
3627
  /**
2404
3628
  * Die Suchroutinen der C-Bibliothek sind eher Low-Level Routinen und ohne
2405
3629
  * einen Blick in die Sourcen nicht intuitiv nutzbar ;-), daher hier zunächst
@@ -2993,7 +4217,7 @@ void Init_konto_check_raw()
2993
4217
  *
2994
4218
  * <b>ATTENTION:</b> There are a few important changes in the API between
2995
4219
  * version 0.0.2 (version by Peter Horn/Provideal), version 0.0.6 (jeanmartin)
2996
- * and this version (V. 5.3 from 2014-03-03):
4220
+ * and this version (V. 5.4 from 2014-06-02):
2997
4221
  *
2998
4222
  * * The function KontoCheck::load_bank_data() is no longer used; it is
2999
4223
  * replaced by KontoCheck::init() and KontoCheck::generate_lutfile().
@@ -3088,6 +4312,7 @@ void Init_konto_check_raw()
3088
4312
  rb_define_module_function(KontoCheck,"bank_valid",bank_valid,-1);
3089
4313
  rb_define_module_function(KontoCheck,"bank_filialen",bank_filialen,-1);
3090
4314
  rb_define_module_function(KontoCheck,"bank_alles",bank_alles,-1);
4315
+
3091
4316
  rb_define_module_function(KontoCheck,"bank_name",bank_name,-1);
3092
4317
  rb_define_module_function(KontoCheck,"bank_name_kurz",bank_name_kurz,-1);
3093
4318
  rb_define_module_function(KontoCheck,"bank_plz",bank_plz,-1);
@@ -3099,6 +4324,44 @@ void Init_konto_check_raw()
3099
4324
  rb_define_module_function(KontoCheck,"bank_aenderung",bank_aenderung,-1);
3100
4325
  rb_define_module_function(KontoCheck,"bank_loeschung",bank_loeschung,-1);
3101
4326
  rb_define_module_function(KontoCheck,"bank_nachfolge_blz",bank_nachfolge_blz,-1);
4327
+
4328
+ rb_define_module_function(KontoCheck,"bic_name",bic_name_rb,-1);
4329
+ rb_define_module_function(KontoCheck,"bic_name_kurz",bic_name_kurz_rb,-1);
4330
+ rb_define_module_function(KontoCheck,"bic_plz",bic_plz_rb,-1);
4331
+ rb_define_module_function(KontoCheck,"bic_ort",bic_ort_rb,-1);
4332
+ rb_define_module_function(KontoCheck,"bic_pan",bic_pan_rb,-1);
4333
+ rb_define_module_function(KontoCheck,"bic_bic",bic_bic_rb,-1);
4334
+ rb_define_module_function(KontoCheck,"bic_nr",bic_nr_rb,-1);
4335
+ rb_define_module_function(KontoCheck,"bic_pz",bic_pz_rb,-1);
4336
+ rb_define_module_function(KontoCheck,"bic_aenderung",bic_aenderung_rb,-1);
4337
+ rb_define_module_function(KontoCheck,"bic_loeschung",bic_loeschung_rb,-1);
4338
+ rb_define_module_function(KontoCheck,"bic_nachfolge_blz",bic_nachfolge_blz_rb,-1);
4339
+
4340
+ rb_define_module_function(KontoCheck,"bic_info",bic_info_rb,-1);
4341
+ rb_define_module_function(KontoCheck,"biq_name",biq_name_rb,-1);
4342
+ rb_define_module_function(KontoCheck,"biq_name_kurz",biq_name_kurz_rb,-1);
4343
+ rb_define_module_function(KontoCheck,"biq_plz",biq_plz_rb,-1);
4344
+ rb_define_module_function(KontoCheck,"biq_ort",biq_ort_rb,-1);
4345
+ rb_define_module_function(KontoCheck,"biq_pan",biq_pan_rb,-1);
4346
+ rb_define_module_function(KontoCheck,"biq_bic",biq_bic_rb,-1);
4347
+ rb_define_module_function(KontoCheck,"biq_nr",biq_nr_rb,-1);
4348
+ rb_define_module_function(KontoCheck,"biq_pz",biq_pz_rb,-1);
4349
+ rb_define_module_function(KontoCheck,"biq_aenderung",biq_aenderung_rb,-1);
4350
+ rb_define_module_function(KontoCheck,"biq_loeschung",biq_loeschung_rb,-1);
4351
+ rb_define_module_function(KontoCheck,"biq_nachfolge_blz",biq_nachfolge_blz_rb,-1);
4352
+
4353
+ rb_define_module_function(KontoCheck,"iban_name",iban_name_rb,-1);
4354
+ rb_define_module_function(KontoCheck,"iban_name_kurz",iban_name_kurz_rb,-1);
4355
+ rb_define_module_function(KontoCheck,"iban_plz",iban_plz_rb,-1);
4356
+ rb_define_module_function(KontoCheck,"iban_ort",iban_ort_rb,-1);
4357
+ rb_define_module_function(KontoCheck,"iban_pan",iban_pan_rb,-1);
4358
+ rb_define_module_function(KontoCheck,"iban_bic",iban_bic_rb,-1);
4359
+ rb_define_module_function(KontoCheck,"iban_nr",iban_nr_rb,-1);
4360
+ rb_define_module_function(KontoCheck,"iban_pz",iban_pz_rb,-1);
4361
+ rb_define_module_function(KontoCheck,"iban_aenderung",iban_aenderung_rb,-1);
4362
+ rb_define_module_function(KontoCheck,"iban_loeschung",iban_loeschung_rb,-1);
4363
+ rb_define_module_function(KontoCheck,"iban_nachfolge_blz",iban_nachfolge_blz_rb,-1);
4364
+
3102
4365
  rb_define_module_function(KontoCheck,"dump_lutfile",dump_lutfile_rb,-1);
3103
4366
  rb_define_module_function(KontoCheck,"lut_blocks",lut_blocks_rb,-1);
3104
4367
  rb_define_module_function(KontoCheck,"lut_blocks1",lut_blocks1_rb,-1);
@@ -3134,6 +4397,10 @@ void Init_konto_check_raw()
3134
4397
  rb_define_module_function(KontoCheck,"load_bank_data",load_bank_data,1);
3135
4398
 
3136
4399
  /* Rückgabewerte der konto_check Bibliothek */
4400
+ /* (-149) Ungültiger Index für die biq_*() Funktionen */
4401
+ rb_define_const(KontoCheck,"INVALID_BIQ_INDEX",INT2FIX(INVALID_BIQ_INDEX));
4402
+ /* (-148) Der Array-Index liegt außerhalb des gültigen Bereichs */
4403
+ rb_define_const(KontoCheck,"ARRAY_INDEX_OUT_OF_RANGE",INT2FIX(ARRAY_INDEX_OUT_OF_RANGE));
3137
4404
  /* (-147) Es werden nur deutsche IBANs unterstützt */
3138
4405
  rb_define_const(KontoCheck,"IBAN_ONLY_GERMAN",INT2FIX(IBAN_ONLY_GERMAN));
3139
4406
  /* (-146) Falscher Parametertyp für die Funktion */
@@ -3220,56 +4487,6 @@ void Init_konto_check_raw()
3220
4487
  rb_define_const(KontoCheck,"KTO_CHECK_KEY_NOT_FOUND",INT2FIX(KTO_CHECK_KEY_NOT_FOUND));
3221
4488
  /* (-105) Beide Datensätze sind nicht mehr gültig, dieser ist aber jünger als der andere */
3222
4489
  rb_define_const(KontoCheck,"LUT2_NO_LONGER_VALID_BETTER",INT2FIX(LUT2_NO_LONGER_VALID_BETTER));
3223
- /* (-104) Die Auftraggeber-Kontonummer des C-Datensatzes unterscheidet sich von der des A-Satzes */
3224
- rb_define_const(KontoCheck,"DTA_SRC_KTO_DIFFERENT",INT2FIX(DTA_SRC_KTO_DIFFERENT));
3225
- /* (-103) Die Auftraggeber-Bankleitzahl des C-Datensatzes unterscheidet sich von der des A-Satzes */
3226
- rb_define_const(KontoCheck,"DTA_SRC_BLZ_DIFFERENT",INT2FIX(DTA_SRC_BLZ_DIFFERENT));
3227
- /* (-102) Die DTA-Datei enthält (unzulässige) Zeilenvorschübe */
3228
- rb_define_const(KontoCheck,"DTA_CR_LF_IN_FILE",INT2FIX(DTA_CR_LF_IN_FILE));
3229
- /* (-101) ungültiger Typ bei einem Erweiterungsblock eines C-Datensatzes */
3230
- rb_define_const(KontoCheck,"DTA_INVALID_C_EXTENSION",INT2FIX(DTA_INVALID_C_EXTENSION));
3231
- /* (-100) Es wurde ein C-Datensatz erwartet, jedoch ein E-Satz gefunden */
3232
- rb_define_const(KontoCheck,"DTA_FOUND_SET_A_NOT_C",INT2FIX(DTA_FOUND_SET_A_NOT_C));
3233
- /* (-99) Es wurde ein C-Datensatz erwartet, jedoch ein E-Satz gefunden */
3234
- rb_define_const(KontoCheck,"DTA_FOUND_SET_E_NOT_C",INT2FIX(DTA_FOUND_SET_E_NOT_C));
3235
- /* (-98) Es wurde ein C-Datensatzerweiterung erwartet, jedoch ein C-Satz gefunden */
3236
- rb_define_const(KontoCheck,"DTA_FOUND_SET_C_NOT_EXTENSION",INT2FIX(DTA_FOUND_SET_C_NOT_EXTENSION));
3237
- /* (-97) Es wurde ein C-Datensatzerweiterung erwartet, jedoch ein E-Satz gefunden */
3238
- rb_define_const(KontoCheck,"DTA_FOUND_SET_E_NOT_EXTENSION",INT2FIX(DTA_FOUND_SET_E_NOT_EXTENSION));
3239
- /* (-96) Die Anzahl Erweiterungen paßt nicht zur Blocklänge */
3240
- rb_define_const(KontoCheck,"DTA_INVALID_EXTENSION_COUNT",INT2FIX(DTA_INVALID_EXTENSION_COUNT));
3241
- /* (-95) Ungültige Zeichen in numerischem Feld */
3242
- rb_define_const(KontoCheck,"DTA_INVALID_NUM",INT2FIX(DTA_INVALID_NUM));
3243
- /* (-94) Ungültige Zeichen im Textfeld */
3244
- rb_define_const(KontoCheck,"DTA_INVALID_CHARS",INT2FIX(DTA_INVALID_CHARS));
3245
- /* (-93) Die Währung des DTA-Datensatzes ist nicht Euro */
3246
- rb_define_const(KontoCheck,"DTA_CURRENCY_NOT_EURO",INT2FIX(DTA_CURRENCY_NOT_EURO));
3247
- /* (-92) In einem DTA-Datensatz wurde kein Betrag angegeben */
3248
- rb_define_const(KontoCheck,"DTA_EMPTY_AMOUNT",INT2FIX(DTA_EMPTY_AMOUNT));
3249
- /* (-91) Ungültiger Textschlüssel in der DTA-Datei */
3250
- rb_define_const(KontoCheck,"DTA_INVALID_TEXT_KEY",INT2FIX(DTA_INVALID_TEXT_KEY));
3251
- /* (-90) Für ein (alphanumerisches) Feld wurde kein Wert angegeben */
3252
- rb_define_const(KontoCheck,"DTA_EMPTY_STRING",INT2FIX(DTA_EMPTY_STRING));
3253
- /* (-89) Die Startmarkierung des A-Datensatzes wurde nicht gefunden */
3254
- rb_define_const(KontoCheck,"DTA_MARKER_A_NOT_FOUND",INT2FIX(DTA_MARKER_A_NOT_FOUND));
3255
- /* (-88) Die Startmarkierung des C-Datensatzes wurde nicht gefunden */
3256
- rb_define_const(KontoCheck,"DTA_MARKER_C_NOT_FOUND",INT2FIX(DTA_MARKER_C_NOT_FOUND));
3257
- /* (-87) Die Startmarkierung des E-Datensatzes wurde nicht gefunden */
3258
- rb_define_const(KontoCheck,"DTA_MARKER_E_NOT_FOUND",INT2FIX(DTA_MARKER_E_NOT_FOUND));
3259
- /* (-86) Die Satzlänge eines C-Datensatzes muß zwischen 187 und 622 Byte betragen */
3260
- rb_define_const(KontoCheck,"DTA_INVALID_SET_C_LEN",INT2FIX(DTA_INVALID_SET_C_LEN));
3261
- /* (-85) Die Satzlänge eines A- bzw. E-Satzes muß 128 Byte betragen */
3262
- rb_define_const(KontoCheck,"DTA_INVALID_SET_LEN",INT2FIX(DTA_INVALID_SET_LEN));
3263
- /* (-84) als Währung in der DTA-Datei ist nicht Euro eingetragen */
3264
- rb_define_const(KontoCheck,"DTA_WAERUNG_NOT_EURO",INT2FIX(DTA_WAERUNG_NOT_EURO));
3265
- /* (-83) das Ausführungsdatum ist zu früh oder zu spät (max. 15 Tage nach Dateierstellung) */
3266
- rb_define_const(KontoCheck,"DTA_INVALID_ISSUE_DATE",INT2FIX(DTA_INVALID_ISSUE_DATE));
3267
- /* (-82) das Datum ist ungültig */
3268
- rb_define_const(KontoCheck,"DTA_INVALID_DATE",INT2FIX(DTA_INVALID_DATE));
3269
- /* (-81) Formatfehler in der DTA-Datei */
3270
- rb_define_const(KontoCheck,"DTA_FORMAT_ERROR",INT2FIX(DTA_FORMAT_ERROR));
3271
- /* (-80) die DTA-Datei enthält Fehler */
3272
- rb_define_const(KontoCheck,"DTA_FILE_WITH_ERRORS",INT2FIX(DTA_FILE_WITH_ERRORS));
3273
4490
  /* (-79) ungültiger Suchbereich angegeben (unten>oben) */
3274
4491
  rb_define_const(KontoCheck,"INVALID_SEARCH_RANGE",INT2FIX(INVALID_SEARCH_RANGE));
3275
4492
  /* (-78) Die Suche lieferte kein Ergebnis */