Business-KontoCheck

 view release on metacpan or  search on metacpan

0_history.txt  view on Meta::CPAN

      für java deshalb nur der Quellcode mitgeliefert; für den Port ist noch swig
      (www.swig.org) sowie ein C-Compiler erforderlich.

    - für gawk gibt es ein Patchfile für die Version 4.1.1; dieses wurde direkt
      von der gawk-Version 4.1.0 übernommen

    - Die Funktionen kto_check_retval2*() wurden in eine eigene Datei retvals.h
      ausgelagert; die anderen Quellcodedateien können bei Bedarf problemlos nach
      UTF-8 umkodiert werden.

    - Die neuen Funktionen bic_*(), biq_*() und iban_*() sind jetzt in allen Ports
      (außer awk) enthalten

    - vor Speicherallokierungen wurde jeweils ein Typecast eingefügt

    - einige Bugfixes in den Funktionen bic_*() und biq_*()

    - Fehler in RETURN_OK für die IBAN-Regeln korriegiert (falls eine Bank durch
      die Nachfolge-BLZ ersetzt wurde, wurde der Wert OK_BLZ_KTO_REPLACED statt
      OK_BLZ_REPLACED zurückgegeben

 - die numerischen Funktionen bic_*(), biq_*() und iban_*() geben im Fehlerfall
   den Wert 0 zurück, wie die entsprechenden lut_*() Funktionen

 - Die Rückgabewerte -80 ... -104 (sie wurden nur im mittlerweile obsoleten
   dtaus_test benutzt) sind entfernt

 - die Funktion rebuild_blzfile() berücksichtigt jetzt auch die IBAN-Regeln; so ist
   es z.B. möglich, mit dem Befehl

      ./konto_check -r blz.lut2f blz.rebuild 2

   den zweiten Datensatz der LUT-Datei in eine BLZ-Datei umzuwandeln. Diese
   Datei stimmt bis auf die vier Testkonten (13051172, 16052072, 80053772 und
   80053782) und evl. die Reihenfolge bei einzelnen Banken mit der Datei der
   Deutschen Bundesbank überein. Der letzte Parameter (1 oder 2) gibt die
   Nummer des zu verwendenden Datensatzes an.

   Die Funktion ist aktuell nur in der C-Datei enthalten, wird in der nächsten
   Version jedoch auch in die anderen Ports gebracht.

 - Testroutinen für Perl auf die neue LUT-Datei angepasst


##################################################################################
###                       04.03.14 Version 5.3 (final)                         ###
##################################################################################

 - neue IBAN-Regel 57 implementiert

 - Änderungen in den IBAN-Regeln 54 und 56 implementiert, Klarstellung in
   IBAN-Regel 42 (Deutsche Bundesbank)

 - Änderung in der Prüfzifferberechnungsmethode 66 implementiert

 - Es ist eine Suche nach den BICs der Hauptstellen implementiert

 - In der LUT-Datei gibt es einen neuen Indexblock über die BICs der Hauptstellen

 - Die Daten der Bundesbank-Datei die mit den Funktionen lut_name(), lut_ort()...
   abgefragt werden, können jetzt auch für BICS und IBANs abgefragt werden (s.u.)

 - Viele Vergleiche in den IBAN- und BIC-Funktionen die mit strcmp gemacht wurden,
   wurden auf strcasecmp() umgestellt, so daß die Groß/Kleinschreibung bei IBANs
   und BICs komplett ignoriert wird.

 - Die  Funktion pz2str() enthält nur noch die wirklich definierten
   Prüfziffermethoden, dafür jedoch auch die Untermethoden

 - Die Ruby-Dokumentation wird jetzt über yardoc generiert

 - kleinere Änderungen im Ruby-Port

 - Fehler in mini1.vb behoben

 - einige kleinere Bugs behoben

 - neue Funktionen (diese sind momentan erst im C- und PHP-Port
   implementiert, in den anderen Sprachen kommen sie spätestens in der nächsten Version):

     - lut_suche_bic_h(): Die Funktion entspricht weitgehend der Funktion lut_suche_bic();
       für die Nebenstellen wird bei dieser Funktion allerdings der BIC der Hauptstelle
       benutzt.

     - lut_bic_h(char*,int,int*) und lut_bic_hi(int,int,int*): Diese Funktionen geben den
       BIC der jeweiligen Hauptstelle zurück

     - lut_blz_i(int,int): eine vergessene Funktion, analog zu lut_blz() mit Integerparameter
       für die BLZ

     - bic_info(char*,int,int*,int*): Diese Funktion sucht Banken mit einem bestimmten BIC
       und gibt die gefundene Anzahl sowie den Startindex in den internen Arrays zurück. Sie
       ist für die Funktionsgruppe biq_* (s.u.) gedacht, falls Werte für mehrere Filialen
       einer Bank bestimmt werden sollen.

     -  bic_aenderung(char*,int,int,int*), bic_loeschung(), bic_iban_regel(),
        bic_nachfolge_blz(), bic_nr(), bic_pan(), bic_plz(), bic_pz(), bic_bic(), bic_bic_h(),
        bic_name(), bic_name_kurz(), bic_ort():
           
        Die Funktionen dieser Gruppe entsprechen den Funktionen lut_*(), nur
        daß statt einer BLZ ein BIC angegeben wird.

     - biq_aenderung(int,int*), biq_loeschung(), biq_iban_regel(), biq_nachfolge_blz(),
        biq_nr(), biq_pan(), biq_plz(), biq_pz(), biq_bic(), biq_bic_h(), biq_name(),
        biq_name_kurz(), biq_ort() (das q steht für quick):
   
        diese Funktionen entsprechen denen der Gruppe bic_*(); statt des BIC
        wird allerdings ein Index angegeben, der über die Funktion bic_info()
        bestimmt wird. Der Parameter mode fehlt in dieser Gruppe; er wird auch bei
        bic_info() spezifiziert.

     - iban_aenderung(), iban_loeschung(), iban_iban_regel(), iban_nachfolge_blz(),
       iban_nr(), iban_pan(), iban_plz(), iban_pz(), iban_bic(), iban_bic_h(),
       iban_name(), iban_name_kurz(), iban_ort():

       nochmal eine Gruppe mit gleicher Funktionalität, nur wird statt eines
       BIC eine IBAN zur Spezifizierung der Banken benutzt. Bei der Banksuche
       per BIC ist das Problem, daß oft große Gruppen einen BIC teilen (s. z.B.
       die Postbank), und die Filialinformation (z.B. Ort o.ä.) komplett
       verlorengeht. Außerdem sind in der Bundesbankdatei nicht alle
       Filialcodes enthalten, so daß die bic_*() Funktionen manchmal nur mit

0_history.txt  view on Meta::CPAN

   möglichst schon zum 9. September einzusetzen. Der Best Guess Ansatz mit dem
   Fehlercode 51 (bzw. IBAN_AMBIGUOUS_KTO in konto_check) wird entfernt und
   durch Verfahren zur Ermittlung eindeutiger IBANs ersetzt.

 - neue Funktion ci_check() für Test von Gläubiger-Identifikationsnummern
   (Creditor Identifier, CI). Die Funktion wurde weitgehend von iban_check()
   kopiert, hat aber einige Besonderheiten.

 - bei IBAN-Berechnungen wird getestet, ob alle notwendigen LUT-Blocks geladen
   sind; falls nicht, werden fehlende Daten per inkrementeller Initialisierung
   nachgeladen (mittels der Funktion iban_init())

 - Berücksichtigung der IBAN-Regeln bei iban2bic() (wichtig z.B. bei Regel 5 oder
   falsch erzeugten IBANs). Falls in einer IBAN-Regel vorgegeben wird, daß kein
   Test der Bankverbindung erfolgen soll, wird das in iban_check() und iban2bic()
   jetzt auch berücksichtigt

 - in bestimmten Fehlerfällen (Konto ungültig) lieferte iban_bic_gen() keinen BIC;
   das ist jetzt behoben

 - Unterkonten können nur hinzugefügt werden, falls die beiden ersten Stellen
   der Kontonummer '00' sind (das wurde nicht immer geprüft)

 - Korrekturen in den Prüfziffermethoden 13b, 63, C7

 - kleine Korrektur in IBAN-Regel 5

 - einige kleinere bug fixes und etwas Kosmetik im C-Code


##################################################################################
###                       02.08.13 Version 5.0 (final)                         ###
##################################################################################

 - Änderungen der Pruefzifferberechnungsmethoden 57 und 95 (gültig ab 9.9.2013)
   implementiert. Die Änderungen werden zum Gültigkeitsdatum automatisch aktiviert.

 - Änderungen der IBAN-Regeln zum 9. September 2013 implementiert:
   IBAN-Regeln 05, 12, 13, 20, 21, 31, 33, 35, 40 aktualisiert auf Version 1
   IBAN-Regeln 48 - 54 neu implementiert

 - bei iban_gen() wird unterschieden, ob ein Konto ersetzt wurde (z.B. Spendenkonten),
   oder ob nur ein Unterkonto angehängt wurde. Der Rückgabewert OK_UNTERKONTO_ATTACHED
   ist jetzt eine positive Statusmeldung, keine Fehlermeldung mehr.

 - neue "schwarze Liste" für IBANs (in der Datei iban.blacklist; nähere Info in der Datei)

 - einige kleinere Änderungen in den IBAN-Regeln berücksichtigt, die von der
   Deutschen Bundesbank per Mail verbreitet wurden (sie werden erst im Dezember
   in die offizielle Version aufgenommen, die Institute bitten jedoch darum
   sie schon zu berücksichtigen; betrifft die Regeln 10, 15 und 43).

 - Überprüfung in iban_check(), ob die übergebene IBAN mit der selbst erzeugten
   übereinstimmt, oder ob evl. ein Unterkonto nicht angehängt wurde oder eine
   IBAN-Regel nicht beachtet wurde; so werden falsch erzeugte IBANs erkannt

 - Alle Leerzeichen werden vor der Verarbeitung aus der IBAN entfernt
   (Funktionen iban2bic() sowie iban_check() )

 - Ruby: die Funktion version() akzeptiert einen optionalen Integer-Parameter, mit
   dem verschiedene Infos über die konto_check-Bibliothek erfragt werden können

 - Ruby ist jetzt wieder mit im SVN

 - Die Funktion iban_gen() in Ruby, PHP und Perl gibt nun auch die benutzte IBAN-Regel zurück

 - PHP: einige Standardwerte für PHP-Generierung wurden geändert:
      * Beschreibung der Prüfziffermethoden werden defaultmäßig eingebunden
      * symbolische Rückgabewerte werden defaultmäßig definiert
      * BAV Kompatibilität ist standardmäßig aus und hat noch einen zusätzlichen
        Schalter in konto_check.h (die Funktionalität wird aktuell nicht benutzt)).
      * Außerdem in konto_check.ini:
            konto_check.init_default_level=9    (statt 5)
            konto_check.lut_path1=.             (alt: /etc)
            konto_check.lut_path2=/etc          (alt: .)

 - Info zu IBAN-Regeln in den Info-Teil der LUT-Datei übernommen

 - Fehler in IBAN-Regel 5 (Commerzbank) bei Kontenkreis 998000000-999499999 berichtigt

 - Fehler in IBAN-Regel 46 berichtigt

 - Fehler in Prüfziffermethode C7 berichtigt: 10-stellige Konten sind ungültig.
   Der Fehler trat nur auf, wenn die Untermethoden C7a oder C7b direkt
   aufgerufen wurden (praktisch vor allem bei IBAN-Generierung).

 - Behandlung von Unterkonten in Methode C7 überarbeitet

 - in Prüfziffermethode 16 wird beim Divisionsrest 1 und unterschiedlichen
   Ziffern an der 9. und 10. Stelle der Wert FALSE zurückgegeben (dies ist die
   Rückgabe des Bank Account Validators (BAV), sowie des SEPA IBAN Konverters
   der Sparkassen als auch des VR Bank IBAN Konverters.

 - Bug fix in lut_bic(); die Funktion lieferte manchmal eine access violation

 - Die Funktion lut_bic() liefert wieder für Zweigstellen deren BIC, nicht den
   der Hauptstelle

 - Die comdirect bank behält ihren BIC aus der Bundesbank-Datei

 - Das Löschflag 'D' bei lut_aenderung() wird berücksichtigt; BLZs mit diesem
   Flag werden nicht mehr bearbeitet.


##################################################################################
###                       07.06.13 Version 4.6                                 ###
##################################################################################

 - IBAN-Regeln implementiert und getestet
 - Änderungen in Prüfziffermethode 51 und 84 (gültig ab 3.6.2013)
 - Kommentar zu Prüfziffermethode E0 angepasst (Klarstellung)
 - neue Funktion lut_iban_regel()) zur Bestimmung der IBAN-Regel für eine Bankverbindung
 - neue Funktion iban_bic_gen() zur Bestimmung einer IBAN sowie BIC und benutzter
   BLZ/Kontonummer
 - neue Funktion get_kto_check_version_x() mit etwas mehr Infos
 - kleiner Bugfix in main.c: bei der Anzeige der Bankdaten in der Konsole wurde
   bei Prüfziffermethoden ab B0 die erste Stelle der Prüfziffermethode immer
   falsch ausgegeben.


