function printyr()
{
    // Set up table to display in
    // Connect to database
    core_Connect();
    $sql = "SELECT * FROM year ORDER BY yrname";
    $Rslt = db_exec($sql) or errDie("ERROR: Unable to get Financial year details from database.", SELF);
    $numrows = pg_numrows($Rslt);
    if ($numrows < 1) {
        $OUTPUT = "There are no Financial years defined in Cubit.";
        require "template.php";
    }
    # display all Accounts
    $yrs = "";
    for ($i = 0; $i < $numrows; $i++) {
        $yr = pg_fetch_array($Rslt, $i);
        if (!isset($thisyear) && $yr["closed"] == "n") {
            $thisyear = $yr["yrname"];
        }
        # alternate bgcolor
        $bgColor = bgcolorc($i);
        if (PRD_STATE != "py" && $yr["closed"] == "y") {
            $status = "Closed";
        } else {
            if (PRD_STATE == "py" && $yr["yrname"] == YR_NAME) {
                $status = "Closed (In Use)";
            } else {
                if (PRD_STATE != "py" && $yr["yrname"] == YR_NAME || PRD_STATE == "py" && $yr["yrname"] == PYR_NAME) {
                    $status = "Current";
                } else {
                    $status = "";
                }
            }
        }
        $yrs .= "\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>{$yr['yrname']}</td>\n\t\t\t<td align='right'>{$yr['yrdb']}</td>\n\t\t\t<td align='center'>{$status}</td>\n\t\t</tr>\n";
    }
    if (!isset($thisyear)) {
        $thisyear = "All financial years have been closed.";
    } else {
        $thisyear = substr($thisyear, 1);
    }
    global $PRDMON, $MONPRD;
    $pmon = 0;
    $fyear = getFinYear() - (int) ($PRDMON[1] > 1);
    $prddesc = array();
    for ($i = 1; $i <= 12; $i++) {
        $mon = $PRDMON[$i];
        if ($mon < $pmon) {
            ++$fyear;
        }
        $pmon = $mon;
        if ($i == 1 || $i == 12) {
            $prddesc[] = getMonthName($mon) . " {$fyear}";
        }
    }
    $prddesc = implode(" to ", $prddesc);
    $OUTPUT = "\n\t<h3>Financial Years</h3>\n\t<table " . TMPL_tblDflts . ">\n\t<tr>\n\t\t<th colspan='3'>Current Financial Year: {$thisyear}</th>\n\t</tr>\n\t<tr class='" . bg_class() . "'>\n\t\t<th colspan='3'>Period Range: {$prddesc}</td>\n\t</tr>\n\t<tr>\n\t\t<th>Year Name</th>\n\t\t<th>Year Database</th>\n\t\t<th>Status</th>\n\t</tr>\n\t{$yrs}\n\t</table>\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width=15%>\n\t\t<tr><td><br></td></tr>\n\t\t<tr><th>Quick Links</th></tr>\n\t\t<tr class=datacell><td align=center><a href='finyearnames-new.php'>Set Financial Year</td></tr>\n\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t</table>";
    // all template to display the info and die
    require "template.php";
}
Exemplo n.º 2
0
function slctacc($err = "")
{
    extract($_POST);
    db_conn(PRD_DB);
    if (!isset($refnum)) {
        $refnum = getrefnum();
    }
    // 	if (empty($jr_year)) {
    // 		explodeDate(false, $jr_year, $jr_month, $jr_day);
    // 	}
    if (empty($dtaccid)) {
        $dtaccid = false;
    }
    if (empty($ctaccid)) {
        $ctaccid = false;
    }
    /** REFNUM **/
    //Select Account <input align='right' type='button' onClick=\"popupSized('acc-new2.php?update_parent=yes','accounts','700','400');\" value='Add Account'>
    if (!isset($yr_day)) {
        $trans_date_setting = getCSetting("USE_TRANSACTION_DATE");
        if (isset($trans_date_setting) and $trans_date_setting == "yes") {
            $trans_date_value = getCSetting("TRANSACTION_DATE");
            $date_arr = explode("-", $trans_date_value);
            $jr_year = $date_arr[0];
            $jr_month = $date_arr[1];
            $jr_day = $date_arr[2];
        } else {
            $jr_year = date("Y");
            $jr_month = date("m");
            $jr_day = date("d");
        }
    }
    $view = "\n\t\t<center>\n\t\t<h3> Journal transaction </h3>\n\t\t{$err}\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='key' value='details' />\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Field</th>\n\t\t\t\t<th>Value</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Date</td>\n\t\t\t\t<td>" . mkDateSelect("jr", $jr_year, $jr_month, $jr_day) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Reference Number</td>\n\t\t\t\t<td><input type='text' size='10' name='refnum' value='" . $refnum++ . "'></td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr>\n\t\t\t\t<td align='center'>\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><h4>Debit</h4></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>Select Account <input align='right' type='button' onClick=\"window.open('acc-new2.php?update_parent=yes','accounts','width=700, height=400');\" value='New Account'></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 valign='center'>" . mkAccSelect("dtaccid", $dtaccid) . "</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 align='center'>\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><h4>Credit</h4></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>Select Account <input align='right' type='button' onClick=\"window.open('acc-new2.php?update_parent=yes','accounts','width=700, height=400');\" value='New Account'></th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t\t\t\t<td valign='center'>" . mkAccSelect("ctaccid", $ctaccid) . "</td>\n\t\t\t\t\t\t\t<td><input name='details' type='submit' value='Enter Details >'></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</table>\n\t\t<br />\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<td align='center'>\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><h4>Debit</h4></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>Account number</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='dtaccnum' size='20'></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 align='center'>\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><h4>Credit</h4></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>Account number</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='ctaccnum' size='20'></td>\n\t\t\t\t\t\t\t<td><input type='submit' value='Enter Details >'></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</table>\n\t\t<br />\n\t\t</form>" . mkQuickLinks(ql("../reporting/index-reports.php", "Financials"), ql("../core/acc-new2.php", "Add New Account"), ql("trans-new.php", "Journal Transactions"));
    return $view;
}
function view($frm)
{
    extract($_REQUEST);
    if ($msg = cForm::validateValue($supid, "num", 1, 10)) {
        return "<li class='err'>The supplier ID is invalid. {$msg}</li>\n\t\t\t<input type='button' onclick='window.history.back();' value='&laquo; Correction' />";
    }
    /* @var frm cForm */
    $frm->settitle("Supplier Pricelist");
    $frm->setkey("import");
    $frm->add_heading("Import New Pricelist");
    $frm->add_message("\n\t\t\t<li class='err'>Pricelists has to be in CSV format and to import them\n\t\t\t\tyou have to specify the order and format of the fields<br />\n\t\t\t\tby selecting what each of them are in the same order as they appear\n\t\t\t\tin the file. Only the stock code<br />\n\t\t\t\tand the price is needed, so for the other fields you simply\n\t\t\t\tselect the '-' options.\n\t\t\t</li>", "inst");
    $frm->add_message("\n\t\t\t<li class='err'>Note that the stock codes of the supplier should be added\n\t\t\t\tby editing the stock item and selecting the<br />\n\t\t\t\t'Add/Edit/Remove' button below the stock code input field.\n\t\t\t</li>", "suppstkcod");
    $frm->add_hidden("supid", $supid, "num");
    $frm->add_file("Pricelist", "supplist");
    $frm->add_checkbox("VAT Inclusive", "vatinc", true, true);
    $frm->add_heading("Comma Seperated Volume (CSV) Fields");
    $frm->add_layout("\n\t<tr %bgc>\n\t\t<td colspan='2' nowrap='t'>\n\t\t\t<strong>\n\t\t\t\t%fldonly ,\n\t\t\t\t%fldonly ,\n\t\t\t\t%fldonly ,\n\t\t\t\t%fldonly ,\n\t\t\t\t%fldonly ,\n\t\t\t\t%fldonly\n\t\t\t</strong>\n\t\t</td>\n\t</tr>");
    // field types
    $ft = array("ignore" => "-", "stkcod" => "Stock Code", "price" => "Price");
    $frm->add_select("", "fld[0]", "stkcod", $ft, "string", "5:6");
    $frm->add_select("", "fld[1]", "price", $ft, "string", "5:6");
    $frm->add_select("", "fld[2]", "ignore", $ft, "string", "5:6");
    $frm->add_select("", "fld[3]", "ignore", $ft, "string", "5:6");
    $frm->add_select("", "fld[4]", "ignore", $ft, "string", "5:6");
    $frm->add_select("", "fld[5]", "ignore", $ft, "string", "5:6");
    $frm->add_ctrlbtn("Import", "submit", "btn_import");
    $OUT = $frm->getfrm_input();
    /* supplier info */
    $suppinfo = qrySupplier($supid);
    $supcur = qryCurrency($suppinfo["fcid"]);
    $supcur = $supcur["symbol"];
    /* list current pricelist */
    $OUT .= "\n\t<table " . TMPL_tblDflts . ">\n\t<tr>\n\t\t<th>Stock Code</td>\n\t\t<th>Supplier Stock Code</th>\n\t\t<th>Current Supplier Price</th>\n\t\t<th>Current Selling Price</th>\n\t</tr>";
    $sql = "SELECT pli.*\n\t\t\tFROM exten.spricelist pl INNER JOIN exten.splist_prices pli\n\t\t\t\tON pl.listid=pli.listid\n\t\t\tWHERE pl.suppid='{$supid}'";
    $qry = new dbSql($sql);
    $qry->run();
    if ($qry->num_rows() <= 0) {
        $OUT .= "\n\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t<td colspan='4'>No pricelist.</td>\n\t\t</tr>";
    }
    $i = 0;
    while ($row = $qry->fetch_array()) {
        if (empty($row["supstkcod"])) {
            $our_stkcod = "No supplier stock code";
            $our_price = "";
        } else {
            if (($stkid = suppStkid($supid, $row["supstkcod"])) === false) {
                $our_stkcod = "<li class='err'>No such stock item.\n\t\t\t\t<a href='stock-add.php?stkcod={$row['supstkcod']}&supid={$supid}&supstkcod={$row['supstkcod']}'>Add Stock</a> /\n\t\t\t\t<a href='stock-view.php'>Edit Stock</li>";
                $our_price = "";
            } else {
                $stkrow = qryStock($stkid, "stkcod, selamt");
                $our_stkcod = "<strong>{$stkrow['stkcod']}</strong>";
                $our_price = CUR . " " . sprint($stkrow["selamt"]);
            }
        }
        $OUT .= "\n\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t<td>{$our_stkcod}</td>\n\t\t\t<td>{$row['supstkcod']}</td>\n\t\t\t<td align='right'>{$supcur} " . sprint($row["price"]) . "</td>\n\t\t\t<td align='right'>{$our_price}</td>\n\t\t</tr>";
    }
    $OUT .= "\n\t</table>";
    return $OUT;
}
function slctacc($err = "")
{
    extract($_POST);
    db_conn(PRD_DB);
    $refnum = getrefnum();
    if (empty($jr_year)) {
        explodeDate(false, $jr_year, $jr_month, $jr_day);
    }
    if (empty($dtaccid)) {
        $dtaccid = false;
    }
    if (empty($ctaccid)) {
        $ctaccid = false;
    }
    /** REFNUM **/
    $view = "\n\t\t\t\t<center>\n\t\t\t\t<h3> Journal transaction </h3>\n\t\t\t\t{$err}\n\t\t\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t\t\t<input type='hidden' name='key' value='details' />\n\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Field</th>\n\t\t\t\t\t\t<th>Value</th>\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>Date</td>\n\t\t\t\t\t\t<td>" . mkDateSelect("jr", $jr_year, $jr_month, $jr_day) . "</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>Reference Number</td>\n\t\t\t\t\t\t<td><input type='text' size='10' name='refnum' value='" . $refnum++ . "'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t" . TBL_BR . "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td><h4>Debit</h4></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>Select Account</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<td valign='center'>" . mkAccSelect("dtaccid", $dtaccid) . "</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td><h4>Credit</h4></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>Select Account</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t\t\t\t\t\t<td valign='center'>" . mkAccSelect("ctaccid", $ctaccid) . "</td>\n\t\t\t\t\t\t\t\t\t<td><input name='details' type='submit' value='Enter Details >'></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t\t<br />\n\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td><h4>Debit</h4></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>Account number</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t\t\t\t\t\t<td valign='center'><input type='text' name='dtaccnum' size='20'></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td><h4>Credit</h4></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>Account number</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t\t\t\t\t\t<td valign='center'><input type='text' name='ctaccnum' size='20'></td>\n\t\t\t\t\t\t\t\t\t<td><input type='submit' value='Enter Details >'></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t\t<br />\n\t\t\t\t</form>" . mkQuickLinks(ql("../reporting/index-reports.php", "Financials"), ql("../core/acc-new2.php", "Add New Account"), ql("../core/trans-new.php", "Journal Transactions"));
    return $view;
}
function printInv()
{
    extract($_REQUEST);
    if (isset($key)) {
        $key = strtolower($key);
        switch ($key) {
            case "export to spreadsheet":
            case "print":
            case "save":
                $pure = true;
                break;
            case "view":
            default:
                $pure = false;
        }
    } else {
        $pure = false;
    }
    if (!isset($from_year)) {
        explodeDate(false, $from_year, $from_month, $from_day);
        explodeDate(false, $to_year, $to_month, $to_day);
        explodeDate(date("Y-m-") . "01", $ncdate_from_year, $ncdate_from_month, $ncdate_from_day);
        explodeDate(false, $ncdate_to_year, $ncdate_to_month, $ncdate_to_day);
    }
    if (!isset($type)) {
        $type = "all";
    }
    if (!isset($cust)) {
        $cust = "";
    }
    if (!isset($ordnosearch)) {
        $ordnosearch = "";
    }
    $sel_accepted = $type == "accepted" ? "checked='t'" : "";
    $sel_notaccepted = $type == "notaccepted" ? "checked='t'" : "";
    $sel_all = $type != "accepted" && $type != "notaccepted" ? "checked='t'" : "";
    $printQuo = "";
    if (isset($check_followon) and strlen($check_followon) > 0) {
        $checkfollowonbox = "checked='yes'";
    }
    if (!$pure) {
        $printQuo .= "\n\t\t<form method='post' action='" . SELF . "'>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>View Options</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Begin Date:</td>\n\t\t\t\t<td>" . mkDateSelect("from", $from_year, $from_month, $from_day) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>End Date:</td>\n\t\t\t\t<td>" . mkDateSelect("to", $to_year, $to_month, $to_day) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Follow On Date From:</td>\n\t\t\t\t<td>" . mkDateSelect("ncdate_from", $ncdate_from_year, $ncdate_from_month, $ncdate_from_day) . "\n\t\t\t\tCheck Followon <input type='checkbox' name='check_followon' value='yes' {$checkfollowonbox}></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Follow On Date To:</td>\n\t\t\t\t<td>" . mkDateSelect("ncdate_to", $ncdate_to_year, $ncdate_to_month, $ncdate_to_day) . "</td>\n\t\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Type:</td>\n\t\t\t<td>\n\t\t\t\t<input type='radio' name='type' {$sel_accepted} value='accepted' /> Accepted\n\t\t\t\t<input type='radio' name='type' {$sel_notaccepted} value='notaccepted' /> Not Yet Accepted\n\t\t\t\t<input type='radio' name='type' {$sel_all} value='all' /> All\n\t\t\t</td>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Customer:</td>\n\t\t\t<td><input type='text' size='20' name='cust' value='{$cust}'></td>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Quote No:</td>\n\t\t\t<td><input type='text' size='6' name='ordnosearch' value='{$ordnosearch}'></td>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>View Other Quotes</td>\n\t\t\t<td>\n\t\t\t\t<input type='button' value='POS (Non Customers) Quotes' onClick=\"document.location='pos-quote-view.php'\">\n\t\t\t\t<input type='submit' name='button[nonsquote]' value='Non Stock Quotes'>\n\t\t\t</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td colspan='2' align='right'><input type='submit' name='key' value='Filter' /></td>\n\t\t</tr>\n\t\t</table>";
    }
    if (!isset($key)) {
        $printQuo .= "</form>";
        return $printQuo;
    }
    $filt = "odate >= '{$from_year}-{$from_month}-{$from_day}' AND odate <= '{$to_year}-{$to_month}-{$to_day}'";
    if (isset($check_followon) and strlen($check_followon) > 0) {
        $filt .= " AND (ncdate >= '{$ncdate_from_year}-{$ncdate_from_month}-{$ncdate_from_day}' AND ncdate <= '{$ncdate_to_year}-{$ncdate_to_month}-{$ncdate_to_day}')";
    }
    switch ($type) {
        case "accepted":
            $filt .= " AND accepted='y'";
            break;
        case "notaccepted":
            $filt .= " AND accepted='n'";
            break;
        case "all":
        default:
    }
    $filt .= " AND lower(surname) LIKE lower('%{$cust}%')";
    $filt .= " AND ordno LIKE '%{$ordnosearch}%'";
    db_conn("cubit");
    $sql = "SELECT filename FROM template_settings WHERE template='invoices'";
    $tsRslt = db_exec($sql) or errDie("Unable to retrieve template settings from Cubit.");
    $template = pg_fetch_result($tsRslt, 0);
    if ($template == "invoice-print.php") {
        $pdf = "pdf/quote-pdf-print.php?quoid=";
    } else {
        $pdf = "pdf/pdf-quote.php?quoid=";
    }
    # Set up table to display in
    $printQuo .= "\n\t\t<h3>View previous Quotes</h3>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Department</th>\n\t\t\t\t<th>Sales Person</th>\n\t\t\t\t<th>Quote No.</th>\n\t\t\t\t<th>Quote Date</th>\n\t\t\t\t<th>Next Contact Date</th>\n\t\t\t\t<th>Customer Name</th>\n\t\t\t\t<th>Order No</th>\n\t\t\t\t<th>Grand Total</th>\n\t\t\t\t" . ($pure ? "" : "<th colspan='6'>Options</th><th>Email</th>") . "\n\t\t\t</tr>";
    # connect to database
    db_connect();
    # Query server
    $i = 0;
    $sql = "SELECT * FROM quotes WHERE accepted != 'c' AND done = 'y' AND div = '" . USER_DIV . "' AND ({$filt}) ORDER BY quoid DESC";
    $quoRslt = db_exec($sql) or errDie("Unable to retrieve quotes from database.");
    if (pg_numrows($quoRslt) < 1) {
        $printQuo .= "\n\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t<td colspan='14'>No Quotes matching criteria.</td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR;
    } else {
        while ($quo = pg_fetch_array($quoRslt)) {
            # format date
            $quo['odate'] = explode("-", $quo['odate']);
            $quo['odate'] = $quo['odate'][2] . "-" . $quo['odate'][1] . "-" . $quo['odate'][0];
            $printQuo .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$quo['deptname']}</td>\n\t\t\t\t\t<td>{$quo['salespn']}</td>\n\t\t\t\t\t<td>{$quo['quoid']}</td>\n\t\t\t\t\t<td align='center'>{$quo['odate']}</td>\n\t\t\t\t\t<td align='center'>{$quo['ncdate']}</td>\n\t\t\t\t\t<td>{$quo['cusname']} {$quo['surname']}</td>\n\t\t\t\t\t<td align='right'>{$quo['ordno']}</td>\n\t\t\t\t\t<td>" . CUR . " {$quo['total']}</td>";
            //<td><a href='quote-email.php?evs=$quo[quoid]'>Email</a></td>
            if (!$pure) {
                $printQuo .= "\n\t\t\t\t\t<td><a href='quote-details.php?quoid={$quo['quoid']}'>Details</a></td>\n\t\t\t\t\t<td><a href='quote-new.php?quoid={$quo['quoid']}&cont=true&letters=&done='>Edit</a></td>";
                if ($quo['accepted'] == 'n') {
                    $printQuo .= "\n\t\t\t\t\t\t<td><a href='quote-cancel.php?quoid={$quo['quoid']}'>Cancel</a></td>\n\t\t\t\t\t\t<td><a href='quote-accept.php?quoid={$quo['quoid']}'>Accept</a></td>\n\t\t\t\t\t\t<td><a href='quote-print.php?quoid={$quo['quoid']}' target='_blank'>Print</a></td>\n\t\t\t\t\t\t<td><a href='{$pdf}{$quo['quoid']}' target='_blank'>Print in PDF</a></td>\n\t\t\t\t\t\t<td><input type='checkbox' name='evs[]' value='{$quo['quoid']}'></td>\n\t\t\t\t\t</tr>";
                } else {
                    $printQuo .= "\n\t\t\t\t\t\t<td colspan='2'>Accepted</td>\n\t\t\t\t\t\t<td><a href='quote-print.php?quoid={$quo['quoid']}' target='_blank'>Print</a></td>\n\t\t\t\t\t\t<td><a href='{$pdf}{$quo['quoid']}' target='_blank'>Print in PDF</a></td>\n\t\t\t\t\t\t<td><input type='checkbox' name='evs[]' value='{$quo['quoid']}'></td>\n\t\t\t\t\t</tr>";
                }
            }
        }
    }
    if (!$pure) {
        $printQuo .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='13'>\n\t\t\t\t\t\t<input type='submit' name='key' value='Print'>\n\t\t\t\t\t\t| <input type='submit' name='key' value='Export to Spreadsheet'>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td colspan='2' align='right'><input type='submit' name='key' value='Send Emails'></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</form>";
    } else {
        $printQuo .= "\n\t\t\t</table>";
        $OUTPUT = clean_html($printQuo);
        switch ($key) {
            case "export to spreadsheet":
                require_lib("xls");
                StreamXLS("quotes", $OUTPUT);
                break;
            case "print":
                $OUTPUT = "<h3>Quotes</h3>{$OUTPUT}";
                require "tmpl-print.php";
                break;
            case "save":
                $pure = true;
                break;
        }
    }
    // Layout
    // 	$printQuo .= "</table>"
    // 		.mkQuickLinks(
    // 			ql("quote-new.php", "New Quote"),
    // 			ql("customers-new.php", "New Customer")
    // 		);
    return $printQuo;
}
function printSord()
{
    extract($_REQUEST);
    if (isset($key)) {
        $key = strtolower($key);
        switch ($key) {
            case "export to spreadsheet":
            case "print":
            case "save":
                $pure = true;
                break;
            case "view":
            default:
                $pure = false;
        }
    } else {
        $pure = false;
    }
    if (!isset($from_year)) {
        explodeDate(false, $from_year, $from_month, $from_day);
        explodeDate(false, $to_year, $to_month, $to_day);
    }
    if (!isset($type)) {
        $type = "all";
    }
    $sel_accepted = $type == "accepted" ? "checked='t'" : "";
    $sel_notaccepted = $type == "notaccepted" ? "checked='t'" : "";
    $sel_all = $type != "accepted" && $type != "notaccepted" ? "checked='t'" : "";
    $printSord = "";
    if (!$pure) {
        $printSord .= "\n\t\t\t<form method='POST' action='" . SELF . "'>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'>View Options</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Begin Date:</td>\n\t\t\t\t\t<td>" . mkDateSelect("from", $from_year, $from_month, $from_day) . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>End Date:</td>\n\t\t\t\t\t<td>" . mkDateSelect("to", $to_year, $to_month, $to_day) . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Type:</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input type='radio' name='type' {$sel_accepted} value='accepted' /> Accepted/Invoiced\n\t\t\t\t\t\t<input type='radio' name='type' {$sel_notaccepted} value='notaccepted' /> Not Yet Accepted\n\t\t\t\t\t\t<input type='radio' name='type' {$sel_all} value='all' /> All\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2' align='right'><input type='submit' value='Filter' /></td>\n\t\t\t\t</tr>\n\t\t\t</table>";
    }
    if (!isset($key)) {
        $printSord .= "</form>";
        return $printSord;
    }
    /* build filter */
    $filt = "odate>='{$from_year}-{$from_month}-{$from_day}' AND odate<='{$to_year}-{$to_month}-{$to_day}'";
    switch ($type) {
        case "accepted":
            $filt .= " AND accepted='y'";
            break;
        case "notaccepted":
            $filt .= " AND accepted='n'";
            break;
        case "all":
        default:
    }
    $printSord .= "\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Department</th>\n\t\t\t\t<th>Sales Person</th>\n\t\t\t\t<th>Sales Order No.</th>\n\t\t\t\t<th>Sales Order Date</th>\n\t\t\t\t<th>Customer Name</th>\n\t\t\t\t<th>Order No</th>\n\t\t\t\t<th>Grand Total</th>\n\t\t\t\t" . ($pure ? "" : "<th colspan='6'>Options</th>") . "\n\t\t\t</tr>";
    $i = 0;
    $sql = "\n\t\tSELECT * FROM cubit.sorders \n\t\tWHERE accepted != 'c' AND done = 'y' AND div = '" . USER_DIV . "' AND ({$filt}) \n\t\tORDER BY sordid DESC";
    $sordRslt = db_exec($sql) or errDie("Unable to retrieve Sales Orders from database.");
    if (pg_numrows($sordRslt) < 1) {
        $printSord .= "\n\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t<td colspan='13'>No Sales Orders matching criteria.</td>\n\t\t\t</tr>";
    } else {
        while ($sord = pg_fetch_array($sordRslt)) {
            # format date
            $sord['odate'] = explode("-", $sord['odate']);
            $sord['odate'] = $sord['odate'][2] . "-" . $sord['odate'][1] . "-" . $sord['odate'][0];
            $det = "sorder-details.php";
            $cancel = "sorder-cancel.php";
            $accept = "sorder-accept.php";
            $print = "sorder-print.php";
            $edit = "sorder-new.php";
            if ($sord['location'] == 'int') {
                $det = "intsorder-details.php";
                $cancel = "intsorder-cancel.php";
                $accept = "intsorder-accept.php";
                $print = "intsorder-print.php";
                $edit = "intsorder-new.php";
            }
            $sp4 = "&nbsp;&nbsp;&nbsp;&nbsp;";
            $bcurr = CUR;
            if ($sord['location'] == 'int') {
                $bcurr = $sord['currency'];
            }
            $printSord .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$sord['deptname']}</td>\n\t\t\t\t\t<td>{$sord['salespn']}</td>\n\t\t\t\t\t<td>{$sord['sordid']}</td>\n\t\t\t\t\t<td align='center'>{$sord['odate']}</td>\n\t\t\t\t\t<td>{$sord['cusname']} {$sord['surname']}</td>\n\t\t\t\t\t<td align='right'>{$sord['ordno']}</td>\n\t\t\t\t\t<td align='right'>{$bcurr} {$sord['total']}</td>";
            if (!$pure) {
                $printSord .= "\n\t\t\t\t\t<td><a href='{$det}?sordid={$sord['sordid']}'>Details</a></td>\n\t\t\t\t\t<td><a href='javascript: printer(\"{$print}?invid={$sord['sordid']}\");'>Print</a></td>";
                if ($sord['accepted'] == 'n') {
                    $printSord .= "\n\t\t\t\t\t\t\t<td><a href='{$edit}?sordid={$sord['sordid']}&cont=1'>Edit</a></td>\n\t\t\t\t\t\t\t<td><a href='{$cancel}?sordid={$sord['sordid']}'>Cancel</a></td>\n\t\t\t\t\t\t\t<td><a href='{$accept}?sordid={$sord['sordid']}'>Invoice</a></td>\n\t\t\t\t\t\t</tr>";
                } else {
                    $printSord .= "\n\t\t\t\t\t\t\t<td colspan='3' align='center'>Accepted</td>\n\t\t\t\t\t\t</tr>";
                }
            }
        }
    }
    if (!$pure) {
        $printSord .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='13'>\n\t\t\t\t\t\t<input type='submit' name='key' value='Print'> | <input type='submit' name='key' value='Export to Spreadsheet'>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</form>";
    } else {
        $printSord .= "</table>";
        $OUTPUT = clean_html($printSord);
        switch ($key) {
            case "export to spreadsheet":
                require_lib("xls");
                StreamXLS("sorders", $OUTPUT);
                break;
            case "print":
                $OUTPUT = "<h3>Sales Orders</h3>{$OUTPUT}";
                require "tmpl-print.php";
                break;
            case "save":
                $pure = true;
                break;
        }
    }
    return $printSord;
}
Exemplo n.º 7
0
function confirm($_POST)
{
    extract($_POST);
    if (isset($back)) {
        return view();
    }
    # validate input
    require_lib("validate");
    $v = new validate();
    $v->isOk($bankid, "num", 1, 20, "Invalid Bank ID.");
    foreach ($amount as $key => $value) {
        //	if($amount[$key] > 0){
        # check all vars
        $v->isOk($to[$key], "string", 0, 255, "Invalid receipient/depositor.");
        $v->isOk($trantype[$key], "string", 1, 20, "Invalid transaction type.");
        $v->isOk($descript[$key], "string", 0, 255, "Invalid description.");
        $v->isOk($ref[$key], "string", 0, 255, "Invalid reference <b>[{$key}]</b>.");
        $v->isOk($cheqnum[$key], "num", 0, 20, "Invalid cheque number <b>[{$key}]</b>.");
        $v->isOk($amount[$key], "float", 0, 8, "Invalid amount <b>[{$key}]</b>.");
        $v->isOk($chrgvat[$key], "string", 1, 4, "Invalid VAT option.");
        $v->isOk($accinv[$key], "num", 1, 20, "Invalid account involved <b>[{$key}]</b>.");
        if (empty($amount[$key])) {
            unset($amount[$key]);
        }
        # put date together and check
        $date[$key] = mkdate($o_year[$key], $o_month[$key], $o_day[$key]);
        $v->isOk($date[$key], "date", 1, 1, "Invalid date <b>[{$key}]</b>.");
        //	}
    }
    # display errors, if any
    if ($v->isError()) {
        $confirm = "";
        $errors = $v->getErrors();
        foreach ($errors as $e) {
            $confirm .= "<li class='err'>" . $e["msg"] . "</li>";
        }
        return enter($_POST, $confirm);
        $confirm .= "<p><input type='button' onClick='JavaScript:history.back();' value='&laquo; Correct submission'>";
        return $confirm;
    }
    # Get bank acc details
    $bankRslt = get("cubit", "*", "bankacct", "bankid", $bankid);
    $bank = pg_fetch_array($bankRslt);
    # Layout
    $confirm = "\n\t\t<center>\n\t\t<h3>Type in Bank Statement</h3>\n\t\t<h4>Confirm entry</h4>\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='bankid' value='{$bankid}'>\n\t\t\t<input type='hidden' name='number' value='{$number}'>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td align='center' colspan='4'>Bank Account : <b>({$bank['accnum']}) {$bank['accname']}</b></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<th>Date</th>\n\t\t\t\t<th>Paid to/Received from</th>\n\t\t\t\t<th>Transaction type</th>\n\t\t\t\t<th>Transaction Description</th>\n\t\t\t\t<th>Reference</th>\n\t\t\t\t<th>Cheque Number</th>\n\t\t\t\t<th>Transaction Amount</th>\n\t\t\t\t<th>VAT</th>\n\t\t\t\t<th>VAT Code</th>\n\t\t\t\t<th>Contra Account</th>\n\t\t\t</tr>";
    # Display the trans
    $trans = "";
    foreach ($amount as $key => $value) {
        if ($amount[$key] > 0) {
            # get account name
            $accRslt = get("core", "accname,topacc,accnum", "accounts", "accid", $accinv[$key]);
            $acc = pg_fetch_array($accRslt);
            $vd = qryVatcode($vatcode[$key]);
            if ($vd["zero"] == "Yes") {
                $chrgvat[$key] = "no";
            }
            $vatp = $vd["vat_amount"];
            $totamt = $amount[$key];
            if ($chrgvat[$key] == "exc") {
                $vat = sprint($vatp / 100 * $amount[$key]);
                $totamt += $vat;
                $vatin = CUR . " <input type='text' size='6' name='vat[{$key}]' value='{$vat}' />";
            } elseif ($chrgvat[$key] == "inc") {
                $vat = sprint($amount[$key] / (100 + $vatp) * $vatp);
                $vatin = CUR . " <input type='text' size='6' name='vat[{$key}]' value='{$vat}' />";
            } else {
                $vat = "No VAT";
                $vatd = "{$vat}";
                $vatin = "No VAT";
            }
            # alternate bgcolor
            $bgColor = bgcolorc($key);
            vsprint($totamt);
            $trans .= "\n\t\t\t\t<input type='hidden' size='2' name='date[{$key}]' value='{$date[$key]}' />\n\t\t\t\t<input type='hidden' name='to[{$key}]' value='{$to[$key]}' />\n\t\t\t\t<input type='hidden' name='trantype[{$key}]' value='{$trantype[$key]}' />\n\t\t\t\t<input type='hidden' name='descript[{$key}]' value='{$descript[$key]}' />\n\t\t\t\t<input type='hidden' name='ref[{$key}]' value='{$ref[$key]}' />\n\t\t\t\t<input type='hidden' name='cheqnum[{$key}]' value='{$cheqnum[$key]}' />\n\t\t\t\t<input type='hidden' name='amount[{$key}]' value='{$amount[$key]}' />\n\t\t\t\t<input type='hidden' name='chrgvat[{$key}]' value='{$chrgvat[$key]}' />\n\t\t\t\t<input type='hidden' name='vatcode[{$key}]' value='{$vatcode[$key]}' />\n\t\t\t\t<input type='hidden' name='accinv[{$key}]' value='{$accinv[$key]}' />\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td align='center'>{$date[$key]}</td>\n\t\t\t\t\t<td align='center'>{$to[$key]}</td>\n\t\t\t\t\t<td align='center'>{$trantype[$key]}</td>\n\t\t\t\t\t<td align='center'>{$descript[$key]}</td>\n\t\t\t\t\t<td align='center'>{$ref[$key]}</td>\n\t\t\t\t\t<td align='center'>{$cheqnum[$key]}</td>\n\t\t\t\t\t<td align='center' nowrap='t'>" . CUR . " {$totamt}</td></td>\n\t\t\t\t\t<td align='center' nowrap='t'>{$vatin}</td>\n\t\t\t\t\t<td align='center'>{$vd['code']}</td>\n\t\t\t\t\t<td align='center'>{$acc['topacc']}/{$acc['accnum']} - {$acc['accname']}</td></td>\n\t\t\t\t</tr>";
        }
    }
    if (strlen($trans) < 5) {
        $err = "<li class='err'> - Please enter full transaction details";
        return enter($_POST, $err);
    }
    $confirm .= "\n\t\t\t{$trans}\n\t\t\t<tr>\n\t\t\t\t<td></td>\n\t\t\t\t<td align='right'><input type='submit' name='batch' value='Add to Batch &raquo'></td>\n\t\t\t</tr>\n\t\t\t<tr><td><br></td></tr>\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' colspan='4'><input type='submit' value='Write &raquo'></td>\n\t\t\t</tr>\n\t\t</form>\n\t\t</table>" . mkQuickLinks();
    return $confirm;
}
function printSord()
{
    extract($_REQUEST);
    if (isset($key)) {
        $key = strtolower($key);
        switch ($key) {
            case "export to spreadsheet":
            case "print":
            case "save":
                $pure = true;
                break;
            case "view":
            default:
                $pure = false;
        }
    } else {
        $pure = false;
    }
    if (!isset($from_year)) {
        explodeDate(false, $from_year, $from_month, $from_day);
        explodeDate(false, $to_year, $to_month, $to_day);
    }
    $printSord = "";
    if (!$pure) {
        $printSord .= "\n\t\t<form method='post' action='" . SELF . "'>\n\t    <table " . TMPL_tblDflts . ">\n\t    <tr>\n\t    \t<th colspan='2'>View Options</th>\n\t    </tr>\n\t    <tr class='" . bg_class() . "'>\n\t    \t<td>Begin Date:</td>\n\t    \t<td>" . mkDateSelect("from", $from_year, $from_month, $from_day) . "</td>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t    \t<td>End Date:</td>\n\t    \t<td>" . mkDateSelect("to", $to_year, $to_month, $to_day) . "</td>\n\t    </tr>\n\t    <tr>\n\t    \t<td colspan='2' align='right'><input type='submit' value='Filter' /></td>\n\t    </tr>\n\t    </table>";
    }
    if (!isset($key)) {
        $printSord .= "</form>";
        return $printSord;
    }
    $printSord .= "\n\t<table " . TMPL_tblDflts . ">\n\t<tr>\n\t\t<th>Department</th>\n\t\t<th>Sales Person</th>\n\t\t<th>Sales Order No.</th>\n\t\t<th>Sales Order Date</th>\n\t\t<th>Customer Name</th>\n\t\t<th>Order No</th>\n\t\t" . ($pure ? "" : "<th colspan=6>Options</th>") . "\n\t</tr>";
    $i = 0;
    $sql = "SELECT * FROM cubit.sorders\n    \t\tWHERE accepted = 'n' AND done = 'y' AND div = '" . USER_DIV . "' AND\n    \t\t\todate BETWEEN '{$from_year}-{$from_month}-{$from_day}' AND \n    \t\t\t\t'{$to_year}-{$to_month}-{$to_day}' AND slip_done='n'\n    \t\tORDER BY sordid DESC";
    $sordRslt = db_exec($sql) or errDie("Unable to retrieve Sales Orders.");
    if (pg_numrows($sordRslt) < 1) {
        $printSord .= "\n\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t<td colspan='13'>No Sales Orders matching criteria.</td>\n\t\t</tr>";
    } else {
        while ($sord = pg_fetch_array($sordRslt)) {
            # alternate bgcolor
            $bgColor = bgcolor($i);
            # format date
            $sord['odate'] = explode("-", $sord['odate']);
            $sord['odate'] = $sord['odate'][2] . "-" . $sord['odate'][1] . "-" . $sord['odate'][0];
            $det = "sorder-details.php";
            $cancel = "sorder-cancel.php";
            $accept = "sorder-accept.php";
            $print = "sorder-print.php";
            $edit = "sorder-new.php";
            if ($sord['location'] == 'int') {
                $det = "intsorder-details.php";
                $cancel = "intsorder-cancel.php";
                $accept = "intsorder-accept.php";
                $print = "intsorder-print.php";
                $edit = "intsorder-new.php";
            }
            $sp4 = "&nbsp;&nbsp;&nbsp;&nbsp;";
            $bcurr = CUR;
            if ($sord['location'] == 'int') {
                $bcurr = $sord['currency'];
            }
            if ($sord["username"] == USER_NAME || user_is_admin(USER_NAME)) {
                $done = "\n\t\t\t\t<a href='picking_slip_done.php?sordid={$sord['sordid']}'>\n\t\t\t\t\tCancel\n\t\t\t\t</a>";
            } else {
                $done = "";
            }
            $printSord .= "<tr class='" . bg_class() . "'>\n\t\t\t\t<td>{$sord['deptname']}</td>\n\t\t\t\t<td>{$sord['salespn']}</td>\n\t\t\t\t<td>{$sord['sordid']}</td>\n\t\t\t\t<td align=center>{$sord['odate']}</td>\n\t\t\t\t<td>{$sord['cusname']} {$sord['surname']}</td>\n\t\t\t\t<td align=right>{$sord['ordno']}</td>\n\t\t\t\t<td>\n\t\t\t\t\t<a href='javascript:printer(\"picking_slips/picking_slip_print.php?sordid={$sord['sordid']}\")'>\n\t\t\t\t\t\tPrint Picking Slip\n\t\t\t\t\t</a>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<a href='" . SELF . "?key=invoice&sordid={$sord['sordid']}'>\n\t\t\t\t\t\tInvoice\n\t\t\t\t\t</a>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<a href='" . SELF . "?key=pos_invoice&sordid={$sord['sordid']}'>\n\t\t\t\t\t\tPOS Invoice\n\t\t\t\t\t</a>\n\t\t\t\t</td>\n\t\t\t\t<td>{$done}</td>";
        }
    }
    if (!$pure) {
        $printSord .= "\n\t\t</table>\n\t\t</form>";
    } else {
        $printSord .= "\n\t\t</table>";
        $OUTPUT = clean_html($printSord);
        switch ($key) {
            case "export to spreadsheet":
                require_lib("xls");
                StreamXLS("sorders", $OUTPUT);
                break;
            case "print":
                $OUTPUT = "<h3>Sales Orders</h3>{$OUTPUT}";
                require "tmpl-print.php";
                break;
            case "save":
                $pure = true;
                break;
        }
    }
    return $printSord;
}
Exemplo n.º 9
0
 /**
  * makes the template used by getfrm_input() and getfrm_confirm()
  */
 private function getfrm_tmpl()
 {
     $OUT = "<h3>{$this->title}</h3>";
     if (!empty($this->title_msg)) {
         $OUT .= "{$this->title_msg}<br /><br />";
     }
     /* add defaults buttons if none was added */
     if (!$this->has_buttons) {
         /* if this is a confirm screen */
         if (array_search($this->key, $this->keys) > 0) {
             $this->add_ctrlbtn("&laquo; Correction", "submit", "btn_back");
         }
         $this->add_ctrlbtn("Submit", "submit", "btn_submit");
     }
     /* form encoding */
     if ($this->dataform === true) {
         $et = "enctype='multipart/form-data'";
     } else {
         $et = "";
     }
     /* validation errors */
     $errs = "";
     if (isset($this->errors[$this->key])) {
         foreach ($this->errors[$this->key] as $ifldname => $flderr) {
             $errs .= "<li class='err'>{$flderr}</li>";
         }
     }
     /* start output */
     $totcols = $this->cols * 2;
     $OUT .= "\n\t\t<form name='{$this->frmname}' method='{$this->method}' action='{$this->action}' {$et}>";
     /* class information */
     $OUT .= $this->getpasson();
     $OUT .= "%%CUBIT_FLD%HIDDEN%%";
     /* main table layout */
     $CELLOUT = array();
     /* column table layout */
     $OUT .= "\n\t\t<table " . TMPL_tblDflts . ">";
     if (!empty($errs)) {
         $OUT .= "\n\t\t\t<tr>\n\t\t\t\t<th colspan='{$totcols}'>There are problems with values of the following fields:</th>\n\t\t\t<tr>\n\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t<td colspan='{$totcols}'>{$errs}</td>\n\t\t\t</tr>";
     }
     /* add fields */
     $i = 0;
     // bgcolor counter
     $maxcols = 1;
     // maximum number of columns of any row
     $ctrlbtns = array();
     // store ctrlbutton names as they are found
     $layout = "";
     // buffer for layout filling
     $layout_capacity = false;
     // capacity of current layout to still be filled
     foreach ($this->fields as $ifldname => $fldopt) {
         $fldname = base64_decode($ifldname);
         #manual error handling
         if (!isset($fldopt["pos_col"])) {
             $fldopt["pos_col"] = "";
         }
         if (!isset($fldopt["pos_row"])) {
             $fldopt["pos_row"] = "";
         }
         /* count max columns */
         if ($fldopt["pos_col"] > $maxcols) {
             $maxcols = $fldopt["pos_col"];
         }
         /* create pointer to the output cell variable */
         if (!isset($CELLOUT[$fldopt["pos_row"]])) {
             $CELLOUT[$fldopt["pos_row"]] = array($fldopt["pos_col"] => "");
         } else {
             if (!isset($CELLOUT[$fldopt["pos_row"]][$fldopt["pos_col"]])) {
                 $CELLOUT[$fldopt["pos_row"]][$fldopt["pos_col"]] = "";
             }
         }
         $fOUT =& $CELLOUT[$fldopt["pos_row"]][$fldopt["pos_col"]];
         /* heading type */
         if ($fldopt["type"] == "heading") {
             $fOUT .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'>{$fldopt['disp']}</th>\n\t\t\t\t</tr>";
         } else {
             if ($fldopt["type"] == "message") {
                 $fOUT .= "\n\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t<td colspan='2'>{$fldopt['disp']}</td>\n\t\t\t\t</tr>";
             } else {
                 if ($fldopt["type"] == "ctrlbutton") {
                     if ($fldopt["dispkey"] == $this->key) {
                         $ctrlbtns[] = $ifldname;
                     }
                 } else {
                     if ($fldopt["type"] == "layout") {
                         if ($this->key == $fldopt["dispkey"] || $fldopt["sticky"]) {
                             //print_r($fldopt);
                             if ($fldopt["capacity"] == 0) {
                                 $fOUT .= $fldopt["data"];
                             } else {
                                 $layout .= $fldopt["data"];
                                 $layout_capacity += $fldopt["capacity"];
                             }
                         }
                     } else {
                         /* find positions in sequence of each key */
                         $cur_kpos = array_search($this->key, $this->keys);
                         $fld_kpos = array_search($fldopt["dispkey"], $this->keys);
                         /* only display field of current step is after/greater than
                         			the field's step */
                         if ($fld_kpos <= $cur_kpos) {
                             /* if an error for this field exists, highlight it */
                             if (isset($this->errors[$this->key][$ifldname])) {
                                 //$this->fields[$fldname]["opts"]["style"] = "border: 2px solid red;";
                                 $this->fields[$ifldname]["opts"]["class"] = "frmerr";
                                 $errstyle = "class='frmerr_l'";
                             } else {
                                 $errstyle = "";
                             }
                             /* create output tmpl for field by using layout */
                             if ($layout_capacity !== false) {
                                 --$layout_capacity;
                                 $this->layout_update($layout, $i, $fldopt["disp"], $fldname);
                                 /* last field added, add to output and disable layout gen */
                                 if ($layout_capacity == 0) {
                                     $fOUT .= $layout;
                                     $layout = "";
                                     $layout_capacity = false;
                                 }
                             } else {
                                 $fOUT .= "\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td>%%CUBIT_DSP%{$fldname}%%</td>\n\t\t\t\t\t\t\t<td>%%CUBIT_FLD%{$fldname}%%</td>\n\t\t\t\t\t\t</tr>";
                             }
                         }
                     }
                 }
             }
         }
     }
     /* now put the form field tables into rows/columns */
     foreach ($CELLOUT as $rownum => $rowcols) {
         $OUT .= "\n\t\t\t<tr>";
         for ($i = 1; $i <= $maxcols; ++$i) {
             if (isset($rowcols[$i])) {
                 $OUT .= "\n\t\t\t\t\t\t<td valign='top'>\n\t\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t\t{$rowcols[$i]}\n\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>";
             } else {
                 $OUT .= "<td>&nbsp;</td>";
             }
         }
         $OUT .= "\n\t\t\t</tr>";
         if (count($rowcols) > $maxcols) {
             $maxcols = count($rowcols);
         }
     }
     /* add control buttons */
     $btndata = array();
     foreach ($ctrlbtns as $ifldname) {
         $fldopt = $this->fields[$ifldname];
         if ($fldopt["name"] !== false) {
             $n = "name='{$fldopt['name']}'";
         } else {
             $n = "";
         }
         $btndata[] = "<input type='{$fldopt['btype']}' value='{$fldopt['disp']}' {$n} />";
     }
     $btndata = implode(" ", $btndata);
     $OUT .= "\n\t\t<tr>\n\t\t\t<td colspan='{$maxcols}' align='right' nowrap='t'>{$btndata}</td>\n\t\t</tr>";
     $OUT .= "\n\t\t</table>\n\t\t</form>";
     return $OUT;
 }
