Home >> Hobbies >> PHP Programming

Hobbies --> PHP Programming

Federal Pay Calculator

To help a friend calculate his bi-weekly federal pay, I developed the following script.  First, a few variables are set inside the script.  To use, you enter the hours worked for each transaction code, then submit to calculate the pay.

Below is the source code for the script.  I didn't have a chance to comment this as much as I would have liked.  Also, you could break this code up so that the lines aren't so long, and the script would work the same.


<?php
// set some static variables
$hourly_wage = 25.00;
$overtime_wage = 37.50;
$tsp_percent = 5; // Thrift Savings percent contribution of gross wage
$exemptions = 1;
$life_insur = 12.90;
$life_insur2 = 18.90;
$health_insur = 135.59;
$cfc = 10.0; // Combined Federal Campaign
$allotment = 0;
$allotment2 = 205;
$fsafeds = 57.69; // Health Savings Account
if (!isset($calculate)) // this is the code that will be displayed if the form hasn't been submitted
 {
echo "<html>\n";
echo "<head>\n";
echo "<title>Federal Pay Calculator</title>\n";
echo "</head>\n";
echo "<body bgcolor=\"#FFFFFF\">\n";
echo "<form method=\"POST\">";
echo "<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" width=\"400\">\n";
echo "<tr><td>Regular TC 01 </td><td><input type=\"text\" name=\"tc01\" size=\"3\"></tr></td>\n";
echo "<tr><td>Night Diff TC 11 </td><td><input type=\"text\" name=\"tc11\" size=\"3\"></tr></td>\n";
echo "<tr><td>Sunday Diff TC 04 </td><td><input type=\"text\" name=\"tc04\" size=\"3\"></tr></td>\n";
echo "<tr><td>Sunday/Night Diff TC 05 </td><td><input type=\"text\" name=\"tc05\" size=\"3\"></tr></td>\n";
echo "<tr><td>Holiday Worked TC 31 </td><td><input type=\"text\" name=\"tc31\" size=\"3\"></tr></td>\n";
echo "<tr><td>Holiday Night Diff TC 66/2 </td><td><input type=\"text\" name=\"tc662\" size=\"3\"></tr></td>\n";
echo "<tr><td>Holiday Sunday Diff TC 66/3 </td><td><input type=\"text\" name=\"tc663\" size=\"3\"></tr></td>\n";
echo "<tr><td>Holiday Sunday Night Diff TC 66/4 </td><td><input type=\"text\" name=\"tc664\" size=\"3\"></tr></td>\n";
echo "<tr><td>Holiday TC 66 </td><td><input type=\"text\" name=\"tc66\" size=\"3\"></tr></td>\n";
echo "<tr><td>Overtime TC 21 </td><td><input type=\"text\" name=\"tc21\" size=\"3\"></tr></td>\n";
echo "<tr><td>Overtime Night Diff TC 25 </td><td><input type=\"text\" name=\"tc25\" size=\"3\"></tr></td>\n";
echo "<tr><td>Comp Time E TC 32 </td><td><input type=\"text\" name=\"tc32\" size=\"3\"></tr></td>\n";
echo "<tr><td>Annual Leave TC 61 </td><td><input type=\"text\" name=\"tc61\" size=\"3\"></tr></td>\n";
echo "<tr><td>Sick Leave TC 62 </td><td><input type=\"text\" name=\"tc62\" size=\"3\"></tr></td>\n";
echo "<tr><td>Comp Time U TC 64 </td><td><input type=\"text\" name=\"tc64\" size=\"3\"></tr></td>\n";
echo "<tr><td>Cash Award </td><td><input type=\"text\" name=\"cash\" size=\"3\"></tr></td>\n";
echo "<tr><td colspan=\"2\"><input type=\"reset\" value\"Reset\"> \n";
echo "<input type=\"submit\" value=\"Calculate Pay\" name=\"calculate\">\n";
echo "</form>\n";
echo "</table>\n";
echo "</body>\n";
echo "</html>\n";
 } // end of normal page display
