konto_check 5.3.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 */