function printDept()
{
    # Set up table to display in
    $printDept = "\r\n    <h3>Departments</h3>\r\n    <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\r\n    <tr><th>Dept No</th><th>Department</th><th>Income Account</th><th>Debtors Control Account</th><th>Creditors Control Account</th></tr>";
    # connect to database
    db_conn("exten");
    # Query server
    $i = 0;
    $sql = "SELECT * FROM departments WHERE div = '" . USER_DIV . "' ORDER BY deptname ASC";
    $deptRslt = db_exec($sql) or errDie("Unable to retrieve Departments from database.");
    if (pg_numrows($deptRslt) < 1) {
        return "<li>There are no Departments in Cubit.";
    }
    while ($dept = pg_fetch_array($deptRslt)) {
        # get ledger account name
        core_connect();
        $sql = "SELECT accname FROM accounts WHERE accid = '{$dept['incacc']}' AND div = '" . USER_DIV . "'";
        $accRslt = db_exec($sql);
        $accinc = pg_fetch_array($accRslt);
        # get debtors account name
        $sql = "SELECT accname FROM accounts WHERE accid = '{$dept['debtacc']}' AND div = '" . USER_DIV . "'";
        $accRslt = db_exec($sql);
        $accdebt = pg_fetch_array($accRslt);
        # get creditors account name
        $sql = "SELECT accname FROM accounts WHERE accid = '{$dept['credacc']}' AND div = '" . USER_DIV . "'";
        $accRslt = db_exec($sql);
        $acccred = pg_fetch_array($accRslt);
        $printDept .= "<tr class='" . bg_class() . "'><td>{$dept['deptno']}</td><td>{$dept['deptname']}</td><td>{$accinc['accname']}</td><td>{$accdebt['accname']}</td><td>{$acccred['accname']}</td><td><a href='dept-edit.php?deptid={$dept['deptid']}'>Edit</a></td>";
        $printDept .= "<td><a href='dept-rem.php?deptid={$dept['deptid']}'>Remove</a></td></tr>";
        $i++;
    }
    $printDept .= "</table>\r\n    <p>\r\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width=15%>\r\n        <tr><td><br></td></tr>\r\n        <tr><th>Quick Links</th></tr>\r\n\t\t<tr class='bg-odd'><td><a href='dept-add.php'>Add Department</a></td></tr>\r\n\t\t<tr class='bg-odd'><td><a href='../main.php'>Main Menu</a></td></tr>\r\n\t</table>";
    return $printDept;
}
function write($_POST)
{
    extract($_POST);
    $id += 0;
    db_conn("crm");
    $Sl = "SELECT * FROM crms WHERE id='{$id}'";
    $Ry = db_exec($Sl) or errDie("Unable to get data.");
    if (pg_num_rows($Ry) < 1) {
        return "Invalid user.";
    }
    $crmdata = pg_fetch_array($Ry);
    if ($crmdata['teamid'] == 0) {
        return "This user is set to 'Non Active' and you cannot select mutple teams for him. Please select a team under settings 'Select default teams'";
    }
    $tar = explode("|", $crmdata['teams']);
    $i = 0;
    $Sl = "SELECT * FROM teams WHERE div='" . USER_DIV . "' ORDER BY name";
    $Ry = db_exec($Sl) or errDie("Unable to get data from teams.");
    $tv = "";
    while ($data = pg_fetch_array($Ry)) {
        $tid = $data['id'];
        $tid += 0;
        if (isset($team[$tid])) {
            $tv .= "{$tid}|";
        }
    }
    $tvs = explode("|", $tv);
    if (!in_array($crmdata['teamid'], $tvs)) {
        return "You cannot remove a team from a user if it is still set as his default. Change the default teams for a user under settings.";
    }
    $Sl = "UPDATE crms SET teams='{$tv}' WHERE id='{$id}'";
    $Ry = db_exec($Sl) or errDie("Unable to update.");
    $out = "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\r\n\t<tr><th>Done</th></tr>\r\n\t<tr class='bg-odd'><td>Your changes have been saved.</td></tr>\r\n\t</table>";
    return $out;
}
function pretake_print()
{
    extract($_REQUEST);
    $fields = array();
    $fields["offset"] = 0;
    $fields["store"] = 0;
    $fields["limit"] = OFFSET_SIZE;
    extract($fields, EXTR_SKIP);
    if (isset($store) and $store != "0") {
        $whsearch = "WHERE whid = '{$store}'";
    } else {
        $whsearch = "";
    }
    $sql = "SELECT stkid, stkcod, stkdes, whid FROM cubit.stock {$whsearch} ORDER BY stkcod ASC, whid LIMIT {$limit} OFFSET {$offset}";
    $stock_rslt = db_exec($sql) or errDie("Unable to retrieve stock.");
    $stock_out = "";
    while (list($stkid, $stkcod, $stkdes, $whid) = pg_fetch_array($stock_rslt)) {
        db_conn("exten");
        $get_wh = "SELECT whname FROM warehouses WHERE whid = '{$whid}' LIMIT 1";
        $run_wh = db_exec($get_wh) or errDie("Unable to get warehouse information.");
        if (pg_numrows($run_wh) < 1) {
            $whname = "Default";
        } else {
            $whname = trim(pg_fetch_result($run_wh, 0, 0));
        }
        $stock_out .= "\n\t\t\t<tr>\n\t\t\t\t<td>{$whname}</td>\n\t\t\t\t<td>{$stkcod}</td>\n\t\t\t\t<td>{$stkdes}</td>\n\t\t\t\t<td width='10%' style='border-bottom: 1px solid #000'>&nbsp;</td>\n\t\t\t</tr>";
    }
    $OUTPUT = "\n\t\t<style>\n\t\t\tth { text-align: left }\n\t\t</style>\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td><h2>Pre Stock Take</h2></td>\n\t\t\t\t<td align='right'><h3>Page " . page_number($offset, $store) . "</h3>\n\t\t\t</tr>\n\t\t</table>\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<th align='left'>Store</th>\n\t\t\t\t<th align='left'>Stock Code</th>\n\t\t\t\t<th align='left'>Stock Description</th>\n\t\t\t\t<th align='left'>Quantity</th>\n\t\t\t</tr>\n\t\t\t{$stock_out}\n\t\t</table>";
    require "tmpl-print.php";
}
function remove()
{
    db_conn('core');
    $Sl = "SELECT * FROM income";
    $Ri = db_exec($Sl);
    while ($ad = pg_fetch_array($Ri)) {
        $Sl = "SELECT * FROM accounts WHERE catid='{$ad['catid']}'";
        $Rp = db_exec($Sl);
        if (pg_num_rows($Rp) < 1) {
            $Sl = "DELETE FROM income WHERE catid='{$ad['catid']}'";
            $Rp = db_exec($Sl);
        }
    }
    $Sl = "SELECT * FROM balance";
    $Ri = db_exec($Sl);
    while ($ad = pg_fetch_array($Ri)) {
        $Sl = "SELECT * FROM accounts WHERE catid='{$ad['catid']}'";
        $Rp = db_exec($Sl);
        if (pg_num_rows($Rp) < 1) {
            $Sl = "DELETE FROM balance WHERE catid='{$ad['catid']}'";
            $Rp = db_exec($Sl);
        }
    }
    $Sl = "SELECT * FROM expenditure";
    $Ri = db_exec($Sl);
    while ($ad = pg_fetch_array($Ri)) {
        $Sl = "SELECT * FROM accounts WHERE catid='{$ad['catid']}'";
        $Rp = db_exec($Sl);
        if (pg_num_rows($Rp) < 1) {
            $Sl = "DELETE FROM expenditure WHERE catid='{$ad['catid']}'";
            $Rp = db_exec($Sl);
        }
    }
    return "Done\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width=25%>\n\t<tr><th>Quick Links</th></tr>\n\t<script>document.write(getQuicklinkSpecial());</script>\n\t<script>document.write(getQuicklinkSpecial());</script>\n\t</table>";
}
function slctacc()
{
    # from period
    $prds = "<select name=prd>";
    db_conn(YR_DB);
    $sql = "SELECT * FROM info WHERE prdname !=''";
    $prdRslt = db_exec($sql);
    if (pg_numrows($prdRslt) < 1) {
        return "<li class=err>ERROR : There are no periods set for the current year";
    }
    while ($prd = pg_fetch_array($prdRslt)) {
        if ($prd['prddb'] == PRD_DB) {
            $sel = "selected";
        } else {
            $sel = "";
        }
        $prds .= "<option value='{$prd['prddb']}' {$sel}>{$prd['prdname']}</option>";
    }
    $prds .= "</select>";
    db_connect();
    $sql = "SELECT * FROM employees WHERE div = '" . USER_DIV . "' ORDER BY fname,snames ASC";
    $supRslt = db_exec($sql) or errDie("Could not retrieve employees Information from the Database.", SELF);
    if (pg_numrows($supRslt) < 1) {
        return "<li class=err> There are no employees in Cubit.";
    }
    $supts = "<select name='supids[]' multiple size='10'>";
    while ($sup = pg_fetch_array($supRslt)) {
        $supts .= "<option value='{$sup['empnum']}'>{$sup['sname']}, {$sup['fnames']}</option>";
    }
    $supts .= "</select>";
    $slctacc = "\n\t\t\t\t\t<p>\n\t\t\t\t\t<h3>Employee Ledger</h3>\n\t\t\t\t\t<h4>Select Options</h4>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t\t\t\t<input type='hidden' name='key' value='viewtran'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th>Field</th>\n\t\t\t\t\t\t\t<th>Value</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='top'></td>\n\t\t\t\t\t\t\t<td><input type='radio' name='accnt' value='slct' checked='yes'>Selected Accounts | <input type='radio' name='accnt' value='all'>All Accounts</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 valign='top'>Select Employee(s)</td>\n\t\t\t\t\t\t\t<td>{$supts}</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>Select period</td>\n\t\t\t\t\t\t\t<td>{$prds}</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>Order By</td>\n\t\t\t\t\t\t\t<td>Transaction Date<input type='radio' name='t' checked value='t'>System Date<input type=radio name=t value='s'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td align='right'><input type='submit' value='Continue &raquo;'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t<table " . TMPL_tblDflts . " width='25%'>\n\t\t\t\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th>Quick Links</th>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t\t\t\t\t</table>";
    return $slctacc;
}
function budgetTotalFromYear($accid, $budfor)
{
    db_conn("cubit");
    $sql = "SELECT SUM(bi.amt) FROM cubit.buditems bi, cubit.budgets bd\n\t\t\tWHERE bi.budid=bd.budid AND bi.id='{$accid}' AND bd.budfor='{$budfor}'\n\t\t\t\tAND bd.prdtyp='yr' AND bi.prd='" . BUDGET_YEARS_INDEX . "'";
    $rslt = db_exec($sql) or errDie("Error reading monthly budget total.");
    return pg_fetch_result($rslt, 0, 0);
}
function OUTPUT($_POST)
{
    extract($_POST);
    $typeid = remval($typeid);
    # Set up table to display in
    $OUTPUT .= "<td valign=top width='33%'>\r\n<table border=0 width='90%'>\r\n<tr><td align=center nowrap><h3>Document Data</h3></td></tr>\r\n<tr><th>Type</th><th>Ref</th><th>Document</th><th>Date</th><th>Description</th><th>Filename</th></tr>";
    if ($typeid != '0') {
        $whe = "AND typeid='{$typeid}' ";
    } else {
        $whe = "";
    }
    # Connect to database
    //db_conn (YR_DB);
    db_conn("yr2");
    # Query server
    $i = 0;
    $sql = "SELECT * FROM documents WHERE div = '" . USER_DIV . "' {$whe} ORDER BY docname ASC";
    $docRslt = db_exec($sql) or errDie("Unable to retrieve Documents from database.");
    if (pg_numrows($docRslt) < 1) {
        return "<li>There are no Documents in Cubit.</li>\r\n\t\t\t <p>\r\n\t\t\t <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width=15%>\r\n\t\t<tr><td><br></td></tr>\r\n\t\t<tr><th>Quick Links</th></tr>\r\n\t\t<tr class='bg-odd'><td><a href='docadd.php'>Add Document</a></td></tr>\r\n\t\t<tr class='bg-odd'><td><a href='docview.php'>View Documents</a></td></tr>\r\n\t\t<tr class='bg-odd'><td><a href='../main.php'>Main Menu</a></td></tr>\r\n\t\t<tr class='bg-odd'><td><a href='docman-index.php'>Back</a></td></tr>\r\n\t\t</table>";
    }
    while ($doc = pg_fetch_array($docRslt)) {
        $OUTPUT .= "<tr class='" . bg_class() . "'><td>{$doc['typename']}</td><td>{$doc['docref']}</td><td>{$doc['docname']}</td><td>{$doc['docdate']}</td><td>{$doc['descrip']}</td><td>{$doc['filename']}</td><td><a href='docedit.php?docid={$doc['docid']}'>Edit</a></td>";
        $OUTPUT .= "<td><a href='docdload.php?docid={$doc['docid']}'>Download</a></td><td><a href='docrem.php?docid={$doc['docid']}'>Remove</a></td></tr>";
        $i++;
    }
    $OUTPUT .= "</table></td>";
    return $OUTPUT;
}
function archive($_GET)
{
    extract($_GET);
    $id += 0;
    db_conn('crm');
    $Sl = "SELECT * FROM crms WHERE userid='" . USER_ID . "'";
    $Ri = db_exec($Sl) or errDie("Unable to get data from system.");
    if (pg_num_rows($Ri) < 1) {
        return "Invalid.";
    }
    $crmdata = pg_fetch_array($Ri);
    $teams = explode("|", $crmdata['teams']);
    $Sl = "SELECT * FROM tokens WHERE id='{$id}'";
    $Ri = db_exec($Sl) or errDie("Unable to get query.");
    if (pg_num_rows($Ri) < 1) {
        return "Invalid query.";
    }
    $tokendata = pg_fetch_array($Ri);
    if (!in_array($tokendata['teamid'], $teams)) {
        return "Declined.";
    }
    $Sl = "SELECT * FROM token_actions WHERE token='{$id}'";
    $Ri = db_exec($Sl) or errDie("Unable to get actions from db.");
    while ($data = pg_fetch_array($Ri)) {
        $Sl = "INSERT INTO archived_actions (token,action,donedate,donetime,doneby,donebyid)\r\n\t\tVALUES ('{$id}','{$data['action']}','{$data['donedate']}','{$data['donetime']}','{$data['doneby']}','{$data['donebyid']}')";
        $Ro = db_exec($Sl) or errDie("Unable to archive action.");
    }
    $Sl = "DELETE FROM token_actions WHERE token='{$id}'";
    $Rl = db_exec($Sl) or errDie("Unable to delete actions.");
    $OUTPUT = "<script> window.opener.parent.mainframe.location.reload(); window.close(); </script>";
    return $OUTPUT;
}
function view()
{
    global $_GET;
    extract($_GET);
    if (!isset($target)) {
        $OUTPUT = "<li class=err>Invalid use of module</li>";
        require "template.php";
    }
    $vars = "";
    foreach ($_GET as $key => $value) {
        if ($key != "target") {
            $vars .= "&{$key}={$value}";
        }
    }
    // compute the auth url
    db_conn("cubit");
    $sql = "SELECT * FROM cubitnet_sitesettings WHERE div='" . USER_DIV . "'";
    $rslt = db_exec($sql) or errDie("Error reading username and password for Cubit.co.za");
    if (pg_num_rows($rslt) < 1) {
        $OUTPUT = "<li class=err>Cubit.co.za Settings not set up yet.\r\n\t\t\tPlease <a href='cubitnet_settings.php'>enter</a> the settings first</li>";
        require "template.php";
    }
    extract(pg_fetch_array($rslt));
    db_conn("cubit");
    $sql = "SELECT setting_value FROM cubitnet_settings WHERE setting_name='cubitnet_hash'";
    $rslt = db_exec($sql) or errDie("Error reading hash value for Cubit.co.za.");
    if (pg_num_rows($rslt) < 1) {
        $OUTPUT = "<li class=err>Cubit.co.za Settings not set up yet.\r\n\t\t\tPlease <a href='cubitnet_settings.php'>enter</a> the settings first</li>";
        require "template.php";
    }
    $cubitnet_hash = pg_fetch_result($rslt, 0, 0);
    print "\r\n\t<frameset rows=0,* border=0>\r\n\t\t<frame name=https_auth src='" . IDENTIFY_URL . "?hash={$cubitnet_hash}&username={$cn_username}&password={$cn_password}'>\r\n\t\t<frame name=data_frame src='{$target}?{$vars}'>\r\n\t</frameset>";
}
function posttake_display()
{
    extract($_REQUEST);
    $fields = array();
    $fields["page"] = 1;
    extract($fields, EXTR_SKIP);
    $sql = "\n\t\tSELECT stock.stkid, stock.whid, stkcod, stkdes, bar, adjusted, qty \n\t\tFROM cubit.stock_take \n\t\t\tLEFT JOIN cubit.stock ON stock_take.stkid=stock.stkid \n\t\tWHERE page='{$page}' AND (adjusted='0' OR adjusted IS NULL) \n\t\tORDER BY stkcod ASC, whid";
    $stock_rslt = db_exec($sql) or errDie("Unable to retrieve stock.");
    $stock_out = "";
    while ($stock_data = pg_fetch_array($stock_rslt)) {
        db_conn("exten");
        $get_wh = "SELECT whname FROM warehouses WHERE whid = '{$stock_data['whid']}' LIMIT 1";
        $run_wh = db_exec($get_wh) or errDie("Unable to get warehouse information.");
        if (pg_numrows($run_wh) < 1) {
            $whname = "Default";
        } else {
            $whname = trim(pg_fetch_result($run_wh, 0, 0));
        }
        $stock_out .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>{$stock_data['bar']}</td>\n\t\t\t\t<td>{$whname}</td>\n\t\t\t\t<td>{$stock_data['stkcod']}</td>\n\t\t\t\t<td>{$stock_data['stkdes']}</td>\n\t\t\t\t<td align='center'><input type='text' name='qty[{$stock_data['stkid']}]' value='{$stock_data['qty']}' size='3' style='text-align: center' /></td>\n\t\t\t\t<td><input type='submit' name='update[{$stock_data['stkid']}]' value='OK' /></td>\n\t\t\t</tr>";
    }
    if (empty($stock_out)) {
        $stock_out = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan='5'>No results found.</td>\n\t\t\t</tr>";
    }
    $OUTPUT = "\n\t\t<center>\n\t\t<h3>Stock Take</h3>\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'>Page</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><input type='text' name='page' value='{$page}' size='3' style='font-weight: bold; text-align: center' /></td>\n\t\t\t\t<td><input type='submit' value='OK' /></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t</form>\n\t\t<form method='POST' action='" . SELF . "'>\n\t\t\t<input type='hidden' name='key' value='take_update' />\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Barcode</th>\n\t\t\t\t<th>Store</th>\n\t\t\t\t<th>Stock Code</th>\n\t\t\t\t<th>Stock Description</th>\n\t\t\t\t<th>Quantity</th>\n\t\t\t\t<th>&nbsp;</th>\n\t\t\t</tr>\n\t\t\t{$stock_out}\n\t\t</table>\n\t\t<input type='submit' name='button[adjustments]' value='Adjustments' />\n\t\t</form>\n\t\t</center>";
    return $OUTPUT;
}
function login($_POST)
{
    global $_SESSION;
    extract($_POST);
    require_lib("validate");
    $v = new validate();
    $v->isOk($code, "string", 1, 5, "Invalid company name.");
    # Display errors, if any
    if ($v->isError()) {
        $confirm = "";
        $errors = $v->getErrors();
        foreach ($errors as $e) {
            $confirm .= "<li class='err'>" . $e["msg"] . "</li>";
        }
        return slctcomp($confirm);
    }
    # Change code to lowercase
    $code = strtolower($code);
    if (!db_check("cubit_" . $code)) {
        return slctcomp("<li class='err'>Invalid Company. Select another company or<br />\n\t\t\tclick <a href='company-new.php?key=recover'>here</a> to see if Cubit can recover from this error.</li>");
    }
    # Get Company Name
    db_conn("cubit");
    $sql = "SELECT name FROM companies WHERE code = '{$code}'";
    $compRslt = db_exec($sql) or errDie("Unable to access database.", SELF);
    if (pg_numrows($compRslt) < 1) {
        $comp['name'] = "";
    } else {
        $comp = pg_fetch_array($compRslt);
    }
    $_SESSION["code"] = $code;
    $_SESSION["comp"] = $comp['name'];
    header("Location: doc-index.php");
}
function remove($_POST)
{
    extract($_POST);
    $id += 0;
    db_conn('crm');
    $Sl = "SELECT * FROM tokens WHERE id='{$id}'";
    $Ry = db_exec($Sl) or errDie("Unable to get data from system.");
    if (pg_numrows($Ry) < 1) {
        return "Invalid query.";
    }
    $data = pg_fetch_array($Ry);
    $Sl = "SELECT * FROM token_actions WHERE token='{$id}'";
    $Rs = db_exec($Sl) or errDie("Unable to get data from system.");
    $Sl = "SELECT * FROM archived_actions WHERE token='{$id}'";
    $Ri = db_exec($Sl) or errDie("Unable to get data from system.");
    $Sl = "INSERT INTO closedtokens (tid,userid,username,teamid,cat,catid,openby,opendate,lastdate,csct,csc,name,accnum,\r\n\tcon,tel,cell,fax,email,address,sub,notes,closedate,closeby,closebyid)\r\n\tVALUES ('{$id}','{$data['userid']}','{$data['username']}','{$data['teamid']}','{$data['cat']}','{$data['catid']}','{$data['openby']}',\r\n\t'{$data['opendate']}','{$data['lastdate']}','{$data['csct']}','{$data['csc']}','{$data['name']}','{$data['accnum']}','{$data['con']}',\r\n\t'{$data['tel']}','{$data['cell']}','{$data['fax']}','{$data['email']}','{$data['address']}','{$data['sub']}','{$data['notes']}',\r\n\t'" . date("Y-m-d") . "','" . USER_NAME . "','" . USER_ID . "')";
    $Ry = db_exec($Sl) or errDie("Unable to insert query record.");
    while ($adata = pg_fetch_array($Rs)) {
        $Sl = "INSERT INTO closed_token_actions (token,action,donedate,donetime,doneby,donebyid)\r\n\t\tVALUES ('{$id}','{$adata['action']}','{$adata['donedate']}','{$adata['donetime']}','{$adata['doneby']}','{$adata['donebyid']}')";
        $Ry = db_exec($Sl) or errDie("Unable to insert token action.");
    }
    while ($adata = pg_fetch_array($Ri)) {
        $Sl = "INSERT INTO closed_token_actions (token,action,donedate,donetime,doneby,donebyid)\r\n\t\tVALUES ('{$id}','{$adata['action']}','{$adata['donedate']}','{$adata['donetime']}','{$adata['doneby']}','{$adata['donebyid']}')";
        $Ry = db_exec($Sl) or errDie("Unable to insert token action(archived).");
    }
    $Sl = "DELETE FROM tokens WHERE id='{$id}'";
    $Ry = db_exec($Sl) or errDie("Unable to remove query.");
    $Sl = "DELETE FROM token_actions WHERE token='{$id}'";
    $Ry = db_exec($Sl) or errDie("Unable to remove query actions.");
    $Sl = "DELETE FROM archived_actions WHERE token='{$id}'";
    $Ry = db_exec($Sl) or errDie("Unable to remove archived query actions.");
    header("Location: tokens-manage.php");
    exit;
}
function write_data($_POST)
{
    # get vars
    foreach ($_POST as $key => $value) {
        ${$key} = $value;
    }
    db_conn('cubit');
    if (!pglib_transaction("BEGIN")) {
        return "<li class=err>Unable to edit group(TB)</li>";
    }
    $Sl = "SELECT * FROM grpadd WHERE id='{$id}'";
    $Ri = db_exec($Sl) or errDie("Unable to get group details.");
    if (pg_num_rows($Ri) < 1) {
        return "Invalid group.";
    }
    $cdata = pg_fetch_array($Ri);
    # write to db
    $S1 = "UPDATE grpadd SET grpname='{$grpname}',unit='{$unit}' WHERE id  = '{$id}'";
    $Ri = db_exec($S1) or errDie("Unable to access database.");
    $Data = pg_fetch_array($Ri);
    if (!pglib_transaction("COMMIT")) {
        return "<li class=err>Unable to edit group. (TC)</li>";
    }
    $write_data = "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='50%'>\r\n\t<tr><th>Group Added</th></tr>\r\n\t<tr class=datacell><td>{$grpname} has been added to Cubit.</td></tr>\r\n\t</table>\r\n\t<p>\r\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\r\n\t<tr><th>Quick Links</th></tr>\r\n        <tr class='bg-odd'><td><a href='docman-index.php'>Document Management</a></td></tr>\r\n\t</table>";
    return $write_data;
}
function slctacc()
{
    # from period
    $prds = "<select name=prd>";
    db_conn(YR_DB);
    $sql = "SELECT * FROM info WHERE prdname !=''";
    $prdRslt = db_exec($sql);
    if (pg_numrows($prdRslt) < 1) {
        return "<li class=err>ERROR : There are no periods set for the current year";
    }
    while ($prd = pg_fetch_array($prdRslt)) {
        if ($prd['prddb'] == PRD_DB) {
            $sel = "selected";
        } else {
            $sel = "";
        }
        $prds .= "<option value='{$prd['prddb']}' {$sel}>{$prd['prdname']}</option>";
    }
    $prds .= "</select>";
    core_connect();
    $sql = "SELECT * FROM accounts WHERE div = '" . USER_DIV . "' ORDER BY accname ASC";
    $accRslt = db_exec($sql) or errDie("Could not retrieve Categories Information from the Database.", SELF);
    if (pg_numrows($accRslt) < 1) {
        return "<li class=err> There are no Accounts in Cubit.";
    }
    $accs = "<select name=accids[] multiple size=10>";
    while ($acc = pg_fetch_array($accRslt)) {
        $accs .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>";
    }
    $accs .= "</select>";
    $slctacc = "\n\t\t\t<p>\n\t\t\t<h3>General Ledger</h3>\n\t\t\t<h4>Select Options</h4>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t\t<input type='hidden' name='key' value='viewtran'>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Field</th>\n\t\t\t\t\t<th>Value</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td valign='top'>Accounts</td>\n\t\t\t\t\t<td><input type='radio' name='accnt' value='slct' checked='yes'>Selected Accounts | <input type='radio' name='accnt' value='all'>All Accounts</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td valign='top'>Select account(s)</td>\n\t\t\t\t\t<td>{$accs}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select period</td>\n\t\t\t\t\t<td>{$prds}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align='center'><input type='button' value='&laquo Back' onClick='javascript:history.back()'></td>\n\t\t\t\t\t<td align='center'><input type='submit' value='Continue &raquo;'></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t<p>\n\t\t\t<table " . TMPL_tblDflts . " width='25%'>\n\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t<tr><th>Quick Links</th></tr>\n\t\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t\t</table>";
    return $slctacc;
}
function report($_POST)
{
    extract($_POST);
    $ofdate = $ofrom_year . "-" . $ofrom_month . "-" . $ofrom_day;
    $otdate = $oto_year . "-" . $oto_month . "-" . $oto_day;
    $cfdate = $cfrom_year . "-" . $cfrom_month . "-" . $cfrom_day;
    $ctdate = $cto_year . "-" . $cto_month . "-" . $cto_day;
    if (!checkdate($ofrom_month, $ofrom_day, $ofrom_year) or !checkdate($oto_month, $oto_day, $oto_year) or !checkdate($cfrom_month, $cfrom_day, $cfrom_year) or !checkdate($cto_month, $cto_day, $cto_year)) {
        return "<li class=err>Invalid dates</li>" . select_dates();
    }
    db_conn('crm');
    $Sl = "SELECT id,tid,name,username,sub,opendate,closedate FROM closedtokens WHERE\r\n\t(((opendate>='{$ofdate}')AND(opendate<='{$otdate}')) OR ((closedate>='{$cfdate}')AND(closedate<='{$ctdate}'))) ORDER BY id";
    $Ry = db_exec($Sl) or errDie("Unable to get data from system.");
    if (pg_numrows($Ry) < 1) {
        return "There are closed queries for those dates.";
    }
    $i = 0;
    $out = "<h3>Closed Queries</h3>\r\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\r\n\t<tr><th>No.</th><th>Subject</th><th>User</th><th>Date Opened</th><th>Date Closed</th><th>Options</th></tr>";
    while ($data = pg_fetch_array($Ry)) {
        $i++;
        $out .= "<tr class='" . bg_class() . "'><td>{$data['tid']}</td><td>{$data['sub']}</td><td>{$data['username']}</td>\r\n\t\t<td>{$data['opendate']}</td><td>{$data['closedate']}</td>\r\n\t\t<td><a href='tokens-closed-details.php?id={$data['id']}'>View Details</a></td></tr>";
    }
    $out .= "</table>";
    return $out;
}
function slctacc()
{
    // connect
    db_conn(PRD_DB);
    $refnum = getrefnum();
    /*refnum*/
    // Accounts (debit)
    $view = "<center>\n        <h3> Journal transaction </h3>\n        <br><br>\n        <form action='" . SELF . "' method=post name=form>\n        <input type=hidden name=key value=details>\n        <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' align=center>\n        <tr><th>Field</th><th>Value</th></tr>\n        <tr class='bg-odd'><td>Date</td><td><input type=text size=2 name=day maxlength=2  value='" . date("d") . "'>-<input type=text size=2 name=mon maxlength=2  value='" . date("m") . "'>-<input type=text size=4 name=year maxlength=4 value='" . date("Y") . "'></td></tr>\n        <tr class='bg-odd'><td>Reference Number</td><td><input type=text size=10 name=refnum value='" . $refnum++ . "'></td></tr>\n        <tr><td><br></td></tr>\n        <tr><td align=center>\n                <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n                <tr><td><h4>Debit</h4></td></tr>\n                <tr><th>Select Account</th></tr>\n                <tr class='bg-even'>\n                <td valign=center>\n                <select name='dtaccid'>";
    core_connect();
    $sql = "SELECT * FROM accounts WHERE div = '" . USER_DIV . "' ORDER BY accname ASC";
    $accRslt = db_exec($sql);
    if (pg_numrows($accRslt) < 1) {
        return "<li>There are No accounts in Cubit.";
    }
    while ($acc = pg_fetch_array($accRslt)) {
        $view .= "<option value='{$acc['accid']}'>{$acc['topacc']}/{$acc['accnum']} - {$acc['accname']}</option>";
    }
    $view .= "</select></td></tr>\n                </table>\n        </td>\n        <td align=center>\n                <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n                <tr><td><h4>Credit</h4></td></tr>\n                <tr><th>Select Account</th></tr>\n                <tr class='bg-even'>\n                <td valign=center>\n                <select name=ctaccid>";
    $sql = "SELECT * FROM accounts WHERE div = '" . USER_DIV . "' ORDER BY accname ASC";
    $accRslt = db_exec($sql);
    if (pg_numrows($accRslt) < 1) {
        return "<li>There are No accounts in Cubit.";
    }
    while ($acc = pg_fetch_array($accRslt)) {
        $view .= "<option value='{$acc['accid']}'>{$acc['topacc']}/{$acc['accnum']} - {$acc['accname']}</option>";
    }
    $view .= "</select>\n                </td><td><input name=details type=submit value='Enter Details >'></td></tr>\n                </table>\n        </td></tr>\n        </table><br><br><br>\n        <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' align=center>\n        <td align=center>\n                <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n                        <tr><td><h4>Debit</h4></td></tr>\n                        <tr><th>Account number</th></tr>\n                        <tr class='bg-even'><td valign=center><input type=text name=dtaccnum size=20></td></tr>\n                </table>\n        </td>\n        <td align=center>\n                <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n                        <tr><td><h4>Credit</h4></td></tr>\n                        <tr><th>Account number</th></tr>\n                        <tr class='bg-even'>\n                <td valign=center><input type=text name=ctaccnum size=20></td><td><input type=submit value='Enter Details >'></td></tr></table>\n        </td></tr>\n        </table>\n        <br>\n        <input type=button value='< Go Back' onClick='javascript:history.back();'>\n        </form>\n        <table border=0 cellpadding='2' cellspacing='1' width=15%>\n\t<tr><td><br></td></tr>\n\t<tr><th>Quick Links</th></tr>\n\t<tr class=datacell><td align=center><a href='trans-new.php'>Journal Transactions</td></tr>\n\t<script>document.write(getQuicklinkSpecial());</script>\n\t</table></center>";
    return $view;
}
function printQuo()
{
    # Set up table to display in
    $printQuo = "\n        <h3>Incomplete POS Quotes</h3>\n        <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n        <tr><th>Username</th><th>Department</th><th>Sales Person</th><th>Quote No.</th><th>Quote Date</th><th>Customer Name</th><th>Order No</th><th>Grand Total</th><th>Balance</th><th colspan=3>Options</th></tr>";
    # connect to database
    db_connect();
    # Query server
    $i = 0;
    $sql = "SELECT * FROM pos_quotes WHERE done = 'n' AND div = '" . USER_DIV . "' ORDER BY quoid DESC";
    $quoRslt = db_exec($sql) or errDie("Unable to retrieve quotes from database.");
    if (pg_numrows($quoRslt) < 1) {
        $printQuo = "<li>No previous incomplete quotes.";
    } else {
        while ($quo = pg_fetch_array($quoRslt)) {
            # get department
            db_conn("exten");
            $sql = "SELECT * FROM departments WHERE deptid = '{$quo['deptid']}' AND div = '" . USER_DIV . "'";
            $deptRslt = db_exec($sql);
            if (pg_numrows($deptRslt) < 1) {
                $dept['deptname'] = "<i class=err>Not Found</i>";
            } else {
                $dept = pg_fetch_array($deptRslt);
            }
            # format date
            $quo['odate'] = explode("-", $quo['odate']);
            $quo['odate'] = $quo['odate'][2] . "-" . $quo['odate'][1] . "-" . $quo['odate'][0];
            $printQuo .= "<tr class='" . bg_class() . "'><td>{$quo['username']}</td><td>{$dept['deptname']}</td><td>{$quo['salespn']}</td><td>{$quo['quoid']}</td><td align=center>{$quo['odate']}</td><td>{$quo['cusname']}</td><td align=right>{$quo['ordno']}</td><td>" . CUR . " {$quo['total']}</td>\n\t\t\t\t<td>" . CUR . " {$quo['balance']}</td>\n\t\t\t\t<td><a href='pos-quote-new.php?quoid={$quo['quoid']}&cont=true&done='>Continue</a></td>\n\t\t\t\t<td><a href='pos-quote-unf-cancel.php?quoid={$quo['quoid']}'>Cancel</a></td></tr>";
            $i++;
        }
    }
    // Layout
    $printQuo .= "</table>\n        <p>\n        <table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n        <tr><td><br></td></tr>\n        <tr><th>Quick Links</th></tr>\n\t\t<tr class=datacell><td><a href='pos-quote-canc-view.php'>View Cancelled POS Quotes</td></tr>\n        <tr class=datacell><td><a href='pos-quote-new.php'>New POS Quote</td></tr>\n        <tr class=datacell><td><a href='main.php'>Main Menu</td></tr>\n        </table>";
    return $printQuo;
}
function archive($_GET)
{
    extract($_GET);
    $id += 0;
    db_conn('crm');
    $Sl = "SELECT * FROM crms WHERE userid='" . USER_ID . "'";
    $Ri = db_exec($Sl) or errDie("Unable to get data from system.");
    if (pg_num_rows($Ri) < 1) {
        return "Invalid.";
    }
    $crmdata = pg_fetch_array($Ri);
    $teams = explode("|", $crmdata['teams']);
    $Sl = "SELECT * FROM tokens WHERE id='{$id}'";
    $Ri = db_exec($Sl) or errDie("Unable to get query.");
    if (pg_num_rows($Ri) < 1) {
        return "Invalid query.";
    }
    $tokendata = pg_fetch_array($Ri);
    if (!in_array($tokendata['teamid'], $teams)) {
        return "Declined.";
    }
    $i = 0;
    $pactions = "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='100%'>\r\n\t<tr><td colspan=3 align=center><h4>Archived Actions</h4></td></tr>\r\n\t<tr><th>Date</th><th>Action</th><th>Done By</th></tr>";
    $Sl = "SELECT donedate,donetime,action,doneby FROM archived_actions WHERE token='{$id}' ORDER BY id DESC";
    $Ry = db_exec($Sl) or errDie("Unable to get query actions from system.");
    while ($pdata = pg_fetch_array($Ry)) {
        $i++;
        $pactions .= "<tr class='" . bg_class() . "'><td>{$pdata['donedate']}, " . substr($pdata['donetime'], 0, 5) . "</td><td>{$pdata['action']}</td><td>{$pdata['doneby']}</td></tr>";
    }
    $pactions .= "</table>";
    return $pactions;
}
function view_err($_POST, $err = "")
{
    # get vars
    extract($_POST);
    # Query server for depts
    db_conn("exten");
    $sql = "SELECT * FROM departments WHERE div = '" . USER_DIV . "' ORDER BY deptname ASC";
    $deptRslt = db_exec($sql) or errDie("Unable to view customers");
    if (pg_numrows($deptRslt) < 1) {
        return "<li class='err'>There are no Departments found in Cubit.";
    } else {
        $depts = "<select name='deptid'>";
        while ($dept = pg_fetch_array($deptRslt)) {
            if ($dept['deptid'] == $deptid) {
                $sel = "selected";
            } else {
                $sel = "";
            }
            $depts .= "<option value='{$dept['deptid']}' {$sel}>{$dept['deptname']}</option>";
        }
        $depts .= "</select>";
    }
    //layout
    $view = "\n\t\t\t<br><br>\n\t\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<table " . TMPL_tblDflts . " width='400'>\n\t\t\t\t<input type='hidden' name='key' value='slctcust'>\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'>Invoice Discounts</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2'>{$err}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Department</td>\n\t\t\t\t\t<td valign='center'>{$depts}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>First Letters of customer</td>\n\t\t\t\t\t<td valign='center'><input type='text' size='5' name='letters' value='{$letters}' maxlength='5'></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><input type='button' value='&laquo Cancel' onClick='javascript:history.back();'></td>\n\t\t\t\t\t<td valign='center'><input type='submit' value='Continue &raquo'></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</form>\n\t\t\t<p>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Quick Links</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><a href='sales-reports.php'>Sales Reports</a></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><a href='main.php'>Main Menu</a></td>\n\t\t\t\t</tr>\n\t\t\t</table>";
    return $view;
}
function slctacc()
{
    # from period
    $prds = "<select name=prd>";
    db_conn(YR_DB);
    $sql = "SELECT * FROM info WHERE prdname !=''";
    $prdRslt = db_exec($sql);
    if (pg_numrows($prdRslt) < 1) {
        return "<li class=err>ERROR : There are no periods set for the current year";
    }
    while ($prd = pg_fetch_array($prdRslt)) {
        if ($prd['prddb'] == PRD_DB) {
            $sel = "selected";
        } else {
            $sel = "";
        }
        $prds .= "<option value='{$prd['prddb']}' {$sel}>{$prd['prdname']}</option>";
    }
    $prds .= "</select>";
    db_connect();
    $sql = "SELECT * FROM customers WHERE div = '" . USER_DIV . "' ORDER BY cusnum ASC";
    $cusRslt = db_exec($sql) or errDie("Could not retrieve Customers Information from the Database.", SELF);
    if (pg_numrows($cusRslt) < 1) {
        return "<li class=err> There are no Customers in Cubit.";
    }
    $custs = "<select name=cusnums[] multiple size=10>";
    while ($cus = pg_fetch_array($cusRslt)) {
        $custs .= "<option value='{$cus['cusnum']}'>{$cus['cusname']} {$cus['surname']}</option>";
    }
    $custs .= "</select>";
    $slctacc = "\n\t<p>\n\t<h3>Debtors Ledger</h3>\n\t<h4>Select Options</h4>\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n\t<form action='" . SELF . "' method=post>\n\t<input type=hidden name=key value=viewtran>\n\t<tr><th>Field</th><th>Value</th></tr>\n\t<tr class='bg-even'><td valign=top>Customers</td><td><input type=radio name=accnt value=slct checked=yes>Selected Accounts | <input type=radio name=accnt value=all>All Accounts</td></tr>\n\t<tr class='bg-odd'><td valign=top>Select Customer(s)</td><td>{$custs}</td></tr>\n\t<tr class='bg-even'><td>Select period</td><td>{$prds}</td></tr>\n\t<tr class='bg-odd'><td>Order By</td><td>Transaction Date<input type=radio name=t checked value='t'>System Date<input type=radio name=t value='s'></td></tr>\n\t<tr><td><br></td></tr>\n\t<tr><td></td><td align=right><input type=submit value='Continue &raquo;'></td></tr>\n\t</table>\n\t<p>\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width=25%>\n\t\t<tr><td><br></td></tr>\n\t\t<tr><th>Quick Links</th></tr>\n\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t</table>";
    return $slctacc;
}
function saveImage($base)
{
    echo 'save fn enter';
    define('UPLOAD_DIR', 'thumbnail/');
    echo 'define ';
    //$base = str_replace('data:image/jpeg;base64,', '', $base);
    $data = base64_decode($base);
    echo 'img decoded ';
    $img_url_name = rand(0, 99999) . ".jpg";
    echo 'rand fn ';
    $file = UPLOAD_DIR . $img_url_name;
    echo 'full url';
    if (file_put_contents($file, $data)) {
        echo 'put contents in server ';
        $conn = db_conn();
        if ($conn != false) {
            echo '3rd if ';
            //echo 'connection success';
            $query = "UPDATE `video` SET `thumbnail_img`='{$img_url_name}' WHERE `id`='{$vid_id}'";
            echo 'Query ';
            $stmnt = $conn->prepare($query);
            echo 'Query prepare';
            if ($stmnt->execute()) {
                echo 'Query execute';
                echo 'updated';
            } else {
                echo 'sql error';
            }
        } else {
            echo 'conn error';
        }
    }
}
function enter()
{
    db_connect();
    # Get Departments
    $depts = "<select name='deptid[]'>";
    $sql = "SELECT * FROM depts ORDER BY dept ASC";
    $deptRslt = db_exec($sql);
    if (pg_numrows($deptRslt) < 1) {
        return "<li>There are no departments in Cubit.";
    } else {
        while ($dept = pg_fetch_array($deptRslt)) {
            $depts .= "<option value='{$dept['deptid']}'>{$dept['dept']}</option>";
        }
    }
    $depts .= "</select>";
    # Get all permission exceptions
    db_conn('cubit');
    $sql = "SELECT * FROM perm";
    $rs = db_exec($sql);
    if (pg_numrows($rs) < 1) {
        return "there are not new permission to be added";
    }
    $perm = "";
    while ($scr = pg_fetch_array($rs)) {
        $perm .= "<tr class='bg-odd'><td><input type=hidden name=scripts[] value='{$scr['script']}'>{$scr['script']}</td><td>{$depts}</td><td><input type=text size=30 name=names[]></td></tr>";
    }
    $enter = "<h3>New Script(s)</h3>\r\n\t<form action='" . SELF . "' method=post>\r\n\t<input type=hidden name=key value=confirm>\r\n\t<table cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\r\n\t\t<tr><th>Name</th><th>Department</th></tr>\r\n\t\t{$perm}\r\n\t\t<tr><td><br></td></tr>\r\n\t\t<tr><td colspan=2 align=right><input type=submit value='Confirm &raquo;'></td></tr>\r\n\t</table>\r\n\t</form>\r\n\t<p>\r\n\t<table border=0 cellpadding='2' cellspacing='1'>\r\n\t\t<tr><th>Quick Links</th></tr>\r\n\t\t<tr class='bg-odd'><td><a href='main.php'>Main Menu</a></td></tr>\r\n\t</table>";
    return $enter;
}
function slctacc()
{
    # from period
    $prds = "<select name=prd>";
    db_conn(YR_DB);
    $sql = "SELECT * FROM info WHERE prdname !=''";
    $prdRslt = db_exec($sql);
    if (pg_numrows($prdRslt) < 1) {
        return "<li class=err>ERROR : There are no periods set for the current year";
    }
    while ($prd = pg_fetch_array($prdRslt)) {
        if ($prd['prddb'] == PRD_DB) {
            $sel = "selected";
        } else {
            $sel = "";
        }
        $prds .= "<option value='{$prd['prddb']}' {$sel}>{$prd['prdname']}</option>";
    }
    $prds .= "</select>";
    core_connect();
    $sql = "SELECT * FROM accounts WHERE div = '" . USER_DIV . "' ORDER BY accname ASC";
    $accRslt = db_exec($sql) or errDie("Could not retrieve Categories Information from the Database.", SELF);
    if (pg_numrows($accRslt) < 1) {
        return "<li class=err> There are no Accounts in Cubit.";
    }
    $accs = "<select name=accids[] multiple size=10>";
    while ($acc = pg_fetch_array($accRslt)) {
        $accs .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>";
    }
    $accs .= "</select>";
    $slctacc = "\n\t<p>\n\t<h3>General Ledger</h3>\n\t<h4>Select Options</h4>\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n\t<form action='" . SELF . "' method=post>\n\t<input type=hidden name=key value=viewtran>\n\t<tr><th>Field</th><th>Value</th></tr>\n\t<tr class='bg-even'><td valign=top>Accounts</td><td><input type=radio name=accnt value=slct checked=yes>Selected Accounts | <input type=radio name=accnt value=all>All Accounts</td></tr>\n\t<tr class='bg-odd'><td valign=top>Select account(s)</td><td>{$accs}</td></tr>\n\t<tr class='bg-even'><td>Select period</td><td>{$prds}</td></tr>\n\t<tr><td><br></td></tr>\n\t<tr><td align=center><input type=button value='&laquo Back' onClick='javascript:history.back()'></td><td align=center><input type=submit value='Continue &raquo;'></td></tr>\n\t</table>\n\t<p>\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width=25%>\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 target=_blank href='../core/acc-new2.php'>Add account (New Window)</a></td></tr>\n\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t</table>";
    return $slctacc;
}
function details($_GET)
{
    # get vars
    extract($_GET);
    # validate input
    require_lib("validate");
    $v = new validate();
    $v->isOk($prd, "num", 1, 20, "Invalid Period.");
    $v->isOk($purid, "num", 1, 20, "Invalid Order number.");
    # display errors, if any
    if ($v->isError()) {
        $err = "";
        $errors = $v->getErrors();
        foreach ($errors as $e) {
            $err .= "<li class='err'>" . $e["msg"] . "</li>";
        }
        $confirm .= "<p><input type='button' onClick='JavaScript:history.back();' value='&laquo; Correct submission'>";
        return $confirm;
    }
    # Get Order info
    db_conn($prd);
    $sql = "SELECT * FROM nons_purch_int WHERE purid = '{$purid}' AND div = '" . USER_DIV . "'";
    $purRslt = db_exec($sql) or errDie("Unable to get Order information");
    if (pg_numrows($purRslt) < 1) {
        return "<i class='err'>Not Found</i>";
    }
    $pur = pg_fetch_array($purRslt);
    # Currency
    $currs = getSymbol($pur['fcid']);
    $curr = $currs['symbol'];
    $currsel = "{$currs['symbol']} - {$currs['descrip']}";
    /* --- Start Products Display --- */
    # Products layout
    $products = "\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th>ITEM NUMBER</th>\n\t\t\t\t\t\t\t<th>DESCRIPTION</th>\n\t\t\t\t\t\t\t<th>QTY</th>\n\t\t\t\t\t\t\t<th colspan='2'>UNIT PRICE</th>\n\t\t\t\t\t\t\t<th colspan='2'>DUTY</th>\n\t\t\t\t\t\t\t<th>LINE TOTAL</th>\n\t\t\t\t\t\t<tr>";
    # get selected stock in this Order
    db_conn($prd);
    $sql = "SELECT * FROM nons_purint_items  WHERE purid = '{$purid}' AND div = '" . USER_DIV . "'";
    $stkdRslt = db_exec($sql);
    while ($stkd = pg_fetch_array($stkdRslt)) {
        # put in product
        $products .= "\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>{$stkd['cod']}</td>\n\t\t\t\t\t\t\t\t<td>{$stkd['des']}</td>\n\t\t\t\t\t\t\t\t<td>{$stkd['qty']}</td>\n\t\t\t\t\t\t\t\t<td nowrap>{$pur['curr']} {$stkd['cunitcost']} or </td>\n\t\t\t\t\t\t\t\t<td nowrap>" . CUR . " {$stkd['unitcost']}</td>\n\t\t\t\t\t\t\t\t<td nowrap>{$pur['curr']} {$stkd['duty']} or </td>\n\t\t\t\t\t\t\t\t<td>{$stkd['dutyp']}%</td>\n\t\t\t\t\t\t\t\t<td nowrap>{$pur['curr']} {$stkd['amt']}</td>\n\t\t\t\t\t\t\t</tr>";
    }
    $products .= "</table>";
    /* --- End Products Display --- */
    /* --- Start Some calculations --- */
    # Get subtotal
    $SUBTOT = sprint($pur['subtot']);
    # Get Total
    $TOTAL = sprint($pur['total']);
    # Get tax
    $tax = sprint($pur['tax']);
    /* --- End Some calculations --- */
    # format date
    list($pyear, $pmon, $pday) = explode("-", $pur['pdate']);
    list($dyear, $dmon, $dday) = explode("-", $pur['ddate']);
    /* -- Final Layout -- */
    $details = "\n\t\t\t\t\t<center>\n\t\t\t\t\t<h3>International Non-Stock Order Details</h3>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='95%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td valign='top'>\n\t\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th colspan='2'> Supplier Details </th>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Supplier</td>\n\t\t\t\t\t\t\t\t\t\t<td valign='center'>{$pur['supplier']}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Supplier Address</td>\n\t\t\t\t\t\t\t\t\t\t<td valign='center'><pre>{$pur['supaddr']}</pre></td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td valign='top' align='right'>\n\t\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th colspan='2'> Non-Stock Order Details </th>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Non-Stock Order No.</td>\n\t\t\t\t\t\t\t\t\t\t<td valign='center'>{$pur['purnum']}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Order No.</td>\n\t\t\t\t\t\t\t\t\t\t<td valign='center'>{$pur['ordernum']}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Terms</td>\n\t\t\t\t\t\t\t\t\t\t<td valign='center'>{$pur['terms']} Days</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Date</td>\n\t\t\t\t\t\t\t\t\t\t<td valign='center'>{$pday}-{$pmon}-{$pyear}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Foreign Currency</td>\n\t\t\t\t\t\t\t\t\t\t<td valign='center'>{$currsel} &nbsp;&nbsp;Exchange rate {$pur['curr']} {$pur['xrate']}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Tax</td>\n\t\t\t\t\t\t\t\t\t\t<td valign='center'>{$pur['curr']} {$pur['tax']}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Shipping Charges</td>\n\t\t\t\t\t\t\t\t\t\t<td valign='center'>{$pur['curr']} {$pur['shipchrg']}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Delivery Date</td>\n\t\t\t\t\t\t\t\t\t\t<td valign='center'>{$dday}-{$dmon}-{$dyear}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\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><td><br></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td colspan='2'>{$products}</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<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<th width='40%'>Quick Links</th>\n\t\t\t\t\t\t\t\t\t\t<th width='45%'>Remarks</th>\n\t\t\t\t\t\t\t\t\t\t<td rowspan='5' valign='top' width='15%'><br></td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td class='" . bg_class() . "'><a href='nons-purch-int-new.php'>New International Non-Stock Order</a></td>\n\t\t\t\t\t\t\t\t\t\t<td class='" . bg_class() . "' rowspan='4' align='center' valign='top'>" . nl2br($pur['remarks']) . "</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td><a href='nons-purch-int-view.php'>View International Non-Stock Orders</a></td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td align='right'>\n\t\t\t\t\t\t\t\t<table " . TMPL_tblDflts . " width='80%'>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>SUBTOTAL</td>\n\t\t\t\t\t\t\t\t\t\t<td align='right'>{$pur['curr']} {$pur['subtot']}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Delivery Charges</td>\n\t\t\t\t\t\t\t\t\t\t<td align='right'>{$pur['curr']} {$pur['shipping']}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<td>Tax </td>\n\t\t\t\t\t\t\t\t\t\t<td align='right'>{$pur['curr']} {$pur['tax']}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t\t<th>GRAND TOTAL</th>\n\t\t\t\t\t\t\t\t\t\t<td align='right'>{$pur['curr']} {$pur['total']}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t\t</form>\n\t\t\t\t\t</center>";
    return $details;
}
function slct()
{
    # check if setting exists
    db_connect();
    $sql = "SELECT value FROM set WHERE label = 'DEF_WH' AND div = '" . USER_DIV . "'";
    $Rslt = db_exec($sql) or errDie("Unable to check database for existing settings.");
    if (pg_numrows($Rslt) > 0) {
        $set = pg_fetch_array($Rslt);
        $whid = $set['value'];
    } else {
        $whid = 0;
    }
    db_conn("exten");
    $whs = "<select name='whid'>";
    $sql = "SELECT * FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC";
    $whRslt = db_exec($sql);
    if (pg_numrows($whRslt) < 1) {
        return "There are no Stores found in Cubit.";
    } else {
        while ($wh = pg_fetch_array($whRslt)) {
            if ($wh['whid'] == $whid) {
                $sel = "selected";
            } else {
                $sel = "";
            }
            $whs .= "<option value='{$wh['whid']}' {$sel}>({$wh['whno']}) {$wh['whname']}</option>";
        }
    }
    $whs .= "</select>";
    db_conn("cubit");
    //get the categories in a dropdown
    $cats = "<select name='cat'>";
    $Sl = "SELECT catid,cat FROM stockcat WHERE div = '" . USER_DIV . "' ORDER BY cat ASC";
    $Rs = db_exec($Sl);
    if (pg_numrows($Rs) < 1) {
        return "There are no categories found in Cubit.";
    } else {
        $cats .= "<option value='0'>All</option>";
        while ($wh = pg_fetch_array($Rs)) {
            $cats .= "<option value='{$wh['catid']}'>{$wh['cat']}</option>";
        }
    }
    $cats .= "</select>";
    //get the classifications in a dropdown
    $classes = "<select name='class'>";
    $Sl = "SELECT * FROM stockclass WHERE div = '" . USER_DIV . "' ORDER BY classname ASC";
    $Rs = db_exec($Sl);
    if (pg_numrows($Rs) < 1) {
        return "There are no classes found in Cubit.";
    } else {
        $classes .= "<option value='0'>All</option>";
        while ($wh = pg_fetch_array($Rs)) {
            $classes .= "<option value='{$wh['clasid']}'>{$wh['classname']}</option>";
        }
    }
    $classes .= "</select>";
    $slct = "\n\t\t<h3>Set Sales Rep Commission</h3>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='key' value='select'>\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Select Store</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td valign='center' colspan='2'>{$whs}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Select Category</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td valign='center' colspan='2'>{$cats}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Select Classification</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td valign='center' colspan='2'>{$classes}</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='button' value='&laquo Cancel' onClick='javascript:history.back();'></td>\n\t\t\t\t<td align='right'><input type='submit' value='Enter &raquo'></td>\n\t\t\t</tr>\n\t\t</form>\n\t\t</table>\n\t\t<p>\n\t\t<table border='0' cellpadding='2' cellspacing='1'>\n\t\t\t<tr>\n\t\t\t\t<th>Quick Links</th>\n\t\t\t</tr>\n\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t</table>";
    return $slct;
}
function view($custid)
{
    # validate input
    require_lib("validate");
    $v = new validate();
    $v->isOk($custid, "num", 1, 50, "Invalid customer id.");
    # display errors, if any
    if ($v->isError()) {
        $confirm = "";
        $errors = $v->getErrors();
        foreach ($errors as $e) {
            $confirm .= "<li class=err>-" . $e["msg"] . "<br>";
        }
        return $confirm;
    }
    # Select
    db_conn("toms");
    $sql = "SELECT * FROM customers WHERE custid = '{$custid}'";
    $custRslt = db_exec($sql) or errDie("Unable to access databse.", SELF);
    if (pg_numrows($custRslt) < 1) {
        return "<li> Invalid Customer ID.";
    } else {
        $cust = pg_fetch_array($custRslt);
        # get vars
        foreach ($cust as $key => $value) {
            ${$key} = $value;
        }
    }
    # get Category
    $sql = "SELECT * FROM categories WHERE catid = '{$category}'";
    $catRslt = db_exec($sql);
    if (pg_numrows($catRslt) < 1) {
        $category = "<li class=err>Category not Found.";
    } else {
        $cat = pg_fetch_array($catRslt);
        $category = $cat['category'];
    }
    # get Classification
    $sql = "SELECT * FROM class WHERE clasid = '{$class}'";
    $clasRslt = db_exec($sql);
    if (pg_numrows($clasRslt) < 1) {
        $class = "<li class=err>Class not Found.";
    } else {
        $clas = pg_fetch_array($clasRslt);
        $class = $clas['classname'];
    }
    # get Price List
    $sql = "SELECT * FROM pricelist WHERE listid = '{$pricelist}'";
    $listRslt = db_exec($sql);
    if (pg_numrows($listRslt) < 1) {
        $plist = "<li class=err>Class not Found.";
    } else {
        $list = pg_fetch_array($listRslt);
        $plist = $list['listname'];
    }
    // layout
    $confirm = "<h3>Customer Details</h3>\r\n\t<table cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\r\n\t<tr><th>Field</th><th>Value</th></tr>\r\n\t<tr class='bg-odd'><td>Acc No</td><td>{$accno}</td></tr>\r\n\t<tr class='bg-odd'><td>Surname/Company</td><td>{$surname}</td></tr>\r\n\t<tr class='bg-odd'><td>Title</td><td>{$title}</td></tr>\r\n\t<tr class='bg-odd'><td>Initials</td><td>{$init}</td></tr>\r\n\t<tr class='bg-odd'><td>First Name</td><td>{$firstname}</td></tr>\r\n\t<tr class='bg-odd'><td>Category</td><td>{$category}</td></tr>\r\n\t<tr class='bg-odd'><td>Classification</td><td>{$class}</td></tr>\r\n\t<tr class='bg-odd'><td>Postal Address</td><td><pre>{$paddr}</pre></td></tr>\r\n\t<tr class='bg-odd'><td>Delivery Address</td><td><pre>{$daddr}</pre></td></tr>\r\n\t<tr class='bg-odd'><td>Contact Name</td><td>{$contname}</td></tr>\r\n\t<tr class='bg-odd'><td>Business Tel.</td><td>{$bustel}</td></tr>\r\n\t<tr class='bg-odd'><td>Home Tel.</td><td>{$hometel}</td></tr>\r\n\t<tr class='bg-odd'><td>Cell No.</td><td>{$cellno}</td></tr>\r\n\t<tr class='bg-odd'><td>Fax No.</td><td>{$faxno}</td></tr>\r\n\t<tr class='bg-odd'><td>E-mail</td><td>{$email}</td></tr>\r\n\t<tr class='bg-odd'><td>Sale Term</td><td>{$saleterm}</td></tr>\r\n\t<tr class='bg-odd'><td>Trade Discount</td><td>{$traddisc}</td></tr>\r\n\t<tr class='bg-odd'><td>Settlement Discount</td><td>{$setdisc}</td></tr>\r\n\t<tr class='bg-odd'><td>Price List</td><td>{$plist}</td></tr>\r\n\t<tr class='bg-odd'><td>Charge Interest</td><td>{$chrgint}</td></tr>\r\n\t<tr class='bg-odd'><td>Overdue</td><td>{$overdue}</td></tr>\r\n\t<tr class='bg-odd'><td>Charge Vat</td><td>{$chrgvat}</td></tr>\r\n\t<tr class='bg-odd'><td>Vat Inclusive</td><td>{$vatinc}</td></tr>\r\n\t<tr class='bg-odd'><td>Account Open Date</td><td>{$odate}</td></tr>\r\n\t<tr class='bg-odd'><td>Credit Term</td><td>{$credterm}</td></tr>\r\n\t<tr class='bg-odd'><td>Credit Limit</td><td>{$credlimit}</td></tr>\r\n\t<tr class='bg-odd'><td>Block Account</td><td>{$blocked}</td></tr>\r\n\t<tr><td colspan=2 align=right><br></td></tr>\r\n\t</table>\r\n\t<p>\r\n\t<table border=0 cellpadding='2' cellspacing='1'>\r\n\t<tr><th>Quick Links</th></tr>\r\n\t<tr class='bg-odd'><td><a href='cust-view.php'>View Customers</a></td></tr>\r\n\t<tr class='bg-odd'><td><a href='index.php'>Index</a></td></tr>\r\n\t<tr class='bg-odd'><td><a href='toms-settings.php'>Settings</a></td></tr>\r\n\t<tr class='bg-odd'><td><a href='../main.php'>Main Menu</a></td></tr>\r\n\t</table>";
    return $confirm;
}
Exemple #27
0
function db_reqss($req)
{
        db_conn();
        $result = mysql_query($req);
        while ($rows[] = mysql_fetch_assoc($result));
        $rows = array_filter($rows);
        return $rows;
}
function report()
{
    $i = 0;
    $tottot = 0;
    $totout = 0;
    $totfor = 0;
    $totold = 0;
    $date = date("Y-m-d");
    $olddate = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - 30, date("Y")));
    db_conn('crm');
    $Sl = "SELECT id,name FROM teams ORDER BY name";
    $Ry = db_exec($Sl) or errDie("Unable to get teams from system.");
    $out = "<h3>Outstanding Query Statistics</h3>\r\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\r\n\t<tr><th>User</th><th>Total</th><th>Outstanding</th><th>Forwarded</th><th>Month or Older</th></tr>";
    while ($tdata = pg_fetch_array($Ry)) {
        $i++;
        $out .= "<tr class='" . bg_class() . "'><td colspan=5>{$tdata['name']}</td></tr>";
        $Sl = "SELECT name,userid FROM crms WHERE teamid='{$tdata['id']}' ORDER BY name";
        $Rt = db_exec($Sl) or errDie("Unabel to get users from system.");
        $teamtot = 0;
        $teamout = 0;
        $teamfor = 0;
        $teamold = 0;
        while ($udata = pg_fetch_array($Rt)) {
            $i++;
            $Sl = "SELECT count(id) FROM tokens WHERE userid='{$udata['userid']}'";
            $Rx = db_exec($Sl) or errDie("Unable to get user queries.");
            $data = pg_fetch_array($Rx);
            $usertot = $data['count'];
            $Sl = "SELECT count(id) FROM tokens WHERE userid='{$udata['userid']}' AND nextdate<='{$date}'";
            $Rx = db_exec($Sl) or errDie("Unable to get user queries2.");
            $data = pg_fetch_array($Rx);
            $userout = $data['count'];
            $Sl = "SELECT count(id) FROM tokens WHERE userid='{$udata['userid']}' AND nextdate>'{$date}'";
            $Rx = db_exec($Sl) or errDie("Unable to get user queries3.");
            $data = pg_fetch_array($Rx);
            $userfor = $data['count'];
            $Sl = "SELECT count(id) FROM tokens WHERE userid='{$udata['userid']}' AND opendate<='{$olddate}'";
            $Rx = db_exec($Sl) or errDie("Unable to get queries from system.");
            $data = pg_fetch_array($Rx);
            $userold = $data['count'];
            $out .= "<tr class='" . bg_class() . "'><td>{$udata['name']}</td><td>{$usertot}</td><td>{$userout}</td>\r\n\t\t\t<td>{$userfor}</td><td>{$userold}</td></tr>";
            $teamtot += $usertot;
            $teamout += $userout;
            $teamfor += $userfor;
            $teamold += $userold;
        }
        $i++;
        $out .= "<tr class='" . bg_class() . "'><td>Team Total</td><td>{$teamtot}</td><td>{$teamout}</td><td>{$teamfor}</td>\r\n\t\t<td>{$teamold}</td></tr>\r\n\r\n\t\t<tr><td><br></td></tr>";
        $tottot += $teamtot;
        $totout += $teamout;
        $totfor += $teamfor;
        $totold += $teamold;
    }
    $i++;
    $out .= "<tr class='" . bg_class() . "'><td><b>Total</b></td><td>{$tottot}</td><td>{$totout}</td><td>{$totfor}</td><td>{$totold}</td></tr>\r\n\t</table>";
    return $out;
}
function write($frm)
{
    extract($_REQUEST);
    if ($frm->validate("write")) {
        return confirm($frm);
    }
    pglib_transaction("BEGIN");
    db_conn('cubit');
    $user = USER_NAME;
    $Sql = "SELECT * FROM assets WHERE (dep_month='yes' AND remaction IS NULL)";
    $Rslt = db_exec($Sql) or errDie("Unable to access database.");
    $cc = "";
    $todate = mkdate($date_year, $date_month, $date_day);
    $ttime = mktimefd($todate);
    $refnum = getrefnum($todate);
    while ($led = pg_fetch_array($Rslt)) {
        if (empty($led["autodepr_date"])) {
            $led["autodepr_date"] = $led["date"];
        }
        explodeDate($led["autodepr_date"], $date_year, $date_month, $date_day);
        $ftime = mktime(0, 0, 0, $date_month, $date_day, $date_year);
        $depmonths = 0;
        while ($ftime < $ttime) {
            ++$depmonths;
            $ftime = mktime(0, 0, 0, $date_month + $depmonths, $date_day, $date_year);
        }
        if ($depmonths == 0) {
            continue;
        }
        $depperc = $led["dep_perc"];
        $ml_perc = $depperc * ($depmonths % 12 / 12);
        $years = ($depmonths - $depmonths % 12) / 12;
        $baseamt = $led["amount"] - $led["accdep"];
        $depamt = 0;
        /* yearly depreciations */
        for ($i = 1; $i <= $years; ++$i) {
            $depamt += ($baseamt - $depamt) * ($depperc / 100);
        }
        /* monthly depreciation */
        $depamt += ($baseamt - $depamt) * ($ml_perc / 100);
        $sql = "SELECT * FROM assetgrp WHERE grpid = '{$led['grpid']}' AND div = '" . USER_DIV . "'";
        $grpRslt = db_exec($sql);
        $grp = pg_fetch_array($grpRslt);
        writetrans($grp['depacc'], $grp['accdacc'], $todate, $refnum, $depamt, "{$led['des']} Depreciation");
        db_connect();
        $sql = "UPDATE assets SET accdep = (accdep + '{$depamt}'), autodepr_date='{$todate}'\r\n\t\t\t\tWHERE (id='{$led['id']}' AND div = '" . USER_DIV . "')";
        db_exec($sql) or errdie("Could not update assets table.");
        $snetval = $baseamt - $depamt;
        $sdate = date("Y-m-d");
        $sql = "INSERT INTO assetledger(assetid, asset, date, depamt, netval, div) \r\n\t\t\t\tVALUES ('{$led['id']}', '{$led['des']}', '{$todate}', '{$depamt}', '{$snetval}', '" . USER_DIV . "')";
        db_exec($sql) or errdie("Could not write to asset ledger.");
        $cc .= "CostCenter('ct', 'Asset Depreciation', '{$todate}', '{$led['des']} Depreciation', '{$depamt}', '');";
    }
    pglib_transaction("COMMIT");
    $write = "\r\n\t<script> \r\n\t{$cc}\r\n\t</script>\r\n\t<table " . TMPL_tblDflts . " width='50%'>\r\n\t\t<tr>\r\n\t\t\t<th>Auto Asset Depreciation</th>\r\n\t\t</tr>\r\n\t\t<tr class='datacell'>\r\n\t\t\t<td>Asset Depreciation has calculated and recorded.</td>\r\n\t\t</tr>\r\n\t</table>";
    return $write;
}
function view_err($_POST, $err = "")
{
    # get vars
    foreach ($_POST as $key => $value) {
        ${$key} = $value;
    }
    # Query server for depts
    db_conn("exten");
    $sql = "SELECT * FROM departments ORDER BY deptname ASC";
    $deptRslt = db_exec($sql) or errDie("Unable to view customers");
    if (pg_numrows($deptRslt) < 1) {
        return "<li class=err>There are no Departments found in Cubit.";
    } else {
        $depts = "<select name='deptid'>";
        while ($dept = pg_fetch_array($deptRslt)) {
            if ($dept['deptid'] == $deptid) {
                $sel = "selected";
            } else {
                $sel = "";
            }
            $depts .= "<option value='{$dept['deptid']}' {$sel}>{$dept['deptname']}</option>";
        }
        $depts .= "</select>";
    }
    //layout
    $view = "<br><br><form action='" . SELF . "' method=post name=form>\r\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width=400>\r\n\t\t<input type=hidden name=key value=slctcust>\r\n\t\t<input type=hidden name=cussel value=cussel>\r\n\t\t<tr><th colspan=2>Statement</th></tr>\r\n\t\t<tr><td colspan=2>{$err}</td></tr>\r\n\t\t<tr class='bg-odd'><td>Select Department</td><td valign=center>{$depts}</td></tr>\r\n\t\t<tr class='bg-even'><td>First Letters of customer</td><td valign=center><input type=text size=5 name=letters value='{$letters}' maxlength=5></td></tr>\r\n\t\t<tr><td><br></td></tr>\r\n\t\t<tr><td><input type=button value='&laquo Cancel' onClick='javascript:history.back();'></td><td valign=center><input type=submit value='Continue &raquo'></td></tr>\r\n\t</table></form>\r\n\t<p>\r\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\r\n\t\t<tr><th>Quick Links</th></tr>\r\n\t\t<tr class='bg-odd'><td><a href='invoice-view.php'>View Invoices</a></td></tr>\r\n\t\t<tr class='bg-odd'><td><a href='customers-new.php'>New Customer</a></td></tr>\r\n\t\t<script>document.write(getQuicklinkSpecial());</script>\r\n\t\t<tr class='bg-odd'><td><a href='main.php'>Main Menu</a></td></tr>\r\n\t</table>";
    return $view;
}