##################################################################################

0_history.txt  view on Meta::CPAN

###                       01.05.02  Version 0.1                                ###
##################################################################################

   erste Version (nur privat, wenige Methoden)

##################################################################################
##################################################################################
##################################################################################


##############################################################################
#          PRÜFZIFFERBERECHNUNG VON ÖSTERREICHISCHEN KONTONUMMERN            #
#                           C-/Perl-Bibliothek                               #
##############################################################################
#                                                                            #
# Autor             : Michael Plugge <konto_check@yahoo.com>                 #
# Version           : 1.3                                                    #
# Datum             : 16.01.2008                                             #
##############################################################################

Versionen der österreichischen Bibliothek:


Version 0.1 (13.7.06, initiale Version)
==============================

 - Prüffunktionalität komplett
 - die Datei blz-at.lut wird von einem externen Programm generiert


Version 0.2 (20.7.06):
======================

 - einige VIM-Faltungen eingefügt

 - exit in etlichen Funktionen durch return mit Fehlercode ersetzt

 - kto_check_msg herausgenommen wegen Kollision mit der deutschen Version,
   funktional ersetzt durch kto_check_retval2txt().

 - kleine Änderungen der main() Routine

 - falls eine BLZ als erstes Zeichen ein - enthält, wird das Konto auch
   getestet, falls die BLZ gelöscht ist; die Rückgabewerte sind in dem Fall
   dann OK_GELOESCHT, OK_NO_CHK_GELOESCHT oder FALSE_GELOESCHT.

 - Geschwindigkeitsoptimierungen:

    * search_blz() für die Methodensuche ersetzt durch Array,
      in dem die Methoden gespeichert sind

    * atoi() zur Umwandlung der BLZ in Integer ersetzt durch eigene Funktion.
      Eine Arrayvariante zur Umwandlung bringt keinen Geschwindigkeitsvorteil.

    * l_datum (globale Variable) ersetzt durch Array (binär); das Löschdatum
      erhält man nun über die Funktion get_loesch_datum()

      Die beiden ersten Funktionen waren im Vergleich zur insgesamt benötigten
      Zeit unverhältnismäßig langsam. Daher wurde die zugehörige Prüftabelle und
      die Information, ob eine Bankleitzahl gelöscht ist, in zwei Byte-Arrays
      mit jeweils 100.000 Elementen transferiert; die Arrayabfrage ist natürlich
      wesentlich schneller als der Funktionsaufruf. Durch diese Umstellung wird
      die Variable l_datum nicht mehr gesetzt; falls man setzen wollte, müßte
      der Index für jede Bankleitzahl gespeichert werden. In diesem Fall müßte
      man für das Array für das Löschdatum ein Integer-Array (4 Byte Integer)
      benutzen; da das Löschdatum aber wohl nicht oft benötigt wird, wird es
      nicht mehr in jedem Fall bestimmt, sondern nur noch durch den
      Funktionsaufruf.


 - Fehlerkorrekturen:

   * im Makro ZIFFERNSUMME_7:
      if(pz1>59)pz1-=56;  ersetzt durch if(pz1>59)pz1-=54;
      (falsche Ziffer eingefügt => Ziffernsumme wird falsch)

   * in der Funktion kto_check_at (Rechenvorgang der Prüfziffer):
      methode=*ptr++-'0'; ersetzt durch methode=char2num[*ptr++];
      (die alte Variante stimmt nur für einen Rechenvorgang bis 9)

   * in der Funktion kto_check_at (Array-Version, nach Rechenvorgang der Prüfziffer):
      wichtung-='0';  ersetzt durch    wichtung=char2num[wichtung];
      stelle_1-='1';  ersetzt durch    stelle_1=char2num[stelle_1]-1;
      (die alte Variante stimmt nur für Werte bis 9)


