function show_xls($_POST)
{
    $OUT = show_report($_POST);
    $OUT = clean_html($OUT);
    require_lib("xls");
    StreamXLS("Leave", $OUT);
}
function print_report()
{
    $OUTPUT = clean_html(financialStatements::incomestmnt($_POST));
    switch ($_POST["key"]) {
        case ct("Print"):
            require "../tmpl-print.php";
            break;
        case ct("Save"):
            db_conn("core");
            $sql = "INSERT INTO save_income_stmnt (output, gendate, div) VALUES ('" . base64_encode($OUTPUT) . "', current_date, '" . USER_DIV . "')";
            $svincRslt = db_exec($sql) or errDie("Unable to save the balance sheet to Cubit.");
            return "<li class='err'>Income statement has been successfully saved to Cubit.</li>\n\t\t\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width=25%>\n\t\t\t\t<tr><th>Quick Links</th></tr>\n\t\t\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\t\t<tr class=datacell><td align=center><a href='index-reports.php'>Financials</a></td></tr>\n\t\t\t\t<tr class=datacell><td align=center><a href='index-reports-stmnt.php'>Current Year Financial Statements</a></td></tr>\n\t\t\t\t<tr class=datacell><td align=center><a href='../main.php'>Main Menu</td></tr>\n\t\t\t</table>";
            break;
        case ct("Export to Spreadsheet"):
            require_lib("xls");
            StreamXLS("income_statement", $OUTPUT);
            break;
    }
}
function export()
{
    $oc = array();
    /* add (if any) last closed year */
    $qry = new dbSelect("year", "core", grp(m("cols", "yrdb"), m("where", "closed='y'"), m("order", "yrname DESC"), m("limit", "1")));
    $qry->run();
    if ($qry->num_rows() > 0) {
        $qry->fetch_array();
        add_tbdata($oc, $qry->d["yrdb"], 1);
    }
    /* add current year */
    add_tbdata($oc, "core");
    /* generate output information */
    $headings = "<td rowspan='1'></td>";
    $subhead = "";
    $accinfo = array();
    /* go through each period */
    foreach ($oc as $name => $data) {
        $headings .= "<td colspan='1'>{$name}</td>";
        //$subhead .= "<th>Debit</th><th>Credit</th>";
        /* go through each account for current period */
        foreach ($data as $accname => $accdata) {
            if (!isset($accinfo[$accname])) {
                $accinfo[$accname] = "<td>{$accname}</td>";
            }
            $accinfo[$accname] .= "<td align='right'>" . fsmoney($accdata["debit"] - $accdata["credit"]) . "</td>";
        }
    }
    /* build output information */
    $OUT = "<table>";
    $OUT .= "<tr>{$headings}</tr>\n";
    //$OUT .= "<tr>$subhead</tr>\n";
    $OUT .= "<tr>" . implode("</tr>\n<tr>", $accinfo) . "</tr>";
    $OUT .= "</table>";
    /* stream information */
    $months = count($oc);
    // number of months of data we gathered
    StreamXLS("GeneralLedger{$months}", $OUT);
    return $OUT;
}
function display()
{
    extract($_REQUEST);
    $fields = array();
    $fields["from_year"] = date("Y");
    $fields["from_month"] = date("m");
    $fields["from_day"] = "01";
    $fields["to_year"] = date("Y");
    $fields["to_month"] = date("m");
    $fields["to_day"] = date("d");
    $fields["perc_search"] = "100";
    $fields["export"] = 0;
    extract($fields, EXTR_SKIP);
    $from_date = dateFmt($from_year, $from_month, $from_day);
    $to_date = dateFmt($to_year, $to_month, $to_day);
    $sql = "SELECT id, serial, des, grpname\r\n\t\t\tFROM cubit.assets\r\n\t\t\t\tLEFT JOIN cubit.assetgrp ON assets.grpid=assetgrp.grpid\r\n\t\t\tORDER BY serial ASC";
    $asset_rslt = db_exec($sql) or errDie("Unable to retrieve assets.");
    $asset_out = "";
    while ($asset_data = pg_fetch_array($asset_rslt)) {
        $percentage = utilisationPerc($asset_data["id"], $from_date, $to_date);
        if (!is_numeric($perc_search) || $percentage > $perc_search) {
            continue;
        }
        $asset_out .= "<tr class='" . bg_class() . "'>\r\n\t\t\t<td>{$asset_data['grpname']}</td>\r\n\t\t\t<td>" . getSerial($asset_data["id"]) . "</td>\r\n\t\t\t<td>{$asset_data['des']}</td>\r\n\t\t\t<td align='center'>\r\n\t\t\t\t<b>" . utilisationDays($asset_data["id"], $from_date, $to_date) . "</b>\r\n\t\t\t</td>\r\n\t\t\t<td align='center' >\r\n\t\t\t\t<b>{$percentage}%</b>\r\n\t\t\t</td>\r\n\t\t\t<td width='2%' bgcolor='" . ext_progressColor($percentage) . "'>&nbsp;</td>\r\n\t\t</tr>";
    }
    if (empty($asset_out)) {
        $asset_out = "<tr class='" . bg_class() . "'>\r\n\t\t\t<td colspan='6'><li>No results found</li></td>\r\n\t\t</tr>";
    }
    $OUTPUT = "<center>\r\n\t<h3>Hire Utilisation Report</h3>\r\n\t<form method='post' action='" . SELF . "'>\r\n\t<table " . TMPL_tblDflts . ">\r\n\t\t<tr>\r\n\t\t\t<th colspan='3'>Date Range</th>\r\n\t\t</tr>\r\n\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t<td>" . mkDateSelect("from", $from_year, $from_month, $from_day) . "</td>\r\n\t\t\t<td>&nbsp; <b> To </b> &nbsp;</td>\r\n\t\t\t<td>" . mkDateSelect("to", $to_year, $to_month, $to_day) . "</td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<th colspan='3'>Utilisation Percentage Filter (Less Than or Equal)</th>\r\n\t\t</tr>\r\n\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t<td colspan='3' align='center'>\r\n\t\t\t\t<input type='text' name='perc_search' value='{$perc_search}'\r\n\t\t\t\tsize='2' style='text-align: center' />%\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<td colspan='3' align='center'>\r\n\t\t\t\t<input type='submit' value='Apply to Report'\r\n\t\t\t\tstyle='font-weight: bold; font-size: 1.1em' />\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</table>\r\n\t</form>";
    $OUTPUT .= $xls_out = "\r\n\t<h3>Hire Utilisation Report For {$from_date} to {$to_date}</h3>\r\n\t<table " . TMPL_tblDflts . " width='70%'>\r\n\t\t<tr>\r\n\t\t\t<th>Group</th>\r\n\t\t\t<th>Serial</th>\r\n\t\t\t<th>Description</th>\r\n\t\t\t<th>Days Hired</th>\r\n\t\t\t<th>Utilisation Percentage</th>\r\n\t\t\t<th width='2%'>&nbsp;</th>\r\n\t\t</tr>\r\n\t\t{$asset_out}\r\n\t</table>";
    $OUTPUT .= "\r\n\t<form method='post' action='" . SELF . "'>\r\n\t\t<input type='hidden' name='export' value='1' />\r\n\t\t<input type='submit' value='Export to Spreadsheet' />\r\n\t</form>\r\n\t</center>";
    if ($export) {
        $xls_out = clean_html($xls_out);
        require_lib("xls");
        StreamXLS("hire_utilisation", $xls_out);
    }
    return $OUTPUT;
}
function export()
{
    global $_POST;
    $OUT = printStk($_POST);
    $OUT = clean_html($OUT);
    require_lib("xls");
    StreamXLS("Stock", $OUT);
}
#
#
#
#
require "settings.php";
$pure = isset($_GET["xls"]);
# show asset ledger
if (isset($_GET["type"]) && $_GET["type"] == "p") {
    $OUTPUT = prevAssetLedg($pure);
} else {
    $OUTPUT = AssetLedg($pure);
}
if (isset($_GET["xls"])) {
    require_lib("xls");
    $OUTPUT = clean_html($OUTPUT);
    StreamXLS("Assets", $OUTPUT);
}
require "template.php";
# show stock
function AssetLedg($pure = false)
{
    extract($_REQUEST);
    $fields = array();
    $fields["group_id"] = 0;
    $fields["type_id"] = 0;
    extract($fields, EXTR_SKIP);
    # Set up table to display in
    $Assets = "";
    if (!$pure) {
        $sql = "SELECT grpid, grpname FROM cubit.assetgrp ORDER BY grpname ASC";
        $group_rslt = db_exec($sql) or errDie("Unable to retrieve asset group.");
#
#
#
#
#
#
#
# Get settings
require "../settings.php";
require "../core-settings.php";
if (isset($_POST["key"])) {
    switch ($_POST["key"]) {
        case "spreadsheet":
            $OUTPUT = clean_html(viewtran($_POST));
            require_lib("xls");
            StreamXLS("ledgerprd", $OUTPUT);
            break;
        case "viewtran":
            if (isset($_POST['continue'])) {
                $OUTPUT = viewtran($_POST);
            } else {
                $OUTPUT = slctacc();
            }
            break;
        default:
            $OUTPUT = slctacc();
    }
} else {
    $OUTPUT = slctacc();
}
# Get templete
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;
}
function excel()
{
    $OUTPUT = clean_html(printAgeInv($_POST, FALSE));
    require_lib("xls");
    StreamXLS("Debtors Age Analysis", $OUTPUT);
}
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;
}
function export_data($_POST)
{
    extract($_POST);
    require_lib("xls");
    $data = clean_html(viewtran($_POST));
    StreamXLS("suppledger", "{$data}");
}
function export_data($_POST)
{
    extract($_POST);
    require_lib("xls");
    $data = clean_html(printCenter($_POST));
    StreamXLS("costcenter_report", "{$data}");
}
function export()
{
    $OUT = clean_html(printCust());
    require_lib("xls");
    StreamXLS("CustomerList", $OUT);
}
function excel()
{
    $OUTPUT = clean_html(viewtran($_POST, true));
    require_lib("xls");
    StreamXLS("Debtors Ledger", $OUTPUT);
}
function viewtran($_POST)
{
    # Get vars
    foreach ($_POST as $key => $value) {
        ${$key} = $value;
    }
    # validate input
    require_lib("validate");
    $v = new validate();
    $v->isOk($prd, "string", 1, 14, "Invalid Period number.");
    $v->isOk($accnt, "string", 1, 9, "Invalid Accounts Selection.");
    if ($accnt == 'slct') {
        if (isset($accids)) {
            foreach ($accids as $key => $accid) {
                $v->isOk($accid, "num", 1, 20, "Invalid Account number.");
            }
        } else {
            $v->isOk("###", "num", 0, 0, "ERROR : Please select at least one account.");
        }
    }
    # display errors, if any
    if ($v->isError()) {
        $confirm = "";
        $errors = $v->getErrors();
        foreach ($errors as $e) {
            $confirm .= "<li class=err>" . $e["msg"];
        }
        $confirm .= "<p><input type=button onClick='JavaScript:history.back();' value='&laquo; Correct submission'>";
        return $confirm;
    }
    # Get the ids
    if ($accnt == 'all') {
        $accids = array();
        core_connect();
        $sql = "SELECT accid FROM accounts WHERE div = '" . USER_DIV . "'";
        $rs = db_exec($sql);
        if (pg_num_rows($rs) > 0) {
            while ($ac = pg_fetch_array($rs)) {
                $accids[] = $ac['accid'];
            }
        } else {
            return "<li calss=err> There are no accounts yet in Cubit.";
        }
    }
    # Period name
    $prdname = prdname($prd);
    $trans = "";
    foreach ($accids as $key => $accid) {
        $accRs = get("core", "accname, accid, topacc, accnum", "accounts", "accid", $accid);
        $acc = pg_fetch_array($accRs);
        # Get balances
        $idRs = get($prd, "max(id), min(id)", "ledger", "acc", $accid);
        $id = pg_fetch_array($idRs);
        if ($id['min'] != 0) {
            $balRs = get($prd, "(cbalance-credit) as cbalance,(dbalance-debit) as dbalance", "ledger", "id", $id['min']);
            $bal = pg_fetch_array($balRs);
            $cbalRs = get($prd, "cbalance,dbalance", "ledger", "id", $id['max']);
            $cbal = pg_fetch_array($cbalRs);
        } else {
            if ($prd != PRD_DB) {
                continue;
            }
            $balRs = get("core", "credit as cbalance, debit as dbalance", "trial_bal", "accid", $accid);
            $bal = pg_fetch_array($balRs);
            $cbal['cbalance'] = 0;
            $cbal['dbalance'] = 0;
        }
        if ($bal['dbalance'] > $bal['cbalance']) {
            $bal['dbalance'] = sprint($bal['dbalance'] - $bal['cbalance']);
            $bal['cbalance'] = "";
            $balance = $bal['dbalance'];
            $fl = "DR";
        } elseif ($bal['cbalance'] > $bal['dbalance']) {
            $bal['cbalance'] = sprint($bal['cbalance'] - $bal['dbalance']);
            $bal['dbalance'] = "";
            $balance = $bal['cbalance'];
            $fl = "CR";
        } else {
            $bal['cbalance'] = "";
            $bal['dbalance'] = "";
            $balance = "0.00";
            $fl = "";
        }
        $balance = sprint($balance);
        $bal['cbalance'] = sprint($bal['cbalance']);
        $bal['dbalance'] = sprint($bal['dbalance']);
        global $MONPRD, $PRDMON;
        // calculate which year the current period is in
        $prd_y = getFinYear() - 1;
        if ($prd < $PRDMON[1]) {
            ++$prd_y;
        }
        // make the date of the last day of the previous prd
        $bbf_date = date("t-M-Y", mktime(0, 0, 0, $prd - 1, 1, $prd_y));
        $trans .= "\n\t\t<tr>\n\t\t\t<td colspan='8'><b>{$acc['topacc']}/{$acc['accnum']} - {$acc['accname']}</b></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td colspan='2' align='right'>{$bbf_date}</td>\n\t\t\t<td>Br/Forwd</td>\n\t\t\t<td>Brought Forward</td>\n\t\t\t<td align='right'>{$bal['dbalance']}</td>\n\t\t\t<td align='right'>{$bal['cbalance']}</td>\n\t\t\t<td align='right'>{$balance} {$fl}</td>\n\t\t\t<td>&nbsp;</td>\n\t\t</tr>";
        # --> transactio reding comes here <--- #
        $dbal['debit'] = 0;
        $dbal['credit'] = 0;
        if ($t == "s") {
            $tranRs = get($prd, "*", "ledger", "acc", $accid);
        } else {
            $tranRs = get($prd, "*", "ledger", "acc", $accid, "ORDER BY edate,id");
        }
        while ($tran = pg_fetch_array($tranRs)) {
            $dbal['debit'] += $tran['debit'];
            $dbal['credit'] += $tran['credit'];
            if ($t == "t") {
                $tran['dbalance'] = $dbal['debit'] + $bal['dbalance'];
                $tran['cbalance'] = $dbal['credit'] + $bal['cbalance'];
            }
            # Current(Running) balance
            if ($tran['dbalance'] > $tran['cbalance']) {
                $tran['dbalance'] = sprint($tran['dbalance'] - $tran['cbalance']);
                $tran['cbalance'] = "";
                $cbalance = $tran['dbalance'];
                $cfl = "DR";
            } elseif ($tran['cbalance'] > $tran['dbalance']) {
                $tran['cbalance'] = sprint($tran['cbalance'] - $tran['dbalance']);
                $tran['dbalance'] = "";
                $cbalance = $tran['cbalance'];
                $cfl = "CR";
            } else {
                $tran['cbalance'] = "";
                $tran['dbalance'] = "";
                $cbalance = "0.00";
                $cfl = "";
            }
            if ($t == "s") {
                $tran['edate'] = $tran['sdate'];
            }
            # Format date
            $tran['edate'] = explode("-", $tran['edate']);
            $tran['edate'] = $tran['edate'][2] . "-" . $tran['edate'][1] . "-" . $tran['edate'][0];
            $tran['debit'] = sprint($tran['debit']);
            $tran['credit'] = sprint($tran['credit']);
            $trans .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><br></td>\n\t\t\t\t\t\t<td>{$tran['edate']}</td>\n\t\t\t\t\t\t<td>{$tran['eref']}</td>\n\t\t\t\t\t\t<td>{$tran['descript']}</td>\n\t\t\t\t\t\t<td align='right'>{$tran['debit']}</td>\n\t\t\t\t\t\t<td align='right'>{$tran['credit']}</td>\n\t\t\t\t\t\t<td align='right'>{$cbalance} {$cfl}</td>\n\t\t\t\t\t\t<td>{$tran['ctopacc']}/{$tran['caccnum']} - {$tran['caccname']}</td>\n\t\t\t\t\t</tr>";
        }
        # Total balance changes
        if ($dbal['debit'] > $dbal['credit']) {
            $dbal['debit'] = sprint($dbal['debit'] - $dbal['credit']);
            $dbal['credit'] = "";
        } elseif ($dbal['credit'] > $dbal['debit']) {
            $dbal['credit'] = sprint($dbal['credit'] - $dbal['debit']);
            $dbal['debit'] = "";
        } else {
            $dbal['credit'] = "";
            $dbal['debit'] = "0.00";
        }
        $trans .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2'><br></td>\n\t\t\t\t\t<td>A/C Total</td>\n\t\t\t\t\t<td>Total for period {$prdname} to Date :</td>\n\t\t\t\t\t<td align='right'>{$dbal['debit']}</td>\n\t\t\t\t\t<td align='right'>{$dbal['credit']}</td>\n\t\t\t\t\t<td align='right'></td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t</tr>";
        $trans .= "<tr><td colspan=8><br></td></tr>";
    }
    $sp = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    $OUTPUT = "\n\t\t\t<center>\n\t\t\t<h3>General Ledger</h3>\n\t\t\t<table " . TMPL_tblDflts . " width='90%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td width='50%' align='left' colspan='4'>" . COMP_NAME . "</td>\n\t\t\t\t\t<td width='50%' align='right' colspan='4'>" . date("Y-m-d") . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr><td colspan='8'><br></td></tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>{$sp}</td>\n\t\t\t\t\t<th>Date</th>\n\t\t\t\t\t<th>Reference</th>\n\t\t\t\t\t<th>Description</th>\n\t\t\t\t\t<th>Debit</th>\n\t\t\t\t\t<th>Credit</th>\n\t\t\t\t\t<th>Balance</th>\n\t\t\t\t\t<th>Contra Acc</th>\n\t\t\t\t</tr>\n\t\t\t\t{$trans}\n\t\t\t<table>";
    require_lib("xls");
    StreamXLS("GeneralLedger" . date("dmY"), $OUTPUT);
    # return $view;
}
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;
}
function print_report()
{
    $OUTPUT = clean_html(financialStatements::trialbal($_POST));
    switch ($_POST["key"]) {
        case ct("Print"):
            require "../tmpl-print.php";
            break;
        case ct("Save"):
            db_conn("core");
            $sql = "INSERT INTO save_trial_bal (output, gendate, div) VALUES ('" . base64_encode($OUTPUT) . "', current_date, '" . USER_DIV . "')";
            $svincRslt = db_exec($sql) or errDie("Unable to save the trial balance to Cubit.");
            return "\n\t\t\t\t<li>Trial Balance has been successfully saved to Cubit.</li>\n\t\t\t\t<table " . TMPL_tblDflts . " width='25%'>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Quick Links</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='datacell'>\n\t\t\t\t\t\t<td align='center'><a target=_blank href='../core/acc-new2.php'>Add account (New Window)</a></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='datacell'>\n\t\t\t\t\t\t<td align='center'><a href='index-reports.php'>Financials</a></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='datacell'>\n\t\t\t\t\t\t<td align='center'><a href='index-reports-stmnt.php'>Current Year Financial Statements</a></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='datacell'>\n\t\t\t\t\t\t<td align='center'><a href='../main.php'>Main Menu</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>";
            break;
        case ct("Export to Spreadsheet"):
            require_lib("xls");
            StreamXLS("trial_balance", $OUTPUT);
            break;
    }
}
function export()
{
    $OUT = clean_html(viewtran($_POST));
    require_lib("xls");
    StreamXLS("year_review_ledger", $OUT);
}
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 excel()
{
    $OUTPUT = clean_html(display());
    require_lib("xls");
    StreamXLS("Gross Profit", $OUTPUT);
}
function export_data($_POST)
{
    require_lib("xls");
    extract($_POST);
    $data = clean_html(printCenter($_POST));
    //$data =get_data($_POST);
    StreamXLS("report", "{$data}");
}
 function Stream($filename, $output)
 {
     StreamXLS($filename, $output);
 }