patomic

Script zur Überprüfung einer Steuer-ID

Discussion created by patomic on Apr 24, 2015
Latest reply on Apr 25, 2015 by Markus Schneider

Hallo Zusammen

 

Nachdem ich nichts vergleichbares gefunden habe, musste ich mir für eine Anwendung ein Script zur Überprüfung der Steuer-ID stricken. Denn es kam bei der Eingabe immer wieder zu Fehleingaben oder zur Verwechslung mit der Steuernummer. Das soll folgendes Script abfangen und den User bereits bei der Eingabe warnen. Die Regeln zur Steuer-ID hab ich aus Wikipedia.

 

Es ist sicher noch optimierbar, aber bei mir läuft es so ganz gut. Vielleicht kann es jemand gebebrauchen.

 

Viel Spaß

 

 

Variable setzen [ $Fehler; Wert:0 ]

 

# leeres Feld "Steuer ID" ignorieren

 

Wenn [ IstLeer ( Adressen::Steuer ID ) ]

 

# Hier werden ein Statusfeld und ein Anzeigesymbol zurückgesetzt.

 

         Feldwert setzen [ Adressen::Symbol_StID_OK ; "" ]

         Feldwert setzen [ Adressen::Status SteuerID ; "" ]

 

Sonst

 

# Regeln Prüfen: Genau eine Ziffer von 0 bis 9 ist doppelt vorhanden, genau eine gar nicht und die restlichen 8 je einmal.

#

# Schritt 1: Anzahl der einzelnen Ziffern (0 bis9) überprüfen.

 

         Variable setzen [ $SI0; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "0") ]

         Variable setzen [ $SI1; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "1") ]

         Variable setzen [ $SI2; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "2") ]

         Variable setzen [ $SI3; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "3") ]

         Variable setzen [ $SI4; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "4") ]

         Variable setzen [ $SI5; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "5") ]

         Variable setzen [ $SI6; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "6") ]

         Variable setzen [ $SI7; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "7") ]

         Variable setzen [ $SI8; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "8") ]

         Variable setzen [ $SI9; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "9") ]

 

# Schritt 2: Die zehn Ergebnisse zu einem String zusammenfügen

 

         Variable setzen [ $Sstring; Wert:LiesAlsText ( $SI0 ) & LiesAlsText ( $SI1 ) & LiesAlsText ( $SI2 ) & LiesAlsText ( $SI3 ) &

LiesAlsText ( $SI4 ) & LiesAlsText ( $SI5 ) & LiesAlsText ( $SI6 ) & LiesAlsText ( $SI7 ) & LiesAlsText ( $SI8 ) & LiesAlsText ( $SI9 ) ]

 

# Schritt 3: Im String muss die "1" achtmal, die "0" und die "2" je einmal vorkommen. Abweichungen davon sind nicht zulässig.

Ansonsten wird $Fehler auf 1/TRUE gesetzt.

 

Wenn [ ( MusterAnzahl ( $Sstring; "1") 8 ) ODER ( MusterAnzahl ( $Sstring; "0") 1 ) ODER ( MusterAnzahl ( $Sstring; "2") 1 ) ]

                   Variable setzen [ $Fehler; Wert:1 ]

         Ende (wenn)

 

# Prüfziffer berechnen

 

         Variable setzen [ $J; Wert:1 ]

         Variable setzen [ $produkt ; Wert:10 ]

         Variable setzen [ $summe ; Wert:0 ]

         Schleife (Anfang)

                   Variable setzen [ $summe ; Wert:Mod ( LiesAlsZahl ( ZeichenMitte ( Adressen::Steuer ID; $J; 1) ) + $produkt; 10) ]

                   Wenn [ $summe = 0 ]

                            Variable setzen [ $summe ; Wert:10 ]

                   Ende (wenn)

                   Variable setzen [ $produkt ; Wert:Mod ( $summe * 2; 11) ]

                   Variable setzen [ $J; Wert:$J + 1 ]

                   Verlasse Schleife wenn [ $J = 11 ]

         Schleife (Ende)

         Variable setzen [ $pz; Wert:11 - $produkt ]

         Wenn [ $pz = 10 ]

                   Variable setzen [ $pz; Wert:0 ]

         Ende (wenn)

 

         Wenn [ (LiesAlsZahl ( ZeichenMitte ( Adressen::Steuer ID; 11; 1) ) $pz) ODER ( Länge ( Adressen::Steuer ID ) 11 )

         ODER $Fehler ]

                   Eigenes Dialogfeld anzeigen [ Titel: "Steuer-ID Überprüfung"; Mitteilung: "Die Steuer-ID scheint falsch zu sein. Bitte

                   korrigieren"; Standardtaste: “OK”, Schreiben: “Ja” ]

 

# Fehler erkannt: Fehlerdialog wird angezeigt und Statusfeld sowie Symbol entsprechend gesetzt.

 

                   Feldwert setzen [ Adressen::Symbol_StID_OK ; HoleWiederholfeldwert ( Filter Adressen Einstellungen::Symbole; 2) ]

                   Feldwert setzen [ Adressen::Status SteuerID ; "2" ]

         Sonst

 

# kein Fehler erkannt: Statusfeld sowie Symbol werden entsprechend gesetzt.

 

                   Feldwert setzen [ Adressen::Symbol_StID_OK ; HoleWiederholfeldwert ( Filter Adressen Einstellungen::Symbole; 1) ]

                   Feldwert setzen [ Adressen::Status SteuerID ; "1" ]

                   Gehe zu Feld [ ]

         Ende (wenn)

Ende (wenn)

 

Outcomes