Version 1.0 (1.9.06):
=====================

 - weitere Tests mit realen Konten, noch keine weiteren Fehler gefunden

 - einige Kommentare eingefügt

 - noch einige VIM-Faltungen eingefügt

 - CRC-Test für die lut-Datei (mit adler32 als Prüfsumme)

 - optional bei generate_lut_at(): Ausgabe der Bankdaten auch als plain-Datei
   in frei wählbarem Format

 - neue Funktion dump_lutfile(), die den Inhalt einer lut-Datei als Klartext
   ausgibt (Ausgabefelder: BLZ, Löschdatum, Prüftabelle/-parameter).

 - Funktion generate_lut_at in die Bibliothek integriert; inpar2lut.c ist dadurch
   obsolet geworden (bzw. nur noch für spezielle Prüfzwecke relevant), und daher
   aus der Distribution herausgenommen. Die Umlaute werden von CP 850 auf
   iso-8859-1 umgesetzt (aktuell nur für die plain Ausgabe; es ist jedoch für
   eine spätere Erweiterung der lut-Datei auf zusätzliche Ausgabefelder
   relevant).

 - das Präprozessor-Makro HTML_UMLAUTE in kto_check_retval2txt() ist jetzt
   obsolet; stattdessen gibt es eine zusätzliche Funktion
   kto_check_retval2html(), die HTML-Umlaute liefert.

 - kleine Änderungen in der Sortier-Routine für generate_lut. Dadurch ändern
   sich für einige Bankleitzahlen der lut-Datei das Löschdatum, da nun
   Hauptstellen vor Zweigstellen sortiert werden (es wird nur eine Bank
   pro BLZ in die lut-Datei aufgenommen; manchmal werden allerdings laut der
   Bankleitzahlendatei Hauptstellen vor Zweigstellen gelöscht - schwer
   verständlich, aber so steht es da). Ansonsten ist die lut-Datei mit der alten
   Version identisch (läßt sich leicht mittels dump_lutfile() überprüfen ;-) ).