else // this is the code that gets executed when the form has been submitted
 {
##### Calculate the tsp deduction
$tsp_contr = 80*$hourly_wage*($tsp_percent/100);
##### Calculate the gross pay
$pay01 = round(($tc01 * $hourly_wage),2);
$pay11 = round(($tc11 * $hourly_wage * 1.1),2);
$pay04 = round(($tc04 * $hourly_wage * 1.25),2);
$pay05 = round(($tc05 * $hourly_wage * 1.35),2);
$pay31 = round(($tc31 * $hourly_wage),2);
$pay662 = round(($tc662 * $hourly_wage * 1.1),2);
$pay663 = round(($tc663 * $hourly_wage * 1.25),2);
$pay664 = round(($tc664 * $hourly_wage * 1.35),2);
$pay66 = round(($tc66 * $hourly_wage),2);
$pay21 = round(($tc21 * $overtime_wage),2);
$pay25 = round(($tc25 * $overtime_wage * 1.1),2);
$pay61 = round(($tc61 * $hourly_wage),2);
$pay62 = round(($tc62 * $hourly_wage),2);
$pay64 = round(($tc64 * $hourly_wage),2);
$gross_pay = $pay01 + $pay11 + $pay04 + $pay05 + $pay31 + $pay662 + $pay663 + $pay664 
             + $pay66 + $pay21 + $pay25 + $pay61 + $pay62 + $pay64 + $cash;
##### Calculate FICA
$fica = ($gross_pay - $health_insur - $fsafeds) * .062;
##### Calculate Medicare
$medicare = ($gross_pay - $health_insur - $fsafeds) * 0.0145;
##### Calculate Retirement
$retirement = ($gross_pay) * (0.0077107423162183212509735785752801);
##### Calculate Federal Tax
$mgi = ((($gross_pay - $tsp_contr - $health_insur - $fsafeds))* 26)-($exemptions*3300);
if (($mgi > 8000) && ($mgi <= 22900))
 { $fedtax = (($mgi-8000)*.10)/26; }
elseif (($mgi > 22900) && ($mgi <= 68040))
 { $fedtax = (1490 + (($mgi-22900)*.15))/26; }
elseif (($mgi > 68040) && ($mgi <= 126900))
 { $fedtax = (8261 + (($mgi-68040)*.25))/26; }
elseif (($mgi > 126900) && ($mgi <= 195450))
 { $fedtax = (22976 + (($mgi-126900)*.28))/26; }
elseif (($mgi > 195450) && ($mgi <= 343550))
 { $fedtax = (42170 + (($mgi-195450)*.33))/26; }
elseif ($mgi >= 343550)
 { $fedtax = (91043 + (($mgi-343550)*.35))/26; }
##### Calculate Nebraska Tax
$mgi = ((($gross_pay-($cash) - $tsp_contr - $health_insur - $fsafeds))* 26)-($exemptions*1490);
if (($mgi > 5250) && ($mgi <= 8250))
 { $statetax = (($mgi-5250)*.0249)/26; }
elseif (($mgi > 8250) && ($mgi <= 22400))
 { $statetax = (74.70 + (($mgi-8250)*.0347))/26; }
elseif (($mgi > 22400) && ($mgi <= 35400))
 { $statetax = (565.71 + (($mgi-22400)*.0532))/26; }
elseif (($mgi > 35400) && ($mgi <= 42950))
 { $statetax = (1257.31 + (($mgi-35400)*.0657))/26; }
elseif (($mgi > 42950) && ($mgi <= 58250))
 { $statetax = (1753.35 + (($mgi-42950)*.0698))/26; }
elseif (($mgi > 58250) && ($mgi <= 75250))
 { $statetax = (2821.29 + (($mgi-58250)*.0722))/26; }
elseif ($mgi >= 75250)
 { $statetax = (4048.669 + (($mgi-75250)*.0736))/26; }
##### Calculate the Net Pay
$net_pay = $gross_pay - $retirement - $tsp_contr - $fica - $fedtax - $statetax - $life_insur
           - $life_insur2 - $health_insur - $cfc - $allotment - $allotment2 - $medicare - $fsafeds;
##### Print the Output
echo "<html>\n";
echo "<head>\n";
echo "<title>Federal Pay Calculator</title>\n";
echo "</head>\n";
echo "<body bgcolor=\"#FFFFFF\">\n";
echo "<table cellpadding=\"2\" cellspacing=\"2\" border=\"0\" width=\"400\">\n";
printf("<tr><td>Gross Salary:</td><td>\$%.2f</td></tr>\n",$gross_pay);
printf("<tr><td>Retirement:</td><td>\$%.2f</td></tr>\n",$retirement);
printf("<tr><td>Thrift Savings:</td><td>\$%.2f</td></tr>\n",$tsp_contr);
printf("<tr><td>Socal Security:</td><td>\$%.2f</td></tr>\n",$fica);
printf("<tr><td>Federal Tax:</td><td>\$%.2f</td></tr>\n",$fedtax);
printf("<tr><td>State Tax:</td><td>\$%.2f</td></tr>\n",$statetax);
printf("<tr><td>Life Insurance:</td><td>\$%.2f</td></tr>\n",$life_insur);
printf("<tr><td>Life Insurance 2:</td><td>\$%.2f</td></tr>\n",$life_insur2);
printf("<tr><td>Health Insurance:</td><td>\$%.2f</td></tr>\n",$health_insur);
printf("<tr><td>CFC Charity:</td><td>\$%.2f</td></tr>\n",$cfc);
printf("<tr><td>Allotment:</td><td>\$%.2f</td></tr>\n",$allotment);
printf("<tr><td>Allotment 2:</td><td>\$%.2f</td></tr>\n",$allotment2);
printf("<tr><td>Medicare:</td><td>\$%.2f</td></tr>\n",$medicare);
printf("<tr><td>FSAFEDS:</td><td>\$%.2f</td></tr>\n",$fsafeds);
printf("<tr><td>Approximate Pay:</td><td><font color=\"red\"><b>\$%.2f</b></font></td></tr>\n",$net_pay);
echo "</table>\n";
echo "</body>\n";
echo "</html>\n";
 } // end of the caculation routine

?>

 


Home >> Hobbies >> PHP Programming

webmaster at vansvault dot org

Last modified: February 20, 2006