function printaccnt()
{
    // Set up table to display in
    $OUTPUT = "\n\t\t<center>\n\t\t<h3>View Bank Accounts</h3></td>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Account Type</th>\n\t\t\t\t<th>Bank Name</th>\n\t\t\t\t<th>Type</th>\n\t\t\t\t<th>Currency</th>\n\t\t\t\t<th>Branch Name</th>\n\t\t\t\t<th>Branch Code</th>\n\t\t\t\t<th>Account Name</th>\n\t\t\t\t<th>Account Number</th>\n\t\t\t\t<th>Foreign Balance</th>\n\t\t\t\t<th>Local Currency</th>\n\t\t\t\t<th>Details</th>\n\t\t\t\t<th colspan='2'>Options</th>\n\t\t\t</tr>";
    # Connect to database
    db_Connect();
    $sql = "SELECT * FROM bankacct WHERE div = '" . USER_DIV . "' ORDER BY bankname,branchname";
    $bankRslt = db_exec($sql) or errDie("ERROR: Unable to retrieve bank account details from database.", SELF);
    $numrows = pg_numrows($bankRslt);
    if ($numrows < 1) {
        $OUTPUT = "No Bank Accounts.";
        require "../template.php";
    }
    # Locations drop down
    $locs = array("loc" => "Local", "int" => "International");
    # display all orders
    for ($i = 0; $i < $numrows; $i++) {
        $bankacc = pg_fetch_array($bankRslt, $i);
        if ($bankacc['fcid'] != 0) {
            $curr = getSymbol($bankacc['fcid']);
        } else {
            $curr = 0;
            $locs[$bankacc['btype']] = "Local";
        }
        $type = $locs[$bankacc['btype']];
        # Get hook account number
        core_connect();
        $sql = "SELECT * FROM bankacc WHERE accid = '{$bankacc['bankid']}' AND div = '" . USER_DIV . "'";
        $rslt = db_exec($sql) or errDie("Unable to retrieve bank account link from Cubit", SELF);
        # Check if link exists
        if (pg_numrows($rslt) < 1) {
            return "<li class='err'>ERROR : The bank account that you selected doesn't appear to have an account linked to it.";
        }
        $banklnk = pg_fetch_array($rslt);
        # Get bank balance
        $sql = "SELECT (debit - credit) as bal FROM core.trial_bal\n\t\t\t\tWHERE accid = '{$banklnk['accnum']}' AND period='12' AND div = '" . USER_DIV . "'";
        $brslt = db_exec($sql) or errDie("Unable to retrieve bank account link from Cubit", SELF);
        $bal = pg_fetch_array($brslt);
        $fbal = $bankacc['btype'] == 'int' ? "{$curr['symbol']} {$bankacc['fbalance']}" : "<center> - </center>";
        $lbal = $bankacc['btype'] == 'int' ? CUR . " {$bankacc['balance']}" : CUR . " " . sprint($bal['bal']);
        # alternate bgcolor
        $bgColor = bgcolorc($i);
        $OUTPUT .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>{$bankacc['acctype']}</td>\n\t\t\t\t<td>{$bankacc['bankname']}</td>\n\t\t\t\t<td>{$type}</td>\n\t\t\t\t<td>{$curr['symbol']} - {$curr['name']}</td>\n\t\t\t\t<td>{$bankacc['branchname']}</td>\n\t\t\t\t<td>{$bankacc['branchcode']}</td>\n\t\t\t\t<td>{$bankacc['accname']}</td>\n\t\t\t\t<td align='right'>{$bankacc['accnum']}</td>\n\t\t\t\t<td align='right'>{$fbal}</td>\n\t\t\t\t<td align='right'>{$lbal}</td>\n\t\t\t\t<td>{$bankacc['details']}</td>";
        if ($bankacc['type'] == 'cr') {
            $OUTPUT .= "<td><a href='creditcard-edit.php?bankid={$bankacc['bankid']}'>Edit</a></td>";
        } elseif ($bankacc['type'] == 'ptrl') {
            $OUTPUT .= "<td><a href='petrolcard-edit.php?bankid={$bankacc['bankid']}'>Edit</a></td>";
        } else {
            $OUTPUT .= "<td><a href='bankacct-edit.php?bankid={$bankacc['bankid']}'>Edit</a></td>";
        }
        db_connect();
        # Check if record can be removed
        $sql = "SELECT * FROM cashbook WHERE banked = 'no' AND bankid='{$bankacc['bankid']}' AND div = '" . USER_DIV . "'";
        $rs = db_exec($sql) or errDie("Unable to get cashbook entries.", SELF);
        if (pg_numrows($rs) > 0) {
            $OUTPUT .= "<td><br></td></tr>";
        } else {
            $OUTPUT .= "<td><a href='bankacct-rem.php?bankid={$bankacc['bankid']}'>Delete</a></td></tr>";
        }
    }
    $OUTPUT .= "\n\t\t</table>\n\t\t<p>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Quick Links</th>\n\t\t\t</tr>\n\t        <tr class='" . bg_class() . "'>\n\t        \t<td><a href='bank-pay-add.php'>Add Bank Payment</a></td>\n\t        </tr>\n\t        <tr class='" . bg_class() . "'>\n\t        \t<td><a href='bank-recpt-add.php'>Add Bank Receipt</a></td>\n\t        </tr>\n\t        <tr class='" . bg_class() . "'>\n\t        \t<td><a href='cashbook-view.php'>View Cash Book</a></td>\n\t        </tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><a href='../main.php'>Main Menu</a></td>\n\t\t\t</tr>\n\t\t</table>";
    require "../template.php";
}
function viewEmp()
{
    # Connect to db
    db_connect();
    global $_GET;
    extract($_GET);
    if (!isset($err)) {
        $err = "";
    } else {
        $err = "<li class='err'>{$err}</li>";
    }
    if (!isset($month)) {
        $month = DATE_MONTH;
    }
    if (isset($emp_group) and $emp_group != 0) {
        $egsearch = "AND emp_group = '{$emp_group}'";
    } else {
        #check for which groups we have perm
        $get_check = "SELECT payroll_groups FROM users WHERE username = '******'USER_NAME']}' LIMIT 1";
        $run_check = db_exec($get_check) or errDie("Unable to get employees group permissions.");
        if (pg_numrows($run_check) > 0) {
            $earr = pg_fetch_array($run_check);
            if (strlen($earr['payroll_groups']) > 0) {
                $eperms = explode(",", $earr['payroll_groups']);
                $egsearch = " AND (emp_group = '" . implode("' OR emp_group = '", $eperms) . "')";
            }
        } else {
            $egsearch = "";
        }
    }
    # Get employees from db
    $employees = "";
    $i = 0;
    $sql = "SELECT * FROM employees WHERE div = '" . USER_DIV . "' {$egsearch} ORDER BY sname,fnames";
    $empRslt = db_exec($sql) or errDie("Unable to select employees from database.");
    if (pg_numrows($empRslt) < 1) {
        $employees = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan='5'><li class='err'>No Employees Found.</li></td>\n\t\t\t</tr>";
    } else {
        while ($myEmp = pg_fetch_array($empRslt)) {
            if (isset($all) || isset($emps[$myEmp["empnum"]])) {
                $ex = "checked=yes";
            } else {
                $ex = "";
            }
            //			<a href='irp5-export.php?empnum=$myEmp[empnum]'>Export IRP 5</a> |
            $employees .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$myEmp['enum']}</td>\n\t\t\t\t\t<td>{$myEmp['fnames']}</td>\n\t\t\t\t\t<td>{$myEmp['sname']}</td>\n\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$myEmp['balance']}</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<a href='admin-employee-detail.php?empnum={$myEmp['empnum']}'>Details</a> |\n\t\t\t\t\t\t<a target=_blank href='salwages/irp5-data.php?empnum={$myEmp['empnum']}'>Year to Date</a> |\n\t\t\t\t\t\t<a href='salwages/employee-pay.php?id={$myEmp['empnum']}'>Pay</a> |\n\t\t\t\t\t\t<a href='salwages/employee-tran.php?id={$myEmp['empnum']}'>Transaction</a> |\n\t\t\t\t\t\t<a target='_blank' href='pdf/irp5-pdf.php?empnum={$myEmp['empnum']}'>IRP 5</a> |\n\n\t\t\t\t\t\t<a target='_blank' href='pdf/it3-pdf.php?empnum={$myEmp['empnum']}'>IT 3 (a)</a> |\n\t\t\t\t\t\t<a href='#' onClick=openwindowbg('docman/doc-view-type.php?xin={$myEmp['enum']}&type=empl');>View Documents</a> |\n\t\t\t\t\t\t<a href='admin-employee-edit.php?empnum={$myEmp['empnum']}'>Edit</a> |\n\t\t\t\t\t\t<a href='salwages/empacc-link.php?empnum={$myEmp['empnum']}'>Exp. Accs.</a> |\n\t\t\t\t\t\t<a href='salwages/employee-leave-avail.php?empnum={$myEmp['empnum']}'>View Available Leave</a> |\n\t\t\t\t\t\t<a href='admin-employee-rem.php?empnum={$myEmp['empnum']}'>Leave Company</a>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td><input type='checkbox' name='emps[{$myEmp['empnum']}]' {$ex}></td>\n\t\t\t\t</tr>";
        }
    }
    $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' onChange='document.form1.submit();'>";
        $emp_group_drop .= "<option value='0'>Select Employee Group</option>";
        while ($egarr = pg_fetch_array($run_egroups)) {
            if (isset($emp_group) and $emp_group == $egarr['id']) {
                $emp_group_drop .= "<option value='{$egarr['id']}' selected>{$egarr['emp_group']}</option>";
            } else {
                $emp_group_drop .= "<option value='{$egarr['id']}'>{$egarr['emp_group']}</option>";
            }
        }
        $emp_group_drop .= "</select>";
    }
    $get_pays = "SELECT payroll_groups FROM users WHERE username = '******'USER_NAME']}' LIMIT 1";
    $run_pays = db_exec($get_pays) or errDie("Unable to get user payroll group information.");
    if (pg_numrows($run_pays) > 0) {
        $arr = pg_fetch_array($run_pays);
        #check if the current user has pems to view the current payroll group
        $perms = explode(",", $arr['payroll_groups']);
        if (isset($emp_group) and is_array($perms) and $emp_group != "0") {
            if (!in_array($emp_group, $perms)) {
                $employees = "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td colspan='5'><li class='err'>You Do Not Have Permission To View This Payroll Group.</td>\n\t\t\t\t\t</tr>";
            }
        } elseif (strlen($arr['payroll_groups']) < 1) {
            return "<li class='err'>You Have Insufficient Permissions To Access The Cubit Payroll. You May Add The Permission <a href='admin-usredit.php?username={$_SESSION['USER_NAME']}'>Here</a></li>";
        }
    }
    # Set up table & form
    $enterEmp = "\n\t\t<h3>Employees</h3>\n\t\t{$err}\n\t\t<form action='salwages/salaries-batch.php' method='POST' name='form1'>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<td colspan='6'><input type='button' onClick='move(\"salwages/irp5-data.php\");'\n\t\t\t\t\tvalue ='Year to Date/Payslips for all Employees' /></td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr>\n\t\t\t\t<th>Filter By Employee Group</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>{$emp_group_drop}</td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr>\n\t\t\t\t<th>Nr.</th>\n\t\t\t\t<th>First names</th>\n\t\t\t\t<th>Last name</th>\n\t\t\t\t<th>Salary Due</th>\n\t\t\t\t<th colspan='4'>Options</th>\n\t\t\t</tr>\n\t\t\t{$employees}\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan='6'>Total: {$i}</td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR . "\n\t\t \t<tr>\n\t\t \t\t<td colspan='5' align='right'><input type='submit' value='Select All' name='all'></td>\n\t\t \t</tr>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr>\n\t\t\t\t<td colspan='5' align='right'>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='350'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td width='100%'>&nbsp;</td>\n\t\t\t\t\t\t\t<th nowrap='t'>Salary Period:</th>\n\t\t\t\t\t\t\t<td bgcolor='" . bgcolorc(1) . "'>" . empMonList("month", $month) . "</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 colspan='3' align='right'><input type='submit' value='Process Daily Salaries &raquo;' name=d></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 colspan='3' align='right'><input type='submit' value='Process Weekly Salaries &raquo;'name=w></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 colspan='3' align='right'><input type='submit' value='Process Fortnightly Salaries &raquo;' name=b></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 colspan='3' align='right'><input type='submit' value='Process Monthly Salaries &raquo;' name=m></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</table>\n\t\t</form>" . mkQuickLinks(ql("admin-employee-add.php", "Add Employee"));
    return $enterEmp;
}
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 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;
}
Exemplo n.º 14
0
function enter_data($_POST, $_FILES = "")
{
    extract($_POST);
    if ($_FILES != "") {
        $importfile = tempnam("/tmp", "cubitimport_");
        $file = fopen($_FILES["compfile"]["tmp_name"], "r");
        if ($file == false) {
            return "<li class='err'>Cannot read file.</li>" . select_file();
        }
        db_conn('cubit');
        $Sl = "DROP TABLE import_data";
        $Ri = @db_exec_safe($Sl);
        $Sl = "\n\t\t\tCREATE TABLE import_data (\n\t\t\t\tid serial,\n\t\t\t\tdes1 varchar, des2 varchar,\n\t\t\t\tdes3 varchar, des4 varchar,\n\t\t\t\tdes5 varchar, des6 varchar,\n\t\t\t\tdes7 varchar, des8 varchar,\n\t\t\t\tdes9 varchar, des10 varchar,\n\t\t\t\tdes11 varchar, des12 varchar,\n\t\t\t\tdes13 varchar, des14 varchar,\n\t\t\t\tdes15 varchar, des16 varchar\n\t\t\t)";
        $Ri = @db_exec($Sl);
        $Sl = "DELETE FROM import_data";
        $Ri = db_exec($Sl) or errDie("Unable to clear import table");
        while (!feof($file)) {
            $data = safe(fgets($file, 4096));
            $datas = explode(",", $data);
            if (!isset($datas[1])) {
                continue;
            }
            $temp = explode('/', $datas['0']);
            $valtemp = $temp['0'];
            $datas['0'] = str_pad($valtemp, 4, "0") . "/" . $temp['1'];
            $datas[2] = sprint(abs($datas[2]));
            $datas[3] = sprint(abs($datas[3]));
            $Sl = "\n\t\t\t\tINSERT INTO import_data (\n\t\t\t\t\tdes1, des2, des3, des4\n\t\t\t\t) VALUES (\n\t\t\t\t\t'{$datas['0']}', '{$datas['1']}', '{$datas['2']}', '{$datas['3']}'\n\t\t\t\t)";
            $Rl = db_exec($Sl) or errDie("Unable to insert data.");
        }
        fclose($file);
    }
    global $_SESSION;
    $out = "\n\t\t<h3>Trial Balance Import</h3>\n\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t<input type='hidden' name='key' value='enter2'>\n\t\t\t<input type='hidden' name='login' value='1'>\n\t\t\t<input type='hidden' name='div' value='{$_SESSION['USER_DIV']}'>\n\t\t\t<input type='hidden' name='login_user' value='{$_SESSION['USER_NAME']}'>\n\t\t\t<input type='hidden' name='login_pass' value='{$_SESSION['USER_PASS']}'>\n\t\t\t<input type='hidden' name='code' value='{$_SESSION['code']}'>\n\t\t\t<input type='hidden' name='comp' value='{$_SESSION['comp']}'>\n\t\t\t<input type='hidden' name='noroute' value='1'>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<td colspan='2' class='err'># Indicates an account (Number) that already exists</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='2' class='err'>! Indicates an account (Number) that is a duplicate of\n\t\t\t\t\tanother account number in the import file.</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='2' class='err'>In order to avoid errors, ensure that account numbers\n\t\t\t\t\tare in the correct format</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='2' class='err'>Remember to select the accounts to link to in the lists provided.\n\t\t\t\t\tIf the account you wish to link with does not exist, you can specify that the account\n\t\t\t\t\tshould be created. Do this by selecting one of the following options:<br />\n\t\t\t\t\t1. New Income Account, will create a new Income account<br />\n\t\t\t\t\t2. New Balance Account, will create and new Balance Sheet account<br />\n\t\t\t\t\t3. New Expense Account, will create a new Expense account.\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr bgcolor='" . bgcolorc(1) . "'>\n\t\t\t\t<th>Period to import into:</th>\n\t\t\t\t<td>" . finMonList("prd", PRD_DB) . "</td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr>\n\t\t\t\t<th>Acc No</th>\n\t\t\t\t<th>Account Name</th>\n\t\t\t\t<th>Debit</th>\n\t\t\t\t<th>Credit</th>\n\t\t\t\t<th>Select Account to link to</th>\n\t\t\t</tr>";
    $accsql = new dbSelect("accounts", "core", array("order" => "accname"));
    $accsql->run();
    $acclist = array();
    while ($ai = $accsql->fetch_array()) {
        $acclist[$ai["accname"]] = $ai["accid"];
    }
    db_conn('cubit');
    $Sl = "SELECT * FROM import_data ORDER BY des1";
    $Ri = db_exec($Sl);
    $i = 0;
    $tot_debit = 0;
    $tot_credit = 0;
    db_conn('core');
    $newacc_selections = array();
    while ($fd = pg_fetch_array($Ri)) {
        $fid = $fd['id'];
        $bgcolor = bgcolor($i);
        $Accounts = "\n\t\t<select name='accounts[{$fid}]' id='accounts[{$fid}]'>\n\t\t<optgroup label='Create New Account'>\n\t\t\t<option value='n1'>New Income Account</option>\n\t\t\t<option value='n2'>New Expense Account</option>\n\t\t\t<option value='n3'>New Balance Account</option>\n\t\t</optgroup>\n\t\t<optgroup label='Use Existing Account'>";
        $has_sel = false;
        foreach ($acclist as $accname => $accid) {
            $sel = "";
            if (!$has_sel) {
                $m1 = isset($accounts[$fid]) && $accounts[$fid] == $accid;
                $m2 = $accname == $fd['des2'] && !isset($accounts[$fid]);
                $m3 = !empty($fd["des2"]) && stristr($accname, $fd['des2']) && !isset($accounts[$fid]) && !isset($acclist[$fd["des2"]]);
                if ($m1 || $m2 || $m3) {
                    $sel = "selected";
                    $has_sel = true;
                }
            }
            $Accounts .= "<option value='{$accid}' {$sel}>{$accname}</option>";
        }
        $Accounts .= "\n\t\t</optgroup>\n\t\t</select>";
        list($var1, $var2) = explode('/', $fd['des1']);
        if (!$has_sel) {
            if ($var1 >= MIN_INC && $var1 <= MAX_INC) {
                $newacc_selections[$fid] = "n1";
            } else {
                if ($var1 >= MIN_EXP && $var1 <= MAX_EXP) {
                    $newacc_selections[$fid] = "n2";
                } else {
                    if ($var1 >= MIN_BAL && $var1 <= MAX_BAL) {
                        $newacc_selections[$fid] = "n3";
                    }
                }
            }
        }
        db_conn('core');
        $get_check = "SELECT * FROM accounts WHERE topacc = '{$var1}' AND accnum = '{$var2}'";
        $run_check = db_exec($get_check) or errDie("Unable to get account check");
        if (pg_numrows($run_check) < 1) {
            $showerr = "";
        } else {
            $showerr = "<b class='err'>#</b>";
        }
        $check_dup = new dbSelect("import_data", "cubit", grp(m("where", "des1='{$fd['des1']}' AND id!='{$fd['id']}'")));
        $check_dup->run();
        if ($check_dup->num_rows() > 0) {
            $showerr .= "<b class='err'>!</b>";
        }
        $out .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>{$showerr} {$fd['des1']}</td>\n\t\t\t\t<td>{$fd['des2']}</td>\n\t\t\t\t<td>{$fd['des3']}</td>\n\t\t\t\t<td>{$fd['des4']}</td>\n\t\t\t\t<td>{$Accounts}</td>\n\t\t\t</tr>";
        $tot_debit += $fd['des3'];
        $tot_credit += $fd['des4'];
    }
    $bgcolor = bgcolor($i);
    $tot_debit = sprint($tot_debit);
    $tot_credit = sprint($tot_credit);
    $out .= "\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td colspan='2'>Total</td>\n\t\t\t<td align='right'>{$tot_debit}</td>\n\t\t\t<td align='right'>{$tot_credit}</td>\n\t\t</tr>";
    if ($tot_debit == $tot_credit) {
        $out .= "\n\t\t\t<tr>\n\t\t\t\t<td colspan='3' align='right'><input type='submit' value='Continue &raquo;'></td>\n\t\t\t</tr>";
    } else {
        $out .= "\n\t\t\t<li class='err'>The Total debit and credit are not the same. You cannot import a trial balance that doesnt balance.<br>\n\t\t\tPlease check the file you are trying to import, the total debits and total credits should be the same.<br>\n\t\t\tPlease fix the file and try again.</li>";
    }
    $out .= "\n\t\t</form>\n\t\t</table>\n\t\t<script>";
    foreach ($newacc_selections as $fid => $pval) {
        $out .= "l = document.getElementById('accounts[{$fid}]'); l.value='{$pval}';";
    }
    $out .= "\n\t</script>";
    return $out;
}
function enter($_POST, $err = "")
{
    extract($_POST);
    global $PRDMON, $MONPRD;
    $salyr = getYearOfEmpMon($month);
    $curyr = getActiveFinYear();
    if ($salyr > $curyr || $salyr == $curyr && $month > $PRDMON[12]) {
        header("Location: ../admin-employee-view.php?err=Cannot do transaction in future financial year. You need to close your year first before you can continue.&" . array2get($_POST));
        exit;
    }
    if (!isset($emps) || !is_array($emps)) {
        header("Location: ../admin-employee-view.php?err=Please select at least one employee.");
        exit;
    }
    // first check if all the selected employees with EFT pay types have banking information
    // and their id numbers are valid
    $emp_err = array();
    $emp_nam = array();
    foreach ($emps as $e_empnum => $e_val) {
        /* previously selected to remove this employee from process */
        if (isset($rememp[$e_empnum])) {
            unset($emps[$e_empnum]);
            continue;
        }
        $sql = "\n\t\t\tSELECT fnames, sname, paytype, bankname, bankaccno, idnum, flag, hiredate, payprd \n\t\t\tFROM employees \n\t\t\tWHERE div='" . USER_DIV . "' AND empnum='{$e_empnum}'";
        $rslt = db_exec($sql) or errDie("error checking employee payment types.");
        $e_info = pg_fetch_array($rslt);
        /* if the employee's pay period doesn't match the selected button, don't
        			include employee in checklist */
        if (isset($d) && $e_info["payprd"] != "d") {
            continue;
        } else {
            if (isset($w) && $e_info["payprd"] != "w") {
                continue;
            } else {
                if (isset($b) && $e_info["payprd"] != "f") {
                    continue;
                } else {
                    if (isset($m) && $e_info["payprd"] != "m") {
                        continue;
                    }
                }
            }
        }
        $e_empnum += 0;
        $emp_err[$e_empnum] = 0;
        $emp_nam[$e_empnum] = "{$e_info['fnames']} {$e_info['sname']}";
        if ($e_info["paytype"] == "EFT" && (empty($e_info["bankname"]) || empty($e_info["bankaccno"]))) {
            $emp_err[$e_empnum] |= 0x1;
        }
        if (!empty($e_info["idnum"])) {
            $bd_year = substr($e_info["idnum"], 0, 2);
            $bd_month = substr($e_info["idnum"], 2, 2);
            $bd_day = substr($e_info["idnum"], 4, 2);
            if (!checkdate($bd_month, $bd_day, $bd_year)) {
                $emp_err[$e_empnum] |= 0x2;
            }
        }
        if ($e_info["flag"] == "2.5EMP") {
            $emp_err[$e_empnum] |= 0x4;
            $special_error = 0x1;
        }
        if ($e_info["flag"] == "272PREVEMP") {
            $emp_err[$e_empnum] |= 0x4;
            $special_error = 0x2;
        }
        /* check hiredate after process date */
        explodeDate($e_info["hiredate"], $hd_year, $hd_month, $hd_day);
        $MONempyear = getYearOfEmpMon($month);
        if ($hd_year > $MONempyear || $hd_year == $MONempyear && $hd_month > $month) {
            $emp_err[$e_empnum] |= 0x8;
        }
    }
    // list the employee information problems
    if (array_sum($emp_err) > 0) {
        $out = "\n\t\t\t<h3>Batch Salaries</h3>\n\t\t\t\t<form method='POST' action='" . SELF . "'>";
        foreach ($_POST as $key => $value) {
            if (is_array($value)) {
                foreach ($value as $akey => $avalue) {
                    $out .= "<input type='hidden' name='{$key}" . "[{$akey}]' value='{$avalue}'>";
                }
            } else {
                $out .= "<input type='hidden' name='{$key}' value='{$value}'>";
            }
        }
        if (isset($special_error)) {
            switch ($special_error) {
                case 0x1:
                    $out .= "\n\t\t\t\t\t<li class='err'><strong>NOTICE:</strong> Due to changes in employee functionality from Cubit 2.5 to Cubit 2.6 <br>\n\t\t\t\t\t\tyou need to edit your employees' salary/deduction/allowance information</li>\n\t\t\t\t\t\t<br />";
                    break;
                case 0x2:
                    $out .= "\n\t\t\t\t\t<li class='err'><strong>NOTICE:</strong> Due to the changes from Cubit 2.71 to Cubit 2.72 you should first update your employee's\n\t\t\t\t\t\tprevious employment information in the employee edit form.</li>\n\t\t\t\t\t\t<br />";
                    break;
            }
        }
        $out .= "\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='3' class='err'>There are problems with the following employees.<br />\n\t\t\t\t\t\tEdit their information or to remove an employee from the process select\n\t\t\t\t\t\tthe checkbox next to employee's name.<br /><br />\n\t\t\t\t\t\tClick the 'Done' button when ready to proceed.</td>\n\t\t\t\t</tr>";
        $out .= "\n\t\t\t<tr>\n\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t<th>Name</th>\n\t\t\t\t<th>Message</th>\n\t\t\t</tr>";
        $i = 0;
        foreach ($emp_err as $e_empnum => $err_val) {
            $out .= "\n\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t<td><input type='checkbox' name='rememp[{$e_empnum}]' /></td>\n\t\t\t\t\t<th>{$emp_nam[$e_empnum]}</td>";
            if ($err_val & 0x4) {
                $specerr_msg = "(See above notice for this employee)";
            } else {
                $specerr_msg = "";
            }
            if ($err_val & 0x1 && $err_val & 0x2) {
                $out .= "<td class='err'>Banking info and ID number {$specerr_msg}</td>";
            } else {
                if ($err_val & 0x1) {
                    $out .= "<td class='err'>Banking info {$specerr_msg}</td>";
                } else {
                    if ($err_val & 0x2) {
                        $out .= "<td class='err'>ID number {$specerr_msg}</td>";
                    } else {
                        if ($err_val & 0x8) {
                            $out .= "<td class='err'>Employee was not employed in the period\n\t\t\t\t\trequested {$specerr_msg}</td>";
                        } else {
                            $out .= "<td>Employee Info Correct {$specerr_msg}</td>";
                        }
                    }
                }
            }
            if ($err_val && !($err_val == 0x8)) {
                $out .= "<td class='err'><a target='_blank' href='../admin-employee-edit.php?empnum={$e_empnum}'>Edit Employee</a></td>";
            }
            $out .= "</tr>";
        }
        $out .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='3' align='right'><input type='submit' value='Done' /></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</form>";
        return $out;
    }
    if (!isset($date_day)) {
        $date_day = date("d");
        $date_month = date("m");
        $date_year = date("Y");
    }
    if (!isset($date_month)) {
        $date_month = date("m");
    }
    /* make week/day selections */
    if (isset($w)) {
        $weekends = "";
        $weeks = "<select name='week'>";
        $stdate = mktime(0, 0, 0, $month, 1, DATE_YEAR);
        $endate = mktime(0, 0, 0, $month, DATE_DAYS, DATE_YEAR);
        $i = 1;
        while ($stdate <= $endate) {
            if (date("w", $stdate) == 5) {
                $weekends .= "<input type='hidden' name='weekends[{$i}]' value='" . date("j", $stdate) . "' />";
                if (isset($week) && $week == $i) {
                    $sel = "selected";
                } else {
                    $sel = "";
                }
                $weeks .= "<option {$sel} value='{$i}'>Week {$i} (" . date("j M", $stdate) . ")</option>";
                ++$i;
            }
            /* next day */
            $stdate += 24 * 60 * 60;
        }
        /*<option value='1'>Week 1</option>
        		<option value='2'>Week 2</option>
        		<option value='3'>Week 3</option>
        		<option value='4'>Week 4</option>
        		<option value='5'>Week 5</option>*/
        $weeks .= "</select>";
        $weeks = "\n\t\t\t<th>Week</th>\n\t\t\t<td>{$weekends}{$weeks}</td>\n\t\t\t<td class='err'>Period salaries are processed for</td>";
    } else {
        if (isset($b)) {
            $weekends = "";
            $weeks = "<select name='week'>";
            $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, getYearOfEmpMon(3));
            }
            // 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, $month + 1, 0, getYearOfEmpMon($month));
            /* count weeks from start of tax year */
            $i = 1;
            $c = 0;
            while ($stdate <= $endate) {
                if (date("m", $stdate) == $month && date("Y", $stdate) == getYearOfEmpMon($month)) {
                    $c += 2;
                    $cd = $c - 1 . "-{$c}";
                    $weekends .= "<input type='hidden' name='weekends[{$i}]' value='" . date("j", $stdate) . "' />";
                    if (isset($week) && $week == $i) {
                        $sel = "selected";
                    } else {
                        $sel = "";
                    }
                    $weeks .= "<option {$sel} value='{$i}'>Week {$cd} (" . date("j M", $stdate) . ")</option>";
                    ++$i;
                }
                /* next day */
                $stdate += 24 * 60 * 60 * 14;
            }
            /*<option value='1'>Week 1</option>
            		<option value='2'>Week 2</option>
            		<option value='3'>Week 3</option>
            		<option value='4'>Week 4</option>
            		<option value='5'>Week 5</option>*/
            $weeks .= "\n\t\t</select>";
            $weeks = "\n\t\t\t<th>Week</th>\n\t\t\t<td>{$weekends}{$weeks}</td>\n\t\t\t<td class='err'>Period salaries are processed for</td>";
        } else {
            if (isset($d)) {
                $x = date("t", mktime(0, 0, 0, $month, 1, getYearOfFinMon($month)));
                $MONstr = getMonthNameS($month);
                if (!isset($proc_day)) {
                    $proc_day = 0;
                }
                if (!isset($pday)) {
                    $pday = $proc_day;
                }
                $days = "<select name='pday'>";
                for ($i = 1; $i <= $x; ++$i) {
                    if ($i == $pday) {
                        $sel = "selected='t'";
                    } else {
                        $sel = "";
                    }
                    $days .= "<option {$sel} value='{$i}'>{$i} {$MONstr}</option>";
                }
                $days .= "</select>";
                $weeks = "\n\t\t\t<th>Day for Payment</th>\n\t\t\t<td>{$days}</td>\n\t\t\t<td class='err'>Period salaries are processed for</td>";
            } else {
                $weeks = "<input type='hidden' name='week' value='0'>";
            }
        }
    }
    /* payprd message */
    if (isset($d)) {
        $cpayprd = "d";
    } else {
        if (isset($w)) {
            $cpayprd = "w";
        } else {
            if (isset($b)) {
                $cpayprd = "f";
            } else {
                if (isset($m)) {
                    $cpayprd = "m";
                } else {
                    invalid_use("Invalid payment type selected.");
                }
            }
        }
    }
    $dispmsg = getCSetting("EMP_SALMSG");
    if (strpos($dispmsg, $cpayprd) === false) {
        $payprd_msg_ch = "";
    } else {
        $payprd_msg_ch = "checked='t'";
    }
    $payprd_msg = get_payprdmsg($cpayprd);
    /* print payslip on/off */
    $printslip = getCSetting("EMP_PRINTSLIP");
    $out = "\n\t\t<script>\n\t\t\tfunction update_salmsg(obj) {\n\t\t\t\tajaxRequest('payprdmsg.php', 'payprd_msg', AJAX_SET,'payprd={$cpayprd}&newval=' + obj.checked);\n\t\t\t}\n\t\t</script>\n\t\t<form action='" . SELF . "' method='POST' id='salfrm'>\n\t\t\t<input type='hidden' name='key' value='confirm' />\n\t\t\t<input type='hidden' name='month' value='{$month}' />\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<td colspan='9'>\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><h3>Processing Batch Salaries</h3></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>\n\t\t\t\t\t\t\t\t<li class='err'>NOTE that Cubit is configured to compute employees' tax\n\t\t\t\t\t\t\t\t\tduring the employees' tax year that<br />\n\t\t\t\t\t\t\t\t\tstarts in March and ends in February,\n\t\t\t\t\t\t\t\t\tirrespective of the employer's financial year end.</li>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td id='payprd_msg' colspan='2'>{$payprd_msg}</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 align='right'>Salary Help Message: <input type='checkbox' onclick='update_salmsg(this);' name='payprd_dispmsg' {$payprd_msg_ch} /></th>\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='6' valign='top' rowspan='2'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t{$weeks}\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<th>Processing Date:</th>\n\t\t\t\t\t\t<td nowrap>" . mkDateSelect("date", $date_year, $date_month, $date_day) . "</td>\n\t\t\t\t\t\t<td colspan='2' class='err'>Date used by Cubit for the ledgers.</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<th nowrap='t'>Print Salary Advice</th\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t<select name='printslip'>\n\t\t\t\t\t\t\t<option value='y' " . ($printslip != "n" ? "selected='t'" : "") . ">Yes</option>\n\t\t\t\t\t\t\t<option value='n' " . ($printslip == "n" ? "selected='t'" : "") . ">No</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t\t<td colspan='3' align='right' nowrap='t'>\n\t\t\t\t\t<input type='submit' name='btn_back' value='&laquo; Correction'>\n\t\t\t\t\t<input type='submit' value='Confirm &raquo;'>\n\t\t\t\t</td>\n\t\t\t\t<td colspan='10' align='right' nowrap='t'>\n\t\t\t\t\t<input type='submit' name='btn_back' value='&laquo; Correction'>\n\t\t\t\t\t<input type='submit' value='Confirm &raquo;'>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<!--<td align='center' colspan='3' 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.</td>-->\n\t\t\t\t<td colspan='3'>&nbsp;</td>\n\t\t\t\t<td colspan='3' class='err'><strong>LOAN NOTE:</strong><br />In the event that the employee repays more than the installment -\n\t\t\t\t\tenter that amount, plus interest that is remitted, in the \"Loan Repayment\" field below.\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='10'>{$err}</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>";
    if (!isset($d)) {
        $out .= "\n\t\t\t<th>Total Work Hours</th>\n\t\t\t<th>Actual Hours Worked</th>";
    }
    $out .= "\n\t\t\t<th>Normal Overtime</th>\n\t\t\t<th>Public Holiday Overtime</th>\n\t\t\t<th>Annual Bonus</th>\n\t\t\t<!--\n\t\t\t<th>Special Bonus/Additional Salary</th>\n\t\t\t<th>Annual/Once Off Bonus</th>\n\t\t\t-->\n\t\t\t<th>Commission</th>\n\t\t\t<th>Travel Allowance</th>\n\t\t\t<th>Loan Repayment</th>\n\t\t\t<th>Pension: Company Contribution</th>\n\t\t\t<th>Pension: Employee Deduction</th>\n\t\t\t<th>Provident: Company Contribution</th>\n\t\t\t<th>Provident: Employee Deduction</th>\n\t\t\t<!--\n\t\t\t<th>UIF: Company Contribution</th>\n\t\t\t<th>UIF: Employee Deduction</th>\n\t\t\t//-->\n\t\t\t<th>Retirement Annuity: Company Contribution</th>\n\t\t\t<th>Retirement Annuity: Employee Deduction</th>\n\t\t\t<th>Medical Contribution: Company</th>\n\t\t\t<th>Medical Contribution: Employee</th>\n\t\t\t<!--\n\t\t\t<th>Other: Company Contribution</th>\n\t\t\t<th>Other: Employee Deduction</th>\n\t\t\t//-->\n\t\t\t<th>Method of Payment</th>\n\t \t\t<th>Override PAYE</th>\n\t \t\t<th>Fringe Ben.</th>\n\t \t\t<th>Allowances</th>\n\t \t\t<th>Subsistence</th>\n\t \t\t<th>Deductions</th>\n\t \t\t<th>Reimbursements</th>\n\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.");
    $jsbonus_clear = array();
    $uif_calc = array();
    $jsbonus = array(1 => array(), 2 => array(), 3 => array(), 4 => array(), 5 => array(), 6 => array(), 7 => array(), 8 => array(), 9 => array(), 10 => array(), 11 => array(), 12 => array());
    $js_workhours_fields = "";
    $subs_int = false;
    // whether there are internation subsistence allowances
    $counter = 0;
    while ($data = pg_fetch_array($Ri)) {
        if ($counter == 8) {
            #show headings...
            $out .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Nr.</th>\n\t\t\t\t\t<th>Name</th>\n\t\t\t\t\t<th>Remuneration</th>";
            if (!isset($d)) {
                $out .= "\n\t\t\t\t\t<th>Total Work Hours</th>\n\t\t\t\t\t<th>Actual Hours Worked</th>";
            }
            $out .= "\n\t\t\t\t\t<th>Normal Overtime</th>\n\t\t\t\t\t<th>Public Holiday Overtime</th>\n\t\t\t\t\t<th>Annual Bonus</th>\n\t\t\t\t\t<!--\n\t\t\t\t\t<th>Special Bonus/Additional Salary</th>\n\t\t\t\t\t<th>Annual/Once Off Bonus</th>\n\t\t\t\t\t-->\n\t\t\t\t\t<th>Commission</th>\n\t\t\t\t\t<th>Travel Allowance</th>\n\t\t\t\t\t<th>Loan Repayment</th>\n\t\t\t\t\t<th>Pension: Company Contribution</th>\n\t\t\t\t\t<th>Pension: Employee Deduction</th>\n\t\t\t\t\t<th>Provident: Company Contribution</th>\n\t\t\t\t\t<th>Provident: Employee Deduction</th>\n\t\t\t\t\t<!--\n\t\t\t\t\t<th>UIF: Company Contribution</th>\n\t\t\t\t\t<th>UIF: Employee Deduction</th>\n\t\t\t\t\t//-->\n\t\t\t\t\t<th>Retirement Annuity: Company Contribution</th>\n\t\t\t\t\t<th>Retirement Annuity: Employee Deduction</th>\n\t\t\t\t\t<th>Medical Contribution: Company</th>\n\t\t\t\t\t<th>Medical Contribution: Employee</th>\n\t\t\t\t\t<!--\n\t\t\t\t\t<th>Other: Company Contribution</th>\n\t\t\t\t\t<th>Other: Employee Deduction</th>\n\t\t\t\t\t//-->\n\t\t\t\t\t<th>Method of Payment</th>\n\t\t\t \t\t<th>Override PAYE</th>\n\t\t\t \t\t<th>Fringe Ben.</th>\n\t\t\t \t\t<th>Allowances</th>\n\t\t\t \t\t<th>Subsistence</th>\n\t\t\t \t\t<th>Deductions</th>\n\t\t\t \t\t<th>Reimbursements</th>\n\t\t\t\t</tr>";
            $counter = 0;
        }
        $counter++;
        if (!isset($emps[$data['empnum']])) {
            continue;
        }
        $bgcolor = bgcolorc($i);
        $send = "";
        $grossal = $data["basic_sal"] + $data["commission"] + $data["all_travel"] / 2 + $data["bonus"];
        if (isset($d)) {
            $send = "<input type='hidden' name='d' value=''>";
            if ($data['payprd'] != "d") {
                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($b)) {
            $send = "<input type='hidden' name='b' value=''>";
            if ($data['payprd'] != "f") {
                continue;
            }
        } else {
            continue;
        }
        /* set employee id */
        $id = $data['empnum'];
        /* calculate basic salary divisors and multipliers
         * used for calculating deductions/allowances/etc. when the
         * salary type and payment period differs in length
         */
        switch ($data["saltyp"]) {
            case "h":
                $divisor = 1;
                switch ($data["payprd"]) {
                    case "d":
                        $multiplier = $data["hpweek"] / 5;
                        break;
                    case "w":
                        $multiplier = $data["hpweek"];
                        break;
                    case "f":
                        $multiplier = $data["hpweek"] * 2;
                        break;
                    case "m":
                        $multiplier = $data["hpweek"] * 52 / 12;
                        break;
                }
                break;
            case "m":
                $divisor = 1;
                switch ($data["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 ($data["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 ($data["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;
        }
        $bon_month = round($data["sal_bonus_month"]);
        $jsbonus_clear[] = "document.getElementById('salfrm').elements['bonus[{$id}]'].value='0.00';";
        $jsbonus[$bon_month][] = "document.getElementById('salfrm').elements['bonus[{$id}]'].value = '{$data['sal_bonus']}';";
        /*		$uif_calc[] = "
        			tmp_calc = parseFloat(document.getElementById('salfrm').elements['basic_sal[$id]'].value)
        				+ parseFloat(document.getElementById('salfrm').elements['annual[$id]'].value)
        				+ parseFloat(document.getElementById('salfrm').elements['all_travel[$id]'].value);
        			tmp_calc_emp = tmp_calc * $data[emp_uif] / 100;
        			tmp_calc_comp = tmp_calc * $data[comp_uif] / 100;
        			tmp_calc_emp = tmp_calc_emp.toFixed(2);
        			tmp_calc_comp = tmp_calc_comp.toFixed(2);
        			document.getElementById('salfrm').elements['emp_uif[$id]'].value = tmp_calc_emp;
        			document.getElementById('salfrm').elements['comp_uif[$id]'].value = tmp_calc_comp;";*/
        $db = array("comp_pension" => $data["comp_pension"], "emp_pension" => $data["emp_pension"], "comp_provident" => $data["comp_provident"], "emp_provident" => $data["emp_provident"], "comp_uif" => $data["comp_uif"], "emp_uif" => $data["emp_uif"], "comp_other" => $data["comp_other"], "emp_other" => $data["emp_other"]);
        if (isset($basic_sal[$id])) {
            $data['basic_sal'] = $basic_sal[$id];
            $data['bonus'] = $bonus[$id];
            $data['commission'] = $commission[$id];
            $date['abonus'] = $abonus[$id];
            $data['all_travel'] = $all_travel[$id];
            $data['loaninstall'] = $loaninstall[$id];
            $data['comp_pension'] = $comp_pension[$id];
            $data['emp_pension'] = $emp_pension[$id];
            $data['comp_provident'] = $comp_provident[$id];
            $data['emp_provident'] = $emp_provident[$id];
            //$data['comp_uif']=$comp_uif[$id];
            //$data['emp_uif']=$emp_uif[$id];
            $data['comp_ret'] = $comp_ret[$id];
            $data['emp_ret'] = $emp_ret[$id];
            $data['comp_medical'] = $comp_medical[$id];
            $data['emp_medical'] = $emp_medical[$id];
            $data['comp_other'] = $comp_other[$id];
            $data['emp_other'] = $emp_other[$id];
        } else {
            if ($data["sal_bonus_month"] == $month) {
                $annual[$id] = sprint($data["sal_bonus"]);
            } else {
                $annual[$id] = "0.00";
            }
            $novert[$id] = "";
            $hovert[$id] = "";
            $mpaye_amount[$id] = "";
            if ($data["payprd"] == "w" || $data["payprd"] == "f") {
                $tmpmon = date("j");
                $daycount = date("t");
                $dayweek = date("D");
                if (strtolower($dayweek) == $data["payprd_day"] && $date_day + 7 > $daycount) {
                    $process_comp_deductions = true;
                } else {
                    $process_comp_deductions = false;
                }
            } else {
                $process_comp_deductions = true;
            }
            //$data["emp_uif"] = sprint(($data["basic_sal"] + $data["all_travel"]) * ($data["emp_uif"]/100));
            $effective_basicsal = $data["basic_sal"] * $multiplier;
            /* we only changing basic sal for non hourly employees,
            			because for hourly employees we change the hours ($mutli)  */
            if ($data["saltyp"] != "h") {
                $data["basic_sal"] *= $multiplier;
            }
            if ($data["loaninstall"] > $data["loanamt"]) {
                $data["loaninstall"] = $data["loanamt"];
            }
            $data["comp_pension"] = sprint($effective_basicsal * ($data["comp_pension"] / 100));
            $data["comp_provident"] = sprint($effective_basicsal * ($data["comp_provident"] / 100));
            $data["emp_pension"] = sprint($effective_basicsal * ($data["emp_pension"] / 100));
            $data["emp_provident"] = sprint($effective_basicsal * ($data["emp_provident"] / 100));
            $data["emp_medical"] = sprint($data["emp_medical"] / $divisor);
            $data["comp_medical"] = sprint($data["comp_medical"] / $divisor);
            $data["emp_ret"] = sprint($data["emp_ret"] / $divisor);
            $data["comp_ret"] = sprint($data["comp_ret"] / $divisor);
            $data["loaninstall"] = sprint($data["loaninstall"] / $divisor);
            $data["all_travel"] = sprint($data["all_travel"] / $divisor);
            explodeDate($data["loandate"], $loana_year, $loana_month, $loana_day);
            if ($loana_year > $salyr || $loana_year == $salyr && $loana_month > $month) {
                $data["loanint"] = 0;
                $data["loaninstall"] = 0;
            }
        }
        if ($data['paytype'] == "Cash") {
            $paydetails = "Cash\n\t\t\t<input type='hidden' name='accid[{$id}]' value='0'>";
        } elseif ($data['paytype'] == "Ledger Account") {
            db_conn('core');
            $Sl = "SELECT accid,accname FROM accounts ORDER BY accname";
            $Rl = db_exec($Sl);
            $accounts = "<select name='account[{$id}]'>";
            while ($ad = pg_fetch_array($Rl)) {
                if (isset($account[$id]) && $account[$id] == $ad['accid']) {
                    $sel = "selected";
                } else {
                    $sel = "";
                }
                $accounts .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>";
            }
            $accounts .= "</select>";
            $paydetails = "{$accounts}\n\t\t\t\t<input type='hidden' name='accid[{$id}]' value='0'>";
        } else {
            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.\n\t\t\t\t<p><input type='button' onClick='JavaScript:history.back();' value='&laquo; Correct Selection'>";
            }
            $banks = "<select name='accid[{$id}]'>";
            while ($acc = pg_fetch_array($Ry)) {
                $banks .= "<option value='{$acc['bankid']}'>{$acc['accname']} ({$acc['acctype']})</option>";
            }
            $banks .= "</select>";
            $paydetails = "{$banks}";
        }
        # fringe benefits
        $i = 0;
        db_conn("cubit");
        $sql = "SELECT * FROM fringebens WHERE div = '" . USER_DIV . "' ORDER BY fringeben";
        $rslt = db_exec($sql) or errDie("Unable to select fringe benefits from database.");
        if (pg_num_rows($rslt) < 1) {
            $fringes = "<table " . TMPL_tblDflts . ">";
            $fringes .= "<tr><td class='" . bg_class() . "' colspan='2' align='center'>None found in database.</td></tr>";
            $fringes .= "</table>";
        } else {
            $fringes = "<table " . TMPL_tblDflts . ">";
            while ($myFringe = pg_fetch_array($rslt)) {
                # check if employee has allowance
                $sql = "SELECT * FROM empfringe WHERE fringeid='{$myFringe['id']}' AND empnum='{$data['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);
                    if (substr($empFringe["type"], 0, 4) == "Perc") {
                        $empFringe["amount"] = sprint($data["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\t<input type='hidden' name='fringeaccs[{$id}][]' value='{$tmp_fringeaccs}'>\n\t\t\t\t\t<input type='hidden' name='fringeid[{$id}][]' value='{$myFringe['id']}'>\n\t\t\t\t\t<input type='hidden' name='fringename[{$id}][]' value='{$myFringe['fringeben']}'>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>{$myFringe['fringeben']}</td>\n\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t<td><input type='text' size='10' name='fringebens[{$id}][]' value='{$tmp_fringebens}'></td>\n\t\t\t\t\t</tr>";
                $i++;
            }
            $fringes .= "</table>";
        }
        # get allowances
        $i = 0;
        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 = "<table " . TMPL_tblDflts . ">";
            $allowances .= "<tr><td>None</td></tr>";
            $allowances .= "</table>";
        } else {
            $allowances = "<table " . TMPL_tblDflts . ">";
            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) {
                    $dataAllow = pg_fetch_array($empAllowRslt);
                    $dataAllow['amount'] = sprint($dataAllow['amount'] / $divisor);
                    $grossal += $dataAllow["amount"];
                    $tmp_allowaccs = $dataAllow["accid"];
                    $tmp_allowances = $dataAllow["amount"];
                } else {
                    $tmp_allowaccs = $myAllow["accid"];
                    $tmp_allowances = "0.00";
                }
                $allowances .= "\n\t\t\t\t\t<input type='hidden' name='allowid[{$id}][]' value='{$myAllow['id']}'>\n\t\t\t\t\t<input type='hidden' name='allowname[{$id}][]' value='{$myAllow['allowance']}'>\n\t\t\t\t\t<input type='hidden' name='allowtax[{$id}][]' value='{$myAllow['add']}'>\n\t\t\t\t\t<input type='hidden' name='allowaccs[{$id}][]' value='{$tmp_allowaccs}'>\n\t\t\t\t\t<tr><td>{$myAllow['allowance']}</td>\n\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t<td><input type='text' size='10' name='allowances[{$id}][]' value='{$tmp_allowances}'></td>\n\t\t\t\t\t</tr>";
                $i++;
            }
            $allowances .= "</table>";
        }
        $subsistence = "";
        $subslst = new dbSelect("subsistence", "cubit", array("where" => "div='" . USER_DIV . "'", "order" => "name"));
        $subslst->run();
        if ($subslst->num_rows() > 0) {
            $i = 0;
            $subsistence .= "\n\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Name</th>\n\t\t\t\t\t\t<th>Amount</th>\n\t\t\t\t\t\t<th>Days</th>\n\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='{$data['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\t<input type='hidden' name='subsname[{$id}][{$sid}]' value='{$subs['name']}'>\n\t\t\t\t\t<input type='hidden' name='subsacc[{$id}][{$sid}]' value='{$si['accid']}'>\n\t\t\t\t\t<input type='hidden' name='subsrep[{$id}][{$sid}]' value='{$subs['in_republic']}'>\n\t\t\t\t\t<input type='hidden' name='subsmeal[{$id}][{$sid}]' value='{$subs['meals']}'>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td>{$subs['name']}</td>\n\t\t\t\t\t\t<td nowrap>" . CUR . " <input type='text' size='5' name='subsamt[{$id}][{$sid}]' value='{$si['amount']}'></td>\n\t\t\t\t\t\t<td><input type='text' size='2' name='subsdays[{$id}][{$sid}]' value='{$si['days']}'></td>\n\t\t\t\t\t</tr>";
            }
            $subsistence .= "\n\t\t\t\t</table>";
        }
        # Deductions
        $i = 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 = "<table " . TMPL_tblDflts . ">";
            $deductions .= "<tr><td>None</td></tr>";
            $deductions .= "</table>";
        } else {
            $deductions = "<table " . TMPL_tblDflts . ">";
            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) {
                    $dataDeduct = pg_fetch_array($empDeductRslt);
                    if ($dataDeduct["grosdeduct"] == "y") {
                        $deductions_msg = "(Before PAYE)";
                        $sal_calcfrom = $grossal;
                    } else {
                        $deductions_msg = "";
                        $sal_calcfrom = $data["basic_sal"];
                    }
                    if ($dataDeduct['type'] == "Amount") {
                        $dataDeduct['amount'] = sprint($dataDeduct['amount'] / $divisor);
                    } else {
                        $dataDeduct['amount'] = sprint($sal_calcfrom * $dataDeduct['amount'] / 100 / $divisor);
                    }
                    // calculate employer contribution to deduction
                    if ($dataDeduct["employer_type"] == "Amount") {
                        $dataDeduct["employer_amount"] = sprint($dataDeduct["employer_amount"] / $divisor);
                    } else {
                        $dataDeduct["employer_amount"] = sprint($dataDeduct["amount"] * $dataDeduct["employer_amount"] / 100 / $divisor);
                    }
                    $tmp_deductions = $dataDeduct["amount"];
                    $tmp_dedaccs = $dataDeduct["accid"];
                    $tmp_emp_ded = $dataDeduct["employer_amount"];
                } else {
                    $tmp_deductions = "0.00";
                    $tmp_emp_ded = "0.00";
                    $tmp_dedaccs = $myDeduct["accid"] != 0 ? $myDeduct["accid"] : $myDeduct["expaccid"];
                    $deductions_msg = "";
                }
                # check if we should be using deductions
                if ($data['emp_usescales'] == "1" and $myDeduct['type'] == "Percentage") {
                    # check if this deduction has scales
                    $get_scales = "SELECT * FROM salded_scales WHERE saldedid = '{$myDeduct['id']}' LIMIT 1";
                    $run_scales = db_exec($get_scales) or errDie("Unable to get deduction scale information.");
                    if (pg_numrows($run_scales) > 0) {
                        # scales exist
                        $get_perc = "\n\t\t\t\t\t\t\tSELECT * FROM salded_scales \n\t\t\t\t\t\t\tWHERE scale_from <= '{$data['basic_sal']}' AND scale_to >= '{$data['basic_sal']}' AND saldedid = '{$myDeduct['id']}' \n\t\t\t\t\t\t\tLIMIT 1";
                        $run_perc = db_exec($get_perc) or errDie("Unable to get deduction scale information.");
                        if (pg_numrows($run_perc) > 0) {
                            # found a matching scale for this scaled duduction for a customer using scales ....
                            $scale_arr = pg_fetch_array($run_perc);
                            $tmp_deductions = sprint($data['basic_sal'] / 100 * $scale_arr['scale_amount']);
                        }
                    }
                }
                $deductions .= "\n\t\t\t\t\t<input type='hidden' size='10' name='deductid[{$id}][]' value='{$myDeduct['id']}'>\n\t\t\t\t\t<input type='hidden' size='30' name='deductname[{$id}][]' value='{$myDeduct['deduction']}'>\n\t\t\t\t\t<input type='hidden' size='10' name='deducttax[{$id}][]' value='{$myDeduct['add']}'>\n\t\t\t\t\t<input type='hidden' name='dedaccs[{$id}][]' value='{$tmp_dedaccs}'>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>{$myDeduct['deduction']} {$deductions_msg}</td>\n\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t<td><input type='text' size='10' name='deductions[{$id}][]' value='{$tmp_deductions}'></td>\n\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t<td><input type='hidden' size='10' name='employer_deductions[{$id}][]' value='{$tmp_emp_ded}'></td>\n\t\t\t\t\t</tr>";
                $i++;
            }
            $deductions .= "</table>";
        }
        $rt = "";
        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 . ">";
            while ($td = pg_fetch_array($Rl)) {
                if (!isset($rbsa[$id][$td['id']])) {
                    $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><input type='text' size='10' name='rbsa[{$id}][{$td['id']}]' value='" . $rbsa[$id][$td['id']] . "' class='right'></td>\n\t\t\t\t\t</tr>";
                $i++;
            }
            $rt .= "</table>";
        } else {
            $rt .= "None";
        }
        $salarr = array("m" => "Per Month", "w" => "Per Week", "f" => "Fortnightly", "h" => "Per Hour");
        $salnarr = array("d" => "Day(s)", "h" => "Hour(s)");
        $saltype = $salarr[$data['saltyp']];
        if (!isset($multi[$id])) {
            $multi[$id] = $data["saltyp"] == "h" ? $multiplier : 1;
        }
        $multi[$id] = round($multi[$id]);
        if ($data['saltyp'] == 'd' || $data['saltyp'] == 'h') {
            $salntype = $salnarr[$data['saltyp']];
            $multi_show = "x <input type='text' size='3' name='multi[{$id}]' value='{$multi[$id]}'> {$salntype}";
        } else {
            $multi_show = "<input type='hidden' name='multi[{$id}]' value='{$multi[$id]}'>";
            $saltype = "";
        }
        if (isset($mpaye[$id])) {
            $ch = "checked=yes";
        } else {
            $ch = "";
        }
        if ($data["payprd"] == "m" || $data["payprd"] == "d") {
            // count the amount of weekdays in this month
            $workdays = 0;
            for ($i = 1; $i <= date("t", mktime(0, 0, 0, $month, 1, date("Y"))); ++$i) {
                $wd = date("w", mktime(0, 0, 0, $month, $i, date("Y")));
                if ($wd != 0 && $wd != 6) {
                    ++$workdays;
                }
            }
            // hours per day calculation
            $hpd = $data["hpweek"] / 5;
            if (!isset($wh_total[$id])) {
                $wh_total[$id] = $workdays * $hpd;
            }
            if (!isset($wh_actual[$id])) {
                $wh_actual[$id] = $wh_total[$id];
            }
        }
        if ($data["payprd"] == "w") {
            if (!isset($wh_total[$id])) {
                $wh_total[$id] = $data["hpweek"];
            }
            if (!isset($wh_actual[$id])) {
                $wh_actual[$id] = $wh_total[$id];
            }
        }
        if ($data["payprd"] == "f") {
            if (!isset($wh_total[$id])) {
                $wh_total[$id] = $data["hpweek"] * 2;
            }
            if (!isset($wh_actual[$id])) {
                $wh_actual[$id] = $wh_total[$id];
            }
        }
        $js_workhours_fields .= "\n\t\t\t<script>\n\t\t\t\tf_sal[{$id}]\t\t= sf.elements['basic_sal[{$id}]'];\n\t\t\t\tf_salbonus[{$id}] = sf.elements['sal_bonus[{$id}]'];\n\t\t\t\tf_whtot[{$id}]\t= sf.elements['wh_total[{$id}]'];\n\t\t\t\tf_whact[{$id}]\t= sf.elements['wh_actual[{$id}]'];\n\t\t\t\tf_cpension[{$id}]\t= sf.elements['comp_pension[{$id}]'];\n\t\t\t\tf_epension[{$id}] = sf.elements['emp_pension[{$id}]'];\n\t\t\t\tf_cprov[{$id}]\t= sf.elements['comp_provident[{$id}]'];\n\t\t\t\tf_eprov[{$id}]\t= sf.elements['emp_provident[{$id}]'];\n\t\t\t\t//f_cuif[{$id}]\t\t= sf.elements['comp_uif[{$id}]'];\n\t\t\t\t//f_euif[{$id}]\t\t= sf.elements['emp_uif[{$id}]'];\n\t\t\t\tf_cother[{$id}]\t= sf.elements['comp_other[{$id}]'];\n\t\t\t\tf_eother[{$id}]\t= sf.elements['emp_other[{$id}]'];\n\n\t\t\t\tdb_cpension[{$id}]\t= " . $db["comp_pension"] . ";\n\t\t\t\tdb_epension[{$id}]\t= " . $db["emp_pension"] . ";\n\t\t\t\tdb_cprov[{$id}]\t\t= " . $db["comp_provident"] . ";\n\t\t\t\tdb_eprov[{$id}]\t\t= " . $db["emp_provident"] . ";\n\t\t\t\t//db_cuif[{$id}]\t\t= " . $db["comp_uif"] . ";\n\t\t\t\t//db_euif[{$id}]\t\t= " . $db["emp_uif"] . ";\n\t\t\t\tdb_cother[{$id}]\t= " . $db["comp_other"] . ";\n\t\t\t\tdb_eother[{$id}]\t= " . $db["emp_other"] . ";\n\n\t\t\t\tval_sal[{$id}] = -1;\n\t\t\t</script>";
        vsprint($data["basic_sal"]);
        $out .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<input type='hidden' name='emps[{$id}]' value='{$id}'>\n\t\t\t\t<input type='hidden' name='saltyp[{$id}]' value='{$data['saltyp']}'>\n\t\t\t\t<input type='hidden' name='process_comp_deductions[{$id}]' value='{$process_comp_deductions}'>\n\t\t\t\t<input type='hidden' name='divisor[{$id}]' value='{$divisor}'>\n\t\t\t\t<td nowrap>{$data['enum']}</td>\n\t\t\t\t<td>{$data['sname']}, {$data['fnames']}</td>\n\t\t\t\t<td nowrap><input type='text' size='8' name='basic_sal[{$id}]' value='{$data['basic_sal']}' class='right' onChange='changedfield({$id});'>{$saltype} {$multi_show}</td>";
        if (isset($d)) {
            $out .= "\n\t\t\t\t<input type='hidden' name='wh_total' value='1'>\n\t\t\t\t<input type='hidden' name='wh_actual' value='1'>";
        } else {
            $out .= "\n\t\t\t\t<td nowrap><input type='text' size='10' name='wh_total[{$id}]' value='{$wh_total[$id]}' class='right' onChange='workhours({$id});'></td>\n\t\t\t\t<td nowrap><input type='text' size='10' name='wh_actual[{$id}]' value='{$wh_actual[$id]}' class='right' onChange='workhours({$id});'></td>";
        }
        if (!isset($abonus[$id])) {
            $abonus = 0;
        }
        $out .= "\n\t\t\t\t<td nowrap><input type='text' size='5' name='novert[{$id}]' value='{$novert[$id]}' class='right'> Hrs</td>\n\t\t\t\t<td nowrap><input type='text' size='5' name='hovert[{$id}]' value='{$hovert[$id]}' class='right'> Hrs</td>\n\t\t\t\t<td nowrap><input type='hidden' size='8' name='bonus[{$id}]' value='0' class='right'><input type='text' size='8' name='abonus[{$id}]' value='{$abonus[$id]}' class='right'></td>\n\t\t\t\t<input type='hidden' name='annual[{$id}]' value='0' />\n\t\t\t\t<!--<td nowrap><input type='text' size='8' name='annual[{$id}]' value='{$annual[$id]}' class='right'></td>-->\n\t\t\t\t<td nowrap><input type='text' size='8' name='commission[{$id}]' value='{$data['commission']}' class='right'></td>\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='all_travel[{$id}]' value='{$data['all_travel']}' class='right'></td>\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='loaninstall[{$id}]' value='{$data['loaninstall']}' class='right'></td>\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='comp_pension[{$id}]' value='{$data['comp_pension']}' class='right'></td>\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='emp_pension[{$id}]' value='{$data['emp_pension']}' class='right'></td>\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='comp_provident[{$id}]' value='{$data['comp_provident']}' class='right'></td>\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='emp_provident[{$id}]' value='{$data['emp_provident']}' class='right'></td>\n\t\t\t\t<!--\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='comp_uif[{$id}]' value='{$data['comp_uif']}' class='right'></td>\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='emp_uif[{$id}]' value='{$data['emp_uif']}' class='right'></td>\n\t\t\t\t//-->\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='comp_ret[{$id}]' value='{$data['comp_ret']}' class='right'></td>\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='emp_ret[{$id}]' value='{$data['emp_ret']}' class='right'></td>\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='comp_medical[{$id}]' value='{$data['comp_medical']}' class='right'></td>\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='emp_medical[{$id}]' value='{$data['emp_medical']}' class='right'></td>\n\t\t\t\t<input type=hidden name='comp_other[{$id}]' value='0'>\n\t\t\t\t<input type=hidden name='emp_other[{$id}]' value='0'>\n\t\t\t\t<!--\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='comp_other[{$id}]' value='{$data['comp_other']}' class='right'></td>\n\t\t\t\t<td nowrap>R<input type='text' size='8' name='emp_other[{$id}]' value='{$data['emp_other']}' class='right'></td>\n\t\t\t\t//-->\n\t\t\t\t<td>{$paydetails}</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td><input type='checkbox' name='mpaye[{$id}]' {$ch}></td>\n\t\t\t\t\t\t\t<td><input type='text' size='8' name='mpaye_amount[{$id}]' value='{$mpaye_amount[$id]}'></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>{$fringes}</td>\n\t\t\t\t<td>{$allowances}</td>\n\t\t\t\t<td>{$subsistence}<!--%%EXCHANGE%%--></td>\n\t\t\t\t<td>{$deductions}</td>\n\t\t\t\t<td>{$rt}</td>\n\t\t\t</tr>";
    }
    if (!isset($id)) {
        header("Location: ../admin-employee-view.php?err=Please select at least one employee.");
        exit;
    }
    // replace the exchange rate place holder with the exchange rate form field
    if ($subs_int) {
        $exch = "\n\t\t\t<input type='hidden' name='subs_exch' value='1'>\n\t\t\t<li class='err'>Please calculate the rand amount prior to completing the amount above.</li>";
        // 			<tr class='".bg_class()."'>
        // 				<th class='".bg_class()."'>Exchange (ZAR-USD):</th>
        // 				<td><input type='text' name='subs_exch' value='".xrate_get("USD")."'></td>
        // 			</tr>";
        $out = str_replace("<!--%%EXCHANGE%%-->", $exch, $out);
    }
    $out .= "\n\t\t\t<tr><td><br></td></tr>\n\t\t\t{$send}\n\t\t\t<tr>\n\t\t\t\t<td colspan='9' align='right' nowrap='t'>\n\t\t\t\t\t<input type='submit' name='btn_back' value='&laquo; Correction'>\n\t\t\t\t\t<input type='submit' value='Confirm &raquo;'>\n\t\t\t\t</td>\n\t\t\t\t<td colspan='10' align='right' nowrap='t'>\n\t\t\t\t\t<input type='submit' name='btn_back' value='&laquo; Correction'>\n\t\t\t\t\t<input type='submit' value='Confirm &raquo;'>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</table>\n\t\t</form>\n\t\t<script>\n\t\t\tfunction monthchange(mondd) {\n\t\t\t\t" . implode("\n", $jsbonus_clear) . "\n\t\t\t\tswitch ( mondd.value ) {\n\t\t\t\tcase '1':\n\t\t\t\t\t" . implode("\n", $jsbonus[1]) . "\n\t\t\t\t\tbreak;\n\t\t\t\tcase '2':\n\t\t\t\t\t" . implode("\n", $jsbonus[2]) . "\n\t\t\t\t\tbreak;\n\t\t\t\tcase '3':\n\t\t\t\t\t" . implode("\n", $jsbonus[3]) . "\n\t\t\t\t\tbreak;\n\t\t\t\tcase '4':\n\t\t\t\t\t" . implode("\n", $jsbonus[4]) . "\n\t\t\t\t\tbreak;\n\t\t\t\tcase '5':\n\t\t\t\t\t" . implode("\n", $jsbonus[5]) . "\n\t\t\t\t\tbreak;\n\t\t\t\tcase '6':\n\t\t\t\t\t" . implode("\n", $jsbonus[6]) . "\n\t\t\t\t\tbreak;\n\t\t\t\tcase '7':\n\t\t\t\t\t" . implode("\n", $jsbonus[7]) . "\n\t\t\t\t\tbreak;\n\t\t\t\tcase '8':\n\t\t\t\t\t" . implode("\n", $jsbonus[8]) . "\n\t\t\t\t\tbreak;\n\t\t\t\tcase '9':\n\t\t\t\t\t" . implode("\n", $jsbonus[9]) . "\n\t\t\t\t\tbreak;\n\t\t\t\tcase '10':\n\t\t\t\t\t" . implode("\n", $jsbonus[10]) . "\n\t\t\t\t\tbreak;\n\t\t\t\tcase '11':\n\t\t\t\t\t" . implode("\n", $jsbonus[11]) . "\n\t\t\t\t\tbreak;\n\t\t\t\tcase '12':\n\t\t\t\t\t" . implode("\n", $jsbonus[12]) . "\n\t\t\t\t\tbreak;\n\t\t\t\t}";
    //".implode("\n", $uif_calc)."
    $out .= "\n\t\t\t}\n\t\t</script>\n\t\t<script>\n\t\t\tsf = document.getElementById('salfrm');\n\t\t\tf_sal = new Array();\n\t\t\tf_salbonus = new Array();\n\t\t\tf_whtot = new Array();\n\t\t\tf_whact = new Array();\n\t\t\tf_cpension = new Array();\n\t\t\tf_epension = new Array();\n\t\t\tf_cprov = new Array();\n\t\t\tf_eprov = new Array();\n\t\t\t//f_cuif = new Array();\n\t\t\t//f_euif = new Array();\n\t\t\tf_cother = new Array();\n\t\t\tf_eother = new Array();\n\n\t\t\tdb_cpension = new Array();\n\t\t\tdb_epension = new Array();\n\t\t\tdb_cprov = new Array();\n\t\t\tdb_eprov = new Array();\n\t\t\t//db_cuif = new Array();\n\t\t\t//db_euif = new Array();\n\t\t\tdb_cother = new Array();\n\t\t\tdb_eother = new Array();\n\n\t\t\tval_sal = new Array();\n\t\t</script>\n \t\t{$js_workhours_fields}\n\t\t<script>\n\t\t\t// changing the workhours\n\t\t\tfunction workhours(id) {\n\t\t\t\tif ( val_sal[id] < 0 ) val_sal[id] = parseFloat(f_sal[id].value);\n\n\t\t\t\tval_whtot\t= parseFloat(f_whtot[id].value);\n\t\t\t\tval_whact\t= parseFloat(f_whact[id].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[id] * p;\n\t\t\t\t\tx = x.toFixed(2);\n\t\t\t\t\tf_sal[id].value = x;\n\n\t\t\t\t\t// calculate the new values\n\t\t\t\t\tval_cpension \t= x * db_cpension[id] / 100;\n\t\t\t\t\tval_epension \t= x * db_epension[id] / 100;\n\t\t\t\t\tval_cprov\t\t= x * db_cprov[id] / 100;\n\t\t\t\t\tval_eprov\t\t= x * db_eprov[id] / 100;\n\t\t\t\t\t//val_cuif\t\t= x * db_cuif[id] / 100;\n\t\t\t\t\t//val_euif\t\t= x * db_euif[id] / 100;\n\t\t\t\t\tval_cother\t\t= x * db_cother[id] / 100;\n\t\t\t\t\tval_eother\t\t= x * db_eother[id] / 100;\n\n\t\t\t\t\tval_cpension \t= val_cpension.toFixed(2);\n\t\t\t\t\tval_epension \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[id].value\t= val_cpension;\n\t\t\t\t\tf_epension[id].value \t= val_epension;\n\t\t\t\t\tf_cprov[id].value \t\t= val_cprov;\n\t\t\t\t\tf_eprov[id].value\t\t= val_eprov;\n\t\t\t\t\t//f_cuif[id].value\t\t= val_cuif;\n\t\t\t\t\t//f_euif[id].value\t\t= val_euif;\n\t\t\t\t\tf_cother[id].value\t\t= val_cother;\n\t\t\t\t\tf_eother[id].value\t\t= val_eother;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction changedfield(id) {\n\t\t\t\tval_whtot\t= parseFloat(f_whtot[id].value);\n\t\t\t\tval_whact\t= parseFloat(f_whact[id].value);\n\n\t\t\t\tp = val_whtot / val_whact;\n\n\t\t\t\tval_sal[id] = parseFloat(f_sal[id].value) * p;\n\t\t\t\tval_sal[id] = val_sal[id].toFixed(2);\n\t\t\t}\n\n\t\t\tmonthchange(document.getElementById('salfrm').elements['month']);\n\t\t</script>";
    return $out;
}
Exemplo n.º 16
0
function viewcash($_POST)
{
    extract($_POST);
    # validate input
    require_lib("validate");
    $v = new validate();
    $v->isOk($bankid, "num", 1, 30, "Invalid Bank Account.");
    $v->isOk($f_day, "num", 1, 2, "Invalid Day for the 'From' date.");
    $v->isOk($f_month, "num", 1, 2, "Invalid month for the 'From' date..");
    $v->isOk($f_year, "num", 1, 4, "Invalid year for the 'From' date..");
    $v->isOk($l_day, "num", 1, 2, "Invalid Day for the 'To' date.");
    $v->isOk($l_month, "num", 1, 2, "Invalid month for the 'To' date..");
    $v->isOk($l_year, "num", 1, 4, "Invalid year for the 'To' date..");
    # lets mix the date
    $from = mkdate($f_year, $f_month, $f_day);
    $to = mkdate($l_year, $l_month, $l_day);
    if ($v->isError()) {
        $err = $v->genErrors();
        return $err;
    }
    if (isset($export)) {
        $pure = true;
    } else {
        $pure = false;
    }
    $bank = qryBankAcct($bankid);
    $curdata = qryCurrency($bank["fcid"]);
    $fc = $curdata['symbol'];
    $s1 = "";
    $s2 = "";
    $s3 = "";
    $s4 = "";
    $s5 = "";
    if (isset($order)) {
        if ($order == "ORDER BY date ASC, cheqnum ASC") {
            $s2 = "selected";
        } elseif ($order == "ORDER BY date DESC, cheqnum DESC") {
            $s3 = "selected";
        } elseif ($order == "ORDER BY cheqnum ASC") {
            $s4 = "selected";
        } elseif ($order == "ORDER BY cheqnum DESC") {
            $s5 = "selected";
        } else {
            $s1 = "selected";
        }
    } else {
        $order = "ORDER BY date DESC, cheqnum ASC";
        $s1 = "selected";
    }
    // Set up table to display in
    # Receipts
    $OUTPUT = "\n\t\t<center>\n\t\t<table " . TMPL_tblDflts . " width='95%'>\n\t\t\t<tr>\n\t\t\t\t<td colspan='8' align='center'><h3>Cash Book<br><br>Account : {$bank['accname']} - {$bank['bankname']}<br>Period : {$from} to {$to}</h3></td>\n\t\t\t</tr>";
    if (!$pure) {
        $OUTPUT .= "\n\t\t\t<tr>\n\t\t\t\t<td colspan='8' align='center'>\n\t\t\t\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<input type='hidden' name='key' value='viewcash'>\n\t\t\t\t\t\t<input type='hidden' name='bankid' value='{$bankid}'>\n\t\t\t\t\t\t<input type='hidden' name='f_day' value='{$f_day}'>\n\t\t\t\t\t\t<input type='hidden' name='f_month' value='{$f_month}'>\n\t\t\t\t\t\t<input type='hidden' name='f_year' value='{$f_year}'>\n\t\t\t\t\t\t<input type='hidden' name='l_day' value='{$l_day}'>\n\t\t\t\t\t\t<input type='hidden' name='l_month' value='{$l_month}'>\n\t\t\t\t\t\t<input type='hidden' name='l_year' value='{$l_year}'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th>Order By</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>\n\t\t\t\t\t\t\t\t<select name='order' onChange='javascript:document.form.submit();'>\n\t\t\t\t\t\t\t\t\t<option value='' disabled {$s1} >Select</option>\n\t\t\t\t\t\t\t\t\t<option value='ORDER BY date ASC, cheqnum ASC' {$s2}>Date, Cheque No. Ascending</option>\n\t\t\t\t\t\t\t\t\t<option value='ORDER BY date DESC, cheqnum DESC' {$s3}>Date, Cheque No. Descending</option>\n\t\t\t\t\t\t\t\t\t<option value='ORDER BY cheqnum ASC' {$s4}>Cheque No. Ascending</option>\n\t\t\t\t\t\t\t\t\t<option value='ORDER BY cheqnum DESC' {$s5}>Cheque No. Descending</option>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t</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 align='center'><input type='submit' name='export' value='Export to Spreadsheet'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</form>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>";
    }
    $OUTPUT .= "\n\t\t<tr>\n\t\t\t<td colspan='7'><h4>Receipts</h4></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<th>Date</th>\n\t\t\t<th width='20%'>Bank Account Name</th>\n\t\t\t<th width='5%'>Cheque Number</th>\n\t\t\t<th width='15%'>Received From : </th>\n\t\t\t<th width='20%'>Description</th>\n\t\t\t<th>Reference</th>\n\t\t\t<th width='21%'>Ledger Account</th>\n\t\t\t<th width='23%'>Amount</th>\n\t\t</tr>";
    $rtotal = 0;
    // Received total amount
    // Connect to database
    db_Connect();
    $sql = "SELECT * FROM cashbook WHERE date >= '{$from}' AND date <= '{$to}' AND trantype='deposit' AND bankid='{$bankid}' AND div = '" . USER_DIV . "' {$order}";
    $accntRslt = db_exec($sql) or errDie("ERROR: Unable to retrieve bank deposits details from database.", SELF);
    $numrows = pg_numrows($accntRslt);
    if ($numrows < 1) {
        $OUTPUT .= "<tr><td colspan='7' align='center'><li class='err'>There are no Payments/cheques received on the selected period.</td></tr>";
    } else {
        # display all bank Deposits
        for ($i = 0; $i < $numrows; $i++) {
            $accnt = pg_fetch_array($accntRslt, $i);
            if (strlen($accnt['accids']) > 0) {
                $acc['accname'] = "<a href=\"javascript: openSmallWindow('multi-acc-popup.php?cashid={$accnt['cashid']}&type=cash')\">Multiple Accounts</a>";
                $acc['accno'] = "";
            } else {
                # Get account name for the account involved
                $AccRslt = get("core", "accname, topacc, accnum", "accounts", "accid", $accnt['accinv']);
                $acc = pg_fetch_array($AccRslt);
                $acc['accno'] = "{$acc['topacc']}/{$acc['accnum']}";
            }
            # Get account name for bank account
            db_connect();
            $sql = "SELECT accname,btype FROM bankacct WHERE bankid= '{$accnt['bankid']}' AND div = '" . USER_DIV . "'";
            $bnameRslt = db_exec($sql);
            $bname = pg_fetch_array($bnameRslt);
            $rtotal += $accnt['amount'];
            // add to rtotal
            $accnt['amount'] = sprint($accnt['amount']);
            $accnt['date'] = ext_rdate($accnt['date']);
            if ($bname['btype'] != "loc") {
                $ex = "/ {$fc} {$accnt['famount']}";
            } else {
                $ex = "";
            }
            if (empty($accnt["multicusnum"])) {
                $from_disp = "{$accnt['name']}";
            } else {
                $from_disp = "<a href=\"javascript: openSmallWindow('multi-debtor-popup.php?cashid={$accnt['cashid']}&type=cash')\">Multiple Debtors</a>";
            }
            $OUTPUT .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$accnt['date']}</td>\n\t\t\t\t\t<td align='center'>{$bname['accname']}</td>\n\t\t\t\t\t<td align='center'>{$accnt['cheqnum']}</td>\n\t\t\t\t\t<td align='center'>{$from_disp}</td>\n\t\t\t\t\t<td>{$accnt['descript']}</td>\n\t\t\t\t\t<td>{$accnt['reference']}</td>\n\t\t\t\t\t<td>{$acc['accno']}  {$acc['accname']}</td>\n\t\t\t\t\t<td>" . CUR . " {$accnt['amount']} {$ex}</td>\n\t\t\t\t\t<td><a href='#' onClick=\"printer ('bank/bank-recpt-inv-print.php?recid={$accnt['cashid']}');\">Print</a></td>";
            if (!$pure && $accnt['banked'] == "no" && $accnt['opt'] != 'n') {
                $OUTPUT .= "<td><a href='../bank/cheq-return.php?cashid={$accnt['cashid']}'>Returned/Unpaid</td>";
                // $OUTPUT .= "<td><a href='../bank/cheq-cancel.php?cashid=$accnt[cashid]'>Cancel</td>";
            }
            $OUTPUT .= "</tr>";
        }
        # print the total
        $OUTPUT .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan='6'><b>Total Receipts</b></td>\n\t\t\t\t<td><b>" . CUR . " " . sprintf("%01.2f", $rtotal) . "</b></td>\n\t\t\t</tr>";
    }
    # Seperate the tables with two rows
    $OUTPUT .= "<tr><td colspan='7'><br></td></tr><tr><td colspan='7'><br></td></tr>";
    # Payments
    $OUTPUT .= "\n\t\t<tr>\n\t\t\t<td colspan='7'><h4>Payments</h4></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<th>Date</th>\n\t\t\t<th>Bank Account Name</th>\n\t\t\t<th>Cheque Number</th>\n\t\t\t<th>Paid to: </th>\n\t\t\t<th>Description</th>\n\t\t\t<th>Reference</th>\n\t\t\t<th>Ledger Account</th>\n\t\t\t<th>Amount</th>\n\t\t</tr>";
    $ptotal = 0;
    // payments total
    // Connect to database
    db_Connect();
    $sql = "SELECT * FROM cashbook WHERE date >= '{$from}' AND date <= '{$to}' AND trantype='withdrawal' AND bankid='{$bankid}' AND div = '" . USER_DIV . "' {$order}";
    $accntRslt = db_exec($sql) or errDie("ERROR: Unable to retrieve bank deposits details from database.", SELF);
    if (pg_numrows($accntRslt) < 1) {
        $OUTPUT .= "<tr><td colspan='7' align='center'><li class='err'>There are no Payments made on the selected period.</td></tr>";
    } else {
        # Display all bank Deposits
        for ($i = 0; $accnt = pg_fetch_array($accntRslt); $i++) {
            # alternate bgcolor
            $bgColor = bgcolorc($i);
            if (strlen($accnt['accids']) > 0) {
                $acc['accname'] = "<a href=\"javascript: openSmallWindow('multi-acc-popup.php?cashid={$accnt['cashid']}&type=cash');\">Multiple Accounts</a>";
                $acc['accno'] = "";
            } else {
                # get account name for the account involved
                $AccRslt = get("core", "accname, topacc, accnum", "accounts", "accid", $accnt['accinv']);
                $acc = pg_fetch_array($AccRslt);
                $acc['accno'] = "{$acc['topacc']}/{$acc['accnum']}";
            }
            # get account name for bank account
            db_connect();
            $sql = "SELECT accname,btype FROM bankacct WHERE bankid= '{$accnt['bankid']}' AND div = '" . USER_DIV . "'";
            $bnameRslt = db_exec($sql);
            $bname = pg_fetch_array($bnameRslt);
            $ptotal += $accnt['amount'];
            //add to total
            $accnt['amount'] = sprint($accnt['amount']);
            $accnt['date'] = ext_rdate($accnt['date']);
            if ($bname['btype'] != "loc") {
                $ex = "/ {$fc} {$accnt['famount']}";
            } else {
                $ex = "";
            }
            $OUTPUT .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>{$accnt['date']}</td>\n\t\t\t\t<td align='center'>{$bname['accname']}</td>\n\t\t\t\t<td align='center'>{$accnt['cheqnum']}</td>\n\t\t\t\t<td align='center'>{$accnt['name']}</td>\n\t\t\t\t<td>{$accnt['descript']}</td>\n\t\t\t\t<td>{$accnt['reference']}</td>\n\t\t\t\t<td>{$acc['accno']}  {$acc['accname']}</td>\n\t\t\t\t<td>" . CUR . " {$accnt['amount']} {$ex}</td>";
            if (!$pure && $accnt['banked'] == "no" && $accnt['opt'] != 'n') {
                $OUTPUT .= "<td><a href='../bank/cheq-return.php?cashid={$accnt['cashid']}'>Returned/Unpaid</td>";
                // $OUTPUT .= "<td><a href='../bank/cheq-cancel.php?cashid=$accnt[cashid]'>Cancel</td>";
            }
            $OUTPUT .= "</tr>";
        }
        # print the total
        $OUTPUT .= "\n\t\t<tr class='" . bg_class() . "''>\n\t\t\t<td colspan='6'><b>Total Payments</b></td>\n\t\t\t<td><b>" . CUR . " " . sprintf("%01.2f", $ptotal) . "</b></td>\n\t\t</tr>";
    }
    if (!$pure) {
        $OUTPUT .= mkQuickLinks(ql("../core/acc-new2.php", "Add New Account"), ql("../core/acc-new2.php", "Add New Account (New Window)", true));
    }
    if (isset($export)) {
        $OUTPUT = clean_html($OUTPUT);
        require_lib("xls");
        StreamXLS("Cashbook", $OUTPUT);
    }
    return $OUTPUT;
}