0_history.txt  view on Meta::CPAN

-  184195 00001 00032 BANKHAUS SCHELHAMMER & SCHATTERA
-  196053 00001 00032 GELOESCHT - Bankhaus Krentschker & Co. Zweigniederlassung Wien
-  267511 00001 00032 GELOESCHT - RAIFFEISENBANK HARD REG.GEN.M.B.H.
- 1337939 00001 00032 GELOESCHT - SECURITY KAPITAL-ANLAGEGESELLSCHAFT M.B.H.
- 4888804 00001 00032 Verwaltungsgenossenschaft der vbankdirekt AG reg.Gen.m.b.H.

   Die drei Einträge mit einem + in der ersten Spalte werden in die blz-at.lut
   Datei übernommen; falls eine BLZ 00001 auftaucht, wird allerdings der Eintrag
   mit der ID 163902 (Tabelle 0, immer ok) benutzt. In der Version 0.2 wurde
   stattdessen der Eintrag mit der ID 76040 (Tabelle 32) benutzt (aufgrund der
   geänderten Sortierroutine). Die BLZ scheint allerdings keine reale BLZ zu
   sein, sondern nur ein Testfall, da die Banken auf den ersten Blick nichts
   miteinander zu tun haben und drei verschiedene Prüfverfahren (0, 13 und 32)
   angegeben sind.


