function alloc($_POST, $err = "") { extract($_POST); if (isset($back)) { if (isset($e)) { header("Location: cashbook-entry.php"); exit; } return sel_cus($_POST); } if (isset($print_recpt) and strlen($print_recpt) > 0) { $send_print = "<input type='hidden' name='print_recpt' value='{$print_recpt}'>"; } else { $send_print = ""; } if (isset($bulk_pay) and strlen($bulk_pay) > 0) { $send_bulk = "<input type='hidden' name='bulk_pay' value='yes'>"; } else { $send_bulk = ""; } $all = 0; $date_arr = explode("-", $tdate); $date_year = $date_arr[0]; $date_month = $date_arr[1]; $date_day = $date_arr[2]; require_lib("validate"); $v = new validate(); $v->isOk($bankid, "num", 1, 30, "Select Bank Account."); $v->isOk($date_day, "num", 1, 2, "Invalid Date day."); $v->isOk($all, "num", 1, 1, "Invalid allocation."); $v->isOk($date_month, "num", 1, 2, "Invalid Date month."); $v->isOk($date_year, "num", 1, 4, "Invalid Date Year."); $v->isOk($descript, "string", 0, 255, "Invalid Description."); $v->isOk($reference, "string", 0, 50, "Invalid Reference Name/Number."); $v->isOk($cheqnum, "num", 0, 30, "Invalid Cheque number."); $v->isOk($amt, "float", 1, 40, "Invalid amount."); $v->isOk($cusid, "num", 1, 10, "Invalid customer number."); if (strlen($date_year) != 4) { $v->isOk($bankname, "num", 1, 1, "Invalid Date year."); } if ($amt < 0.01) { $v->addError($amt, "Amount too small."); } $date = $date_day . "-" . $date_month . "-" . $date_year; if (!checkdate($date_month, $date_day, $date_year)) { $v->isOk($date, "num", 1, 1, "Invalid date."); } if ($v->isError()) { $confirm = $v->genErrors(); $confirm .= "<br>" . "<input type='button' onClick='history.back();' value='« Correction'>"; return $confirm; //.alloc($_POST); } # CHECK IF THIS DATE IS IN THE BLOCKED RANGE $blocked_date_from = getCSetting("BLOCKED_FROM"); $blocked_date_to = getCSetting("BLOCKED_TO"); if (strtotime($date) >= strtotime($blocked_date_from) and strtotime($date) <= strtotime($blocked_date_to) and !user_is_admin(USER_ID)) { return "<li class='err'>Period Range Is Blocked. Only an administrator can process entries within this period.</li>"; } // bank account name if ($bankid == "0" or ($bank = qryBankAcct($bankid, "accname, bankname")) === false) { $bank['accname'] = "Cash"; $bank['bankname'] = ""; } // customer name $cus = qryCustomer($cusid, "cusname, surname"); if ($print_recpt == "yes") { $show_print_recpt = "Yes"; } else { $show_print_recpt = "No"; } $confirm = "\n\t\t<h3>New Bank Receipt</h3>\n\t\t{$err}\n\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t<input type='hidden' name='key' value='confirm'>\n\t\t\t<input type='hidden' name='accnum' value=''>\n\t\t\t<input type='hidden' name='bankid' value='{$bankid}'>\n\t\t\t<input type='hidden' name='date' value='{$date}'>\n\t\t\t<input type='hidden' name='all' value='{$all}'>\n\t\t\t<input type='hidden' name='cusid' value='{$cusid}'>\n\t\t\t<input type='hidden' name='date_day' value='{$date_day}'>\n\t\t\t<input type='hidden' name='date_month' value='{$date_month}'>\n\t\t\t<input type='hidden' name='date_year' value='{$date_year}'>\n\t\t\t<input type='hidden' name='descript' value='{$descript}'>\n\t\t\t<input type='hidden' name='reference' value='{$reference}'>\n\t\t\t<input type='hidden' name='cheqnum' value='{$cheqnum}'>\n\t\t\t<input type='hidden' name='amt' value='{$amt}'>\n\t\t\t{$send_bulk}\n\t\t\t{$send_print}\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Field</th>\n\t\t\t\t<th>Value</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Account</td>\n\t\t\t\t<td>{$bank['accname']} - {$bank['bankname']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Date</td>\n\t\t\t\t<td valign='center'>{$date}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Received from</td>\n\t\t\t\t<td valign='center'>{$cus['cusname']} {$cus['surname']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Description</td>\n\t\t\t\t<td valign='center'>" . nl2br($descript) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Reference</td>\n\t\t\t\t<td valign='center'>{$reference}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Cheque Number</td>\n\t\t\t\t<td valign='center'>{$cheqnum}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Amount</td>\n\t\t\t\t<td valign='center'>" . CUR . " {$amt}</td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Print Receipt</td>\n\t\t\t\t<td>{$show_print_recpt}</td>\n\t\t\t</tr>"; /* OPTION 1 : AUTO ALLOCATE (allocate) */ #we need a new why of allocating this ... stock,nonstock,pos order is counter productive #so, we get them all into an array, and sort that ... if ($all == 0) { $out = $amt; $invs_arr = array(); // Connect to database db_connect(); #####################[ GET OUTSTANDING INVOICES ]###################### $sql = "SELECT invnum, invid, balance, terms, odate FROM invoices WHERE cusnum = '{$cusid}' AND printed = 'y' AND balance>0 AND div = '" . USER_DIV . "' ORDER BY odate ASC"; $prnInvRslt = db_exec($sql); while (($inv = pg_fetch_array($prnInvRslt)) && $out > 0) { $invs_arr[] = array("s", $inv['odate'], "{$inv['invid']}", "{$inv['balance']}"); } #####################[ GET OUTSTANDING NON STOCK INVOICES ]###################### $sql = "SELECT invnum, invid, balance, odate FROM nons_invoices WHERE cusid='{$cusid}' AND done='y' AND balance>0 AND div='" . USER_DIV . "' ORDER BY odate ASC"; $prnInvRslt = db_exec($sql); while (($inv = pg_fetch_array($prnInvRslt)) && $out > 0) { $invs_arr[] = array("n", $inv['odate'], "{$inv['invid']}", "{$inv['balance']}"); } $out = sprint($out); #####################[ GET OUTSTANDING POS INVOICES ]###################### $sqls = array(); for ($i = 1; $i <= 12; ++$i) { $sqls[] = "\n\t\t\t\tSELECT invnum, invid, balance, odate \n\t\t\t\tFROM \"{$i}\".pinvoices \n\t\t\t\tWHERE cusnum='{$cusid}' AND done='y' AND balance > 0 AND div='" . USER_DIV . "'"; } $sql = implode(" UNION ", $sqls); $prnInvRslt = db_exec($sql); while ($inv = pg_fetch_array($prnInvRslt)) { $invs_arr[] = array("p", $inv['odate'], "{$inv['invid']}", "{$inv['balance']}"); } if (isset($invs_arr) and is_array($invs_arr)) { $confirm .= "\n\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Type</th>\n\t\t\t\t\t<th>Invoice</th>\n\t\t\t\t\t<th>Outstanding Amount</th>\n\t\t\t\t\t<th></th>\n\t\t\t\t\t<th>Date</th>\n\t\t\t\t\t<th>Amount</th>\n\t\t\t\t</tr>"; } #compile results into an array we can sort by date $search_arr = array(); foreach ($invs_arr as $key => $array) { $search_arr[$key] = $array[1]; } #sort array by date asort($search_arr); #add sorted invoices to payment listing foreach ($search_arr as $key => $date) { $arr = $invs_arr[$key]; if ($arr[0] == "s") { $get_sql = "SELECT invnum, invid, balance, terms, odate FROM invoices WHERE cusnum = '{$cusid}' AND printed = 'y' AND balance>0 AND div = '" . USER_DIV . "' AND invid = '{$arr['2']}' LIMIT 1"; $run_sql = db_exec($get_sql) or errDie("Unable to get stock invoice information."); if (pg_numrows($run_sql) > 0) { $inv = pg_fetch_array($run_sql); $invid = $inv['invid']; $val = allocamt($out, $inv["balance"]); $confirm .= "\n\t\t\t\t\t\t<input type='hidden' name='paidamt[{$invid}]' size='10' value='{$val}'>\n\t\t\t\t\t\t<input type='hidden' size='20' name='invids[{$invid}]' value='{$inv['invid']}'>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td>Stock Invoice</td>\n\t\t\t\t\t\t\t<td>{$inv['invnum']}</td>\n\t\t\t\t\t\t\t<td>" . CUR . " {$inv['balance']}</td>\n\t\t\t\t\t\t\t<td>{$inv['terms']} days</td>\n\t\t\t\t\t\t\t<td>{$inv['odate']}</td>\n\t\t\t\t\t\t\t<td>" . CUR . " {$val}</td>\n\t\t\t\t\t\t</tr>"; } } elseif ($arr[0] == "n") { //sdate as $get_sql = "SELECT invnum, invid, balance, odate FROM nons_invoices WHERE cusid='{$cusid}' AND done='y' AND balance>0 AND div='" . USER_DIV . "' AND invid = '{$arr['2']}' LIMIT 1"; $run_sql = db_exec($get_sql) or errDie("Unable to get non stock information."); if (pg_numrows($run_sql) > 0) { $inv = pg_fetch_array($run_sql); $invid = $inv['invid']; $val = allocamt($out, $inv["balance"]); $confirm .= "\n\t\t\t\t\t\t<input type='hidden' name='paidamt[{$invid}]' value='{$val}'>\n\t\t\t\t\t\t<input type='hidden' name='itype[{$invid}]' value='Yes'>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td>Non Stock Invoice</td>\n\t\t\t\t\t\t\t<td><input type='hidden' size='20' name='invids[{$invid}]' value='{$inv['invid']}'>{$inv['invnum']}</td>\n\t\t\t\t\t\t\t<td>" . CUR . " {$inv['balance']}</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td>{$inv['odate']}</td>\n\t\t\t\t\t\t\t<td>" . CUR . " {$val}</td>\n\t\t\t\t\t\t</tr>"; } } else { $sqls = array(); for ($i = 1; $i <= 12; ++$i) { $sqls[] = "\n\t\t\t\t\t\tSELECT invnum, invid, balance, odate \n\t\t\t\t\t\tFROM \"{$i}\".pinvoices \n\t\t\t\t\t\tWHERE cusnum='{$cusid}' AND done='y' AND balance > 0 AND div='" . USER_DIV . "' AND invid = '{$arr['2']}'"; } $get_sql = implode(" UNION ", $sqls); $run_sql = db_exec($get_sql) or errDie("Unable to get pos invoice information."); if (pg_numrows($run_sql) > 0) { $inv = pg_fetch_array($run_sql); $invid = $inv['invid']; $val = allocamt($out, $inv["balance"]); $confirm .= "\n\t\t\t\t\t\t<input type='hidden' size='20' name='invids[{$invid}]' value='{$inv['invid']}'>\n\t\t\t\t\t\t<input type='hidden' name='paidamt[{$invid}]' size='10' value='{$val}'>\n\t\t\t\t\t\t<input type='hidden' name='ptype[{$invid}]' value='YnYn'>\n\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t<td>POS Invoice</td>\n\t\t\t\t\t\t\t<td>{$inv['invnum']}</td>\n\t\t\t\t\t\t\t<td>" . CUR . " {$inv['balance']}</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td>{$inv['odate']}</td>\n\t\t\t\t\t\t\t<td>" . CUR . " {$val}</td>\n\t\t\t\t\t\t</tr>"; } } } #if there is any amount unallocated, it goes to general transaction $confirm .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan='6'><b>A general transaction will credit the client's account with " . CUR . " {$out} </b></td>\n\t\t\t</tr>"; } vsprint($out); $confirm .= "\n\t\t\t<input type='hidden' name='out' value='{$out}'>\n\t\t\t<tr>\n\t\t\t\t<td><input type='submit' name='back' value='« Correction'></td>\n\t\t\t\t<td align='right'><input type='submit' value='Confirm »'></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t</form>" . mkQuickLinks(ql("../core/trans-new.php", "Journal Transactions"), ql("../customers-view.php", "View Customers")); return $confirm; }
function alloc($_POST) { extract($_POST); if (isset($back)) { if (isset($e)) { header("Location: cashbook-entry.php"); exit; } return sel_cus($_POST); } $passon = ""; require_lib("validate"); $v = new validate(); $v->isOk($all, "num", 1, 1, "Invalid allocation."); for ($i = 0; $i < $rec_amount; $i++) { if (!isset($descript[$i]) or !isset($reference[$i]) or !isset($setamt[$i]) or empty($descript[$i]) or empty($reference[$i]) or empty($setamt[$i])) { continue; } $v->isOk($bankid[$i], "num", 1, 30, "Select Bank Account."); $v->isOk($date_day[$i], "num", 1, 2, "Invalid Date day."); $v->isOk($date_month[$i], "num", 1, 2, "Invalid Date month."); $v->isOk($date_year[$i], "num", 1, 4, "Invalid Date Year."); $v->isOk($descript[$i], "string", 0, 255, "Invalid Description."); $v->isOk($reference[$i], "string", 0, 50, "Invalid Reference Name/Number."); $v->isOk($cheqnum[$i], "num", 0, 30, "Invalid Cheque number."); $v->isOk($amt[$i], "float", 1, 40, "Invalid amount."); $v->isOk($setamt[$i], "float", 1, 40, "Invalid Settlement Amount."); $v->isOk($setvat[$i], "string", 1, 10, "Invalid Settlement VAT Option."); $v->isOk($setvatcode[$i], "string", 1, 40, "Invalid Settlement VAT code"); $v->isOk($cusid[$i], "num", 1, 10, "Invalid customer number."); if (strlen($date_year[$i]) != 4) { $v->isOk($bankname, "num", 1, 1, "Invalid Date year."); } if ($amt < 0.01) { $v->addError($amt[$i], "Amount too small."); } $date[$i] = $date_day[$i] . "-" . $date_month[$i] . "-" . $date_year[$i]; if (!checkdate($date_month[$i], $date_day[$i], $date_year[$i])) { $v->isOk($date[$i], "num", 1, 1, "Invalid date."); } // bank account name if (($bank = qryBankAcct($bankid[$i], "accname, bankname")) === false) { $bank[$i]['accname'] = "Cash"; $bank[$i]['bankname'] = ""; } // customer name $cus[$i] = qryCustomer($cusid[$i], "cusnum, cusname, surname"); } if ($v->isError()) { $confirm = $v->genErrors(); return $confirm . method($_POST); } // <input type='hidden' name='bankid' value='$bankid'> $cust_arr = array(); $confirm = "\n\t\t<h3>New Bank Receipt</h3>\n\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t<input type='hidden' name='key' value='confirm'>\n\t\t\t<input type='hidden' name='accnum' value=''>\n\t\t\t<input type='hidden' name='rec_amount' value='{$rec_amount}'>\n\t\t\t<input type='hidden' name='all' value='{$all}'>\n\t\t<table " . TMPL_tblDflts . ">"; for ($t = 0; $t < $rec_amount; $t++) { if (!isset($descript[$t]) or !isset($reference[$t]) or !isset($setamt[$t]) or empty($descript[$t]) or empty($reference[$t]) or empty($setamt[$t])) { continue; } $cus0 = $cus[$t]['cusnum']; $cus1 = $cus[$t]['cusname']; $cus2 = $cus[$t]['surname']; // we dont do this ... // $amt[$t] = $amt[$t] + $setamt[$t]; $amt[$t] = sprint($amt[$t]); $setamt[$t] = sprint($setamt[$t]); if ($setvat[$t] == "inc") { $showsetvat = "VAT Inclusive"; } else { $showsetvat = "No VAT"; } $confirm .= "\n\t\t\t<tr>\n\t\t\t\t<th>Field</th>\n\t\t\t\t<th>Value</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Account</td>\n\t\t\t\t<td>{$bank['accname']} - {$bank['bankname']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Date</td>\n\t\t\t\t<td valign='center'>{$date[$t]}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Received from</td>\n\t\t\t\t<td valign='center'>{$cus1} {$cus2}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Description</td>\n\t\t\t\t<td valign='center'>" . nl2br($descript[$t]) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Reference</td>\n\t\t\t\t<td valign='center'>{$reference[$t]}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Cheque Number</td>\n\t\t\t\t<td valign='center'>{$cheqnum[$t]}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Amount</td>\n\t\t\t\t<td valign='center'>" . CUR . " {$amt[$t]}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Settlement Discount</td>\n\t\t\t\t<td valign='center'>" . CUR . " {$setamt[$t]} {$showsetvat}</td>\n\t\t\t</tr>"; /* OPTION 1 : AUTO ALLOCATE (allocate) */ if ($all == 0) { $out[$t] = $amt[$t]; $invs_arr = array(); // Connect to database db_connect(); #####################[ GET OUTSTANDING INVOICES ]###################### $sql = "SELECT invnum, invid, balance, terms, odate FROM invoices WHERE cusnum = '{$cusid[$t]}' AND printed = 'y' AND balance>0 AND div = '" . USER_DIV . "' ORDER BY odate ASC"; $prnInvRslt = db_exec($sql); while (($inv = pg_fetch_array($prnInvRslt)) && $out > 0) { $invs_arr[] = array("s", $inv['odate'], "{$inv['invid']}", "{$inv['balance']}"); } #####################[ GET OUTSTANDING NON STOCK INVOICES ]###################### $sql = "SELECT invnum, invid, balance, odate FROM nons_invoices WHERE cusid='{$cusid[$t]}' AND done='y' AND balance>0 AND div='" . USER_DIV . "' ORDER BY odate ASC"; $prnInvRslt = db_exec($sql); while (($inv = pg_fetch_array($prnInvRslt)) && $out > 0) { $invs_arr[] = array("n", $inv['odate'], "{$inv['invid']}", "{$inv['balance']}"); } #####################[ GET OUTSTANDING POS INVOICES ]###################### $sqls = array(); for ($i = 1; $i <= 12; ++$i) { $sqls[] = "\n\t\t\t\t\tSELECT invnum, invid, balance, odate \n\t\t\t\t\tFROM \"{$i}\".pinvoices \n\t\t\t\t\tWHERE cusnum='{$cusid[$t]}' AND done='y' AND balance > 0 AND div='" . USER_DIV . "'"; } $sql = implode(" UNION ", $sqls); $prnInvRslt = db_exec($sql); while ($inv = pg_fetch_array($prnInvRslt)) { $invs_arr[] = array("p", $inv['odate'], "{$inv['invid']}", "{$inv['balance']}"); } if (isset($invs_arr) and is_array($invs_arr)) { $confirm .= "\n\t\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Type</th>\n\t\t\t\t\t\t<th>Invoice</th>\n\t\t\t\t\t\t<th>Outstanding Amount</th>\n\t\t\t\t\t\t<th></th>\n\t\t\t\t\t\t<th>Date</th>\n\t\t\t\t\t\t<th>Amount</th>\n\t\t\t\t\t</tr>"; } #compile results into an array we can sort by date $search_arr = array(); foreach ($invs_arr as $key => $array) { $search_arr[$key] = $array[1]; } #sort array by date asort($search_arr); #add sorted invoices to payment listing foreach ($search_arr as $key => $date_arr) { $arr = $invs_arr[$key]; if ($arr[0] == "s") { $get_sql = "SELECT invnum, invid, balance, terms, odate FROM invoices WHERE cusnum = '{$cusid[$t]}' AND printed = 'y' AND balance>0 AND div = '" . USER_DIV . "' AND invid = '{$arr['2']}' LIMIT 1"; $run_sql = db_exec($get_sql) or errDie("Unable to get stock invoice information."); if (pg_numrows($run_sql) > 0) { $inv = pg_fetch_array($run_sql); $invid = $inv['invid']; if (in_array($invid, $cust_arr[$cus0])) { continue; } else { $val = allocamt($out[$t], $inv["balance"]); if ($val > 0) { $cust_arr[$cus0][] = $invid; } else { continue; } } $confirm .= "\n\t\t\t\t\t\t\t<input type='hidden' name='paidamt[{$t}][{$invid}]' size='10' value='{$val}'>\n\t\t\t\t\t\t\t<input type='hidden' size='20' name='invids[{$t}][{$invid}]' value='{$inv['invid']}'>\n\t\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t\t<td>Stock Invoice</td>\n\t\t\t\t\t\t\t\t<td>{$inv['invnum']}</td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " {$inv['balance']}</td>\n\t\t\t\t\t\t\t\t<td>{$inv['terms']} days</td>\n\t\t\t\t\t\t\t\t<td>{$inv['odate']}</td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " {$val}</td>\n\t\t\t\t\t\t\t</tr>"; } } elseif ($arr[0] == "n") { $get_sql = "SELECT invnum, invid, balance, odate FROM nons_invoices WHERE cusid='{$cusid[$t]}' AND done='y' AND balance>0 AND div='" . USER_DIV . "' AND invid = '{$arr['2']}' LIMIT 1"; $run_sql = db_exec($get_sql) or errDie("Unable to get non stock information."); if (pg_numrows($run_sql) > 0) { $inv = pg_fetch_array($run_sql); $invid = $inv['invid']; if (in_array($invid, $cust_arr[$cus0])) { continue; } else { $val = allocamt($out[$t], $inv["balance"]); if ($val > 0) { $cust_arr[$cus0][] = $invid; } else { continue; } } $confirm .= "\n\t\t\t\t\t\t\t<input type='hidden' name='paidamt[{$t}][{$invid}]' value='{$val}'>\n\t\t\t\t\t\t\t<input type='hidden' name='itype[{$t}][{$invid}]' value='Yes'>\n\t\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t\t<td>Non Stock Invoice</td>\n\t\t\t\t\t\t\t\t<td><input type='hidden' size='20' name='invids[{$t}][{$invid}]' value='{$inv['invid']}'>{$inv['invnum']}</td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " {$inv['balance']}</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>{$inv['odate']}</td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " {$val}</td>\n\t\t\t\t\t\t\t</tr>"; } } else { $sqls = array(); for ($i = 1; $i <= 12; ++$i) { $sqls[] = "\n\t\t\t\t\t\t\tSELECT invnum, invid, balance, odate \n\t\t\t\t\t\t\tFROM \"{$i}\".pinvoices \n\t\t\t\t\t\t\tWHERE cusnum='{$cusid[$t]}' AND done='y' AND balance > 0 AND div='" . USER_DIV . "' AND invid = '{$arr['2']}'"; } $get_sql = implode(" UNION ", $sqls); $run_sql = db_exec($get_sql) or errDie("Unable to get pos invoice information."); if (pg_numrows($run_sql) > 0) { $inv = pg_fetch_array($run_sql); $invid = $inv['invid']; if (in_array($invid, $cust_arr[$cus0])) { continue; } else { $val = allocamt($out[$t], $inv["balance"]); if ($val > 0) { $cust_arr[$cus0][] = $invid; } else { continue; } } $confirm .= "\n\t\t\t\t\t\t\t<input type='hidden' size='20' name='invids[{$t}][{$invid}]' value='{$inv['invid']}'>\n\t\t\t\t\t\t\t<input type='hidden' name='paidamt[{$t}][{$invid}]' size='10' value='{$val}'>\n\t\t\t\t\t\t\t<input type='hidden' name='ptype[{$t}][{$invid}]' value='YnYn'>\n\t\t\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t\t\t<td>POS Invoice</td>\n\t\t\t\t\t\t\t\t<td>{$inv['invnum']}</td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " {$inv['balance']}</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>{$inv['odate']}</td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " {$val}</td>\n\t\t\t\t\t\t\t</tr>"; } $out[$t] = sprint($out[$t]); } } } if ($out[$t] > 0) { $out[$t] = sprint($out[$t]); $confirm .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='4'><b>A general transaction will credit the client's account with " . CUR . " {$out[$t]} </b></td>\n\t\t\t\t</tr>"; } $confirm .= TBL_BR . TBL_BR . TBL_BR; } for ($i = 0; $i < $rec_amount; $i++) { $passon .= "\n\t\t\t<input type='hidden' name='bankid[{$i}]' value='{$bankid[$i]}'>\n\t\t\t<input type='hidden' name='date[{$i}]' value='{$date[$i]}'>\n\t\t\t<input type='hidden' name='cusid[{$i}]' value='{$cusid[$i]}'>\n\t\t\t<input type='hidden' name='date_day[{$i}]' value='{$date_day[$i]}'>\n\t\t\t<input type='hidden' name='date_month[{$i}]' value='{$date_month[$i]}'>\n\t\t\t<input type='hidden' name='date_year[{$i}]' value='{$date_year[$i]}'>\n\t\t\t<input type='hidden' name='descript[{$i}]' value='{$descript[$i]}'>\n\t\t\t<input type='hidden' name='reference[{$i}]' value='{$reference[$i]}'>\n\t\t\t<input type='hidden' name='cheqnum[{$i}]' value='{$cheqnum[$i]}'>\n\t\t\t<input type='hidden' name='amt[{$i}]' value='{$amt[$i]}'>\n\t\t\t<input type='hidden' name='setamt[{$i}]' value='{$setamt[$i]}'>\n\t\t\t<input type='hidden' name='setvat[{$i}]' value='{$setvat[$i]}'>\n\t\t\t<input type='hidden' name='setvatcode[{$i}]' value='{$setvatcode[$i]}'>\n\t\t\t<input type='hidden' name='out[{$i}]' value='{$out[$i]}'>"; } $confirm .= "\n\t\t\t{$passon}\n\t\t\t<tr>\n\t\t\t\t<td><input type='submit' name='back' value='« Correction'></td>\n\t\t\t\t<td align='right'><input type='submit' value='Confirm »'></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t</form>" . mkQuickLinks(ql("trans-new.php", "Journal Transactions"), ql("../customers-view.php", "View Customers")); return $confirm; }
$OUTPUT = alloc($_POST); } break; case "write": $OUTPUT = write($_POST); break; default: $OUTPUT = sel_cus($_POST); } } elseif (isset($_GET["cusnum"])) { # Display default output $OUTPUT = alloc($_GET); //method($_GET["cusnum"]); } else { # Display default output $OUTPUT = sel_cus($_POST); } # get templete require "../template.php"; # Insert details function sel_cus($_POST) { extract($_POST); // customers Drop down selections db_connect(); $cust = "<select name='cusid'>"; $sql = "SELECT accno, cusnum, cusname, surname FROM customers WHERE div = '" . USER_DIV . "' ORDER BY surname,cusname"; $cusRslt = db_exec($sql); $numrows = pg_numrows($cusRslt); if (empty($numrows)) { return "<li> There are no Debtors in Cubit.</li>" . mkQuickLinks(ql("../core/trans-new.php", "Journal Transactions"), ql("../customers-view.php", "View Customers"));
function alloc($_POST) { # get vars extract($_POST); if (isset($back)) { return sel_cus($_POST); } # validate input require_lib("validate"); $v = new validate(); $v->isOk($bankid, "num", 1, 30, "Invalid Bank Account."); $v->isOk($day, "num", 1, 2, "Invalid Date day."); $v->isOk($all, "num", 1, 1, "Invalid allocation."); $v->isOk($mon, "num", 1, 2, "Invalid Date month."); $v->isOk($year, "num", 1, 4, "Invalid Date Year."); if (strlen($year) != 4) { $v->isOk($bankname, "num", 1, 1, "Invalid Date year."); } $v->isOk($descript, "string", 0, 255, "Invalid Description."); $v->isOk($cheqnum, "num", 0, 30, "Invalid Cheque number."); $v->isOk($amt, "float", 1, 10, "Invalid amount."); if ($amt < 0.01) { $v->isOk($amt, "float", 5, 1, "Amount too small."); } $v->isOk($cusid, "num", 1, 10, "Invalid customer number."); $date = $day . "-" . $mon . "-" . $year; if (!checkdate($mon, $day, $year)) { $v->isOk($date, "num", 1, 1, "Invalid date."); } # 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='« Correct submission'>"; return $confirm . "</li>" . method($cusid); } $amt = sprint($amt); $out = 0; $confirm = "\n\t\t\t\t\t<h3>New Bank Receipt</h3>\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='confirm'>\n\t\t\t\t\t\t<input type='hidden' name='accnum' value=''>\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='date' value='{$date}'>\n\t\t\t\t\t\t<input type='hidden' name='all' value='{$all}'>\n\t\t\t\t\t\t<input type='hidden' name='cusid' value='{$cusid}'>\n\t\t\t\t\t\t<input type='hidden' name='day' value='{$day}'>\n\t\t\t\t\t\t<input type='hidden' name='mon' value='{$mon}'>\n\t\t\t\t\t\t<input type='hidden' name='year' value='{$year}'>\n\t\t\t\t\t\t<input type='hidden' name='descript' value='{$descript}'>\n\t\t\t\t\t\t<input type='hidden' name='cheqnum' value='{$cheqnum}'>\n\t\t\t\t\t\t<input type='hidden' name='amt' value='{$amt}'>"; $i = 0; # Get bank account name db_connect(); $sql = "SELECT accname,bankname FROM bankacct WHERE bankid = '{$bankid}' AND div = '" . USER_DIV . "'"; $bankRslt = db_exec($sql); $bank = pg_fetch_array($bankRslt); # Customer name $sql = "SELECT cusname,surname FROM customers WHERE cusnum = '{$cusid}' AND div = '" . USER_DIV . "'"; $cusRslt = db_exec($sql); $cus = pg_fetch_array($cusRslt); $confirm .= "\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\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Account</td>\n\t\t\t\t\t\t\t<td>{$bank['accname']} - {$bank['bankname']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Date</td>\n\t\t\t\t\t\t\t<td valign='center'>{$date}</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>Received from</td>\n\t\t\t\t\t\t\t<td valign='center'>{$cus['cusname']} {$cus['surname']}</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>Description</td>\n\t\t\t\t\t\t\t<td valign='center'>" . nl2br($descript) . "</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>Cheque Number</td>\n\t\t\t\t\t\t\t<td valign='center'>{$cheqnum}</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>Amount</td>\n\t\t\t\t\t\t\t<td valign='center'>" . CUR . " {$amt}</td>\n\t\t\t\t\t\t</tr>"; if ($all == 0) { $out = $amt; // Connect to database db_connect(); $sql = "SELECT invnum,invid,balance,terms,odate FROM invoices WHERE cusnum = '{$cusid}' AND printed = 'y' AND balance>0 AND div = '" . USER_DIV . "' ORDER BY odate ASC"; $prnInvRslt = db_exec($sql); $i = 0; while ($inv = pg_fetch_array($prnInvRslt) and $out > 0) { if ($i == 0) { $confirm .= "\n\t\t\t\t\t\t\t\t<tr><td colspan='2'><br></td></tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td colspan='2'><h3>Outstanding Invoices</h3></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>Invoice</th>\n\t\t\t\t\t\t\t\t\t<th>Outstanding Amount</th>\n\t\t\t\t\t\t\t\t\t<th>Terms</th>\n\t\t\t\t\t\t\t\t\t<th>Date</th>\n\t\t\t\t\t\t\t\t\t<th>Amount</th>\n\t\t\t\t\t\t\t\t</tr>"; } $invid = $inv['invid']; $confirm .= "\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td><input type='hidden' size='20' name='invids[]' value='{$inv['invid']}'>{$inv['invnum']}</td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " {$inv['balance']}</td>\n\t\t\t\t\t\t\t\t<td>{$inv['terms']} days</td>\n\t\t\t\t\t\t\t\t<td>{$inv['odate']}</td>"; if ($out >= $inv['balance']) { $val = $inv['balance']; $out = $out - $inv['balance']; } else { $val = $out; $out = 0; } $i++; $val = sprint($val); $confirm .= "<td><input type=hidden name='paidamt[{$invid}]' size=10 value='{$val}'>" . CUR . " {$val}</td></tr>"; } $sql = "SELECT invnum,invid,balance,sdate as odate FROM nons_invoices WHERE cusid = '{$cusid}' AND done = 'y' AND balance>0 AND div = '" . USER_DIV . "' ORDER BY odate ASC"; $prnInvRslt = db_exec($sql); while ($inv = pg_fetch_array($prnInvRslt) and $out > 0) { if ($i == 0) { $confirm .= "\n\t\t\t\t\t\t\t\t<tr><td colspan='2'><br></td></tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td colspan='2'><h3>Outstanding Invoices</h3></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>Invoice</th>\n\t\t\t\t\t\t\t\t\t<th>Outstanding Amount</th>\n\t\t\t\t\t\t\t\t\t<th></th>\n\t\t\t\t\t\t\t\t\t<th>Date</th>\n\t\t\t\t\t\t\t\t\t<th>Amount</th>\n\t\t\t\t\t\t\t\t</tr>"; } $invid = $inv['invid']; $confirm .= "\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td><input type='hidden' size='20' name='invids[]' value='{$inv['invid']}'>{$inv['invnum']}</td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " {$inv['balance']}</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>{$inv['odate']}</td>"; if ($out >= $inv['balance']) { $val = $inv['balance']; $out = $out - $inv['balance']; } else { $val = $out; $out = 0; } $i++; $val = sprint($val); $confirm .= "<td><input type=hidden name='paidamt[{$invid}]' value='{$val}'><input type=hidden name=itype[{$invid}] value='Yes'>" . CUR . " {$val}</td></tr>"; } $out = sprint($out); if ($out > 0) { /* START OPEN ITEMS */ $ox = ""; db_conn('cubit'); $Sl = "SELECT * FROM open_stmnt WHERE balance>0 AND cusnum='{$cusid}' ORDER BY date"; $Ri = db_exec($Sl) or errDie("Unable to get open items."); $open_out = $out; $i = 0; while ($od = pg_fetch_array($Ri)) { if ($open_out == 0) { continue; } $oid = $od['id']; if ($open_out >= $od['balance']) { $open_amount[$oid] = $od['balance']; $open_out = sprint($open_out - $od['balance']); $ox .= "\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td><input type=hidden size=20 name=open[{$oid}] value='{$oid}'>{$od['type']}</td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " {$od['balance']}</td>\n\t\t\t\t\t\t\t\t<td>{$od['date']}</td>\n\t\t\t\t\t\t\t\t<td><input type=hidden name='open_amount[{$oid}]' value='{$open_amount[$oid]}'>" . CUR . " {$open_amount[$oid]}</td>\n\t\t\t\t\t\t\t</tr>"; } elseif ($open_out < $od['balance']) { $open_amount[$oid] = $open_out; $open_out = 0; $ox .= "\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td><input type=hidden size=20 name=open[{$oid}] value='{$od['id']}'>{$od['type']}</td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " {$od['balance']}</td>\n\t\t\t\t\t\t\t\t<td>{$od['date']}</td>\n\t\t\t\t\t\t\t\t<td><input type=hidden name='open_amount[{$oid}]' value='{$open_amount[$oid]}'>" . CUR . " {$open_amount[$oid]}</td>\n\t\t\t\t\t\t\t</tr>"; } $i++; } if (open()) { $confirm .= "<tr><td colspan=2><br></td></tr>\n\t\t\t\t<tr><td colspan=2><h3>Outstanding Transactions</h3></td></tr>\n\t\t\t\t<tr><th>Description</th><th>Outstanding Amount</th><th>Date</th><th>Amount</th></tr>"; $confirm .= $ox; $bout = $out; $out = $open_out; if ($out > 0) { $confirm .= "<tr class='bg-even'><td colspan=4><b>A general transaction will credit the client's account with " . CUR . " {$out} </b></td></tr>"; } $out = $bout; } else { $confirm .= "<tr class='bg-even'><td colspan=4><b>A general transaction will credit the client's account with " . CUR . " {$out} </b></td></tr>"; } } } if ($all == 1) { $confirm .= "<tr><td><table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n\t\t<tr><td><br></td></tr>\n\t\t<tr><th>Current</th><th>30 days</th><th>60 days</th><th>90 days</th><th>120 days</th><th>Total Outstanding</th></tr>"; $curr = age($cusid, 29); $age30 = age($cusid, 59); $age60 = age($cusid, 89); $age90 = age($cusid, 119); $age120 = age($cusid, 149); # Customer total $custtot = $curr + $age30 + $age60 + $age90 + $age120; if (!isset($OUT1)) { $OUT1 = ""; $OUT2 = ""; $OUT3 = ""; $OUT4 = ""; $OUT5 = ""; } $confirm .= "<tr class='bg-odd'><td>" . CUR . " {$curr}</td><td>" . CUR . " {$age30}</td><td>" . CUR . " {$age60}</td><td>" . CUR . " {$age90}</td><td>" . CUR . " {$age120}</td><td>" . CUR . " {$custtot}</td></tr>"; $confirm .= "<tr class='bg-odd'><td><input type=text size=7 name=out1 value='{$OUT1}'></td><td><input type=text size=7 name=out2 value='{$OUT2}'></td><td><input type=text size=7 name=out3 value='{$OUT3}'></td><td><input type=text size=7 name=out4 value='{$OUT4}'></td><td><input type=text size=7 name=out5 value='{$OUT5}'></td><td></td></tr>"; $confirm .= "<tr><td><br></td></tr></table></td></tr>"; } if ($all == 2) { // Connect to database db_connect(); $sql = "SELECT invnum,invid,balance,terms,odate FROM invoices WHERE cusnum = '{$cusid}' AND printed = 'y' AND balance>0 AND div = '" . USER_DIV . "'"; $prnInvRslt = db_exec($sql); $tempi = pg_numrows($prnInvRslt); if (pg_numrows($prnInvRslt) < 1) { $sql = "SELECT invnum FROM nons_invoices WHERE cusid = '{$cusid}' AND done = 'y' AND balance>0 AND div = '" . USER_DIV . "'"; $prnInvRslt = db_exec($sql); if (open()) { if (pg_numrows($prnInvRslt) < 1) { $Sl = "SELECT * FROM open_stmnt WHERE balance>0 AND cusnum='{$cusid}' ORDER BY date"; $Ri = db_exec($Sl) or errDie("Unable to get open items."); if (pg_numrows($Ri) < 1) { return "<li class=err> There are no outstanding invoices for the selected debtor in Cubit.<br>\n\t\t\t\t\t\tTo make a payment in advance please select Auto Allocation</li>" . method($cusid); } } } else { return "<li class=err> There are no outstanding invoices for the selected debtor in Cubit.<br>\n\t\t\t\tTo make a payment in advance please select Auto Allocation</li>" . method($cusid); } } elseif ($tempi > 0) { $confirm .= "<tr><td colspan=2><br></td></tr>\n\t\t\t<tr><td colspan=2><h3>Outstanding Invoices</h3></td></tr>\n\t\t\t<tr><th>Invoice</th><th>Outstanding Amount</th><th>Terms</th><th>Date</th><th>Amount</th></tr>"; $i = 0; while ($inv = pg_fetch_array($prnInvRslt)) { $invid = $inv['invid']; $confirm .= "<tr class='" . bg_class() . "'><td><input type=hidden size=20 name=invids[] value='{$inv['invid']}'>{$inv['invnum']}</td><td>" . CUR . " {$inv['balance']}</td><td>{$inv['terms']} days</td><td>{$inv['odate']}</td>"; $val = ''; if (pg_numrows($prnInvRslt) == 1) { $val = $amt; } if (isset($paidamt[$i])) { $val = $paidamt[$i]; } $confirm .= "<td><input type=text name='paidamt[{$invid}]' size=10 value='{$val}'></td></tr>"; $i++; } } $sql = "SELECT invnum,invid,balance,sdate as odate FROM nons_invoices WHERE cusid = '{$cusid}' AND done = 'y' AND balance>0 AND div = '" . USER_DIV . "'"; $prnInvRslt = db_exec($sql); if (pg_numrows($prnInvRslt) > 0) { $confirm .= "<tr><td colspan=2><br></td></tr>\n\t\t\t<tr><td colspan=2><h3>Outstanding Invoices</h3></td></tr>\n\t\t\t<tr><th>Invoice</th><th>Outstanding Amount</th><th></th><th>Date</th><th>Amount</th></tr>"; while ($inv = pg_fetch_array($prnInvRslt)) { $invid = $inv['invid']; $confirm .= "<tr class='" . bg_class() . "'><td><input type=hidden size=20 name=invids[] value='{$inv['invid']}'>{$inv['invnum']}</td><td>" . CUR . " {$inv['balance']}</td><td></td><td>{$inv['odate']}</td>"; $val = ''; if (pg_numrows($prnInvRslt) == 1) { $val = $amt; } if (isset($paidamt[$i])) { $val = $paidamt[$i]; } $confirm .= "<td><input type=text name='paidamt[{$invid}]' size=10 value='{$val}'><input type=hidden name=itype[{$invid}] value='YnYn'></td></tr>"; $i++; } } if (open()) { db_conn('cubit'); $Sl = "SELECT * FROM open_stmnt WHERE balance>0 AND cusnum='{$cusid}' ORDER BY date"; $Ri = db_exec($Sl) or errDie("Unable to get open items."); //$open_out=$out; $ox = ""; $i = 0; while ($od = pg_fetch_array($Ri)) { $oid = $od['id']; if (!isset($open_amount[$oid])) { $open_amount[$oid] = ""; } $ox .= "<tr class='" . bg_class() . "'><td><input type=hidden size=20 name=open[{$oid}] value='{$oid}'>{$od['type']}</td>\n\t\t\t\t<td>" . CUR . " {$od['balance']}</td><td>{$od['date']}</td><td><input type=text name='open_amount[{$oid}]' value='{$open_amount[$oid]}'>\n\t\t\t\t</td></tr>"; $i++; } $confirm .= "<tr><td colspan=2><br></td></tr>\n\t\t\t<tr><td colspan=2><h3>Outstanding Transactions</h3></td></tr>\n\t\t\t<tr><th>Description</th><th>Outstanding Amount</th><th>Date</th><th>Amount</th></tr>{$ox}"; } } $confirm .= "<input type=hidden name=out value='{$out}'>\n\t<tr><td><input type=submit name=back value='« Correction'></td><td align=right><input type=submit value='Confirm »'></td></tr>\n </form></table>\n <p>\n\t\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n\t\t<tr><th>Quick Links</th></tr>\n\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t<tr class='bg-odd'><td><a href='../main.php'>Main Menu</a></td></tr>\n\t\t</table>"; return $confirm; }