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.
- data/ext/konto_check_raw/konto_check.c +694 -1331
- data/ext/konto_check_raw/konto_check.h +5 -25
- data/ext/konto_check_raw/konto_check_raw_ruby.c +1269 -52
- data/ext/konto_check_raw/retvals.h +878 -0
- metadata +3 -2
@@ -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
|
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.
|
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 */
|