Version 1.1 (8.9.06):
=======================

Diese Version enthält einige kleine Änderungen, die sich für das cgi-Programm
als nützlich erwiesen haben, sowie zwei Bugfixes:

 - falls in kto_check_at() für den Parameter lut_name NULL übergeben wird,
   werden nur die Arrays initialisiert, aber keine lut-Datei geladen. Dies ist
   nützlich, falls statt einer Bankleitzahl direkt die Prüfparameter angegeben
   werden (mit vorgestelltem p). Falls für den Parameter lut_name ein Leerstring
   übergeben wird, wird versucht, die Datei DEFAULT_LUT_NAME zu lesen.

 - der Filedeskriptor trace ist jetzt als globale Variable (in der DLL auch
   exportiert) deklariert; damit kann die trace-Datei auch aus einem anderen
   Modul initialisiert werden. Die Trace-Version ist natürlich nicht threadfest,
   aber sie wird ja nur zur Fehlersuche benötigt.

 - in der Funktion generate_lut_at werden einige große Array-Variablen allokiert
   (ca. 3,5 MB bei MAX_BLZ_CNT_AT=30000); sie sind jetzt als static deklariert,
   da ansonsten unter Windows das Programm beim Generieren einer lut-Datei mit
   einer Schreibschutzverletzung abstürzt.

 - die Funktion dump_lutfile() lieferte keine vernünftigen Werte, da während der
   Entwicklung (kurzzeitig) die Arrays per malloc allokiert wurden, und später
   wieder als Arrays deklariert wurden; in der Funktion war noch die
   malloc-Version, und die Adressierung ging schief.

 - kleine Änderungen in der main() Routine

 - die Fehlermeldungen die von kto_check_retval2txt() geliefert werden, sind
   jetzt reine Fehlermeldungen, ohne in ### eingeschlossen zu sein


