Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Match everything enclosed
    (?:...)
  • Capture everything enclosed
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression

/
/
g

Test String

Substitution

Processing...

Code Generator

Generated Code

#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox Local $sRegex = "<!--\s*([\s\S]*?)\s*-->" Local $sString = "<PAP name="Lohnsteuer2016Big" version="1.0"> " & @CRLF & _ " <VARIABLES> " & @CRLF & _ " <!-- Stand: 2015-11-06 -->" & @CRLF & _ " <!-- ZIVIT Düsseldorf--> " & @CRLF & _ "" & @CRLF & _ " <!-- EINGABEPARAMETER -->" & @CRLF & _ " <INPUTS>" & @CRLF & _ " <!-- 1, wenn die Anwendung des Faktorverfahrens gewählt wurden (nur in Steuerklasse IV) -->" & @CRLF & _ " <INPUT name="af" type="int" default="1"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Auf die Vollendung des 64. Lebensjahres folgende" & @CRLF & _ " Kalenderjahr (erforderlich, wenn ALTER1=1) -->" & @CRLF & _ " <INPUT name="AJAHR" type="int"/>" & @CRLF & _ " " & @CRLF & _ " <!-- 1, wenn das 64. Lebensjahr zu Beginn des Kalenderjahres vollendet wurde, in dem" & @CRLF & _ " der Lohnzahlungszeitraum endet (§ 24 a EStG), sonst = 0 -->" & @CRLF & _ " <INPUT name="ALTER1" type="int"/>" & @CRLF & _ " " & @CRLF & _ " <!-- in VKAPA und VMT enthaltene Entschädigungen nach §24 Nummer 1 EStG in Cent -->" & @CRLF & _ " <INPUT name="ENTSCH" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- eingetragener Faktor mit drei Nachkommastellen -->" & @CRLF & _ " <INPUT name="f" type="double" default="1.0"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Jahresfreibetrag nach Maßgabe der Eintragungen auf der" & @CRLF & _ " Lohnsteuerkarte in Cents (ggf. 0) -->" & @CRLF & _ " <INPUT name="JFREIB" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Jahreshinzurechnungsbetrag in Cents (ggf. 0) -->" & @CRLF & _ " <INPUT name="JHINZU" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Voraussichtlicher Jahresarbeitslohn ohne sonstige Bezüge und ohne Vergütung für mehrjährige Tätigkeit in Cent. " & @CRLF & _ " Anmerkung: Die Eingabe dieses Feldes (ggf. 0) ist erforderlich bei Eingabe „sonsti-ger Bezüge“ (Feld SONSTB) " & @CRLF & _ " oder bei Eingabe der „Vergütung für mehrjährige Tätigkeit“ (Feld VMT)." & @CRLF & _ " Sind in einem vorangegangenen Abrechnungszeitraum bereits sonstige Bezüge gezahlt worden, so sind sie dem " & @CRLF & _ " voraussichtlichen Jahresarbeitslohn hinzuzurechnen. Vergütungen für mehrere Jahres aus einem vorangegangenen " & @CRLF & _ " Abrechnungszeitraum sind in voller Höhe hinzuzurechnen. --> " & @CRLF & _ " <INPUT name="JRE4" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- In JRE4 enthaltene Versorgungsbezuege in Cents (ggf. 0) -->" & @CRLF & _ " <INPUT name="JVBEZ" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!--Merker für die Vorsorgepauschale" & @CRLF & _ " 2 = der Arbeitnehmer ist NICHT in der gesetzlichen Rentenversicherung versichert." & @CRLF & _ " " & @CRLF & _ " 1 = der Arbeitnehmer ist in der gesetzlichen Rentenversicherung versichert, es gilt die " & @CRLF & _ " Beitragsbemessungsgrenze OST." & @CRLF & _ " " & @CRLF & _ " 0 = der Arbeitnehmer ist in der gesetzlichen Rentenversicherung versichert, es gilt die " & @CRLF & _ " Beitragsbemessungsgrenze WEST. -->" & @CRLF & _ " <INPUT name="KRV" type="int"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Einkommensbezogener Zusatzbeitragssatz eines gesetzlich krankenversicherten Arbeitnehmers, " & @CRLF & _ " auf dessen Basis der an die Krankenkasse zu zahlende Zusatzbeitrag berechnet wird," & @CRLF & _ " in Prozent (bspw. 0,90 für 0,90 %) mit 2 Dezimalstellen. " & @CRLF & _ " Der von der Kranken-kasse festgesetzte Zusatzbeitragssatz ist bei Abweichungen unmaßgeblich. -->" & @CRLF & _ " <INPUT name="KVZ" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Lohnzahlungszeitraum:" & @CRLF & _ " 1 = Jahr" & @CRLF & _ " 2 = Monat" & @CRLF & _ " 3 = Woche" & @CRLF & _ " 4 = Tag -->" & @CRLF & _ " <INPUT name="LZZ" type="int"/>" & @CRLF & _ " " & @CRLF & _ " <!-- In der Lohnsteuerkarte des Arbeitnehmers eingetragener Freibetrag für" & @CRLF & _ " den Lohnzahlungszeitraum in Cent -->" & @CRLF & _ " <INPUT name="LZZFREIB" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- In der Lohnsteuerkarte des Arbeitnehmers eingetragener Hinzurechnungsbetrag" & @CRLF & _ " für den Lohnzahlungszeitraum in Cent -->" & @CRLF & _ " <INPUT name="LZZHINZU" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Dem Arbeitgeber mitgeteilte Zahlungen des Arbeitnehmers zur privaten" & @CRLF & _ " Kranken- bzw. Pflegeversicherung im Sinne des §10 Abs. 1 Nr. 3 EStG 2010" & @CRLF & _ " als Monatsbetrag in Cent (der Wert ist inabhängig vom Lohnzahlungszeitraum immer " & @CRLF & _ " als Monatsbetrag anzugeben).-->" & @CRLF & _ " <INPUT name="PKPV" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Krankenversicherung:" & @CRLF & _ " 0 = gesetzlich krankenversicherte Arbeitnehmer" & @CRLF & _ " 1 = ausschließlich privat krankenversicherte Arbeitnehmer OHNE Arbeitgeberzuschuss" & @CRLF & _ " 2 = ausschließlich privat krankenversicherte Arbeitnehmer MIT Arbeitgeberzuschuss -->" & @CRLF & _ " <INPUT name="PKV" type="int" default="0"/>" & @CRLF & _ " " & @CRLF & _ " <!-- 1, wenn bei der sozialen Pflegeversicherung die Besonderheiten in Sachsen zu berücksichtigen sind bzw. " & @CRLF & _ " zu berücksichtigen wären, sonst 0. -->" & @CRLF & _ " <INPUT name="PVS" type="int" default="0"/>" & @CRLF & _ " " & @CRLF & _ " <!-- 1, wenn er der Arbeitnehmer den Zuschlag zur sozialen Pflegeversicherung " & @CRLF & _ " zu zahlen hat, sonst 0. -->" & @CRLF & _ " <INPUT name="PVZ" type="int" default="0"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Religionsgemeinschaft des Arbeitnehmers lt. Lohnsteuerkarte (bei" & @CRLF & _ " keiner Religionszugehoerigkeit = 0) -->" & @CRLF & _ " <INPUT name="R" type="int"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Steuerpflichtiger Arbeitslohn vor Beruecksichtigung der Freibetraege" & @CRLF & _ " fuer Versorgungsbezuege, des Altersentlastungsbetrags und des auf" & @CRLF & _ " der Lohnsteuerkarte fuer den Lohnzahlungszeitraum eingetragenen" & @CRLF & _ " Freibetrags in Cents. -->" & @CRLF & _ " <INPUT name="RE4" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Sonstige Bezuege (ohne Verguetung aus mehrjaehriger Taetigkeit) einschliesslich" & @CRLF & _ " Sterbegeld bei Versorgungsbezuegen sowie Kapitalauszahlungen/Abfindungen," & @CRLF & _ " soweit es sich nicht um Bezuege fuer mehrere Jahre handelt in Cents (ggf. 0) -->" & @CRLF & _ " <INPUT name="SONSTB" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Sterbegeld bei Versorgungsbezuegen sowie Kapitalauszahlungen/Abfindungen," & @CRLF & _ " soweit es sich nicht um Bezuege fuer mehrere Jahre handelt" & @CRLF & _ " (in SONSTB enthalten) in Cents -->" & @CRLF & _ " <INPUT name="STERBE" type="BigDecimal" regex_test="" regex_transform=""/>" & @CRLF & _ " " & @CRLF & _ " <!-- Steuerklasse:" & @CRLF & _ " 1 = I" & @CRLF & _ " 2 = II" & @CRLF & _ " 3 = III" & @CRLF & _ " 4 = IV" & @CRLF & _ " 5 = V" & @CRLF & _ " 6 = VI -->" & @CRLF & _ " <INPUT name="STKL" type="int"/>" & @CRLF & _ " " & @CRLF & _ " <!-- In RE4 enthaltene Versorgungsbezuege in Cents (ggf. 0) -->" & @CRLF & _ " <INPUT name="VBEZ" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Vorsorgungsbezug im Januar 2005 bzw. fuer den ersten vollen Monat" & @CRLF & _ " in Cents-->" & @CRLF & _ " <INPUT name="VBEZM" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Voraussichtliche Sonderzahlungen im Kalenderjahr des Versorgungsbeginns" & @CRLF & _ " bei Versorgungsempfaengern ohne Sterbegeld, Kapitalauszahlungen/Abfindungen" & @CRLF & _ " bei Versorgungsbezuegen in Cents-->" & @CRLF & _ " <INPUT name="VBEZS" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- In SONSTB enthaltene Versorgungsbezuege einschliesslich Sterbegeld" & @CRLF & _ " in Cents (ggf. 0) -->" & @CRLF & _ " <INPUT name="VBS" type="BigDecimal"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Jahr, in dem der Versorgungsbezug erstmalig gewaehrt wurde; werden" & @CRLF & _ " mehrere Versorgungsbezuege gezahlt, so gilt der aelteste erstmalige Bezug -->" & @CRLF & _ " <INPUT name="VJAHR" type="int" regex_test="" regex_transform=""/>" & @CRLF & _ " " & @CRLF & _ " <!-- Kapitalauszahlungen / Abfindungen / Nachzahlungen bei Versorgungsbezügen " & @CRLF & _ " für mehrere Jahre in Cent (ggf. 0) --> " & @CRLF & _ " <INPUT name="VKAPA" type="BigDecimal" regex_test="" regex_transform=""/>" & @CRLF & _ " " & @CRLF & _ " <!-- Vergütung für mehrjährige Tätigkeit ohne Kapitalauszahlungen und ohne Abfindungen " & @CRLF & _ " bei Versorgungsbezügen in Cent (ggf. 0) -->" & @CRLF & _ " <INPUT name="VMT" type="BigDecimal" regex_test="" regex_transform=""/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zahl der Freibetraege fuer Kinder (eine Dezimalstelle, nur bei Steuerklassen" & @CRLF & _ " I, II, III und IV) -->" & @CRLF & _ " <INPUT name="ZKF" type="BigDecimal" regex_test="" regex_transform=""/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zahl der Monate, fuer die Versorgungsbezuege gezahlt werden (nur" & @CRLF & _ " erforderlich bei Jahresberechnung (LZZ = 1) -->" & @CRLF & _ " <INPUT name="ZMVB" type="int" regex_test="" regex_transform=""/>" & @CRLF & _ " " & @CRLF & _ " <!-- In JRE4 enthaltene Entschädigungen nach § 24 Nummer 1 EStG in Cent -->" & @CRLF & _ " <INPUT name="JRE4ENT" type="BigDecimal" default="BigDecimal.ZERO"/>" & @CRLF & _ " " & @CRLF & _ " <!-- In SONSTB enthaltene Entschädigungen nach § 24 Nummer 1 EStG in Cent -->" & @CRLF & _ " <INPUT name="SONSTENT" type="BigDecimal" default="BigDecimal.ZERO"/>" & @CRLF & _ " </INPUTS>" & @CRLF & _ "" & @CRLF & _ " <!-- AUSGABEPARAMETER -->" & @CRLF & _ " <OUTPUTS type="STANDARD">" & @CRLF & _ " <!-- Bemessungsgrundlage fuer die Kirchenlohnsteuer in Cents -->" & @CRLF & _ " <OUTPUT name="BK" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Bemessungsgrundlage der sonstigen Einkuenfte (ohne Verguetung" & @CRLF & _ " fuer mehrjaehrige Taetigkeit) fuer die Kirchenlohnsteuer in Cents -->" & @CRLF & _ " <OUTPUT name="BKS" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <OUTPUT name="BKV" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Fuer den Lohnzahlungszeitraum einzubehaltende Lohnsteuer in Cents -->" & @CRLF & _ " <OUTPUT name="LSTLZZ" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Fuer den Lohnzahlungszeitraum einzubehaltender Solidaritaetszuschlag" & @CRLF & _ " in Cents -->" & @CRLF & _ " <OUTPUT name="SOLZLZZ" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Solidaritaetszuschlag fuer sonstige Bezuege (ohne Verguetung fuer mehrjaehrige" & @CRLF & _ " Taetigkeit) in Cents -->" & @CRLF & _ " <OUTPUT name="SOLZS" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Solidaritaetszuschlag fuer die Verguetung fuer mehrjaehrige Taetigkeit in" & @CRLF & _ " Cents -->" & @CRLF & _ " <OUTPUT name="SOLZV" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Lohnsteuer fuer sonstige Einkuenfte (ohne Verguetung fuer mehrjaehrige" & @CRLF & _ " Taetigkeit) in Cents -->" & @CRLF & _ " <OUTPUT name="STS" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Lohnsteuer fuer Verguetung fuer mehrjaehrige Taetigkeit in Cents -->" & @CRLF & _ " <OUTPUT name="STV" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Für den Lohnzahlungszeitraum berücksichtigte Beiträge des Arbeitnehmers zur" & @CRLF & _ " privaten Basis-Krankenversicherung und privaten Pflege-Pflichtversicherung (ggf. auch" & @CRLF & _ " die Mindestvorsorgepauschale) in Cent beim laufenden Arbeitslohn. Für Zwecke der Lohn-" & @CRLF & _ " steuerbescheinigung sind die einzelnen Ausgabewerte außerhalb des eigentlichen Lohn-" & @CRLF & _ " steuerbescheinigungsprogramms zu addieren; hinzuzurechnen sind auch die Ausgabewerte" & @CRLF & _ " VKVSONST -->" & @CRLF & _ " <OUTPUT name="VKVLZZ" type="BigDecimal" default="new BigDecimal(0)"/> " & @CRLF & _ " " & @CRLF & _ " <!-- Für den Lohnzahlungszeitraum berücksichtigte Beiträge des Arbeitnehmers " & @CRLF & _ " zur privaten Basis-Krankenversicherung und privaten Pflege-Pflichtversicherung (ggf. " & @CRLF & _ " auch die Mindestvorsorgepauschale) in Cent bei sonstigen Bezügen. Der Ausgabewert kann" & @CRLF & _ " auch negativ sein. Für tarifermäßigt zu besteuernde Vergütungen für mehrjährige " & @CRLF & _ " Tätigkeiten enthält der PAP keinen entsprechenden Ausgabewert. -->" & @CRLF & _ " <OUTPUT name="VKVSONST" type="BigDecimal" default="new BigDecimal(0)"/> " & @CRLF & _ " " & @CRLF & _ " </OUTPUTS>" & @CRLF & _ " " & @CRLF & _ " <!-- AUSGABEPARAMETER DBA -->" & @CRLF & _ " <OUTPUTS type="DBA">" & @CRLF & _ " " & @CRLF & _ " <!-- Verbrauchter Freibetrag bei Berechnung des laufenden Arbeitslohns, in Cent -->" & @CRLF & _ " <OUTPUT name="VFRB" type="BigDecimal" default="new BigDecimal(0)"/> " & @CRLF & _ " " & @CRLF & _ " <!-- Verbrauchter Freibetrag bei Berechnung des voraussichtlichen Jahresarbeitslohns, in Cent -->" & @CRLF & _ " <OUTPUT name="VFRBS1" type="BigDecimal" default="new BigDecimal(0)"/> " & @CRLF & _ " " & @CRLF & _ " <!-- Verbrauchter Freibetrag bei Berechnung der sonstigen Bezüge, in Cent -->" & @CRLF & _ " <OUTPUT name="VFRBS2" type="BigDecimal" default="new BigDecimal(0)"/> " & @CRLF & _ " " & @CRLF & _ " <!-- Für die weitergehende Berücksichtigung des Steuerfreibetrags nach dem DBA Türkei verfügbares ZVE über " & @CRLF & _ " dem Grundfreibetrag bei der Berechnung des laufenden Arbeitslohns, in Cent -->" & @CRLF & _ " <OUTPUT name="WVFRB" type="BigDecimal" default="new BigDecimal(0)"/> " & @CRLF & _ " " & @CRLF & _ " <!-- Für die weitergehende Berücksichtigung des Steuerfreibetrags nach dem DBA Türkei verfügbares ZVE über dem Grundfreibetrag " & @CRLF & _ " bei der Berechnung des voraussichtlichen Jahresarbeitslohns, in Cent -->" & @CRLF & _ " <OUTPUT name="WVFRBO" type="BigDecimal" default="new BigDecimal(0)"/> " & @CRLF & _ " " & @CRLF & _ " <!-- Für die weitergehende Berücksichtigung des Steuerfreibetrags nach dem DBA Türkei verfügbares ZVE " & @CRLF & _ " über dem Grundfreibetrag bei der Berechnung der sonstigen Bezüge, in Cent -->" & @CRLF & _ " <OUTPUT name="WVFRBM" type="BigDecimal" default="new BigDecimal(0)"/> " & @CRLF & _ " </OUTPUTS>" & @CRLF & _ "" & @CRLF & _ " <!-- INTERNE FELDER -->" & @CRLF & _ " <INTERNALS>" & @CRLF & _ " <!-- Altersentlastungsbetrag nach Alterseinkünftegesetz in €," & @CRLF & _ " Cent (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="ALTE" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Arbeitnehmer-Pauschbetrag in EURO -->" & @CRLF & _ " <INTERNAL name="ANP" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Auf den Lohnzahlungszeitraum entfallender Anteil von Jahreswerten" & @CRLF & _ " auf ganze Cents abgerundet -->" & @CRLF & _ " <INTERNAL name="ANTEIL1" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Bemessungsgrundlage für Altersentlastungsbetrag in €, Cent" & @CRLF & _ " (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="BMG" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Beitragsbemessungsgrenze in der gesetzlichen Krankenversicherung " & @CRLF & _ " und der sozialen Pflegeversicherung in Euro -->" & @CRLF & _ " <INTERNAL name="BBGKVPV" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- allgemeine Beitragsbemessungsgrenze in der allgemeinen Renten-versicherung in Euro -->" & @CRLF & _ " <INTERNAL name="BBGRV" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Differenz zwischen ST1 und ST2 in EURO -->" & @CRLF & _ " <INTERNAL name="DIFF" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Entlastungsbetrag fuer Alleinerziehende in EURO -->" & @CRLF & _ " <INTERNAL name="EFA" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Versorgungsfreibetrag in €, Cent (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="FVB" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Versorgungsfreibetrag in €, Cent (2 Dezimalstellen) für die Berechnung" & @CRLF & _ " der Lohnsteuer für den sonstigen Bezug -->" & @CRLF & _ " <INTERNAL name="FVBSO" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zuschlag zum Versorgungsfreibetrag in EURO -->" & @CRLF & _ " <INTERNAL name="FVBZ" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zuschlag zum Versorgungsfreibetrag in EURO fuer die Berechnung" & @CRLF & _ " der Lohnsteuer beim sonstigen Bezug -->" & @CRLF & _ " <INTERNAL name="FVBZSO" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Grundfreibetrag in Euro -->" & @CRLF & _ " <INTERNAL name="GFB" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Maximaler Altersentlastungsbetrag in € -->" & @CRLF & _ " <INTERNAL name="HBALTE" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Massgeblicher maximaler Versorgungsfreibetrag in € -->" & @CRLF & _ " <INTERNAL name="HFVB" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Massgeblicher maximaler Zuschlag zum Versorgungsfreibetrag in €,Cent" & @CRLF & _ " (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="HFVBZ" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Massgeblicher maximaler Zuschlag zum Versorgungsfreibetrag in €, Cent" & @CRLF & _ " (2 Dezimalstellen) für die Berechnung der Lohnsteuer für den" & @CRLF & _ " sonstigen Bezug -->" & @CRLF & _ " <INTERNAL name="HFVBZSO" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Nummer der Tabellenwerte fuer Versorgungsparameter -->" & @CRLF & _ " <INTERNAL name="J" type="int" default="0"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Jahressteuer nach § 51a EStG, aus der Solidaritaetszuschlag und" & @CRLF & _ " Bemessungsgrundlage fuer die Kirchenlohnsteuer ermittelt werden in EURO -->" & @CRLF & _ " <INTERNAL name="JBMG" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Auf einen Jahreslohn hochgerechneter LZZFREIB in €, Cent" & @CRLF & _ " (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="JLFREIB" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Auf einen Jahreslohn hochgerechnete LZZHINZU in €, Cent" & @CRLF & _ " (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="JLHINZU" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Jahreswert, dessen Anteil fuer einen Lohnzahlungszeitraum in" & @CRLF & _ " UPANTEIL errechnet werden soll in Cents -->" & @CRLF & _ " <INTERNAL name="JW" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Nummer der Tabellenwerte fuer Parameter bei Altersentlastungsbetrag -->" & @CRLF & _ " <INTERNAL name="K" type="int" default="0"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Merker für Berechnung Lohnsteuer für mehrjährige Tätigkeit." & @CRLF & _ " 0 = normale Steuerberechnung" & @CRLF & _ " 1 = Steuerberechnung für mehrjährige Tätigkeit" & @CRLF & _ " 2 = entfällt --> " & @CRLF & _ " <INTERNAL name="KENNVMT" type="int" default="0"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Summe der Freibetraege fuer Kinder in EURO -->" & @CRLF & _ " <INTERNAL name="KFB" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Beitragssatz des Arbeitgebers zur Krankenversicherung -->" & @CRLF & _ " <INTERNAL name="KVSATZAG" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Beitragssatz des Arbeitnehmers zur Krankenversicherung -->" & @CRLF & _ " <INTERNAL name="KVSATZAN" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Kennzahl fuer die Einkommensteuer-Tabellenart:" & @CRLF & _ " 1 = Grundtabelle" & @CRLF & _ " 2 = Splittingtabelle -->" & @CRLF & _ " <INTERNAL name="KZTAB" type="int" default="0"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Jahreslohnsteuer in EURO -->" & @CRLF & _ " <INTERNAL name="LSTJAHR" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zwischenfelder der Jahreslohnsteuer in Cent -->" & @CRLF & _ " <INTERNAL name="LST1" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " <INTERNAL name="LST2" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " <INTERNAL name="LST3" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " <INTERNAL name="LSTOSO" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " <INTERNAL name="LSTSO" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Mindeststeuer fuer die Steuerklassen V und VI in EURO -->" & @CRLF & _ " <INTERNAL name="MIST" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Beitragssatz des Arbeitgebers zur Pflegeversicherung -->" & @CRLF & _ " <INTERNAL name="PVSATZAG" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Beitragssatz des Arbeitnehmers zur Pflegeversicherung -->" & @CRLF & _ " <INTERNAL name="PVSATZAN" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Beitragssatz des Arbeitnehmers in der allgemeinen gesetzlichen Rentenversicherung (4 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="RVSATZAN" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Rechenwert in Gleitkommadarstellung -->" & @CRLF & _ " <INTERNAL name="RW" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Sonderausgaben-Pauschbetrag in EURO -->" & @CRLF & _ " <INTERNAL name="SAP" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Freigrenze fuer den Solidaritaetszuschlag in EURO -->" & @CRLF & _ " <INTERNAL name="SOLZFREI" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Solidaritaetszuschlag auf die Jahreslohnsteuer in EURO, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="SOLZJ" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zwischenwert fuer den Solidaritaetszuschlag auf die Jahreslohnsteuer" & @CRLF & _ " in EURO, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="SOLZMIN" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Tarifliche Einkommensteuer in EURO -->" & @CRLF & _ " <INTERNAL name="ST" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Tarifliche Einkommensteuer auf das 1,25-fache ZX in EURO -->" & @CRLF & _ " <INTERNAL name="ST1" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Tarifliche Einkommensteuer auf das 0,75-fache ZX in EURO -->" & @CRLF & _ " <INTERNAL name="ST2" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zwischenfeld zur Ermittlung der Steuer auf Vergütungen für mehrjährige Tätigkeit -->" & @CRLF & _ " <INTERNAL name="STOVMT" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Teilbetragssatz der Vorsorgepauschale für die Rentenversicherung (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="TBSVORV" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Bemessungsgrundlage fuer den Versorgungsfreibetrag in Cents -->" & @CRLF & _ " <INTERNAL name="VBEZB" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Bemessungsgrundlage für den Versorgungsfreibetrag in Cent für" & @CRLF & _ " den sonstigen Bezug -->" & @CRLF & _ " <INTERNAL name="VBEZBSO" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Hoechstbetrag der Vorsorgepauschale nach Alterseinkuenftegesetz in EURO, C -->" & @CRLF & _ " <INTERNAL name="VHB" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Vorsorgepauschale in EURO, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="VSP" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Vorsorgepauschale nach Alterseinkuenftegesetz in EURO, C -->" & @CRLF & _ " <INTERNAL name="VSPN" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zwischenwert 1 bei der Berechnung der Vorsorgepauschale nach" & @CRLF & _ " dem Alterseinkuenftegesetz in EURO, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="VSP1" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zwischenwert 2 bei der Berechnung der Vorsorgepauschale nach" & @CRLF & _ " dem Alterseinkuenftegesetz in EURO, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="VSP2" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Vorsorgepauschale mit Teilbeträgen für die gesetzliche Kranken- und " & @CRLF & _ " soziale Pflegeversicherung nach fiktiven Beträgen oder ggf. für die" & @CRLF & _ " private Basiskrankenversicherung und private Pflege-Pflichtversicherung " & @CRLF & _ " in Euro, Cent (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="VSP3" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Erster Grenzwert in Steuerklasse V/VI in Euro -->" & @CRLF & _ " <INTERNAL name="W1STKL5" type="BigDecimal" default="new BigDecimal(0)"/> " & @CRLF & _ " " & @CRLF & _ " <!-- Zweiter Grenzwert in Steuerklasse V/VI in Euro -->" & @CRLF & _ " <INTERNAL name="W2STKL5" type="BigDecimal" default="new BigDecimal(0)"/> " & @CRLF & _ " " & @CRLF & _ " <!-- Dritter Grenzwert in Steuerklasse V/VI in Euro -->" & @CRLF & _ " <INTERNAL name="W3STKL5" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Hoechstbetrag der Vorsorgepauschale nach § 10c Abs. 2 Nr. 2 EStG in EURO -->" & @CRLF & _ " <INTERNAL name="VSPMAX1" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Hoechstbetrag der Vorsorgepauschale nach § 10c Abs. 2 Nr. 3 EStG in EURO -->" & @CRLF & _ " <INTERNAL name="VSPMAX2" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Vorsorgepauschale nach § 10c Abs. 2 Satz 2 EStG vor der Hoechstbetragsberechnung" & @CRLF & _ " in EURO, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="VSPO" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Fuer den Abzug nach § 10c Abs. 2 Nrn. 2 und 3 EStG verbleibender" & @CRLF & _ " Rest von VSPO in EURO, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="VSPREST" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Hoechstbetrag der Vorsorgepauschale nach § 10c Abs. 2 Nr. 1 EStG" & @CRLF & _ " in EURO, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="VSPVOR" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zu versteuerndes Einkommen gem. § 32a Abs. 1 und 2 EStG €, C" & @CRLF & _ " (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="X" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- gem. § 32a Abs. 1 EStG (6 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="Y" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Auf einen Jahreslohn hochgerechnetes RE4 in €, C (2 Dezimalstellen)" & @CRLF & _ " nach Abzug der Freibeträge nach § 39 b Abs. 2 Satz 3 und 4. -->" & @CRLF & _ " <INTERNAL name="ZRE4" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Auf einen Jahreslohn hochgerechnetes RE4 in €, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="ZRE4J" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Auf einen Jahreslohn hochgerechnetes RE4 in €, C (2 Dezimalstellen)" & @CRLF & _ " nach Abzug des Versorgungsfreibetrags und des Alterentlastungsbetrags" & @CRLF & _ " zur Berechnung der Vorsorgepauschale in €, Cent (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="ZRE4VP" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Feste Tabellenfreibeträge (ohne Vorsorgepauschale) in €, Cent" & @CRLF & _ " (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="ZTABFB" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Auf einen Jahreslohn hochgerechnetes (VBEZ abzueglich FVB) in" & @CRLF & _ " EURO, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="ZVBEZ" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Auf einen Jahreslohn hochgerechnetes VBEZ in €, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="ZVBEZJ" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zu versteuerndes Einkommen in €, C (2 Dezimalstellen) -->" & @CRLF & _ " <INTERNAL name="ZVE" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zwischenfelder zu X fuer die Berechnung der Steuer nach § 39b" & @CRLF & _ " Abs. 2 Satz 7 EStG in € -->" & @CRLF & _ " <INTERNAL name="ZX" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " <INTERNAL name="ZZX" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " <INTERNAL name="HOCH" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " <INTERNAL name="VERGL" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Jahreswert der berücksichtigten Beiträge zur privaten Basis-Krankenversicherung und " & @CRLF & _ " privaten Pflege-Pflichtversicherung (ggf. auch die Mindestvorsorgepauschale) in Cent. -->" & @CRLF & _ " <INTERNAL name="VKV" type="BigDecimal" default="new BigDecimal(0)"/>" & @CRLF & _ " </INTERNALS>" & @CRLF & _ " </VARIABLES>" & @CRLF & _ "" & @CRLF & _ " <CONSTANTS>" & @CRLF & _ " <!-- Tabelle fuer die Vomhundertsaetze des Versorgungsfreibetrags -->" & @CRLF & _ " <CONSTANT name="TAB1" type="BigDecimal[]" " & @CRLF & _ " value="{BigDecimal.valueOf (0.0), BigDecimal.valueOf (0.4), BigDecimal.valueOf (0.384), BigDecimal.valueOf (0.368)," & @CRLF & _ " BigDecimal.valueOf (0.352), BigDecimal.valueOf (0.336), BigDecimal.valueOf (0.32), BigDecimal.valueOf (0.304)," & @CRLF & _ " BigDecimal.valueOf (0.288), BigDecimal.valueOf (0.272), BigDecimal.valueOf (0.256), BigDecimal.valueOf (0.24), " & @CRLF & _ " BigDecimal.valueOf (0.224), BigDecimal.valueOf (0.208), BigDecimal.valueOf (0.192), BigDecimal.valueOf (0.176)," & @CRLF & _ " BigDecimal.valueOf (0.16), BigDecimal.valueOf (0.152), BigDecimal.valueOf (0.144), BigDecimal.valueOf (0.136)," & @CRLF & _ " BigDecimal.valueOf (0.128), BigDecimal.valueOf (0.12), BigDecimal.valueOf (0.112), BigDecimal.valueOf (0.104)," & @CRLF & _ " BigDecimal.valueOf (0.096), BigDecimal.valueOf (0.088), BigDecimal.valueOf (0.08), BigDecimal.valueOf (0.072)," & @CRLF & _ " BigDecimal.valueOf (0.064), BigDecimal.valueOf (0.056), BigDecimal.valueOf (0.048), BigDecimal.valueOf (0.04)," & @CRLF & _ " BigDecimal.valueOf (0.032), BigDecimal.valueOf (0.024), BigDecimal.valueOf (0.016), BigDecimal.valueOf (0.008)," & @CRLF & _ " BigDecimal.valueOf (0.0)}"/>" & @CRLF & _ "" & @CRLF & _ " <!-- Tabelle fuer die Hoechstbetrage des Versorgungsfreibetrags -->" & @CRLF & _ " <CONSTANT name="TAB2" type="BigDecimal[]" value="{BigDecimal.valueOf (0), BigDecimal.valueOf (3000), BigDecimal.valueOf (2880)," & @CRLF & _ " BigDecimal.valueOf (2760), BigDecimal.valueOf (2640), BigDecimal.valueOf (2520), BigDecimal.valueOf (2400), " & @CRLF & _ " BigDecimal.valueOf (2280), BigDecimal.valueOf (2160), BigDecimal.valueOf (2040), BigDecimal.valueOf (1920), " & @CRLF & _ " BigDecimal.valueOf (1800), BigDecimal.valueOf (1680), BigDecimal.valueOf (1560), BigDecimal.valueOf (1440), " & @CRLF & _ " BigDecimal.valueOf (1320), BigDecimal.valueOf (1200), BigDecimal.valueOf (1140), BigDecimal.valueOf (1080), " & @CRLF & _ " BigDecimal.valueOf (1020), BigDecimal.valueOf (960), BigDecimal.valueOf (900), BigDecimal.valueOf (840), " & @CRLF & _ " BigDecimal.valueOf (780), BigDecimal.valueOf (720), BigDecimal.valueOf (660), BigDecimal.valueOf (600), " & @CRLF & _ " BigDecimal.valueOf (540), BigDecimal.valueOf (480), BigDecimal.valueOf (420), BigDecimal.valueOf (360), " & @CRLF & _ " BigDecimal.valueOf (300), BigDecimal.valueOf (240), BigDecimal.valueOf (180), BigDecimal.valueOf (120), " & @CRLF & _ " BigDecimal.valueOf (60), BigDecimal.valueOf (0)}"/>" & @CRLF & _ "" & @CRLF & _ " <!-- Tabelle fuer die Zuschlaege zum Versorgungsfreibetrag -->" & @CRLF & _ " <CONSTANT name="TAB3" type="BigDecimal[]" value="{BigDecimal.valueOf (0), BigDecimal.valueOf (900), BigDecimal.valueOf (864), " & @CRLF & _ " BigDecimal.valueOf (828), BigDecimal.valueOf (792), BigDecimal.valueOf (756), BigDecimal.valueOf (720), " & @CRLF & _ " BigDecimal.valueOf (684), BigDecimal.valueOf (648), BigDecimal.valueOf (612), BigDecimal.valueOf (576), " & @CRLF & _ " BigDecimal.valueOf (540), BigDecimal.valueOf (504), BigDecimal.valueOf (468), BigDecimal.valueOf (432), " & @CRLF & _ " BigDecimal.valueOf (396), BigDecimal.valueOf (360), BigDecimal.valueOf (342), BigDecimal.valueOf (324), " & @CRLF & _ " BigDecimal.valueOf (306), BigDecimal.valueOf (288), BigDecimal.valueOf (270), BigDecimal.valueOf (252), " & @CRLF & _ " BigDecimal.valueOf (234), BigDecimal.valueOf (216), BigDecimal.valueOf (198), BigDecimal.valueOf (180), " & @CRLF & _ " BigDecimal.valueOf (162), BigDecimal.valueOf (144), BigDecimal.valueOf (126), BigDecimal.valueOf (108), " & @CRLF & _ " BigDecimal.valueOf (90), BigDecimal.valueOf (72), BigDecimal.valueOf (54), BigDecimal.valueOf (36), " & @CRLF & _ " BigDecimal.valueOf (18), BigDecimal.valueOf (0)}"/>" & @CRLF & _ "" & @CRLF & _ " <!-- Tabelle fuer die Vomhundertsaetze des Altersentlastungsbetrags -->" & @CRLF & _ " <CONSTANT name="TAB4" type="BigDecimal[]" value="{BigDecimal.valueOf (0.0), BigDecimal.valueOf (0.4), BigDecimal.valueOf (0.384)," & @CRLF & _ " BigDecimal.valueOf (0.368), BigDecimal.valueOf (0.352), BigDecimal.valueOf (0.336), BigDecimal.valueOf (0.32), " & @CRLF & _ " BigDecimal.valueOf (0.304), BigDecimal.valueOf (0.288), BigDecimal.valueOf (0.272), BigDecimal.valueOf (0.256), " & @CRLF & _ " BigDecimal.valueOf (0.24), BigDecimal.valueOf (0.224), BigDecimal.valueOf (0.208), BigDecimal.valueOf (0.192), " & @CRLF & _ " BigDecimal.valueOf (0.176), BigDecimal.valueOf (0.16), BigDecimal.valueOf (0.152), BigDecimal.valueOf (0.144), " & @CRLF & _ " BigDecimal.valueOf (0.136), BigDecimal.valueOf (0.128), BigDecimal.valueOf (0.12), BigDecimal.valueOf (0.112), " & @CRLF & _ " BigDecimal.valueOf (0.104), BigDecimal.valueOf (0.096), BigDecimal.valueOf (0.088), BigDecimal.valueOf (0.08), " & @CRLF & _ " BigDecimal.valueOf (0.072), BigDecimal.valueOf (0.064), BigDecimal.valueOf (0.056), BigDecimal.valueOf (0.048), " & @CRLF & _ " BigDecimal.valueOf (0.04), BigDecimal.valueOf (0.032), BigDecimal.valueOf (0.024), BigDecimal.valueOf (0.016), " & @CRLF & _ " BigDecimal.valueOf (0.008), BigDecimal.valueOf (0.0)}"/>" & @CRLF & _ "" & @CRLF & _ " <!-- Tabelle fuer die Hoechstbetraege des Altersentlastungsbetrags -->" & @CRLF & _ " <CONSTANT name="TAB5" type="BigDecimal[]" value="{BigDecimal.valueOf (0), BigDecimal.valueOf (1900), BigDecimal.valueOf (1824), " & @CRLF & _ " BigDecimal.valueOf (1748), BigDecimal.valueOf (1672), BigDecimal.valueOf (1596), BigDecimal.valueOf (1520), " & @CRLF & _ " BigDecimal.valueOf (1444), BigDecimal.valueOf (1368), BigDecimal.valueOf (1292), BigDecimal.valueOf (1216), " & @CRLF & _ " BigDecimal.valueOf (1140), BigDecimal.valueOf (1064), BigDecimal.valueOf (988), BigDecimal.valueOf (912), " & @CRLF & _ " BigDecimal.valueOf (836), BigDecimal.valueOf (760), BigDecimal.valueOf (722), BigDecimal.valueOf (684), " & @CRLF & _ " BigDecimal.valueOf (646), BigDecimal.valueOf (608), BigDecimal.valueOf (570), BigDecimal.valueOf (532), " & @CRLF & _ " BigDecimal.valueOf (494), BigDecimal.valueOf (456), BigDecimal.valueOf (418), BigDecimal.valueOf (380), " & @CRLF & _ " BigDecimal.valueOf (342), BigDecimal.valueOf (304), BigDecimal.valueOf (266), BigDecimal.valueOf (228), " & @CRLF & _ " BigDecimal.valueOf (190), BigDecimal.valueOf (152), BigDecimal.valueOf (114), BigDecimal.valueOf (76), " & @CRLF & _ " BigDecimal.valueOf (38), BigDecimal.valueOf (0)}"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Zahlenkonstanten fuer im Plan oft genutzte BigDecimal Werte -->" & @CRLF & _ " <CONSTANT name="ZAHL1" type="BigDecimal" value="BigDecimal.ONE"/>" & @CRLF & _ " <CONSTANT name="ZAHL2" type="BigDecimal" value="new BigDecimal(2)"/>" & @CRLF & _ " <CONSTANT name="ZAHL5" type="BigDecimal" value="new BigDecimal(5)"/>" & @CRLF & _ " <CONSTANT name="ZAHL7" type="BigDecimal" value="new BigDecimal(7)"/>" & @CRLF & _ " <CONSTANT name="ZAHL12" type="BigDecimal" value="new BigDecimal(12)"/>" & @CRLF & _ " <CONSTANT name="ZAHL100" type="BigDecimal" value="new BigDecimal(100)"/>" & @CRLF & _ " <CONSTANT name="ZAHL360" type="BigDecimal" value="new BigDecimal(360)"/>" & @CRLF & _ " <CONSTANT name="ZAHL500" type="BigDecimal" value="new BigDecimal(500)"/>" & @CRLF & _ " <CONSTANT name="ZAHL700" type="BigDecimal" value="new BigDecimal(700)"/>" & @CRLF & _ " <CONSTANT name="ZAHL1000" type="BigDecimal" value="new BigDecimal(1000)"/>" & @CRLF & _ " <CONSTANT name="ZAHL10000" type="BigDecimal" value="new BigDecimal(10000)"/>" & @CRLF & _ "" & @CRLF & _ " </CONSTANTS>" & @CRLF & _ "" & @CRLF & _ " <METHODS>" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ " <!-- PROGRAMMABLAUFPLAN, PAP Seite 13 -->" & @CRLF & _ " <!-- Neu 2016 -->" & @CRLF & _ " <MAIN>" & @CRLF & _ " <EXECUTE method="MPARA"/> " & @CRLF & _ " <EXECUTE method="MRE4JL"/>" & @CRLF & _ " <EVAL exec="VBEZBSO= BigDecimal.ZERO"/>" & @CRLF & _ " <EVAL exec="KENNVMT= 0"/>" & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ " <EXECUTE method="MRE4"/>" & @CRLF & _ " <EXECUTE method="MRE4ABZ"/>" & @CRLF & _ " <EXECUTE method="MBERECH"/>" & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ " <EXECUTE method="MSONST"/>" & @CRLF & _ " <EXECUTE method="MVMT"/>" & @CRLF & _ " </MAIN>" & @CRLF & _ "" & @CRLF & _ " <!-- Zuweisung von Werten für bestimmte Sozialversicherungsparameter PAP Seite 14 -->" & @CRLF & _ " <METHOD name="MPARA">" & @CRLF & _ " <IF expr="KRV &lt; 2"><!-- &lt; = < -->" & @CRLF & _ " <THEN>" & @CRLF & _ " <IF expr="KRV == 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="BBGRV = new BigDecimal(74400)"/> <!-- Neu 2016 -->" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="BBGRV = new BigDecimal(64800)"/> <!-- Neu 2016 -->" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="RVSATZAN = BigDecimal.valueOf(0.0935)"/>" & @CRLF & _ " <EVAL exec="TBSVORV = BigDecimal.valueOf(0.64)"/> <!-- Neu 2016 -->" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <!-- Nichts zu tun -->" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " " & @CRLF & _ " <EVAL exec="BBGKVPV = new BigDecimal(50850)"/> <!-- Neu 2016 -->" & @CRLF & _ " <EVAL exec="KVSATZAN = (KVZ.divide(ZAHL100)).add(BigDecimal.valueOf(0.07))"/>" & @CRLF & _ " <EVAL exec="KVSATZAG = BigDecimal.valueOf(0.07)"/>" & @CRLF & _ " " & @CRLF & _ " <IF expr="PVS == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="PVSATZAN = BigDecimal.valueOf(0.01675)"/>" & @CRLF & _ " <EVAL exec="PVSATZAG = BigDecimal.valueOf(0.00675)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="PVSATZAN = BigDecimal.valueOf(0.01175)"/>" & @CRLF & _ " <EVAL exec="PVSATZAG = BigDecimal.valueOf(0.01175)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="PVZ == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="PVSATZAN = PVSATZAN.add(BigDecimal.valueOf(0.0025))"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " " & @CRLF & _ " <!-- Anfang Neu 2016 --> " & @CRLF & _ " <EVAL exec="W1STKL5 = new BigDecimal(10070)"/>" & @CRLF & _ " <EVAL exec="W2STKL5 = new BigDecimal(26832)"/>" & @CRLF & _ " <EVAL exec="W3STKL5 = new BigDecimal(203557)"/>" & @CRLF & _ " <EVAL exec="GFB = new BigDecimal(8652)"/>" & @CRLF & _ " <EVAL exec="SOLZFREI = new BigDecimal(972)"/>" & @CRLF & _ " <!-- Ende Neu 2016 -->" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Ermittlung des Jahresarbeitslohns nach § 39 b Abs. 2 Satz 2 EStG, PAP Seite 15 -->" & @CRLF & _ " <METHOD name="MRE4JL">" & @CRLF & _ " <IF expr="LZZ == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ZRE4J= RE4.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="ZVBEZJ= VBEZ.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="JLFREIB= LZZFREIB.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="JLHINZU= LZZHINZU.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="LZZ == 2">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ZRE4J= (RE4.multiply (ZAHL12)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="ZVBEZJ= (VBEZ.multiply (ZAHL12)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="JLFREIB= (LZZFREIB.multiply (ZAHL12)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="JLHINZU= (LZZHINZU.multiply (ZAHL12)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="LZZ == 3">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ZRE4J= (RE4.multiply (ZAHL360)).divide (ZAHL700, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="ZVBEZJ= (VBEZ.multiply (ZAHL360)).divide (ZAHL700, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="JLFREIB= (LZZFREIB.multiply (ZAHL360)).divide (ZAHL700, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="JLHINZU= (LZZHINZU.multiply (ZAHL360)).divide (ZAHL700, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="ZRE4J= (RE4.multiply (ZAHL360)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="ZVBEZJ= (VBEZ.multiply (ZAHL360)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="JLFREIB= (LZZFREIB.multiply (ZAHL360)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="JLHINZU= (LZZHINZU.multiply (ZAHL360)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="af == 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="f= 1"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Freibeträge für Versorgungsbezüge, Altersentlastungsbetrag (§ 39b Abs. 2 Satz 3 EStG), PAP Seite 16 -->" & @CRLF & _ " <METHOD name="MRE4">" & @CRLF & _ " <IF expr="ZVBEZJ.compareTo (BigDecimal.ZERO) == 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="FVBZ= BigDecimal.ZERO"/>" & @CRLF & _ " <EVAL exec="FVB= BigDecimal.ZERO"/>" & @CRLF & _ " <EVAL exec="FVBZSO= BigDecimal.ZERO"/>" & @CRLF & _ " <EVAL exec="FVBSO= BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="VJAHR &lt; 2006">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="J= 1"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="VJAHR &lt; 2040">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="J= VJAHR - 2004"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="J= 36"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="LZZ == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="VBEZB= (VBEZM.multiply (BigDecimal.valueOf (ZMVB))).add (VBEZS)"/>" & @CRLF & _ " <EVAL exec="HFVB= TAB2[J].divide (ZAHL12).multiply (BigDecimal.valueOf (ZMVB))"/>" & @CRLF & _ " <EVAL exec="FVBZ= TAB3[J].divide (ZAHL12).multiply (BigDecimal.valueOf (ZMVB)).setScale (0, BigDecimal.ROUND_UP)"/>" & @CRLF & _ " </THEN> " & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="VBEZB= ((VBEZM.multiply (ZAHL12)).add (VBEZS)).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="HFVB= TAB2[J]"/>" & @CRLF & _ " <EVAL exec="FVBZ= TAB3[J]"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="FVB= ((VBEZB.multiply (TAB1[J]))).divide (ZAHL100).setScale (2, BigDecimal.ROUND_UP)"/>" & @CRLF & _ " <IF expr="FVB.compareTo (HFVB) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="FVB = HFVB"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " " & @CRLF & _ " <!-- Anfang Neu 2016 -->" & @CRLF & _ " <IF expr="FVB.compareTo (ZVBEZJ) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="FVB = ZVBEZJ"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <!-- Ende Neu 2016 -->" & @CRLF & _ " " & @CRLF & _ " <EVAL exec="FVBSO= (FVB.add((VBEZBSO.multiply (TAB1[J])).divide (ZAHL100))).setScale (2, BigDecimal.ROUND_UP)"/>" & @CRLF & _ " <IF expr="FVBSO.compareTo (TAB2[J]) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="FVBSO = TAB2[J]"/>" & @CRLF & _ " </THEN> " & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="HFVBZSO= (((VBEZB.add(VBEZBSO)).divide (ZAHL100)).subtract (FVBSO)).setScale (2, BigDecimal.ROUND_DOWN)"/> " & @CRLF & _ " <EVAL exec="FVBZSO= (FVBZ.add((VBEZBSO).divide (ZAHL100))).setScale (0, BigDecimal.ROUND_UP)"/>" & @CRLF & _ " <IF expr="FVBZSO.compareTo (HFVBZSO) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="FVBZSO = HFVBZSO.setScale(0, BigDecimal.ROUND_UP)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="FVBZSO.compareTo (TAB3[J]) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="FVBZSO = TAB3[J]"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF> " & @CRLF & _ " <EVAL exec="HFVBZ= ((VBEZB.divide (ZAHL100)).subtract (FVB)).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <IF expr="FVBZ.compareTo (HFVBZ) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="FVBZ = HFVBZ.setScale (0, BigDecimal.ROUND_UP)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <EXECUTE method="MRE4ALTE"/>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Altersentlastungsbetrag (§ 39b Abs. 2 Satz 3 EStG), PAP Seite 17 -->" & @CRLF & _ " <METHOD name="MRE4ALTE">" & @CRLF & _ " <IF expr="ALTER1 == 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ALTE= BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="AJAHR &lt; 2006">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="K= 1"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="AJAHR &lt; 2040">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="K= AJAHR - 2004"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="K= 36"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="BMG= ZRE4J.subtract (ZVBEZJ)"/>" & @CRLF & _ " <!-- Lt. PAP muss hier auf ganze EUR gerundet werden -->" & @CRLF & _ " <EVAL exec="ALTE = (BMG.multiply(TAB4[K])).setScale(0, BigDecimal.ROUND_UP)"/>" & @CRLF & _ " <EVAL exec="HBALTE= TAB5[K]"/>" & @CRLF & _ " <IF expr="ALTE.compareTo (HBALTE) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ALTE= HBALTE"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Ermittlung des Jahresarbeitslohns nach Abzug der Freibeträge nach § 39 b Abs. 2 Satz 3 und 4 EStG, PAP Seite 19 -->" & @CRLF & _ " <METHOD name="MRE4ABZ"> " & @CRLF & _ " <EVAL exec="ZRE4= (ZRE4J.subtract (FVB).subtract (ALTE).subtract (JLFREIB).add (JLHINZU)).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <IF expr="ZRE4.compareTo (BigDecimal.ZERO) == -1"> " & @CRLF & _ " <THEN> " & @CRLF & _ " <EVAL exec="ZRE4= BigDecimal.ZERO"/> " & @CRLF & _ " </THEN> " & @CRLF & _ " </IF> " & @CRLF & _ " <EVAL exec="ZRE4VP= ZRE4J"/>" & @CRLF & _ "" & @CRLF & _ " <IF expr="KENNVMT == 2"> " & @CRLF & _ " <THEN> " & @CRLF & _ " <EVAL exec="ZRE4VP = ZRE4VP.subtract(ENTSCH.divide(ZAHL100)).setScale(2,BigDecimal.ROUND_DOWN)"/> " & @CRLF & _ " </THEN> " & @CRLF & _ " </IF>" & @CRLF & _ "" & @CRLF & _ " <EVAL exec="ZVBEZ = ZVBEZJ.subtract(FVB).setScale(2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ "" & @CRLF & _ " <IF expr="ZVBEZ.compareTo(BigDecimal.ZERO) == -1"> " & @CRLF & _ " <THEN> " & @CRLF & _ " <EVAL exec="ZVBEZ = BigDecimal.ZERO"/> " & @CRLF & _ " </THEN> " & @CRLF & _ " </IF> " & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Berechnung fuer laufende Lohnzahlungszeitraueme Seite 20-->" & @CRLF & _ " <METHOD name="MBERECH"> " & @CRLF & _ "" & @CRLF & _ " <EXECUTE method="MZTABFB"/> <!-- Neu 2016 -->" & @CRLF & _ " <EVAL exec="VFRB = ((ANP.add(FVB.add(FVBZ))).multiply(ZAHL100)).setScale(0, BigDecimal.ROUND_DOWN)"/><!-- Neu 2016 -->" & @CRLF & _ " <EXECUTE method="MLSTJAHR"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Anfang Neu 2016 -->" & @CRLF & _ " <EVAL exec="WVFRB = ((ZVE.subtract(GFB)).multiply(ZAHL100)).setScale(0, BigDecimal.ROUND_DOWN)"/> " & @CRLF & _ " <IF expr="WVFRB.compareTo(BigDecimal.ZERO) == -1"> <!-- WVFRB < 0 -->" & @CRLF & _ " <THEN> " & @CRLF & _ " <EVAL exec="WVFRB = BigDecimal.valueOf(0)"/> " & @CRLF & _ " </THEN> " & @CRLF & _ " </IF> " & @CRLF & _ " <!-- Ende Neu 2016 -->" & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ " <EVAL exec="LSTJAHR = (ST.multiply(BigDecimal.valueOf(f))).setScale(0,BigDecimal.ROUND_DOWN)"/> " & @CRLF & _ " <EXECUTE method="UPLSTLZZ"/>" & @CRLF & _ " <EXECUTE method="UPVKVLZZ"/>" & @CRLF & _ " " & @CRLF & _ " <IF expr="ZKF.compareTo(BigDecimal.ZERO) == 1"> <!-- ZKF > 0 -->" & @CRLF & _ " <THEN> " & @CRLF & _ " <EVAL exec="ZTABFB = ZTABFB.add(KFB)"/> " & @CRLF & _ " <EXECUTE method="MRE4ABZ"/>" & @CRLF & _ " <EXECUTE method="MLSTJAHR"/>" & @CRLF & _ " <EVAL exec="JBMG = (ST.multiply(BigDecimal.valueOf(f))).setScale(0,BigDecimal.ROUND_DOWN)"/> " & @CRLF & _ " </THEN> " & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="JBMG = LSTJAHR"/> " & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF> " & @CRLF & _ " " & @CRLF & _ " <EXECUTE method="MSOLZ"/>" & @CRLF & _ " " & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ "<!-- Ermittlung der festen Tabellenfreibeträge (ohne Vorsorgepauschale), PAP Seite 21 -->" & @CRLF & _ " <METHOD name="MZTABFB"> " & @CRLF & _ " <EVAL exec="ANP= BigDecimal.ZERO"/>" & @CRLF & _ " <IF expr="ZVBEZ.compareTo (BigDecimal.ZERO) &gt;= 0 &amp;&amp; ZVBEZ.compareTo(FVBZ) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="FVBZ = BigDecimal.valueOf(ZVBEZ.longValue())"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="STKL &lt; 6">" & @CRLF & _ " <THEN>" & @CRLF & _ " <IF expr="ZVBEZ.compareTo (BigDecimal.ZERO) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <IF expr="(ZVBEZ.subtract (FVBZ)).compareTo (BigDecimal.valueOf (102)) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ANP= (ZVBEZ.subtract (FVBZ)).setScale (0, BigDecimal.ROUND_UP)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="ANP= BigDecimal.valueOf (102)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="FVBZ= BigDecimal.valueOf (0)"/>" & @CRLF & _ " <EVAL exec="FVBZSO= BigDecimal.valueOf (0)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="STKL &lt; 6">" & @CRLF & _ " <THEN>" & @CRLF & _ " <IF expr="ZRE4.compareTo(ZVBEZ) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <IF expr="ZRE4.subtract(ZVBEZ).compareTo(ZAHL1000) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ANP = ANP.add(ZRE4).subtract(ZVBEZ).setScale(0,BigDecimal.ROUND_UP)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="ANP = ANP.add(ZAHL1000)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="KZTAB= 1"/>" & @CRLF & _ " <IF expr="STKL == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="SAP= BigDecimal.valueOf (36)"/>" & @CRLF & _ " <EVAL exec="KFB= (ZKF.multiply (BigDecimal.valueOf (7248))).setScale (0, BigDecimal.ROUND_DOWN)"/> <!-- Neu 2016 -->" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="STKL == 2">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="EFA= BigDecimal.valueOf (1908)"/>" & @CRLF & _ " <EVAL exec="SAP= BigDecimal.valueOf (36)"/>" & @CRLF & _ " <EVAL exec="KFB= (ZKF.multiply (BigDecimal.valueOf (7248))).setScale (0, BigDecimal.ROUND_DOWN)"/> <!-- Neu 2016 -->" & @CRLF & _ " </THEN>" & @CRLF & _ " " & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="STKL == 3">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="KZTAB= 2"/>" & @CRLF & _ " <EVAL exec="SAP= BigDecimal.valueOf (36)"/>" & @CRLF & _ " <EVAL exec="KFB= (ZKF.multiply (BigDecimal.valueOf (7248))).setScale (0, BigDecimal.ROUND_DOWN)"/> <!-- Neu 2016 -->" & @CRLF & _ " </THEN>" & @CRLF & _ " " & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="STKL == 4">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="SAP= BigDecimal.valueOf (36)"/>" & @CRLF & _ " <EVAL exec="KFB= (ZKF.multiply (BigDecimal.valueOf (3624))).setScale (0, BigDecimal.ROUND_DOWN)"/> <!-- Neu 2016 -->" & @CRLF & _ " </THEN> " & @CRLF & _ " " & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="STKL == 5">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="SAP= BigDecimal.valueOf (36)"/>" & @CRLF & _ " <EVAL exec="KFB= BigDecimal.ZERO"/>" & @CRLF & _ " </THEN> " & @CRLF & _ " " & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="KFB= BigDecimal.ZERO"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE> " & @CRLF & _ " </IF> " & @CRLF & _ " </ELSE> " & @CRLF & _ " </IF> " & @CRLF & _ " </ELSE> " & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="ZTABFB= (EFA.add (ANP).add (SAP).add (FVBZ)).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Ermittlung Jahreslohnsteuer, PAP Seite 22 -->" & @CRLF & _ " <METHOD name="MLSTJAHR">" & @CRLF & _ " <EXECUTE method="UPEVP"/>" & @CRLF & _ " <IF expr="KENNVMT != 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ZVE= (ZRE4.subtract (ZTABFB).subtract (VSP)).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EXECUTE method="UPMLST"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="ZVE= (ZRE4.subtract (ZTABFB).subtract (VSP).subtract ((VMT).divide (ZAHL100)).subtract ((VKAPA).divide (ZAHL100))).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <IF expr="ZVE.compareTo (BigDecimal.ZERO) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec=" ZVE = ZVE.add(VMT.divide(ZAHL100)).add(VKAPA.divide(ZAHL100)).divide(ZAHL5).setScale(2,BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EXECUTE method="UPMLST"/>" & @CRLF & _ " <EVAL exec="ST= (ST.multiply (ZAHL5)).setScale (0, BigDecimal.ROUND_DOWN)"/> " & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EXECUTE method="UPMLST"/>" & @CRLF & _ " <EVAL exec="STOVMT= ST"/>" & @CRLF & _ " <EVAL exec="ZVE= (ZVE.add(((VMT.add (VKAPA)).divide (ZAHL500)))).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EXECUTE method="UPMLST"/>" & @CRLF & _ " <EVAL exec="ST= (((ST.subtract (STOVMT)).multiply (ZAHL5)).add (STOVMT)).setScale (0, BigDecimal.ROUND_DOWN)"/> " & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF> " & @CRLF & _ " </METHOD>" & @CRLF & _ " " & @CRLF & _ " <!-- PAP Seite 23 --> " & @CRLF & _ " <METHOD name="UPVKVLZZ">" & @CRLF & _ " <EXECUTE method="UPVKV"/>" & @CRLF & _ " <EVAL exec="JW = VKV"/>" & @CRLF & _ " <EXECUTE method="UPANTEIL"/>" & @CRLF & _ " <EVAL exec="VKVLZZ = ANTEIL1"/>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- PAP Seite 23 --> " & @CRLF & _ " <METHOD name="UPVKV">" & @CRLF & _ " <IF expr="PKV &gt; 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <IF expr="VSP2.compareTo(VSP3) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="VKV = VSP2.multiply(ZAHL100)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="VKV = VSP3.multiply(ZAHL100)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="VKV = BigDecimal.ZERO"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </METHOD>" & @CRLF & _ " " & @CRLF & _ " <!-- PAP Seite 24 -->" & @CRLF & _ " <!-- Neu 2016 -->" & @CRLF & _ " <METHOD name="UPLSTLZZ">" & @CRLF & _ " <EVAL exec="JW = LSTJAHR.multiply(ZAHL100)"/> " & @CRLF & _ " <EXECUTE method="UPANTEIL"/>" & @CRLF & _ " <EVAL exec="LSTLZZ = ANTEIL1"/>" & @CRLF & _ " </METHOD>" & @CRLF & _ " " & @CRLF & _ " <!-- Ermittlung der Jahreslohnsteuer aus dem Einkommensteuertarif. PAP Seite 25 -->" & @CRLF & _ " <METHOD name="UPMLST">" & @CRLF & _ " <IF expr="ZVE.compareTo (ZAHL1) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ZVE= BigDecimal.ZERO"/>" & @CRLF & _ " <EVAL exec="X= BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="X= (ZVE.divide (BigDecimal.valueOf(KZTAB))).setScale (0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="STKL &lt; 5">" & @CRLF & _ " <THEN>" & @CRLF & _ " " & @CRLF & _ " <!-- Neu 2016 -->" & @CRLF & _ " <EXECUTE method="UPTAB16"/> " & @CRLF & _ "" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EXECUTE method="MST5_6"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </METHOD> " & @CRLF & _ "" & @CRLF & _ " <!-- Vorsorgepauschale (§ 39b Absatz 2 Satz 5 Nummer 3 und Absatz 4 EStG)" & @CRLF & _ " Achtung: Es wird davon ausgegangen, dass " & @CRLF & _ " a) Es wird davon ausge-gangen, dassa) für die BBG (Ost) 60.000 Euro und für die BBG (West) 71.400 Euro festgelegt wird sowie" & @CRLF & _ " b) der Beitragssatz zur Rentenversicherung auf 18,9 % gesenkt wird." & @CRLF & _ " " & @CRLF & _ " PAP Seite 26 -->" & @CRLF & _ " <METHOD name="UPEVP">" & @CRLF & _ " <IF expr="KRV &gt; 1"><!-- &lt; = < &gt; = > -->" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="VSP1= BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE> " & @CRLF & _ " <IF expr="ZRE4VP.compareTo(BBGRV) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ZRE4VP = BBGRV"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="VSP1 = (TBSVORV.multiply(ZRE4VP)).setScale(2,BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="VSP1 = (VSP1.multiply(RVSATZAN)).setScale(2,BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="VSP2 = (ZRE4VP.multiply(BigDecimal.valueOf(0.12))).setScale(2,BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <IF expr="STKL == 3">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="VHB = BigDecimal.valueOf(3000)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="VHB = BigDecimal.valueOf(1900)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="VSP2.compareTo (VHB) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="VSP2= VHB"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="VSPN= (VSP1.add (VSP2)).setScale (0, BigDecimal.ROUND_UP)"/>" & @CRLF & _ " <EXECUTE method="MVSP"/>" & @CRLF & _ " <IF expr="VSPN.compareTo (VSP) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="VSP= VSPN.setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " </METHOD>" & @CRLF & _ " " & @CRLF & _ " <!-- Vorsorgepauschale (§39b Abs. 2 Satz 5 Nr 3 EStG) Vergleichsberechnung fuer Guenstigerpruefung, PAP Seite 27 -->" & @CRLF & _ " <METHOD name="MVSP">" & @CRLF & _ " <IF expr="ZRE4VP.compareTo(BBGKVPV) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ZRE4VP = BBGKVPV"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ "" & @CRLF & _ " <IF expr="PKV &gt; 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <IF expr="STKL == 6">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="VSP3 = BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="VSP3 = PKPV.multiply(ZAHL12).divide(ZAHL100)"/>" & @CRLF & _ " <IF expr="PKV == 2">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="VSP3 = VSP3.subtract( ZRE4VP.multiply( KVSATZAG.add(PVSATZAG))).setScale(2,BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </THEN> " & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="VSP3 = ZRE4VP.multiply(KVSATZAN.add(PVSATZAN)).setScale(2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="VSP = VSP3.add(VSP1).setScale(0, BigDecimal.ROUND_UP)"/>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Lohnsteuer fuer die Steuerklassen V und VI (§ 39b Abs. 2 Satz 7 EStG), PAP Seite 28 -->" & @CRLF & _ " <METHOD name="MST5_6">" & @CRLF & _ " <EVAL exec="ZZX= X"/>" & @CRLF & _ " <IF expr="ZZX.compareTo(W2STKL5) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ZX= W2STKL5"/>" & @CRLF & _ " <EXECUTE method="UP5_6"/>" & @CRLF & _ " <IF expr="ZZX.compareTo (W3STKL5) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ST= (ST.add ((W3STKL5.subtract (W2STKL5)).multiply (BigDecimal.valueOf (0.42)))).setScale (0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="ST= (ST.add ((ZZX.subtract (W3STKL5)).multiply (BigDecimal.valueOf (0.45)))).setScale (0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="ST= (ST.add ((ZZX.subtract (W2STKL5)).multiply (BigDecimal.valueOf (0.42)))).setScale (0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="ZX= ZZX"/>" & @CRLF & _ " <EXECUTE method="UP5_6"/>" & @CRLF & _ " <IF expr="ZZX.compareTo (W1STKL5) == 1"> " & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="VERGL= ST"/>" & @CRLF & _ " <EVAL exec="ZX= W1STKL5"/> " & @CRLF & _ " <EXECUTE method="UP5_6"/>" & @CRLF & _ " <EVAL exec="HOCH= (ST.add ((ZZX.subtract (W1STKL5)).multiply (BigDecimal.valueOf (0.42)))).setScale (0, BigDecimal.ROUND_DOWN)"/> <!-- Neuer Wert 2014 -->" & @CRLF & _ " <IF expr="HOCH.compareTo (VERGL) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ST= HOCH"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="ST= VERGL"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Unterprogramm zur Lohnsteuer fuer die Steuerklassen V und VI (§ 39b Abs. 2 Satz 7 EStG), PAP Seite 29 -->" & @CRLF & _ " <METHOD name="UP5_6">" & @CRLF & _ " <EVAL exec="X= (ZX.multiply (BigDecimal.valueOf (1.25))).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Neu 2016 -->" & @CRLF & _ " <EXECUTE method="UPTAB16"/> " & @CRLF & _ " " & @CRLF & _ " <EVAL exec="ST1= ST"/>" & @CRLF & _ " <EVAL exec="X= (ZX.multiply (BigDecimal.valueOf (0.75))).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Neu 2016 -->" & @CRLF & _ " <EXECUTE method="UPTAB16"/> " & @CRLF & _ " " & @CRLF & _ " <EVAL exec="ST2= ST"/>" & @CRLF & _ " <EVAL exec="DIFF= (ST1.subtract (ST2)).multiply (ZAHL2)"/>" & @CRLF & _ " <EVAL exec="MIST= (ZX.multiply (BigDecimal.valueOf (0.14))).setScale (0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <IF expr="MIST.compareTo (DIFF) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ST= MIST"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="ST= DIFF"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Solidaritaetszuschlag, PAP Seite 30 -->" & @CRLF & _ " <METHOD name="MSOLZ">" & @CRLF & _ " <EVAL exec="SOLZFREI = (SOLZFREI.multiply(BigDecimal.valueOf(KZTAB)))"/> <!-- Neu 2016 -->" & @CRLF & _ " <IF expr="JBMG.compareTo (SOLZFREI) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="SOLZJ= (JBMG.multiply (BigDecimal.valueOf (5.5))).divide(ZAHL100).setScale(2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="SOLZMIN= (JBMG.subtract (SOLZFREI)).multiply (BigDecimal.valueOf (20)).divide (ZAHL100).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <IF expr="SOLZMIN.compareTo (SOLZJ) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="SOLZJ= SOLZMIN"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="JW= SOLZJ.multiply (ZAHL100).setScale (0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " " & @CRLF & _ " <EXECUTE method="UPANTEIL"/>" & @CRLF & _ " " & @CRLF & _ " <EVAL exec="SOLZLZZ= ANTEIL1"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="SOLZLZZ= BigDecimal.ZERO"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="R &gt; 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="JW= JBMG.multiply (ZAHL100)"/> " & @CRLF & _ " " & @CRLF & _ " <EXECUTE method="UPANTEIL"/>" & @CRLF & _ " <EVAL exec="BK= ANTEIL1"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="BK= BigDecimal.ZERO"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Anteil von Jahresbetraegen fuer einen LZZ (§ 39b Abs. 2 Satz 9 EStG), PAP Seite 31 -->" & @CRLF & _ " <METHOD name="UPANTEIL">" & @CRLF & _ " <IF expr="LZZ == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ANTEIL1= JW"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="LZZ == 2">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ANTEIL1= JW.divide (ZAHL12, 0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="LZZ == 3">" & @CRLF & _ " <THEN> " & @CRLF & _ " <EVAL exec="ANTEIL1= (JW.multiply (ZAHL7)).divide (ZAHL360, 0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="ANTEIL1= JW.divide (ZAHL360, 0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Berechnung sonstiger Bezuege nach § 39b Abs. 3 Saetze 1 bis 8 EStG), PAP Seite 32 -->" & @CRLF & _ " <METHOD name="MSONST">" & @CRLF & _ " <EVAL exec="LZZ= 1"/>" & @CRLF & _ " <IF expr="ZMVB == 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ZMVB= 12"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="SONSTB.compareTo (BigDecimal.ZERO) == 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="VKVSONST= BigDecimal.ZERO"/>" & @CRLF & _ " <EVAL exec="LSTSO= BigDecimal.ZERO"/>" & @CRLF & _ " <EVAL exec="STS= BigDecimal.ZERO"/>" & @CRLF & _ " <EVAL exec="SOLZS= BigDecimal.ZERO"/>" & @CRLF & _ " <EVAL exec="BKS= BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EXECUTE method="MOSONST"/>" & @CRLF & _ " <EXECUTE method="UPVKV"/>" & @CRLF & _ " <EVAL exec="VKVSONST = VKV"/>" & @CRLF & _ " <EVAL exec="ZRE4J= ((JRE4.add (SONSTB)).divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="ZVBEZJ= ((JVBEZ.add (VBS)).divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="VBEZBSO= STERBE"/>" & @CRLF & _ " <EXECUTE method="MRE4SONST"/>" & @CRLF & _ " <EXECUTE method="MLSTJAHR"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Anfang Neu 2016 -->" & @CRLF & _ " <EVAL exec="WVFRBM = (ZVE.subtract(GFB)).multiply(ZAHL100).setScale(2,BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <IF expr="WVFRBM.compareTo(BigDecimal.ZERO) == -1"> <!-- WVFRBM < 0 -->" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="WVFRBM = BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <!-- Ende Neu 2016 -->" & @CRLF & _ " " & @CRLF & _ " <EXECUTE method="UPVKV"/>" & @CRLF & _ " <EVAL exec="VKVSONST = VKV.subtract(VKVSONST)"/>" & @CRLF & _ " <EVAL exec="LSTSO= ST.multiply (ZAHL100)"/>" & @CRLF & _ " <!-- lt. PAP muss hier auf ganze EUR aufgerundet werden, " & @CRLF & _ " allerdings muss der Wert in Cent vorgehalten werden," & @CRLF & _ " deshalb nach dem Aufrunden auf ganze EUR durch 'divide(ZAHL100, 0, BigDecimal.ROUND_DOWN)'" & @CRLF & _ " wieder die Multiplikation mit 100 -->" & @CRLF & _ " <EVAL exec="STS = LSTSO.subtract(LSTOSO).multiply(BigDecimal.valueOf(f)).divide(ZAHL100, 0, BigDecimal.ROUND_DOWN).multiply(ZAHL100)"/>" & @CRLF & _ " <IF expr="STS.compareTo (BigDecimal.ZERO) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="STS= BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="SOLZS= STS.multiply (BigDecimal.valueOf (5.5)).divide (ZAHL100, 0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <IF expr="R &gt; 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="BKS= STS"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="BKS= BigDecimal.ZERO"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Berechnung der Verguetung fuer mehrjaehrige Taetigkeit nach § 39b Abs. 3 Satz 9 und 10 EStG), PAP Seite 33 -->" & @CRLF & _ " <METHOD name="MVMT">" & @CRLF & _ " <IF expr="VKAPA.compareTo (BigDecimal.ZERO) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="VKAPA= BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="(VMT.add (VKAPA)).compareTo (BigDecimal.ZERO) == 1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <IF expr="LSTSO.compareTo (BigDecimal.ZERO) == 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EXECUTE method="MOSONST"/>" & @CRLF & _ " <EVAL exec="LST1= LSTOSO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="LST1= LSTSO"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="VBEZBSO= STERBE.add (VKAPA)"/>" & @CRLF & _ " <EVAL exec="ZRE4J= ((JRE4.add (SONSTB).add (VMT).add (VKAPA)).divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="ZVBEZJ= ((JVBEZ.add (VBS).add (VKAPA)).divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="KENNVMT = 2"/>" & @CRLF & _ " <EXECUTE method="MRE4SONST"/>" & @CRLF & _ " <EXECUTE method="MLSTJAHR"/>" & @CRLF & _ " <EVAL exec="LST3= ST.multiply (ZAHL100)"/>" & @CRLF & _ " <EXECUTE method="MRE4ABZ"/>" & @CRLF & _ " <EVAL exec="ZRE4VP = ZRE4VP.subtract(JRE4ENT.divide(ZAHL100)).subtract(SONSTENT.divide(ZAHL100))"/>" & @CRLF & _ " <EVAL exec="KENNVMT= 1"/>" & @CRLF & _ " <EXECUTE method="MLSTJAHR"/>" & @CRLF & _ " <EVAL exec="LST2= ST.multiply (ZAHL100)"/>" & @CRLF & _ " <EVAL exec="STV= LST2.subtract (LST1)"/> " & @CRLF & _ " <EVAL exec="LST3= LST3.subtract (LST1)"/>" & @CRLF & _ " <IF expr="LST3.compareTo (STV) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="STV= LST3"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <IF expr="STV.compareTo (BigDecimal.ZERO) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="STV= BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <!-- " & @CRLF & _ " lt. PAP muss hier auf ganze EUR abgerundet werden." & @CRLF & _ " Allerdings muss auch hier der Wert in Cent vorgehalten werden," & @CRLF & _ " weshalb nach dem Aufrunden auf ganze EUR durch 'divide(ZAHL100, 0, BigDecimal.ROUND_DOWN)'" & @CRLF & _ " wieder die Multiplikation mit 100 erfolgt." & @CRLF & _ " -->" & @CRLF & _ " <EVAL exec="STV = STV.multiply(BigDecimal.valueOf(f)).divide(ZAHL100, 0, BigDecimal.ROUND_DOWN).multiply(ZAHL100)"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="SOLZV= ((STV.multiply (BigDecimal.valueOf (5.5))).divide (ZAHL100)).setScale (0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <IF expr="R &gt; 0">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="BKV= STV"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="BKV= BigDecimal.ZERO"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE> " & @CRLF & _ " <EVAL exec="STV= BigDecimal.ZERO"/>" & @CRLF & _ " <EVAL exec="SOLZV= BigDecimal.ZERO"/>" & @CRLF & _ " <EVAL exec="BKV= BigDecimal.ZERO"/>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Sonderberechnung ohne sonstige Bezüge für Berechnung bei sonstigen Bezügen oder Vergütung für mehrjährige Tätigkeit, PAP Seite 34 -->" & @CRLF & _ " <METHOD name="MOSONST">" & @CRLF & _ " <EVAL exec="ZRE4J= (JRE4.divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="ZVBEZJ= (JVBEZ.divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="JLFREIB= JFREIB.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="JLHINZU= JHINZU.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EXECUTE method="MRE4"/>" & @CRLF & _ " <EXECUTE method="MRE4ABZ"/>" & @CRLF & _ " <EVAL exec="ZRE4VP = ZRE4VP.subtract(JRE4ENT.divide(ZAHL100))"/>" & @CRLF & _ " <EXECUTE method="MZTABFB"/> <!-- Neu 2016 -->" & @CRLF & _ " <EVAL exec="VFRBS1 = ((ANP.add(FVB.add(FVBZ))).multiply(ZAHL100)).setScale(2,BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EXECUTE method="MLSTJAHR"/>" & @CRLF & _ " " & @CRLF & _ " <!-- Anfang Neu 2016 -->" & @CRLF & _ " <EVAL exec="WVFRBO = ((ZVE.subtract(GFB)).multiply(ZAHL100)).setScale(2, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <IF expr="WVFRBO.compareTo(BigDecimal.ZERO) == -1 ">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="WVFRBO = BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " </IF>" & @CRLF & _ " <!-- Ende Neu 2016 -->" & @CRLF & _ " " & @CRLF & _ " <EVAL exec="LSTOSO= ST.multiply (ZAHL100)"/>" & @CRLF & _ " </METHOD>" & @CRLF & _ "" & @CRLF & _ " <!-- Sonderberechnung mit sonstige Bezüge für Berechnung bei sonstigen Bezügen oder Vergütung für mehrjährige Tätigkeit, PAP Seite 35 -->" & @CRLF & _ " <METHOD name="MRE4SONST">" & @CRLF & _ " <EXECUTE method="MRE4"/>" & @CRLF & _ " <EVAL exec="FVB= FVBSO"/>" & @CRLF & _ " <EXECUTE method="MRE4ABZ"/>" & @CRLF & _ " <EVAL exec="ZRE4VP = ZRE4VP.subtract(JRE4ENT.divide(ZAHL100)).subtract(SONSTENT.divide(ZAHL100))"/>" & @CRLF & _ " <EVAL exec="FVBZ= FVBZSO"/>" & @CRLF & _ " <EXECUTE method="MZTABFB"/> <!-- Neu 2016 -->" & @CRLF & _ " <EVAL exec="VFRBS2 = ((((ANP.add(FVB).add(FVBZ))).multiply(ZAHL100))).subtract(VFRBS1)"/>" & @CRLF & _ " </METHOD>" & @CRLF & _ " " & @CRLF & _ " <!-- Komplett Neu 2016 -->" & @CRLF & _ " <!-- Tarifliche Einkommensteuer §32a EStG, PAP Seite 36 -->" & @CRLF & _ " <METHOD name="UPTAB16">" & @CRLF & _ " <IF expr="X.compareTo(GFB.add(ZAHL1)) == -1"> " & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ST= BigDecimal.ZERO"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="X.compareTo (BigDecimal.valueOf (13670)) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="Y = (X.subtract(GFB)).divide(ZAHL10000, 6,BigDecimal.ROUND_DOWN)"/> " & @CRLF & _ " <EVAL exec="RW= Y.multiply (BigDecimal.valueOf (993.62))"/> " & @CRLF & _ " <EVAL exec="RW= RW.add (BigDecimal.valueOf (1400))"/>" & @CRLF & _ " <EVAL exec="ST= (RW.multiply (Y)).setScale (0, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="X.compareTo (BigDecimal.valueOf (53666)) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="Y= (X.subtract (BigDecimal.valueOf (13669))).divide (ZAHL10000, 6, BigDecimal.ROUND_DOWN)"/>" & @CRLF & _ " <EVAL exec="RW= Y.multiply (BigDecimal.valueOf (225.40))"/>" & @CRLF & _ " <EVAL exec="RW= RW.add (BigDecimal.valueOf (2397))"/>" & @CRLF & _ " <EVAL exec="RW= RW.multiply (Y)"/>" & @CRLF & _ " <EVAL exec="ST= (RW.add (BigDecimal.valueOf (952.48))).setScale (0, BigDecimal.ROUND_DOWN)"/> " & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <IF expr="X.compareTo (BigDecimal.valueOf (254447)) == -1">" & @CRLF & _ " <THEN>" & @CRLF & _ " <EVAL exec="ST= ((X.multiply (BigDecimal.valueOf (0.42))).subtract (BigDecimal.valueOf (8394.14))).setScale (0, BigDecimal.ROUND_DOWN)"/> " & @CRLF & _ " </THEN>" & @CRLF & _ " <ELSE>" & @CRLF & _ " <EVAL exec="ST= ((X.multiply (BigDecimal.valueOf (0.45))).subtract (BigDecimal.valueOf (16027.52))).setScale (0, BigDecimal.ROUND_DOWN)"/> " & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " </ELSE>" & @CRLF & _ " </IF>" & @CRLF & _ " <EVAL exec="ST= ST.multiply (BigDecimal.valueOf (KZTAB))"/>" & @CRLF & _ " </METHOD>" & @CRLF & _ " " & @CRLF & _ "</METHODS>" & @CRLF & _ "</PAP>" Local $sSubst = "{$1}" Local $sResult = StringRegExpReplace($sString, $sRegex, $sSubst) MsgBox($MB_SYSTEMMODAL, "Result", $sResult)

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm