function Emplea($_GET)
{
    # Get vars
    extract($_GET);
    # validate input
    require_lib("validate");
    $v = new validate();
    $v->isOk($empnum, "num", 1, 20, "Invalid employee number.");
    # display errors, if any
    if ($v->isError()) {
        $confirm = "";
        $errors = $v->getErrors();
        foreach ($errors as $e) {
            $confirm .= "-" . $e["msg"] . "<br>";
        }
        $confirm .= "<p><input type='button' onClick='JavaScript:history.back();' value='&laquo; Correct submission'>";
        return $confirm;
    }
    # Connect to db
    db_connect();
    # Get employee info to edit
    $sql = "SELECT * FROM employees WHERE empnum='{$empnum}'";
    $empRslt = db_exec($sql) or errDie("Unable to select employee info from database.");
    if (pg_numrows($empRslt) < 1) {
        return "Invalid employee number.";
    }
    $emp = pg_fetch_array($empRslt);
    # Get the arrays
    $lvac = getLeave($empnum, "leave_vac");
    $lsick = getLeave($empnum, "leave_sick");
    $lstudy = getLeave($empnum, "leave_study");
    $lea = "\n\t\t<h3>Employee Leave Available</h3>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Field</th>\n\t\t\t\t<th>Value</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Employee</td>\n\t\t\t\t<td align='center'>{$emp['sname']}, {$emp['fnames']} ({$emp['enum']})</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Paid Vacation Leave</td>\n\t\t\t\t<td align='center'>{$lvac['1']} days</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Paid Sick Leave</td>\n\t\t\t\t<td align='center'>{$lsick['1']} days</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Paid Study Leave</td>\n\t\t\t\t<td align='center'>{$lstudy['1']} days</td>\n\t\t\t</tr>\n\t\t<table>" . mkQuickLinks(ql("../admin-employee-add.php", "Add Employee"), ql("../admin-employee-view.php", "View Employees"));
    return $lea;
}
Пример #2
0
						{
						?>
                        	<a href="leave_application.php?emp_id=<?php 
echo $row["emp_id"];
?>
&leave_type=PL"><?php 
echo $left_pl;
?>
</a>
						<?	
						}
						
				?>
            </td>
             <td align="center">
            	<? $left_cl=getLeaveAllowed("cl",$row["emp_category"])-getLeave($row["emp_id"],"Cl")?>
                 <?
					if($left_cl==0)
						{
					    	echo $left_cl; 
						}
					else
						{
						?>
                        	<a href="leave_application.php?emp_id=<?php 
echo $row["emp_id"];
?>
&leave_type=CL"><?php 
echo $left_cl;
?>
</a>
function printPayslip($_GET)
{
    # Get vars
    foreach ($_GET as $key => $value) {
        ${$key} = $value;
    }
    # Validate input
    require_lib("validate");
    $v = new validate();
    $v->isOk($id, "num", 1, 20, "Invalid payslip number.");
    # Display errors, if any
    if ($v->isError()) {
        $confirmCust = "";
        $errors = $v->getErrors();
        foreach ($errors as $e) {
            $confirmCust .= "<li class=err>" . $e["msg"];
        }
        $confirmCust .= "<p><input type=button onClick='JavaScript:history.back();' value='&laquo; Correct submission'>";
        return $confirmCust;
    }
    db_conn('cubit');
    $Sl = "SELECT * FROM salpaid WHERE id = '{$id}'";
    $Ry = db_exec($Sl) or errDie("Unable to select employee payments from database.");
    if (pg_numrows($Ry) < 1) {
        return "<li> - Employee payment not found for selected month.";
    }
    $pay = pg_fetch_array($Ry);
    if ($pay['salary'] < 0) {
        $rev = "Reversed";
    } else {
        $rev = "";
    }
    $Sl = "SELECT * FROM employees WHERE empnum='{$pay['empnum']}'";
    $Ry = db_exec($Sl) or errDie("Unable to select employees from database.");
    $emp = pg_fetch_array($Ry);
    $slip = base64_decode($pay['display']);
    $pay['showex'] = "Yes";
    $date = $pay['saldate'];
    if ($pay['showex'] == "Yes") {
        if (date("m") > 2) {
            $fromdate = date("Y") . "-03-01";
        } else {
            $fromdate = date("Y") - 1 . "-03-01";
        }
        $Sl = "SELECT sum(paye) FROM salpaid WHERE saldate>='{$fromdate}' AND saldate<='{$pay['saldate']}' AND empnum='{$pay['empnum']}'";
        $Ry = db_exec($Sl) or errDie("Unable to get paye");
        $pdata = pg_fetch_array($Ry);
        $paid = $pdata['sum'];
        $Sl = "SELECT sum(paye) FROM salr WHERE saldate>='{$fromdate}' AND saldate<='{$pay['saldate']}' AND empnum='{$pay['empnum']}'";
        $Ry = db_exec($Sl) or errDie("Unable to get paye");
        $pdata = pg_fetch_array($Ry);
        $upaid = $pdata['sum'];
        $paid = sprint($paid - $upaid);
        $ex = "<tr><td>Available Leave:</td><td>" . getLeave($pay['empnum'], "leave_vac") . "</tr>\r\n\t\t<tr><td>PAYE to date:</td><td>" . CUR . " {$paid}</td></tr>";
    } else {
        $ex = "";
    }
    $emp['basic_sal'] = sprint($emp['basic_sal']);
    $dates = "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t<tr><td width='50%'>Date</td><td width='50%'>{$date}</td></tr>\r\n\t</table>";
    $i = 0;
    $incomes = "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t<tr><td width='80%' align=center>Description</td><td align=center>Amount</td></tr>";
    db_conn('cubit');
    $Sl = "SELECT * FROM emp_inc WHERE payslip='{$pay['id']}' AND ex!='RBS' ORDER BY amount DESC";
    $Ri = db_exec($Sl) or errDie("Unable to get data.");
    $tot_incomes = 0;
    while ($data = pg_fetch_array($Ri)) {
        $incomes .= "<tr><td>{$data['description']}</td><td align=right>" . CUR . " {$data['amount']}</td></tr>";
        $i++;
        $tot_incomes = $tot_incomes + $data['amount'];
    }
    while ($i < 7) {
        $incomes .= "<tr><td><br></td></tr>";
        $i++;
    }
    $incomes .= "</table>";
    $i = 0;
    $benefits = "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>";
    while ($i < 4) {
        $benefits .= "<tr><td><br></td></tr>";
        $i++;
    }
    $benefits .= "</table>";
    $i = 0;
    $comp_parts = "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t<tr><td align=center>Description</td><td align=center>Amount</td></tr>";
    $Sl = "SELECT * FROM emp_com WHERE payslip='{$pay['id']}' AND description !='SDL' ORDER BY amount DESC";
    $Ri = db_exec($Sl) or errDie("Unable to get data.");
    while ($data = pg_fetch_array($Ri)) {
        $comp_parts .= "<tr><td width='80%'>{$data['description']}</td><td width='20%' align=right>" . CUR . " {$data['amount']}</td></tr>";
        $i++;
    }
    while ($i < 7) {
        $comp_parts .= "<tr><td><br></td></tr>";
        $i++;
    }
    $comp_parts .= "</table>";
    $i = 0;
    $deductions = "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t<tr><td width='90%' align=center>Description</td><td align=center>Amount</td></tr>";
    $Sl = "SELECT * FROM emp_ded WHERE payslip='{$pay['id']}' ORDER BY amount DESC";
    $Ri = db_exec($Sl) or errDie("Unable to get data.");
    $tot_deductions = 0;
    while ($data = pg_fetch_array($Ri)) {
        $deductions .= "<tr><td>{$data['description']}</td><td align=right>" . CUR . " {$data['amount']}</td></tr>";
        $i++;
        $tot_deductions = $tot_deductions + $data['amount'];
    }
    while ($i < 6) {
        $deductions .= "<tr><td><br></td></tr>";
        $i++;
    }
    $deductions .= "</table>";
    $pay["salary"] = sprint($pay["salary"]);
    $exstras = "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t<tr><td width='25%'>LEAVE DAYS DUE</td><td width='25%'>" . getLeave($pay['empnum'], "leave_vac") . "</td><td width='25%'><b>NETT PAY</b></td><td width='25%'><b>" . CUR . " {$pay['salary']}</b></td></tr>\r\n\t<tr><td width='25%'>Total Employee's Tax</td><td width='25%'>" . CUR . " {$paid}</td><td width='25%'></td><td width='25%'></td></tr>\r\n\t</table>";
    db_conn('cubit');
    $Sl = "SELECT * FROM emp_inc WHERE payslip='{$pay['id']}' AND ex='RBS' ORDER BY amount DESC";
    $Ri = db_exec($Sl) or errDie("Unable to get data.");
    if (pg_num_rows($Ri) > 0) {
        $exstras .= "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t\t<tr><td width='25%'></td><td width='25%'></td><td width='50%'><table border=0 cellpadding=1 cellspacing=1 width='100%'>\r\n\t\t<tr><td colspan=2><b>Reimbursements</td></tr>";
        $tot_r = 0;
        while ($data = pg_fetch_array($Ri)) {
            $exstras .= "<tr><td width='50%'>{$data['description']}</td><td width='50%'>" . CUR . " {$data['amount']}</td></tr>";
            $tot_r = $tot_r + $data['amount'];
        }
        $td = sprint($pay['salary'] + $tot_r);
        $exstras .= "<tr><td width='50%'><b>Total due to employee</b></td><td width='50%'><b>" . CUR . " {$td}</b></td></tr>\r\n\t\t</table></td></tr></table>";
    }
    $period = $pay['month'];
    $period = $period - 2;
    if ($period < 1) {
        $period = $period + 12;
    }
    $tot_incomes = sprint($tot_incomes);
    $tot_deductions = sprint($tot_deductions);
    $grossdata = "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t<tr><td width='50%' align=center><b>GROSS EARNINGS</b></td><td width='50%' align=right>" . CUR . " {$tot_incomes}</td></tr>\r\n\t</table>";
    $PaySlip = "<center>\r\n\t<h2>" . COMP_NAME . " <br>Salary Advice {$rev}</h2>\r\n\t<table border=1 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width=750>\r\n\t<tr><td width='50%' align=center><b>Employee Details:</b></td><td>{$dates}</td></tr>\r\n\t<tr><td valign=top>\r\n\t\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t\t<tr><td>Name:</td><td>{$emp['sname']}, {$emp['fnames']}</td></tr>\r\n\t\t<tr><td>Number:</td><td>{$emp['enum']}</td></tr>\r\n\t\t<tr><td>ID:</td><td>{$emp['idnum']}</td></tr>\r\n\t\t<tr><td>Tax No:</td><td>{$emp['taxref']}</td></tr>\r\n\t\t<tr><td>Rate:</td><td>" . CUR . " {$emp['basic_sal']}</td></tr>\r\n\t\t<tr><td>Designation:</td><td>{$emp['designation']}</td></tr>\r\n\t\t<tr><td>Gender:</td><td>{$emp['sex']}</td></tr>\r\n\t\t<tr><td>Marital Status:</td><td>{$emp['marital']}</td></tr>\r\n\t\t</table>\r\n\t</td><td valign=top>\r\n            \t <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t\t<tr><td width='50%'>Period</td><td width='50%'>{$period}</td></tr>\r\n\t\t</table>\r\n\t\t<table border=1 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t\t<tr><td align=center colspan=2><b>Company Details:</b></td></tr>\r\n\t\t</table>\r\n\t\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t\t<tr><td>Address:</td><td>" . COMP_ADDRESS . "</td></tr>\r\n\t\t<tr><td>Tel:</td><td>" . COMP_TEL . "</td></tr>\r\n\t\t<tr><td>Fax:</td><td>" . COMP_FAX . "</td></tr>\r\n\t\t<tr><td>Reg No:</td><td>" . COMP_REGNO . "</td></tr>\r\n\t\t<tr><td>PAYE Ref:</td><td>" . COMP_PAYE . "</td></tr>\r\n\t\t</table>\r\n\t</td>\r\n\t</tr>\r\n\t<tr><td align=center><b>COMPANY CONTRIBUTIONS</b></td><td align=center><b>INCOME</b></td></tr>\r\n        <tr><td>{$comp_parts}</td><td>{$incomes}</td></tr>\r\n\t<tr><td align=center></td><td>{$grossdata}</td></tr>\r\n\t<tr><td colspan=2 align=center><b>DEDUCTIONS</b></td></tr>\r\n\t <tr><td colspan=2>{$deductions}</td></tr>\r\n\t <tr><td></td><td>\r\n                <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t\t<tr><td width='50%'><b>TOTAL DEDUCTIONS</b></td><td width='50%'>" . CUR . " {$tot_deductions}</td></tr>\r\n\t\t</table>\r\n\t</td></tr>\r\n\t <tr><td colspan=2>{$exstras}</td></tr>\r\n\t</table>";
    return $PaySlip;
    /*Removed
    
    	<tr><td align=center><b>BENEFITS</b></td></tr>
    	<tr><td>$benefits</td></tr>
            */
    /*OLD PAYSLIP
    
    	<center><h2>Salary Advice</h2>
    	<table cellpadding='0' cellspacing='4' border=0 width=750>
    	<tr><td valign=top width=30%>
    		<table cellpadding='".TMPL_tblCellPadding."' cellspacing='".TMPL_tblCellSpacing."' border=0>
    		<tr><td>$emp[sname], $emp[fnames]</td></tr>
    		<tr><td>Emp No: $emp[enum]</td></tr>
    		<tr><td>ID: $emp[idnum]</td></tr>
    		<tr><td>Tax No: $emp[taxref]</td></tr>
    		$ex
    		</table>
    	</td><td valign=top width=30%>
    		".COMP_NAME."<br>
    		".COMP_ADDRESS."<br>
    		".COMP_TEL."<br>
    		".COMP_FAX."<br>
    		PAYE Ref: ".COMP_PAYE."<br>
    	</td><td valign=top align=right>
    		<table cellpadding='".TMPL_tblCellPadding."' cellspacing='".TMPL_tblCellSpacing."'>
    		<tr><td>Date: $pay[saldate]</td></tr>
    		</table>
    	</td>
    	</tr>
    	<tr><td colspan=3>
    	<table cellpadding='4' cellspacing='0'>
    		<tr><td>$slip</td></tr>
    	</table></td></tr>
    	<tr><td><br></td></tr>
    	<tr><td>Method of payment: $emp[paytype]</td></tr>
    	</table>
    
    	*/
}
function enterEmp($err = "")
{
    global $_POST;
    $fields = array();
    // de-poo'd and quintified
    // iow
    // from: function enterEmp ($idnum="",$sname="", $fnames="", $hiredate="", $telno="", $email="", $basic_sal="", $bankname="", $bankcode="", $bankaccno="", $res1="", $res2="", $res3="", $res4="", $pos1="", $pos2="", $pcode="", $contsname="", $contfnames="", $contres1="", $contres2="", $contres3="", $conttelno="",$sex="",$marital="",$resident="",$paytype="",$bankacctype="",$empnum="",$designation="", $err="")
    // to: below + function enterEmp($err="")
    $fields["idnum"] = "";
    $fields["passportnum"] = "";
    $fields["sname"] = "";
    $fields["fnames"] = "";
    $fields["hiredate"] = "";
    $fields["telno"] = "";
    $fields["email"] = "";
    $fields["basic_sal"] = "";
    $fields["bankname"] = "";
    $fields["bankcode"] = "";
    $fields["bankaccno"] = "";
    $fields["res1"] = "";
    $fields["res2"] = "";
    $fields["res3"] = "";
    $fields["res4"] = "";
    $fields["pos1"] = "";
    $fields["pos2"] = "";
    $fields["pcode"] = "";
    $fields["contsname"] = "";
    $fields["contfnames"] = "";
    $fields["contres1"] = "";
    $fields["contres2"] = "";
    $fields["contres3"] = "";
    $fields["conttelno"] = "";
    $fields["sex"] = "";
    $fields["marital"] = "";
    $fields["resident"] = "";
    $fields["paytype"] = "Cash";
    $fields["bankacctype"] = "";
    $fields["empnum"] = "";
    $fields["designation"] = "";
    $fields["all_travel"] = "0.00";
    $fields["saltyp"] = "m";
    $fields["basic_sal_annum"] = "0.00";
    $fields["novert"] = "1.5";
    $fields["hovert"] = "2";
    $fields["sal_bonus"] = "0.00";
    $fields["sal_bonus_month"] = "12";
    $fields["comp_pension"] = "0";
    $fields["emp_pension"] = "0";
    $fields["comp_ret"] = "0.00";
    $fields["emp_ret"] = "0.00";
    $fields["comp_medical"] = "0.00";
    $fields["emp_medical"] = "0.00";
    $fields["emp_meddeps"] = "0";
    $fields["comp_provident"] = "0";
    $fields["emp_provident"] = "0";
    $fields["comp_sdl"] = "1";
    $fields["comp_uif"] = "1";
    $fields["emp_uif"] = "1";
    $fields["comp_other"] = "0";
    $fields["emp_other"] = "0";
    $fields["fringe_car1"] = "0.00";
    $fields["fringe_car1_contrib"] = "0.00";
    $fields["fringe_car1_fuel"] = "0";
    $fields["fringe_car1_service"] = "0";
    $fields["fringe_car2"] = "0.00";
    $fields["fringe_car2_contrib"] = "0.00";
    $fields["fringe_car2_fuel"] = "0";
    $fields["fringe_car2_service"] = "0";
    $fields["emp_usescales"] = "0";
    $fields["payprd"] = "m";
    $fields["payprd_day"] = "fri";
    $fields["hpweek"] = "40";
    $fields["taxref"] = "";
    $fields["department"] = "";
    $fields["occ_cat"] = "";
    $fields["occ_level"] = "";
    $fields["pos_filled"] = "External appointment";
    $fields["temporary"] = "no";
    $fields["termination_date"] = "";
    $fields["recruitment_from"] = "Advertised Position";
    $fields["employment_reason"] = "Vacant Position";
    $fields["union_name"] = "";
    $fields["union_mem_num"] = "None";
    $fields["union_pos"] = "None";
    $fields["race"] = "";
    $fields["disabled_stat"] = "No";
    $fields["prevemp_remun"] = "";
    $fields["prevemp_tax"] = "";
    $fields["hd_year"] = DATE_YEAR;
    $fields["hd_month"] = DATE_MONTH;
    $fields["hd_day"] = DATE_DAY;
    $fields["hd_month"] = "";
    $fields["hd_year"] = "";
    $fields["hd_day"] = "";
    $fields["emp_group"] = "";
    $fields["person_nature"] = "";
    $fields["medical_aid"] = "";
    $fields["medical_aid_number"] = "";
    db_conn("cubit");
    $sql = "SELECT value FROM settings WHERE constant='UIF_COMP'";
    $rslt = db_exec($sql) or errDie("Error reading company UIF setting.");
    if (pg_num_rows($rslt)) {
        $fields["comp_uif"] = pg_fetch_result($rslt, 0, 0);
    }
    foreach ($fields as $fn => $fv) {
        if (!isset($_POST[$fn])) {
            $_POST[$fn] = $fv;
        }
    }
    extract($_POST);
    $Tp = array("M" => "Male", "F" => "Female");
    $sexs = extlib_cpsel("sex", $Tp, $sex);
    $overarr = array("1" => "x 1", "1.5" => "x 1.5", "2" => "x 2", "2.5" => "x 2.5", "3" => "x 3");
    //$noverts = extlib_cpsel("novert", $overarr, "1.5");
    //$hoverts = extlib_cpsel("hovert", $overarr, "2");
    $Tp = array("Single" => "Single", "Married" => "Married", "Widowed" => "Widowed", "Divorced" => "Divorced");
    $maritals = extlib_cpsel("marital", $Tp, $marital);
    $Tp = array("Yes" => "Yes", "No" => "No");
    $residents = extlib_cpsel("resident", $Tp, $resident);
    $rslt = db_exec("SELECT accname FROM bankacctypes");
    // if no bank account types were found, add the default
    if (pg_num_rows($rslt) < 1) {
        db_exec("INSERT INTO bankacctypes (accname) VALUES('Savings')");
        db_exec("INSERT INTO bankacctypes (accname) VALUES('Current or Cheque')");
        db_exec("INSERT INTO bankacctypes (accname) VALUES('Credit Card')");
        $Tp = array("Savings" => "Savings", "Current or Cheque" => "Current or Cheque", "Credit Card" => "Credit Card");
    } else {
        $Tp = "";
        while ($row = pg_fetch_array($rslt)) {
            $Tp[$row["accname"]] = $row["accname"];
        }
    }
    $bankacctypes = extlib_cpsel("bankacctype", $Tp, $bankacctype);
    // create the allowances and deductions storage fields
    $allowances = "";
    $allowances_ids = array();
    $sql = "SELECT * FROM allowances WHERE div = '" . USER_DIV . "' ORDER BY allowance";
    $allowRslt = db_exec($sql) or errDie("Unable to select allowances from database.");
    if (pg_numrows($allowRslt) > 0) {
        while ($myAllow = pg_fetch_array($allowRslt)) {
            $aid = $myAllow["id"];
            $allowances .= "\n\t\t\t\t<input type='hidden' name='allowid[{$aid}]' value='{$aid}'>\n\t\t\t\t<input type='hidden' name='allowname[{$aid}]' value='{$myAllow['allowance']}'>\n\t\t\t\t<input type='hidden' name='allowtax[{$aid}]' value='{$myAllow['add']}'>\n\t\t\t\t<input type='hidden' name='allowances[{$aid}]' value=''>\n\t\t\t\t<input type='hidden' name='allowaccid[{$aid}]' value='{$myAllow['accid']}'>\n\t\t\t\t<input type='hidden' name='allowtype[{$aid}]' value='{$myAllow['type']}'>";
            $allowances_ids[] = $aid;
        }
    }
    $subsistence = "";
    $subsistence_ids = array();
    $sql = "SELECT * FROM subsistence WHERE div='" . USER_DIV . "' ORDER BY name";
    $rslt = db_exec($sql) or errDie("Error reading subsistence allowances.");
    if (pg_num_rows($rslt) > 0) {
        while ($subs = pg_fetch_array($rslt)) {
            $sid = $subs["id"];
            $subsistence_ids[] = $sid;
            if (!isset($subsamt[$sid])) {
                $subsamt[$sid] = "0.00";
            }
            if (!isset($subsdays[$sid])) {
                $subsdays[$sid] = 0;
            }
            $subsistence .= "\n\t\t\t\t<input type='hidden' name='subsname[{$sid}]' value='{$subs['name']}'>\n\t\t\t\t<input type='hidden' name='subsamt[{$sid}]' value='{$subsamt[$sid]}'>\n\t\t\t\t<input type='hidden' name='subsacc[{$sid}]' value='{$subs['accid']}'>\n\t\t\t\t<input type='hidden' name='subsdays[{$sid}]' value='{$subsdays[$sid]}'>";
        }
    }
    $deductions = "";
    $deductions_ids = array();
    $sql = "SELECT * FROM salded WHERE div = '" . USER_DIV . "' ORDER BY deduction";
    $deductRslt = db_exec($sql) or errDie("Unable to select deductions from database.");
    if (pg_numrows($deductRslt) > 0) {
        while ($myDeduct = pg_fetch_array($deductRslt)) {
            $did = $myDeduct["id"];
            if ($myDeduct["creditor"] == "In House") {
                $deduct_acc = "{$myDeduct['expaccid']}";
            } else {
                $deduct_acc = "{$myDeduct['accid']}";
            }
            $deductions .= "\n\t\t\t\t<input type='hidden' name='deductid[{$did}]' value='{$did}'>\n\t\t\t\t<input type='hidden' name='deductname[{$did}]' value='{$myDeduct['deduction']}'>\n\t\t\t\t<input type='hidden' name='deducttax[{$did}]' value='{$myDeduct['add']}'>\n\t\t\t\t<input type='hidden' name='deductions[{$did}]' value=''>\n\t\t\t\t<input type='hidden' name='comp_deductions[{$did}]' value=''>\n\t\t\t\t<input type='hidden' name='deducttype[{$did}]' value='{$myDeduct['type']}'>\n\t\t\t\t<input type='hidden' name='deductaccid[{$did}]' value='{$deduct_acc}'>";
            $deductions_ids[] = $did;
        }
    }
    $fringebens = "";
    $fringebens_ids = array();
    $sql = "SELECT * FROM fringebens WHERE div = '" . USER_DIV . "' ORDER BY fringeben";
    $rslt = db_exec($sql) or errDie("Error to read fringe benefits.");
    if (pg_num_rows($rslt) > 0) {
        while ($myFringe = pg_fetch_array($rslt)) {
            $fid = $myFringe["id"];
            $fringebens .= "\n\t\t\t\t<input type='hidden' name='fringeid[{$fid}]' value='{$fid}'>\n\t\t\t\t<input type='hidden' name='fringename[{$fid}]' value='{$myFringe['fringeben']}'>\n\t\t\t\t<input type='hidden' name='fringebens[{$fid}]' value=''>\n\t\t\t\t<input type='hidden' name='fringetype[{$fid}]' value='{$myFringe['type']}'>\n\t\t\t\t<input type='hidden' name='fringeexpacc[{$fid}]' value='{$myFringe['accid']}'>";
            $fringebens_ids[] = $fid;
        }
    }
    $lvac = getLeave("leave_vac");
    $lsick = getLeave("leave_sick");
    $lstudy = getLeave("leave_study");
    db_conn('cubit');
    $Sl = "SELECT * FROM costcenters";
    $Ri = db_exec($Sl);
    $ctd = "\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Cost Center</th>\n\t\t\t\t<th>Percentage</th>\n\t\t\t</tr>";
    $i = 0;
    while ($data = pg_fetch_array($Ri)) {
        $bgcolor = bgcolor($i);
        $Sl = "SELECT * FROM empc WHERE emp='0' AND cid='{$data['ccid']}'";
        $Rq = db_exec($Sl);
        $cd = pg_fetch_array($Rq);
        $ctd .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>{$data['centername']}</td>\n\t\t\t\t<td><input type='text' name='ct[{$data['ccid']}]' size='5' value='{$cd['amount']}'>%</td>\n\t\t\t</tr>";
    }
    if ($i > 0) {
        $ctd .= "</table>";
    } else {
        $ctd = "";
    }
    // setup the display value for the renumeration, in case we get sent back to this step because of
    // validation errors, at least the salary is still displayed
    switch ($saltyp) {
        case 'w':
            $salperiod = 'per Week';
            $saldivisor = 52;
            break;
        case 'h':
            $salperiod = 'per Hour';
            $saldivisor = 52 * $hpweek;
            break;
        case 'f':
            $salperiod = 'Fortnightly';
            $saldivisor = 26;
            break;
        case 'm':
        default:
            $salperiod = 'per Month';
            $saldivisor = 12;
            break;
    }
    $salval = CUR . " " . sprint($basic_sal_annum / $saldivisor) . " {$salperiod}";
    $r_sel1 = "";
    $r_sel2 = "";
    $r_sel3 = "";
    $r_sel4 = "";
    if ($race == "african") {
        $r_sel1 = "selected";
    } elseif ($race == "coloured") {
        $r_sel2 = "selected";
    } elseif ($race == "indian") {
        $r_sel3 = "selected";
    } elseif ($race == "white") {
        $r_sel4 = "selected";
    }
    $racedrop = "\n\t\t<select name='race'>\n\t\t\t<option {$r_sel1} value='african'>African</option>\n\t\t\t<option {$r_sel2} value='coloured'>Coloured</option>\n\t\t\t<option {$r_sel3} value='indian'>Indian (Asian)</option>\n\t\t\t<option {$r_sel4} value='white'>White</option>\n\t\t</select>";
    #get occ cats
    $get_cats = "SELECT * FROM occ_cat ORDER BY id";
    $run_cats = db_exec($get_cats) or errDie("Unable to get occupational categories.");
    if (pg_numrows($run_cats) < 1) {
        //return "";
    } else {
        $occ_cat_drop = "<select name='occ_cat'>";
        while ($carr = pg_fetch_array($run_cats)) {
            if ($occ_cat == $carr['id']) {
                $occ_cat_drop .= "<option value='{$carr['id']}' selected>{$carr['cat']}</option>";
            } else {
                $occ_cat_drop .= "<option value='{$carr['id']}'>{$carr['cat']}</option>";
            }
        }
        $occ_cat_drop .= "</select>";
    }
    #get occ category
    $occ_level = "SELECT * FROM occ_level ORDER BY id";
    $run_level = db_exec($occ_level) or errDie("Unable to get occupational levels.");
    if (pg_numrows($run_level) < 1) {
        $occ_level_drop = "<input type='hidden' name='occ_level' value='0'>";
    } else {
        $occ_level_drop = "<select name='occ_level'>";
        while ($larr = pg_fetch_array($run_level)) {
            if ($occ_level == $larr['id']) {
                $occ_level_drop .= "<option value='{$larr['id']}' selected>{$larr['level']}</option>";
            } else {
                $occ_level_drop .= "<option value='{$larr['id']}'>{$larr['level']}</option>";
            }
        }
        $occ_level_drop .= "</select>";
    }
    $get_dep = "SELECT * FROM departments ORDER BY id";
    $run_dep = db_exec($get_dep) or errDie("Unable to get departments information.");
    if (pg_numrows($run_dep) < 1) {
        $dep_drop = "<input type='hidden' name='department' value='0'>";
    } else {
        $dep_drop = "<select name='department'>";
        while ($darr = pg_fetch_array($run_dep)) {
            if ($department == "{$darr['id']}") {
                $dep_drop .= "<option value='{$darr['id']}' selected>{$darr['department']}</option>";
            } else {
                $dep_drop .= "<option value='{$darr['id']}'>{$darr['department']}</option>";
            }
        }
        $dep_drop .= "</select>";
    }
    $get_pos = "SELECT * FROM pos_filled ORDER BY id";
    $run_pos = db_exec($get_pos) or errDie("Unable to get position filled information.");
    if (pg_numrows($run_pos) < 1) {
        $pos_filled_drop = "<input type='hidden' name='pos_filled' value='0'>";
    } else {
        $pos_filled_drop = "<select name='pos_filled'>";
        while ($parr = pg_fetch_array($run_pos)) {
            if ($pos_filled == $parr['id']) {
                $pos_filled_drop .= "<option value='{$parr['id']}' selected>{$parr['method']}</option>";
            } else {
                $pos_filled_drop .= "<option value='{$parr['id']}'>{$parr['method']}</option>";
            }
        }
        $pos_filled_drop .= "</select>";
    }
    $get_union = "SELECT * FROM unions ORDER BY id";
    $run_union = db_exec($get_union) or errDie("Unable to get unions information.");
    if (pg_numrows($run_pos) < 1) {
        $union_drop = "<input type='hidden' name='union_name' value='0'>";
    } else {
        $union_drop = "<select name='union_name'>";
        while ($uarr = pg_fetch_array($run_union)) {
            if ($union_name == $uarr['id']) {
                $union_drop .= "<option value='{$uarr['id']}' selected>{$uarr['union_name']}</option>";
            } else {
                $union_drop .= "<option value='{$uarr['id']}'>{$uarr['union_name']}</option>";
            }
        }
        $union_drop .= "</select>";
    }
    db_connect();
    #get emp groups
    $get_egroups = "SELECT * FROM emp_groups ORDER BY emp_group";
    $run_egroups = db_exec($get_egroups) or errDie("Unable to get employee group information.");
    if (pg_numrows($run_egroups) < 1) {
        $emp_group_drop = "<input type='hidden' name='emp_group' value='0'>";
    } else {
        $emp_group_drop = "<select name='emp_group'>";
        //		$emp_group_drop .= "<option value='0'>Select Group</option>";
        while ($earr = pg_fetch_array($run_egroups)) {
            if (isset($emp_group) and $emp_group == $earr['id']) {
                $emp_group_drop .= "<option value='{$earr['id']}' selected>{$earr['emp_group']}</option>";
            } else {
                $emp_group_drop .= "<option value='{$earr['id']}'>{$earr['emp_group']}</option>";
            }
        }
        $emp_group_drop .= "</select>";
    }
    $i = 0;
    $natures = array("A" => "Individual with an identity- or password number", "B" => "Individual without an identity- or passport number", "C" => "Director of a private company / member of a close corporation", "D" => "Trust", "E" => "Company / cc", "F" => "Partnership", "G" => "Corporation", "H" => "Employment company / personal service company or cc", "K" => "Employment trust / personal service trust", "M" => "Foreign service income (may only be used with foreign income codes)");
    $natures_drop = "<select name='person_nature'>";
    foreach ($natures as $code => $nature) {
        if ($person_nature == $code) {
            $natures_drop .= "<option value='{$code}' selected'>{$code} - {$nature}</option>";
        } else {
            $natures_drop .= "<option value='{$code}'>{$code} - {$nature}</option>";
        }
    }
    $natures_drop .= "</select>";
    # Set up table & form
    $enterEmp = "\n\t\t<h3>Add New Employee to Database</h3>\n\t\t<script>\n\t\t\tfunction calcsalary() {\n\t\t\t\tfrm = document.emplfrm;\n\t\t\t\tpasson = '?key=salary'\n\t\t\t\tpasson += '&saltyp=' + document.getElementById('emplfrm').saltyp.value;\n\t\t\t\tpasson += '&all=" . implode("|", $allowances_ids) . "';\n\t\t\t\tpasson += '&ded=" . implode("|", $deductions_ids) . "';\n\t\t\t\tpasson += '&frin=" . implode("|", $fringebens_ids) . "';\n\t\t\t\tpasson += '&subs=" . implode("|", $subsistence_ids) . "';\n\t\t\t\tpopupSized('" . SELF . "' + passon, 'salpopup', 400, 550, '');\n\t\t\t}\n\n\t\t\tfunction updateBirthDate(id) {\n\t\t\t\tbdate = document.getElementById('birthdate');\n\t\t\t\tif ( id.value.length < 6 ) {\n\t\t\t\t\treturn invalidBirthDate(bdate);\n\t\t\t\t} else {\n\t\t\t\t\tbd_year = 1900 + parseFloat(id.value.substr(0,2));\n\t\t\t\t\tbd_month = parseFloat(id.value.substr(2,2));\n\t\t\t\t\tbd_day = parseFloat(id.value.substr(4,2));\n\t\t\t\t\t// check if month and day is valid\n\t\t\t\t\tif ( bd_day == 0 ) return invalidBirthDate(bdate);\n\t\t\t\t\tswitch ( bd_month ) {\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\tif ( (bd_year % 4 && bd_day > 28) || (bd_year % 4 == 0 && bd_day > 29) )\n\t\t\t\t\t\t\treturn invalidBirthDate(bdate);\n\t\t\t\t\tcase 4: case 6: case 9: case 11:\n\t\t\t\t\t\tif ( bd_day > 30 )\n\t\t\t\t\t\t\treturn invalidBirthDate(bdate);\n\t\t\t\t\tcase 1: case 3: case 5: case 7: case 8: case 10: case 12:\n\t\t\t\t\t\tif ( bd_day > 31 )\n\t\t\t\t\t\t\treturn invalidBirthDate(bdate);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn invalidBirthDate(bdate);\n\t\t\t\t\t}\n\t\t\t\t\tbd_desc = bd_year + ' / ' + bd_month + ' / ' + bd_day;\n\t\t\t\t\tbdate.innerHTML = bd_desc;\n\t\t\t\t\tbdate.style.color = '#000';\n\t\t\t\t\tbdate.style.fontWeight = 'bold';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction updateHourSal(hours) {\n\t\t\t\tefrm = document.getElementById('emplfrm');\n\t\t\t\tif ( efrm.saltyp.value == 'h' ) {\n\t\t\t\t\tsalperiod = 'per Hour';\n\t\t\t\t\tsaldivisor = 52 * hours;\n\t\t\t\t\tsalamount = parseFloat(efrm.basic_sal_annum.value) / saldivisor;\n\t\t\t\t\tsalamount = salamount.toFixed(2);\n\t\t\t\t\tsalvalue = '" . CUR . "' + salamount + ' ' + salperiod;\n\t\t\t\t\tdocument.getElementById('div_basic_sal').innerHTML = salvalue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction invalidBirthDate(bdate) {\n\t\t\t\tbdate.innerHTML = 'Invalid ID Number';\n\t\t\t\tbdate.style.color = '#f00';\n\t\t\t\tbdate.style.fontWeight = 'bold';\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t</script>\n\n\t\t<table " . TMPL_tblDflts . ">\n\t\t<form id='emplfrm' action='" . SELF . "' method='POST' name='form1'>\n\t\t\t<input type='hidden' name='key' value='confirm' />\n\t\t\t<input type='hidden' name='saltyp' value='{$saltyp}' />\n\t\t\t<input type='hidden' name='basic_sal_annum' value='{$basic_sal_annum}' />\n\t\t\t<input type='hidden' name='sal_bonus' value='{$sal_bonus}' />\n\t\t\t<input type='hidden' name='sal_bonus_month' value='{$sal_bonus_month}' />\n\t\t\t<input type='hidden' name='all_travel' value='{$all_travel}' />\n\t\t\t<input type='hidden' name='comp_sdl' value='{$comp_sdl}' />\n\t\t\t<input type='hidden' name='comp_uif' value='{$comp_uif}' />\n\t\t\t<input type='hidden' name='comp_other' value='{$comp_other}' />\n\t\t\t<input type='hidden' name='comp_provident' value='{$comp_provident}' />\n\t\t\t<input type='hidden' name='comp_medical' value='{$comp_medical}' />\n\t\t\t<input type='hidden' name='comp_ret' value='{$comp_ret}' />\n\t\t\t<input type='hidden' name='comp_pension' value='{$comp_pension}' />\n\t\t\t<input type='hidden' name='emp_uif' value='{$emp_uif}' />\n\t\t\t<input type='hidden' name='emp_other' value='{$emp_other}' />\n\t\t\t<input type='hidden' name='emp_provident' value='{$emp_provident}' />\n\t\t\t<input type='hidden' name='emp_medical' value='{$emp_medical}' />\n\t\t\t<input type='hidden' name='emp_meddeps' value='{$emp_meddeps}' />\n\t\t\t<input type='hidden' name='emp_ret' value='{$emp_ret}' />\n\t\t\t<input type='hidden' name='emp_pension' value='{$emp_pension}' />\n\t\t\t<input type='hidden' name='fringe_car1' value='{$fringe_car1}' />\n\t\t\t<input type='hidden' name='fringe_car1_contrib' value='{$fringe_car1_contrib}' />\n\t\t\t<input type='hidden' name='fringe_car1_fuel' value='{$fringe_car1_fuel}' />\n\t\t\t<input type='hidden' name='fringe_car1_service' value='{$fringe_car1_service}' />\n\t\t\t<input type='hidden' name='fringe_car2' value='{$fringe_car2}' />\n\t\t\t<input type='hidden' name='fringe_car2_contrib' value='{$fringe_car2_contrib}' />\n\t\t\t<input type='hidden' name='fringe_car2_fuel' value='{$fringe_car2_fuel}' />\n\t\t\t<input type='hidden' name='fringe_car2_service' value='{$fringe_car2_service}' />\n\t\t\t<input type='hidden' name='emp_usescales' value='{$emp_usescales}' />\n\t\t\t<input type='hidden' name='payprd' value='{$payprd}' />\n\t\t\t<input type='hidden' name='payprd_day' value='{$payprd_day}' />\n\t\t\t<input type='hidden' name='paytype' value='{$paytype}' />\n\t\t\t{$allowances}\n\t\t\t{$deductions}\n\t\t\t{$fringebens}\n\t\t\t{$subsistence}\n\t\t\t{$err}\n\t\t\t<tr>\n\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t<td align='right'><input type='submit' name='confirmed' value='Confirm &raquo;'></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td valign='top'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan='2'>Employee Details</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Emp Num</td>\n\t\t\t\t\t\t\t<td><input type='text' size='20' name='empnum' value='{$empnum}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>" . REQ . "Surname</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='sname' value='{$sname}'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>" . REQ . "First Names</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='fnames' value='{$fnames}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>" . REQ . "ID Num</td>\n\t\t\t\t\t\t\t<td><input type='text' size='20' name='idnum' value='{$idnum}' onChange='updateBirthDate(this);'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t' align='center' colspan='2'><b>OR</b></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Passport Num</td>\n\t\t\t\t\t\t\t<td><input type='text' size='20' name='passportnum' value='{$passportnum}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Birthdate</td>\n\t\t\t\t\t\t\t<td><div id='birthdate'></div></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Sex</td>\n\t\t\t\t\t\t\t<td valign='center'>{$sexs}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td>Race</td>\n\t\t\t\t\t\t\t<td>{$racedrop}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Disabled Status</td>\n\t\t\t\t\t\t\t<td><input type='text' name='disabled_stat' value='{$disabled_stat}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Marital Status</td>\n\t\t\t\t\t\t\t<td valign='center'>{$maritals}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td>Resident</td>\n\t\t\t\t\t\t\t<td valign='center'>{$residents}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Employee Group</td>\n\t\t\t\t\t\t\t<td>{$emp_group_drop}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Telephone No</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='telno' value='{$telno}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td>Email</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='email' value='{$email}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Bank Name</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='bankname' value='{$bankname}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Branch Code</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='bankcode' value='{$bankcode}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Bank Account Type</td>\n\t\t\t\t\t\t\t<td valign='center'>{$bankacctypes}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Bank Account No</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='bankaccno' value='{$bankaccno}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>" . REQ . "Residential Address</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='res1' value='{$res1}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='res2' value='{$res2}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='res3' value='{$res3}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='res4' value='{$res4}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Postal Address</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='pos1' value='{$pos1}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='pos2' value='{$pos2}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Postal Code</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='pcode' value='{$pcode}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Upload Image</td>\n\t\t\t\t\t\t\t<td>Yes<input type='radio' name='changelogo' value='yes'> - No<input type='radio' name='changelogo' value='no' checked='yes'>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan='2'>Friend Not Living With Employee</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td>Surname</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='contsname' value='{$contsname}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>First Names</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='contfnames' value='{$contfnames}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Residential Address</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='contres1' value='{$contres1}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='contres2' value='{$contres2}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='contres3' value='{$contres3}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td nowrap='t'>Telephone No</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='conttelno' value='{$conttelno}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t\t{$ctd}\n\t\t\t\t</td>";
    $empfin_start = "March " . getYearOfEmpMon(3) . " - February " . getYearOfEmpMon(2);
    $get_medical_aids = "SELECT * FROM medical_aid ORDER BY medical_aid_name";
    $run_medical_aids = db_exec($get_medical_aids) or errDie("Unable to get medical aid options.");
    if (pg_numrows($run_medical_aids) < 1) {
        $medical_aid_drop = "<input type='hidden' name='medical_aid' value='0'>None Found. <a target='_blank' href='medical_aid_add.php'>Add Medical Aid Option</a>";
    } else {
        $medical_aid_drop = "<select name='medical_aid'>";
        while ($marr = pg_fetch_array($run_medical_aids)) {
            if (isset($medical_aid) and $medical_aid == $marr['id']) {
                $medical_aid_drop .= "<option value='{$marr['id']}' selected>{$marr['medical_aid_name']}</option>";
            } else {
                $medical_aid_drop .= "<option value='{$marr['id']}'>{$marr['medical_aid_name']}</option>";
            }
        }
        $medical_aid_drop .= "</select>";
    }
    $enterEmp .= "\n\t\t\t<td valign='top'>\n\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th colspan='2'>Tax from Previous Employer for Current Employee Financial Year ({$empfin_start})</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td colspan='2' class='err'>It is important to enter\n\t\t\t\t\t\t\tthe taxable earnings of an employee for the period\n\t\t\t\t\t\t\tfrom the beginning\n\t\t\t\t\t\t\tof March to the date of actual employment, irrespective\n\t\t\t\t\t\t\tof the employer's financial year end. Cubit is\n\t\t\t\t\t\t\tconfigured to take those earnings and PAYE\n\t\t\t\t\t\t\tpaid in respect of such earnings during the employee's tax\n\t\t\t\t\t\t\tyear, which is March to February, into consideration in the\n\t\t\t\t\t\t\tdetermination of PAYE of the employee.\n\t\t\t\t\t\t\tConsequently the PAYE determined by Cubit will be\n\t\t\t\t\t\t\tdifferent to most Payroll systems, but\n\t\t\t\t\t\t\tmay be far more accurate.</li>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td colspan='2' class='err'>If \"0\" is inserted below in respect of the employee's\n\t\t\t\t\t\t\tprior taxable earnings and PAYE, Cubit is configured to assume\n\t\t\t\t\t\t\tthat the hire date is the first time that the employee is employed\n\t\t\t\t\t\t\tfor the purpose of income tax.\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td colspan='2' class='err'>\n\t\t\t\t\t\t\tIf you do not have the previous employee earnings data you can \n\t\t\t\t\t\t\tcalculate an estimated amount and an estimated amount of\n\t\t\t\t\t\t\ttax, but do not leave the fields on '0' as this will result in incorrect\n\t\t\t\t\t\t\tcalculation of present taxes.\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td nowrap='t'>" . REQ . " Total Remuneration from Previous Employer (or your estimate)</td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='prevemp_remun' value='{$prevemp_remun}' /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td nowrap='t'>" . REQ . " Total Tax from Previous Employer (or your estimate)</td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='prevemp_tax' value='{$prevemp_tax}' /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th colspan='2'>Employment Details</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolorc($i) . "'>\n\t\t\t\t\t\t<td rowspan='2'>Remuneration</td>\n\t\t\t\t\t\t<td><div id='div_basic_sal'>{$salval}</div></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<!-- ROWSPAN -->\n\t\t\t\t\t\t<td><input type='button' onClick='javascript: calcsalary();' value='Calculate Salary'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Medical Aid</td>\n\t\t\t\t\t\t<td>{$medical_aid_drop}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Medical Aid Number</td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='medical_aid_number' value='{$medical_aid_number}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Hours Per Week</td>\n\t\t\t\t\t\t<td valign='top'><input type='text' size='3' name='hpweek' value='{$hpweek}' onChange='updateHourSal(this.value)'>&nbsp;&nbsp;Hours</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolorc($i) . "'>\n\t\t\t\t\t\t<td rowspan='2'>Overtime rate</td>\n\t\t\t\t\t\t<td valign='top'>Normal: <input type='text' name='novert' value='{$novert}' size='3' /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<!-- rowspan-->\n\t\t\t\t\t\t<td valign='top'>Public holidays: <input type='text' name='hovert' value='{$hovert}' size='3' /></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Income Tax Ref No.</td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='taxref' value='{$taxref}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>" . REQ . " Hire Date<li class='err'>Please use correct date</li></td>\n\t\t\t\t\t\t<td nowrap='t'>" . mkDateSelect("hd", $hd_year, $hd_month, $hd_day) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Temporary (Employee or Contract)</td>\n\t\t\t\t\t\t<td><input type='radio' name='temporary' value='yes'> Yes <input type='radio' name='temporary' value='no' checked='yes'> No</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>If Temporary: Termination Date</td>\n\t\t\t\t\t\t<td valign='bottom' nowrap>\n\t\t\t\t\t\t\t" . mkDateSelect("t") . "\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Nature Of Person</td>\n\t\t\t\t\t\t<td>{$natures_drop}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Designation (Job Title)</td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='designation' value='{$designation}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Department</td>\n\t\t\t\t\t\t<td>{$dep_drop}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Occupational Category</td>\n\t\t\t\t\t\t<td>{$occ_cat_drop}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Occupational Level</td>\n\t\t\t\t\t\t<td>{$occ_level_drop}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>This Position Filled</td>\n\t\t\t\t\t\t<td>{$pos_filled_drop}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Recruitment From</td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='recruitment_from' value='{$recruitment_from}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Reason for Employment</td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='employment_reason' value='{$employment_reason}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Union Name</td>\n\t\t\t\t\t\t<td>{$union_drop} <a href='#' onClick=\"window.open('union-add.php','unionadd','width=600, height=400');\">Add Union</a></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Union Membership Number</td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='union_mem_num' value='{$union_mem_num}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Union Position</td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='union_pos' value='{$union_pos}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Vacation Leave</td>\n\t\t\t\t\t\t<td valign='top'><input type='text' size='3' name='vaclea' value='{$lvac}'> days</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Sick Leave</td>\n\t\t\t\t\t\t<td valign='top'><input type='text' size='3' name='siclea' value='{$lsick}'> days</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>Study Leave</td>\n\t\t\t\t\t\t<td valign='top'><input type='text' size='3' name='stdlea' value='{$lstudy}'> days</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>&nbsp;</td>\n\t\t\t<td align='right'><input type='submit' name='confirmed' value='Confirm &raquo;'></td>\n\t\t</tr>\n\t</table>\n\t</form>" . mkQuickLinks();
    return $enterEmp;
}
function printPayslip($id)
{
    global $PRDMON, $MONPRD;
    extract($_REQUEST);
    /* reversals once passed as negative ids */
    if ($id[0] == "-") {
        $rev = true;
    }
    $id = preg_replace("/^-/", "", $id);
    require_lib("validate");
    $v = new validate();
    $v->isOk($id, "num", 1, 20, "Invalid payslip number.");
    if ($v->isError()) {
        return $v->genErrors();
    }
    db_conn('cubit');
    if (isset($rev)) {
        $sql = "SELECT * FROM salr WHERE id = '{$id}'";
        $rslt = db_exec($sql) or errDie("Unable to select employee payments from database.");
        if (pg_numrows($rslt) < 1) {
            return "<li> - Employee payment not found for selected month (REV)</li>";
        }
        $payr = pg_fetch_array($rslt);
        $sql = "SELECT * FROM salpaid WHERE month='{$payr['month']}' AND empnum='{$payr['empnum']}' AND true_ids<'{$payr['true_ids']}' ORDER BY id DESC";
        $rslt = db_exec($sql) or errDie("Unable to select employee payments from database.");
        $pay = pg_fetch_array($rslt);
        $pay["hovert"] -= $payr["hovert"];
        $pay["novert"] -= $payr["novert"];
        $pay["salary"] -= $payr["salary"];
        $slip_id = "-{$id}";
        $revmsg = "Reversal";
        $max_trueid = $payr["true_ids"];
    } else {
        $sql = "SELECT * FROM salpaid WHERE id = '{$id}'";
        $rslt = db_exec($sql) or errDie("Unable to select employee payments from database.");
        $pay = pg_fetch_array($rslt);
        $slip_id = $id;
        $revmsg = "Advice";
        $max_trueid = $pay["true_ids"];
    }
    //$pay["salary"] += $pay["comm"];
    $sql = "SELECT * FROM employees WHERE empnum='{$pay['empnum']}'";
    $rslt = db_exec($sql) or errDie("Unable to select employees from database.");
    if (pg_numrows($rslt) < 1) {
        $sql = "SELECT * FROM lemployees WHERE empnum='{$pay['empnum']}' AND div = '" . USER_DIV . "'";
        $rslt = db_exec($sql) or errDie("Unable to select employees from database.");
    }
    $emp = pg_fetch_array($rslt);
    $date = $pay['saldate'];
    /* paye */
    // from = begining of finyear
    if (date("m") > $PRDMON[12]) {
        $fromdate = date("Y") . "-" . $PRDMON[1] . "-01";
    } else {
        $fromdate = date("Y") - 1 . "-" . $PRDMON[1] . "-01";
    }
    /* salaries */
    $sql = "SELECT sum(paye) FROM salpaid\n\t\t\tWHERE saldate>='{$fromdate}' AND saldate<='{$pay['saldate']}'\n\t\t\t\tAND empnum='{$pay['empnum']}' AND true_ids<={$max_trueid}";
    $rslt = db_exec($sql) or errDie("Unable to get paye");
    $paye = pg_fetch_result($rslt, 0, 0);
    /* salary reversals */
    $sql = "SELECT sum(paye) FROM salr\n\t\t\tWHERE saldate>='{$fromdate}' AND saldate<='{$pay['saldate']}'\n\t\t\t\tAND empnum='{$pay['empnum']}' AND true_ids<={$max_trueid}";
    $rslt = db_exec($sql) or errDie("Unable to get paye");
    $paye -= pg_fetch_result($rslt, 0, 0);
    $emp['basic_sal'] = sprint($emp['basic_sal']);
    $dates = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td width='50%'>Date</td>\n\t\t\t\t<td width='50%'>{$date}</td>\n\t\t\t</tr>\n\t\t</table>";
    $i = 0;
    $incomes = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td width='80%' align='center'>Description</td>\n\t\t\t\t<td align='center'>Amount</td>\n\t\t\t</tr>";
    db_conn('cubit');
    $sql = "SELECT * FROM emp_inc WHERE payslip='{$slip_id}' ORDER BY amount DESC";
    $rslt = db_exec($sql) or errDie("Unable to get data.");
    $tot_incomes = 0;
    while ($data = pg_fetch_array($rslt)) {
        $data["amount"] = sprint(abs($data["amount"]));
        $incomes .= "\n\t\t<tr>\n\t\t\t<td>{$data['description']}</td>\n\t\t\t<td align='right' nowrap>" . CUR . " {$data['amount']}</td>\n\t\t</tr>";
        if ($data["type"] == "INCO") {
            if ($pay["novert"] > 0) {
                $incomes .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2'>&nbsp;&nbsp;&nbsp; {$pay['novert']} Hours Normal Overtime</td>\n\t\t\t\t</tr>";
                ++$i;
            }
            if ($pay["hovert"] > 0) {
                $incomes .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2'>&nbsp;&nbsp;&nbsp; {$pay['hovert']} Hours Holiday Overtime</td>\n\t\t\t\t</tr>";
                ++$i;
            }
        }
        $i++;
        if ($data["description"] != "Fringe Benefits Total") {
            $tot_incomes = $tot_incomes + $data['amount'];
        }
    }
    while ($i < 7) {
        $incomes .= TBL_BR;
        $i++;
    }
    $incomes .= "\n\t</table>";
    $i = 0;
    $comp_parts = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td align='center'>Description</td>\n\t\t\t\t<td align='center'>Amount</td>\n\t\t\t</tr>";
    $sql = "SELECT * FROM emp_com WHERE payslip='{$slip_id}' AND description !='SDL'\n\t\t\tORDER BY amount DESC";
    $rslt = db_exec($sql) or errDie("Unable to get data.");
    while ($data = pg_fetch_array($rslt)) {
        $data["amount"] = sprint(abs($data["amount"]));
        $comp_parts .= "\n\t\t<tr>\n\t\t\t<td width='80%'>{$data['description']}</td>\n\t\t\t<td width='20%' align='right' nowrap>" . CUR . " {$data['amount']}</td>\n\t\t</tr>";
        $i++;
    }
    while ($i < 7) {
        $comp_parts .= TBL_BR;
        $i++;
    }
    $comp_parts .= "\n\t</table>";
    $i = 0;
    $deductions = "\n\t<table " . TMPL_tblDflts . " width='100%'>\n\t<tr>\n\t\t<td width='90%' align='center'>Description</td>\n\t\t<td align='center'>Amount</td>\n\t</tr>";
    $sql = "SELECT * FROM emp_ded WHERE payslip='{$slip_id}' ORDER BY amount DESC";
    $rslt = db_exec($sql) or errDie("Unable to get data.");
    $tot_deductions = 0;
    while ($data = pg_fetch_array($rslt)) {
        if ($data["type"] == "PAYE" && $data["amount"] <= 375) {
            $data["description"] = "SITE";
        }
        $data["amount"] = sprint(abs($data["amount"]));
        $deductions .= "\n\t\t<tr>\n\t\t\t<td>{$data['description']}</td>\n\t\t\t<td align='right' nowrap>" . CUR . " {$data['amount']}</td>\n\t\t</tr>";
        $i++;
        $tot_deductions += $data['amount'];
    }
    while ($i < 6) {
        $deductions .= TBL_BR;
        $i++;
    }
    $deductions .= "\n\t</table>";
    $fringe = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td width='90%' align='center'>Description</td>\n\t\t\t\t<td align='center'>Amount</td>\n\t\t\t</tr>";
    $sql = "SELECT * FROM emp_frin WHERE payslip='{$slip_id}' ORDER BY amount DESC";
    $rslt = db_exec($sql) or errDie("Unable to get data.");
    $tot_fringe = 0;
    $i = 0;
    while ($data = pg_fetch_array($rslt)) {
        $data["amount"] = sprint(abs($data["amount"]));
        $fringe .= "\n\t\t<tr>\n\t\t\t<td>{$data['description']}</td>\n\t\t\t<td align='right' nowrap>" . CUR . " {$data['amount']}</td>\n\t\t</tr>";
        $i++;
        $tot_fringe += $data['amount'];
    }
    while ($i < 6) {
        $fringe .= TBL_BR;
        $i++;
    }
    $fringe .= "\n\t</table>";
    $pay["salary"] = sprint($pay["salary"]);
    if ($emp["payprd"] == "m") {
        $salprd = getMonthName($pay["month"]) . " " . getYearOfEmpMon($pay["month"]);
    } else {
        if ($emp["payprd"] == "d") {
            $salprd = $pay["week"] . getMonthName($pay["month"]) . " " . getYearOfEmpMon($pay["month"]);
        } else {
            if ($emp["payprd"] == "w") {
                $stdate = mktime(0, 0, 0, $pay["month"], 1, getYearOfEmpMon($pay["month"]));
                $endate = mktime(0, 0, 0, $pay["month"] + 1, 0, getYearOfEmpMon($pay["month"]));
                $i = 1;
                while ($stdate <= $endate) {
                    if (date("w", $stdate) == 5) {
                        if ($i == $pay["week"]) {
                            $salprd = date("j", $stdate) . " " . getMonthName($pay["month"]) . " " . getYearOfEmpMon($pay["month"]);
                            break;
                        }
                        ++$i;
                    }
                    /* next day */
                    $stdate += 24 * 60 * 60;
                }
            } else {
                if ($emp["payprd"] == "f") {
                    $i = 1;
                    /* find first friday of tax year */
                    $stdate = mktime(0, 0, 0, 3, 1, getYearOfEmpMon(3));
                    while (date("w", $stdate) != 5) {
                        $stdate = mktime(0, 0, 0, 3, ++$i, DATE_YEAR);
                    }
                    // hack: go one week back so the +14 increases are easier
                    $stdate -= 7 * 24 * 3600;
                    /* end on the last day of the selected month */
                    $endate = mktime(0, 0, 0, $pay["month"] + 1, 0, getYearOfEmpMon($pay["month"]));
                    /* count weeks from start of tax year */
                    $i = 1;
                    while ($stdate <= $endate) {
                        if (date("m", $stdate) == $pay["month"]) {
                            if ($i == $pay["week"]) {
                                $salprd = date("j", $stdate) . " " . getMonthName($pay["month"]) . " " . getYearOfEmpMon($pay["month"]);
                                break;
                            }
                            ++$i;
                        }
                        /* next day */
                        $stdate += 24 * 60 * 60 * 14;
                    }
                }
            }
        }
    }
    $exstras = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td width='25%'>LEAVE DAYS DUE</td>\n\t\t\t\t<td width='25%'>" . getLeave($pay['empnum'], "leave_vac") . "</td>\n\t\t\t\t<td width='25%'><b>NETT PAY</b></td>\n\t\t\t\t<td width='25%'><b>" . CUR . " {$pay['salary']}</b></td>\n\t\t\t</tr>\n\t\t\t<tr>";
    if ($emp["saltyp"] == "h") {
        $exstras .= "\n\t\t<td width='25%'>Hours worked</td>\n\t\t<td width='25%'>{$pay['hours']} at " . CUR . " " . sprint($pay["salrate"]) . "/Hour</td>";
    } else {
        $exstras .= "\n\t\t<td width='25%'></td>\n\t\t<td width='25%'></td>";
    }
    $exstras .= "\n\t\t<td width='25%'>Total Employee's Tax</td>\n\t\t<td width='25%'>" . CUR . " " . sprint($paye) . "</td>\n\t</tr>\n\t</table>";
    $tot_incomes = sprint(abs($tot_incomes));
    $tot_deductions = sprint(abs($tot_deductions));
    $grossdata = "\n\t<table " . TMPL_tblDflts . " width='100%'>\n\t<tr>\n\t\t<td width='50%' align='center'><b>GROSS EARNINGS</b></td>\n\t\t<td width='50%' align='right'>" . CUR . " {$tot_incomes}</td>\n\t</tr>\n\t</table>";
    $PaySlip = "\n\t\t<center>\n\t\t<h2>" . COMP_NAME . " <br>Salary {$revmsg}</h2>\n\t\t<table " . TMPL_tblDflts . " border='1' width='750'>\n\t\t\t<tr>\n\t\t\t\t<td width='50%' align='center'><b>Employee Details:</b></td>\n\t\t\t\t<td>{$dates}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td valign='top'>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Name:</td>\n\t\t\t\t\t\t\t<td>{$emp['sname']}, {$emp['fnames']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Number:</td>\n\t\t\t\t\t\t\t<td>{$emp['enum']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>ID:</td>\n\t\t\t\t\t\t\t<td>{$emp['idnum']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Tax No:</td>\n\t\t\t\t\t\t\t<td>{$emp['taxref']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Rate:</td>\n\t\t\t\t\t\t\t<td>" . CUR . " {$emp['basic_sal']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Designation:</td>\n\t\t\t\t\t\t\t<td>{$emp['designation']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Gender:</td>\n\t\t\t\t\t\t\t<td>{$emp['sex']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Marital Status:</td>\n\t\t\t\t\t\t\t<td>{$emp['marital']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t\t<td valign='top'>\n\t\t\t        <table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td width='50%'>Period</td>\n\t\t\t\t\t\t\t<td width='50%'>{$salprd}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\n\t\t\t\t\t<table " . TMPL_tblDflts . " border='1' width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td align='center' colspan='2'><b>Company Details:</b></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Address:</td>\n\t\t\t\t\t\t\t<td>" . COMP_ADDRESS . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Tel:</td>\n\t\t\t\t\t\t\t<td>" . COMP_TEL . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Fax:</td>\n\t\t\t\t\t\t\t<td>" . COMP_FAX . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Reg No:</td>\n\t\t\t\t\t\t\t<td>" . COMP_REGNO . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>PAYE Ref:</td>\n\t\t\t\t\t\t\t<td>" . COMP_PAYE . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td align='center'><b>COMPANY CONTRIBUTIONS</b></td>\n\t\t\t\t<td align='center'><b>INCOME</b></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>{$comp_parts}</td>\n\t\t\t\t<td>{$incomes}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td align='center'></td>\n\t\t\t\t<td>{$grossdata}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td align='center'><b>DEDUCTIONS</b></td>\n\t\t\t\t<td align='center'><b>FRINGE BENEFITS</b></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>{$deductions}</td>\n\t\t\t\t<td>{$fringe}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td width='50%'><b>TOTAL DEDUCTIONS</b></td>\n\t\t\t\t\t\t\t<td width='50%'>" . CUR . " {$tot_deductions}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td width='50%' nowrap='t'><b>TOTAL FRINGE BENEFITS</b></td>\n\t\t\t\t\t\t\t<td width='50%'>" . CUR . " " . sprint($tot_fringe) . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan=2>{$exstras}</td>\n\t\t\t</tr>\n\t\t</table>";
    return $PaySlip;
}