konto_check 6.00.0 → 6.01.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/konto_check_raw/konto_check.c +102 -277
- data/ext/konto_check_raw/konto_check.h +0 -2
- data/ext/konto_check_raw/konto_check_raw_ruby.c +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e0b9ecf2e4612120b79bfbcbb3adbb22c3ded7e6
|
4
|
+
data.tar.gz: 4684d17c54d69b0cc1b01672918ce46f53ca598d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 156dc5a16fb7ed68ef304ca003c759e53a49779f581044f49a0fdedb394559b41925702cf0b2a30038bdb4a42b7ceb44c45e176a18fd9a17c0631242ded86adf
|
7
|
+
data.tar.gz: fd5eb01b83dccb3681c159081dfd845859ec7deb1ae38208e49c030374845f277ee898946158533c859735a1231f4ca295237194b0e525938d760c3067acda7e
|
@@ -45,15 +45,14 @@
|
|
45
45
|
* # im Internet herunterladen. #
|
46
46
|
* ##########################################################################
|
47
47
|
*/
|
48
|
-
#line 332 "konto_check.lxx"
|
49
48
|
|
50
49
|
/* Definitionen und Includes */
|
51
50
|
#ifndef VERSION
|
52
|
-
#define VERSION "6.
|
51
|
+
#define VERSION "6.01 (final)"
|
53
52
|
#define VERSION_MAJOR 6
|
54
|
-
#define VERSION_MINOR
|
53
|
+
#define VERSION_MINOR 01
|
55
54
|
#endif
|
56
|
-
#define VERSION_DATE "2017-
|
55
|
+
#define VERSION_DATE "2017-08-13"
|
57
56
|
|
58
57
|
#ifndef INCLUDE_KONTO_CHECK_DE
|
59
58
|
#define INCLUDE_KONTO_CHECK_DE 1
|
@@ -104,8 +103,8 @@ static lzo_align_t __LZO_MMODEL wrkmem[LZO1X_1_MEM_COMPRESS];
|
|
104
103
|
#define KONTO_CHECK_VARS
|
105
104
|
#include "konto_check.h"
|
106
105
|
|
107
|
-
/* Flag, um die �nderungen zum
|
108
|
-
static int
|
106
|
+
/* Flag, um die �nderungen zum September 2017 zu aktivieren */
|
107
|
+
static int pz_aenderungen_aktivieren_2017_09;
|
109
108
|
|
110
109
|
/* falls die Variable verbose_debug gesetzt wird, werden bei einigen
|
111
110
|
* Funktionen mittels perror() zus�tzliche Debuginfos ausgegeben. Die
|
@@ -242,7 +241,6 @@ static int convert_encoding(char **data,UINT4 *len);
|
|
242
241
|
#define free(ptr) efree(ptr)
|
243
242
|
#endif
|
244
243
|
|
245
|
-
#line 770 "konto_check.lxx"
|
246
244
|
|
247
245
|
/* Testwert zur Markierung ung�ltiger Ziffern im BLZ-String (>8 Stellen) */
|
248
246
|
#define BLZ_FEHLER 100000000
|
@@ -378,7 +376,6 @@ static int convert_encoding(char **data,UINT4 *len);
|
|
378
376
|
*/
|
379
377
|
#define CHECK_RETVAL(fkt) do{if((retval=fkt)!=OK)goto fini;}while(0) /* es mu� noch aufger�umt werden, daher goto */
|
380
378
|
#define CHECK_RETURN(fkt) do{if((retval=fkt)!=OK)return retval;}while(0)
|
381
|
-
#line 911 "konto_check.lxx"
|
382
379
|
|
383
380
|
/* einige Makros zur Umwandlung zwischen unsigned int und char */
|
384
381
|
#define UCP (unsigned char*)
|
@@ -498,7 +495,6 @@ int pz=-777;
|
|
498
495
|
|
499
496
|
#define E_START(x)
|
500
497
|
#define E_END(x)
|
501
|
-
#line 1036 "konto_check.lxx"
|
502
498
|
|
503
499
|
/* Variable f�r die Methoden 27, 29 und 69 */
|
504
500
|
static const int m10h_digits[4][10]={
|
@@ -947,7 +943,6 @@ static int create_lutfile_int(char *name, char *prolog, int slots,FILE **lut)
|
|
947
943
|
* ###########################################################################
|
948
944
|
*/
|
949
945
|
|
950
|
-
#line 1485 "konto_check.lxx"
|
951
946
|
DLL_EXPORT int write_lut_block(char *lutname,UINT4 typ,UINT4 len,char *data)
|
952
947
|
{
|
953
948
|
char buffer[SLOT_BUFFER],*ptr;
|
@@ -985,7 +980,6 @@ DLL_EXPORT int write_lut_block(char *lutname,UINT4 typ,UINT4 len,char *data)
|
|
985
980
|
* #############################################################################
|
986
981
|
*/
|
987
982
|
|
988
|
-
#line 1523 "konto_check.lxx"
|
989
983
|
static int write_lut_block_int(FILE *lut,UINT4 typ,UINT4 len,char *data)
|
990
984
|
{
|
991
985
|
char buffer[SLOT_BUFFER],*ptr,*cptr;
|
@@ -1121,7 +1115,6 @@ static int write_lut_block_int(FILE *lut,UINT4 typ,UINT4 len,char *data)
|
|
1121
1115
|
* ###########################################################################
|
1122
1116
|
*/
|
1123
1117
|
|
1124
|
-
#line 1659 "konto_check.lxx"
|
1125
1118
|
DLL_EXPORT int read_lut_block(char *lutname, UINT4 typ,UINT4 *blocklen,char **data)
|
1126
1119
|
{
|
1127
1120
|
int retval;
|
@@ -1144,7 +1137,6 @@ DLL_EXPORT int read_lut_block(char *lutname, UINT4 typ,UINT4 *blocklen,char **da
|
|
1144
1137
|
* ###########################################################################
|
1145
1138
|
*/
|
1146
1139
|
|
1147
|
-
#line 1683 "konto_check.lxx"
|
1148
1140
|
DLL_EXPORT int read_lut_slot(char *lutname,int slot,UINT4 *blocklen,char **data)
|
1149
1141
|
{
|
1150
1142
|
int retval;
|
@@ -1166,7 +1158,6 @@ DLL_EXPORT int read_lut_slot(char *lutname,int slot,UINT4 *blocklen,char **data)
|
|
1166
1158
|
* ###########################################################################
|
1167
1159
|
*/
|
1168
1160
|
|
1169
|
-
#line 1706 "konto_check.lxx"
|
1170
1161
|
static int read_lut_block_int(FILE *lut,int slot,int typ,UINT4 *blocklen,char **data)
|
1171
1162
|
{
|
1172
1163
|
char buffer[SLOT_BUFFER],*ptr,*sbuffer,*dbuffer;
|
@@ -1256,7 +1247,6 @@ static int read_lut_block_int(FILE *lut,int slot,int typ,UINT4 *blocklen,char **
|
|
1256
1247
|
FREE(sbuffer);
|
1257
1248
|
RETURN(ERROR_MALLOC);
|
1258
1249
|
}
|
1259
|
-
#line 1811 "konto_check.lxx"
|
1260
1250
|
|
1261
1251
|
if(fread(sbuffer,1,compressed_len,lut)<compressed_len){
|
1262
1252
|
FREE(sbuffer);
|
@@ -2849,7 +2839,6 @@ DLL_EXPORT int lut_info_id(char *lut_name,int *info1,int *info2,int *valid1,int
|
|
2849
2839
|
* ###########################################################################
|
2850
2840
|
*/
|
2851
2841
|
|
2852
|
-
#line 3404 "konto_check.lxx"
|
2853
2842
|
DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int *valid2)
|
2854
2843
|
{
|
2855
2844
|
char *ptr,*ptr1,buffer[128];
|
@@ -2937,7 +2926,6 @@ DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int
|
|
2937
2926
|
|
2938
2927
|
/* Infoblocks lesen: 1. Infoblock */
|
2939
2928
|
if((ret=read_lut_block_int(in,0,LUT2_INFO,&cnt,&ptr))==OK){
|
2940
|
-
#line 3493 "konto_check.lxx"
|
2941
2929
|
*(ptr+cnt)=0;
|
2942
2930
|
if(valid1){
|
2943
2931
|
for(ptr1=ptr,v1=v2=0;*ptr1 && *ptr1!='\n' && !isdigit(*ptr1);ptr1++);
|
@@ -2985,7 +2973,6 @@ DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int
|
|
2985
2973
|
|
2986
2974
|
/* Infoblocks lesen: 2. Infoblock */
|
2987
2975
|
if((ret=read_lut_block_int(in,0,LUT2_2_INFO,&cnt,&ptr))==OK){
|
2988
|
-
#line 3542 "konto_check.lxx"
|
2989
2976
|
*(ptr+cnt)=0;
|
2990
2977
|
if(valid2){
|
2991
2978
|
for(ptr1=ptr,v1=v2=0;*ptr1 && *ptr1!='\n' && !isdigit(*ptr1);ptr1++);
|
@@ -3204,7 +3191,6 @@ DLL_EXPORT int copy_lutfile(char *old_name,char *new_name,int new_slots)
|
|
3204
3191
|
qsort(slotdir,slot_cnt,sizeof(int),cmp_int);
|
3205
3192
|
for(last_slot=-1,i=0;i<(int)slot_cnt;i++)if((typ=slotdir[i]) && typ!=(UINT4)last_slot){
|
3206
3193
|
read_lut_block_int(lut1,0,typ,&len,&data);
|
3207
|
-
#line 3762 "konto_check.lxx"
|
3208
3194
|
write_lut_block_int(lut2,typ,len,data);
|
3209
3195
|
FREE(data);
|
3210
3196
|
last_slot=typ;
|
@@ -3434,7 +3420,6 @@ DLL_EXPORT int lut_init(char *lut_name,int required,int set)
|
|
3434
3420
|
* # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
|
3435
3421
|
* ###########################################################################
|
3436
3422
|
*/
|
3437
|
-
#line 3992 "konto_check.lxx"
|
3438
3423
|
DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,int incremental)
|
3439
3424
|
{
|
3440
3425
|
char *ptr,*dptr,*data,*eptr,*prolog,*info,*user_info,*hs=NULL,*info1,*info2,*ci=NULL,name_buffer[LUT_PATH_LEN];
|
@@ -3662,7 +3647,6 @@ DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,
|
|
3662
3647
|
typ1=typ;
|
3663
3648
|
if(lut2_block_status[typ]==OK)continue; /* jeden Block nur einmal einlesen */
|
3664
3649
|
retval=read_lut_block_int(lut,0,typ,&len,&data);
|
3665
|
-
#line 4221 "konto_check.lxx"
|
3666
3650
|
|
3667
3651
|
switch(retval){
|
3668
3652
|
case LUT_CRC_ERROR:
|
@@ -3750,7 +3734,6 @@ DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,
|
|
3750
3734
|
if(typ==LUT2_2_NAME || typ==LUT2_2_NAME_KURZ){
|
3751
3735
|
FREE(data);
|
3752
3736
|
i=read_lut_block_int(lut,0,LUT2_2_NAME_NAME_KURZ,&len,&data);
|
3753
|
-
#line 4313 "konto_check.lxx"
|
3754
3737
|
if(i==OK){ /* was gefunden; Typ �ndern, dann weiter wie bei OK */
|
3755
3738
|
typ=LUT2_2_NAME_NAME_KURZ;
|
3756
3739
|
typ1=LUT2_NAME_NAME_KURZ;
|
@@ -4346,7 +4329,6 @@ DLL_EXPORT int lut_blocks_id(int mode,int *lut_filename,int *lut_blocks_ok,int *
|
|
4346
4329
|
* ###########################################################################
|
4347
4330
|
*/
|
4348
4331
|
|
4349
|
-
#line 4909 "konto_check.lxx"
|
4350
4332
|
DLL_EXPORT const char *current_lutfile_name(int *set,int *level,int *retval)
|
4351
4333
|
{
|
4352
4334
|
if(init_status<7 || !current_lutfile){
|
@@ -5101,7 +5083,6 @@ static int iban_init(void)
|
|
5101
5083
|
* ###########################################################################
|
5102
5084
|
*/
|
5103
5085
|
|
5104
|
-
#line 5664 "konto_check.lxx"
|
5105
5086
|
static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_version,RETVAL *retvals)
|
5106
5087
|
{
|
5107
5088
|
char tmp_buffer[16];
|
@@ -8173,6 +8154,9 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
|
|
8173
8154
|
/* SEB AG */
|
8174
8155
|
case 45:
|
8175
8156
|
|
8157
|
+
/* ab September 2017 entf�llt die Regel 45, bleibt jedoch frei */
|
8158
|
+
if(pz_aenderungen_aktivieren_2017_09)return OK;
|
8159
|
+
|
8176
8160
|
/* Einer nach der Standard IBAN-Regel ermittelten IBAN ist stets
|
8177
8161
|
* der BIC ESSEDE5FXXX zuzuordnen.
|
8178
8162
|
*/
|
@@ -8527,170 +8511,8 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
|
|
8527
8511
|
/* Evangelische Darlehnsgenossenschaft eG */
|
8528
8512
|
case 54:
|
8529
8513
|
/* ab Juni 2017 entf�llt die Regel 54, bleibt jedoch frei */
|
8530
|
-
|
8531
|
-
|
8532
|
-
/* Spendenkonten */
|
8533
|
-
if(k1==0)switch(k2){
|
8534
|
-
case 500: strcpy(kto,"0000500500"); RETURN_OK_KTO_REPLACED;
|
8535
|
-
case 502: strcpy(kto,"0000502502"); RETURN_OK_KTO_REPLACED;
|
8536
|
-
case 18067: strcpy(kto,"0000180670"); RETURN_OK_KTO_REPLACED;
|
8537
|
-
case 484848: strcpy(kto,"0000484849"); RETURN_OK_KTO_REPLACED;
|
8538
|
-
case 636306: strcpy(kto,"0000063606"); RETURN_OK_KTO_REPLACED;
|
8539
|
-
case 760440: strcpy(kto,"0000160440"); RETURN_OK_KTO_REPLACED;
|
8540
|
-
case 1018413: strcpy(kto,"0010108413"); RETURN_OK_KTO_REPLACED;
|
8541
|
-
case 2601577: strcpy(kto,"0026015776"); RETURN_OK_KTO_REPLACED;
|
8542
|
-
case 5005000: strcpy(kto,"0000500500"); RETURN_OK_KTO_REPLACED;
|
8543
|
-
case 10796740: strcpy(kto,"0010796743"); RETURN_OK_KTO_REPLACED;
|
8544
|
-
case 11796740: strcpy(kto,"0011796743"); RETURN_OK_KTO_REPLACED;
|
8545
|
-
case 12796740: strcpy(kto,"0012796743"); RETURN_OK_KTO_REPLACED;
|
8546
|
-
case 13796740: strcpy(kto,"0013796743"); RETURN_OK_KTO_REPLACED;
|
8547
|
-
case 14796740: strcpy(kto,"0014796743"); RETURN_OK_KTO_REPLACED;
|
8548
|
-
case 15796740: strcpy(kto,"0015796743"); RETURN_OK_KTO_REPLACED;
|
8549
|
-
case 16307000: strcpy(kto,"0163107000"); RETURN_OK_KTO_REPLACED;
|
8550
|
-
case 16610700: strcpy(kto,"0166107000"); RETURN_OK_KTO_REPLACED;
|
8551
|
-
case 16796740: strcpy(kto,"0016796743"); RETURN_OK_KTO_REPLACED;
|
8552
|
-
case 17796740: strcpy(kto,"0017796743"); RETURN_OK_KTO_REPLACED;
|
8553
|
-
case 18796740: strcpy(kto,"0018796743"); RETURN_OK_KTO_REPLACED;
|
8554
|
-
case 19796740: strcpy(kto,"0019796743"); RETURN_OK_KTO_REPLACED;
|
8555
|
-
case 20796740: strcpy(kto,"0020796743"); RETURN_OK_KTO_REPLACED;
|
8556
|
-
case 21796740: strcpy(kto,"0021796743"); RETURN_OK_KTO_REPLACED;
|
8557
|
-
case 22796740: strcpy(kto,"0022796743"); RETURN_OK_KTO_REPLACED;
|
8558
|
-
case 23796740: strcpy(kto,"0023796743"); RETURN_OK_KTO_REPLACED;
|
8559
|
-
case 24796740: strcpy(kto,"0024796743"); RETURN_OK_KTO_REPLACED;
|
8560
|
-
case 25796740: strcpy(kto,"0025796743"); RETURN_OK_KTO_REPLACED;
|
8561
|
-
case 26610700: strcpy(kto,"0266107000"); RETURN_OK_KTO_REPLACED;
|
8562
|
-
case 26796740: strcpy(kto,"0026796743"); RETURN_OK_KTO_REPLACED;
|
8563
|
-
case 27796740: strcpy(kto,"0027796743"); RETURN_OK_KTO_REPLACED;
|
8564
|
-
case 28796740: strcpy(kto,"0028796743"); RETURN_OK_KTO_REPLACED;
|
8565
|
-
case 29796740: strcpy(kto,"0029796743"); RETURN_OK_KTO_REPLACED;
|
8566
|
-
case 45796740: strcpy(kto,"0045796743"); RETURN_OK_KTO_REPLACED;
|
8567
|
-
case 50796740: strcpy(kto,"0050796743"); RETURN_OK_KTO_REPLACED;
|
8568
|
-
case 51796740: strcpy(kto,"0051796743"); RETURN_OK_KTO_REPLACED;
|
8569
|
-
case 52796740: strcpy(kto,"0052796743"); RETURN_OK_KTO_REPLACED;
|
8570
|
-
case 53796740: strcpy(kto,"0053796743"); RETURN_OK_KTO_REPLACED;
|
8571
|
-
case 54796740: strcpy(kto,"0054796743"); RETURN_OK_KTO_REPLACED;
|
8572
|
-
case 55796740: strcpy(kto,"0055796743"); RETURN_OK_KTO_REPLACED;
|
8573
|
-
case 56796740: strcpy(kto,"0056796743"); RETURN_OK_KTO_REPLACED;
|
8574
|
-
case 57796740: strcpy(kto,"0057796743"); RETURN_OK_KTO_REPLACED;
|
8575
|
-
case 58796740: strcpy(kto,"0058796743"); RETURN_OK_KTO_REPLACED;
|
8576
|
-
case 59796740: strcpy(kto,"0059796743"); RETURN_OK_KTO_REPLACED;
|
8577
|
-
case 60796740: strcpy(kto,"0060796743"); RETURN_OK_KTO_REPLACED;
|
8578
|
-
case 61796740: strcpy(kto,"0061796743"); RETURN_OK_KTO_REPLACED;
|
8579
|
-
case 62796740: strcpy(kto,"0062796743"); RETURN_OK_KTO_REPLACED;
|
8580
|
-
case 63796740: strcpy(kto,"0063796743"); RETURN_OK_KTO_REPLACED;
|
8581
|
-
case 64796740: strcpy(kto,"0064796743"); RETURN_OK_KTO_REPLACED;
|
8582
|
-
case 65796740: strcpy(kto,"0065796743"); RETURN_OK_KTO_REPLACED;
|
8583
|
-
case 66796740: strcpy(kto,"0066796743"); RETURN_OK_KTO_REPLACED;
|
8584
|
-
case 67796740: strcpy(kto,"0067796743"); RETURN_OK_KTO_REPLACED;
|
8585
|
-
case 68796740: strcpy(kto,"0068796743"); RETURN_OK_KTO_REPLACED;
|
8586
|
-
case 69796740: strcpy(kto,"0069796743"); RETURN_OK_KTO_REPLACED;
|
8587
|
-
default: break;
|
8588
|
-
}
|
8589
|
-
else if(k1==17 && k2==61070000){strcpy(kto,"0176107000"); RETURN_OK_KTO_REPLACED;}
|
8590
|
-
else if(k1==22 && k2==10531180){strcpy(kto,"0201053180"); RETURN_OK_KTO_REPLACED;}
|
8514
|
+
return OK;
|
8591
8515
|
|
8592
|
-
if(version>0){ /* g�ltig ab 3.3.2014 */
|
8593
|
-
if(k1==0)switch(k2){
|
8594
|
-
case 624044: return OK_IBAN_WITHOUT_KC_TEST;
|
8595
|
-
case 4063060: return OK_IBAN_WITHOUT_KC_TEST;
|
8596
|
-
case 20111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8597
|
-
case 20211908: return OK_IBAN_WITHOUT_KC_TEST;
|
8598
|
-
case 20311908: return OK_IBAN_WITHOUT_KC_TEST;
|
8599
|
-
case 20411908: return OK_IBAN_WITHOUT_KC_TEST;
|
8600
|
-
case 20511908: return OK_IBAN_WITHOUT_KC_TEST;
|
8601
|
-
case 20611908: return OK_IBAN_WITHOUT_KC_TEST;
|
8602
|
-
case 20711908: return OK_IBAN_WITHOUT_KC_TEST;
|
8603
|
-
case 20811908: return OK_IBAN_WITHOUT_KC_TEST;
|
8604
|
-
case 20911908: return OK_IBAN_WITHOUT_KC_TEST;
|
8605
|
-
case 21111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8606
|
-
case 21211908: return OK_IBAN_WITHOUT_KC_TEST;
|
8607
|
-
case 21311908: return OK_IBAN_WITHOUT_KC_TEST;
|
8608
|
-
case 21411908: return OK_IBAN_WITHOUT_KC_TEST;
|
8609
|
-
case 21511908: return OK_IBAN_WITHOUT_KC_TEST;
|
8610
|
-
case 21611908: return OK_IBAN_WITHOUT_KC_TEST;
|
8611
|
-
case 21711908: return OK_IBAN_WITHOUT_KC_TEST;
|
8612
|
-
case 21811908: return OK_IBAN_WITHOUT_KC_TEST;
|
8613
|
-
case 21911908: return OK_IBAN_WITHOUT_KC_TEST;
|
8614
|
-
case 22111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8615
|
-
case 22211908: return OK_IBAN_WITHOUT_KC_TEST;
|
8616
|
-
case 22311908: return OK_IBAN_WITHOUT_KC_TEST;
|
8617
|
-
case 22411908: return OK_IBAN_WITHOUT_KC_TEST;
|
8618
|
-
case 22511908: return OK_IBAN_WITHOUT_KC_TEST;
|
8619
|
-
case 22611908: return OK_IBAN_WITHOUT_KC_TEST;
|
8620
|
-
case 46211991: return OK_IBAN_WITHOUT_KC_TEST;
|
8621
|
-
case 50111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8622
|
-
case 50211908: return OK_IBAN_WITHOUT_KC_TEST;
|
8623
|
-
case 50311908: return OK_IBAN_WITHOUT_KC_TEST;
|
8624
|
-
case 50411908: return OK_IBAN_WITHOUT_KC_TEST;
|
8625
|
-
case 50511908: return OK_IBAN_WITHOUT_KC_TEST;
|
8626
|
-
case 50611908: return OK_IBAN_WITHOUT_KC_TEST;
|
8627
|
-
case 50711908: return OK_IBAN_WITHOUT_KC_TEST;
|
8628
|
-
case 50811908: return OK_IBAN_WITHOUT_KC_TEST;
|
8629
|
-
case 50911908: return OK_IBAN_WITHOUT_KC_TEST;
|
8630
|
-
case 51111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8631
|
-
case 51111991: return OK_IBAN_WITHOUT_KC_TEST;
|
8632
|
-
case 51211908: return OK_IBAN_WITHOUT_KC_TEST;
|
8633
|
-
case 51211991: return OK_IBAN_WITHOUT_KC_TEST;
|
8634
|
-
case 51311908: return OK_IBAN_WITHOUT_KC_TEST;
|
8635
|
-
case 51411908: return OK_IBAN_WITHOUT_KC_TEST;
|
8636
|
-
case 51511908: return OK_IBAN_WITHOUT_KC_TEST;
|
8637
|
-
case 51611908: return OK_IBAN_WITHOUT_KC_TEST;
|
8638
|
-
case 51711908: return OK_IBAN_WITHOUT_KC_TEST;
|
8639
|
-
case 51811908: return OK_IBAN_WITHOUT_KC_TEST;
|
8640
|
-
case 51911908: return OK_IBAN_WITHOUT_KC_TEST;
|
8641
|
-
case 52111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8642
|
-
case 52111991: return OK_IBAN_WITHOUT_KC_TEST;
|
8643
|
-
case 52211908: return OK_IBAN_WITHOUT_KC_TEST;
|
8644
|
-
case 52211991: return OK_IBAN_WITHOUT_KC_TEST;
|
8645
|
-
case 52311908: return OK_IBAN_WITHOUT_KC_TEST;
|
8646
|
-
case 52411908: return OK_IBAN_WITHOUT_KC_TEST;
|
8647
|
-
case 52511908: return OK_IBAN_WITHOUT_KC_TEST;
|
8648
|
-
case 52611908: return OK_IBAN_WITHOUT_KC_TEST;
|
8649
|
-
case 52711908: return OK_IBAN_WITHOUT_KC_TEST;
|
8650
|
-
case 52811908: return OK_IBAN_WITHOUT_KC_TEST;
|
8651
|
-
case 52911908: return OK_IBAN_WITHOUT_KC_TEST;
|
8652
|
-
case 53111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8653
|
-
case 53211908: return OK_IBAN_WITHOUT_KC_TEST;
|
8654
|
-
case 53311908: return OK_IBAN_WITHOUT_KC_TEST;
|
8655
|
-
case 57111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8656
|
-
case 58111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8657
|
-
case 58211908: return OK_IBAN_WITHOUT_KC_TEST;
|
8658
|
-
case 58311908: return OK_IBAN_WITHOUT_KC_TEST;
|
8659
|
-
case 58411908: return OK_IBAN_WITHOUT_KC_TEST;
|
8660
|
-
case 58511908: return OK_IBAN_WITHOUT_KC_TEST;
|
8661
|
-
case 80111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8662
|
-
case 80211908: return OK_IBAN_WITHOUT_KC_TEST;
|
8663
|
-
case 80311908: return OK_IBAN_WITHOUT_KC_TEST;
|
8664
|
-
case 80411908: return OK_IBAN_WITHOUT_KC_TEST;
|
8665
|
-
case 80511908: return OK_IBAN_WITHOUT_KC_TEST;
|
8666
|
-
case 80611908: return OK_IBAN_WITHOUT_KC_TEST;
|
8667
|
-
case 80711908: return OK_IBAN_WITHOUT_KC_TEST;
|
8668
|
-
case 80811908: return OK_IBAN_WITHOUT_KC_TEST;
|
8669
|
-
case 80911908: return OK_IBAN_WITHOUT_KC_TEST;
|
8670
|
-
case 81111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8671
|
-
case 81211908: return OK_IBAN_WITHOUT_KC_TEST;
|
8672
|
-
case 81311908: return OK_IBAN_WITHOUT_KC_TEST;
|
8673
|
-
case 81411908: return OK_IBAN_WITHOUT_KC_TEST;
|
8674
|
-
case 81511908: return OK_IBAN_WITHOUT_KC_TEST;
|
8675
|
-
case 81611908: return OK_IBAN_WITHOUT_KC_TEST;
|
8676
|
-
case 81711908: return OK_IBAN_WITHOUT_KC_TEST;
|
8677
|
-
case 81811908: return OK_IBAN_WITHOUT_KC_TEST;
|
8678
|
-
case 81911908: return OK_IBAN_WITHOUT_KC_TEST;
|
8679
|
-
case 82111908: return OK_IBAN_WITHOUT_KC_TEST;
|
8680
|
-
case 82211908: return OK_IBAN_WITHOUT_KC_TEST;
|
8681
|
-
case 82311908: return OK_IBAN_WITHOUT_KC_TEST;
|
8682
|
-
case 82411908: return OK_IBAN_WITHOUT_KC_TEST;
|
8683
|
-
case 82511908: return OK_IBAN_WITHOUT_KC_TEST;
|
8684
|
-
case 82611908: return OK_IBAN_WITHOUT_KC_TEST;
|
8685
|
-
case 82711908: return OK_IBAN_WITHOUT_KC_TEST;
|
8686
|
-
case 82811908: return OK_IBAN_WITHOUT_KC_TEST;
|
8687
|
-
case 82911908: return OK_IBAN_WITHOUT_KC_TEST;
|
8688
|
-
case 99624044: return OK_IBAN_WITHOUT_KC_TEST;
|
8689
|
-
}
|
8690
|
-
else
|
8691
|
-
if(k1==3 && k2==143869)return OK_IBAN_WITHOUT_KC_TEST;
|
8692
|
-
}
|
8693
|
-
RETURN_OK;
|
8694
8516
|
|
8695
8517
|
/* Iban-Regel 0055.00 +���3 */
|
8696
8518
|
/* BHW Kreditservice GmbH */
|
@@ -8703,54 +8525,58 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
|
|
8703
8525
|
RETURN_OK;
|
8704
8526
|
|
8705
8527
|
/* Iban-Regel 0056.00 +���3 */
|
8528
|
+
/* Iban-Regel 0056.01 (ab September 2017) +���3 */
|
8706
8529
|
/* SEB AG */
|
8707
8530
|
case 56:
|
8708
|
-
|
8709
|
-
|
8710
|
-
|
8711
|
-
|
8712
|
-
|
8713
|
-
|
8714
|
-
|
8715
|
-
|
8716
|
-
|
8717
|
-
|
8718
|
-
|
8719
|
-
|
8720
|
-
|
8721
|
-
|
8722
|
-
|
8723
|
-
|
8724
|
-
|
8725
|
-
|
8726
|
-
|
8727
|
-
|
8728
|
-
|
8729
|
-
|
8730
|
-
|
8731
|
-
|
8732
|
-
|
8733
|
-
|
8734
|
-
|
8735
|
-
|
8736
|
-
|
8737
|
-
|
8738
|
-
|
8739
|
-
|
8740
|
-
|
8741
|
-
|
8742
|
-
|
8743
|
-
|
8744
|
-
|
8745
|
-
|
8746
|
-
|
8747
|
-
if(
|
8748
|
-
strcpy(
|
8749
|
-
|
8750
|
-
|
8531
|
+
if(!pz_aenderungen_aktivieren_2017_09 || (pz_aenderungen_aktivieren_2017_09 && version<1)){
|
8532
|
+
|
8533
|
+
/* Spendenkonten: nur mit festgelegten IBANs -> Konto und evl. BLZ/BIC anpassen */
|
8534
|
+
if(k1==0)switch(k2){
|
8535
|
+
case 36: strcpy(kto,"1010240003"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8536
|
+
case 50: strcpy(kto,"1328506100"); if(b!=48010111){strcpy(blz,"48010111"); *bicp="ESSEDE5F480"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8537
|
+
case 99: strcpy(kto,"1826063000"); if(b!=43010111){strcpy(blz,"43010111"); *bicp="ESSEDE5F430"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8538
|
+
case 110: strcpy(kto,"1015597802"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8539
|
+
case 240: strcpy(kto,"1010240000"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8540
|
+
case 333: strcpy(kto,"1011296100"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8541
|
+
case 555: strcpy(kto,"1600220800"); if(b!=10010111){strcpy(blz,"10010111"); *bicp="ESSEDE5F100"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8542
|
+
case 556: strcpy(kto,"1000556100"); if(b!=39010111){strcpy(blz,"39010111"); *bicp="ESSEDE5F390"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8543
|
+
case 606: strcpy(kto,"1967153801"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8544
|
+
case 700: strcpy(kto,"1070088000"); if(b!=26510111){strcpy(blz,"26510111"); *bicp="ESSEDE5F265"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8545
|
+
case 777: strcpy(kto,"1006015200"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8546
|
+
case 999: strcpy(kto,"1010240001"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8547
|
+
case 1234: strcpy(kto,"1369152400"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8548
|
+
case 1313: strcpy(kto,"1017500000"); if(b!=57010111){strcpy(blz,"57010111"); *bicp="ESSEDE5F570"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8549
|
+
case 1888: strcpy(kto,"1241113000"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8550
|
+
case 1953: strcpy(kto,"1026500901"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8551
|
+
case 1998: strcpy(kto,"1547620500"); if(b!=67010111){strcpy(blz,"67010111"); *bicp="ESSEDE5F670"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8552
|
+
case 2007: strcpy(kto,"1026500907"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8553
|
+
case 4004: strcpy(kto,"1635100100"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8554
|
+
case 4444: strcpy(kto,"1304610900"); if(b!=67010111){strcpy(blz,"67010111"); *bicp="ESSEDE5F670"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8555
|
+
case 5000: strcpy(kto,"1395676000"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8556
|
+
case 5510: strcpy(kto,"1611754300"); if(b!=29010111){strcpy(blz,"29010111"); *bicp="ESSEDE5F290"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8557
|
+
case 6060: strcpy(kto,"1000400200"); if(b!=50010111){strcpy(blz,"50010111"); *bicp="ESSEDE5FXXX"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8558
|
+
case 6800: strcpy(kto,"1296401301"); if(b!=67010111){strcpy(blz,"67010111"); *bicp="ESSEDE5F670"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8559
|
+
case 55555: strcpy(kto,"1027758200"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8560
|
+
case 60000: strcpy(kto,"1005007001"); if(b!=50010111){strcpy(blz,"50010111"); *bicp="ESSEDE5FXXX"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8561
|
+
case 66666: strcpy(kto,"1299807801"); if(b!=20010111){strcpy(blz,"20010111"); *bicp="ESSEDE5F200"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8562
|
+
case 102030: strcpy(kto,"1837501600"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8563
|
+
case 121212: strcpy(kto,"1249461502"); if(b!=70010111){strcpy(blz,"70010111"); *bicp="ESSEDE5F700"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8564
|
+
case 130500: strcpy(kto,"1413482100"); if(b!=30010111){strcpy(blz,"30010111"); *bicp="ESSEDE5F300"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8565
|
+
case 202020: strcpy(kto,"1213431002"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8566
|
+
case 414141: strcpy(kto,"1010555101"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8567
|
+
case 666666: strcpy(kto,"1798758900"); if(b!=20010111){strcpy(blz,"20010111"); *bicp="ESSEDE5F200"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8568
|
+
case 5000000: strcpy(kto,"1403124100"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
|
8569
|
+
}
|
8570
|
+
else if(k1==5 && k2==500500){
|
8571
|
+
strcpy(kto,"1045720000");
|
8572
|
+
if(b!=60010111){
|
8573
|
+
strcpy(blz,"60010111");
|
8574
|
+
*bicp="ESSEDE5F600";
|
8575
|
+
return OK_BLZ_KTO_REPLACED;
|
8576
|
+
}
|
8577
|
+
else
|
8578
|
+
return OK_KTO_REPLACED;
|
8751
8579
|
}
|
8752
|
-
else
|
8753
|
-
return OK_KTO_REPLACED;
|
8754
8580
|
}
|
8755
8581
|
|
8756
8582
|
/* f�r die folgenden BLZs sind nur zehnstelllige Kontonummern erlaubt: */
|
@@ -8842,7 +8668,6 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
|
|
8842
8668
|
}
|
8843
8669
|
}
|
8844
8670
|
|
8845
|
-
#line 9405 "konto_check.lxx"
|
8846
8671
|
/* Funktion lut_multiple() +���2 */
|
8847
8672
|
/* ###########################################################################
|
8848
8673
|
* # lut_multiple(): Universalfunktion, um zu einer gegebenen Bankleitzahl #
|
@@ -9110,7 +8935,6 @@ DLL_EXPORT int lut_cleanup(void)
|
|
9110
8935
|
FREE(sort_pz_f);
|
9111
8936
|
FREE(sort_plz);
|
9112
8937
|
FREE(sort_iban_regel);
|
9113
|
-
#line 9667 "konto_check.lxx"
|
9114
8938
|
if(name_raw && name_data!=name_raw)
|
9115
8939
|
FREE(name_raw);
|
9116
8940
|
else
|
@@ -9179,7 +9003,6 @@ DLL_EXPORT int lut_cleanup(void)
|
|
9179
9003
|
lut_cleanup(); /* neuer Versuch, aufzur�umen */
|
9180
9004
|
RETURN(INIT_FATAL_ERROR);
|
9181
9005
|
}
|
9182
|
-
#line 9741 "konto_check.lxx"
|
9183
9006
|
init_status&=1;
|
9184
9007
|
init_in_progress=0;
|
9185
9008
|
return OK;
|
@@ -9352,8 +9175,8 @@ static void init_atoi_table(void)
|
|
9352
9175
|
int i,ziffer;
|
9353
9176
|
unsigned long l;
|
9354
9177
|
|
9355
|
-
/* �nderungen zum
|
9356
|
-
if(time(NULL)>
|
9178
|
+
/* �nderungen zum 04.09.2017 aktivieren */
|
9179
|
+
if(time(NULL)>1504476000 ||0)pz_aenderungen_aktivieren_2017_09=1;
|
9357
9180
|
|
9358
9181
|
/* ung�ltige Ziffern; Blanks und Tabs werden ebenfalls als ung�ltig
|
9359
9182
|
* angesehen(!), da die Stellenzuordnung sonst nicht mehr stimmt. Ausnahme:
|
@@ -9618,7 +9441,6 @@ static void init_atoi_table(void)
|
|
9618
9441
|
lut_block_name2[126]="2. IBAN Regel idx";
|
9619
9442
|
lut_block_name2[127]="2. BIC Hauptst.idx";
|
9620
9443
|
lut_blocklen_max=453;
|
9621
|
-
#line 9981 "konto_check.lxx"
|
9622
9444
|
init_status|=1;
|
9623
9445
|
}
|
9624
9446
|
|
@@ -9678,7 +9500,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
9678
9500
|
|
9679
9501
|
switch(pz_methode){
|
9680
9502
|
|
9681
|
-
#line 10044 "konto_check.lxx"
|
9682
9503
|
/* Berechnungsmethoden 00 bis 09 +���3
|
9683
9504
|
Berechnung nach der Methode 00 +���4 */
|
9684
9505
|
/*
|
@@ -12013,7 +11834,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
12013
11834
|
* ######################################################################
|
12014
11835
|
*/
|
12015
11836
|
|
12016
|
-
#line 12055 "konto_check.lxx"
|
12017
11837
|
case 51:
|
12018
11838
|
if(*(kto+2)=='9'){ /* Ausnahme */
|
12019
11839
|
|
@@ -12275,8 +12095,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
12275
12095
|
else
|
12276
12096
|
return FALSE;
|
12277
12097
|
|
12278
|
-
#line 12269 "konto_check.lxx"
|
12279
|
-
#line 12271 "konto_check.lxx"
|
12280
12098
|
/* Berechnung nach der Methode 53 +���4 */
|
12281
12099
|
/*
|
12282
12100
|
* ######################################################################
|
@@ -12575,7 +12393,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
12575
12393
|
* # bewerten. #
|
12576
12394
|
* ######################################################################
|
12577
12395
|
*/
|
12578
|
-
#line 12540 "konto_check.lxx"
|
12579
12396
|
case 57:
|
12580
12397
|
#if DEBUG>0
|
12581
12398
|
if(retvals){
|
@@ -13221,7 +13038,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
13221
13038
|
* # Pr�fzifferberechnung) #
|
13222
13039
|
* ######################################################################
|
13223
13040
|
*/
|
13224
|
-
#line 13120 "konto_check.lxx"
|
13225
13041
|
case 66:
|
13226
13042
|
#if DEBUG>0
|
13227
13043
|
case 2066:
|
@@ -18461,7 +18277,13 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
18461
18277
|
* # Variante 2: #
|
18462
18278
|
* # Modulus 10, Gewichtung 2, 1, 2, 1, 2, 1, 2, 1, 2 #
|
18463
18279
|
* # Die Berechnung und m�gliche Ergebnisse entsprechen der #
|
18464
|
-
* # Methode 00.
|
18280
|
+
* # Methode 00. F�hrt die Berechnung nach Variante 2 zu einem #
|
18281
|
+
* # Pr�fzifferfehler, so ist nach Variante 3 zu pr�fen. #
|
18282
|
+
* # #
|
18283
|
+
* # Variante 3: #
|
18284
|
+
* # Modulus 11, Gewichtung 2, 3, 4, 5, 6, 7, 2, 3, 4 #
|
18285
|
+
* # Die Berechnung und m�gliche Ergebnisse entsprechen der #
|
18286
|
+
* # Methode 04. #
|
18465
18287
|
* ######################################################################
|
18466
18288
|
*/
|
18467
18289
|
|
@@ -18542,6 +18364,30 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
18542
18364
|
#endif
|
18543
18365
|
MOD_10_80; /* pz%=10 */
|
18544
18366
|
if(pz)pz=10-pz;
|
18367
|
+
CHECK_PZX10;
|
18368
|
+
|
18369
|
+
#if DEBUG>0
|
18370
|
+
case 3122:
|
18371
|
+
if(retvals){
|
18372
|
+
retvals->methode="C2c";
|
18373
|
+
retvals->pz_methode=3122;
|
18374
|
+
}
|
18375
|
+
#endif
|
18376
|
+
/* Variante 3, g�ltig ab September 2017 */
|
18377
|
+
if(!pz_aenderungen_aktivieren_2017_09)return UNDEFINED_SUBMETHOD;
|
18378
|
+
pz = (kto[0]-'0') * 4
|
18379
|
+
+ (kto[1]-'0') * 3
|
18380
|
+
+ (kto[2]-'0') * 2
|
18381
|
+
+ (kto[3]-'0') * 7
|
18382
|
+
+ (kto[4]-'0') * 6
|
18383
|
+
+ (kto[5]-'0') * 5
|
18384
|
+
+ (kto[6]-'0') * 4
|
18385
|
+
+ (kto[7]-'0') * 3
|
18386
|
+
+ (kto[8]-'0') * 2;
|
18387
|
+
|
18388
|
+
MOD_11_176; /* pz%=11 */
|
18389
|
+
if(pz)pz=11-pz;
|
18390
|
+
INVALID_PZ10;
|
18545
18391
|
CHECK_PZ10;
|
18546
18392
|
|
18547
18393
|
|
@@ -20532,7 +20378,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
20532
20378
|
retvals->pz_methode=144;
|
20533
20379
|
}
|
20534
20380
|
#endif
|
20535
|
-
if(!pz_aenderungen_aktivieren_2017_06)return NOT_DEFINED;
|
20536
20381
|
|
20537
20382
|
/* Variante 1: Berechnung nach der Methode 02 */
|
20538
20383
|
#if DEBUG>0
|
@@ -20604,7 +20449,6 @@ if(!pz_aenderungen_aktivieren_2017_06)return NOT_DEFINED;
|
|
20604
20449
|
return NOT_IMPLEMENTED;
|
20605
20450
|
}
|
20606
20451
|
}
|
20607
|
-
#line 19312 "konto_check.lxx"
|
20608
20452
|
|
20609
20453
|
/*
|
20610
20454
|
* ######################################################################
|
@@ -20702,7 +20546,6 @@ DLL_EXPORT int kto_check_blz(char *blz,char *kto)
|
|
20702
20546
|
#if DEBUG>0 /* es werden einige Funktionen benutzt, die nur in der Debug-Variante enthalten sind */
|
20703
20547
|
DLL_EXPORT int kto_check_regel_dbg(char *blz,char *kto,char *blz2,char *kto2,const char **bic,int *regel,RETVAL *retvals)
|
20704
20548
|
{
|
20705
|
-
#line 19410 "konto_check.lxx"
|
20706
20549
|
char *blz_o,buffer[32],kto_o[16],*blz_n,*kto_n,*ptr,*dptr;
|
20707
20550
|
const char *bicp;
|
20708
20551
|
int ret,ret_regel,r;
|
@@ -20750,7 +20593,6 @@ DLL_EXPORT int kto_check_regel_dbg(char *blz,char *kto,char *blz2,char *kto2,con
|
|
20750
20593
|
}
|
20751
20594
|
else /* BLZ und Kto gleich */
|
20752
20595
|
return ret;
|
20753
|
-
#line 19458 "konto_check.lxx"
|
20754
20596
|
}
|
20755
20597
|
|
20756
20598
|
#else /* !DEBUG */
|
@@ -20900,7 +20742,6 @@ DLL_EXPORT int kto_check_blz_dbg(char *blz,char *kto,RETVAL *retvals)
|
|
20900
20742
|
* # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
|
20901
20743
|
* ###########################################################################
|
20902
20744
|
*/
|
20903
|
-
#line 19608 "konto_check.lxx"
|
20904
20745
|
DLL_EXPORT int kto_check_pz_dbg(char *pz,char *kto,char *blz,RETVAL *retvals)
|
20905
20746
|
{
|
20906
20747
|
int untermethode,pz_methode;
|
@@ -21136,7 +20977,6 @@ DLL_EXPORT int get_lut_info2_b(char *lutname,int *version,char **prolog_p,char *
|
|
21136
20977
|
}
|
21137
20978
|
else
|
21138
20979
|
**user_info_p=0;
|
21139
|
-
#line 19829 "konto_check.lxx"
|
21140
20980
|
FREE(prolog);
|
21141
20981
|
return OK;
|
21142
20982
|
}
|
@@ -21271,20 +21111,20 @@ DLL_EXPORT const char *get_kto_check_version_x(int mode)
|
|
21271
21111
|
case 3:
|
21272
21112
|
return __DATE__ ", " __TIME__; /* Compilierdatum und -zeit */
|
21273
21113
|
case 4: /* Datum der Pr�fziffermethode */
|
21274
|
-
if(
|
21275
|
-
return "
|
21114
|
+
if(pz_aenderungen_aktivieren_2017_09)
|
21115
|
+
return "04.09.2017";
|
21276
21116
|
else
|
21277
|
-
return "06.
|
21117
|
+
return "05.06.2017 (Aenderungen vom 04.09.2017 enthalten aber noch nicht aktiviert)";
|
21278
21118
|
case 5:
|
21279
|
-
return "
|
21119
|
+
return "04.09.2017";
|
21280
21120
|
case 6:
|
21281
|
-
return "13.
|
21121
|
+
return "13. August 2017"; /* Klartext-Datum der Bibliotheksversion */
|
21282
21122
|
case 7:
|
21283
21123
|
return "final"; /* Versions-Typ der Bibliotheksversion (development, beta, final) */
|
21284
21124
|
case 8:
|
21285
21125
|
return "6"; /* Hauptversionszahl */
|
21286
21126
|
case 9:
|
21287
|
-
return "
|
21127
|
+
return "01"; /* Unterversionszahl */
|
21288
21128
|
}
|
21289
21129
|
}
|
21290
21130
|
|
@@ -21430,7 +21270,6 @@ DLL_EXPORT int dump_lutfile(char *outputname,UINT4 *required)
|
|
21430
21270
|
default:
|
21431
21271
|
break;
|
21432
21272
|
}
|
21433
|
-
#line 20062 "konto_check.lxx"
|
21434
21273
|
fputc('\n',out);
|
21435
21274
|
while(--i)fputc('=',out);
|
21436
21275
|
fputc('\n',out);
|
@@ -21755,7 +21594,6 @@ DLL_EXPORT const char *iban2bic_id(char *iban,int *retval,int *blz,int *kto)
|
|
21755
21594
|
return iban2bic(iban,retval,b,k);
|
21756
21595
|
}
|
21757
21596
|
|
21758
|
-
#line 20387 "konto_check.lxx"
|
21759
21597
|
/* Funktion iban_gen(), iban_bic_gen() und iban_bic_gen1 +���1 */
|
21760
21598
|
/* ###########################################################################
|
21761
21599
|
* # Die Funktion iban_gen generiert aus Bankleitzahl und Kontonummer eine #
|
@@ -22588,7 +22426,6 @@ DLL_EXPORT int ipi_check(char *zweck)
|
|
22588
22426
|
* # Copyright (C) 2009,2011 Michael Plugge <m.plugge@hs-mannheim.de> #
|
22589
22427
|
* ###########################################################################
|
22590
22428
|
*/
|
22591
|
-
#line 21220 "konto_check.lxx"
|
22592
22429
|
|
22593
22430
|
/* Funktion volltext_zeichen() +���2 */
|
22594
22431
|
/* Diese Funktion gibt f�r Zeichen die bei der Volltextsuche g�ltig sind
|
@@ -23435,7 +23272,6 @@ static int qcmp_bic_h(const void *ap,const void *bp)
|
|
23435
23272
|
return a-b;
|
23436
23273
|
}
|
23437
23274
|
|
23438
|
-
#line 22067 "konto_check.lxx"
|
23439
23275
|
|
23440
23276
|
/* Funktion qcmp_bic() +���3 */
|
23441
23277
|
static int qcmp_bic(const void *ap,const void *bp)
|
@@ -23540,7 +23376,6 @@ static int qcmp_iban_regel(const void *ap,const void *bp)
|
|
23540
23376
|
else
|
23541
23377
|
return a-b;
|
23542
23378
|
}
|
23543
|
-
#line 22082 "konto_check.lxx"
|
23544
23379
|
|
23545
23380
|
/* Funktion init_blzf() +���2
|
23546
23381
|
* Diese Funktion initialisiert das Array mit den Bankleitzahlen f�r alle
|
@@ -23608,7 +23443,6 @@ DLL_EXPORT int konto_check_idx2blz(int idx,int *zweigstelle,int *retval)
|
|
23608
23443
|
}
|
23609
23444
|
|
23610
23445
|
/* Funktion suche_int1() +���2 */
|
23611
|
-
#line 22150 "konto_check.lxx"
|
23612
23446
|
static int suche_int1(int a1,int a2,int *anzahl,int **start_idx,int **zweigstellen_base,int **blz_base,
|
23613
23447
|
int **base_name,int **base_sort,int(*cmp)(const void *, const void *),int cnt,int such_idx)
|
23614
23448
|
{
|
@@ -23659,7 +23493,6 @@ static int suche_int1(int a1,int a2,int *anzahl,int **start_idx,int **zweigstell
|
|
23659
23493
|
}
|
23660
23494
|
|
23661
23495
|
/* Funktion suche_int2() +���2 */
|
23662
|
-
#line 22201 "konto_check.lxx"
|
23663
23496
|
static int suche_int2(int a1,int a2,int *anzahl,int **start_idx,int **zweigstellen_base,int **blz_base,
|
23664
23497
|
int **base_name,int **base_sort,int(*cmp)(const void *, const void *),int such_idx,int pz_suche)
|
23665
23498
|
{
|
@@ -24274,7 +24107,6 @@ static int cmp_suche_sort(const void *ap,const void *bp)
|
|
24274
24107
|
DLL_EXPORT int lut_suche_sort1(int anzahl,int *blz_base,int *zweigstellen_base,int *idx,int *anzahl_o,int **idx_op,int **cnt_op,int uniq)
|
24275
24108
|
{
|
24276
24109
|
int i,j,last_idx,*idx_a,*cnt_o;
|
24277
|
-
#line 22817 "konto_check.lxx"
|
24278
24110
|
|
24279
24111
|
if(idx_op)*idx_op=NULL;
|
24280
24112
|
if(cnt_op)*cnt_op=NULL;
|
@@ -24356,7 +24188,6 @@ DLL_EXPORT int lut_suche_sort2(int anzahl,int *blz,int *zweigstellen,int *anzahl
|
|
24356
24188
|
return OK;
|
24357
24189
|
}
|
24358
24190
|
|
24359
|
-
#line 22900 "konto_check.lxx"
|
24360
24191
|
/* Funktion lut_suche_volltext() +���2 */
|
24361
24192
|
DLL_EXPORT int lut_suche_volltext(char *such_wort,int *anzahl,int *base_name_idx,char ***base_name,
|
24362
24193
|
int *zweigstellen_anzahl,int **start_idx,int **zweigstellen_base,int **blz_base)
|
@@ -24486,7 +24317,7 @@ DLL_EXPORT int lut_suche_blz(int such1,int such2,int *anzahl,int **start_idx,int
|
|
24486
24317
|
return suche_int1(such1,such2,anzahl,start_idx,zweigstellen_base,blz_base,&blz_f,&sort_blz,qcmp_blz,cnt,0);
|
24487
24318
|
}
|
24488
24319
|
|
24489
|
-
#line
|
24320
|
+
#line 22918 "konto_check.lxx"
|
24490
24321
|
/* Funktion lut_suche_bic() +���2 */
|
24491
24322
|
DLL_EXPORT int lut_suche_bic(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,
|
24492
24323
|
char ***base_name,int **blz_base)
|
@@ -24540,7 +24371,6 @@ DLL_EXPORT int lut_suche_pz(int such1,int such2,int *anzahl,int **start_idx,int
|
|
24540
24371
|
{
|
24541
24372
|
int retval;
|
24542
24373
|
|
24543
|
-
|
24544
24374
|
if(anzahl)*anzahl=0;
|
24545
24375
|
if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
|
24546
24376
|
if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
|
@@ -24554,7 +24384,6 @@ DLL_EXPORT int lut_suche_pz(int such1,int such2,int *anzahl,int **start_idx,int
|
|
24554
24384
|
/* Funktion lut_suche_plz() +���2 */
|
24555
24385
|
DLL_EXPORT int lut_suche_plz(int such1,int such2,int *anzahl,int **start_idx,int **zweigstellen_base,int **base_name,int **blz_base)
|
24556
24386
|
{
|
24557
|
-
|
24558
24387
|
if(anzahl)*anzahl=0;
|
24559
24388
|
if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
|
24560
24389
|
if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
|
@@ -24567,7 +24396,6 @@ DLL_EXPORT int lut_suche_plz(int such1,int such2,int *anzahl,int **start_idx,int
|
|
24567
24396
|
/* Funktion lut_suche_regel() +���2 */
|
24568
24397
|
DLL_EXPORT int lut_suche_regel(int such1,int such2,int *anzahl,int **start_idx,int **zweigstellen_base,int **base_name,int **blz_base)
|
24569
24398
|
{
|
24570
|
-
|
24571
24399
|
if(anzahl)*anzahl=0;
|
24572
24400
|
if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
|
24573
24401
|
if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
|
@@ -24577,7 +24405,6 @@ DLL_EXPORT int lut_suche_regel(int such1,int such2,int *anzahl,int **start_idx,i
|
|
24577
24405
|
return suche_int2(such1*100,such2*100+99,anzahl,start_idx,zweigstellen_base,blz_base,&iban_regel,&sort_iban_regel,qcmp_iban_regel,LUT2_IBAN_REGEL_SORT,0);
|
24578
24406
|
}
|
24579
24407
|
|
24580
|
-
#line 23083 "konto_check.lxx"
|
24581
24408
|
|
24582
24409
|
/* Funktion lut_suche_bic_h() +���2 */
|
24583
24410
|
DLL_EXPORT int lut_suche_bic_h(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,
|
@@ -24963,7 +24790,6 @@ DLL_EXPORT const char *iban_ort(char *iban,int filiale,int*retval)
|
|
24963
24790
|
{
|
24964
24791
|
return iban_fkt_s(iban,filiale,retval,lut_ort);
|
24965
24792
|
}
|
24966
|
-
#line 23172 "konto_check.lxx"
|
24967
24793
|
|
24968
24794
|
static int bic_fkt_c(char *bic1,int mode,int filiale,int *retval,char *base,int error)
|
24969
24795
|
{
|
@@ -26215,6 +26041,7 @@ DLL_EXPORT const char *pz2str(int pz,int *ret)
|
|
26215
26041
|
case 3108: return "A8c";
|
26216
26042
|
case 3111: return "B1c";
|
26217
26043
|
case 3118: return "B8c";
|
26044
|
+
case 3122: return "C2c";
|
26218
26045
|
case 3125: return "C5c";
|
26219
26046
|
case 3127: return "C7c";
|
26220
26047
|
case 3128: return "C8c";
|
@@ -26251,7 +26078,6 @@ DLL_EXPORT const char *pz2str(int pz,int *ret)
|
|
26251
26078
|
default: return "???";
|
26252
26079
|
}
|
26253
26080
|
}
|
26254
|
-
#line 24127 "konto_check.lxx"
|
26255
26081
|
|
26256
26082
|
/* Funktion lut_keine_iban_berechnung() +���1 */
|
26257
26083
|
/*
|
@@ -26366,7 +26192,7 @@ DLL_EXPORT int lut_keine_iban_berechnung(char *iban_blacklist,char *lutfile,int
|
|
26366
26192
|
/* Funktion pz_aenderungen_enable() +���1 */
|
26367
26193
|
/* ###########################################################################
|
26368
26194
|
* # Die Funktion pz_aenderungen_enable() dient dazu, den Status des Flags #
|
26369
|
-
* #
|
26195
|
+
* # pz_aenderungen_aktivieren_2017_09 abzufragen bzw. zu setzen. Falls die Variable #
|
26370
26196
|
* # set 1 ist, werden die �nderungen aktiviert, falls sie 0 ist, werden #
|
26371
26197
|
* # die �nderungen deaktiviert. Bei allen anderen Werten wird das aktuelle #
|
26372
26198
|
* # Flag nicht ver�ndert, sondern nur der Status zur�ckgegeben. #
|
@@ -26382,8 +26208,8 @@ DLL_EXPORT int lut_keine_iban_berechnung(char *iban_blacklist,char *lutfile,int
|
|
26382
26208
|
|
26383
26209
|
DLL_EXPORT int pz_aenderungen_enable(int set)
|
26384
26210
|
{
|
26385
|
-
if(set==0 || set==1)
|
26386
|
-
return
|
26211
|
+
if(set==0 || set==1)pz_aenderungen_aktivieren_2017_09=set;
|
26212
|
+
return pz_aenderungen_aktivieren_2017_09;
|
26387
26213
|
}
|
26388
26214
|
|
26389
26215
|
#if DEBUG>0
|
@@ -26415,7 +26241,6 @@ DLL_EXPORT char *kto_check_test_vars(char *txt,UINT4 i)
|
|
26415
26241
|
#endif
|
26416
26242
|
|
26417
26243
|
|
26418
|
-
#line 24291 "konto_check.lxx"
|
26419
26244
|
/* Funktionen *_id() +���1 */
|
26420
26245
|
/* ###########################################################################
|
26421
26246
|
* # Die folgenden Funktionen sind die id-Varianten von Funktionen, die #
|
@@ -1,6 +1,5 @@
|
|
1
1
|
/* vim: ft=c:set si:set fileencoding=iso-8859-1
|
2
2
|
*/
|
3
|
-
#line 9 "konto_check_h.lx"
|
4
3
|
|
5
4
|
/*
|
6
5
|
* ##########################################################################
|
@@ -484,7 +483,6 @@ extern const char *lut2_feld_namen[256];
|
|
484
483
|
#define OK_KTO_REPLACED_NO_PZ 24
|
485
484
|
#define OK_UNTERKONTO_ATTACHED 25
|
486
485
|
#define OK_SHORT_BIC_USED 26
|
487
|
-
#line 279 "konto_check_h.lx"
|
488
486
|
|
489
487
|
#define MAX_BLZ_CNT 30000 /* maximale Anzahl BLZ's in generate_lut() */
|
490
488
|
|
@@ -1228,7 +1228,7 @@ static VALUE rebuild_blzfile_rb(int argc,VALUE* argv,VALUE self)
|
|
1228
1228
|
* Rückgabe: aktueller Status des Flags
|
1229
1229
|
*/
|
1230
1230
|
|
1231
|
-
static
|
1231
|
+
static VALUE pz_aenderungen_enable_rb(int argc,VALUE *argv,VALUE self)
|
1232
1232
|
{
|
1233
1233
|
int mode;
|
1234
1234
|
VALUE mode_rb=Qnil;
|
@@ -4354,11 +4354,11 @@ void Init_konto_check_raw()
|
|
4354
4354
|
/*
|
4355
4355
|
* This is a C/Ruby library to check the validity of German Bank Account
|
4356
4356
|
* Numbers. All currently defined test methods by Deutsche Bundesbank
|
4357
|
-
* (00 to
|
4357
|
+
* (00 to E4) are implemented.
|
4358
4358
|
*
|
4359
4359
|
* <b>ATTENTION:</b> There are a few important changes in the API between
|
4360
4360
|
* version 0.0.2 (version by Peter Horn/Provideal), version 0.0.6 (jeanmartin)
|
4361
|
-
* and this version (V. 6.
|
4361
|
+
* and this version (V. 6.01 from 2017-08-13):
|
4362
4362
|
*
|
4363
4363
|
* * The function KontoCheck::load_bank_data() is no longer used; it is
|
4364
4364
|
* replaced by KontoCheck::init() and KontoCheck::generate_lutfile().
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: konto_check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.01.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Provideal Systems GmbH
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-
|
13
|
+
date: 2017-09-20 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: thoughtbot-shoulda
|