konto_check 6.00.0 → 6.01.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 +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
|