Version 1.2 (11.9.06):
=======================

 - kleiner Fehler in der Trace-Version: falls trace==NULL war, wurden einige
   Berechnungen nicht gemacht, und das Ergebnis meist als richtig angesehen
   (dies betrifft nur die Trace-Version, nicht die normale; wurde beim
   cgi-Programm entdeckt).

 - Die Dateien mit dem INPAR Handbuch und -Vertrag werden nach Rücksprache mit
   First Data (H. Krickel; jetzt SIX Card Solutions) nicht mehr in das Paket
   aufgenommen, sondern sollten direkt bei SIX Card Solutions
   (Andreas.Krickl@six-card-solutions.at) angefragt, bzw. von der Website von
   SIX Card Solutions Austria heruntergeladen werden (näheres in der Datei
   00liesmich unter Punkt 5. Prüfparameter).

Version 2.1 (4.6.07):
=======================
 - Die Versionszählung läuft jetzt synchron mit der deutschen Version von
   konto_check, da die beiden Pakete für die Perl-Version zusammen verwendet
   werden
 - einige kleinere Änderungen für die Anpassung an Perl
 - Der Datentyp von adler32 wurde von unsigned long auf UINT4 geändert, um
   Probleme mit modernen 64 Bit Compilern zu beheben.

Version 1.3 (16.1.08):
======================
 - Die eigene Versionszählung für das österreichische Modul wird doch wieder
   eingeführt.

 - diese Version implementiert das INPAR-Dateiformat; das Programm kann jetzt
   beide Dateiformate lesen

 - die Funktion dump_lutfile() mußte auf dump_lutfile_at() umbenannt werden,
   da in der neuen deutschen Bibliothek jetzt auch eine Funktion mit demselben
   Namen, aber wesentlich erweiterter Funktionalität als Teil der LUT2
   Routinen vorkommt (diese Funktion ist allerdings nicht nach perl
   exportiert).

 - einige kleinere Aufräumarbeiten



( run in 1.332 second using v1.01-cache-2.11-cpan-8dfa8b56332 )