konto_check 6.08.0 → 6.13.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.
- checksums.yaml +4 -4
- data/ext/konto_check_raw/konto_check.c +126 -106
- data/ext/konto_check_raw/konto_check.h +17 -13
- data/ext/konto_check_raw/konto_check_raw_ruby.c +528 -2
- data/lib/konto_check.rb +216 -0
- metadata +5 -4
@@ -10,7 +10,7 @@
|
|
10
10
|
* # Verwendung in anderen Programmen bzw. Programmiersprachen benutzt #
|
11
11
|
* # werden. #
|
12
12
|
* # #
|
13
|
-
* # Copyright (C) 2002-
|
13
|
+
* # Copyright (C) 2002-2020 Michael Plugge <m.plugge@hs-mannheim.de> #
|
14
14
|
* # #
|
15
15
|
* # Dieses Programm ist freie Software; Sie d�rfen es unter den #
|
16
16
|
* # Bedingungen der GNU Lesser General Public License, wie von der Free #
|
@@ -168,17 +168,19 @@
|
|
168
168
|
|
169
169
|
#if _WIN32>0 || _WIN64>0
|
170
170
|
# if USE_CDECL
|
171
|
-
#
|
172
|
-
#
|
173
|
-
#
|
174
|
-
#
|
175
|
-
#
|
176
|
-
#
|
177
|
-
#
|
178
|
-
#
|
179
|
-
#
|
180
|
-
#
|
171
|
+
# define STDCALL
|
172
|
+
# if BUILD_DLL /* DLL kompilieren */
|
173
|
+
# define DLL_EXPORT __declspec (dllexport)
|
174
|
+
# define DLL_EXPORT_V __declspec (dllexport)
|
175
|
+
# elif USE_DLL /* DLL in einem anderen Programm benutzen */
|
176
|
+
# define DLL_EXPORT __declspec (dllimport)
|
177
|
+
# define DLL_EXPORT_V __declspec (dllimport)
|
178
|
+
# else /* kein DLL-Krempel erforderlich */
|
179
|
+
# define DLL_EXPORT
|
180
|
+
# define DLL_EXPORT_V
|
181
|
+
# endif
|
181
182
|
# else
|
183
|
+
# define STDCALL __stdcall
|
182
184
|
# if BUILD_DLL /* DLL kompilieren */
|
183
185
|
# define DLL_EXPORT __declspec (dllexport) __stdcall
|
184
186
|
# define DLL_EXPORT_V __declspec (dllexport)
|
@@ -186,12 +188,13 @@
|
|
186
188
|
# define DLL_EXPORT __declspec (dllimport) __stdcall
|
187
189
|
# define DLL_EXPORT_V __declspec (dllimport)
|
188
190
|
# else /* kein DLL-Krempel erforderlich */
|
189
|
-
# define DLL_EXPORT
|
191
|
+
# define DLL_EXPORT __stdcall
|
190
192
|
# define DLL_EXPORT_V
|
191
193
|
# endif
|
192
194
|
# endif
|
193
195
|
# define localtime_r(timep,result) localtime(timep)
|
194
196
|
#else
|
197
|
+
# define STDCALL
|
195
198
|
# define DLL_EXPORT
|
196
199
|
# define DLL_EXPORT_V
|
197
200
|
#endif
|
@@ -500,7 +503,7 @@ extern const char *lut2_feld_namen[256];
|
|
500
503
|
#define OK_SHORT_BIC_USED 26
|
501
504
|
#define OK_SCL_EXTENSION_BIC_USED 27
|
502
505
|
#define OK_SCL_WILDCARD_BIC_USED 28
|
503
|
-
#line
|
506
|
+
#line 282 "konto_check_h.lx"
|
504
507
|
|
505
508
|
#define MAX_BLZ_CNT 30000 /* maximale Anzahl BLZ's in generate_lut() */
|
506
509
|
|
@@ -874,6 +877,7 @@ DLL_EXPORT int lut_info_id(char *lut_name,int *info1,int *info2,int *valid1,int
|
|
874
877
|
DLL_EXPORT const char *current_lutfile_name(int *set,int *level,int *retval);
|
875
878
|
DLL_EXPORT int current_lutfile_name_id(int *set,int *level,int *retval);
|
876
879
|
DLL_EXPORT int lut_valid(void);
|
880
|
+
DLL_EXPORT int lut_valid_date(char *lut_name,int *v11,int *v12,int *v21,int *v22);
|
877
881
|
DLL_EXPORT int get_lut_info2(char *lut_name,int *version_p,char **prolog_p,char **info_p,char **user_info_p);
|
878
882
|
DLL_EXPORT int get_lut_info_b(char **info,char *lutname);
|
879
883
|
DLL_EXPORT int get_lut_info2_b(char *lutname,int *version,char **prolog_p,char **info_p,char **user_info_p);
|
@@ -48,6 +48,7 @@ vim: ft=c:set si:set fileencoding=utf-8
|
|
48
48
|
#include "ruby.h"
|
49
49
|
#include <stdio.h>
|
50
50
|
#include "konto_check.h"
|
51
|
+
#line 64 "konto_check_raw_ruby.lxx"
|
51
52
|
|
52
53
|
/* Ruby 1.8/1.9 compatibility definitions */
|
53
54
|
#ifndef RSTRING_PTR
|
@@ -285,6 +286,38 @@ static void get_params_int(int argc,VALUE* argv,int *arg1,int *arg2,int *uniq_p)
|
|
285
286
|
if(uniq_p)*uniq_p=uniq;
|
286
287
|
}
|
287
288
|
|
289
|
+
|
290
|
+
/**
|
291
|
+
* get_params_scl()
|
292
|
+
*
|
293
|
+
* get one string parameter from argc/argv
|
294
|
+
*/
|
295
|
+
static void get_params_scl(int argc,VALUE* argv,char *arg1s,int maxlen)
|
296
|
+
{
|
297
|
+
int len;
|
298
|
+
VALUE arg1_rb;
|
299
|
+
|
300
|
+
rb_scan_args(argc,argv,"10",&arg1_rb);
|
301
|
+
if(maxlen==8)switch(TYPE(arg1_rb)){
|
302
|
+
case RUBY_T_STRING:
|
303
|
+
break;
|
304
|
+
case RUBY_T_FLOAT:
|
305
|
+
case RUBY_T_FIXNUM:
|
306
|
+
case RUBY_T_BIGNUM:
|
307
|
+
snprintf(arg1s,9,"%08d",FIX2INT(arg1_rb));
|
308
|
+
return;
|
309
|
+
default:
|
310
|
+
rb_raise(rb_eTypeError,"%s","argument must be a string");
|
311
|
+
}
|
312
|
+
if(TYPE(arg1_rb)==RUBY_T_STRING){
|
313
|
+
if((len=RSTRING_LEN(arg1_rb))>maxlen)len=maxlen;
|
314
|
+
strncpy(arg1s,RSTRING_PTR(arg1_rb),len);
|
315
|
+
*(arg1s+len)=0;
|
316
|
+
}
|
317
|
+
else
|
318
|
+
rb_raise(rb_eTypeError,"%s","argument must be a string");
|
319
|
+
}
|
320
|
+
|
288
321
|
/**
|
289
322
|
* get_params()
|
290
323
|
*
|
@@ -4289,7 +4322,7 @@ static VALUE bank_suche_volltext(int argc,VALUE* argv,VALUE self)
|
|
4289
4322
|
* ====Mögliche Statuscodes:
|
4290
4323
|
* * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
|
4291
4324
|
* * -48 (LUT2_NAME_KURZ_NOT_INITIALIZED) "Das Feld Kurzname wurde nicht initialisiert"
|
4292
|
-
* * -40 (LUT2_NOT_INITIALIZED)
|
4325
|
+
* * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
|
4293
4326
|
* * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
|
4294
4327
|
* * 1 (OK) "ok"
|
4295
4328
|
* * 14 (SOME_KEYS_NOT_FOUND) "ok; ein(ige) Schlüssel wurden nicht gefunden"
|
@@ -4317,6 +4350,485 @@ static VALUE bank_suche_multiple(int argc,VALUE* argv,VALUE self)
|
|
4317
4350
|
}
|
4318
4351
|
|
4319
4352
|
|
4353
|
+
/**
|
4354
|
+
* ===KontoCheckRaw::scl_init([lutname})
|
4355
|
+
* =====KontoCheck::scl_init([lutname])
|
4356
|
+
* Mit den scl_* Funktionen können für einen gegebenen BIC oder eine BLZ die
|
4357
|
+
* Einträge des SCL-Verzeichnisses bestimmt werden. Falls die _blz() Version der
|
4358
|
+
* Funktionen verwendet wird, muß die Bibliothek mittels KontoCheck::init *und*
|
4359
|
+
* KontoCheck::scl_init initialisiert werden, um sowohl die Kontodaten als auch die
|
4360
|
+
* Daten des SCL-Verzeichnisses einzulesen.
|
4361
|
+
*
|
4362
|
+
* Die Funktion scl_init liest die SCL-Blocks aus einer LUT-Datei und initialisiert
|
4363
|
+
* die zugehörigen internen Datenstrukturen.initialisiert SCL-Datenstrukturen.
|
4364
|
+
* Falls der Parameter lut_name nicht angegeben ist, wird die LUT-Datei benutzt,
|
4365
|
+
* mit der die Bibliothek mittels KontoCheck::init initialisiert wurde.
|
4366
|
+
*
|
4367
|
+
* ====Aufruf:
|
4368
|
+
* * ret=KontoCheckRaw::scl_init([lutname])
|
4369
|
+
*
|
4370
|
+
* ====Rückgabe:
|
4371
|
+
* Es wird ein skalarer Statuscode zurückgegeben, der Auskunft über die Initialisierung bzw.
|
4372
|
+
* aufgetretene Fehler gibt.
|
4373
|
+
*
|
4374
|
+
* ====Mögliche Statuscodes:
|
4375
|
+
* * -155 (INVALID_SCL_INFO_BLOCK) "(Ungültiger SCL-Info-Block in der LUT-Datei"
|
4376
|
+
* * -154 (NO_SCL_BLOCKS) "Ungültige Eingabewerte in der SCL-Datei"
|
4377
|
+
* * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
|
4378
|
+
* * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
|
4379
|
+
* * 1 (OK) "ok"
|
4380
|
+
*/
|
4381
|
+
static VALUE scl_init_rb(int argc,VALUE* argv,VALUE self)
|
4382
|
+
{
|
4383
|
+
char lut_name[FILENAME_MAX+1];
|
4384
|
+
const char *l_name;
|
4385
|
+
int retval;
|
4386
|
+
|
4387
|
+
get_params_file(argc,argv,lut_name,NULL,NULL,3);
|
4388
|
+
if(!*lut_name){
|
4389
|
+
l_name=current_lutfile_name(NULL,NULL,&retval);
|
4390
|
+
if(l_name && retval>0){
|
4391
|
+
strcpy(lut_name,l_name);
|
4392
|
+
}
|
4393
|
+
else
|
4394
|
+
return INT2FIX(retval);
|
4395
|
+
}
|
4396
|
+
retval=lut_scl_init(lut_name);
|
4397
|
+
return INT2FIX(retval);
|
4398
|
+
}
|
4399
|
+
|
4400
|
+
/**
|
4401
|
+
* ===KontoCheckRaw::scl_multi(bic)
|
4402
|
+
* =====KontoCheck::scl_multi(bic)
|
4403
|
+
* Diese Funktion bestimmt alle Werte des BIC-Verzeichnisses zu einem gegebenen BIC.
|
4404
|
+
* Im Fehlerfall wird nil zurückgegeben und die Variable retval auf den
|
4405
|
+
* entsprechende Fehlercode (<0) gesetzt.
|
4406
|
+
*
|
4407
|
+
* ====Aufruf:
|
4408
|
+
* * ret=KontoCheckRaw::scl_multi(bic)
|
4409
|
+
*
|
4410
|
+
* ====Rückgabe:
|
4411
|
+
* Die Rückgabe ist ein Array mit vier Elementen:
|
4412
|
+
*
|
4413
|
+
* * Das erste Element ist der Statuscode (s.u.)
|
4414
|
+
* * Das zweite Element sind die SCL Flags (als String)
|
4415
|
+
* * das dritte Element ist der benutzte BIC
|
4416
|
+
* * das vierte Element ist der Institutsname aus dem BIC-Verzeichnis
|
4417
|
+
*
|
4418
|
+
* ====Mögliche Statuscodes:
|
4419
|
+
* * -158 (NO_SCL_BLOCKS_LOADED) "die SCL-Blocks wurden noch nicht eingelesen"
|
4420
|
+
* * -156 (SCL_BIC_NOT_FOUND) "Der BIC wurde im SCL-Verzeichnis nicht gefunden"
|
4421
|
+
* * -139 (LUT2_NOT_ALL_IBAN_BLOCKS_LOADED) "es konnten nicht alle Datenblocks die für die IBAN-Berechnung notwendig sind geladen werden"
|
4422
|
+
* * 1 (OK) "ok"
|
4423
|
+
* * 27 (OK_SCL_EXTENSION_BIC_USED) "ok, für den BIC wurde die Extension XXX angehängt"
|
4424
|
+
* * 28 (OK_SCL_WILDCARD_BIC_USED) "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt"
|
4425
|
+
*/
|
4426
|
+
static VALUE scl_multi(int argc,VALUE* argv,VALUE self)
|
4427
|
+
{
|
4428
|
+
char bic[12];
|
4429
|
+
const char *scl_flags,*used_bic,*scl_name;
|
4430
|
+
int retval;
|
4431
|
+
|
4432
|
+
get_params_scl(argc,argv,bic,11);
|
4433
|
+
retval=lut_scl_multi(bic,&scl_flags,&used_bic,&scl_name);
|
4434
|
+
if(retval>0)
|
4435
|
+
return rb_ary_new3(4,INT2FIX(retval),rb_str_new2(scl_flags),rb_str_new2(used_bic),rb_str_new2(scl_name));
|
4436
|
+
else
|
4437
|
+
return rb_ary_new3(4,INT2FIX(retval),Qnil,Qnil,Qnil);
|
4438
|
+
}
|
4439
|
+
|
4440
|
+
/**
|
4441
|
+
* ===KontoCheckRaw::scl_sct(bic)
|
4442
|
+
* =====KontoCheck::scl_sct(bic)
|
4443
|
+
* =====KontoCheckRaw::scl_sct_blz(blz)
|
4444
|
+
* Diese Funktion bestimmt das Flag SCT (SEPA Credit Transfer) des SCL-
|
4445
|
+
* Verzeichnisses und gibt das Flag (0 bzw. 1) zurück.
|
4446
|
+
* Im Fehlerfall wird nil zurückgegeben und die Variable retval auf den
|
4447
|
+
* entsprechende Fehlercode (<0) gesetzt.
|
4448
|
+
*
|
4449
|
+
* ====Aufruf:
|
4450
|
+
* * ret=KontoCheckRaw::scl_sct(bic)
|
4451
|
+
*
|
4452
|
+
* ====Rückgabe:
|
4453
|
+
* Die Rückgabe ist ein Array mit zwei Elementen:
|
4454
|
+
*
|
4455
|
+
* * Das erste Element ist das Flag SCT aus dem SEPA-Directory
|
4456
|
+
* * Das zweite Element ist der Statuscode (s.u.)
|
4457
|
+
*
|
4458
|
+
* ====Mögliche Statuscodes:
|
4459
|
+
* * -158 (NO_SCL_BLOCKS_LOADED) "die SCL-Blocks wurden noch nicht eingelesen"
|
4460
|
+
* * -156 (SCL_BIC_NOT_FOUND) "Der BIC wurde im SCL-Verzeichnis nicht gefunden"
|
4461
|
+
* * 1 (OK) "ok"
|
4462
|
+
* * 27 (OK_SCL_EXTENSION_BIC_USED) "ok, für den BIC wurde die Extension XXX angehängt"
|
4463
|
+
* * 28 (OK_SCL_WILDCARD_BIC_USED) "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt"
|
4464
|
+
*
|
4465
|
+
*/
|
4466
|
+
static VALUE scl_sct(int argc,VALUE* argv,VALUE self)
|
4467
|
+
{
|
4468
|
+
char bic[12];
|
4469
|
+
int rv,retval;
|
4470
|
+
|
4471
|
+
get_params_scl(argc,argv,bic,11);
|
4472
|
+
rv=lut_scl_sct(bic,&retval);
|
4473
|
+
return rb_ary_new3(2,retval>0?INT2FIX(rv):Qnil,INT2FIX(retval));
|
4474
|
+
}
|
4475
|
+
|
4476
|
+
/**
|
4477
|
+
* ===KontoCheckRaw::scl_sct_blz(blz)
|
4478
|
+
* =====KontoCheck::scl_sct_blz(blz)
|
4479
|
+
* =====KontoCheckRaw::scl_sct(bic)
|
4480
|
+
* Diese Funktion bestimmt das Flag SCT (SEPA Credit Transfer) des SCL-
|
4481
|
+
* Verzeichnisses und gibt das Flag (0 bzw. 1) zurück.
|
4482
|
+
* Im Fehlerfall wird nil zurückgegeben und die Variable retval auf den
|
4483
|
+
* entsprechende Fehlercode (<0) gesetzt.
|
4484
|
+
*
|
4485
|
+
* ====Aufruf:
|
4486
|
+
* * ret=KontoCheckRaw::scl_sct_blz(blz)
|
4487
|
+
*
|
4488
|
+
* ====Rückgabe:
|
4489
|
+
* Die Rückgabe ist ein Array mit drei Elementen:
|
4490
|
+
*
|
4491
|
+
* * Das erste Element ist das Flag SCT aus dem SEPA-Directory
|
4492
|
+
* * Das zweite Element ist der Statuscode (s.u.)
|
4493
|
+
* * Das dritte Element ist der benutzte BIC
|
4494
|
+
*
|
4495
|
+
* ====Mögliche Statuscodes:
|
4496
|
+
* * -158 (NO_SCL_BLOCKS_LOADED) "die SCL-Blocks wurden noch nicht eingelesen"
|
4497
|
+
* * -156 (SCL_BIC_NOT_FOUND) "Der BIC wurde im SCL-Verzeichnis nicht gefunden"
|
4498
|
+
* * -139 (LUT2_NOT_ALL_IBAN_BLOCKS_LOADED) "es konnten nicht alle Datenblocks die für die IBAN-Berechnung notwendig sind geladen werden"
|
4499
|
+
* * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
|
4500
|
+
* * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
|
4501
|
+
* * 1 (OK) "ok"
|
4502
|
+
* * 27 (OK_SCL_EXTENSION_BIC_USED) "ok, für den BIC wurde die Extension XXX angehängt"
|
4503
|
+
* * 28 (OK_SCL_WILDCARD_BIC_USED) "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt"
|
4504
|
+
*/
|
4505
|
+
static VALUE scl_sct_blz(int argc,VALUE* argv,VALUE self)
|
4506
|
+
{
|
4507
|
+
char blz[12];
|
4508
|
+
const char *used_bic;
|
4509
|
+
int rv,retval;
|
4510
|
+
|
4511
|
+
get_params_scl(argc,argv,blz,8);
|
4512
|
+
rv=lut_scl_sct_blz(blz,&retval,&used_bic);
|
4513
|
+
if(retval>0)
|
4514
|
+
return rb_ary_new3(3,INT2FIX(rv),INT2FIX(retval),rb_str_new2(used_bic));
|
4515
|
+
else
|
4516
|
+
return rb_ary_new3(3,Qnil,INT2FIX(retval),Qnil);
|
4517
|
+
}
|
4518
|
+
|
4519
|
+
/**
|
4520
|
+
* ===KontoCheckRaw::scl_sdd(bic)
|
4521
|
+
* =====KontoCheck::scl_sdd(bic)
|
4522
|
+
* =====KontoCheckRaw::scl_sdd_blz(blz)
|
4523
|
+
* Diese Funktion bestimmt das Flag SDD (SEPA CORE Direct Debit (SEPA-Basislastschrift)
|
4524
|
+
* des SCL- Verzeichnisses und gibt das Flag (0 bzw. 1) zurück.
|
4525
|
+
* Im Fehlerfall wird nil zurückgegeben und die Variable retval auf den
|
4526
|
+
* entsprechende Fehlercode (<0) gesetzt.
|
4527
|
+
*
|
4528
|
+
* ====Aufruf:
|
4529
|
+
* * ret=KontoCheckRaw::scl_sdd(bic)
|
4530
|
+
*
|
4531
|
+
* ====Rückgabe:
|
4532
|
+
* Die Rückgabe ist ein Array mit zwei Elementen:
|
4533
|
+
*
|
4534
|
+
* * Das erste Element ist das Flag SDD aus dem SEPA-Directory
|
4535
|
+
* * Das zweite Element ist der Statuscode (s.u.)
|
4536
|
+
*
|
4537
|
+
* ====Mögliche Statuscodes:
|
4538
|
+
* * -158 (NO_SCL_BLOCKS_LOADED) "die SCL-Blocks wurden noch nicht eingelesen"
|
4539
|
+
* * -156 (SCL_BIC_NOT_FOUND) "Der BIC wurde im SCL-Verzeichnis nicht gefunden"
|
4540
|
+
* * 1 (OK) "ok"
|
4541
|
+
* * 27 (OK_SCL_EXTENSION_BIC_USED) "ok, für den BIC wurde die Extension XXX angehängt"
|
4542
|
+
* * 28 (OK_SCL_WILDCARD_BIC_USED) "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt"
|
4543
|
+
*/
|
4544
|
+
static VALUE scl_sdd(int argc,VALUE* argv,VALUE self)
|
4545
|
+
{
|
4546
|
+
char bic[12];
|
4547
|
+
int rv,retval;
|
4548
|
+
|
4549
|
+
get_params_scl(argc,argv,bic,11);
|
4550
|
+
rv=lut_scl_sdd(bic,&retval);
|
4551
|
+
return rb_ary_new3(2,retval>0?INT2FIX(rv):Qnil,INT2FIX(retval));
|
4552
|
+
}
|
4553
|
+
|
4554
|
+
/**
|
4555
|
+
* ===KontoCheckRaw::scl_sdd_blz(blz)
|
4556
|
+
* =====KontoCheck::scl_sdd(bic)
|
4557
|
+
* =====KontoCheckRaw::scl_sdd(blz)
|
4558
|
+
* Diese Funktion bestimmt das Flag SDD (SEPA CORE Direct Debit (SEPA-Basislastschrift)
|
4559
|
+
* des SCL- Verzeichnisses und gibt das Flag (0 bzw. 1) zurück.
|
4560
|
+
* Im Fehlerfall wird nil zurückgegeben und die Variable retval auf den
|
4561
|
+
* entsprechende Fehlercode (<0) gesetzt.
|
4562
|
+
*
|
4563
|
+
* ====Aufruf:
|
4564
|
+
* * ret=KontoCheckRaw::scl_sdd_blz(blz)
|
4565
|
+
*
|
4566
|
+
* ====Rückgabe:
|
4567
|
+
* Die Rückgabe ist ein Array mit drei Elementen:
|
4568
|
+
*
|
4569
|
+
* * Das erste Element ist das Flag SDD aus dem SEPA-Directory
|
4570
|
+
* * Das zweite Element ist der Statuscode (s.u.)
|
4571
|
+
* * Das dritte Element (nur bei scl_sdd_blz()) ist der benutzte BIC
|
4572
|
+
*
|
4573
|
+
* ====Mögliche Statuscodes:
|
4574
|
+
* * -158 (NO_SCL_BLOCKS_LOADED) "die SCL-Blocks wurden noch nicht eingelesen"
|
4575
|
+
* * -156 (SCL_BIC_NOT_FOUND) "Der BIC wurde im SCL-Verzeichnis nicht gefunden"
|
4576
|
+
* * -139 (LUT2_NOT_ALL_IBAN_BLOCKS_LOADED) "es konnten nicht alle Datenblocks die für die IBAN-Berechnung notwendig sind geladen werden"
|
4577
|
+
* * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
|
4578
|
+
* * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
|
4579
|
+
* * 1 (OK) "ok"
|
4580
|
+
* * 27 (OK_SCL_EXTENSION_BIC_USED) "ok, für den BIC wurde die Extension XXX angehängt"
|
4581
|
+
* * 28 (OK_SCL_WILDCARD_BIC_USED) "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt"
|
4582
|
+
*/
|
4583
|
+
static VALUE scl_sdd_blz(int argc,VALUE* argv,VALUE self)
|
4584
|
+
{
|
4585
|
+
char blz[12];
|
4586
|
+
const char *used_bic;
|
4587
|
+
int rv,retval;
|
4588
|
+
|
4589
|
+
get_params_scl(argc,argv,blz,8);
|
4590
|
+
rv=lut_scl_sdd_blz(blz,&retval,&used_bic);
|
4591
|
+
if(retval>0)
|
4592
|
+
return rb_ary_new3(3,INT2FIX(rv),INT2FIX(retval),rb_str_new2(used_bic));
|
4593
|
+
else
|
4594
|
+
return rb_ary_new3(3,Qnil,INT2FIX(retval),Qnil);
|
4595
|
+
}
|
4596
|
+
|
4597
|
+
/**
|
4598
|
+
* ===KontoCheckRaw::scl_cor1(bic)
|
4599
|
+
* =====KontoCheck::scl_cor1(bic)
|
4600
|
+
* =====KontoCheck::scl_cor1_blz(blz)
|
4601
|
+
* Diese Funktion bestimmt das Flag COR1 (SEPA COR1 Direct Debit (SEPA-Basislastschrift
|
4602
|
+
* mit verkürzter Vorlagefrist) des SCL-Verzeichnisses und gibt das Flag (0 bzw. 1) zurück.
|
4603
|
+
* Im Fehlerfall wird nil zurückgegeben und die Variable retval auf den
|
4604
|
+
* entsprechende Fehlercode (<0) gesetzt.
|
4605
|
+
*
|
4606
|
+
* ====Aufruf:
|
4607
|
+
* * ret=KontoCheckRaw::scl_cor1(bic)
|
4608
|
+
*
|
4609
|
+
* ====Rückgabe:
|
4610
|
+
* Die Rückgabe ist ein Array mit zwei Elementen:
|
4611
|
+
*
|
4612
|
+
* * Das erste Element ist das Flag SDD aus dem SEPA-Directory
|
4613
|
+
* * Das zweite Element ist der Statuscode (s.u.)
|
4614
|
+
*
|
4615
|
+
* ====Mögliche Statuscodes:
|
4616
|
+
* * -158 (NO_SCL_BLOCKS_LOADED) "die SCL-Blocks wurden noch nicht eingelesen"
|
4617
|
+
* * -156 (SCL_BIC_NOT_FOUND) "Der BIC wurde im SCL-Verzeichnis nicht gefunden"
|
4618
|
+
* * 1 (OK) "ok"
|
4619
|
+
* * 27 (OK_SCL_EXTENSION_BIC_USED) "ok, für den BIC wurde die Extension XXX angehängt"
|
4620
|
+
* * 28 (OK_SCL_WILDCARD_BIC_USED) "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt"
|
4621
|
+
*/
|
4622
|
+
static VALUE scl_cor1(int argc,VALUE* argv,VALUE self)
|
4623
|
+
{
|
4624
|
+
char bic[12];
|
4625
|
+
int rv,retval;
|
4626
|
+
|
4627
|
+
get_params_scl(argc,argv,bic,11);
|
4628
|
+
rv=lut_scl_cor1(bic,&retval);
|
4629
|
+
return rb_ary_new3(2,retval>0?INT2FIX(rv):Qnil,INT2FIX(retval));
|
4630
|
+
}
|
4631
|
+
|
4632
|
+
/**
|
4633
|
+
* ===KontoCheckRaw::scl_cor1_blz(blz)
|
4634
|
+
* =====KontoCheck::scl_cor1(bic)
|
4635
|
+
* =====KontoCheckRaw::scl_cor1(blz)
|
4636
|
+
* Diese Funktion bestimmt das Flag COR1 (SEPA COR1 Direct Debit (SEPA-Basislastschrift
|
4637
|
+
* mit verkürzter Vorlagefrist) des SCL-Verzeichnisses und gibt das Flag (0 bzw. 1) zurück.
|
4638
|
+
* Im Fehlerfall wird nil zurückgegeben und die Variable retval auf den
|
4639
|
+
* entsprechende Fehlercode (<0) gesetzt.
|
4640
|
+
*
|
4641
|
+
* ====Aufruf:
|
4642
|
+
* * ret=KontoCheckRaw::scl_cor1_blz(blz)
|
4643
|
+
*
|
4644
|
+
* ====Rückgabe:
|
4645
|
+
* Die Rückgabe ist ein Array mit drei Elementen:
|
4646
|
+
*
|
4647
|
+
* * Das erste Element ist das Flag SDD aus dem SEPA-Directory
|
4648
|
+
* * Das zweite Element ist der Statuscode (s.u.)
|
4649
|
+
* * Das dritte Element (nur bei scl_cor1_blz()) ist der benutzte BIC
|
4650
|
+
*
|
4651
|
+
* ====Mögliche Statuscodes:
|
4652
|
+
* * -158 (NO_SCL_BLOCKS_LOADED) "die SCL-Blocks wurden noch nicht eingelesen"
|
4653
|
+
* * -156 (SCL_BIC_NOT_FOUND) "Der BIC wurde im SCL-Verzeichnis nicht gefunden"
|
4654
|
+
* * -139 (LUT2_NOT_ALL_IBAN_BLOCKS_LOADED) "es konnten nicht alle Datenblocks die für die IBAN-Berechnung notwendig sind geladen werden"
|
4655
|
+
* * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
|
4656
|
+
* * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
|
4657
|
+
* * 1 (OK) "ok"
|
4658
|
+
* * 27 (OK_SCL_EXTENSION_BIC_USED) "ok, für den BIC wurde die Extension XXX angehängt"
|
4659
|
+
* * 28 (OK_SCL_WILDCARD_BIC_USED) "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt"
|
4660
|
+
*/
|
4661
|
+
static VALUE scl_cor1_blz(int argc,VALUE* argv,VALUE self)
|
4662
|
+
{
|
4663
|
+
char blz[12];
|
4664
|
+
const char *used_bic;
|
4665
|
+
int rv,retval;
|
4666
|
+
|
4667
|
+
get_params_scl(argc,argv,blz,8);
|
4668
|
+
rv=lut_scl_cor1_blz(blz,&retval,&used_bic);
|
4669
|
+
if(retval>0)
|
4670
|
+
return rb_ary_new3(3,INT2FIX(rv),INT2FIX(retval),rb_str_new2(used_bic));
|
4671
|
+
else
|
4672
|
+
return rb_ary_new3(3,Qnil,INT2FIX(retval),Qnil);
|
4673
|
+
}
|
4674
|
+
|
4675
|
+
/**
|
4676
|
+
* ===KontoCheckRaw::scl_b2b(bic)
|
4677
|
+
* =====KontoCheck::scl_b2b(bic)
|
4678
|
+
* =====KontoCheckRaw::scl_b2b_blz(blz)
|
4679
|
+
* Diese Funktion bestimmt das Flag B2B (SEPA B2B Direct Debit, Sepa-Firmelastschrift)
|
4680
|
+
* des SCL-Verzeichnisses und gibt das Flag (0 bzw. 1) zurück.
|
4681
|
+
* Im Fehlerfall wird nil zurückgegeben und die Variable retval auf den
|
4682
|
+
* entsprechende Fehlercode (<0) gesetzt.
|
4683
|
+
*
|
4684
|
+
* ====Aufruf:
|
4685
|
+
* * ret=KontoCheckRaw::scl_b2b(bic)
|
4686
|
+
*
|
4687
|
+
* ====Rückgabe:
|
4688
|
+
* Die Rückgabe ist ein Array mit zwei Elementen:
|
4689
|
+
*
|
4690
|
+
* * Das erste Element ist das Flag B2B aus dem SEPA-Directory
|
4691
|
+
* * Das zweite Element ist der Statuscode (s.u.)
|
4692
|
+
*
|
4693
|
+
* ====Mögliche Statuscodes:
|
4694
|
+
* * -158 (NO_SCL_BLOCKS_LOADED) "die SCL-Blocks wurden noch nicht eingelesen"
|
4695
|
+
* * -156 (SCL_BIC_NOT_FOUND) "Der BIC wurde im SCL-Verzeichnis nicht gefunden"
|
4696
|
+
* * 1 (OK) "ok"
|
4697
|
+
* * 27 (OK_SCL_EXTENSION_BIC_USED) "ok, für den BIC wurde die Extension XXX angehängt"
|
4698
|
+
* * 28 (OK_SCL_WILDCARD_BIC_USED) "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt"
|
4699
|
+
*/
|
4700
|
+
static VALUE scl_b2b(int argc,VALUE* argv,VALUE self)
|
4701
|
+
{
|
4702
|
+
char bic[12];
|
4703
|
+
int rv,retval;
|
4704
|
+
|
4705
|
+
get_params_scl(argc,argv,bic,11);
|
4706
|
+
rv=lut_scl_b2b(bic,&retval);
|
4707
|
+
return rb_ary_new3(2,retval>0?INT2FIX(rv):Qnil,INT2FIX(retval));
|
4708
|
+
}
|
4709
|
+
|
4710
|
+
/**
|
4711
|
+
* ===KontoCheckRaw::scl_b2b_blz(blz)
|
4712
|
+
* =====KontoCheck::scl_b2b_blz(blz)
|
4713
|
+
* =====KontoCheckRaw::scl_b2b(bic)
|
4714
|
+
* Diese Funktion bestimmt das Flag B2B (SEPA B2B Direct Debit, Sepa-Firmelastschrift)
|
4715
|
+
* des SCL-Verzeichnisses und gibt das Flag (0 bzw. 1) zurück.
|
4716
|
+
* Im Fehlerfall wird nil zurückgegeben und die Variable retval auf den
|
4717
|
+
* entsprechende Fehlercode (<0) gesetzt.
|
4718
|
+
*
|
4719
|
+
* ====Aufruf:
|
4720
|
+
* * ret=KontoCheckRaw::scl_b2b_blz(blz)
|
4721
|
+
*
|
4722
|
+
* ====Rückgabe:
|
4723
|
+
* Die Rückgabe ist ein Array mit drei Elementen:
|
4724
|
+
*
|
4725
|
+
* * Das erste Element ist das Flag B2B aus dem SEPA-Directory
|
4726
|
+
* * Das zweite Element ist der Statuscode (s.u.)
|
4727
|
+
* * Das dritte Element (nur bei scl_b2b_blz()) ist der benutzte BIC
|
4728
|
+
*
|
4729
|
+
* ====Mögliche Statuscodes:
|
4730
|
+
* * -158 (NO_SCL_BLOCKS_LOADED) "die SCL-Blocks wurden noch nicht eingelesen"
|
4731
|
+
* * -156 (SCL_BIC_NOT_FOUND) "Der BIC wurde im SCL-Verzeichnis nicht gefunden"
|
4732
|
+
* * -139 (LUT2_NOT_ALL_IBAN_BLOCKS_LOADED) "es konnten nicht alle Datenblocks die für die IBAN-Berechnung notwendig sind geladen werden"
|
4733
|
+
* * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
|
4734
|
+
* * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
|
4735
|
+
* * 1 (OK) "ok"
|
4736
|
+
* * 27 (OK_SCL_EXTENSION_BIC_USED) "ok, für den BIC wurde die Extension XXX angehängt"
|
4737
|
+
* * 28 (OK_SCL_WILDCARD_BIC_USED) "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt"
|
4738
|
+
*/
|
4739
|
+
static VALUE scl_b2b_blz(int argc,VALUE* argv,VALUE self)
|
4740
|
+
{
|
4741
|
+
char blz[12];
|
4742
|
+
const char *used_bic;
|
4743
|
+
int rv,retval;
|
4744
|
+
|
4745
|
+
get_params_scl(argc,argv,blz,8);
|
4746
|
+
rv=lut_scl_b2b_blz(blz,&retval,&used_bic);
|
4747
|
+
if(retval>0)
|
4748
|
+
return rb_ary_new3(3,INT2FIX(rv),INT2FIX(retval),rb_str_new2(used_bic));
|
4749
|
+
else
|
4750
|
+
return rb_ary_new3(3,Qnil,INT2FIX(retval),Qnil);
|
4751
|
+
|
4752
|
+
}
|
4753
|
+
|
4754
|
+
/**
|
4755
|
+
* ===KontoCheckRaw::scl_scc(bic)
|
4756
|
+
* =====KontoCheck::scl_scc(bic)
|
4757
|
+
* =====KontoCheckRaw::scl_scc_blz(blz)
|
4758
|
+
* Diese Funktion bestimmt das Flag SCC (SEPA Card Clearing, SCC Karteneinzüge)
|
4759
|
+
* des SCL-Verzeichnisses und gibt das Flag (0 bzw. 1) zurück.
|
4760
|
+
* Im Fehlerfall wird nil zurückgegeben und die Variable retval auf den
|
4761
|
+
* entsprechende Fehlercode (<0) gesetzt.
|
4762
|
+
*
|
4763
|
+
* ====Aufruf:
|
4764
|
+
* * ret=KontoCheckRaw::scl_scc(bic)
|
4765
|
+
*
|
4766
|
+
* ====Rückgabe:
|
4767
|
+
* Die Rückgabe ist ein Array mit zwei Elementen:
|
4768
|
+
*
|
4769
|
+
* * Das erste Element ist das Flag SDD aus dem SEPA-Directory
|
4770
|
+
* * Das zweite Element ist der Statuscode (s.u.)
|
4771
|
+
*
|
4772
|
+
* ====Mögliche Statuscodes:
|
4773
|
+
* * -158 (NO_SCL_BLOCKS_LOADED) "die SCL-Blocks wurden noch nicht eingelesen"
|
4774
|
+
* * -156 (SCL_BIC_NOT_FOUND) "Der BIC wurde im SCL-Verzeichnis nicht gefunden"
|
4775
|
+
* * 1 (OK) "ok"
|
4776
|
+
* * 27 (OK_SCL_EXTENSION_BIC_USED) "ok, für den BIC wurde die Extension XXX angehängt"
|
4777
|
+
* * 28 (OK_SCL_WILDCARD_BIC_USED) "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt"
|
4778
|
+
*/
|
4779
|
+
static VALUE scl_scc(int argc,VALUE* argv,VALUE self)
|
4780
|
+
{
|
4781
|
+
char bic[12];
|
4782
|
+
int rv,retval;
|
4783
|
+
|
4784
|
+
get_params_scl(argc,argv,bic,11);
|
4785
|
+
rv=lut_scl_scc(bic,&retval);
|
4786
|
+
return rb_ary_new3(2,retval>0?INT2FIX(rv):Qnil,INT2FIX(retval));
|
4787
|
+
}
|
4788
|
+
|
4789
|
+
/**
|
4790
|
+
* ===KontoCheckRaw::scl_scc_blz(blz)
|
4791
|
+
* =====KontoCheck::scl_scc(bic)
|
4792
|
+
* =====KontoCheckRaw::scl_scc(bic)
|
4793
|
+
* Diese Funktion bestimmt das Flag SCC (SEPA Card Clearing, SCC Karteneinzüge)
|
4794
|
+
* des SCL-Verzeichnisses und gibt das Flag (0 bzw. 1) zurück.
|
4795
|
+
* Im Fehlerfall wird nil zurückgegeben und die Variable retval auf den
|
4796
|
+
* entsprechende Fehlercode (<0) gesetzt.
|
4797
|
+
*
|
4798
|
+
* ====Aufruf:
|
4799
|
+
* * ret=KontoCheckRaw::scl_scc_blz(blz)
|
4800
|
+
*
|
4801
|
+
* ====Rückgabe:
|
4802
|
+
* Die Rückgabe ist ein Array mit drei Elementen:
|
4803
|
+
*
|
4804
|
+
* * Das erste Element ist das Flag SDD aus dem SEPA-Directory
|
4805
|
+
* * Das zweite Element ist der Statuscode (s.u.)
|
4806
|
+
* * Das dritte Element (nur bei scl_scc_blz()) ist der benutzte BIC
|
4807
|
+
*
|
4808
|
+
* ====Mögliche Statuscodes:
|
4809
|
+
* * -158 (NO_SCL_BLOCKS_LOADED) "die SCL-Blocks wurden noch nicht eingelesen"
|
4810
|
+
* * -156 (SCL_BIC_NOT_FOUND) "Der BIC wurde im SCL-Verzeichnis nicht gefunden"
|
4811
|
+
* * -139 (LUT2_NOT_ALL_IBAN_BLOCKS_LOADED) "es konnten nicht alle Datenblocks die für die IBAN-Berechnung notwendig sind geladen werden"
|
4812
|
+
* * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
|
4813
|
+
* * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
|
4814
|
+
* * 1 (OK) "ok"
|
4815
|
+
* * 27 (OK_SCL_EXTENSION_BIC_USED) "ok, für den BIC wurde die Extension XXX angehängt"
|
4816
|
+
* * 28 (OK_SCL_WILDCARD_BIC_USED) "ok, für den BIC wurde die Wildcard-Version (8stellig) benutzt"
|
4817
|
+
*/
|
4818
|
+
static VALUE scl_scc_blz(int argc,VALUE* argv,VALUE self)
|
4819
|
+
{
|
4820
|
+
char blz[12];
|
4821
|
+
const char *used_bic;
|
4822
|
+
int rv,retval;
|
4823
|
+
|
4824
|
+
get_params_scl(argc,argv,blz,8);
|
4825
|
+
rv=lut_scl_scc_blz(blz,&retval,&used_bic);
|
4826
|
+
if(retval>0)
|
4827
|
+
return rb_ary_new3(3,INT2FIX(rv),INT2FIX(retval),rb_str_new2(used_bic));
|
4828
|
+
else
|
4829
|
+
return rb_ary_new3(3,Qnil,INT2FIX(retval),Qnil);
|
4830
|
+
}
|
4831
|
+
|
4320
4832
|
/**
|
4321
4833
|
* ===KontoCheckRaw::version( [mode] )
|
4322
4834
|
* =====KontoCheck::version( [mode] )
|
@@ -4358,7 +4870,7 @@ void Init_konto_check_raw()
|
|
4358
4870
|
*
|
4359
4871
|
* <b>ATTENTION:</b> There are a few important changes in the API between
|
4360
4872
|
* version 0.0.2 (version by Peter Horn/Provideal), version 0.0.6 (jeanmartin)
|
4361
|
-
* and this version (V. 6.
|
4873
|
+
* and this version (V. 6.13 from 2020-12-16):
|
4362
4874
|
*
|
4363
4875
|
* * The function KontoCheck::load_bank_data() is no longer used; it is
|
4364
4876
|
* replaced by KontoCheck::init() and KontoCheck::generate_lutfile().
|
@@ -4536,6 +5048,20 @@ void Init_konto_check_raw()
|
|
4536
5048
|
rb_define_module_function(KontoCheck,"bank_suche_regel",bank_suche_regel,-1);
|
4537
5049
|
rb_define_module_function(KontoCheck,"bank_suche_volltext",bank_suche_volltext,-1);
|
4538
5050
|
rb_define_module_function(KontoCheck,"bank_suche_multiple",bank_suche_multiple,-1);
|
5051
|
+
|
5052
|
+
rb_define_module_function(KontoCheck,"scl_init",scl_init_rb,-1);
|
5053
|
+
rb_define_module_function(KontoCheck,"scl_multi",scl_multi,-1);
|
5054
|
+
rb_define_module_function(KontoCheck,"scl_sct",scl_sct,-1);
|
5055
|
+
rb_define_module_function(KontoCheck,"scl_sdd",scl_sdd,-1);
|
5056
|
+
rb_define_module_function(KontoCheck,"scl_cor1",scl_cor1,-1);
|
5057
|
+
rb_define_module_function(KontoCheck,"scl_b2b",scl_b2b,-1);
|
5058
|
+
rb_define_module_function(KontoCheck,"scl_scc_blz",scl_scc,-1);
|
5059
|
+
rb_define_module_function(KontoCheck,"scl_sct_blz",scl_sct_blz,-1);
|
5060
|
+
rb_define_module_function(KontoCheck,"scl_sdd_blz",scl_sdd_blz,-1);
|
5061
|
+
rb_define_module_function(KontoCheck,"scl_cor1_blz",scl_cor1_blz,-1);
|
5062
|
+
rb_define_module_function(KontoCheck,"scl_b2b_blz",scl_b2b_blz,-1);
|
5063
|
+
rb_define_module_function(KontoCheck,"scl_scc_blz",scl_scc_blz,-1);
|
5064
|
+
|
4539
5065
|
rb_define_module_function(KontoCheck,"version",version_rb,-1);
|
4540
5066
|
rb_define_module_function(KontoCheck,"load_bank_data",load_bank_data,1);
|
4541
5067
|
|