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