0) {
$ztabfb = $ztabfb + $kfb;
mlstjahr();
$jbmg = $st;
}
else
$jbmg = $lstjahr;
msolz();
$jre4 = $jre4 + $jsonstb; // nicht im PAP, berücksichtigt schon abgerechnete Einmalbezüge/Jahr
msonst();
mvmt();
}
function mre4lzz() {
//Freibetraege fuer Versorgungsbezuege, Altersentlastungsbetrag (§39b Abs. 2 Satz 2 EStG) PAP Seite 10
global $re4, $vbez, $vbezm, $vbezs, $vbs, $vjahr, $vkapa, $vmt, $wfundf, $zmvb, $jvbez, $vjahr, $lzz, $sterbe, $vkapa, $vbezb, $fvbz, $fvb, $anteil2, $alter1, $ajahr, $alte, $lzz, $jw, $anteil1, $anteil2;
$tab1 = Array (0, 0.4, 0.384, 0.368, 0.352, 0.336, 0.32, 0.304, 0.288, 0.272, 0.256, 0.24, 0.224, 0.208, 0.192, 0.176, 0.16, 0.152, 0.144, 0.136, 0.128, 0.12, 0.112, 0.104, 0.096, 0.088, 0.08, 0.072, 0.064, 0.056, 0.048, 0.04, 0.032, 0.024, 0.016, 0.008, 0);
$tab2 = Array (0, 3000, 2880, 2760, 2640, 2520, 2400, 2280, 2160, 2040, 1920, 1800, 1680, 1560, 1440, 1320, 1200, 1140, 1080, 1020, 960, 900, 840, 780, 720, 660, 600, 540, 480, 420, 360, 300, 240, 180, 120, 60, 0);
$tab3= Array (0, 900, 864, 828, 792, 756, 720, 684, 648, 612, 576, 540, 504, 468, 432, 396, 360, 342, 324, 306, 288, 270, 252, 234, 216, 198, 180, 162, 144, 126, 108, 90, 72, 54, 36, 18, 0);
$tab4 = $tab1;
$tab5 = Array (0,1900, 1824, 1748, 1672, 1596, 1520, 1444, 1368, 1292, 1216, 1140, 1064, 988, 912, 836, 760, 722, 684, 646, 608, 570, 532, 494, 456, 418, 380, 342, 304, 266, 228, 190, 152, 114, 76, 38, 0);
if ($vbez == 0) {
$fvbz = 0;
$fvb = 0;
}
else {
if ($vjahr < 2006)
$j = 1;
else {
if ($vjahr < 2040)
$j = $vjahr - 2004;
else
$j = 36;
}
if ($lzz == 1) {
if ($sterbe + $vkapa > 0) {
$vbezb = $vbezm * $zmvb + $vbezs;
$hfvb = $tab2[$j] * 100;
$fvbz = $tab3[$j];
}
else {
$vbezb = $vbezm * $zmvb + $vbezs;
$hfvb = $tab2[$j] / 12 * $zmvb * 100;
$fvbz = ceil($tab3[$j] / 12 * $zmvb);
}
}
else {
$vbezb = $vbezm * 12 + $vbezs;
$hfvb = $tab2[$j] * 100;
$fvbz = $tab3[$j];
}
$fvb = ceil($vbezb * $tab1[$j]);
if ($fvb > $hfvb)
$fvb = $hfvb;
$jw = $fvb;
upanteil();
$fvb = $anteil2;
}
if ($alter1 == 0)
$alte = 0;
else {
if ($ajahr < 2006)
$k = 1;
else {
if ($ajahr < 2040)
$k = $ajahr - 2004;
else
$k = 36;
}
$bmg = $re4 - $vbez;
//echo "
".$re4." - ".$vbez;
$alte = max(0,ceil($bmg * $tab4[$k]));
$jw = $tab5[$k] * 100;
upanteil();
if ($alte > $anteil2)
$alte = $anteil2;
}
}
function mre4() {
//Massgeblicher Arbeitslohn fuer die Jahreslohnsteuer PAP Seite 12
//mit Zufügen eine Jahreshochrechnungsfaktors (Sinn?)
global $lzz, $zre4, $zre4vp, $zvbez, $vbez, $fvb, $zre4, $re4lzz, $re4lzzv;
if ($lzz == 1) {
$zre4 = floor($re4lzz) / 100;
$zre4vp = floor($re4lzzv) / 100;
$zvbez = floor($vbez - $fvb) / 100;
}
if ($lzz == 2) {
$zre4 = floor(($re4lzz + 0.67) * 12)/100;
$zre4vp = floor(($re4lzzv + 0.67) * 12)/100;
$zvbez = floor(($vbez - $fvb + 0.67) * 12)/100;
}
if ($lzz == 3) {
$zre4 = floor(($re4lzz + 0.89) * 360 / 7)/100;
$zre4vp = floor(($re4lzzv + 0.89) * 360 / 7)/100;
$zvbez = floor(($vbez - $fvb + 0.89) * 360 / 7)/100;
}
if ($lzz == 4) {
$zre4 = floor(($re4lzz + 0.56) * 360)/100;
$zre4vp = floor(($re4lzzv + 0.56) * 360)/100;
$zvbez = floor(($vbez - $fvb + 0.56) * 360)/100;
}
if ($zre4 < 0)
$zre4 = 0;
if ($zvbez <=0 || $vbez<=0) //abweichend vom PAP
$zvbez = 0;
}
function mztabfb() {
//Ermittlung der festen Tabellenfreibetraege (ohne Vorsorgepauschale) PAP Seite 13
global $kfb, $vbez, $zvbez, $fvbz, $zre4, $anp, $stkl, $zkf, $ztabfb, $kztab;
$efa = 0;
$sap = 0;
$kfb = 0;
$anp = 0;
if ($vbez > 0) {
if ($zvbez < $fvbz)
$fvbz = $zvbez;
}
if ($stkl < 6) {
if ($zvbez > 0) {
if ($zvbez - $fvbz < 102)
$anp = $zvbez - $fvbz;
else
$anp = 102;
}
}
if ($stkl < 6) {
if ($zre4 > $zvbez) {
if ($zre4 - $zvbez < 920)
$anp = $anp + $zre4 - $zvbez;
else
$anp = $anp + 920;
}
}
$kztab = 1;
if ($stkl == 1) {
$sap = 36;
$kfb = $zkf * 5808;
}
if ($stkl == 2) {
$efa = 1308;
$sap = 36;
$kfb = $zkf * 5808;
}
if ($stkl == 3) {
$kztab = 2;
$sap = 72;
$kfb = $zkf * 5808;
}
if ($stkl == 4) {
$sap = 36;
$kfb = $zkf * 2904;
}
if ($stkl == 5)
$kfb = 0;
if ($stkl == 6)
$kfb = 0;
$ztabfb = $efa + $anp + $sap + $fvbz;
}
function mlstjahr() { //Ermittlung der Jahreslohnsteuer, PAP S. 14
global $zve, $stkl, $zre4, $ztabfb, $vsp, $kztab, $x;
if ($stkl < 5)
upevp();
else
$vsp = 0;
$zve = $zre4 - $ztabfb - $vsp;
if ($zve < 1) {
$zve = 0;
$x = 0;
}
else
$x = floor($zve / $kztab); // auf Euro abrunden
if ($stkl < 5)
uptab05();
else
mst5_6();
}
function upevp() {
// Vorsorgepauschale (§39b Abs. 2 Satz 6 Nr 3 EStG)PAP Seite 15
global $krv, $zre4vp, $kztab, $vsp;
if ($krv == 1)
$vsp1 = 0;
else {
if ($zre4vp > 63000)
$zre4vp = 63000;
$vsp1 = 0.24 * $zre4vp;
$vsp1 = $vsp1 * 0.0975;
}
$vsp2 = 0.11 * $zre4vp;
$vhb = 1500 * $kztab;
if ($vsp2 > $vhb)
$vsp2 = $vhb;
$vspn = ceil($vsp1 + $vsp2); //auf Euro aufrunden
mvsp();
if ($vspn > $vsp)
$vsp = $vspn;
}
function mvsp() {
//Vorsorgepauschale (§39b Abs. 2 Satz 6 Nr 3 EStG) Vergleichsberechnung
//fuer Guenstigerpruefung PAP Seite 16
global $kennz, $zre4vp1, $zre4vp, $kztab, $krv, $vspvor, $vspmax1, $vspmax2, $vspo;
if ($kennz == 1)
$vspo = $zre4vp1 * 0.2;
else
$vspo = $zre4vp * 0.2;
$vspvor = 3068 * $kztab;
$vspmax1 = 1334 * $kztab;
$vspmax2 = 667 * $kztab;
$vspkurz = 1134 * $kztab;
if ($krv == 1) {
if ($vspo > $vspkurz)
$vsp = $vspkurz;
else
$vsp = ceil($vspo); // auf Euro aufrunden
}
else
umvsp();
}
function umvsp() { //Vorsorgepauschale, PAP 2006, S. 17
global $kennz, $zre4vp1, $zre4vp, $kztab, $krv, $vspvor, $vspmax1, $vspmax2, $vspo, $vsp;
if ($kennz == 1)
$vspvor = $vspvor - $zre4vp1 * 0.16;
else
$vspvor = $vspvor - $zre4vp * 0.16;
if ($vspvor < 0)
$vspvor = 0;
if ($vspo > $vspvor) {
$vsp = $vspvor;
$vsprest = $vspo - $vspvor;
if ($vsprest > $vspmax1) {
$vsp = $vsp + $vspmax1;
$vsprest = ceil(($vsprest - $vspmax1)*100) / 200; //auf Cent aufrunden
if ($vsprest > $vspmax2)
$vsp = ceil($vsp + $vspmax2); //auf Euro aufrunden
else
$vsp = ceil($vsp + $vsprest); //auf Euro aufrunden
}
else
$vsp = ceil($vsp + $vsprest); //auf Euro aufrunden
}
else
$vsp = ceil($vspo); // auf Euro aufrunden
}
function mst5_6() {
// Lohnsteuer fuer die Steuerklassen V und VI (§ 39b Abs. 2 Satz 8 EStG) PAP Seite 18
global $zx, $x, $st;
$zzx = $x;
if ($zzx > 25812) {
$zx = 25812;
up5_6();
$st = floor($st + ($zzx - 25812) * 0.42);
}
else {
$zx = $zzx;
up5_6();
if ($zzx > 9144) {
$vergl = $st;
$zx = 9144;
up5_6();
$hoch = floor($st + ($zzx - 9144) * 0.42);
if ($hoch < $vergl)
$st = $hoch;
else
$st = $vergl;
}
}
}
function up5_6() {
global $x,$zx, $st;
$x = $zx * 1.25;
uptab05();
$st1 = $st;
$x = $zx * 0.75;
uptab05();
$st2 = $st;
$diff = ($st1 - $st2) * 2;
$mist = floor($zx * 0.15);
if ($mist > $diff)
$st = $mist;
else
$st = $diff;
}
function msolz() { // Solidaritätszuschlag, PAP S. 19
global $kztab, $jbmg, $jw, $anteil1, $solzlzz, $bk, $r;
$solzfrei = 972 * $kztab;
if ($jbmg > $solzfrei) {
$solzj = $jbmg * 5.5 / 100;
$solzmin = ($jbmg - $solzfrei) * 20 / 100;
if ($solzmin < $solzj)
$solzj = $solzmin;
$jw = $solzj * 100;
upanteil();
$solzlzz = $anteil1;
}
else
$solzlzz = 0;
if ($r > 0){
$jw = $jbmg * 100;
upanteil();
$bk = $anteil1;
}
else
$bk = 0;
}
function upanteil() { // Anteil der Jahresbeiträge für einen LZZ
// PAP 2006, S. 20
// anteil1 abrunden, anteil2 aufrunden
global $lzz, $jw, $anteil1, $anteil2;
if ($lzz == 1) {
$anteil1 = $jw;
$anteil2 = $jw;
}
if ($lzz == 2) {
$anteil1 = floor($jw / 12);
$anteil2 = ceil($jw / 12);
}
if ($lzz == 3) {
$anteil1 = floor($jw * 7 / 360);
$anteil2 = ceil($jw * 7 / 360);
}
if ($lzz == 4) {
$anteil1 = floor($jw / 360);
$anteil2 = ceil($jw / 360);
}
}
function msonst() { // Berechnung sonstiger Bezüge, PAP 2006, S. 21
global $ajahr,$alte, $anp, $alter1, $anteil1, $anteil2, $bks, $fvb, $fvb, $fvbz, $jfreib, $jhinzu, $jre4, $jvbez, $jw, $lzz, $r, $re4, $re4lzz, $re4lzzv, $solzs, $sonstb, $st, $sterbe, $sts, $vbez, $vbezb, $vbezm, $vbezs, $vbs, $vjahr, $vkapa, $vmt, $zmvb, $zre4, $zre4vp, $zvbez;
if ($sonstb > 0) {
$lzz = 1;
$vbez = $jvbez;
$re4 = $jre4;
mre4lzz();
mre4lzz2();
mlstjahr();
$lst1 = $st * 100;
$vbs = $vbs + $sterbe; //zugefügt, Fehler im PAP
$vbez = $jvbez + $vbs ;
$re4 = $jre4 + $sonstb;
$vbezs = $vbezs + $sterbe;
mre4lzz();
mre4lzz2();
mlstjahr();
$lst2 = $st * 100;
$sts = $lst2 - $lst1;
$solzs = floor($sts * 5.5 / 100);
if ($r > 0)
$bks = $sts;
else
$bks = 0;
}
else {
$sts = 0;
$solzs = 0;
$bks = 0;
}
}
function mre4lzz2() {
global $re4lzz, $re4lzzv, $re4, $fvb, $alte, $jfreib, $jhinzu;
$re4lzz = $re4 - $fvb - $alte - $jfreib + $jhinzu;
$re4lzzv = $re4 - $fvb - $alte;
mre4();
mztabfb();
}
function mvmt() { // Berechnung der Vergütung für mehrjährige Tätigkeit
// PAP 2006, S. 22
global $ajahr,$alte, $alte, $alter1, $anteil1, $anteil2, $bkv, $fvb, $fvb, $fvbz, $jfreib, $jhinzu, $jre4, $jvbez, $jw, $lzz, $r, $re4, $re4lzz, $re4lzzv, $solzv, $sonstb, $st, $sterbe, $stv, $vbez, $vbezb, $vbezm, $vbezs, $vbs, $vjahr, $vkapa, $vmt, $zmvb, $zre4, $zre4vp, $zvbez;
if ($vmt + $vkapa > 0) {
$lzz = 1;
$vbez = $jvbez + $vbs;
$re4 = $jre4 + $sonstb;
mre4lzz();
mre4lzz2();
mlstjahr();
$lst1 = $st * 100;
$vmt = $vmt + $vkapa;
$vbezs = $vbezs + $vkapa;
$vbez = $vbez + $vkapa;
$re4 = $jre4 + $sonstb + $vmt;
mre4lzz();
mre4lzz2();
$kennz = 1;
$zre4vp1 = $zre4vp;
mlstjahr();
$lst3 = $st * 100;
$vbez = $vbez - $vkapa;
$re4 = $jre4 + $sonstb;
mre4lzz();
if ($re4 - $jfreib + $jhinzu < 0) {
$re4 = $re4 - $jfreib + $jhinzu;
$jfreib = 0;
$jhinzu = 0;
$re4 = ($re4 + $vmt) / 5;
mre4lzz2();
mlstjahr();
$lst2 = $st * 100;
$stv = $lst2 * 5;
}
else {
$re4 = $re4 + $vmt / 5;
mre4lzz2();
mlstjahr();
$lst2 = $st * 100;
$stv = ($lst2 - $lst1) * 5;
}
$lst3 = $lst3 - $lst1;
if ($lst3 < $stv)
$stv = $lst3;
$solzv = floor($stv * 5.5 / 100);
if ($r > 0)
$bkv = $stv;
else
$bkv = 0;
}
else {
$stv = 0;
$solzv = 0;
$bkv = 0;
}
}
function uptab05() { //Tarifliche Einkommensteuer, PAP 2006, S. 23
global $x, $st, $kztab;
if ($x < 7665)
$st = 0;
else {
if ($x < 12740) {
$y = ($x - 7664) / 10000;
$rw = $y * 883.74;
$rw = $rw + 1500;
$st = floor($rw * $y);
}
else {
if ($x < 52152) {
$y = ($x - 12739) / 10000;
$rw = $y * 228.74;
$rw = $rw + 2397;
$rw = $rw * $y;
$st = floor($rw + 989);
}
else
$st = floor($x * 0.42 - 7914);
}
}
$st = $st * $kztab;
}
//------------------------------- Parameterübergabe -----------------------
function jahranteil() { // Berechnung Jahreslohn aus LZZ-Lohn
// (nicht im PAP enthalten)
// für Berechnung sonstige bzw. mehrjährige Bezüge notwendig.
global $lzz, $jw, $anteil1;
if ($lzz == 1)
$anteil1 = $jw;
if ($lzz == 2)
$anteil1 = $jw * 12;
if ($lzz == 3)
$anteil1 = $jw * 360 / 7;
if ($lzz == 4)
$anteil1 = $jw * 360;
}
$ajahr = $_POST['ajahr'];
if($ajahr>2004)
$alter1=1;
$stkl = $_POST['stkl'];
$zkf = $_POST['zkf'];
$land = $_POST['bundesland'];
if($land < 3)
$kist = 8;
else
$kist = 9;
$r = $_POST['r'];
$krv = $_POST['krv'];
$lzz = $_POST['lzz'];
$re4 = str_replace(",",".",($_POST['re4']))*100;
$re4ret = $re4;
$jw = $re4;
jahranteil();
$jre4 = $anteil1;
$sonstb = str_replace(",",".",($_POST['sonstb']))*100;
$jsonstb = ($_POST['jsonstb'])*100;
$vmt = ($_POST['vmt'])*100;
$jfreib = ($_POST['jfreib'])*100;
$jw = $jfreib;
upanteil();
$wfundf = $anteil1;
$jhinzu = ($_POST['jhinzu'])*100;
$jw = $jhinzu;
upanteil();
$hinzur = $anteil1;
$vbez = str_replace(",",".",($_POST['vbez']))*100;
$zmvb = $_POST['zmvb'];
if($lzz==1)
$jvbez = $vbez;
if($lzz==2)
$jvbez = $vbez * 12;
$vbezs = str_replace(",",".",($_POST['vbezs']))*100;
$sterbe = str_replace(",",".",($_POST['sterbe']))*100;
$vkapa = ($_POST['vkapa'])*100;
$vjahr = $_POST['vjahr'];
$vbezm = str_replace(",",".",($_POST['vbezm']))*100;
$re4soz = ($jre4 + $sonstb + $jsonstb)/100;
$lzzsoz = $lzz;
$brutto = komma(($re4+$sonstb+$vmt+$vkapa)/100);
lst2006(); //Berechnung
// ------------------ Ausgabe ------------------------------
function komma($wert) {
$laenge = strlen($wert);
$pos = strrpos($wert,".");
if($pos == false)
$wert = $wert.".00";
elseif ($laenge - $pos == 2)
$wert = $wert."0";
return $wert;
}
echo "
";
echo "
";
//print_r($_POST); // zur überprüfung der übergebenen Parameter
$steuer = komma(floor($lstlzz+$stv+$sts)/100);
$soli = komma(floor($solzlzz+$solzs+$solzv)/100);
$kirche = komma(floor(($bk+$bkv+$bks)*$kist/100)/100);
$stges = $steuer+$soli+$kirche;
echo "Bruttolohn: ".$brutto." Euro";
echo" "; echo " Lohnsteuer: ".$steuer." Euro"; echo " davon Steuer für laufenden Lohn ".komma($lstlzz/100)." Euro"; echo " davon Steuer für Einmalbezug ".komma($sts/100)." Euro"; echo " davon Steuer für Vergütung mehrjäriger Tätigkeit ".komma($stv/100)." Euro"; echo " Solidaritätszuschlag: ".$soli." Euro"; echo " ".$kist."% Kirchensteuer: ".$kirche." Euro"; echo " |
";
echo "Arbeitnehmeranteil Sozialversicherung: "; echo "Krankenversicherung: ".komma($kvwert)." Euro "; echo "Pflegeversicherung: ".komma($pflegewert)." Euro "; echo "Rentenversicherung: ".komma($rentewert)." Euro "; echo "Arbeitslosenversicherung: ".komma($aloswert)." Euro "; echo " |
";
echo "Arbeitgeberanteil Sozialversicherung: "; echo "Krankenversicherung: ".komma($kvwertag)." Euro "; echo "Pflegeversicherung: ".komma($pflegewertag)." Euro "; echo "Rentenversicherung: ".komma($rentewertag)." Euro "; echo "Arbeitslosenversicherung: ".komma($aloswertag)." Euro "; echo " |
";
echo "Summe der Steuern: ".komma($stges)." Euro";
$sozges = komma($kvwert+$pflegewert+$rentewert+$aloswert);
echo" Summe Sozialversicherung: ".komma($sozges)." Euro"; $netto = komma($brutto-($stges+$sozges)); echo " Nettoverdienst: ".$netto." Euro"; echo " |
zurück"; echo ""; // diese Statuszeile kann man dann löschen ?>