function confirmLoan($_POST)
{
    # get vars
    extract($_POST);
    # validate input
    require_lib("validate");
    $v = new validate();
    $v->isOk($empnum, "num", 1, 20, "Invalid employee number.");
    $v->isOk($loanamt, "float", 1, 10, "Invalid loan amount.");
    $v->isOk($loanint, "float", 1, 5, "Invalid loan interest.");
    $v->isOk($loanperiod, "num", 1, 3, "Invalid payback period.");
    $v->isOk($lday, "num", 1, 2, "Invalid day.");
    $v->isOk($lmonth, "num", 1, 2, "Invalid month.");
    $v->isOk($accid, "num", 1, 9, "Invalid bank account selected.");
    $v->isOk($account, "num", 1, 9, "Invalid contra account selected.");
    $v->isOk($loan_account, "num", 1, 9, "Invalid loan account selected.");
    $v->isOk($loan_type, "num", 1, 9, "Invalid loan type selected.");
    if (empty($loanperiod)) {
        $v->addError("", "You need to enter a payback period.");
    }
    $lyear = getYearOfEmpMon($lmonth);
    if (!checkdate($lmonth, $lday, $lyear)) {
        $v->addError("", "Invalid date.");
    }
    # display errors, if any
    if ($v->isError()) {
        $confirmCust = "";
        $errors = $v->getErrors();
        foreach ($errors as $e) {
            $confirmCust .= "<li class='err'>" . $e["msg"] . "</li>";
        }
        return enterLoan($confirmCust);
    }
    # connect to db
    db_connect();
    # get employee info
    $sql = "SELECT sname, fnames, empnum, enum FROM employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "'";
    $empRslt = db_exec($sql) or errDie("Unable to select employee info from database.");
    if (pg_numrows($empRslt) < 1) {
        return "Invalid employee number: {$empnum}.";
    }
    $myEmp = pg_fetch_array($empRslt);
    $fringeset = getCSetting("EMPLOAN_FRINGEINT");
    # calculate monthly installments
    #why does the int amount get multiplied by the repayment years ? you only pay interest ONCE
    //	$loaninstall = sprint (((($loanamt * $loanint/100) * ($loanperiod/12)) + $loanamt) / $loanperiod);
    //	$fringeinstall = sprint (((($loanamt * $fringeset/100) * ($loanperiod/12)) + $loanamt) / $loanperiod);
    $loaninstall = sprint(($loanamt * $loanint / 100 * 1 + $loanamt) / $loanperiod);
    $fringeinstall = sprint(($loanamt * $fringeset / 100 * 1 + $loanamt) / $loanperiod);
    $totaldue = $loaninstall * $loanperiod;
    $totalinterest = $totaldue - $loanamt;
    $fringebenefit = sprint($fringeinstall * $loanperiod - $loanamt - $totalinterest);
    # format loanamt (2 decimal places)
    $loanamt = sprintf("%01.2f", $loanamt);
    if ($account != 0 && $accid != 0 || $account == 0 && $accid == 0) {
        return enterLoan("<li class='err'>Please select a bank account OR a general ledger account.</li>");
    }
    /* get bank acc/contra acc info */
    if ($account > 0) {
        db_conn('core');
        $sql = "SELECT * FROM accounts WHERE accid='{$account}'";
        $accRslt = db_exec($sql);
        if (pg_numrows($accRslt) < 1) {
            return "<li>There are No accounts in Cubit.</li>";
        }
        $acc = pg_fetch_array($accRslt);
        $ac = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Account</td>\n\t\t\t\t<td>{$acc['accname']}</td>\n\t\t\t</tr>";
    } else {
        # Get bank account name
        $sql = "SELECT * FROM bankacct WHERE bankid = '{$accid}' AND div = '" . USER_DIV . "'";
        $bankRslt = db_exec($sql);
        $bank = pg_fetch_array($bankRslt);
        $ac = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Bank Account</td>\n\t\t\t\t<td>{$bank['bankname']} - {$bank['accname']}</td>\n\t\t\t</tr>";
    }
    /* loan acc info */
    db_conn('core');
    $sql = "SELECT * FROM accounts WHERE accid='{$loan_account}'";
    $accRslt = db_exec($sql);
    if (pg_numrows($accRslt) < 1) {
        return enterLoan("<li class='err'>Invalid Loan Account Selected.</li><br>");
    }
    $acc = pg_fetch_array($accRslt);
    $loanac = "\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Account</td>\n\t\t\t<td>{$acc['accname']}</td>\n\t\t</tr>";
    /* date description */
    $datedesc = date("j F Y", mktime(0, 0, 0, $lmonth, $lday, $lyear));
    db_connect();
    #get loan type description
    $get_loan_type = "SELECT * FROM loan_types WHERE id = '{$loan_type}' LIMIT 1";
    $run_loan_type = db_exec($get_loan_type) or errDie("Unable to get loan type information.");
    if (pg_numrows($run_loan_type) < 1) {
        $showloantype = "Unknown Loan Type";
    } else {
        $larr = pg_fetch_array($run_loan_type);
        $showloantype = $larr['loan_type'];
    }
    $confirmLoan = "\n\t\t<h3>Confirm new loan application</h3>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t<input type='hidden' name='key' value='write'>\n\t\t\t<input type='hidden' name='empnum' value='{$empnum}'>\n\t\t\t<input type='hidden' name='lday' value='{$lday}'>\n\t\t\t<input type='hidden' name='lmonth' value='{$lmonth}'>\n\t\t\t<input type='hidden' name='lyear' value='{$lyear}'>\n\t\t\t<input type='hidden' name='loanamt' value='{$loanamt}'>\n\t\t\t<input type='hidden' name='loanint' value='{$loanint}'>\n\t\t\t<input type='hidden' name='loanperiod' value='{$loanperiod}'>\n\t\t\t<input type='hidden' name='loaninstall' value='{$loaninstall}'>\n\t\t\t<input type='hidden' name='fringebenefit' value='{$fringebenefit}'>\n\t\t\t<input type='hidden' name='accid' value='{$accid}'>\n\t\t\t<input type='hidden' name='account' value='{$account}'>\n\t\t\t<input type='hidden' name='loan_account' value='{$loan_account}'>\n\t\t\t<input type='hidden' name='loan_type' value='{$loan_type}'>\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'>{$myEmp['sname']}, {$myEmp['fnames']} ({$myEmp['enum']})</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Loan Date</td>\n\t\t\t\t<td align='center'>{$datedesc}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Loan Type</td>\n\t\t\t\t<td align='center'>{$showloantype}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Loan amount</td>\n\t\t\t\t<td align='center'>" . CUR . " {$loanamt}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Interest on loan</td>\n\t\t\t\t<td align='center'>{$loanint} %</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Payback period</td>\n\t\t\t\t<td align='center'>{$loanperiod} months</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Monthly installment amount</td>\n\t\t\t\t<td align='center'>" . CUR . " {$loaninstall}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Installment amount (at 11% Interest)</td>\n\t\t\t\t<td align='center'>" . CUR . " {$fringeinstall}</td>\n\t\t\t</tr>\n\t\t\t{$loanac}\n\t\t\t{$ac}\n\t\t\t<tr>\n\t\t\t\t<td colspan='2' align='right'><input type='submit' value='Write &raquo;'></td>\n\t\t\t\t<td valign='left'></td>\n\t\t\t</tr>\n\t\t</form>\n\t\t</table>" . mkQuickLinks(ql("loan_apply.php", "Add Loan Application"), ql("loan_apply_view.php", "View Loan Applications"), ql("../admin-employee-add.php", "Add Employee"), ql("../admin-employee-view.php", "View Employees"));
    return $confirmLoan;
}
function editEmp($err = "")
{
    global $_POST;
    extract($_POST);
    # 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 cubit.employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "'";
    $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);
    extract($emp, EXTR_SKIP);
    # deal with $err
    if (!isset($err)) {
        $err = "";
    }
    $Tp = array("M" => "Male", "F" => "Female");
    $sexs = extlib_cpsel("sex", $Tp, $sex);
    $salarr = array("m" => "Per Month", "w" => "Per Week", "f" => "Per 2 Weeks", "d" => "Per Day", "h" => "Per Hour");
    $saltyp = extlib_cpsel("saltyp", $salarr, $saltyp);
    $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, $novert);
    //$hoverts = extlib_cpsel("hovert", $overarr, $hovert);
    $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);
    $Tp = array("EFT" => "EFT", "Cheque" => "Cheque", "Cash" => "Cash", "Ledger Account" => "Ledger Account");
    $paytypes = extlib_cpsel("paytype", $Tp, $paytype);
    $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"];
            $empsql = "SELECT * FROM cubit.empallow WHERE allowid='{$aid}' AND empnum='{$empnum}'";
            $emprslt = db_exec($empsql) or errDie("Error reading allowance information.");
            if (pg_num_rows($emprslt) < 1) {
                $empAllow["amount"] = "0.00";
                $empAllow["accid"] = "";
            } else {
                $empAllow = pg_fetch_array($emprslt);
            }
            if (empty($empAllow["accid"])) {
                $empAllow["accid"] = $myAllow["accid"];
            }
            $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='{$empAllow['amount']}'>\n\t\t\t\t<input type='hidden' name='allowaccid[{$aid}]' value='{$empAllow['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;
            $sql = "SELECT * FROM emp_subsistence WHERE empnum='{$empnum}' AND subid='{$sid}'";
            $rslt2 = db_exec($sql) or errDie("Error reading employee subsistence.");
            if (pg_num_rows($rslt2) <= 0) {
                $si["amount"] = "0.00";
                $si["days"] = "0";
                $si["accid"] = $subs["accid"];
            } else {
                $si = pg_fetch_array($rslt2);
            }
            $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='{$si['amount']}'>\n\t\t\t\t<input type='hidden' name='subsacc[{$sid}]' value='{$si['accid']}'>\n\t\t\t\t<input type='hidden' name='subsdays[{$sid}]' value='{$si['days']}'>";
        }
    }
    $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"];
            $empsql = "SELECT * FROM empdeduct WHERE dedid='{$did}' AND empnum='{$empnum}'";
            $emprslt = db_exec($empsql) or errDie("Error reading employee deduction info.");
            if (pg_num_rows($emprslt) < 1) {
                $empDeduct["amount"] = "0.00";
                $empDeduct["employer_amount"] = "0.00";
                if ($myDeduct["creditor"] == "In House") {
                    $empDeduct["accid"] = "{$myDeduct['expaccid']}";
                } else {
                    $empDeduct["accid"] = "{$myDeduct['accid']}";
                }
            } else {
                $empDeduct = pg_fetch_array($emprslt);
            }
            $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='{$empDeduct['amount']}'>\n\t\t\t\t<input type='hidden' name='comp_deductions[{$did}]' value='{$empDeduct['employer_amount']}'>\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='{$empDeduct['accid']}'>";
            $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"];
            $empsql = "SELECT * FROM empfringe WHERE fringeid='{$fid}' AND empnum='{$empnum}'";
            $emprslt = db_exec($empsql) or errDie("Error reading employee fringe info.");
            if (pg_num_rows($emprslt) < 1) {
                $empFringe["amount"] = "0.00";
            } else {
                $empFringe = pg_fetch_array($emprslt);
            }
            $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='{$empFringe['amount']}'>\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;
        }
    }
    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)) {
        $Sl = "SELECT * FROM empc WHERE emp='{$empnum}' 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>";
        $i++;
    }
    $ctd .= "</table>";
    $sal_desc = CUR . " " . $basic_sal . " " . $salarr[$emp["saltyp"]];
    $hdate = explode("-", $hiredate);
    $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
    $getocc_level = "SELECT * FROM occ_level ORDER BY id";
    $run_level = db_exec($getocc_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>";
    }
    #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>";
    }
    $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>";
    $editEmp = "\n        <h3>Edit Employee Details</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\t{$err}\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='empnum' value='{$empnum}' />\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_uif' value='{$comp_uif}' />\n\t\t\t<input type='hidden' name='comp_sdl' value='{$comp_sdl}' />\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='saltyp' value='{$emp['saltyp']}' />\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='year' value='{$hdate['0']}' />\n\t\t\t<input type='hidden' name='month' value='{$hdate['1']}' />\n\t\t\t<input type='hidden' name='day' value='{$hdate['2']}' />\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<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 class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Emp Num</td>\n\t\t\t\t\t\t\t<td><input type='text' size='20' name='enum' value='{$enum}'></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>" . REQ . "Surname</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='sname' value='{$sname}'></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>" . REQ . "First Names</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='fnames' value='{$fnames}'></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>" . 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 class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td align='center' colspan='2'><b>OR</b></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>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 class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>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 class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>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 class='" . bg_class() . "'>\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 class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>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 class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>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 class='" . bg_class() . "'>\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 class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Telephone No</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='telno' value='{$telno}'></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>Email</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='email' value='{$email}'></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>Bank Name</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='bankname' value='{$bankname}'></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>Branch Code</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='bankcode' value='{$bankcode}'></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>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 class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Bank Account No</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='bankaccno' value='{$bankaccno}'></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>" . REQ . "Residential Address</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='res1' value='{$res1}'></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><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='res2' value='{$res2}'></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><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='res3' value='{$res3}'></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><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='res4' value='{$res4}'></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>Postal Address</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='pos1' value='{$pos1}'></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><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='pos2' value='{$pos2}'></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>Postal Code</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='pcode' value='{$pcode}'></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>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 class='" . bg_class() . "'>\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' name='contsname' value='{$contsname}'></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>First Names</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='contfnames' value='{$contfnames}'></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>Residential Address</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='contres1' value='{$contres1}'></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><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='contres2' value='{$contres2}'></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><br></td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='contres3' value='{$contres3}'></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>Telephone No</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' 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</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>";
    }
    $editEmp .= "\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'>Tax from Previous Employer for Current\n\t\t\t\t\t\t\t\tEmployee Financial Year ({$empfin_start})</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>" . REQ . " Total Remuneration from Previous Employer (or your estimate)</td>\n\t\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\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td>" . REQ . " Total Tax from Previous Employes (or your estimate)</td>\n\t\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\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan=2>Employement Details</th>\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 rowspan='2'>Remuneration</td>\n\t\t\t\t\t\t\t<td><div id='div_basic_sal'>{$sal_desc}</div></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<!-- ROWSPAN -->\n\t\t\t\t\t\t\t<td><input type='button' onClick='javascript: calcsalary();' value='Calculate Salary'></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>Medical Aid</td>\n\t\t\t\t\t\t\t<td>{$medical_aid_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>Medical Aid Number</td>\n\t\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\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Hours Per Week</td>\n\t\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\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolorc($i) . "'>\n\t\t\t\t\t\t\t<td rowspan='2'>Overtime rate</td>\n\t\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\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<!-- rowspan-->\n\t\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\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Income Tax Ref No.</td>\n\t\t\t\t\t\t\t<td><input type='text' size='20' name='taxref' value='{$taxref}'></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>Hire Date</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='hidden' name='hiredate' value='{$hiredate}'>{$hiredate}</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>Temporary (Employee or Contract)</td>\n\t\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\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>If Temporary: Termination Date</td>\n\t\t\t\t\t\t\t<td>" . mkDateSelect("t") . "</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>Nature of Person</td>\n\t\t\t\t\t\t\t<td>{$natures_drop}</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>Designation (Job Title)</td>\n\t\t\t\t\t\t\t<td><input type='text' name='designation' value='{$designation}'></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>Department</td>\n\t\t\t\t\t\t\t<td>{$dep_drop}</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>Occupational Category</td>\n\t\t\t\t\t\t\t<td>{$occ_cat_drop}</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>Occupational Level</td>\n\t\t\t\t\t\t\t<td>{$occ_level_drop}</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>This Position Filled</td>\n\t\t\t\t\t\t\t<td>{$pos_filled_drop}</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>Recruitment From</td>\n\t\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\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Reason for Employment</td>\n\t\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\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Union Name</td>\n\t\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\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Union Membership Number</td>\n\t\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\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Union Position</td>\n\t\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\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Vacation Leave</td>\n\t\t\t\t\t\t\t<td valign='top'><input type='text' size='3' name='vaclea' value='{$vaclea}'> days</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>Sick Leave</td>\n\t\t\t\t\t\t\t<td valign='top'><input type='text' size='3' name='siclea' value='{$siclea}'> days</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>Study Leave</td>\n\t\t\t\t\t\t\t<td valign='top'><input type='text' size='3' name='stdlea' value='{$stdlea}'> days</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>&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{$fringebens}\n\t\t\t{$allowances}\n\t\t\t{$deductions}\n\t\t\t{$subsistence}\n\t\t\t<!--      -->\n\t\t</table>\n\t\t{$ctd}\n\t\t</form>" . mkQuickLinks(ql("../admin-employee-add.php", "Add Employee"));
    return $editEmp;
}
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 confirm($_POST)
{
    # get vars
    $_POST = var_makesafe($_POST);
    extract($_POST);
    if (isset($back)) {
        return slctEmployee();
    }
    $annual += 0;
    $bonus = 0;
    $abonus += 0;
    $mpaye_amount += 0;
    # validate input
    require_lib("validate");
    $v = new validate();
    if (isset($account)) {
        $v->isOk($account, "num", 1, 9, "Invalid ledger account.");
    }
    $v->isOk($empnum, "num", 1, 9, "Invalid employee number.");
    $v->isOk($accid, "num", 1, 9, "Invalid bank number.");
    $v->isOk($MON, "num", 1, 2, "Invalid month.");
    $v->isOk($abonus, "float", 1, 11, "Invalid bonus.");
    $v->isOk($mpaye_amount, "float", 1, 40, "Invalid manual PAYE amount.");
    $v->isOk($all_travel, "float", 1, 11, "Invalid travel allowance.");
    $v->isOk($comp_pension, "float", 1, 11, "Invalid company pension.");
    $v->isOk($comp_medical, "float", 1, 11, "Invalid company medical.");
    $v->isOk($emp_pension, "float", 1, 11, "Invalid employee pension.");
    $v->isOk($emp_medical, "float", 1, 11, "Invalid employee medical.");
    $v->isOk($comp_provident, "float", 1, 11, "Invalid company provident.");
    $v->isOk($emp_provident, "float", 1, 11, "Invalid employee provident.");
    //$v->isOk ($comp_uif, "float", 1, 11, "Invalid company uif.");
    //$v->isOk ($emp_uif, "float", 1, 11, "Invalid employee uif.");
    $v->isOk($comp_other, "float", 1, 11, "Invalid company other.");
    $v->isOk($emp_other, "float", 1, 11, "Invalid employee other.");
    $v->isOk($comp_ret, "float", 1, 11, "Invalid company ret.");
    $v->isOk($emp_ret, "float", 1, 11, "Invalid employee ret.");
    $v->isOk($basic_sal, "float", 1, 11, "Invalid basic salary.");
    $v->isOk($commission, "float", 0, 11, "Invalid commision.");
    $v->isOk($loaninstall, "float", 0, 11, "Invalid loan installment.");
    $v->isOk($loanint, "float", 0, 11, "Invalid loan interest.");
    if ($divisor != 1 && round($divisor, 2) != round(52 / 12, 2) && round($divisor) != round(26 / 12, 2)) {
        //$v->addError("", "Invalid pay period (DIVIS).");
    }
    if ($saltyp == 'd' || $saltyp == 'h') {
        $salnarr = array("d" => "Days", "h" => "Hours");
        $salntype = $salnarr[$saltyp];
        $v->isOk($multi, "float", 1, 5, "Invalid number of {$salntype}.");
        if ($multi < 1) {
            $v->addError("", "Error : Employee cannot be paid for {$multi} {$salntype}.");
        }
    }
    if (isset($allowances)) {
        foreach ($allowances as $key => $value) {
            $v->isOk($allowances[$key], "float", 0, 11, "Invalid allowance amount " . ($key + 1) . ".");
        }
    }
    if (isset($deductid)) {
        foreach ($deductid as $key => $value) {
            $v->isOk($deductid[$key], "num", 1, 9, "Invalid deductions ID.");
        }
    }
    if (isset($deductions)) {
        foreach ($deductions as $key => $value) {
            $v->isOk($deductions[$key], "float", 0, 11, "Invalid deduction amount" . ($key + 1) . ".");
        }
    }
    if (isset($allowid)) {
        foreach ($allowid as $key => $value) {
            $v->isOk($allowid[$key], "num", 1, 9, "Invalid allowance ID.");
        }
    }
    if (isset($allowtax)) {
        foreach ($allowtax as $key => $value) {
            $v->isOk($allowtax[$key], "string", 1, 3, "Invalid allowance tax option" . ($key + 1) . ".");
        }
    }
    if (!isset($pday)) {
        $pday = "";
    }
    $date = $year . "-" . $mon . "-" . $day;
    $pdate = mkdate($year, $MON, $pday);
    if (!checkdate($mon, $day, $year)) {
        $v->isOk($date, "num", 1, 1, "Invalid date .");
    }
    # display errors, if any
    if ($v->isError()) {
        $confirmCust = "";
        $errors = $v->getErrors();
        foreach ($errors as $e) {
            $confirmCust .= "<li class='err'>" . $e["msg"] . "</li>";
        }
        return $confirmCust . process($_POST);
    }
    $basic_sal_save = $basic_sal;
    global $global_empnum;
    $global_empnum = $empnum;
    db_conn('cubit');
    $sql = "SELECT * FROM employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "'";
    $empRslt = db_exec($sql) or errDie("Unable to select employees from database.");
    if (pg_numrows($empRslt) < 1) {
        return "Invalid employee ID.";
    }
    $myEmp = pg_fetch_array($empRslt);
    if ($myEmp['payprd'] == "d") {
        $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$pday}' AND cyear='" . EMP_YEAR . "'";
        $Ri = db_exec($Sl);
        $paid = pg_num_rows($Ri);
        $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$pday}' AND cyear='" . EMP_YEAR . "'";
        $Ri = db_exec($Sl);
        $upaid = pg_num_rows($Ri);
        $upaid += 0;
        $paid -= $upaid;
    } elseif ($myEmp['payprd'] == "w") {
        $yy = date("Y");
        $mm = $MON;
        $mm += 0;
        $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'";
        $Ri = db_exec($Sl);
        $paid = pg_num_rows($Ri);
        $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'";
        $Ri = db_exec($Sl);
        $upaid = pg_num_rows($Ri);
        $upaid += 0;
        $paid -= $upaid;
    } else {
        if ($myEmp['payprd'] == "f") {
            $yy = date("Y");
            $mm = $MON;
            $mm += 0;
            $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'";
            $Ri = db_exec($Sl);
            $paid = pg_num_rows($Ri);
            $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'";
            $Ri = db_exec($Sl);
            $upaid = pg_num_rows($Ri);
            $upaid += 0;
            $paid -= $upaid;
        }
    }
    if (isset($paid) && $paid > 0) {
        return process($_POST, "<li class='err'>You have already processed a salary for that period.</li>");
    }
    $salconacc = gethook("accnum", "salacc", "name", "salaries control");
    $salconacc_orig = gethook("accnum", "salacc", "name", "salaries control original");
    if ($salconacc != $salconacc_orig) {
        block_check($salconacc);
    }
    block_check($uifbal = gethook("accnum", "salacc", "name", "uifbal"));
    block_check($intrec = gethook("accnum", "salacc", "name", "interestreceived"));
    block_check($sdlbal = gethook("accnum", "salacc", "name", "sdlbal"));
    block_check($pa = gethook("accnum", "salacc", "name", "pension"));
    block_check($ma = gethook("accnum", "salacc", "name", "medical"));
    block_check($cash_account = gethook("accnum", "salacc", "name", "cash"));
    block_check($retire = gethook("accnum", "salacc", "name", "retire"));
    block_check($provident = gethook("accnum", "salacc", "name", "provident"));
    block_check($commacc = gethook("accnum", "salacc", "name", "Commission"));
    block_check($abonusacc = gethook("accnum", "salacc", "name", "Bonus"));
    block_check($payeacc = gethook("accnum", "salacc", "name", "PAYE"));
    block_check($uifacc = gethook("accnum", "salacc", "name", "UIF"));
    block_check($providente = $myEmp["expacc_provident"]);
    block_check($retiree = $myEmp["expacc_ret"]);
    block_check($pax = $myEmp["expacc_pension"]);
    block_check($uifexp = $myEmp["expacc_uif"]);
    block_check($max = $myEmp["expacc_medical"]);
    block_check($dedgenerale = $myEmp["expacc_other"]);
    block_check($sdlexp = $myEmp["expacc_sdl"]);
    block_check($salacc = $myEmp["expacc_salwages"]);
    block_check($reimbursexp = $myEmp["expacc_reimburs"]);
    if (($loanexp = $myEmp["expacc_loan"]) > 0) {
        block_check($loanexp);
    }
    if (isset($allowaccs)) {
        foreach ($allowaccs as $checkacc) {
            block_check($checkacc);
        }
    }
    if (isset($dedaccs)) {
        foreach ($dedaccs as $k => $checkacc) {
            block_check($checkacc);
        }
    }
    finish_block_check();
    /* check if hire date before pay date */
    explodeDate($myEmp["hiredate"], $hd_year, $hd_month, $hd_day);
    $MONempyear = getYearOfEmpMon($MON);
    switch ($myEmp["payprd"]) {
        case "m":
            $extra = false;
            break;
        case "d":
            $extra = $hd_year == $MONempyear && $hd_month == $MON && $pday < $hd_day;
            break;
        case "w":
        case "f":
            $extra = $hd_year == $MONempyear && $hd_month == $MON && $weekends[$week] < $hd_day;
            break;
    }
    if ($hd_year > $MONempyear || $hd_year == $MONempyear && $hd_month > $MON || $extra) {
        return process($_POST, "<li class='err'>Employee was not employed in the period\n\t\t\trequested.</li>");
    }
    # The Paye
    $tyear = 12;
    switch ($myEmp["payprd"]) {
        case 'm':
            $tyear = 12;
            break;
        case 'w':
            $tyear = 52;
            break;
        case 'f':
            $tyear = 26;
            break;
        case 'd':
            $tyear = 5 * 52;
            break;
    }
    if ($myEmp["saltyp"] != "h") {
        if ($myEmp["saltyp"] == "w") {
            $perhr = sprint($basic_sal / $wh_actual);
        } else {
            $perhr = sprint($basic_sal * $tyear / ($myEmp['hpweek'] * 52));
        }
    } else {
        $perhr = $basic_sal;
    }
    $overamt = $novert * ($perhr * $myEmp['novert']);
    $overamt += $hovert * ($perhr * $myEmp['hovert']);
    $overamt = sprint($overamt);
    # Multiply basic_sal add overtime
    if (isset($multi)) {
        $basic_sal = sprint($basic_sal * $multi);
        //$tyear = ($tyear/$multi);
    } else {
        $basic_sal = $basic_sal;
    }
    # Zero if not specified
    $commission = $commission + 0;
    $loaninstall = $loaninstall + 0;
    //$basic_sal=$basic_sal+$commission;
    $all_before = "";
    $all_after = "";
    $all_beforeamount = 0;
    $all_afteramount = 0;
    if (isset($allowtax)) {
        foreach ($allowtax as $key => $perc) {
            if ($perc == "Yes" and $allowances[$key] > 0) {
                $all_before .= "<tr class='" . bg_class() . "'><td>{$allowname[$key]}</td><td>" . CUR . " {$allowances[$key]}</td></tr>";
                $all_beforeamount = $all_beforeamount + $allowances[$key];
            } elseif ($allowances[$key] > 0) {
                $all_after .= "<tr class='" . bg_class() . "'><td>{$allowname[$key]}</td><td>" . CUR . " {$allowances[$key]}</td></tr>";
                $all_afteramount = $all_afteramount + $allowances[$key];
            }
        }
    }
    $subsistence = "";
    $subs_taxable = 0;
    $subs_total = 0;
    $i = 0;
    if (isset($subsname)) {
        if (isset($subs_exch) && $subs_exch == 0) {
            $subs_exch = 1;
        }
        foreach ($subsname as $sid => $sn) {
            if ($subsrep[$sid] == "yes") {
                //2012
                $nontax = $subsdays[$sid] * ($subsmeal[$sid] == "yes" ? 303 : 93);
                $subs_total += $subsamt[$sid];
            } else {
                //2012
                //TODO
                // outside republic, 215 dollars
                $nontax = $subsdays[$sid] * (215 / $subs_exch);
                $subs_total += $subsamt[$sid] * $subs_exch;
            }
            $tmp = $subsamt[$sid] - $nontax;
            if ($tmp > 0) {
                $subs_taxable += $tmp / $divisor;
            }
            $subsistence .= "\n\t\t\t\t<input type='hidden' name='subsname[{$sid}]' value='{$subsname[$sid]}'>\n\t\t\t\t<input type='hidden' name='subsacc[{$sid}]' value='{$subsacc[$sid]}'>\n\t\t\t\t<input type='hidden' name='subsamt[{$sid}]' value='{$subsamt[$sid]}'>\n\t\t\t\t<input type='hidden' name='subsrep[{$sid}]' value='{$subsrep[$sid]}'>\n\t\t\t\t<input type='hidden' name='subsmeal[{$sid}]' value='{$subsmeal[$sid]}'>\n\t\t\t\t<input type='hidden' name='subsdays[{$sid}]' value='{$subsdays[$sid]}'>\n\t\t\t\t<!--<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t<td>{$subsname[$sid]}</td>\n\t\t\t\t\t<td>" . CUR . " {$subsamt[$sid]}</td>\n\t\t\t\t\t<td>{$subsdays[$sid]}</td>\n\t\t\t\t</tr>-->";
        }
        if (false && !empty($subsistence)) {
            $subsistence = "\n\t\t\t<tr><td colspan='20'>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th colspan='3'>Subsistence Allowances</th>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<th>Name</th>\n\t\t\t\t<th>Amount</th>\n\t\t\t\t<th>Days</th>\n\t\t\t</tr>\n\t\t\t{$subsistence}\n\t\t\t</table>\n\t\t\t</td></tr>";
        }
    }
    $de_before = "";
    $de_after = "";
    $de_beforeamount = 0;
    $de_afteramount = 0;
    $de_beforeamount_emp = 0;
    $de_afteramount_emp = 0;
    if (isset($deducttax)) {
        foreach ($deducttax as $key => $perc) {
            if ($perc == "Yes" and $deductions[$key] > 0) {
                $de_before .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>{$deductname[$key]}</td>\n\t\t\t\t\t\t<td>" . CUR . " {$deductions[$key]}</td>\n\t\t\t\t\t\t<!--<td>" . CUR . " {$employer_deductions[$key]}</td>//-->\n\t\t\t\t\t</tr>";
                $de_beforeamount = $de_beforeamount + $deductions[$key] + $employer_deductions[$key];
                $de_beforeamount_emp += $employer_deductions[$key];
            } elseif ($deductions[$key] > 0) {
                $de_after .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>{$deductname[$key]}</td>\n\t\t\t\t\t\t<td>" . CUR . " {$deductions[$key]}</td>\n\t\t\t\t\t\t<!--<td>" . CUR . " {$employer_deductions[$key]}</td>//-->\n\t\t\t\t\t</tr>";
                $de_afteramount = $de_afteramount + $deductions[$key] + $employer_deductions[$key];
                $de_afteramount_emp += $employer_deductions[$key];
            }
        }
    }
    $de_before .= "";
    $de_after .= "";
    if ($all_beforeamount > 0) {
        $all_before = "<tr><th colspan='2'>Allowances</th></tr>" . $all_before;
    }
    if ($all_afteramount > 0) {
        $all_after = "<tr><th colspan='2'>Allowances</th></tr>" . $all_after;
    }
    if ($de_beforeamount > 0) {
        $de_before = "<tr><th colspan='2'>Deductions</th></tr>" . $de_before;
    } else {
        $de_before = "";
    }
    if ($de_afteramount > 0) {
        $de_after = "<tr><th colspan='2'>Deductions</th></tr>" . $de_after;
    } else {
        $de_after = "";
    }
    // calculate age of employee (if intl., ie has passport num only), act asif under 65
    if (!empty($myEmp["idnum"])) {
        $bd_year = 1900 + substr($myEmp["idnum"], 0, 2);
        $bd_month = substr($myEmp["idnum"], 2, 2);
        $bd_day = substr($myEmp["idnum"], 4, 2);
        /* get the current financial year */
        db_conn("core");
        $sql = "SELECT yrname FROM active";
        $rslt = db_exec($sql) or errDie("Error fetching financial year.");
        if (pg_num_rows($rslt) < 1) {
            return "Please run quick setup first.";
        }
        $fin_year = substr(pg_fetch_result($rslt, 0, 0), 1);
        if (!checkdate($bd_month, $bd_day, $bd_year)) {
            return "<li class='err'>Please <a href='../admin-employee-edit.php?empnum={$myEmp['empnum']}'>change</a> employees ID Number to valid ID Number</li>" . process($_POST);
        }
        $sql = "SELECT EXTRACT('year' FROM AGE('{$fin_year}-02-28', '{$bd_year}-{$bd_month}-{$bd_day}'))";
        $rslt = db_exec($sql) or errDie("Error calculating age at financial year end.");
        $age = pg_fetch_result($rslt, 0, 0);
    } else {
        $age = 1;
    }
    // calculate loan fringe benefit amount for this month
    if (!empty($myEmp["loanamt"]) && $myEmp["gotloan"] == "t" && $myEmp["loanamt"] > 0) {
        $loanpart = $loaninstall / $myEmp["loanamt"];
        $fringe_loan = sprint($myEmp["loanfringe"] * $loanpart);
    } else {
        $fringe_loan = "0.00";
    }
    payedbg("sal/annum: {$myEmp['basic_sal_annum']}<br />", false);
    payedbg("divisor: {$divisor}<br />", false);
    //2012
    // calculate motor car fringe benefit
    if ($myEmp["fringe_car1"] > 0) {
        $deduct_perc = 0;
        // Employee has travel allowance?
        if ($myEmp["all_travel"] > 0) {
            $deduct_perc = 0.0325;
        } else {
            $deduct_perc = 0.035;
        }
        $fringe_car1 = $myEmp["fringe_car1"] * $deduct_perc;
    }
    // Second fringe car will always be 3.25%
    if ($myEmp["fringe_car2"] > 0) {
        $fringe_car2 = $myEmp["fringe_car2"] * 0.0325;
    }
    $fringe_car1 = sprint($fringe_car1);
    $fringe_car2 = sprint($fringe_car2);
    payedbg("fringe_car1: {$fringe_car1}<br />", false);
    payedbg("fringe_car2: {$fringe_car2}<br />", false);
    // calc medical fringe benefits
    if ($comp_medical > 0) {
        // calculate dependants after first one
        $tmp_deps = $myEmp["emp_meddeps"] - 2;
        if ($tmp_deps < 0) {
            $tmp_deps = 0;
        }
        //2009
        // calculate paragraph 12A amount
        //first 2 dependants are 530 each (1060) rest is 320 each.
        //$p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 1060 : 530) + ($tmp_deps * 320);
        //2010
        // calculate paragraph 12A amount
        //first 2 dependants are 625 each (1250) rest is 380 each.
        //$p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 1250 : 625) + ($tmp_deps * 380);
        //2011
        // calculate paragraph 12A amount
        //first 2 dependants are 670 each (1340) rest is 410 each.
        //$p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 1340 : 820) + ($tmp_deps * 410);
        //2012
        // calculate paragraph 12A amount
        //first 2 dependants are 230 each (460) rest is 154 each.
        $p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 460 : 230) + $tmp_deps * 154;
        // calculate taxable fringe benefit amount
        $fringe_medical = sprint($comp_medical - $p12A_amt / $divisor);
        if ($fringe_medical < 0) {
            $fringe_medical = 0;
        }
    } else {
        $fringe_medical = 0;
    }
    payedbg("medical fringe: {$fringe_medical}<br />", false);
    // calculate total fringe benefits
    $tot_fringe = $fringe_medical + $fringe_car1 + $fringe_car2 + $fringe_loan + $comp_other + $comp_ret + $de_beforeamount_emp + $de_afteramount_emp + $subs_taxable;
    // subsistance
    if (isset($fringeid)) {
        foreach ($fringeid as $key => $value) {
            $fringebens[$key] = sprint($fringebens[$key]);
            $tot_fringe += $fringebens[$key];
        }
    }
    vsprint($tot_fringe);
    payedbg("total fringe: {$tot_fringe}<br />", false);
    if ($emp_pension > $basic_sal * 7.5 / 100) {
        $emp_mpension = $basic_sal * 7.5 / 100;
    } else {
        $emp_mpension = $emp_pension;
    }
    $max_ret = $myEmp["basic_sal_annum"] * 7.5 / 100 > 1750 ? $myEmp["basic_sal_annum"] * 7.5 / 100 : 1750;
    // calculate total gross salary
    $grossal = $basic_sal + $commission + $abonus + $overamt + $bonus + $annual + $all_beforeamount + $all_travel * 0.8 - $de_beforeamount;
    // deductions deducted before paye (non taxible)
    $grossal_2 = $grossal;
    $taxed_all = $all_afteramount + $all_travel * 0.8;
    $grossal_nodedall = $basic_sal + $overamt + $bonus + $annual + $all_travel;
    #UIF HAX
    $uif_grosssal = $grossal;
    // pension/provident/ra: calculate deduction amounts, limiting them to maximum amount and only deducting
    // ONE of them for taxable income
    if ($comp_pension + $emp_pension > 0) {
        $tmp = ($grossal_2 + $tot_fringe) * $tyear;
        $maxallowed = $tmp * 0.075 > 1750 ? $tmp * 0.075 : 1750;
        if ($emp_mpension > $maxallowed) {
            $tmp_ded = $maxallowed;
        } else {
            $tmp_ded = $emp_mpension;
        }
        $grossal -= $tmp_ded;
        payedbg("pension maxded (-gross): {$tmp_ded}<br />", false);
    }
    if ($comp_ret + $emp_ret > 0) {
        $tmp = ($grossal_2 + $tot_fringe) * $tyear;
        // if their is a pension contributions the percentage is 0
        if ($comp_pension + $emp_pension + $comp_provident + $emp_provident > 0) {
            $PERC = 0;
        } else {
            $PERC = 0.15;
        }
        $maxallowed = $tmp * $PERC > 1750 ? $tmp * $PERC : 1750;
        $maxallowed = $maxallowed > 3500 - $emp_pension * $divisor * 12 ? $maxallowed : 3500 - $emp_pension * 12;
        if (($emp_ret + $comp_ret) * $divisor > $maxallowed / 12) {
            $tmp_ded = $maxallowed / 12 / $divisor;
        } else {
            $tmp_ded = $emp_ret + $comp_ret;
        }
        $grossal -= $tmp_ded;
        payedbg("retfund maxded (-gross): {$tmp_ded}<br />", false);
    }
    // calculate total paye salary
    // just remove annual this month, and add annual divided by 12
    // because paye is calculate for full twelve months and therefore
    // paye salary is average received each month
    $paye_salary = $grossal - $annual + $tot_fringe;
    // total fringe benefits;
    //print "--------- $uif_grossal - $annual + $tot_fringe;----------<br>";
    #UIF HAX
    $uif_paye_salary = $uif_grosssal - $annual + $tot_fringe;
    /* calculate uif */
    $tmp_remun = $paye_salary + $annual - $commission - $abonus;
    #UIF HAX
    $uif_tmp_remun = $uif_paye_salary + $annual - $commission - $abonus;
    //	$comp_uif = sprint($tmp_remun * ($myEmp["comp_uif"] / 100));
    //	$emp_uif = sprint($tmp_remun * ($myEmp["emp_uif"] / 100));
    #UIF HAX
    $comp_uif = sprint($uif_tmp_remun * ($myEmp["comp_uif"] / 100));
    $emp_uif = sprint($uif_tmp_remun * ($myEmp["emp_uif"] / 100));
    $uifmax = getCSetting("UIF_MAX");
    if ($emp_uif > $uifmax) {
        $emp_uif = sprint($uifmax);
    }
    if ($comp_uif > $uifmax) {
        $comp_uif = sprint($uifmax);
    }
    /* calculate sdl */
    $tmp_remun = $paye_salary + $annual;
    if (getCSetting("SDLPAYABLE") == "y") {
        $tmp_sdl = $tmp_remun;
        if ($age > 65) {
            $tmp_sdl -= $comp_medical;
        }
        $comp_sdl = $tmp_sdl * ($myEmp["comp_sdl"] / 100);
    } else {
        $comp_sdl = 0;
    }
    // a little hack, apparently the grossal is displayed wrong, in a strictly opinion based evodamion
    $grossal += $comp_ret;
    // add rest of travel allowance
    $grossal += $all_travel * 0.2;
    if (isset($mpaye)) {
        $paye = $mpaye_amount;
    } else {
        // calculate paye (take age of 65+ threshold into account)
        //2008
        //		if ( ($age >= 65 && ($paye_salary * $tyear) < 69000) || ($paye_salary * $tyear) < 43000 ) {
        //2009
        // 		if ( ($age >= 65 && ($paye_salary * $tyear) < 74000) || ($paye_salary * $tyear) < 46000 ) {
        //2010
        // 		if ( ($age >= 65 && ($paye_salary * $tyear) < 84200) || ($paye_salary * $tyear) < 54200 ) {
        //2011
        //		if ( ($age >= 65 && ($paye_salary * $tyear) < 88528) || ($paye_salary * $tyear) < 57000 ) {
        //2012
        if ($age >= 65 && $age < 75 && $paye_salary * $tyear < 99056 || $age >= 75 && $paye_salary * $tyear < 110889 || $paye_salary * $tyear < 63556) {
            $paye = "0.00";
        } else {
            if ($myEmp["payprd"] == "w" || $myEmp["payprd"] == "f") {
                $paye_prd = "{$MON}:{$week}";
            } else {
                if ($myEmp["payprd"] == "d") {
                    $paye_prd = "{$MON}:{$pday}";
                } else {
                    $paye_prd = "{$MON}";
                }
            }
            payedbg("paye salary: {$paye_salary}<br />", false);
            $paye = calculate_paye($myEmp, $paye_prd, $paye_salary, $tyear, $age);
            if ($annual > 0) {
                $tmp_bonpaye = calculate_paye($myEmp, $paye_prd, $paye_salary + $annual / 12, $tyear, $age);
                $paye += $tmp_bonpaye * $tyear - $paye * $tyear;
            }
        }
    }
    // fringe benefits
    $i = 0;
    $fringes = "";
    $fringes_desc = "";
    if (isset($fringebens)) {
        foreach ($fringebens as $key => $value) {
            if ($fringebens[$key] > 0) {
                $fringes_desc .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$fringename[$key]}</td>\n\t\t\t\t\t<td>" . CUR . " {$fringebens[$key]}</td>\n\t\t\t\t</tr>";
                $fringes .= "\n\t\t\t\t\t<input type='hidden' name='fringebens[]' value='{$fringebens[$key]}'>\n\t\t\t\t\t<input type='hidden' name='fringeid[]' value='{$fringeid[$key]}'>\n\t\t\t\t\t<input type='hidden' name='fringename[]' value='{$fringename[$key]}'>\n\t\t\t\t\t<input type='hidden' name='fringeaccs[]' value='{$fringeaccs[$key]}'>";
            }
        }
    }
    if (!empty($fringes_desc)) {
        $fringes_desc = "<tr><th colspan='2'>Fringe Benefits</th></tr>{$fringes_desc}";
    }
    $allow = "";
    # Get allowances names and value from array
    if (isset($allowances)) {
        foreach ($allowances as $key => $value) {
            if ($allowances[$key] > 0) {
                $allow .= "\n\t\t\t\t\t<input type='hidden' size='10' name='allowname[]' value='{$allowname[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='allowid[]' value='{$allowid[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='allowances[]' value='{$allowances[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='allowtax[]' value='{$allowtax[$key]}'>\n\t\t\t\t\t<input type='hidden' name='allowaccs[]' value='{$allowaccs[$key]}'>";
            }
        }
    }
    $deduct = "";
    if (isset($deductions)) {
        foreach ($deductions as $key => $value) {
            if ($deductions[$key] > 0) {
                $deduct .= "\n\t\t\t\t\t<input type='hidden' size='10' name='deductname[]' value='{$deductname[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='deductid[]' value='{$deductid[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='deductions[]' value='{$deductions[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='employer_deductions[]' value='{$employer_deductions[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='deducttax[]' value='{$deducttax[$key]}'>\n\t\t\t\t\t<input type='hidden' name='dedaccs[]' value='{$dedaccs[$key]}'>";
            }
        }
    }
    $nonretfunding = $basic_sal - $paye - $loaninstall - $de_afteramount + $de_afteramount_emp + $all_afteramount - $emp_pension - $emp_medical - $emp_uif - $emp_provident;
    /*$ret_max = (1800>($nonretfunding*0.15)) ? 1800 : ($nonretfunding*0.15);
    
    	if ( $comp_ret + $emp_ret > $ret_max ) {
    		$comp_ret = $ret_max - $emp_ret;
    
    		if ( $comp_ret < 0 ) {
    			$comp_ret = 0;
    			$emp_ret = $ret_max;
    		}
    	}*/
    $nettpay = $basic_sal + $overamt - $paye + $commission + $abonus - $loaninstall - $de_beforeamount - $de_afteramount + $all_afteramount + $all_beforeamount - $emp_pension - $emp_medical - $emp_ret - $emp_uif - $emp_provident - $emp_other + $annual + $bonus + $all_travel - $myEmp["fringe_car1_contrib"] - $myEmp["fringe_car2_contrib"] + $subs_total;
    $nettpay = sprint($nettpay);
    if (isset($rbsa)) {
        $nettpay += array_sum($rbsa);
        $nettpay = sprint($nettpay);
    }
    $rt = "";
    db_conn("cubit");
    $Sl = "SELECT * FROM cubit.rbs ORDER BY name";
    $Ri = db_exec($Sl) or errDie("Unable to get data.");
    $i = 0;
    if (pg_num_rows($Ri) > 0) {
        while ($td = pg_fetch_array($Ri)) {
            if (!isset($rbsa[$td['id']]) || $rbsa[$td['id']] < 1) {
                continue;
            }
            $rbsa[$td['id']] = sprint($rbsa[$td['id']]);
            if ($i == 0) {
                $rt = "<tr><th colspan=2>Reimbursements</th></tr>";
            }
            $rt .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><input type='hidden' name='rbs[{$td['id']}]' value='{$td['id']}'>{$td['name']}</td>\n\t\t\t\t\t<td>" . CUR . " <input type='hidden' name='rbsa[{$td['id']}]' value='" . $rbsa[$td['id']] . "'>" . $rbsa[$td['id']] . "</td>\n\t\t\t\t</tr>";
            $i++;
        }
    } else {
        $rt .= "<tr class='" . bg_class() . "'><td colspan='2'>There are no reimbursements</td></tr>";
    }
    db_conn("cubit");
    # Get bank account name
    $sql = "SELECT * FROM bankacct WHERE bankid = '{$accid}' AND div = '" . USER_DIV . "'";
    $bankRslt = db_exec($sql);
    $bank = pg_fetch_array($bankRslt);
    $basic_sal = sprint($basic_sal);
    $commission = sprint($commission);
    $abonus = sprint($abonus);
    $overamt = sprint($overamt);
    $paye = sprint($paye);
    $nettpay = sprint($nettpay);
    if ($myEmp['paytype'] == "Cash") {
        $paydetails = "<tr class='" . bg_class() . "'><td colspan=2>Pay Salary Cash</td></tr>";
    } else {
        $paydetails = "<tr class='" . bg_class() . "'><td>Bank Account</td><td>{$bank['accname']}</td></tr>";
    }
    vsprint($bonus);
    vsprint($annual);
    vsprint($comp_pension);
    vsprint($emp_medical);
    vsprint($comp_medical);
    vsprint($comp_ret);
    vsprint($emp_ret);
    vsprint($loaninstall);
    vsprint($emp_pension);
    vsprint($fringe_medical);
    if (!isset($account)) {
        $account = 0;
    } else {
        db_conn('core');
        $Sl = "SELECT * FROM accounts WHERE accid='{$account}'";
        $Ri = db_exec($Sl);
        $ad = pg_fetch_array($Ri);
        $paydetails = "<tr class='" . bg_class() . "'><td>Ledger Account</td><td>{$ad['accname']}</td></tr>";
    }
    if ($myEmp['payprd'] == "w") {
        $row = "\n\t\t\t<tr class='" . bg_class() . "'><td>Period</td><td>{$week}</td></tr>\n\t\t\t<input type='hidden' name='week' value='{$week}'>\n\t\t\t<input type='hidden' name='pday' value='0' />";
    } else {
        if ($myEmp['payprd'] == "f") {
            $row = "\n\t\t\t<tr class='" . bg_class() . "'><td>Period</td><td>{$week}</td></tr>\n\t\t\t<input type='hidden' name='week' value='{$week}'>\n\t\t\t<input type='hidden' name='pday' value='0' />";
        } else {
            if ($myEmp["payprd"] == "d") {
                $row = "\n\t\t\t<tr class='" . bg_class() . "'><td>Day of Payment</td><td>{$pday}</td></tr>\n\t\t\t<input type='hidden' name='week' value='0'>\n\t\t\t<input type='hidden' name='pday' value='{$pday}' />";
            } else {
                $row = "\n\t\t\t<input type='hidden' name='week' value='0'>\n\t\t\t<input type='hidden' name='pday' value='0' />";
            }
        }
    }
    $grossal = sprint($grossal);
    $OUTPUT = "\n\t    <form action='" . SELF . "' method='POST'>\n\t    <table " . TMPL_tblDflts . " width='300'>\n\t\t\t<tr>\n\t\t\t\t<td><input type='submit' name='back' value='&laquo; Correction' /></td>\n\t\t\t\t<td align='right'><input type='submit' value='Write &raquo;'></td>\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='proc_day' value='{$day}' />\n\t\t\t<input type='hidden' name='proc_month' value='{$mon}' />\n\t\t\t<input type='hidden' name='proc_year' value='{$year}' />\n\t\t\t<input type='hidden' name='key' value='pack'>\n\t\t\t<input type='hidden' name='grossal' value='{$grossal}'>\n\t\t\t<input type='hidden' name='grossal_nodedall' value='{$grossal_nodedall}'>\n\t\t\t<input type='hidden' name='empnum' value='{$empnum}'>\n\t\t\t<input type='hidden' name='account' value='{$account}'>\n\t\t\t<input type='hidden' name='MON' value={$MON}>\n\t\t\t<input type='hidden' name='basic_sal' value='{$basic_sal_save}'>\n\t\t\t<input type='hidden' name='multi' value='{$multi}'>\n\t\t\t<input type='hidden' name='tyear' value='{$tyear}'>\n\t\t\t<input type='hidden' name='commission' value='{$commission}'>\n\t\t\t<input type='hidden' name='abonus' value='{$abonus}'>\n\t\t\t<input type='hidden' name='overamt' value='{$overamt}'>\n\t\t\t<input type='hidden' name='loaninstall' value='{$loaninstall}'>\n\t\t\t<input type='hidden' name='paye' value='{$paye}'>\n\t\t\t<input type='hidden' name='accid' value='{$accid}'>\n\t\t\t<input type='hidden' name='income' value='{$nettpay}'>\n\t\t\t<input type='hidden' name='bonus' value='{$bonus}'>\n\t\t\t<input type='hidden' name='all_travel' value='{$all_travel}'>\n\t\t\t<input type='hidden' name='comp_pension' value='{$comp_pension}'>\n\t\t\t<input type='hidden' name='emp_pension' value='{$emp_pension}'>\n\t\t\t<input type='hidden' name='comp_medical' value='{$comp_medical}'>\n\t\t\t<input type='hidden' name='emp_medical' value='{$emp_medical}'>\n\t\t\t<input type='hidden' name='comp_ret' value='{$comp_ret}'>\n\t\t\t<input type='hidden' name='emp_ret' value='{$emp_ret}'>\n\t\t\t<input type='hidden' name='comp_uif' value='{$comp_uif}'>\n\t\t\t<input type='hidden' name='emp_uif' value='{$emp_uif}'>\n\t\t\t<input type='hidden' name='comp_sdl' value='{$comp_sdl}'>\n\t\t\t<input type='hidden' name='comp_other' value='{$comp_other}'>\n\t\t\t<input type='hidden' name='emp_other' value='{$emp_other}'>\n\t\t\t<input type='hidden' name='comp_provident' value='{$comp_provident}'>\n\t\t\t<input type='hidden' name='emp_provident' value='{$emp_provident}'>\n\t\t\t<input type='hidden' name='paye_salary' value='{$paye_salary}'>\n\t\t\t<input type='hidden' name='day' value='{$day}'>\n\t\t\t<input type='hidden' name='mon' value='{$mon}'>\n\t\t\t<input type='hidden' name='year' value='{$year}'>\n\t\t\t<input type='hidden' name='novert' value='{$novert}'>\n\t\t\t<input type='hidden' name='hovert' value='{$hovert}'>\n\t\t\t<input type='hidden' name='annual' value='{$annual}'>\n\t\t\t<input type='hidden' name='week' value='{$week}'>\n\t\t\t<input type='hidden' name='fringe_medical' value='{$fringe_medical}'>\n\t\t\t<input type='hidden' name='fringe_tot' value='{$tot_fringe}'>\n\t\t\t<input type='hidden' name='fringe_car1' value='{$fringe_car1}'>\n\t\t\t<input type='hidden' name='fringe_car2' value='{$fringe_car2}'>\n\t\t\t<input type='hidden' name='fringe_loan' value='{$fringe_loan}'>\n\t\t\t<input type='hidden' name='process_comp_deductions' value='{$process_comp_deductions}'>\n\t\t\t<input type='hidden' name='taxed_all' value='{$taxed_all}' />\n\t\t\t<input type='hidden' name='printslip' value='{$printslip}' />\n\t\t\t" . (isset($subs_exch) ? "<input type='hidden' name='subs_exch' value='{$subs_exch}'>" : "") . "\n\t\t\t{$fringes}\n\t\t\t{$allow}\n\t\t\t{$deduct}\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Salary Details</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Basic salary</td>\n\t\t\t\t<td>" . CUR . " {$basic_sal}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Annual Bonus</td>\n\t\t\t\t<!--<td>Special Bonus/Additional Salary</td>-->\n\t\t\t\t<td>" . CUR . " {$abonus}</td>\n\t\t\t</tr>\n\t\t\t<!--<tr class='bg-odd'>\n\t\t\t\t<td>Bonus(Annual Payments)</td>\n\t\t\t\t<td>" . CUR . " {$annual}</td>\n\t\t\t</tr>-->\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Commission</td>\n\t\t\t\t<td>" . CUR . " {$commission}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Travel Allowance</td>\n\t\t\t\t<td>" . CUR . " {$all_travel}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Pension: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " {$comp_pension}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Pension: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " {$emp_pension}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Provident Fund: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " {$comp_provident}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Provident Fund: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " {$emp_provident}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>UIF: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " {$comp_uif}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>UIF: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " {$emp_uif}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Retirement Annuity: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " {$comp_ret}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Retirement Annuity: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " {$emp_ret}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Medical Contribution: Company</td>\n\t\t\t\t<td>" . CUR . " {$comp_medical}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Medical Contribution: Employee</td>\n\t\t\t\t<td>" . CUR . " {$emp_medical}</td>\n\t\t\t</tr>\n\t\t\t<br />\n\t\t\t<!--\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Other: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " {$comp_other}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Other: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " {$emp_other}</td>\n\t\t\t</tr>\n\t\t\t//-->\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Overtime</td>\n\t\t\t\t<td>" . CUR . " {$overamt}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Medical Fringe Benefit</td>\n\t\t\t\t<td>" . CUR . " {$fringe_medical}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Motorcar 1 Fringe Benefit</td>\n\t\t\t\t<td>" . CUR . " {$fringe_car1}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Motorcar 1 Contribution for Use</td>\n\t\t\t\t<td>" . CUR . " {$myEmp['fringe_car1_contrib']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Motorcar 2 Fringe Benefit</td>\n\t\t\t\t<td>" . CUR . " {$fringe_car2}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Motorcar 2 Contribution for Use</td>\n\t\t\t\t<td>" . CUR . " {$myEmp['fringe_car2_contrib']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Loan Interest Fringe Benefit</td>\n\t\t\t\t<td>" . CUR . " {$fringe_loan}</td>\n\t\t\t</tr>\n\t\t\t{$fringes_desc}\n\t\t\t{$all_before}\n\t\t\t{$de_before}\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Gross Salary</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Gross Salary</td>\n\t\t\t\t<td>" . CUR . " {$grossal}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>SITE/PAYE</td>\n\t\t\t\t<td>" . CUR . " {$paye}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Loans</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Loan Instalment</td>\n\t\t\t\t<td>" . CUR . " {$loaninstall}</td>\n\t\t\t</tr>\n\t\t\t{$all_after}\n\t\t\t{$subsistence}\n\t\t\t{$de_after}\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Nett Pay</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Nett Pay + Reimbursements</td>\n\t\t\t\t<td>" . CUR . " {$nettpay}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Amount Paid now</td>\n\t\t\t\t<td><input type='text' size='10' name='paidamount' value='0'></td>\n\t\t\t</tr>\n\t\t\t{$paydetails}\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Date</td>\n\t\t\t\t<td>{$date}</td>\n\t\t\t</tr>\n\t\t\t{$row}\n\t\t\t{$rt}\n\t\t\t<tr>\n\t\t\t\t<td><input type='submit' name='back' value='&laquo; Correction' /></td>\n\t\t\t\t<td align='right'><input type='submit' value='Write &raquo;'></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t</form>";
    return $OUTPUT;
}
function genslip($empnum, $fromdate, $todate)
{
    $Sl = "SELECT * FROM employees WHERE empnum='{$empnum}'";
    $Ry = db_exec($Sl) or errDie("Unable to select employees from database.");
    if (pg_numrows($Ry) < 1) {
        $Sl = "SELECT * FROM lemployees WHERE empnum='{$empnum}'";
        $Ry = db_exec($Sl) or errDie("Unable to select employees from database.");
    }
    $emp = pg_fetch_array($Ry);
    $pay['showex'] = "Yes";
    $date = $todate;
    //$pw = "saldate>='$fromdate' AND saldate<='$todate'";
    $from_month = extractMonth($fromdate);
    $to_month = extractMonth($todate);
    if ($to_month < $from_month) {
        $pw = "month::int>='{$from_month}' OR month::int <= '{$to_month}'";
    } else {
        $pw = "month::int>='{$from_month}' AND month::int <= '{$to_month}'";
    }
    $pw = "({$pw}) AND (saldate>='{$fromdate}' AND saldate<='{$todate}')";
    /* paye balance */
    $sql = "SELECT sum(paye) AS sum FROM salpaid WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "'";
    $Ry = db_exec($sql) or errDie("Unable to get paye");
    $pdata = pg_fetch_array($Ry);
    $paid = $pdata['sum'];
    $sql = "SELECT sum(paye) AS sum FROM salr WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "'";
    $Ry = db_exec($sql) or errDie("Unable to get paye");
    $pdata = pg_fetch_array($Ry);
    $upaid = $pdata['sum'];
    $tottax = sprint($paid - $upaid);
    /* salary balance */
    $sql = "SELECT sum(salary) FROM salpaid WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "'";
    $Ry = db_exec($sql) or errDie("Unable to get paye");
    $pdata = pg_fetch_array($Ry);
    $sql = "SELECT sum(salary) FROM salr WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "'";
    $Ry = db_exec($sql) or errDie("Unable to get paye");
    $prdata = pg_fetch_array($Ry);
    $pay['salary'] = $pdata['sum'] - $prdata["sum"];
    $emp['basic_sal'] = sprint($emp['basic_sal']);
    /* pay slip ids */
    $psids = array();
    $sql = "\n\t\tSELECT id, novert, hovert FROM cubit.salpaid WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "' \n\t\tUNION \n\t\tSELECT -id, -novert, -hovert FROM cubit.salr WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "'";
    $rslt = db_exec($sql) or errDie("Error reading payslip ids");
    $novert = 0;
    $hovert = 0;
    while ($row = pg_fetch_assoc($rslt)) {
        $psids[] = "payslip='{$row['id']}'";
        $novert += $row["novert"];
        $hovert += $row["hovert"];
    }
    if (count($psids) <= 0) {
        $psids[] = "true";
    }
    $pwc = "(" . implode(" OR ", $psids) . ")";
    $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;
    $epw = "date >= '{$fromdate}' AND date <= '{$todate}'";
    $fepw = "fdate >= '{$fromdate}' AND fdate <= '{$todate}'";
    $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 DISTINCT description, type FROM emp_inc WHERE ({$pwc}) AND emp='{$empnum}' AND ({$epw}) ORDER BY description";
    $Ri = db_exec($sql) or errDie("Unable to get data.");
    $tot_incomes = 0;
    while ($data = pg_fetch_array($Ri)) {
        $sql = "SELECT sum(amount) FROM emp_inc WHERE description='{$data['description']}' AND ({$pwc}) AND emp='{$empnum}' AND ({$epw})";
        $Rl = db_exec($sql) or errDie("Unable to get data.");
        $sdata = pg_fetch_array($Rl);
        $incomes .= "\n\t\t\t<tr>\n\t\t\t\t<td>{$data['description']}</td>\n\t\t\t\t<td align='right'>" . CUR . " {$sdata['sum']}</td>\n\t\t\t</tr>";
        $i++;
        if ($data["description"] != "Fringe Benefits Total") {
            $tot_incomes = $tot_incomes + $sdata['sum'];
        }
        if ($data["type"] == "INCO") {
            if ($novert > 0) {
                $incomes .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td colspan='2'>&nbsp;&nbsp;&nbsp; {$novert} Hours Normal Overtime</td>\n\t\t\t\t\t</tr>";
                ++$i;
            }
            if ($hovert > 0) {
                $incomes .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td colspan='2'>&nbsp;&nbsp;&nbsp; {$hovert} Hours Holiday Overtime</td>\n\t\t\t\t\t</tr>";
                ++$i;
            }
        }
    }
    while ($i < 7) {
        $incomes .= "<tr><td><br></td></tr>";
        $i++;
    }
    $incomes .= "</table>";
    $i = 0;
    $benefits = "<table " . TMPL_tblDflts . " width='100%'>";
    while ($i < 4) {
        $benefits .= "<tr><td><br></td></tr>";
        $i++;
    }
    $benefits .= "</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>";
    $Sl = "SELECT DISTINCT(description) FROM emp_com WHERE ({$pwc}) AND emp='{$empnum}'  AND description !='SDL' AND ({$epw}) ORDER BY description";
    $Ri = db_exec($Sl) or errDie("Unable to get data.");
    while ($data = pg_fetch_array($Ri)) {
        $Sl = "SELECT SUM(amount) FROM emp_com WHERE description='{$data['description']}' AND ({$pwc}) AND emp='{$empnum}' AND description !='SDL' AND ({$epw})";
        $Rl = db_exec($Sl) or errDie("Unable to get data.");
        $sdata = pg_fetch_array($Rl);
        $comp_parts .= "\n\t\t\t<tr>\n\t\t\t\t<td width='80%'>{$data['description']}</td>\n\t\t\t\t<td width='20%' align='right'>" . CUR . " {$sdata['sum']}</td>\n\t\t\t</tr>";
        $i++;
    }
    while ($i < 7) {
        $comp_parts .= "<tr><td><br></td></tr>";
        $i++;
    }
    $comp_parts .= "</table>";
    $i = 0;
    $deductions = "\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>";
    $Sl = "SELECT DISTINCT(description),type FROM emp_ded WHERE ({$pwc}) AND emp='{$empnum}' AND ({$epw}) ORDER BY description";
    $Ri = db_exec($Sl) or errDie("Unable to get data.");
    $tot_deductions = 0;
    while ($data = pg_fetch_array($Ri)) {
        $Sl = "SELECT SUM(amount) FROM emp_ded WHERE description='{$data['description']}' AND ({$pwc}) AND emp='{$empnum}' AND ({$epw})";
        $Rl = db_exec($Sl) or errDie("Unable to get data.");
        $sdata = pg_fetch_array($Rl);
        if ($data["type"] == "PAYE" && $emp["basic_sal_annum"] <= 65000) {
            $data["description"] = "SITE";
        }
        $deductions .= "\n\t\t\t<tr>\n\t\t\t\t<td>{$data['description']}</td>\n\t\t\t\t<td align='right' nowrap='t'>" . CUR . " {$sdata['sum']}</td>\n\t\t\t</tr>";
        $i++;
        $tot_deductions = $tot_deductions + $sdata['sum'];
    }
    while ($i < 6) {
        $deductions .= TBL_BR;
        $i++;
    }
    $deductions .= "</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 description,SUM(amount) AS amount FROM emp_frin WHERE ({$pwc}) AND emp='{$empnum}' AND ({$fepw}) GROUP BY description ORDER BY description";
    $rslt = db_exec($sql) or errDie("Unable to get data.");
    $i = 0;
    $tot_fringe = 0;
    while ($data = pg_fetch_array($rslt)) {
        $data["amount"] = sprint(abs($data["amount"]));
        $fringe .= "\n\t\t\t<tr>\n\t\t\t\t<td>{$data['description']}</td>\n\t\t\t\t<td align='right' nowrap='t'>" . CUR . " {$data['amount']}</td>\n\t\t\t</tr>";
        $i++;
        $tot_fringe += $data['amount'];
    }
    while ($i < 6) {
        $fringe .= TBL_BR;
        $i++;
    }
    $fringe .= "</table>";
    $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%'></td>\n\t\t\t\t<td width='25%'><b>NETT PAY</b></td>\n\t\t\t\t<td width='25%'><b>" . CUR . " " . sprint($pay["salary"]) . "</b></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td width='25%'>Total Employee's Tax</td>\n\t\t\t\t<td width='25%'>{$tottax}</td>\n\t\t\t\t<td width='25%'></td>\n\t\t\t\t<td width='25%'></td>\n\t\t\t</tr>\n\t\t</table>";
    $pay["salary"] = sprint($pay["salary"]);
    db_conn('cubit');
    $period = "";
    $tot_incomes = sprint($tot_incomes);
    $tot_deductions = sprint($tot_deductions);
    vsprint($tot_fringe);
    $grossdata = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td width='50%' align='center'><b>GROSS EARNINGS</b></td>\n\t\t\t\t<td width='50%' align='right'>" . CUR . " {$tot_incomes}</td>\n\t\t\t</tr>\n\t\t</table>";
    explodeDate($fromdate, $from_year, $from_month, $from_day);
    explodeDate($todate, $to_year, $to_month, $to_day);
    if ($from_year == $to_year && $from_month == $to_month) {
        $title = "Salary Advice";
        if ($emp["payprd"] == "m") {
            $salprd = getMonthName($to_month) . " " . getYearOfEmpMon($to_month);
        } else {
            if ($emp["payprd"] == "d" && $fromdate == $todate) {
                $salprd = $pay["week"] . getMonthName($to_month) . " " . getYearOfEmpMon($to_month);
            } else {
                if ($emp["payprd"] == "w") {
                    $stdate = mktime(0, 0, 0, $to_month, 1, getYearOfEmpMon($to_month));
                    $endate = mktime(0, 0, 0, $to_month + 1, -1, getYearOfEmpMon($to_month));
                    $paydate = mktimefd($todate);
                    $i = 1;
                    while ($stdate <= $endate) {
                        if (date("w", $stdate) == 5) {
                            if (date("W", $stdate) == date("W", $paydate_f) && date("W", $stdate) == date("W", $paydate_t)) {
                                $salprd = date("j", $stdate) . " " . getMonthName($to_month) . " " . getYearOfEmpMon($to_month);
                                break;
                            }
                            ++$i;
                        }
                        /* next day */
                        $stdate += 24 * 60 * 60;
                    }
                } else {
                    if ($emp["payprd"] == "f") {
                        $stdate = mktime(0, 0, 0, $to_month, 1, getYearOfEmpMon($to_month));
                        $endate = mktime(0, 0, 0, $to_month + 1, -1, getYearOfEmpMon($to_month));
                        $paydate_f = mktimefd($fromdate);
                        $paydate_t = mktimefd($todate);
                        $c = 0;
                        $fnd_week_f = 0;
                        $fnd_week_t = 0;
                        while ($stdate <= $endate) {
                            //date("W", $stdate) == date("W", $paydate)
                            if (date("w", $stdate) == 5) {
                                if (date("W", $stdate) == date("W", $paydate_f)) {
                                    $fnd_week_f = 1;
                                }
                                if (date("W", $stdate) == date("W", $paydate_t)) {
                                    $fnd_week_t = 1;
                                }
                                if ((++$c % 2 == 0 || $c == 5) && ($fnd_week_f || $fnd_week_t)) {
                                    if ($fnd_week_f == 1 && $paydate_f <= $stdate + 48 * 3600) {
                                        $fnd_week_f = 2;
                                        $salprd_f = date("j", $stdate) . " " . getMonthName($from_month) . " " . getYearOfEmpMon($from_month);
                                    }
                                    if ($fnd_week_t == 1 && $paydate_t <= $stdate + 48 * 3600) {
                                        $fnd_week_t = 2;
                                        $salprd_t = date("j", $stdate) . " " . getMonthName($to_month) . " " . getYearOfEmpMon($to_month);
                                    }
                                    /* now check that they are the same, and if so set the display */
                                    if ($fnd_week_f + ($fnd_week_t = 4)) {
                                        if ($salprd_f == $salprd_t) {
                                            $salprd = $salprd_f;
                                        }
                                        break;
                                    }
                                }
                            }
                            /* next day */
                            $stdate += 24 * 60 * 60;
                        }
                    }
                }
            }
        }
    }
    if (!isset($salprd)) {
        $salprd = $title = "{$fromdate} TO {$todate}";
    }
    $OUT = "\n\t\t<center>\n\t\t<h2>" . COMP_NAME . "<br>{$title}</h2>\n\t\t<table border=1 " . TMPL_tblDflts . " 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<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\t\t\t\t\t<table border=1 " . TMPL_tblDflts . " 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\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%' align='right'>" . 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%' align='right'>" . CUR . " {$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 $OUT;
}
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;
}
function confirm($_POST)
{
    $_POST = var_makesafe($_POST);
    extract($_POST);
    if (!isset($date_day)) {
        exit;
    }
    if (isset($btn_back)) {
        header("Location: ../admin-employee-view.php?" . array2get($_POST));
        exit;
    }
    $ydate = "{$date_year}-{$date_month}-{$date_day}";
    # CHECK IF THIS DATE IS IN THE BLOCKED RANGE
    $blocked_date_from = getCSetting("BLOCKED_FROM");
    $blocked_date_to = getCSetting("BLOCKED_TO");
    if (strtotime($ydate) >= strtotime($blocked_date_from) and strtotime($ydate) <= strtotime($blocked_date_to) and !user_is_admin(USER_ID)) {
        return "<li class='err'>Period Range Is Blocked. Only an administrator can process entries within this period.</li>";
    }
    $week += 0;
    /* check for blocked accounts */
    $salconacc = gethook("accnum", "salacc", "name", "salaries control");
    $salconacc_orig = gethook("accnum", "salacc", "name", "salaries control original");
    if ($salconacc != $salconacc_orig) {
        block_check($salconacc);
    }
    block_check(gethook("accnum", "salacc", "name", "Commission"));
    block_check(gethook("accnum", "salacc", "name", "Bonus"));
    block_check(gethook("accnum", "salacc", "name", "interestreceived"));
    block_check(gethook("accnum", "salacc", "name", "PAYE"));
    block_check(gethook("accnum", "salacc", "name", "UIF"));
    block_check(gethook("accnum", "salacc", "name", "uifbal"));
    block_check(gethook("accnum", "salacc", "name", "sdlbal"));
    block_check(gethook("accnum", "salacc", "name", "pension"));
    block_check(gethook("accnum", "salacc", "name", "medical"));
    block_check(gethook("accnum", "salacc", "name", "cash"));
    block_check(gethook("accnum", "salacc", "name", "retire"));
    block_check(gethook("accnum", "salacc", "name", "provident"));
    global $global_empnum;
    db_conn('cubit');
    $Sl = "SELECT * FROM employees WHERE div='" . USER_DIV . "' ORDER BY sname,fnames";
    $Ri = db_exec($Sl) or errDie("Unable to get data.");
    while ($data = pg_fetch_array($Ri)) {
        if (!isset($emps[$data['empnum']])) {
            continue;
        }
        $global_empnum = $id = $data["empnum"];
        $empname = "{$data['fnames']} {$data['sname']} ({$data['enum']})";
        // check for employee exp accs blocks
        block_check($data["expacc_provident"], $empname);
        block_check($data["expacc_ret"], $empname);
        block_check($data["expacc_pension"], $empname);
        block_check($data["expacc_uif"], $empname);
        block_check($data["expacc_medical"], $empname);
        block_check($data["expacc_other"], $empname);
        block_check($data["expacc_sdl"], $empname);
        block_check($data["expacc_salwages"], $empname);
        if ($data["expacc_loan"] > 0) {
            block_check($data["expacc_loan"], $empname);
        }
        if (isset($dedaccs[$id])) {
            foreach ($dedaccs[$id] as $checkacc) {
                block_check($checkacc, $empname);
            }
        }
        if (isset($allowaccs[$id])) {
            foreach ($allowaccs[$id] as $checkacc) {
                block_check($checkacc, $empname);
            }
        }
    }
    finish_block_check();
    /* check if hire date before pay date for any of the employees*/
    $sql = "SELECT * FROM employees WHERE div='" . USER_DIV . "' ORDER BY sname,fnames";
    $rslt = db_exec($sql) or errDie("Unable to get data.");
    $hderrs = array();
    while ($data = pg_fetch_array($rslt)) {
        if (!isset($emps[$data['empnum']])) {
            continue;
        }
        explodeDate($data["hiredate"], $hd_year, $hd_month, $hd_day);
        $MONempyear = getYearOfEmpMon($month);
        switch ($data["payprd"]) {
            case "m":
                $extra = false;
                break;
            case "d":
                $extra = $hd_year == $MONempyear && $hd_month == $month && $pday < $hd_day;
                break;
            case "w":
            case "f":
                $extra = $hd_year == $MONempyear && $hd_month == $month && $weekends[$week] < $hd_day;
                break;
        }
        if ($hd_year > $MONempyear || $hd_year == $MONempyear && $hd_month > $month || $extra) {
            $hderrs[] = "&nbsp; - &nbsp; {$data['sname']}, {$data['fnames']}<br />";
        }
    }
    if (count($hderrs) > 0) {
        $hderrs = "\n\t\t\t<li class='err'>\n\t\t\t\tThe following employees were not employed in the period requested.<br />\n\t\t\t\t" . implode("", $hderrs) . "\n\t\t\t</li>";
        return enter($_POST, $hderrs);
    }
    global $eMONPRD;
    $out = "\n\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t<input type='hidden' name='key' value='write'>\n\t\t\t<input type='hidden' name='month' value='{$month}'>\n\t\t\t<input type='hidden' name='week' value='{$week}'>\n\t\t\t<input type='hidden' name='printslip' value='{$printslip}' />\n\t\t\t" . (isset($pday) ? "<input type='hidden' name='pday' value='{$pday}' />" : "") . "\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<td colspan='4' 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<td colspan='2'><h3>Processing Batch Salaries</h3></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<th>Salary Period:</th>\n\t\t\t\t\t\t\t<td>" . getMonthName($month) . " " . getYearOfEmpMon($month) . "</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<th>Processing Date:</th>\n\t\t\t\t\t\t\t<td nowrap>\n\t\t\t\t\t\t\t\t<input type='hidden' name='date_day' value='{$date_day}'> {$date_day} -\n\t\t\t\t\t\t\t\t<input type='hidden' name='date_month' value='{$date_month}'> {$date_month} -\n\t\t\t\t\t\t\t\t<input type='hidden' name='date_year' value='{$date_year}'> {$date_year}\n\t\t\t\t\t\t\t</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='3'><input type='submit' value='&laquo; Correction'></td>\n\t\t\t\t<td colspan='5'><input type='button' value='Pay Selected Employees In Full After Processing' onClick='emp_payall();'></td>\n\t\t\t\t<td colspan='2' align=right><input type='submit' value='Process Salaries &raquo;' name='button'></td>\n\t\t\t\t<td colspan='10' align=right><input type='submit' value='Process Salaries &raquo;' name='button'></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<th>Nr.</th>\n\t\t\t\t<th>Name</th>\n\t\t\t\t<th>Remuneration</th>\n\t\t\t\t<th>Amount Paid After Processing</th>\n\t\t\t\t<th>Annual Bonus</th>\n\t\t\t\t<!--\n\t\t\t\t<th>Special Bonus/Additional Salary</th>\n\t\t\t\t<th>Annual Bonus</th>\n\t\t\t\t-->\n\t\t\t\t<th>Commission</th>\n\t\t\t\t<th>Travel Allowance</th>\n\t\t\t\t<th>Loan Repayment</th>\n\t\t\t\t<th>Pension: Company Contribution</th>\n\t\t\t\t<th>Pension: Employee Deduction</th>\n\t\t\t\t<th>Provident: Company Contribution</th>\n\t\t\t\t<th>Provident: Employee Deduction</th>\n\t\t\t\t<th>UIF: Company Contribution</th>\n\t\t\t\t<th>UIF: Employee Deduction</th>\n\t\t\t\t<th>Retirement Annuity: Company Contribution</th>\n\t\t\t\t<th>Retirement Annuity: Employee Deduction</th>\n\t\t\t\t<th>Medical Contribution: Company</th>\n\t\t\t\t<th>Medical Contribution: Employee</th>\n\t\t\t\t<!--\n\t\t\t\t<th>Other: Company Contribution</th>\n\t\t\t\t<th>Other: Employee Deduction</th>\n\t\t\t\t//-->\n\t\t\t\t<th>Normal Overtime</th>\n\t\t\t\t<th>Public Holiday Overtime</th>\n\t\t\t\t<th>Method of Payment</th>\n\t\t\t\t<th>Medical Fringe Ben.</th>\n\t\t\t\t<th>Car 1 Fringe</th>\n\t\t\t\t<th>Car 2 Fringe</th>\n\t\t\t\t<th>Loan Fringe</th>\n\t\t\t\t<th>Fringe Ben.</th>\n\t\t \t\t<th>Allowances</th>\n\t\t \t\t<th>Subsistence</th>\n\t\t \t\t<th>Deductions</th>\n\t\t \t\t<th>Reimbursements</th>\n\t\t \t\t<th>Gross Salary</th>\n\t\t\t\t<th>PAYE</th>\n\t\t\t\t<th>Nett Pay + Reimbursements</th>\n\t\t\t</tr>";
    db_conn('cubit');
    $i = 0;
    $Sl = "SELECT * FROM employees WHERE div='" . USER_DIV . "' ORDER BY sname,fnames";
    $Ri = db_exec($Sl) or errDie("Unable to get data.");
    $errout = "";
    $payall_js = "";
    while ($data = pg_fetch_array($Ri)) {
        if (!isset($emps[$data['empnum']])) {
            continue;
        }
        $id = $data['empnum'];
        $basic_sal_save[$id] = $basic_sal[$id];
        $send = "";
        if (isset($b)) {
            $send = "<input type='hidden' name='b' value=''>";
            if ($data["payprd"] != "f") {
                continue;
            }
        } elseif (isset($w)) {
            $send = "<input type='hidden' name='w' value=''>";
            if ($data['payprd'] != "w") {
                continue;
            }
        } elseif (isset($m)) {
            $send = "<input type='hidden' name='m' value=''>";
            if ($data['payprd'] != "m") {
                continue;
            }
        } elseif (isset($d)) {
            $send = "<input type='hidden' name='d' value=''>";
            if ($data['payprd'] != "d") {
                continue;
            }
        } else {
            continue;
        }
        $yy = date("Y");
        $mm = $month;
        $mm += 0;
        if (!isset($myEmp)) {
            $myEmp = array("payprd" => "");
        }
        db_conn("cubit");
        if ($data["payprd"] == "d") {
            $Sl = "SELECT * FROM salpaid WHERE empnum='{$data['empnum']}' AND month='{$mm}' AND week='{$pday}' AND cyear='" . EMP_YEAR . "'";
            $Rq = db_exec($Sl);
            $paid = pg_num_rows($Rq);
            $Sl = "SELECT * FROM salr WHERE empnum='{$data['empnum']}' AND month='{$mm}' AND week='{$pday}' AND cyear='" . EMP_YEAR . "'";
            $Rq = db_exec($Sl);
            $upaid = pg_num_rows($Rq);
            $upaid += 0;
            $paid -= $upaid;
        } else {
            if ($myEmp['payprd'] != "m") {
                $Sl = "SELECT * FROM salpaid WHERE empnum='{$data['empnum']}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'";
                $Rq = db_exec($Sl);
                $paid = pg_num_rows($Rq);
                $Sl = "SELECT * FROM salr WHERE empnum='{$data['empnum']}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'";
                $Rq = db_exec($Sl);
                $upaid = pg_num_rows($Rq);
                $upaid += 0;
                $paid -= $upaid;
            }
        }
        if (isset($paid) && $paid > 0) {
            $out .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='1000'>\n\t\t\t\t\t\t<li class='err'>You have already processed a salary for this period, for {$data['sname']}, {$data['fnames']}</li>\n\t\t\t\t\t\t<input type='hidden' name='emps[{$id}]' value='{$id}'>\n\t\t\t\t\t\t<input type='hidden' name='emps_already[{$id}]' value='{$id}'>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>";
            continue;
        }
        if ($divisor[$id] != 1 && round($divisor[$id], 2) != round(52 / 12, 2) && round($divisor[$id], 2) != round(26 / 12, 2)) {
            /*$out .= "<tr><td colspan=1000>
            					<li class=err>Error with pay period (DIVIS), for $data[sname], $data[fnames]</li>
            					<input type=hidden name='emps[$id]' value='$id'>
            					<input type=hidden name='emps_already[$id]' value='$id'>
            				</td></tr>";
            		continue;*/
        }
        if (isset($basic_sal[$id])) {
        } else {
            $annual[$id] = "";
            $novert[$id] = "";
            $hovert[$id] = "";
        }
        if ($data['paytype'] == "Cash") {
            $paydetails = "Cash\n\t\t\t\t<input type='hidden' name='accid[{$id}]' value='0'>";
        } elseif ($data['paytype'] == "Ledger Account") {
            db_conn('core');
            $account[$id] += 0;
            $Sl = "SELECT accid,accname FROM accounts WHERE accid='{$account[$id]}'";
            $Rl = db_exec($Sl);
            $accounts = "<input type='hidden' name='account[{$id}]' value='{$account[$id]}'>";
            $ad = pg_fetch_array($Rl);
            $accounts .= "{$ad['accname']}";
            $paydetails = "{$accounts}\n\t\t\t\t<input type='hidden' name='accid[{$id}]' value='0'>";
        } else {
            $accid[$id] += 0;
            db_conn('cubit');
            $Sl = "SELECT * FROM bankacct WHERE bankid='{$accid[$id]}'";
            $Ry = db_exec($Sl) or errDie("Unable to get bank account.");
            if (pg_numrows($Ry) < 1) {
                return "<li class='err'> There are no bank accounts found in Cubit.\n\t\t\t\t<p><input type='button' onClick='JavaScript:history.back();' value='&laquo; Correct Selection'>";
            }
            $banks = "<input type='hidden' name='accid[{$id}]' value='{$accid[$id]}'>";
            $acc = pg_fetch_array($Ry);
            $banks .= "{$acc['accname']} ({$acc['acctype']})";
            $paydetails = "{$banks}";
        }
        // fringe benefits
        $fringe_tot[$id] = 0;
        $c = 0;
        $fringes = "<table " . TMPL_tblDflts . ">";
        if (isset($fringeid[$id]) && is_array($fringeid[$id])) {
            foreach ($fringeid[$id] as $i => $fid) {
                $fringes .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>" . $fringename[$id][$i] . "</td>\n\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t<td>" . $fringebens[$id][$i] . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<input type='hidden' name='fringeid[{$id}][{$i}]' value='" . $fringeid[$id][$i] . "'>\n\t\t\t\t\t<input type='hidden' name='fringebens[{$id}][{$i}]' value='" . $fringebens[$id][$i] . "'>\n\t\t\t\t\t<input type='hidden' name='fringename[{$id}][{$i}]' value='" . $fringename[$id][$i] . "'>\n\t\t\t\t\t<input type='hidden' name='fringeaccs[{$id}][{$i}]' value='" . $fringeaccs[$id][$i] . "'>";
                $fringe_tot[$id] += $fringebens[$id][$i];
            }
        }
        $fringes .= "</table>";
        if ($fringe_tot[$id] == 0) {
            $fringes = "";
        }
        $fringes .= "<input type='hidden' name='fringe_tot[{$id}]' value='{$fringe_tot[$id]}'>";
        /* allowances */
        $all_beforeamount[$id] = 0;
        $all_afteramount[$id] = 0;
        $Allowances = "";
        /*		db_conn('cubit');
        		$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) < 1) {
        			$Allowances = "None";
        		} else {
        
        			$Allowances = "<table border=0 cellpadding='".TMPL_tblCellPadding."' cellspacing='".TMPL_tblCellSpacing."'>";
        			while ($myAllow = pg_fetch_array ($allowRslt)) {
        				# check if employee has allowance
        				$sql = "SELECT * FROM empallow WHERE allowid='$myAllow[id]' AND empnum='$data[empnum]' AND div = '".USER_DIV."'";
        				$empAllowRslt = db_exec ($sql) or errDie ("Unable to select allowance info from database.");
        				if (pg_numrows ($empAllowRslt) > 0) {
        					$Allowances .= "<tr><td>$myAllow[allowance]</td>";
        					$dataAllow = pg_fetch_array ($empAllowRslt);
        					$dataAllow['amount']=sprint($dataAllow['amount']);
        
        					$allowances[$id][$i]=sprint($allowances[$id][$i]);
        					$Allowances .= "<td>R</td><td align=right>
        					<input type=hidden size=10 name='allowid[$id][]' value='$dataAllow[allowid]'>
        					<input type=hidden size=30 name='allowname[$id][]' value='$myAllow[allowance]'>
        					<input type=hidden size=10 name='allowtax[$id][]' value='$myAllow[add]'>
        					<input type=hidden name='allowaccs[$id][]' value='".$allowaccs[$id][$i]."'>
        					<input type=hidden name='allowances[$id][]' value='".$allowances[$id][$i]."'>".$allowances[$id][$i]."</td></tr>\n";
        
        					if($myAllow['add']=="Yes") {
        						$all_beforeamount[$id] += $allowances[$id][$i];
        					} else {
        						$all_afteramount[$id] += $allowances[$id][$i];
        					}
        				}
        				$i++;
        			}
        
        			$Allowances .= "</table>";
        		}*/
        if (isset($allowid[$id]) && is_array($allowid[$id]) && count($allowid[$id]) > 0) {
            $Allowances = "<table border='0' cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>";
            foreach ($allowid[$id] as $k => $dummy) {
                $Allowances .= "\n\t\t\t\t\t\t<input type='hidden' size='10' name='allowid[{$id}][{$k}]' value='" . $allowid[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' size='30' name='allowname[{$id}][{$k}]' value='" . $allowname[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' size='10' name='allowtax[{$id}][{$k}]' value='" . $allowtax[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='allowaccs[{$id}][{$k}]' value='" . $allowaccs[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='allowances[{$id}][{$k}]' value='" . $allowances[$id][$k] . "'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>" . $allowname[$id][$k] . "</td>\n\t\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t\t<td align='right'>" . $allowances[$id][$k] . "</td>\n\t\t\t\t\t\t</tr>";
                if ($allowtax[$id][$k] == "Yes") {
                    $all_beforeamount[$id] += $allowances[$id][$k];
                } else {
                    $all_afteramount[$id] += $allowances[$id][$k];
                }
            }
            $Allowances .= "</table>";
        } else {
            $Allowances = "";
        }
        $Allowances .= "\n\t\t\t<input type='hidden' name='all_beforeamount[{$id}]' value='{$all_beforeamount[$id]}'>\n\t\t\t<input type='hidden' name='all_afteramount[{$id}]' value='{$all_afteramount[$id]}'>";
        $subsistence = "";
        $subs_taxable[$id] = 0;
        $subs_total[$id] = 0;
        $i = 0;
        if (isset($subsname[$id])) {
            if (isset($subs_exch) && $subs_exch == 0) {
                $subs_exch = 1;
            }
            foreach ($subsname[$id] as $sid => $sn) {
                if ($subsrep[$id][$sid] == "yes") {
                    //2012
                    $nontax = $subsdays[$id][$sid] * ($subsmeal[$id][$sid] == "yes" ? 303 : 93);
                    $subs_total[$id] += $subsamt[$id][$sid];
                } else {
                    //TODO
                    //2012
                    // outside republic, 196 dollars
                    $nontax = $subsdays[$id][$sid] * (215 / $subs_exch);
                    $subs_total[$id] += $subsamt[$id][$sid] * $subs_exch;
                }
                $tmp = $subsamt[$id][$sid] - $nontax;
                if ($tmp > 0) {
                    $subs_taxable[$id] += $tmp / $divisor[$id];
                }
                $subsistence .= "\n\t\t\t\t\t<input type='hidden' name='subsname[{$id}][{$sid}]' value='" . $subsname[$id][$sid] . "'>\n\t\t\t\t\t<input type='hidden' name='subsacc[{$id}][{$sid}]' value='" . $subsacc[$id][$sid] . "'>\n\t\t\t\t\t<input type='hidden' name='subsamt[{$id}][{$sid}]' value='" . $subsamt[$id][$sid] . "'>\n\t\t\t\t\t<input type='hidden' name='subsrep[{$id}][{$sid}]' value='" . $subsrep[$id][$sid] . "'>\n\t\t\t\t\t<input type='hidden' name='subsmeal[{$id}][{$sid}]' value='" . $subsmeal[$id][$sid] . "'>\n\t\t\t\t\t<input type='hidden' name='subsdays[{$id}][{$sid}]' value='" . $subsdays[$id][$sid] . "'>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td nowrap>" . $subsname[$id][$sid] . "</td>\n\t\t\t\t\t\t<td nowrap>" . CUR . " " . $subsamt[$id][$sid] . "</td>\n\t\t\t\t\t\t<td>" . $subsdays[$id][$sid] . "</td>\n\t\t\t\t\t</tr>";
            }
            if (!empty($subsistence)) {
                $subsistence = "\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>Name</th>\n\t\t\t\t\t\t\t<th>Amount</th>\n\t\t\t\t\t\t\t<th>Days</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t{$subsistence}\n\t\t\t\t\t</table>";
            }
        }
        # Deductions
        $Deductions = "";
        $de_beforeamount[$id] = 0;
        $de_afteramount[$id] = 0;
        $de_beforeamount_emp[$id] = 0;
        $de_afteramount_emp[$id] = 0;
        /*		db_conn('cubit');
        		$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) < 1) {
        			$Deductions = "None";
        		} else {
        			$Deductions = "<table border=0 cellpadding='".TMPL_tblCellPadding."' cellspacing='".TMPL_tblCellSpacing."'>";
        			while ($myDeduct = pg_fetch_array ($deductRslt)) {
        				# check if employee has deduction
        				$sql = "SELECT * FROM empdeduct WHERE dedid='$myDeduct[id]' AND empnum='$data[empnum]' AND div = '".USER_DIV."'";
        				$empDeductRslt = db_exec ($sql) or errDie ("Unable to select Deduction info from database.");
        				if (pg_numrows ($empDeductRslt) > 0) {
        					$Deductions .= "<tr><td>$myDeduct[deduction]</td>";
        					$dataDeduct = pg_fetch_array ($empDeductRslt);
        
        //					if($dataDeduct['type']=="Amount") {
        //						$dataDeduct['amount']=sprint($dataDeduct['amount']);
        //						$deductions[$id][$i]=sprint($deductions[$id][$i]);
        //					} else {
        //						$deductions[$id][$i]=sprint($data['basic_sal']*$deductions[$id][$i]/100);
        //						//$dataDeduct['amount']=sprint($data['basic_sal']*$dataDeduct['amount']/100);
        //					}
        					$Deductions .= "
        					<td>".CUR."</td><td align=right>
        						<input type=hidden size=10 name='deductid[$id][]' value='$myDeduct[id]'>
        						<input type=hidden size=30 name='deductname[$id][]' value='$myDeduct[deduction]'>
        						<input type=hidden name='deductions[$id][]' value='".$deductions[$id][$i]."'>".$deductions[$id][$i]."
        						<input type=hidden name='dedaccs[$id][]' value='".$dedaccs[$id][$i]."'>
        					</td>
        <!--					<td>".CUR."</td> //-->
        						<td>
        						<input type=hidden name='employer_deductions[$id][]' value='".$employer_deductions[$id][$i]."'>
        						<input type=hidden size=10 name='deducttax[$id][]' value='$myDeduct[add]'></td></tr>\n";
        
        
        					if($myDeduct['add']=="Yes") {
        						$de_beforeamount[$id] += $deductions[$id][$i]+$employer_deductions[$id][$i];
        						//$de_beforeamount_emp[$id] += $employer_deductions[$id][$i];
        					} else {
        						$de_afteramount[$id] += $deductions[$id][$i]+$employer_deductions[$id][$i];
        						//$de_afteramount_emp[$id] += $employer_deductions[$id][$i];
        					}
        
        					$i++;
        				}
        			}
        			$Deductions .= "</table>";
        		}*/
        if (isset($deductid[$id]) && is_array($deductid[$id]) && count($deductid[$id]) > 0) {
            $Deductions = "<table " . TMPL_tblDflts . ">";
            foreach ($deductid[$id] as $k => $dummy) {
                $Deductions .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<input type='hidden' name='deductid[{$id}][{$k}]' value='" . $deductid[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='deductname[{$id}][{$k}]' value='" . $deductname[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='deductions[{$id}][{$k}]' value='" . $deductions[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='dedaccs[{$id}][{$k}]' value='" . $dedaccs[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='employer_deductions[{$id}][{$k}]' value='" . $employer_deductions[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='deducttax[{$id}][{$k}]' value='" . $deducttax[$id][$k] . "'>\n\t\t\t\t\t\t<td>" . $deductname[$id][$k] . "</td>\n\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t<td>" . $deductions[$id][$k] . "</td>\n\t\t\t\t\t</tr>";
                if ($deducttax[$id][$k] == "Yes") {
                    $de_beforeamount[$id] += $deductions[$id][$k] + $employer_deductions[$id][$k];
                    //$de_beforeamount_emp[$id] += $employer_deductions[$id][$i];
                } else {
                    $de_afteramount[$id] += $deductions[$id][$k] + $employer_deductions[$id][$k];
                    //$de_afteramount_emp[$id] += $employer_deductions[$id][$i];
                }
            }
            $Deductions .= "</table>";
        } else {
            $Deductions = "None";
        }
        $Deductions .= "\n\t\t\t<input type='hidden' name='de_beforeamount[{$id}]' value='{$de_beforeamount[$id]}'>\n\t\t\t<input type='hidden' name='de_beforeamount_emp[{$id}]' value='{$de_beforeamount_emp[$id]}'>\n\t\t\t<input type='hidden' name='de_afteramount[{$id}]' value='{$de_afteramount[$id]}'>\n\t\t\t<input type='hidden' name='de_afteramount_emp[{$id}]' value='{$de_afteramount[$id]}'>";
        db_conn('cubit');
        $Sl = "SELECT * FROM rbs ORDER BY name";
        $Rl = db_exec($Sl) or errDie("Unable to get data.");
        $i = 0;
        if (pg_num_rows($Rl) > 0) {
            $rt = "<table " . TMPL_tblDflts . " width='100%'>";
            while ($td = pg_fetch_array($Rl)) {
                if (!isset($rbsa[$id][$td['id']])) {
                    $rbsa[$id][$td['id']] = "";
                }
                $rbsa[$id][$td['id']] = sprint($rbsa[$id][$td['id']]);
                $rt .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type='hidden' name='rbs[{$id}][{$td['id']}]' value='{$td['id']}'>{$td['name']}</td>\n\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t<td align='right'><input type='hidden' name='rbsa[{$id}][{$td['id']}]' value='" . $rbsa[$id][$td['id']] . "'>" . $rbsa[$id][$td['id']] . "</td>\n\t\t\t\t\t</tr>";
                $i++;
            }
            $rt .= "</table>";
        } else {
            $rt = "None";
        }
        // calculate age of employee (if intl., ie has passport num only), act asif under 65
        if (!empty($data["idnum"])) {
            // calculate age of employee
            $bd_year = 1900 + substr($data["idnum"], 0, 2);
            $bd_month = substr($data["idnum"], 2, 2);
            $bd_day = substr($data["idnum"], 4, 2);
            /* get the current financial year */
            db_conn("core");
            $sql = "SELECT yrname FROM active";
            $rslt = db_exec($sql) or errDie("Error fetching financial year.");
            if (pg_num_rows($rslt) < 1) {
                return "Please run quick setup first.";
            }
            $fin_year = substr(pg_fetch_result($rslt, 0, 0), 1);
            $sql = "SELECT EXTRACT('year' FROM AGE('{$fin_year}-02-28', '{$bd_year}-{$bd_month}-{$bd_day}'))";
            $rslt = db_exec($sql) or errDie("Error calculating age at financial year end.");
            $age[$id] = pg_fetch_result($rslt, 0, 0);
        } else {
            $age[$id] = 1;
        }
        # The Paye
        $tyear = 12;
        switch ($data["payprd"]) {
            case 'm':
                $tyear = 12;
                break;
            case 'w':
                $tyear = 52;
                break;
            case 'f':
                $tyear = 26;
                break;
            case 'd':
                $tyear = 5 * 52;
                break;
        }
        if ($data["saltyp"] != "h") {
            if ($myEmp["saltyp"] == "w") {
                $perhr = sprint($basic_sal / $wh_actual);
            } else {
                $perhr = sprint($basic_sal[$id] * $tyear / ($data['hpweek'] * 52));
            }
        } else {
            $perhr = $basic_sal[$id];
        }
        $overamt[$id] = $novert[$id] * ($perhr * $data['novert']);
        $overamt[$id] += sprint($hovert[$id] * ($perhr * $data['hovert']));
        # Multiply basic_sal add overtime
        if (isset($multi[$id])) {
            $basic_sal[$id] = sprint($basic_sal[$id] * $multi[$id]);
            //$tyear = ($tyear/$multi[$id]);
        }
        // calculate loan fringe benefit amount for this month
        if (!empty($data["loanamt"]) && $data["gotloan"] == "t" && $data["loanamt"] > 0) {
            $loanpart = $loaninstall[$id] / $data["loanamt"];
            $fringe_loan[$id] = sprint($data["loanfringe"] * $loanpart);
        } else {
            $fringe_loan[$id] = "0.00";
        }
        $fringe_tot[$id] += $fringe_loan[$id];
        $fringe_tot[$id] += $comp_other[$id];
        $fringe_tot[$id] += $comp_ret[$id];
        //2012
        // calculate motor car fringe benefit
        if ($data["fringe_car1"] > 0) {
            $deduct_perc = 0;
            // Employee has travel allowance?
            if ($data["all_travel"] > 0) {
                $deduct_perc = 0.0325;
            } else {
                $deduct_perc = 0.035;
            }
            $fringe_car1 = $data["fringe_car1"] * $deduct_perc;
        }
        // Second fringe car will always be 3.25%
        if ($data["fringe_car2"] > 0) {
            $fringe_car2 = $data["fringe_car2"] * 0.0325;
        }
        vsprint($fringe_car1[$id]);
        vsprint($fringe_car2[$id]);
        $fringe_tot[$id] += $fringe_car1[$id] + $fringe_car2[$id];
        $fringe_tot[$id] += $de_afteramount_emp[$id] + $de_beforeamount_emp[$id];
        $fringe_tot[$id] += $subs_taxable[$id];
        // calc medical fringe benefits
        if ($comp_medical[$id] > 0) {
            // calculate dependants after first one
            $tmp_deps = $data["emp_meddeps"] - 2;
            if ($tmp_deps < 0) {
                $tmp_deps = 0;
            }
            //2009
            // calculate paragraph 12A amount
            //first 2 dependants are 530 each (1060) rest is 320 each.
            //$p12A_amt = ($data["emp_meddeps"] > 1 ? 1060 : 530) + ($tmp_deps * 320);
            //2010
            // calculate paragraph 12A amount
            //first 2 dependants are 625 each (1250) rest is 380 each.
            //$p12A_amt = ($data["emp_meddeps"] > 1 ? 1250 : 625) + ($tmp_deps * 380);
            //2011
            // calculate paragraph 12A amount
            //first 2 dependants are 670 each (1340) rest is 410 each.
            //$p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 1340 : 820) + ($tmp_deps * 410);
            //2012
            // calculate paragraph 12A amount
            //first 2 dependants are 230 each (460) rest is 154 each.
            $p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 460 : 230) + $tmp_deps * 154;
            // calculate taxable fringe benefit amount
            $fringe_medical[$id] = sprint($comp_medical[$id] - $p12A_amt / $divisor[$id]);
            if ($fringe_medical[$id] < 0) {
                $fringe_medical[$id] = 0;
            }
            $fringe_tot[$id] += $fringe_medical[$id];
        } else {
            $fringe_medical[$id] = 0;
        }
        if ($emp_pension[$id] > $basic_sal[$id] * 7.5 / 100) {
            $emp_mpension[$id] = $basic_sal[$id] * 7.5 / 100;
        } else {
            $emp_mpension[$id] = $emp_pension[$id];
        }
        // calculate total gross salary
        $grossal[$id] = $basic_sal[$id] + $commission[$id] + $abonus[$id] + $overamt[$id] + $bonus[$id] + $annual[$id] + $all_beforeamount[$id] + $all_travel[$id] * 0.8 - $de_beforeamount[$id];
        // deductions deducted before paye (non taxible)
        $grossal_2 = $grossal[$id];
        $taxed_all[$id] = $all_afteramount[$id] + $all_travel[$id] * 0.8;
        $grossal_nodedall[$id] = $basic_sal[$id] + $overamt[$id] + $bonus[$id] + $annual[$id] + $all_travel[$id];
        #UIF HAX
        $uif_grossal[$id] = $grossal[$id];
        // pension/provident/ra: calculate deduction amounts, limiting them to maximum amount and only deducting
        // ONE of them for taxable income
        if ($comp_pension[$id] + $emp_pension[$id] > 0) {
            $tmp = ($grossal_2 + $fringe_tot[$id]) * $tyear;
            $maxallowed = $tmp * 0.075 > 1750 ? $tmp * 0.075 : 1750;
            if ($emp_mpension[$id] > $maxallowed) {
                $tmp_ded = $maxallowed;
            } else {
                $tmp_ded = $emp_mpension[$id];
            }
            $grossal[$id] -= $tmp_ded;
        }
        if ($comp_ret[$id] + $emp_ret[$id] > 0) {
            $tmp = ($grossal_2 + $fringe_tot[$id]) * $tyear;
            // if their is a pension contributions the percentage is 0
            if ($comp_pension[$id] + $emp_pension[$id] + $comp_provident[$id] + $emp_provident[$id] > 0) {
                $PERC = 0;
            } else {
                $PERC = 0.15;
            }
            $maxallowed = $tmp * $PERC > 1750 ? $tmp * $PERC : 1750;
            $maxallowed = $maxallowed > 3500 - $emp_pension[$id] * $divisor[$id] * 12 ? $maxallowed : 3500 - $emp_pension[$id] * 12;
            if (($emp_ret[$id] + $comp_ret[$id]) * $divisor[$id] > $maxallowed / 12) {
                $tmp_ded = $maxallowed / 12 / $divisor[$id];
            } else {
                $tmp_ded = $emp_ret[$id] + $comp_ret[$id];
            }
            $grossal[$id] -= $tmp_ded;
        }
        // calculate total paye salary
        // just remove annual this month, and add annual divided by 12
        // because paye is calculate for full twelve months and therefore
        // paye salary is average received each month
        $paye_salary[$id] = $grossal[$id] - $annual[$id] + $fringe_tot[$id];
        // total fringe benefits;
        #UIF HAX
        $uif_paye_salary[$id] = $uif_grossal[$id] - $annual[$id] + $fringe_tot[$id];
        /* calculate uif */
        $tmp_remun = $paye_salary[$id] + $annual[$id] - $commission[$id] - $abonus[$id];
        #UIF HAX
        $uif_tmp_remun = $uif_paye_salary[$id] + $annual[$id] - $commission[$id] - $abonus[$id];
        //		$comp_uif[$id] = sprint($tmp_remun * ($data["comp_uif"] / 100));
        //		$emp_uif[$id] = sprint($tmp_remun * ($data["emp_uif"] / 100));
        #UIF HAX
        $comp_uif[$id] = sprint($uif_tmp_remun * ($data["comp_uif"] / 100));
        $emp_uif[$id] = sprint($uif_tmp_remun * ($data["emp_uif"] / 100));
        $uifmax = getCSetting("UIF_MAX");
        if ($emp_uif[$id] > $uifmax) {
            $emp_uif[$id] = sprint($uifmax);
        }
        if ($comp_uif[$id] > $uifmax) {
            $comp_uif[$id] = sprint($uifmax);
        }
        /* calculate sdl */
        $tmp_remun = $paye_salary[$id] + $annual[$id];
        if (getCSetting("SDLPAYABLE") == "y") {
            $tmp_sdl = $tmp_remun;
            if ($age > 65) {
                $tmp_sdl -= $comp_medical[$id];
            }
            $comp_sdl[$id] = $tmp_sdl * ($data["comp_sdl"] / 100);
        } else {
            $comp_sdl[$id] = 0;
        }
        // a little hack, apparently the grossal is displayed wrong, in a strictly antisocial.co.za opinion,
        // i think the person who thinks that must suck
        $grossal[$id] += $comp_ret[$id];
        // add rest of travel allowance
        $grossal[$id] += $all_travel[$id] * 0.2;
        if (isset($mpaye[$id])) {
            $paye[$id] = $mpaye_amount[$id];
        } else {
            // calculate paye (take age of 65+ threshold into account)
            //2008
            //			if ( ($age[$id] >= 65 && ($paye_salary[$id] * $tyear) < 69000) || ($paye_salary[$id] * $tyear) < 43000 ) {
            //2009
            // 			if ( ($age[$id] >= 65 && ($paye_salary[$id] * $tyear) < 74000) || ($paye_salary[$id] * $tyear) < 46000 ) {
            //2010
            //			if ( ($age[$id] >= 65 && ($paye_salary[$id] * $tyear) < 84200) || ($paye_salary[$id] * $tyear) < 54200 ) {
            //2011
            //if ( ($age[$id] >= 65 && ($paye_salary[$id] * $tyear) < 88528) || ($paye_salary[$id] * $tyear) < 57000 ) {
            //2012
            if ($age[$id] >= 65 && $age[$id] < 75 && $paye_salary[$id] * $tyear < 99056 || $age[$id] >= 75 && $paye_salary[$id] * $tyear < 110889 || $paye_salary[$id] * $tyear < 63556) {
                $paye[$id] = "0.00";
            } else {
                if ($data["payprd"] == "w" || $data["payprd"] == "f") {
                    $paye_prd = "{$month}:{$week}";
                } else {
                    if ($data["payprd"] == "d") {
                        $paye_prd = "{$month}:{$pday}";
                    } else {
                        $paye_prd = "{$month}";
                    }
                }
                $paye[$id] = calculate_paye($data, $paye_prd, $paye_salary[$id], $tyear, $age[$id]);
                if ($annual[$id] > 0) {
                    $tmp_bonpaye = calculate_paye($data, $paye_prd, $paye_salary[$id] + $annual[$id] / 12, $tyear, $age[$id]);
                    $paye[$id] += $tmp_bonpaye * $tyear - $paye[$id] * $tyear;
                }
            }
        }
        $nonretfunding = $grossal[$id] - $paye[$id] - $loaninstall[$id] - $de_afteramount[$id] + $de_afteramount_emp[$id] + $all_afteramount[$id] - $emp_pension[$id] - $emp_medical[$id] - $emp_provident[$id] - $emp_uif[$id] - $emp_other[$id];
        /*		$ret_max = (1800>($nonretfunding*0.15))?1800:($nonretfunding*0.15);
        
        		if ( $comp_ret[$id] + $emp_ret[$id] > $ret_max ) {
        			$comp_ret[$id] = $ret_max - $emp_ret[$id];
        
        			if ( $comp_ret[$id] < 0 ) {
        				$comp_ret[$id] = 0;
        				$emp_ret[$id] = $ret_max;
        			}
        		}*/
        $nettpay[$id] = $basic_sal[$id] + $overamt[$id] - $paye[$id] + $commission[$id] + $abonus[$id] - $loaninstall[$id] - $de_afteramount[$id] - $de_beforeamount[$id] + $all_afteramount[$id] + $all_beforeamount[$id] - $emp_pension[$id] - $emp_medical[$id] - $emp_ret[$id] - $emp_uif[$id] - $emp_provident[$id] - $emp_other[$id] + $all_travel[$id] + $annual[$id] + $bonus[$id] - $data["fringe_car1_contrib"] - $data["fringe_car2_contrib"] + $subs_total[$id];
        if (isset($rbsa[$id])) {
            $nettpay[$id] += array_sum($rbsa[$id]);
        }
        $nettpay[$id] = sprint($nettpay[$id]);
        //<td><table><tr><td><input type=checkbox name='mpaye[$id]'></td><td><input type=text size=8 name='mpaye_amount[$id]'></td></tr></table></td>
        $totded[$id] = sprint($de_beforeamount[$id] + $de_afteramount[$id] + $emp_pension[$id] + $emp_medical[$id] + $emp_provident[$id] + $emp_ret[$id] + $emp_other[$id]);
        $totded_employer[$id] = sprint($de_beforeamount_emp[$id] + $de_afteramount_emp[$id] + $comp_pension[$id] + $comp_medical[$id] + $comp_provident[$id] + $comp_ret[$id] + $comp_other[$id]);
        $totall[$id] = sprint($all_beforeamount[$id] + $all_afteramount[$id] + $all_travel[$id]);
        if (isset($mpaye[$id])) {
            $che = "<input type='hidden' name='mpaye[{$id}]' value=''>";
        } else {
            $che = "";
        }
        vsprint($grossal[$id]);
        vsprint($basic_sal[$id]);
        vsprint($bonus[$id]);
        vsprint($annual[$id]);
        vsprint($commission[$id]);
        vsprint($abonus[$id]);
        vsprint($all_travel[$id]);
        vsprint($loaninstall[$id]);
        vsprint($comp_pension[$id]);
        vsprint($emp_pension[$id]);
        vsprint($comp_provident[$id]);
        vsprint($emp_provident[$id]);
        vsprint($comp_ret[$id]);
        vsprint($emp_ret[$id]);
        vsprint($comp_medical[$id]);
        vsprint($emp_medical[$id]);
        vsprint($comp_other[$id]);
        vsprint($emp_other[$id]);
        vsprint($novert[$id]);
        vsprint($novert[$id]);
        vsprint($fringe_medical[$id]);
        vsprint($paye[$id]);
        $out .= "\n\t\t\t<input type='hidden' name='mpaye_amount[{$id}]' value='{$mpaye_amount[$id]}'>\n\t\t\t{$che}\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<input type='hidden' name='overamt[{$id}]' value='{$overamt[$id]}'>\n\t\t\t\t<input type='hidden' name='comp_sdl[{$id}]' value='{$comp_sdl[$id]}'>\n\t\t\t\t<input type='hidden' name='process_comp_deductions[{$id}]' value='{$process_comp_deductions[$id]}'>\n\t\t\t\t<input type='hidden' name='grossal[{$id}]' value='{$grossal[$id]}'>\n\t\t\t\t<input type='hidden' name='grossal_nodedall[{$id}]' value='{$grossal_nodedall[$id]}'>\n\t\t\t\t<input type='hidden' name='totded[{$id}]' value='{$totded[$id]}'>\n\t\t\t\t<input type='hidden' name='totded_employer[{$id}]' value='{$totded_employer[$id]}'>\n\t\t\t\t<input type='hidden' name='totall[{$id}]' value='{$totall[$id]}'>\n\t\t\t\t<input type='hidden' name='emps[{$id}]' value='{$id}'>\n\t\t\t\t<input type='hidden' name='fringe_tot[{$id}]' value='{$fringe_tot[$id]}'>\n\t\t\t\t<input type='hidden' name='paye_salary[{$id}]' value='{$paye_salary[$id]}' />\n\t\t\t\t<input type='hidden' name='multi[{$id}]' value='{$multi[$id]}'>\n\t\t\t\t<input type='hidden' name='tyear[{$id}]' value='{$tyear}'>\n\t\t\t\t<input type='hidden' name='taxed_all[{$id}]' value='{$taxed_all[$id]}' />\n\t\t\t\t<td>{$data['enum']}</td>\n\t\t\t\t<td>{$data['sname']}, {$data['fnames']}</td>\n\t\t\t\t<td><input type='hidden' name='basic_sal[{$id}]' value='{$basic_sal_save[$id]}' class='right'>{$basic_sal[$id]}</td>\n\t\t\t\t<td><input type='text' size='8' name='paidamount[{$id}]' id='paidamount[{$id}]' value='0.00'></td>\n\t\t\t\t<td><input type='hidden' name='bonus[{$id}]' value='{$bonus[$id]}' class='right'><input type='hidden' name='abonus[{$id}]' value='{$abonus[$id]}'>{$abonus[$id]}</td>\n\t\t\t\t<input type='hidden' name='annual[{$id}]' value='{$annual[$id]}' />\n\t\t\t\t<!--<td><input type='hidden' name='annual[{$id}]' value='{$annual[$id]}' class='right'>{$annual[$id]}</td>-->\n\t\t\t\t<td><input type='hidden' name='commission[{$id}]' value='{$commission[$id]}' class='right'>{$commission[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='all_travel[{$id}]' value='{$all_travel[$id]}' class='right'>{$all_travel[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='loaninstall[{$id}]' value='{$loaninstall[$id]}' class='right'>{$loaninstall[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='comp_pension[{$id}]' value='{$comp_pension[$id]}' class='right'>{$comp_pension[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_pension[{$id}]' value='{$emp_pension[$id]}' class='right'>{$emp_pension[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='comp_provident[{$id}]' value='{$comp_provident[$id]}' class='right'>{$comp_provident[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_provident[{$id}]' value='{$emp_provident[$id]}' class='right'>{$emp_provident[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='comp_uif[{$id}]' value='{$comp_uif[$id]}' class='right'>{$comp_uif[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_uif[{$id}]' value='{$emp_uif[$id]}' class='right'>{$emp_uif[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='comp_ret[{$id}]' value='{$comp_ret[$id]}' class='right'>{$comp_ret[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_ret[{$id}]' value='{$emp_ret[$id]}' class='right'>{$emp_ret[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='comp_medical[{$id}]' value='{$comp_medical[$id]}' class='right'>{$comp_medical[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_medical[{$id}]' value='{$emp_medical[$id]}' class='right'>{$emp_medical[$id]}</td>\n\n\t\t\t\t<input type='hidden' name='comp_other[{$id}]' value='{$comp_other[$id]}' class='right'>\n\t\t\t\t<input type='hidden' name='emp_other[{$id}]' value='{$emp_other[$id]}' class='right'>\n\t\t\t\t<!--\n\t\t\t\t<td><input type='hidden' name='comp_other[{$id}]' value='{$comp_other[$id]}' class='right'>{$comp_other[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_other[{$id}]' value='{$emp_other[$id]}' class='right'>{$emp_other[$id]}</td>\n\t\t\t\t//-->\n\n\t\t\t\t<td><input type='hidden' name='novert[{$id}]' value='{$novert[$id]}'>{$novert[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='hovert[{$id}]' value='{$hovert[$id]}'>{$hovert[$id]}</td>\n\t\t\t\t<td>{$paydetails}</td>\n\t\t\t\t<td nowrap><input type='hidden' name='fringe_medical[{$id}]' value='{$fringe_medical[$id]}'>" . CUR . " {$fringe_medical[$id]}</td>\n\t\t\t\t<td nowrap><input type='hidden' name='fringe_car1[{$id}]' value='{$fringe_car1[$id]}'>" . CUR . " {$fringe_car1[$id]}</td>\n\t\t\t\t<td nowrap><input type='hidden' name='fringe_car2[{$id}]' value='{$fringe_car2[$id]}'>" . CUR . " {$fringe_car2[$id]}</td>\n\t\t\t\t<td nowrap><input type='hidden' name='fringe_loan[{$id}]' value='{$fringe_loan[$id]}'>" . CUR . " {$fringe_loan[$id]}</td>\n\t\t\t\t<td>{$fringes}</td>\n\t\t\t\t<td>{$Allowances}</td>\n\t\t\t\t<td>{$subsistence}</td>\n\t\t\t\t<td>{$Deductions}</td>\n\t\t\t\t<td>{$rt}</td>\n\t\t\t\t<td>{$grossal[$id]}<input type='hidden' name='grossal[{$id}]' value='{$grossal[$id]}'></td>\n\t\t\t\t<td>{$paye[$id]}<input type='hidden' name='paye[{$id}]' value='{$paye[$id]}'></td>\n\t\t\t\t<td>{$nettpay[$id]}<input type='hidden' id='nettpay[{$id}]' name='nettpay[{$id}]' value='{$nettpay[$id]}'></td>\n\t\t\t</tr>";
        $payall_js .= "getObject('paidamount[{$id}]').value = getObject('nettpay[{$id}]').value;";
    }
    $out .= "\n\t\t\t<tr><td><br></td></tr>{$send}\n\t\t\t<script>\n\t\t\t\tfunction emp_payall() {\n\t\t\t\t\t{$payall_js}\n\t\t\t\t}\n\t\t\t</script>\n\t\t\t<tr>\n\t\t\t\t<td colspan='3'><input type='submit' value='&laquo; Correction'></td>\n\t\t\t\t<td colspan='5'><input type='button' value='Pay Selected Employees In Full After Processing' onClick='emp_payall();'></td>\n\t\t\t\t<td colspan='2' align='right'><input type='submit' value='Process Salaries &raquo;' name='button'></td>\n\t\t\t\t<td colspan='10' align='right'><input type='submit' value='Process Salaries &raquo;' name='button'></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t</form>";
    return $out;
}
function viewtran($_POST)
{
    # Get vars
    extract($_POST);
    # validate input
    require_lib("validate");
    $v = new validate();
    $v->isOk($prd, "string", 1, 14, "Invalid Period number.");
    $v->isOk($prd_f, "num", 1, 2, "Invalid From Period.");
    $v->isOk($prd_t, "num", 1, 2, "Invalid To Period.");
    if (isset($accnt)) {
        if ($accnt == 'slct') {
            if (isset($supids)) {
                foreach ($supids as $key => $supid) {
                    $v->isOk($supid, "num", 1, 20, "Invalid Supplier number.");
                }
            } else {
                return "<li class=err>Please select at least one Creditor.</li>" . slctacc();
            }
        }
    } else {
        $v->isOk("###", "num", 0, 0, "ERROR : Invalid Accounts Selection.");
    }
    # display errors, if any
    if ($v->isError()) {
        $confirm = "";
        $errors = $v->getErrors();
        foreach ($errors as $e) {
            $confirm .= "<li class=err>" . $e["msg"];
        }
        $confirm .= "<p><input type=button onClick='JavaScript:history.back();' value='&laquo; Correct submission'>";
        return $confirm;
    }
    # Get the ids
    if ($accnt == 'all') {
        $supids = array();
        db_connect();
        $sql = "SELECT empnum FROM employees WHERE div = '" . USER_DIV . "'";
        $rs = db_exec($sql);
        if (pg_num_rows($rs) > 0) {
            while ($ac = pg_fetch_array($rs)) {
                $supids[] = $ac['empnum'];
            }
        } else {
            return "<li calss=err> There are no employees yet in Cubit.";
        }
    }
    //	# Period name
    //	$prdname = prdname($prd);
    //
    //	$trans = "";
    //	foreach($supids as $key => $supid){
    //		$supRs = get("cubit", "empnum,sname,fnames, balance", "employees", "empnum", $supid);
    //		$sup = pg_fetch_array($supRs);
    //
    //		$idRs = get($prd, "min(id)", "empledger", "empid", $supid);
    //		$id = pg_fetch_array($idRs);
    //
    //		if($id['min'] <> 0){
    //			$balRs = get($prd, "(cbalance-credit) AS cbalance,(dbalance-debit) AS dbalance", "empledger", "id", $id['min']);
    //			$bal = pg_fetch_array($balRs);
    //			$bal['cbalance'] += 0;
    //			$bal['dbalance'] += 0;
    //		}else{
    //			$balRs = get("cubit", "balance", "employees", "empnum", $supid);
    //			$bal = pg_fetch_array($balRs);
    //			$bal['balance']+=0;
    //
    //			if($bal['balance']<0) {
    //				$bal['dbalance'] = $bal['balance'];
    //				$bal['cbalance'] = 0;
    //			} else {
    //				$bal['cbalance'] = $bal['balance'];
    //				$bal['dbalance'] = 0;
    //			}
    //			//$bal['dbalance'] += $amount;
    //		}
    //
    //		# Total balance changes
    //		if($bal['dbalance'] > $bal['cbalance']){
    //			$bal['dbalance'] = ($bal['dbalance'] - $bal['cbalance']);
    //			$bal['cbalance'] = 0;
    //		}elseif($bal['cbalance'] > $bal['dbalance']){
    //			$bal['cbalance'] = ($bal['cbalance'] - $bal['dbalance']);
    //			$bal['dbalance'] = 0;
    //		}else{
    //			$bal['cbalance'] = 0;
    //			$bal['dbalance'] = 0;
    //		}
    //
    //		$bal['credit'] = sprint($bal['cbalance']);
    //		$bal['debit'] = sprint($bal['dbalance']);
    //
    //		$balance=sprint($bal['cbalance']-$bal['dbalance']);
    //
    //		$trans .= "<tr><td colspan=8><b>$sup[sname], $sup[fnames]</b></td></tr>";
    //		$trans .= "<tr><td colspan=2><br></td><td>Br/Forwd</td><td>Brought Forward</td><td align=right>$bal[debit]</td><td align=right>$bal[credit]</td><td align=right>$balance</td><td> </td></tr>";
    //
    //		# --> Transaction reading comes here <--- #
    //		$dbal['debit'] = 0;
    //		$dbal['credit'] = 0;
    //
    //		if($t=="s") {
    //			$tranRs = get($prd, "*", "empledger", "empid", $supid,"ORDER BY id");
    //		} else  {
    //			$tranRs = get($prd, "*", "empledger", "empid", $supid,"ORDER BY edate,id");
    //		}
    //		while($tran = pg_fetch_array($tranRs)){
    //			$caccRs = get("core", "accname, accid, topacc, accnum", "accounts", "accid", $tran['contra']);
    //			$cacc = pg_fetch_array($caccRs);
    //
    //			$tran['debit']=sprint($tran['debit']);
    //			$tran['credit']=sprint($tran['credit']);
    //
    //			$dbal['debit'] += $tran['debit'];
    //			$dbal['credit'] += $tran['credit'];
    //
    //			if($t=="s") {
    //
    //				$cbalance = sprint($tran['cbalance'] - $tran['dbalance']);
    //
    //			} else {
    //
    //				$cbalance = sprint(($dbal['credit']+$bal['credit']) - ($dbal['debit']+$bal['debit']));
    //
    //			}
    //
    //			if($t=="s") {
    //				$tran['edate']=$tran['sdate'];
    //			}
    //
    //			# Format date
    //			$tran['edate'] = explode("-", $tran['edate']);
    //			$tran['edate'] = $tran['edate'][2]."-".$tran['edate'][1]."-".$tran['edate'][0];
    //
    //			$trans .= "<tr><td><br></td><td>$tran[edate]</td><td>$tran[ref]</td><td>$tran[des]</td><td align=right>$tran[debit]</td><td align=right>$tran[credit]</td><td align=right>$cbalance</td><td>$cacc[topacc]/$cacc[accnum] - $cacc[accname]</td></tr>";
    //		}
    //
    //		# Total balance changes
    //		if($dbal['debit'] > $dbal['credit']){
    //			$dbal['debit'] = sprint($dbal['debit'] - $dbal['credit']);
    //			$dbal['credit'] = "";
    //		}elseif($dbal['credit'] > $dbal['debit']){
    //			$dbal['credit'] = sprint($dbal['credit'] - $dbal['debit']);
    //			$dbal['debit'] = "";
    //		}else{
    //			$dbal['credit'] = "";
    //			$dbal['debit'] = "0.00";
    //		}
    //
    //		$trans .= "<tr><td colspan=2><br></td><td>A/C Total</td><td>Total for period $prdname to Date :</td><td align=right>$dbal[debit]</td><td align=right>$dbal[credit]</td><td align=right></td><td> </td></tr>";
    //		$trans .= "<tr><td colspan=8><br></td></tr>";
    //	}
    $prds = array();
    if ($prd_f > $prd_t) {
        for ($i = $prd_f; $i <= 12; ++$i) {
            $prds[] = $i;
        }
        for ($i = 1; $i <= $prd_t; ++$i) {
            $prds[] = $i;
        }
    } else {
        for ($i = $prd_f; $i <= $prd_t; ++$i) {
            $prds[] = $i;
        }
    }
    # Period name
    $hide = "";
    $trans = "";
    foreach ($supids as $key => $supid) {
        $supRs = get("cubit", "empnum,sname,fnames, balance", "employees", "empnum", $supid);
        $sup = pg_fetch_array($supRs);
        $trans .= "\n\t\t<tr>\n\t\t\t<td align='center' colspan='8'><h2>{$sup['sname']}, {$sup['fnames']}</h2></td>\n\t\t</tr>";
        foreach ($prds as $prd) {
            $idRs = get($prd, "min(id)", "empledger", "empid", $supid);
            $id = pg_fetch_array($idRs);
            if ($id['min'] != 0) {
                $balRs = get($prd, "(cbalance-credit) AS cbalance,(dbalance-debit) AS dbalance", "empledger", "id", $id['min']);
                $bal = pg_fetch_array($balRs);
                $bal['cbalance'] += 0;
                $bal['dbalance'] += 0;
            } else {
                $sql = array();
                for ($i = $MONPRD[$prd] - 1; $i >= 1; --$i) {
                    $pprdname = getMonthName($PRDMON[$i]);
                    $sql[] = "SELECT id,cbalance,dbalance\n\t\t\t\t\t\t\tFROM \"{$i}\".empledger\n\t\t\t\t\t\t\tWHERE empid='{$supid}'";
                }
                if (count($sql) > 0) {
                    $sql = "SELECT * FROM (" . implode(" UNION ", $sql) . ") AS sl\n\t\t\t\t\t\t\tORDER BY id DESC\n\t\t\t\t\t\t\tLIMIT 1";
                    $balRs = db_exec($sql);
                    $bal = pg_fetch_array($balRs);
                }
            }
            # Total balance changes
            if ($bal['dbalance'] > $bal['cbalance']) {
                $bal['dbalance'] = $bal['dbalance'] - $bal['cbalance'];
                $bal['cbalance'] = 0;
            } elseif ($bal['cbalance'] > $bal['dbalance']) {
                $bal['cbalance'] = $bal['cbalance'] - $bal['dbalance'];
                $bal['dbalance'] = 0;
            } else {
                $bal['cbalance'] = 0;
                $bal['dbalance'] = 0;
            }
            $bal['credit'] = sprint($bal['cbalance']);
            $bal['debit'] = sprint($bal['dbalance']);
            $balance = sprint($bal['cbalance'] - $bal['dbalance']);
            // make the date of the last day of the previous prd
            $bbf_date = date("t-M-Y", mktime(0, 0, 0, $prd - 1, 1, getYearOfEmpMon($prd - 1)));
            if (!isset($sp)) {
                $sp = "";
            }
            $c = 0;
            $hide .= "<input type=hidden name=supids[] value='{$supid}'>";
            $trans .= "\n\t\t\t<tr>\n\t\t\t\t<th colspan='8'>" . getMonthName($prd) . " " . getYearOfEmpMon($prd) . "</th>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<th>{$sp}</th>\n\t\t\t\t<th>Date</th>\n\t\t\t\t<th>Reference</th>\n\t\t\t\t<th>Description</th>\n\t\t\t\t<th>Debit</th>\n\t\t\t\t<th>Credit</th>\n\t\t\t\t<th>Balance</th>\n\t\t\t\t<th>Contra Acc</th>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='2' align='right'>{$bbf_date}</td>\n\t\t\t\t<td>Br/Forwd</td>\n\t\t\t\t<td>Brought Forward</td>\n\t\t\t\t<td align=right>{$bal['debit']}</td>\n\t\t\t\t<td align=right>{$bal['credit']}</td>\n\t\t\t\t<td align=right>{$balance}</td>\n\t\t\t\t<td> </td>\n\t\t\t</tr>";
            # --> Transaction reading comes here <--- #
            $dbal['debit'] = 0;
            $dbal['credit'] = 0;
            if ($t == "s") {
                $tranRs = get($prd, "*", "empledger", "empid", $supid, "ORDER BY id");
            } else {
                $tranRs = get($prd, "*", "empledger", "empid", $supid, "ORDER BY edate,id");
            }
            while ($tran = pg_fetch_array($tranRs)) {
                $caccRs = get("core", "accname, accid, topacc, accnum", "accounts", "accid", $tran['contra']);
                $cacc = pg_fetch_array($caccRs);
                $tran['debit'] = sprint($tran['debit']);
                $tran['credit'] = sprint($tran['credit']);
                $dbal['debit'] += $tran['debit'];
                $dbal['credit'] += $tran['credit'];
                if ($t == "s") {
                    $cbalance = sprint($tran['cbalance'] - $tran['dbalance']);
                } else {
                    $cbalance = sprint($dbal['credit'] + $bal['credit'] - ($dbal['debit'] + $bal['debit']));
                }
                if ($t == "s") {
                    $tran['edate'] = $tran['sdate'];
                }
                # Format date
                $tran['edate'] = explode("-", $tran['edate']);
                $tran['edate'] = $tran['edate'][2] . "-" . $tran['edate'][1] . "-" . $tran['edate'][0];
                $trans .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t<td>{$tran['edate']}</td>\n\t\t\t\t\t<td>{$tran['ref']}</td>\n\t\t\t\t\t<td>{$tran['des']}</td>\n\t\t\t\t\t<td align='right'>{$tran['debit']}</td>\n\t\t\t\t\t<td align='right'>{$tran['credit']}</td>\n\t\t\t\t\t<td align='right'>{$cbalance}</td>\n\t\t\t\t\t<td>{$cacc['topacc']}/{$cacc['accnum']} - {$cacc['accname']}</td>\n\t\t\t\t</tr>";
            }
            # Total balance changes
            if ($dbal['debit'] > $dbal['credit']) {
                $dbal['debit'] = sprint($dbal['debit'] - $dbal['credit']);
                $dbal['credit'] = "";
            } elseif ($dbal['credit'] > $dbal['debit']) {
                $dbal['credit'] = sprint($dbal['credit'] - $dbal['debit']);
                $dbal['debit'] = "";
            } else {
                $dbal['credit'] = "";
                $dbal['debit'] = "0.00";
            }
            $trans .= "\n\t\t\t<tr>\n\t\t\t\t<td colspan='2'>&nbsp;</td>\n\t\t\t\t<td>A/C Total</td>\n\t\t\t\t<td>Total for period " . prdname($prd) . ":</td>\n\t\t\t\t<td align='right'>{$dbal['debit']}</td>\n\t\t\t\t<td align='right'>{$dbal['credit']}</td>\n\t\t\t\t<td align='right'>&nbsp;</td>\n\t\t\t\t<td>&nbsp;</td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR;
        }
    }
    $sp = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    $view = "\n\t\t\t\t<center>\n\t\t\t\t<h3>Employee Ledger</h3>\n\t\t\t\t<table " . TMPL_tblDflts . " width=75%>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>{$sp}</td>\n\t\t\t\t\t\t<th>Date</th>\n\t\t\t\t\t\t<th>Reference</th>\n\t\t\t\t\t\t<th>Description</th>\n\t\t\t\t\t\t<th>Debit</th>\n\t\t\t\t\t\t<th>Credit</th>\n\t\t\t\t\t\t<th>Balance</th>\n\t\t\t\t\t\t<th>Contra Acc</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t{$trans}\n\t\t\t\t</table>";
    include "temp.xls.php";
    Stream("Ledger", $view);
}
/**
 * counts periods from one date to another
 *
 * @param string $from
 * @param string $to
 * @param string $type period type w/f/w/d
 * @return unknown
 */
function prdage($from, $to, $type)
{
    /* if weekly salary, move $from to first friday */
    if ($type == "w" || $type == "f") {
        while (date("w", $from) != 5) {
            $from += 24 * 60 * 60;
        }
    }
    //print "to: ".date("Y-m-d", $to)."<br />";
    /* extract day/month from $from */
    $fmon = date("m", $from);
    $fday = date("d", $from);
    /* count them */
    $i = 0;
    $prd = 1;
    //print "$prd - $i - from: ".date("Y-m-d", $from)."<br />";
    while ($from < $to) {
        ++$prd;
        /* increase to next period */
        if ($type == "f") {
            /* find next period
            			two weeks onwards, */
            $from = mktime(0, 0, 0, $fmon, $fday + ++$i * 14, getYearOfEmpMon($fmon));
        } else {
            if ($type == "w") {
                $from = mktime(0, 0, 0, $fmon, $fday + ++$i * 7, getYearOfEmpMon($fmon));
            } else {
                if ($type == "d") {
                    /* increase day to next skipping sundays/saturdays
                    			sunday: date("w") == 0
                    			saturday: date("w") == 6
                    		 */
                    do {
                        $from = mktime(0, 0, 0, $fmon, 1 + ++$i, getYearOfEmpMon($fmon));
                    } while (date("w", $from) % 6 == 0 && $from < $to);
                } else {
                    if ($type == "m") {
                        $from = mktime(0, 0, 0, $fmon + ++$i, 1, getYearOfEmpMon($fmon));
                        $from = mktime(0, 0, 0, date("m", $from), date("t", $from), date("Y", $from));
                    } else {
                        return false;
                    }
                }
            }
        }
        //print "$prd - $i - from: ".date("Y-m-d", $from)."<br />";
    }
    //payedbg("calculated age: $prd<br />");
    return $prd;
}
function process($_POST)
{
    extract($_POST);
    if (isset($btn_correction)) {
        return slctEmployee();
    }
    # validate input
    require_lib("validate");
    $v = new validate();
    $v->isOk($empnum, "num", 1, 20, "Invalid employee number.");
    $v->isOk($MON, "num", 1, 2, "Invalid month.");
    global $PRDMON, $MONPRD;
    $yr = getYearOfEmpMon($MON);
    $curyr = getActiveFinYear();
    if ($yr > $curyr || $yr == $curyr && $MON > $PRDMON[12]) {
        $v->addError("", "Cannot do transaction in future financial year. You need\n\t\t\tto close your year first before you can continue.");
    }
    if ($v->isError()) {
        return slctEmployee($v->genErrors());
        return $confirmCust;
    }
    # Get employee details
    global $global_empnum;
    $global_empnum = $empnum;
    db_conn('cubit');
    $sql = "SELECT * FROM employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "'";
    $empRslt = db_exec($sql) or errDie("Unable to select employees from database.");
    if (pg_numrows($empRslt) < 1) {
        return "Invalid employee ID.";
    }
    $myEmp = pg_fetch_array($empRslt);
    if ($myEmp["flag"] == "2.5EMP") {
        $OUTPUT = "\n\t\t\t<h3>Process Employee Salary</h3>\n\t\t\t<li class='err'>\n\t\t\t\tDue to the changes from Cubit 2.5 to Cubit 2.6.1 you should first update your employee's\n\t\t\t\tsalary/deduction/allowance information in the employee edit form.\n\t\t\t\tClick <a href='../admin-employee-edit.php?empnum={$empnum}'>here</a> to do so.\n\t\t\t</li>";
        return $OUTPUT;
    }
    if (!empty($idnum)) {
        $bd_year = substr($myEmp["idnum"], 0, 2);
        $bd_month = substr($myEmp["idnum"], 2, 2);
        $bd_day = substr($myEmp["idnum"], 4, 2);
        if (!checkdate($bd_month, $bd_day, $bd_year)) {
            $OUTPUT = "\n\t\t\t\t<h3>Process Employee Salary</h3>\n\t\t\t\t<li class='err'>\n\t\t\t\t\tSelected employee does not have a valid id number and therefore his age cannot be\n\t\t\t\t\tcalculated.<br>\n\t\t\t\t\tPlease update this information in the employee <a href='../admin-employee-edit.php?empnum={$empnum}'>edit</a> form.\n\t\t\t\t</li>";
            return $OUTPUT;
        }
    }
    if ($myEmp["paytype"] == "EFT" && (empty($myEmp["bankname"]) || empty($myEmp["bankaccno"]))) {
        return "Employee banking information not entered.<br>\n\t\t\tClick <a href='../admin-employee-edit.php?empnum={$empnum}'>here</a> employee banking information.";
    }
    $grossal = $myEmp["basic_sal"] + $myEmp["commission"] + $myEmp["bonus"];
    $yy = date("Y");
    $mm = $MON;
    $mm += 0;
    if ($myEmp['payprd'] == "m") {
        $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND month='{$mm}' AND cyear='" . EMP_YEAR . "'";
        $Ri = db_exec($Sl);
        $paid = pg_num_rows($Ri);
        $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND month='{$mm}' AND cyear='" . EMP_YEAR . "'";
        $Ri = db_exec($Sl);
        $upaid = pg_num_rows($Ri);
        $upaid += 0;
        $paid -= $upaid;
    } else {
        $yy = date("Y");
        $mm = $MON;
        $mm += 0;
        $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'";
        $Ri = db_exec($Sl);
        $paid = pg_num_rows($Ri);
        $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'";
        $Ri = db_exec($Sl);
        $upaid = pg_num_rows($Ri);
        $upaid += 0;
        $paid -= $upaid;
    }
    if (empty($paid)) {
        return slctPrd("<li class='err'>You have not processed a salary for that period.</li>");
    }
    /* calculate basic salary divisors and multipliers
     * used for calculating deductions/allowances/etc. when the
     * salary type and payment period differs in length
     */
    switch ($myEmp["saltyp"]) {
        case "h":
            $divisor = 1;
            switch ($myEmp["payprd"]) {
                case "d":
                    $multiplier = $myEmp["hpweek"] / 5;
                    break;
                case "w":
                    $multiplier = $myEmp["hpweek"];
                    break;
                case "f":
                    $multiplier = $myEmp["hpweek"] * 2;
                    break;
                case "m":
                    $multiplier = $myEmp["hpweek"] * 52 / 12;
                    break;
            }
            break;
        case "m":
            $divisor = 1;
            switch ($myEmp["payprd"]) {
                case "d":
                    $multiplier = 12 / (5 * 52);
                    break;
                case "w":
                    $multiplier = 12 / 52;
                    break;
                case "f":
                    $multiplier = 12 / 26;
                    break;
                case "m":
                    $multiplier = 1;
                    break;
            }
            break;
        case "w":
            $divisor = 52 / 12;
            switch ($myEmp["payprd"]) {
                case "d":
                    $multiplier = 1 / 5;
                    break;
                case "w":
                    $multiplier = 1;
                    break;
                case "f":
                    $multiplier = 2;
                    break;
                case "m":
                    $multiplier = 52 / 12;
                    break;
            }
            break;
        case "f":
            $divisor = 26 / 12;
            switch ($myEmp["payprd"]) {
                case "d":
                    $multiplier = 1 / 10;
                    break;
                case "w":
                    $multiplier = 1 / 2;
                    break;
                case "f":
                    $multiplier = 1;
                    break;
                case "m":
                    $multiplier = 26 / 12;
                    break;
            }
            break;
    }
    /* BEGIN: retrieve/populate amounts to reverse */
    switch ($myEmp["payprd"]) {
        case "m":
            $spw = "true";
            break;
        case "d":
            $spw = "week='{$pday}'";
            break;
        case "f":
        case "w":
            $spw = "week='{$week}'";
            break;
    }
    /* previous salary entries in salpaid/salr */
    $vals = array("paye", "hours", "salrate", "comm", "bonus", "novert", "hovert");
    $prevsal = array();
    /* FP: CALCULATE PREVIOUS */
    /* previous salary entries in emp_(inc|com|ded|frin) */
    foreach ($vals as $vn) {
        /* process */
        $sql = "SELECT sum({$vn}) FROM salpaid WHERE empnum='{$empnum}' AND ({$spw}) AND month='{$MON}' and cyear='" . EMP_YEAR . "'";
        $rslt = db_exec($sql) or errDie("Unable to get paye");
        $prevsal[$vn] = pg_fetch_result($rslt, 0, 0);
        /* reverse */
        $sql = "SELECT sum({$vn}) FROM salr WHERE empnum='{$empnum}' AND ({$spw}) AND month='{$MON}' and cyear='" . EMP_YEAR . "'";
        $rslt = db_exec($sql) or errDie("Unable to get paye");
        $prevsal[$vn] -= pg_fetch_result($rslt, 0, 0);
        vsprint($prevsal[$vn]);
    }
    //do we want to include overtime in the reversal? ... yes plz ...
    $h1 = $prevsal['novert'];
    $h2 = $prevsal['hovert'];
    //FP use this to go though tables and get info to reverse (bonus etc)
    $vals = array("emp_ded" => array("DEDP" => "emp_pension", "DEDV" => "emp_provident", "UIFE" => "emp_uif", "DEDR" => "emp_ret", "DEDA" => "myEmp[fringe_car1_contrib]", "DEDB" => "myEmp[fringe_car2_contrib]", "DEDM" => "emp_medical", "DEDO" => "emp_other"), "emp_com" => array("COMP" => "comp_pension", "COMV" => "comp_provident", "UIFC" => "comp_uif", "COMR" => "comp_ret", "COMM" => "comp_medical", "COMO" => "comp_other", "SDL" => "sdl"), "emp_frin" => array());
    foreach ($vals as $table => $pd) {
        foreach ($pd as $code => $vn) {
            /* process */
            $sql = "\n\t\t\t\tSELECT sum(amount) \n\t\t\t\tFROM {$table} \n\t\t\t\tWHERE emp='{$empnum}' AND type='{$code}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "' LIMIT 1";
            $rslt = db_exec($sql) or errDie("Unable to get paye");
            if (strlen(pg_fetch_result($rslt, 0, 0)) > 0) {
                $prevsal[$vn] = pg_fetch_result($rslt, 0, 0);
            } else {
                $prevsal[$vn] = "0.00";
            }
        }
    }
    /* END: retrieve/populate amounts to reverse */
    # fringe benefits
    $fringes = "";
    $i = 0;
    $sql = "SELECT * FROM fringebens WHERE div = '" . USER_DIV . "' ORDER BY fringeben";
    $rslt = db_exec($sql) or errDie("Unable to select allowances from database.");
    if (pg_num_rows($rslt) < 1) {
        $fringes = "\n\t\t\t<tr>\n\t\t\t\t<td class='" . bg_class() . "' colspan='2' align='center'>None found in database.</td>\n\t\t\t</tr>\n";
    } else {
        while ($myFringe = pg_fetch_array($rslt)) {
            # check if employee has allowance
            $sql = "SELECT * FROM empfringe WHERE fringeid='{$myFringe['id']}' AND empnum='{$myEmp['empnum']}' AND div = '" . USER_DIV . "'";
            $empRslt = db_exec($sql) or errDie("Unable to retrieve fringe benefit info from database.");
            if (pg_numrows($empRslt) > 0) {
                $empFringe = pg_fetch_array($empRslt);
                $sql = "SELECT sum(amount) FROM cubit.emp_frin WHERE emp='{$empnum}' AND type='{$myFringe['id']}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'";
                $amtRslt = db_exec($sql);
                $empFringe["amount"] = pg_fetch_result($amtRslt, 0, 0);
                //				if ( substr($empFringe["type"], 0, 4) == "Perc" ) {
                //					$empFringe["amount"] = sprint($myEmp["basic_sal"] * ($empFringe["amount"]/100) / $divisor);
                //				} else {
                //					$empFringe['amount'] = sprint($empFringe['amount'] / $divisor);
                //				}
                $grossal += $empFringe["amount"];
                $tmp_fringeaccs = $empFringe["accid"];
                $tmp_fringebens = $empFringe["amount"];
            } else {
                $tmp_fringeaccs = "0";
                $tmp_fringebens = "0.00";
            }
            $fringes .= "\n\t\t\t\t<input type='hidden' name='fringeid[]' value='{$myFringe['id']}'>\n\t\t\t\t<input type='hidden' name='fringename[]' value='{$myFringe['fringeben']}'>\n\t\t\t\t<input type='hidden' name='fringeaccs[]' value='{$tmp_fringeaccs}'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$myFringe['fringeben']}</td>\n\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t" . CUR . " {$tmp_fringebens}\n\t\t\t\t\t\t<input type='hidden' size=10 name='fringebens[]' value='{$tmp_fringebens}'>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>";
            $i++;
        }
    }
    # get allowances
    $allowances = "";
    $i = 0;
    $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) < 1) {
        $allowances = "<tr><td class='" . bg_class() . "' colspan='2' align='center'>None found in database.</td></tr>\n";
    } else {
        while ($myAllow = pg_fetch_array($allowRslt)) {
            # check if employee has allowance
            $sql = "SELECT * FROM empallow WHERE allowid='{$myAllow['id']}' AND empnum='{$myEmp['empnum']}' AND div = '" . USER_DIV . "'";
            $empAllowRslt = db_exec($sql) or errDie("Unable to select allowance info from database.");
            if (pg_numrows($empAllowRslt) > 0) {
                $myEmpAllow = pg_fetch_array($empAllowRslt);
                $sql = "SELECT sum(amount) FROM cubit.emp_inc WHERE emp='{$empnum}' AND type='{$myAllow['id']}' AND ex != 'SUBS' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'";
                $amtRslt = db_exec($sql);
                $myEmpAllow["amount"] = pg_fetch_result($amtRslt, 0, 0);
                //				if ( substr($myEmpAllow["type"], 0, 4) == "Perc" ) {
                //					$myEmpAllow["amount"] = sprint($myEmp["basic_sal"] * ($myEmpAllow["amount"]/100) / $divisor);
                //				} else {
                //					$myEmpAllow['amount'] = sprint($myEmpAllow['amount'] / $divisor);
                //				}
                $grossal += $myEmpAllow["amount"];
                $tmp_allowaccs = $myEmpAllow["accid"];
                $tmp_allowances = $myEmpAllow["amount"];
            } else {
                $tmp_allowaccs = $myAllow["accid"];
                $tmp_allowances = "0.00";
            }
            $allowances .= "\n\t\t\t\t<input type='hidden' size='10' name='allowid[]' value='{$myAllow['id']}'>\n\t\t\t\t<input type='hidden' size='30' name='allowname[]' value='{$myAllow['allowance']}'>\n\t\t\t\t<input type='hidden' size='10' name='allowtax[]' value='{$myAllow['add']}'>\n\t\t\t\t<input type='hidden' name='allowaccs[]' value='{$tmp_allowaccs}'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$myAllow['allowance']}</td>\n\t\t\t\t\t<td align='center'>" . CUR . " {$tmp_allowances}<input type='hidden' size='10' name='allowances[]' value='{$tmp_allowances}'></td>\n\t\t\t\t</tr>";
            $i++;
        }
    }
    $subsistence = "";
    $subslst = new dbSelect("subsistence", "cubit", array("where" => "div='" . USER_DIV . "'", "order" => "name"));
    $subslst->run();
    $subs_int = false;
    if ($subslst->num_rows() > 0) {
        $i = 0;
        $subsistence .= "\n\t\t\t<tr>\n\t\t\t\t<td colspan='10'>\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>Name</th>\n\t\t\t\t\t\t\t<th>Amount</th>\n\t\t\t\t\t\t\t<th>Days</th>\n\t\t\t\t\t\t</tr>";
        $empsubs = new dbSelect("emp_subsistence", "cubit");
        while ($subs = $subslst->fetch_array()) {
            $sid = $subs["id"];
            $empsubs->setOpt(array("where" => "empnum='{$empnum}' AND subid='{$sid}'"));
            $empsubs->run();
            if ($empsubs->num_rows() <= 0) {
                $si["amount"] = "0.00";
                $si["days"] = "0";
                $si["accid"] = $subs["accid"];
            } else {
                $si = $empsubs->fetch_array();
            }
            if ($subs["in_republic"] != "yes") {
                $subs_int = true;
            }
            $subsistence .= "\n\t\t\t\t<input type='hidden' name='subsname[{$sid}]' value='{$subs['name']}'>\n\t\t\t\t<input type='hidden' name='subsacc[{$sid}]' value='{$si['accid']}'>\n\t\t\t\t<input type='hidden' name='subsrep[{$sid}]' value='{$subs['in_republic']}'>\n\t\t\t\t<input type='hidden' name='subsmeal[{$sid}]' value='{$subs['meals']}'>\n\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t<td>{$subs['name']}</td>\n\t\t\t\t\t<td>" . CUR . " {$si['amount']}<input type='hidden' name='subsamt[{$sid}]' value='{$si['amount']}'></td>\n\t\t\t\t\t<td>{$si['days']}<input type='hidden' name='subsdays[{$sid}]' value='{$si['days']}'></td>\n\t\t\t\t</tr>";
        }
        if ($subs_int) {
            $subsistence .= "\n\t\t\t\t<input type='hidden' name='subs_exch' value='1'>\n\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t<td colspan='3'><li class='err'>Please calculate the rand amount prior to completing the amount above.</li></td\n\t\t\t\t</tr>";
            // 				<tr bgcolor='".bgcolor($i)."'>
            // 					<td colspan='2'>Exchange (ZAR-USD):</td>
            // 					<td>".xrate_get("USD")."<input type='hidden' name='subs_exch' value='".xrate_get("USD")."'></td>
            // 				</tr>";
        }
        $subsistence .= "\n\t\t\t</table>\n\t\t\t</td></tr>";
    }
    # Deductions
    $deductions = "";
    $i = 0;
    $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) < 1) {
        $deductions = "\n\t\t\t<tr>\n\t\t\t\t<td class='" . bg_class() . "' colspan='2' align='center'>None found in database.</td>\n\t\t\t</tr>\n";
    } else {
        while ($myDeduct = pg_fetch_array($deductRslt)) {
            # check if employee has deduction
            $sql = "SELECT * FROM empdeduct WHERE dedid='{$myDeduct['id']}' AND empnum='{$myEmp['empnum']}' AND div = '" . USER_DIV . "'";
            $empDeductRslt = db_exec($sql) or errDie("Unable to select Deduction info from database.");
            if (pg_numrows($empDeductRslt) > 0) {
                $myEmpDeduct = pg_fetch_array($empDeductRslt);
                if ($myEmpDeduct["grosdeduct"] == "y") {
                    $deductions_msg = "(Deducted from Gross Salary)";
                    $sal_calcfrom = $grossal;
                } else {
                    $deductions_msg = "";
                    $sal_calcfrom = $myEmp['basic_sal'];
                }
                $sql = "SELECT sum(amount) FROM cubit.emp_ded WHERE emp='{$empnum}' AND type='{$myDeduct['id']}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'";
                $amtRslt = db_exec($sql);
                $myEmpDeduct['amount'] = pg_fetch_result($amtRslt, 0, 0);
                //if ($myEmpDeduct['type'] == "Amount") {
                //	$myEmpDeduct['amount'] = sprint($myEmpDeduct['amount'] / $divisor);
                //} else {
                //	$myEmpDeduct['amount'] = sprint($sal_calcfrom*$myEmpDeduct['amount']/100 / $divisor);
                //}
                // calculate employer contribution to deduction
                $sql = "SELECT sum(amount) FROM cubit.emp_com WHERE emp='{$empnum}' AND type='{$myDeduct['id']}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'";
                $amtRslt = db_exec($sql);
                $myEmpDeduct["employer_amount"] = pg_fetch_result($amtRslt, 0, 0);
                //if ( $myEmpDeduct["employer_type"] == "Amount" ) {
                //	$myEmpDeduct["employer_amount"] = sprint($myEmpDeduct["employer_amount"] / $divisor);
                //} else {
                //	$myEmpDeduct["employer_amount"] = sprint($myEmpDeduct["amount"] * $myEmpDeduct["employer_amount"] / 100 / $divisor);
                //}
                $tmp_deductions = $myEmpDeduct["amount"];
                $tmp_dedaccs = $myEmpDeduct["accid"];
                $tmp_emp_ded = $myEmpDeduct["employer_amount"];
                $tmp_grosdeduct = $myEmpDeduct["grosdeduct"];
            } else {
                #employee may have R0.00 entered into deduction fields ....
                #in which case no db entries will exist ... manually check these vars here ...
                $sql = "SELECT sum(amount) FROM cubit.emp_ded WHERE emp='{$empnum}' AND type='{$myDeduct['id']}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'";
                $runsql = db_exec($sql) or errDie("Unable to get employee deduction information.");
                if (pg_numrows($runsql) > 0) {
                    $myEmpDeduct['amount'] = pg_fetch_result($runsql, 0, 0);
                    $sql2 = "SELECT * FROM cubit.salded WHERE id = '{$myDeduct['id']}'";
                    $run_sql2 = db_exec($sql2) or errDie("Unable to get employee deductions information");
                    if (pg_numrows($run_sql2) > 0) {
                        $darr = pg_fetch_array($run_sql2);
                        $tmp_dedaccs = $darr["accid"];
                    } else {
                        $tmp_dedaccs = $myEmpDeduct["accid"];
                    }
                    $sql = "SELECT sum(amount) FROM cubit.emp_com WHERE emp='{$empnum}' AND type='{$myDeduct['id']}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'";
                    $amtRslt = db_exec($sql);
                    $myEmpDeduct["employer_amount"] = pg_fetch_result($amtRslt, 0, 0);
                    $tmp_deductions = $myEmpDeduct["amount"];
                    $tmp_emp_ded = $myEmpDeduct["employer_amount"];
                    $tmp_grosdeduct = $myEmpDeduct["grosdeduct"];
                } else {
                    $tmp_deductions = "0.00";
                    $tmp_emp_ded = "0.00";
                    $tmp_dedaccs = $myDeduct["accid"] != 0 ? $myDeduct["accid"] : $myDeduct["expaccid"];
                    $tmp_grosdeduct = "n";
                    $deductions_msg = "";
                }
            }
            $deductions .= "\n\t\t\t\t<input type='hidden' size='10' name='employer_deductions[]' value='{$tmp_emp_ded}'>\n\t\t\t\t<input type='hidden' size='10' name='deducttax[]' value='{$myDeduct['add']}'>\n\t\t\t\t<input type='hidden' name='grosdeduct[]' value='{$tmp_grosdeduct}'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$myDeduct['deduction']} {$deductions_msg}</td>\n\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t" . CUR . " {$tmp_deductions}\n\t\t\t\t\t\t<input type='hidden' size='10' name='deductid[]' value='{$myDeduct['id']}'>\n\t\t\t\t\t\t<input type='hidden' size='30' name='deductname[]' value='{$myDeduct['deduction']}'>\n\t\t\t\t\t\t<input type='hidden' size='10' name='deductions[]' value='{$tmp_deductions}'>\n\t\t\t\t\t\t<input type='hidden' name='dedaccs[]' value='{$tmp_dedaccs}'>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>";
            $i++;
        }
    }
    $deductions .= "";
    /* get loan installment for applicable month */
    db_conn("cubit");
    $sql = "SELECT * FROM emp_loaninstallments WHERE empnum='{$empnum}' AND fmonth='{$mm}' AND fyear='" . EMP_YEAR . "' LIMIT 1";
    $rslt = db_exec($sql) or errDie("Error reading possible loan installment information.");
    if (pg_num_rows($rslt) > 0) {
        $loandata = pg_fetch_array($rslt);
        $myEmp["loaninstall"] = $loandata["installment"];
        $tm_loaninstall = $loandata["installment"];
        $fringe_loan = $loandata["fringe"];
        $loanint = $loandata["interest"];
        $loaninstall_date = $loandata["fdate"];
        $loaninstall_prd = $loandata["fperiod"];
    } else {
        $myEmp['loaninstall'] = "0.00";
        $tm_loaninstall = "0.00";
        $fringe_loan = "0.00";
        $loanint = "0.00";
        $loaninstall_date = "0000-00-00";
        $loaninstall_prd = "0";
    }
    $salarr = array("m" => "Per Month", "w" => "Per Week", "f" => "Fortnightly", "h" => "Per Hour");
    $salnarr = array("d" => "Day(s)", "h" => "Hour(s)");
    $saltype = $salarr[$myEmp['saltyp']];
    $multi = round($prevsal["hours"]);
    if ($myEmp['saltyp'] == 'd' || $myEmp['saltyp'] == 'h') {
        $salntype = $salnarr[$myEmp['saltyp']];
        $multi_show = "x <input type='hidden' size='3' name='multi' value='{$multi}'>{$multi} {$salntype}";
    } else {
        $multi_show = "<input type='hidden' name='multi' value='{$multi}'>";
        $saltype = "";
    }
    db_conn('cubit');
    $Sl = "SELECT * FROM bankacct WHERE btype != 'int' AND div = '" . USER_DIV . "' ORDER BY accname ASC";
    $Ry = db_exec($Sl) or errDie("Unable to get bank account.");
    if (pg_numrows($Ry) < 1) {
        return "<li class='err'> There are no bank accounts found in Cubit.</li>\n\t\t<p><input type='button' onClick='JavaScript:history.back();' value='&laquo; Correct Selection'>";
    }
    $banks = "<select name='accid'>";
    while ($acc = pg_fetch_array($Ry)) {
        $banks .= "<option value='{$acc['bankid']}'>{$acc['accname']} ({$acc['acctype']})</option>";
    }
    $banks .= "</select>";
    $myEmp['loaninstall'] += 0;
    if ($myEmp['paytype'] == "Cash") {
        $paydetails = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan='2'>Employee paid cash</td>\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='accid' value='0'>";
    } else {
        if ($myEmp['paytype'] == "Ledger Account") {
            db_conn('core');
            $Sl = "SELECT accid,accname FROM accounts ORDER BY accname";
            $Ri = db_exec($Sl);
            $accounts = "\n\t\t\t<select name='account'>\n\t\t\t\t<option value='#'>Select Account</option>";
            while ($ad = pg_fetch_array($Ri)) {
                if (isset($account) && $account == $ad['accid']) {
                    $sel = "selected";
                } else {
                    $sel = "";
                }
                $accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>";
            }
            $accounts .= "</select>";
            $paydetails = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Ledger Account for payment</td>\n\t\t\t\t<td>{$accounts}</td>\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='accid' value='0'>";
        } else {
            $paydetails = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Bank Account</td>\n\t\t\t\t<td valign='center'>{$banks}</td>\n\t\t\t</tr>";
        }
    }
    //	$h1 = "";
    //	$h2 = "";
    $db = array("comp_pension" => $myEmp["comp_pension"], "emp_pension" => $myEmp["emp_pension"], "comp_provident" => $myEmp["comp_provident"], "emp_provident" => $myEmp["emp_provident"], "comp_uif" => $myEmp["comp_uif"], "emp_uif" => $myEmp["emp_uif"], "comp_other" => $myEmp["comp_other"], "emp_other" => $myEmp["emp_other"]);
    if (isset($basic_sal)) {
        $myEmp['basic_sal'] = $basic_sal;
        $myEmp['all_travel'] = $all_travel;
        $myEmp['bonus'] = $bonus;
        $myEmp['commission'] = $commission;
        $myEmp['abonus'] = $abonus;
        $myEmp['loaninstall'] = $loaninstall;
        $myEmp['comp_pension'] = $comp_pension;
        $myEmp['emp_pension'] = $emp_pension;
        $myEmp["comp_provident"] = $comp_provident;
        $myEmp["emp_provident"] = $emp_provident;
        //$myEmp["comp_uif"] = $comp_uif;
        //$myEmp["emp_uif"] = $emp_uif;
        $myEmp["comp_other"] = $comp_other;
        $myEmp["emp_other"] = $emp_other;
        $myEmp['comp_medical'] = $comp_medical;
        $myEmp['emp_medical'] = $emp_medical;
        $myEmp['comp_ret'] = $comp_ret;
        $myEmp['emp_ret'] = $emp_ret;
        //		$h1 = $novert;
        //		$h2 = $hovert;
    } else {
        //$day = date("d");
        //$mon = date("m");
        //$year = date("Y");
        if ($myEmp["payprd"] == "w" || $myEmp["payprd"] == "f") {
            $tmpmon = date("j");
            $daycount = date("t");
            $dayweek = date("D");
            if (strtolower($dayweek) == $myEmp["payprd_day"] && $date_day + 7 > $daycount) {
                $process_comp_deductions = true;
            } else {
                $process_comp_deductions = false;
            }
        } else {
            $process_comp_deductions = true;
        }
        $effective_basicsal = $myEmp["basic_sal"] * $multiplier;
        /* we only changing basic sal for non hourly employees,
        			because for hourly employees we change the hours ($mutli)  */
        if ($myEmp["saltyp"] != "h") {
            $myEmp["basic_sal"] *= $multiplier;
        }
        $myEmp["emp_pension"] = sprint($effective_basicsal * ($myEmp["emp_pension"] / 100));
        $myEmp["comp_pension"] = sprint($effective_basicsal * ($myEmp["comp_pension"] / 100));
        $myEmp["emp_provident"] = sprint($effective_basicsal * ($myEmp["emp_provident"] / 100));
        $myEmp["comp_provident"] = sprint($effective_basicsal * ($myEmp["comp_provident"] / 100));
        $myEmp["emp_medical"] = sprint($myEmp["emp_medical"] / $divisor);
        $myEmp["comp_medical"] = sprint($myEmp["comp_medical"] / $divisor);
        $myEmp["emp_ret"] = sprint($myEmp["emp_ret"] / $divisor);
        $myEmp["comp_ret"] = sprint($myEmp["comp_ret"] / $divisor);
        $myEmp["loaninstall"] = sprint($myEmp["loaninstall"] / $divisor);
        $myEmp["all_travel"] = sprint($myEmp["all_travel"] / $divisor);
        if (!isset($salyr)) {
            $salyr = "";
        }
        explodeDate($myEmp["loandate"], $loana_year, $loana_month, $loana_day);
        if ($loana_year > $salyr || $loana_year == $salyr && $loana_month > $MON) {
            $myEmp["loanint"] = 0;
            $myEmp["loaninstall"] = 0;
        }
    }
    /*	db_conn('cubit');
    	$sql = "SELECT value FROM settings WHERE constant='UIF_MAX'";
    	$percrslt = db_exec($sql);
    	$perc = pg_fetch_array($percrslt);
    	$uifmax = $perc['value'];
    
    	if ( $myEmp["emp_uif"] > $uifmax ) {
    	$myEmp["emp_uif"] = $uifmax;
    	}
    	if ( $myEmp["comp_uif"] > $uifmax ) {
    	$myEmp["comp_uif"] = $uifmax;
    	}
    	*/
    $rt = "<tr><th colspan='2'>Reimbursements</th></tr>";
    $Sl = "SELECT * FROM cubit.rbs ORDER BY name";
    $Ri = db_exec($Sl) or errDie("Unable to get data.");
    $i = 0;
    if (pg_num_rows($Ri) > 0) {
        while ($td = pg_fetch_array($Ri)) {
            if (!isset($rbsa[$td['id']])) {
                $rbsa[$td['id']] = "";
            }
            $rt .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><input type='hidden' name='rbs[{$td['id']}]' value='{$td['id']}'>{$td['name']}</td>\n\t\t\t\t\t<td>" . CUR . " " . $rbsa[$td['id']] . "<input type='hidden' size='10' name='rbsa[{$td['id']}]' value='" . $rbsa[$td['id']] . "' class=right></td>\n\t\t\t\t</tr>";
            $i++;
        }
    } else {
        $rt .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan='2' align='center'>There are no reimbursements</td>\n\t\t\t</tr>";
    }
    if (!isset($annual) && $myEmp["sal_bonus_month"] == $MON) {
        $annual = $myEmp["sal_bonus"];
    } else {
        if (!isset($annual)) {
            $annual = 0;
        }
    }
    if ($myEmp["payprd"] == "m" || $myEmp["payprd"] == "d") {
        // count the amount of weekdays in this month
        $workdays = 0;
        for ($i = 1; $i <= date("t", mktime(0, 0, 0, $MON, 1, date("Y"))); ++$i) {
            $wd = date("w", mktime(0, 0, 0, $MON, $i, date("Y")));
            if ($wd != 0 && $wd != 6) {
                ++$workdays;
            }
        }
        // hours per day calculation
        $hpd = $myEmp["hpweek"] / 5;
        if (!isset($wh_total)) {
            $wh_total = $workdays * $hpd;
        }
        if (!isset($wh_actual)) {
            $wh_actual = $wh_total;
        }
    }
    if ($myEmp["payprd"] == "w") {
        if (!isset($wh_total)) {
            $wh_total = $myEmp["hpweek"];
        }
        if (!isset($wh_actual)) {
            $wh_actual = $wh_total;
        }
    }
    if ($myEmp["payprd"] == "f") {
        if (!isset($wh_total)) {
            $wh_total = $myEmp["hpweek"] * 2;
        }
        if (!isset($wh_actual)) {
            $wh_actual = $wh_total;
        }
    }
    $js_workhours = "\n\t\t<script>\n\t\t\tsf = document.getElementById('salfrm');\n\n\t\t\tf_sal\t\t= sf.elements['basic_sal'];\n\t\t\tf_whtot\t\t= sf.elements['wh_total'];\n\t\t\tf_whact\t\t= sf.elements['wh_actual'];\n\t\t\tf_cpension\t= sf.elements['comp_pension'];\n\t\t\tf_epension \t= sf.elements['emp_pension'];\n\t\t\tf_cprov\t\t= sf.elements['comp_provident'];\n\t\t\tf_eprov\t\t= sf.elements['emp_provident'];\n\t\t\t//f_cuif\t= sf.elements['comp_uif'];\n\t\t\t//f_euif\t= sf.elements['emp_uif'];\n\t\t\tf_cother\t= sf.elements['comp_other'];\n\t\t\tf_eother\t= sf.elements['emp_other'];\n\n\t\t\tdb_cpension\t= " . $db["comp_pension"] . ";\n\t\t\tdb_epension\t= " . $db["emp_pension"] . ";\n\t\t\tdb_cprov\t= " . $db["comp_provident"] . ";\n\t\t\tdb_eprov\t= " . $db["emp_provident"] . ";\n\t\t\t//db_cuif\t= " . $db["comp_uif"] . ";\n\t\t\t//db_euif\t= " . $db["emp_uif"] . ";\n\t\t\tdb_cother\t= " . $db["comp_other"] . ";\n\t\t\tdb_eother\t= " . $db["emp_other"] . ";\n\n\t\t\tval_sal \t\t= -1;\n\n\t\t\t// changing the workhours\n\t\t\tfunction workhours() {\n\t\t\t\tif ( val_sal < 0 ) val_sal = parseFloat(f_sal.value);\n\n\t\t\t\tval_whtot\t= parseFloat(f_whtot.value);\n\t\t\t\tval_whact\t= parseFloat(f_whact.value);\n\n\t\t\t\tif ( val_whtot >= val_whact ) {\n\t\t\t\t\tp = val_whact / val_whtot;\n\n\t\t\t\t\t// calculate the new basic salary\n\t\t\t\t\tx = val_sal * p;\n\t\t\t\t\tx = x.toFixed(2);\n\t\t\t\t\tf_sal.value = x;\n\n\t\t\t\t\t// calculate the new values\n\t\t\t\t\tval_cpension \t\t= x * db_cpension / 100;\n\t\t\t\t\tval_epension \t\t= x * db_epension / 100;\n\t\t\t\t\tval_cprov\t\t= x * db_cprov / 100;\n\t\t\t\t\tval_eprov\t\t= x * db_eprov / 100;\n\t\t\t\t\t//val_cuif\t\t= x * db_cuif / 100;\n\t\t\t\t\t//val_euif\t\t= x * db_euif / 100;\n\t\t\t\t\tval_cother\t\t= x * db_cother / 100;\n\t\t\t\t\tval_eother\t\t= x * db_eother / 100;\n\n\t\t\t\t\tval_cpension \t\t= val_cpension.toFixed(2);\n\t\t\t\t\tval_epension \t\t= val_epension.toFixed(2);\n\t\t\t\t\tval_cprov \t\t= val_cprov.toFixed(2);\n\t\t\t\t\tval_eprov\t\t= val_eprov.toFixed(2);\n\t\t\t\t\t//val_cuif\t\t= val_cuif.toFixed(2);\n\t\t\t\t\t//val_euif\t\t= val_euif.toFixed(2);\n\t\t\t\t\tval_cother\t\t= val_cother.toFixed(2);\n\t\t\t\t\tval_eother\t\t= val_eother.toFixed(2);\n\n\t\t\t\t\tf_cpension.value\t= val_cpension;\n\t\t\t\t\tf_epension.value \t= val_epension;\n\t\t\t\t\tf_cprov.value \t\t= val_cprov;\n\t\t\t\t\tf_eprov.value\t\t= val_eprov;\n\t\t\t\t\t//f_cuif.value\t\t= val_cuif;\n\t\t\t\t\t//f_euif.value\t\t= val_euif;\n\t\t\t\t\tf_cother.value\t\t= val_cother;\n\t\t\t\t\tf_eother.value\t\t= val_eother;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction changedfield() {\n\t\t\t\tval_whtot\t= parseFloat(f_whtot.value);\n\t\t\t\tval_whact\t= parseFloat(f_whact.value);\n\n\t\t\t\tp = val_whtot / val_whact;\n\n\t\t\t\tval_sal = parseFloat(f_sal.value) * p;\n\t\t\t\tval_sal = val_sal.toFixed(2);\n\t\t\t}\n\t\t</script>";
    $process = "\n\t\t<h3>Reverse Salary for {$myEmp['sname']}, {$myEmp['fnames']}</h3>\n\t\t<form action='" . SELF . "' method='POST' id='salfrm'>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<td><input type='submit' name='back' value='&laquo; Correction'></td>\n\t\t\t\t<td align='right'><input type='submit' value='Confirm &raquo;'></td>\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='key' value='confirm'>\n\t\t\t<input type='hidden' name='empnum' value='{$empnum}'>\n\t\t\t<input type='hidden' name='MON' value='{$MON}'>\n\t\t\t<input type='hidden' name='date_day' value='{$date_day}' />\n\t\t\t<input type='hidden' name='date_month' value='{$date_month}' />\n\t\t\t<input type='hidden' name='date_year' value='{$date_year}' />\n\t\t\t<input type='hidden' name='day' value='{$date_day}' />\n\t\t\t<input type='hidden' name='mon' value='{$date_month}' />\n\t\t\t<input type='hidden' name='year' value='{$date_year}' />\n\t\t\t<input type='hidden' name='saltyp' value='{$myEmp['saltyp']}'>\n\t\t\t<input type='hidden' name='process_comp_deductions' value='{$process_comp_deductions}'>\n\t\t\t<input type='hidden' name='divisor' value='{$divisor}'>";
    if ($myEmp["saltyp"] == "h") {
        $process .= "<li class='err'>Please remember to enter the amount of hours you wish to reverse the salary for.</li>";
    }
    vsprint($myEmp["basic_sal"]);
    if (!isset($week)) {
        $week = "0";
    }
    if (!isset($pday)) {
        $pday = "0";
    }
    $weekpday = "\n\t\t<input type='hidden' name='week' value='{$week}'/>\n\t\t<input type='hidden' name='pday' value='{$pday}' />";
    $process .= "\n\t\t<tr>\n\t\t\t<th colspan='2'>Salary Details</th>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td nowrap>Basic salary</td>\n\t\t\t<td nowrap>" . CUR . " <input type='hidden' size='10' name='basic_sal' value='{$prevsal['salrate']}' class='right' onChange='changedfield();'> {$prevsal['salrate']} {$saltype} {$multi_show}</td>\n\t\t</tr>";
    if ($myEmp["payprd"] == "d") {
        $process .= "\n\t\t\t<input type='hidden' name='wh_total' value='1'>\n\t\t\t<input type='hidden' name='wh_actual' value='1'>";
    } else {
        $process .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Total Work Hours:</td>\n\t\t\t\t<td><input type='hidden' size='10' name='wh_total' value='{$wh_total}' class='right' onChange='workhours();'>{$wh_total}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Actual Hours Worked:</td>\n\t\t\t\t<td><input type='hidden' size='10' name='wh_actual' value='{$wh_actual}' class='right' onChange='workhours();'>{$wh_actual}</td>\n\t\t\t</tr>";
    }
    $process .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Normal Overtime</td>\n\t\t\t\t<td><input type='hidden' size='5' name='novert' value='{$h1}' class='right'>{$h1} Hrs</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Public Holiday Overtime</td>\n\t\t\t\t<td><input type='hidden' size='5' name='hovert' value='{$h2}' class='right'>{$h2} Hrs</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<!--<td>Special Bonus/Additional Salary</td>-->\n\t\t\t\t<td>Annual Bonus</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' name='bonus' value='0' class='right'><input type='hidden' name='abonus' value='{$prevsal['bonus']}' class='right'>{$prevsal['bonus']}</td>\n\t\t\t\t<!--<td rowspan='2' class='err'>An amount entered here (Special Bonus/Additional\n\t\t\t\t\tSalary) will be treated as a recurring bonus/payment per pay period for PAYE\n\t\t\t\t\tpurposes, the amount will not be treated as an annual payment. If the\n\t\t\t\t\tamount paid as a bonus is a once off/annual payment please use the\n\t\t\t\t\tBonus(Annual Payments) option. In other cases PAYE has to be manually\n\t\t\t\t\tadjusted <u>per directive</u> from SARS when processing salary.\n\t\t\t\t</td>-->\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='annual' value='0' />\n\t\t\t<!--<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Bonus(Annual/Once Off Payments)</td>\n\t\t\t\t<td nowrap>" . CUR . " <input type='text' size='10' name='annual' value='{$annual}' class='right'></td>\n\t\t\t</tr>-->\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Commission</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='commission' value='{$prevsal['comm']}' class='right'>{$prevsal['comm']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Low or interest-free loan</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size=10 name=loaninstall value='{$tm_loaninstall}' class=right>{$tm_loaninstall}</td>\n\t\t\t\t<input type='hidden' name='fringe_loan' value='{$fringe_loan}'>\n\t\t\t\t<input type='hidden' name='loanint' value='{$loanint}'>\n\t\t\t\t<input type='hidden' name='loaninstall_date' value='{$loaninstall_date}'>\n\t\t\t\t<input type='hidden' name='loaninstall_prd' value='{$loaninstall_prd}'>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Travel Allowance</td>\n\t\t\t\t<td>R <input type='hidden' size='10' name='all_travel' value='{$myEmp['all_travel']}' class='right'>{$myEmp['all_travel']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Pension: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_pension' value='{$prevsal['comp_pension']}' class='right'>{$prevsal['comp_pension']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Pension: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_pension' value='{$prevsal['emp_pension']}' class='right'>{$prevsal['emp_pension']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Provident: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_provident' value='{$prevsal['comp_provident']}' class='right'>{$prevsal['comp_provident']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Provident: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_provident' value='{$prevsal['emp_provident']}' class='right'>{$prevsal['emp_provident']}</td>\n\t\t\t</tr>\n\t\t\t<!--\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>UIF: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_uif' value='{$prevsal['comp_uif']}' class='right'>{$prevsal['comp_uif']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>UIF: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_uif' value='{$prevsal['emp_uif']}' class='right'>{$prevsal['comp_uif']}</td>\n\t\t\t</tr>\n\t\t\t//-->\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Retirement Annuity: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_ret' value='{$prevsal['comp_ret']}' class='right'>{$prevsal['comp_ret']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Retirement Annuity: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_ret' value='{$prevsal['emp_ret']}' class='right'>{$prevsal['emp_ret']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Medical Contribution: Company</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_medical' value='{$prevsal['comp_medical']}' class='right'>{$prevsal['comp_medical']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Medical Contribution: Employee</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_medical' value='{$prevsal['emp_medical']}' class='right'>{$prevsal['emp_medical']}</td>\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='comp_other' value='0'>\n\t\t\t<input type='hidden' name='emp_other' value='0'>\n\t\t\t<!--\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Other: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_other' value='{$prevsal['comp_other']}' class='right'>{$prevsal['comp_other']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Other: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_other' value='{$prevsal['emp_other']}' class='right'>{$prevsal['emp_other']}</td>\n\t\t\t</tr>\n\t\t\t//-->\n\t\t\t{$paydetails}\n\t\t\t<input type='hidden' name='mpaye' value='1' />\n\t\t\t<input type='hidden' size=10 value='" . sprint($prevsal["paye"]) . "' name='mpaye_amount' />\n\t\t\t<tr><th colspan='2'>Fringe Benefits</th></tr>\n\t\t\t{$fringes}\n\t\t\t<tr><th colspan='2'>Allowances</th></tr>\n\t\t\t{$allowances}\n\t\t\t<tr><th colspan='2'>Subsistence Allowances</th></tr>\n\t\t\t{$subsistence}\n\t\t\t<tr><th colspan='2'>Deductions</th></tr>\n\t\t\t{$deductions}\n\t\t\t<tr><th colspan='2'>Reimbursements</th></tr>\n\t\t\t{$rt}\n\t\t\t{$weekpday}\n\t\t\t<tr>\n\t\t\t\t<td><input type='submit' name='back' value='&laquo; Correction'></td>\n\t\t\t\t<td align='right'><input type='submit' value='Confirm &raquo;'></td>\n\t\t\t</tr>\n\t\t\t{$js_workhours}\n\t\t</table>\n\t\t</form>";
    return $process;
}