function print_slip() { extract($_REQUEST); $sql = "SELECT stkcod, stkdes, qty FROM cubit.sorders_items\n\t\t\t\tLEFT JOIN cubit.stock ON sorders_items.stkid=stock.stkid\n\t\t\tWHERE sordid={$sordid}"; $items_rslt = db_exec($sql) or errDie("Unable to retrieve items."); $items_out = ""; while ($items_data = pg_fetch_array($items_rslt)) { for ($i = 0; $i < $items_data["qty"]; $i++) { $items_out .= "\n\t\t\t<tr>\n\t\t\t\t<td width='20%'>{$items_data['stkcod']}</td>\n\t\t\t\t<td width='40%'>{$items_data['stkdes']}</td>\n\t\t\t\t<td style='border-bottom: 1px solid #000' width='20%'> </td>\n\t\t\t\t<td style='border-bottom: 1px solid #000' width='20%'> </td>\n\t\t\t</tr>"; } } $OUTPUT = "\n\t<center>\n\t<table " . TMPL_tblDflts . " width='90%' style='border: 1px solid #000'>\n\t\t<tr>\n\t\t\t<td><h2>Picking Slip</h2><td>\n\t\t\t<td align='right'><img src='" . pick_slip_barcode($sordid) . "' /></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td colspan='3'>\n\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<th style='text-align: left'>Code</th>\n\t\t\t\t\t<th style='text-align: left'>Description</th>\n\t\t\t\t\t<th align='center'>Serial 1</th>\n\t\t\t\t\t<th align='center'>Serial 2</th>\n\t\t\t\t</tr>\n\t\t\t\t{$items_out}\n\t\t\t</table>\n\t\t\t</td>\n\t\t</tr>\n\t</table>"; require "../tmpl-print.php"; }
function display() { extract($_REQUEST); $sql = "SELECT sordid, invnum, cusname, total FROM cubit.invoices WHERE sordid!=0"; $inv_rslt = db_exec($sql) or errDie("Unable to retrieve invoices."); $inv_out = ""; while ($inv_data = pg_fetch_array($inv_rslt)) { $sql = "SELECT sordid FROM cubit.pslip_scans WHERE sordid='{$inv_data['sordid']}'"; $scan_rslt = db_exec($sql) or errDie("Unable to retrieve scans."); if (pg_num_rows($scan_rslt)) { continue; } $inv_out .= "\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>" . pick_slip_barcode($sordid) . "</td>\n\t\t\t<td>{$inv_data['invnum']}</td>\n\t\t\t<td>{$inv_data['cusname']}</td>\n\t\t\t<td>{$inv_data['total']}</td>\n\t\t</tr>"; } if (empty($inv_out)) { $inv_out = "\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td colspan='4'><li>No results found.</li></td>\n\t\t</tr>"; } $OUTPUT = "\n\t<h3>Unscanned Invoices</h3>\n\t<table " . TMPL_tblDflts . ">\n\t\t<tr>\n\t\t\t<th>Barcode</th>\n\t\t\t<th>Invoice No.</th>\n\t\t\t<th>Customer</th>\n\t\t\t<th>Total</th>\n\t\t</tr>\n\t\t{$inv_out}\n\t</table>"; return $OUTPUT; }
function details($_POST) { extract($_POST); $showvat = TRUE; # validate input require_lib("validate"); $v = new validate(); $v->isOk($invid, "num", 1, 20, "Invalid invoice number."); # display errors, if any if ($v->isError()) { $err = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $err .= "<li class='err'>{$e['msg']}</li>"; } return $confirm; } # Get invoice info db_connect(); $sql = "SELECT * FROM invoices WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $invRslt = db_exec($sql) or errDie("Unable to get invoice information"); if (pg_numrows($invRslt) < 1) { return "<i class='err'>Not Found</i>"; } $inv = pg_fetch_array($invRslt); # Check if invoice has been printed if ($inv['printed'] != "y") { $error = "<li class='err'>Invoice number <b>{$invid}</b> has not been printed yet.</li>"; return $error; } # Check if stock was selected(yes = put button) db_connect(); $sql = "SELECT stkid FROM inv_items WHERE invid = '{$inv['invid']}' AND div = '" . USER_DIV . "'"; $crslt = db_exec($sql); if (pg_numrows($crslt) < 1) { $error = "<li class='err'>Invoice number <b>{$invid}</b> has no items.</li>"; return $error; } # Products layout $products = ""; $disc = 0; $taxex = 0; # Get selected stock in this invoice db_connect(); $sql = "SELECT * FROM inv_items WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $i = 0; $page = 0; while ($stkd = pg_fetch_array($stkdRslt)) { if ($i >= 25) { $page++; $i = 0; } if ($stkd['account'] == 0) { # Get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$stkd['whid']}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); # Get selected stock in this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE stkid = '{$stkd['stkid']}' AND div = '" . USER_DIV . "'"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); } else { $wh['whname'] = ""; $stk['exvat'] = ""; $stk['stkcod'] = ""; $stk['stkdes'] = $stkd['description']; } $stkd['vatcode'] += 0; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes WHERE id='{$stkd['vatcode']}'"; $Ri = db_exec($Sl); $vd = pg_fetch_array($Ri); if (pg_num_rows($Ri) > 0) { if ($vd['zero'] == "Yes") { $stk['exvat'] = "yes"; } } else { $stk['exvat'] = ""; } # Check Tax Excempt if ($stk['exvat'] == 'yes' || $vd['zero'] == "Yes") { $taxex += $stkd['amt']; $ex = "#"; } else { $ex = ""; } if (TAX_VAT != $vd['vat_amount'] and $vd['vat_amount'] != "0.00") { $showvat = FALSE; } # Keep track of discounts $disc += $stkd['disc']; # Put in product if (!isset($products[$page])) { $products[$page] = ""; } if (strlen($stkd['serno']) > 0) { $showser = "<br>" . $stkd['serno']; } else { $showser = ""; } $products[$page][] = "\n\t\t\t<tr valign='top'>\n\t\t\t\t<td style='border-right: 2px solid #000'>{$stk['stkcod']} </td>\n\t\t\t\t<td style='border-right: 2px solid #000'>{$ex} {$stk['stkdes']} {$showser}</td>\n\t\t\t\t<td style='border-right: 2px solid #000'>{$stkd['qty']} </td>\n\t\t\t\t<td style='border-right: 2px solid #000' align='right' nowrap>" . CUR . " {$stkd['unitcost']} </td>\n\t\t\t\t<td style='border-right: 2px solid #000' align='right'>{$stkd['disc']} </td>\n\t\t\t\t<td align='right' nowrap>" . CUR . " {$stkd['amt']} </td>\n\t\t\t</tr>"; $i++; } $blank_lines = 25; foreach ($products as $key => $val) { $bl = $blank_lines - count($products[$key]); for ($i = 0; $i <= $bl; $i++) { $products[$key][] = "\n\t \t\t\t<tr>\n\t \t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t \t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t \t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t \t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t \t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t \t\t\t\t<td> </td>\n\t \t\t\t</tr>"; } } # Subtotal $SUBTOT = sprint($inv['subtot']); # Calculate tradediscm if (strlen($inv['traddisc']) > 0) { $traddiscm = sprint($inv['traddisc'] / 100 * $SUBTOT); } else { $traddiscm = "0.00"; } # Calculate subtotal $VATP = TAX_VAT; $SUBTOT = sprint($inv['subtot']); $VAT = sprint($inv['vat']); $TOTAL = sprint($inv['total']); $inv['delchrg'] = sprint($inv['delchrg']); # todays date $date = date("d-m-Y"); $sdate = date("Y-m-d"); # Avoid little box if (strlen($inv['comm']) > 0) { $inv['comm'] = "\n\t\t\t<table border=1 cellspacing='0' bordercolor='#000000'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>" . nl2br($inv['comm']) . "</td>\n\t\t\t\t</tr>\n\t\t\t</table>"; } # Update number of prints $inv['prints']++; db_connect(); $Sql = "UPDATE invoices SET prints = '{$inv['prints']}' WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $upRslt = db_exec($Sql) or errDie("Unable to update invoice information"); db_conn('cubit'); $Sl = "SELECT * FROM settings WHERE constant='SALES'"; $Ri = db_exec($Sl) or errDie("Unable to get settings."); $data = pg_fetch_array($Ri); if ($inv['chrgvat'] == "inc") { $inv['chrgvat'] = "Inclusive"; } elseif ($inv['chrgvat'] == "exc") { $inv['chrgvat'] = "Exclusive"; } else { $inv['chrgvat'] = "No vat"; } if ($data['value'] == "Yes") { $sp = "\n\t\t\t<tr>\n\t\t\t\t<td><b>Sales Person:</b> {$inv['salespn']}</td>\n\t\t\t</tr>"; } else { $sp = ""; } if (!isset($comment)) { // Retrieve the comment from Cubit. db_conn("cubit"); $sql = "SELECT value FROM settings WHERE constant='DEFAULT_COMMENTS'"; $cmntRslt = db_exec($sql) or errDie("Unable to retrieve default comments from Cubit."); $comment = pg_fetch_result($cmntRslt, 0); } if ($inv['branch'] == 0) { $branchname = "Head Office"; } else { $get_bname = "SELECT * FROM customer_branches WHERE id = '{$inv['branch']}' LIMIT 1"; $run_bname = db_exec($get_bname); if (pg_numrows($run_bname) < 1) { $branchname = ""; } else { $arr = pg_fetch_array($run_bname); $branchname = $arr['branch_name']; } } if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } // Retrieve the company information db_conn("cubit"); $sql = "SELECT * FROM compinfo"; $comp_rslt = db_exec($sql) or errDie("Unable to retrieve company information from Cubit."); $comp_data = pg_fetch_array($comp_rslt); // Retrieve the banking information db_conn("cubit"); $sql = "SELECT * FROM bankacct WHERE bankid='{$inv['bankid']}' AND div='" . USER_DIV . "'"; $bank_rslt = db_exec($sql) or errDie("Unable to retrieve bank information from Cubit."); $bank_data = pg_fetch_array($bank_rslt); // Retrieve customer information db_conn("cubit"); $sql = "SELECT * FROM customers WHERE cusnum='{$inv['cusnum']}'"; $cust_rslt = db_exec($sql) or errDie("Unable to retrieve customer information from Cubit."); $cust_data = pg_fetch_array($cust_rslt); $table_borders = "\n\t\tborder-top: 2px solid #000000;\n\t\tborder-left: 2px solid #000000;\n\t\tborder-right: 2px solid #000000;\n\t\tborder-bottom: none;"; $details = ""; for ($i = 0; $i <= $page; $i++) { // new page? if ($i > 1) { $details .= "<br style='page-break-after:always;'>"; } if ($inv["pslip_sordid"] > 0) { $barcode = "<img src='manufact/" . pick_slip_barcode($inv["pslip_sordid"], 1) . "' />"; } else { $barcode = ""; } $products_out = ""; foreach ($products[$i] as $string) { $products_out .= $string; } $details .= "\n\t\t\t<center>\n\t\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table border='0' cellpadding='2' cellspacing='2' width='100%'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td align='left' rowspan='2'><img src='compinfo/getimg.php' width='230' height='47'>{$barcode}</td>\n\t\t\t\t\t\t\t\t<td align='left' rowspan='2'><font size='5'><b>" . COMP_NAME . "</b></font></td>\n\t\t\t\t\t\t\t\t<td align='right'><font size='5'><b>Tax Invoice</b></font></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<!-- Rowspan -->\n\t\t\t\t\t\t\t\t<!-- Rowspan -->\n\t\t\t\t\t\t\t\t<td align='right'><font size='4'><b>Reprint</b></font></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\n\t\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td valign='top'>\n\t\t\t\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['addr1']} </td>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['paddr1']} </td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['addr2']} </td>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['paddr2']} </td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['addr3']} </td>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['paddr3']} </td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['addr4']} </td>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['postcode']} </td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>REG:</b> {$comp_data['regnum']}</b> </td>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>{$bank_data['bankname']}</b> </td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>VAT REG:</b> {$comp_data['vatnum']} </td>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Branch</b> {$bank_data['branchname']} </td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Tel:</b> {$comp_data['tel']} </td>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Branch Code:</b> {$bank_data['branchcode']} </td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Fax:</b> {$comp_data['fax']} </td>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Acc Num:</b> {$bank_data['accnum']} </td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td valign='top'>\n\t\t\t\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Date</b></td>\n\t\t\t\t\t\t\t\t<td><b>Page Number</b></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'>{$inv['odate']}</td>\n\t\t\t\t\t\t\t\t<td>" . ($i + 1) . "</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000'> </td>\n\t\t\t\t\t\t\t\t<td style='border-bottom: 2px solid #000'> </td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr><td> </td></tr>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td colspan='2'><b>Invoice No:</b> {$inv['invnum']}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td colspan='2'><b>Proforma Inv No:</b> {$inv['docref']}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td colspan='2'><b>Sales Order No:</b> {$inv['ordno']}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td colspan='2'><b>Account No:</b> {$cust_data['accno']}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t{$sp}\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\n\t\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td align='center'><font size='4'><b>Tax Invoice To:</b></font></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\n\t\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td width='33%' style='border-right: 2px solid #000'><b>{$inv['surname']}</b></td>\n\t\t\t\t\t\t\t\t<td width='33%' style='border-right: 2px solid #000'><b>Postal Address</b></td>\n\t\t\t\t\t\t\t\t<td width='33%'><b>Delivery Address</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'>" . nl2br($cust_data["addr1"]) . "</td>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'>" . nl2br($cust_data["paddr1"]) . "</td>\n\t\t\t\t\t\t\t\t<td>{$branchname}<br>" . nl2br($inv["del_addr"]) . "</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\n\t\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td width='33%' style='border-right: 2px solid #000'><b>Customer VAT No:</b> {$inv['cusvatno']}</td>\n\t\t\t\t\t\t\t\t<td width='33%' style='border-right: 2px solid #000'><b>Customer Order No:</b> {$inv['cordno']}</td>\n\t\t\t\t\t\t\t\t<td width='33%'><b>Delivery Date:</b> {$inv['deldate']}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\n\t\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000;'><b>Code</b></td>\n\t\t\t\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000;'><b>Description</b></td>\n\t\t\t\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000;'><b>Qty</b></td>\n\t\t\t\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000;' align='right'><b>Unit Price</b></td>\n\t\t\t\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000;' align='right'><b>Unit Discount</b></td>\n\t\t\t\t\t\t\t\t<td style='border-bottom: 2px solid #000' align='right'><b>Amount</b></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t{$products_out}\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\n\t\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td><i>VAT Exempt Indicator: #</i></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>{$inv['comm']}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\n\t\t\t<table cellpadding='0' cellspacing='0' width='85%' style='border: 2px solid #000'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Terms:</b> {$inv['terms']} days</b></td>\n\t\t\t\t\t\t\t\t<td><b>Subtotal:</b></td>\n\t\t\t\t\t\t\t\t<td nowrap><b>" . CUR . " {$inv['subtot']}</b></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t\t\t\t\t\t\t\t<td><b>Trade Discount:</b></td>\n\t\t\t\t\t\t\t\t<td nowrap><b>" . CUR . " {$inv['discount']}</b></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Received in good order by:</b>_____________________</td>\n\t\t\t\t\t\t\t\t<td><b>Delivery Charge</b></td>\n\t\t\t\t\t\t\t\t<td nowrap><b>" . CUR . " {$inv['delivery']}</b></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t\t\t\t\t\t\t\t<td><b>VAT {$vat14}:</b></td>\n\t\t\t\t\t\t\t\t<td nowrap><b>" . CUR . " {$inv['vat']}</b></td>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Date:</b>_____________________</td>\n\t\t\t\t\t\t\t\t<td><b>Total Incl VAT:</b></td>\n\t\t\t\t\t\t\t\t<td nowrap><b>" . CUR . " {$inv['total']}</b></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>"; } // Retrieve template settings from Cubit db_conn("cubit"); $sql = "SELECT filename FROM template_settings WHERE template='invoices'"; $tsRslt = db_exec($sql) or errDie("Unable to retrieve the template settings from Cubit."); $template = pg_fetch_result($tsRslt, 0); if ($template == "invoice-print.php") { $OUTPUT = $details; require "tmpl-print.php"; } else { header("Location: {$template}?invid={$inv['invid']}&type=invreprint"); } }
function details($_GET) { $showvat = TRUE; # get vars extract($_GET); # validate input require_lib("validate"); $v = new validate(); $v->isOk($invid, "num", 1, 20, "Invalid invoice number."); $v->isOk($prd, "num", 1, 2, "Invalid prd."); # 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='« Correct submission'>"; return $confirm; } # Get invoice info db_conn($prd); $sql = "SELECT * FROM pinvoices WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $invRslt = db_exec($sql) or errDie("Unable to get invoice information"); if (pg_numrows($invRslt) < 1) { return "<i class='err'>Not Found</i>"; } $inv = pg_fetch_array($invRslt); # get department db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid = '{$inv['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); } /* --- Start some checks --- */ # check if invoice has been printed if ($inv['printed'] == "n") { $error = "<li class='err'> Error : Invoice number <b>{$invid}</b> has not been printed.</li>"; return $error; } # check if stock was selected(yes = put done button) db_conn($prd); $sql = "SELECT stkid FROM pinv_items WHERE invid = '{$inv['invid']}' AND div = '" . USER_DIV . "'"; $crslt = db_exec($sql); if (pg_numrows($crslt) < 1) { $error = "<li class='err'> Error : Invoice number <b>{$invid}</b> has no items.</li>"; return $error; } /* --- End some checks --- */ /* --- Start Products Display --- */ # Products layout $products = ""; $disc = 0; # get selected stock in this invoice $sql = "SELECT * FROM pinv_items WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $tcosamt = 0; while ($stkd = pg_fetch_array($stkdRslt)) { # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$stkd['whid']}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); # get selected stock in this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE stkid = '{$stkd['stkid']}' AND div = '" . USER_DIV . "'"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); $cosamt = round($stkd['qty'] * $stk['csprice'], 2); $tcosamt += $cosamt; $sp = " "; # Check Tax Excempt if ($stk['exvat'] == 'yes') { $ex = "#"; } else { $ex = " "; } # keep track of discounts $disc += $stkd['disc']; if ($stkd['account'] != 0) { $stk['stkcod'] = $stkd['description']; $stk['stkdes'] = ""; } $Sl = "SELECT * FROM vatcodes WHERE id='{$stkd['vatcode']}'"; $Ri = db_exec($Sl); $vd = pg_fetch_array($Ri); if (TAX_VAT != $vd['vat_amount'] and $vd['vat_amount'] != "0.00") { $showvat = FALSE; } # put in product $stkd['unitcost'] = $stkd['unitcost'] - $stkd['disc']; $products .= "\n\t\t<tr>\n\t\t\t<td><font size='1'> {$stk['stkcod']}</font></td>\n\t\t\t<td><font size='1'>" . sprint($stkd["unitcost"]) . "</font></td>\n\t\t\t<td><font size='1'>{$stkd['qty']}</font></td>\n\t\t\t<td align=right><font size='1'>" . sprint($stkd["amt"]) . "</font></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td colspan='4'><font size='1'>{$stk['stkdes']}</font></td>\n\t\t</tr>"; } /* --- Start Some calculations --- */ # subtotal $SUBTOT = sprint($inv['subtot']); # Calculate tradediscm if (strlen($inv['traddisc']) > 0) { $traddiscm = sprint($inv['traddisc'] / 100 * $SUBTOT); } else { $traddiscm = "0.00"; } # Calculate subtotal $VATP = TAX_VAT; $SUBTOT = sprint($inv['subtot']); $VAT = sprint($inv['vat']); $TOTAL = sprint($inv['total']); $inv['delchrg'] = sprint($inv['delchrg']); pglib_transaction("BEGIN"); # Update number of prints $inv['prints']++; db_conn($prd); $Sql = "UPDATE pinvoices SET prints = '{$inv['prints']}' WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $upRslt = db_exec($Sql) or errDie("Unable to update invoice information"); # todays date $date = date("d-m-Y"); $sdate = date("Y-m-d"); if (strlen($inv['comm']) > 0) { $Com = "\n\t\t\t\t<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>" . nl2br($inv['comm']) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>"; } else { $Com = ""; } $time = date("H:i"); if (isset($cccc)) { $cc = "<script> sCostCenter('dt', 'Sales', '{$inv['odate']}', 'Invoice No.{$inv['invnum']} for Customer {$inv['cusname']} {$inv['surname']}', '" . ($TOTAL - $VAT) . "', 'Cost Of Sales for Invoice No.{$inv['invnum']}', '{$tcosamt}', ''); </script>"; } else { $cc = ""; } db_conn('cubit'); $Sl = "SELECT * FROM settings WHERE constant='PSALES'"; $Ri = db_exec($Sl) or errDie("Unable to get settings."); $data = pg_fetch_array($Ri); if ($data['value'] == "Yes") { $sp = "\n\t\t<tr>\n\t\t\t<td width='50%' align='right'><font size='1'>SALES PERSON:</font></td>\n\t\t\t<td width='50%'><font size='1'>{$inv['salespn']}</font></td>\n\t\t</tr>"; } else { $sp = ""; } $Sl = "SELECT * FROM pc WHERE inv='{$inv['invnum']}'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Ri) > 0) { $pd = pg_fetch_array($Ri); $pc = "\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Change</td>\n\t\t\t\t\t<td align='right'><b>" . CUR . " {$pd['amount']}</b></td>\n\t\t\t\t</tr>"; $change = $pd['amount']; } else { $pc = ""; $change = 0; } $Sl = "SELECT * FROM payrec WHERE inv='{$inv['invnum']}' AND method='Cash'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Ri) > 0) { $pd = pg_fetch_array($Ri); $pd['amount'] = sprint($pd['amount'] + $change); $pcash = "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Paid Cash</td>\n\t\t\t\t\t\t<td align='right'><b>" . CUR . " {$pd['amount']}</b></td>\n\t\t\t\t\t</tr>"; } else { $pcash = ""; } $Sl = "SELECT * FROM payrec WHERE inv='{$inv['invnum']}' AND method='Cheque'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Ri) > 0) { $pd = pg_fetch_array($Ri); $pcheque = "\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Paid Cheque</td>\n\t\t\t\t\t\t\t<td align='right'><b>" . CUR . " {$pd['amount']}</b></td>\n\t\t\t\t\t\t</tr>"; } else { $pcheque = ""; } $Sl = "SELECT * FROM payrec WHERE inv='{$inv['invnum']}' AND method='Credit Card'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Ri) > 0) { $pd = pg_fetch_array($Ri); $pcc = "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Paid Credit Card</td>\n\t\t\t\t\t\t<td align='right'><b>" . CUR . " {$pd['amount']}</b></td>\n\t\t\t\t\t</tr>"; } else { $pcc = ""; } $Sl = "SELECT * FROM payrec WHERE inv='{$inv['invnum']}' AND method='Credit'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Ri) > 0) { $pd = pg_fetch_array($Ri); $pcc .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>On Credit</td>\n\t\t\t\t\t\t<td align='right'><b>" . CUR . " {$pd['amount']}</b></td>\n\t\t\t\t\t</tr>\n\t\t\t\t"; } else { $pcc .= ""; } // $Sl="SELECT * FROM varrec WHERE inv='$inv[invnum]'"; // $Ri=db_exec($Sl); // // if(pg_num_rows($Ri)>0) { // $rd=pg_fetch_array($Ri); // // $rounding="<tr><td>Rounding</td><td align=right>".CUR." $rd[amount]</td></tr>"; // } else { // $rounding=""; // } if ($inv['rounding'] > 0) { $due = sprint($inv['total'] - $inv['rounding']); $rounding = "\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Rounding</td>\n\t\t\t\t\t<td align='right'>" . CUR . " {$inv['rounding']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Amount Due</td>\n\t\t\t\t\t<td align='right'>" . CUR . " {$due}</td>\n\t\t\t\t</tr>"; } else { $rounding = ""; } $cusinfo = ""; if ($inv['cusnum'] > 0) { db_conn('cubit'); $Sl = "SELECT * FROM customers WHERE cusnum='{$inv['cusnum']}'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $cd = pg_fetch_array($Ri); $inv['cusname'] = $cd['surname'] . " (VAT No. {$cd['vatnum']})<br>"; $cusinfo .= "Tel: {$inv['telno']}<br>"; $cusinfo .= "Order No: {$inv['cordno']}"; } else { if (strlen($inv['vatnum']) > 1) { $inv['cusname'] = "{$inv['cusname']} (VAT No. {$inv['vatnum']})<br>"; $cusinfo .= "Order No: {$inv['cordno']}"; } } db_conn('cubit'); $Sl = "SELECT img2 FROM compinfo"; $Ri = db_exec($Sl); $id = pg_fetch_array($Ri); if (strlen($id['img2']) > 0) { $logo = "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td valign='top' width='100%' align='center'><img src='compinfo/getimg2.php' width='230' height='47'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t"; } else { $logo = ""; } if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } if (($posmsg = nl2br(getCSetting("POSMSG"))) === false) { $posmsg = "THANK YOU FOR YOUR PURCHASE"; } if ($inv["pslip_sordid"] > 0) { $barcode = "<img src='manufact/" . pick_slip_barcode($inv["pslip_sordid"], 1) . "' />"; } else { $barcode = ""; } $nb_top = "border-top: none;"; $nb_left = "border-left: none;"; $nb_right = "border-right: none;"; $nb_bot = "border-bottom: none;"; $details = "{$cc}\n\t<table cellpadding='0' cellspacing='1' border=0 width='220'>\n\t<tr><td><hr style='border: 1px solid black; {$nb_bot}'></td></tr>\n\t<tr><td align='center'><font size='1'>TAX INVOICE</font></td></tr>\n\t<tr><td align='center'>{$barcode}</td></tr>\n\t<tr><td><hr style='border: 1px solid black; {$nb_top}'></td></tr>\n\t{$logo}\n\t<tr><td valign=top width='100%'>\n\t\t<font size='1'>" . COMP_NAME . "</font><br>\n\t\t<font size='1'>" . COMP_ADDRESS . "</font><br>\n\t\t<br>\n\t\t<font size='1'>TEL: " . COMP_TEL . "</font><br>\n\t\t<font size='1'>FAX: " . COMP_FAX . "</font><br>\n\t\t<br>\n\t\t<font size='1'>Registration Number: " . COMP_REGNO . "</font><br>\n\t\t<font size='1'>VAT Registration Number: " . COMP_VATNO . "</font><br>\n\t</td></tr>\n\t<tr><td><hr style='border: 1px solid black; {$nb_bot} {$nb_left} {$nb_right}'></td></tr>\n\t<tr><td>\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr><td align='center'><font size='1'>{$inv['cusname']}</font></td></tr>\n\t\t\t<tr><td align='left'><font size='1'>{$cusinfo}</font></td></tr>\n\t\t</table>\n\t</td></tr>\n\t<tr><td>\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td align='left' width='33.33%'><font size='1'>Inv: {$inv['invnum']}</font></td>\n\t\t\t\t<td width='33.33%'><font size='1'>{$time}</font></td>\n\t\t\t\t<td width='33.33%' align='right'><font size='1'>{$inv['odate']}</font></td>\n\t\t\t</tr>\n\t\t</table>\n\t</td></tr>\n\t<tr><td><hr style='border: 1px solid black; {$nb_bot} {$nb_left} {$nb_right}'></td></tr>\n\t<tr><td>\n\t<table cellpadding='4' cellspacing='0' border='0' width='100%' bordercolor='#000000'>\n\t\t<tr>\n\t\t\t<td><font size='1'>CODE</font></td>\n\t\t\t<td><font size='1'>UNIT PRICE</font></td>\n\t\t\t<td><font size='1'>QTY</font></td>\n\t\t\t<td><font size='1'>TOTAL</font></td>\n\t\t<tr>\n\t\t{$products}\n\t</table>\n\t</td></tr>\n\t<tr><td align=right>\n\t\t<table cellpadding='2' cellspacing='0' border=0 width='100%' bordercolor='#000000'>\n\t\t\t<tr><td colspan='2'><hr style='border: 1px solid black; {$nb_bot} {$nb_left} {$nb_right}'></td></tr>\n\t\t\t<tr><td><font size='1'>SUBTOTAL</font></td><td align='right'><font size='1'>" . CUR . " {$SUBTOT}</font></td></tr>\n\t\t\t<tr><td><font size='1'>Trade Discount</font></td><td align='right'><font size='1'>" . CUR . " {$traddiscm}</font></td></tr>\n\t\t\t<tr><td><font size='1'>Delivery Charge</font></td><td align='right'><font size='1'>" . CUR . " {$inv['delchrg']}</font></td></tr>\n\t\t\t<tr><td><font size='1'>VAT {$vat14}</font></td><td align='right'><font size='1'>" . CUR . " {$VAT}</font></td></tr>\n\t\t\t<tr><td><font size='1'>GRAND TOTAL</font></td><td align='right'><b><font size='1'>" . CUR . " {$TOTAL}</font></b></td></tr>\n\t\t\t<font size='1'>{$rounding}</font>\n\t\t\t<font size='1'>{$pcash}</font>\n\t\t\t<font size='1'>{$pcheque}</font>\n\t\t\t<font size='1'>{$pcc}</font>\n\t\t\t<font size='1'>{$pc}</font>\n\t\t\t<tr><td colspan='2'><hr style='border: 1px solid black; {$nb_bot} {$nb_left} {$nb_right}'></td></tr>\n\t\t\t<tr><td colspan='2'><hr style='border: 1px solid black; {$nb_bot}'></td></tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='2' align='center'>\n\t\t\t\t<table cellpadding='2' cellspacing='0'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td width='50%' align='right'><font size='1'>CASHIER:</font></td>\n\t\t\t\t\t<td width='50%'><font size='1'>{$inv['username']}</font></td>\n\t\t\t\t</tr>\n\t\t\t\t{$sp}\n\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr><td colspan='2'><hr style='border: 1px solid black; {$nb_top}'></td></tr>\n\t\t\t<tr><td colspan='2'><font size='1'>{$posmsg}</font></td></tr>\n\t\t\t<tr><td>\n\t\t\t\t<font size='1'>{$Com}</font>\n\t\t\t</td></tr>\n\t\t</table>\n\t</td></tr>\n\t</table>"; $OUTPUT = $details; require "tmpl-print.php"; }
function print_slip() { extract($_REQUEST); $sql = "SELECT stkid, stkcod, stkdes, qty\n\t\t\tFROM cubit.pickslip_stk\n\t\t\t\tLEFT JOIN cubit.stock ON pickslip_stk.stock_id=stock.stkid\n\t\t\tWHERE pickslip_id='{$slip_id}'"; $stock_rslt = db_exec($sql) or errDie("Unable to retrieve picking slip."); $items_out = ""; while (list($stkid, $stkcod, $stkdes, $qty) = pg_fetch_array($stock_rslt)) { for ($i = 0; $i < $qty; $i++) { $items_out .= "\n\t\t\t<tr>\n\t\t\t\t<td>({$stkcod}) {$stkdes}</td>\n\t\t\t\t<td align='center'>___________________________</td>\n\t\t\t\t<td align='center'>___________________________</td>\n\t\t\t</tr>"; } } $OUTPUT = "\n\t<table " . TMPL_tblDflts . " width='100%' style='border: 1px solid #000'>\n\t\t<tr><td>\n\t\t<table " . TMPL_tblDflts . " width='100%' style='border: 1px solid #000'>\n\t\t\t<tr>\n\t\t\t\t<td><h1>Picking Slip</h1></td>\n\t\t\t\t<td align='right'><img src='" . pick_slip_barcode($slip_id) . "' /></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t</td></tr>\n\t\t<tr><td>\n\t\t<table " . TMPL_tblDflts . " width='100%' style='border: 1px solid #000'>\n\t\t\t<tr>\n\t\t\t\t<td><b>Stock</b></td>\n\t\t\t\t<td align='center'><b>Serial 1</b></td>\n\t\t\t\t<td align='center'><b>Serial 2</b></td>\n\t\t\t</tr>\n\t\t\t{$items_out}\n\t\t</table>\n\t</table>"; require "tmpl-print.php"; }
function details($_POST) { extract($_POST); # validate input require_lib("validate"); $v = new validate(); $v->isOk($invid, "num", 1, 20, "Invalid invoice number."); # display errors, if any if ($v->isError()) { $err = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $err .= "<li class='err'>{$e['msg']}</li>"; } return $confirm; } db_connect(); # Get invoice info $sql = "SELECT * FROM invoices WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $invRslt = db_exec($sql) or errDie("Unable to get invoice information"); if (pg_numrows($invRslt) < 1) { return "<i class='err'>Not Found</i>"; } $inv = pg_fetch_array($invRslt); $sql = "SELECT stkid FROM inv_items WHERE invid = '{$inv['invid']}' AND div = '" . USER_DIV . "'"; $crslt = db_exec($sql); if (pg_numrows($crslt) < 1) { $error = "<li class='err'> Error : Invoice number <b>{$invid}</b> has no items.</li>"; $error .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $error; } # check if invoice has been printed if ($inv['printed'] == "y") { $error = "<li class='err'> Error : Invoice number <b>{$invid}</b> has already been printed.</li>"; return $error; } # check if invoice has been serialised if ($inv['serd'] == "n") { $error = "<li class='err'> Error : You must select serial numbers for some Items on Invoice No. <b>T {$invid}</b> before you can print it.</li>"; return $error; } #check if this transaction date is allowed // $curyr = getActiveFinYear(); // if ($yr > $curyr || ($yr == $curyr && $mon > $PRDMON[12])) { // $v->addError("", "Cannot do transaction in future financial year. ".(DEBUG>0?"\"$details\"":"")); // } db_conn('cubit'); $showvat = TRUE; $blocked_date_from = getCSetting("BLOCKED_FROM"); $blocked_date_to = getCSetting("BLOCKED_TO"); if (strtotime($inv['odate']) >= strtotime($blocked_date_from) and strtotime($inv['odate']) <= 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>"; } pglib_transaction("BEGIN") or errDie("Unable to start a database transaction.", SELF); $invnum = divlastid('inv', USER_DIV); $Sl = "INSERT INTO ncsrec (oldnum, newnum, div) VALUES ('{$invid}', '{$invnum}', '" . USER_DIV . "')"; $Rs = db_exec($Sl) or errDie("Unable to insert into db"); # Get department db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid = '{$inv['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); } /* --- Start Products Display --- */ # Products layout $commision = 0; $products = array(); $disc = 0; # get selected stock in this invoice db_connect(); $sql = "SELECT * FROM inv_items WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $taxex = 0; $i = 0; $page = 0; $salesp = qrySalesPersonN($inv["salespn"]); while ($stkd = pg_fetch_array($stkdRslt)) { if ($i >= 25) { $page++; $i = 0; } $stkd['account'] += 0; if ($stkd['account'] == 0) { # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$stkd['whid']}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); # get selected stock in this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE stkid = '{$stkd['stkid']}' AND div = '" . USER_DIV . "'"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); $Sl = "SELECT * FROM vatcodes WHERE id='{$stkd['vatcode']}'"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) < 1) { return "Please select the vatcode for all your stock."; } $vd = pg_fetch_array($Ri); if (TAX_VAT != $vd['vat_amount'] and $vd['vat_amount'] != "0.00") { $showvat = FALSE; } $sp = ""; # Check Tax Excempt if ($stk['exvat'] == 'yes' || $vd['zero'] == "Yes") { $taxex += $stkd['amt']; $ex = "#"; } else { $ex = ""; } # all must be excempted if ($inv['chrgvat'] == 'nov') { $ex = "#"; } # Keep track of discounts $disc += $stkd['disc'] * $stkd['qty']; # Insert stock record $sdate = date("Y-m-d"); $csprice = sprint($stk['csprice'] * $stkd['qty']); # Sales rep commission if ($salesp["com"] > 0) { $itemcommission = $salesp['com']; } else { $itemcommission = $stk["com"]; } #if this item is not exvat (ie. $ex != #) then reduce by the vat amount if ((strlen($ex) != "#" or $vd['vat_amount'] > 0) and $inv['chrgvat'] == "inc") { $vat = sprint($stkd['amt'] * $vd['vat_amount'] / (100 + $vd['vat_amount'])); $exvatamt = sprint($stkd['amt'] - $vat); } else { $exvatamt = sprint($stkd['amt']); } $commision = $commision + coms($inv['salespn'], sprint($exvatamt), $itemcommission); if (strlen($stkd['serno']) > 0) { $showser = "<br>" . trim($stkd['serno']); } else { $showser = ""; } # Put in product $products[$page][] = "\n\t\t\t\t<tr valign='top'>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$stk['stkcod']} </td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$ex} {$sp} {$stk['stkdes']} {$showser}</td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$stkd['qty']} </td>\n\t\t\t\t\t<td align='right' style='border-right: 2px solid #000'>{$stkd['unitcost']} </td>\n\t\t\t\t\t<td align='right' style='border-right: 2px solid #000'>{$stkd['disc']} </td>\n\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$stkd['amt']} </td>\n\t\t\t\t</tr>"; $i++; } else { db_conn('core'); $Sl = "SELECT * FROM accounts WHERE accid='{$stkd['account']}'"; $Ri = db_exec($Sl) or errDie("Unable to get account data."); $ad = pg_fetch_array($Ri); db_conn('cubit'); $Sl = "SELECT * FROM vatcodes WHERE id='{$stkd['vatcode']}'"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) < 1) { return "Please select the vatcode for all your stock."; } $vd = pg_fetch_array($Ri); if (TAX_VAT != $vd['vat_amount'] and $vd['vat_amount'] != "0.00") { $showvat = FALSE; } $sp = ""; # Check Tax Excempt if ($vd['zero'] == "Yes") { $taxex += $stkd['amt']; $ex = "#"; } else { $ex = ""; } # all must be excempted if ($inv['chrgvat'] == 'nov') { $ex = "#"; } #if this item is not exvat (ie. $ex != #) then reduce by the vat amount if ((strlen($ex) != "#" or $vd['vat_amount'] > 0) and $inv['chrgvat'] == "inc") { $vat = sprint($stkd['amt'] * $vd['vat_amount'] / (100 + $vd['vat_amount'])); $exvatamt = sprint($stkd['amt'] - $vat); } else { $exvatamt = sprint($stkd['amt']); } if ($salesp["com"] > 0) { $itemcommission = $salesp['com']; } else { $itemcommission = 0; } $commision = $commision + coms($inv['salespn'], sprint($exvatamt), $itemcommission); # Put in product $products[$page][] = "\n\t\t\t\t<tr valign='top'>\n\t\t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$ex} {$sp} {$stkd['description']} </td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$stkd['qty']} </td>\n\t\t\t\t\t<td align='right' style='border-right: 2px solid #000'>{$stkd['unitcost']} </td>\n\t\t\t\t\t<td align='right' style='border-right: 2px solid #000'>{$stkd['disc']} </td>\n\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$stkd['amt']} </td>\n\t\t\t\t</tr>"; $i++; } } $blank_lines = 25; foreach ($products as $key => $val) { $bl = $blank_lines - count($products[$key]); for ($i = 0; $i <= $bl; $i++) { $products[$key][] = "\n\t \t\t\t<tr>\n\t \t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t \t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t \t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t \t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t \t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t \t\t\t\t<td> </td>\n\t \t\t\t</tr>"; } } /* --- Start Some calculations --- */ # Subtotal $SUBTOT = sprint($inv['subtot']); # Calculate tradediscm if (strlen($inv['traddisc']) > 0) { $traddiscm = sprint($inv['traddisc'] / 100 * $SUBTOT); } else { $traddiscm = "0.00"; } # Calculate subtotal $VATP = TAX_VAT; $SUBTOTAL = sprint($inv['subtot']); $VAT = sprint($inv['vat']); $TOTAL = sprint($inv['total']); $inv['delchrg'] = sprint($inv['delchrg']); com_invoice($inv['salespn'], $TOTAL - $VAT, sprint($commision), $invnum, $inv["odate"], true); /* --- End Some calculations --- */ /* - Start Hooks - */ $vatacc = gethook("accnum", "salesacc", "name", "VAT", "VAT"); /* - End Hooks - */ # Todays date $date = date("d-m-Y"); $sdate = date("Y-m-d"); $refnum = getrefnum(); /*refnum*/ if ($inv['branch'] != 0) { db_conn("cubit"); $get_addr = "SELECT * FROM customer_branches WHERE id = '{$inv['branch']}' LIMIT 1"; $run_addr = db_exec($get_addr); if (pg_numrows($run_addr) < 1) { $address = ""; } else { $barr = pg_fetch_array($run_addr); $address = " - {$barr['branch_name']}"; } } else { $address = ""; } /* --- Updates ---- */ db_connect(); $Sql = "UPDATE invoices SET printed = 'y', done = 'y', invnum='{$invnum}' WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $upRslt = db_exec($Sql) or errDie("Unable to update invoice information"); //dont make consignment order from invoice if customer number is entered ... // if (isset($inv['cordno']) AND strlen($inv['cordno']) > 0){ // $inv_type = "Consignment Order"; // }else { $inv_type = "Invoice"; // } # Record the payment on the statement $sql = "\n\t\t\tINSERT INTO stmnt (\n\t\t\t\tcusnum, invid, docref, amount, date, \n\t\t\t\ttype, branch, div, allocation_date, \n\t\t\t\tallocation_balance\n\t\t\t) VALUES (\n\t\t\t\t'{$inv['cusnum']}', '{$invnum}', '{$inv['docref']}', '{$inv['total']}', '{$inv['odate']}', \n\t\t\t\t'{$inv_type}', '{$address}', '" . USER_DIV . "', '{$inv['odate']}', \n\t\t\t\t'" . abs($inv['total']) . "'\n\t\t\t)"; $stmntRslt = db_exec($sql) or errDie("Unable to insert statement record in Cubit.", SELF); # Record the payment on the statement $sql = "\n\t\t\tINSERT INTO open_stmnt (\n\t\t\t\tcusnum, invid, docref, amount, balance, \n\t\t\t\tdate, type, div\n\t\t\t) VALUES (\n\t\t\t\t'{$inv['cusnum']}', '{$invnum}', '{$inv['docref']}', '{$inv['total']}','{$inv['total']}', \n\t\t\t\t'{$inv['odate']}', '{$inv_type}', '" . USER_DIV . "'\n\t\t\t)"; $stmntRslt = db_exec($sql) or errDie("Unable to insert statement record in Cubit.", SELF); # Save invoice discount $sql = "\n\t\t\tINSERT INTO inv_discs (\n\t\t\t\tcusnum, invid, traddisc, itemdisc, inv_date, delchrg, \n\t\t\t\tdiv, total\n\t\t\t) VALUES (\n\t\t\t\t'{$inv['cusnum']}', '{$invnum}', '{$traddiscm}', '{$disc}', '{$inv['odate']}', '{$inv['delchrg']}', \n\t\t\t\t'" . USER_DIV . "', ({$SUBTOT}+{$inv['delchrg']})\n\t\t\t)"; $stmntRslt = db_exec($sql) or errDie("Unable to insert statement record in Cubit.", SELF); # Update the customer (make balance more) $sql = "UPDATE customers SET balance = (balance + '{$inv['total']}') WHERE cusnum = '{$inv['cusnum']}' AND div = '" . USER_DIV . "'"; $rslt = db_exec($sql) or errDie("Unable to update invoice in Cubit.", SELF); # Make ledge record custledger($inv['cusnum'], $dept['incacc'], $inv['odate'], $invnum, "Invoice No. {$invnum}", $inv['total'], "d"); db_connect(); # get selected stock in this invoice $sql = "SELECT * FROM inv_items WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $tcosamt = 0; $sdate = date("Y-m-d"); $nsp = 0; while ($stkd = pg_fetch_array($stkdRslt)) { $stkd['account'] += 0; if ($stkd['account'] == 0) { db_connect(); # get selamt from selected stock $sql = "SELECT * FROM stock WHERE stkid = '{$stkd['stkid']}' AND div = '" . USER_DIV . "'"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); if ($stk['units'] - $stkd['qty'] < 0) { if ($stk['units'] <= 0) { $cosamt = 0; $cosamt2 = 0; } else { $cosamt = round($stk['units'] * $stk['csprice'], 2); $cosamt2 = round($stk['units'] * $stk['csprice'], 4); } } else { $cosamt = round($stkd['qty'] * $stk['csprice'], 2); $cosamt2 = round($stkd['qty'] * $stk['csprice'], 4); } # update stock(alloc - qty) $sql = "\n\t\t\t\t\tUPDATE stock \n\t\t\t\t\tSET csamt = (csamt - '{$cosamt}'),units = (units - '{$stkd['qty']}'), alloc=(alloc - '{$stkd['qty']}') \n\t\t\t\t\tWHERE stkid = '{$stkd['stkid']}' AND div = '" . USER_DIV . "'"; $rslt = db_exec($sql) or errDie("Unable to update stock to Cubit.", SELF); if ($inv["pslip_sordid"] > 0) { $sql = "UPDATE stock SET alloc = (alloc - '{$stkd['qty']}') WHERE stkid='{$stkd['stkid']}'"; // db_exec($sql) or errDie("Unable to update allocation."); } ###################VAT CALCS####################### $Sl = "SELECT * FROM vatcodes WHERE id='{$stkd['vatcode']}'"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) < 1) { return "Please select the vatcode for all your stock."; } $vd = pg_fetch_array($Ri); if ($stk['exvat'] == 'yes' || $vd['zero'] == "Yes") { $excluding = "y"; } else { $excluding = ""; } $vr = vatcalc($stkd['amt'], $inv['chrgvat'], $excluding, $inv['traddisc'], $vd['vat_amount']); $vrs = explode("|", $vr); $ivat = $vrs[0]; $iamount = $vrs[1]; vatr($vd['id'], $inv['odate'], "OUTPUT", $vd['code'], $refnum, "VAT for Invoice No.{$invnum} for Customer : {$inv['cusname']} {$inv['surname']}", $iamount, $ivat); #################################################### $amtexvat = sprint($stkd['amt']); // $uc=sprint($cosamt2/$stkd['qty']); $uc = round($cosamt2 / $stkd['qty'], 4); // '$cosamt', $csprice = sprint($stk['csprice'] * $stkd['qty']); db_connect(); $sql = "\n\t\t\t\t\tINSERT INTO stockrec (\n\t\t\t\t\t\tedate, stkid, stkcod, stkdes, trantype, qty, \n\t\t\t\t\t\tcsprice, csamt, details, div\n\t\t\t\t\t) VALUES (\n\t\t\t\t\t\t'{$inv['odate']}', '{$stkd['stkid']}', '{$stk['stkcod']}', '{$stk['stkdes']}', 'invoice', '{$stkd['qty']}', \n\t\t\t\t\t\t'{$amtexvat}', '{$csprice}', 'Stock sold - Invoice No. {$invnum}', '" . USER_DIV . "'\n\t\t\t\t\t)"; $recRslt = db_exec($sql); if ($stk['csprice'] > 0) { $Sl = "INSERT INTO scr (inv, stkid, amount, invid) VALUES ('{$invnum}', '{$stkd['stkid']}', '{$uc}', '{$stkd['id']}')"; $Rg = db_exec($Sl); } if ($stk['serd'] == 'yes') { ext_invSer($stkd['serno'], $stkd['stkid'], "{$inv['cusname']} {$inv['surname']}", $invnum, $inv['odate']); } # stkid, stkcod, stkdes, trantype, edate, qty, csamt, details $sdate = date("Y-m-d"); stockrec($stk['stkid'], $stk['stkcod'], $stk['stkdes'], 'ct', $inv['odate'], $stkd['qty'], $cosamt, "Sold to Customer : {$inv['surname']} - Invoice No. {$invnum}"); # get accounts db_conn("exten"); $sql = "SELECT stkacc, cosacc FROM warehouses WHERE whid = '{$stkd['whid']}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); $stockacc = $wh['stkacc']; $cosacc = $wh['cosacc']; if ($cosamt < 0) { $cosamt = 0; } # dt(cos) ct(stock) writetrans($cosacc, $stockacc, $inv['odate'], $refnum, $cosamt, "Cost Of Sales for Invoice No.{$invnum} for Customer : {$inv['cusname']} {$inv['surname']}"); $tcosamt += $cosamt; #record the entry for the stock report db_connect(); $sql = "\n\t\t\t\t\tINSERT INTO salesrec (\n\t\t\t\t\t\tedate, invid, invnum, debtacc, vat, total, typ, div\n\t\t\t\t\t) VALUES (\n\t\t\t\t\t\t'{$inv['odate']}', '{$invid}', '{$invnum}', '{$dept['debtacc']}', '{$ivat}', '{$iamount}', 'stk', '" . USER_DIV . "'\n\t\t\t\t\t)"; $recRslt = db_exec($sql); } else { db_connect(); ###################VAT CALCS####################### $Sl = "SELECT * FROM vatcodes WHERE id='{$stkd['vatcode']}'"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) < 1) { return "Please select the vatcode for all your stock."; } $vd = pg_fetch_array($Ri); if ($vd['zero'] == "Yes") { $excluding = "y"; } else { $excluding = ""; } $vr = vatcalc($stkd['amt'], $inv['chrgvat'], $excluding, $inv['traddisc'], $vd['vat_amount']); $vrs = explode("|", $vr); $ivat = $vrs[0]; $iamount = $vrs[1]; vatr($vd['id'], $inv['odate'], "OUTPUT", $vd['code'], $refnum, "VAT for Invoice No.{$invnum} for Customer : {$inv['cusname']} {$inv['surname']}", $iamount, $ivat); #################################################### $amtexvat = sprint($stkd['amt']); db_connect(); $sdate = date("Y-m-d"); $nsp += sprint($iamount - $ivat); writetrans($dept['debtacc'], $stkd['account'], $inv['odate'], $refnum, $iamount - $ivat, "Debtors Control for Invoice No.{$invnum} for Customer : {$inv['cusname']} {$inv['surname']}"); db_connect(); $sql = "\n\t\t\t\t\tINSERT INTO salesrec (\n\t\t\t\t\t\tedate, invid, invnum, debtacc, vat, total, typ, div\n\t\t\t\t\t) VALUES (\n\t\t\t\t\t\t'{$inv['odate']}', '{$invid}', '{$invnum}', '{$dept['debtacc']}', '{$ivat}', '{$iamount}', 'non', '" . USER_DIV . "'\n\t\t\t\t\t)"; $recRslt = db_exec($sql); } } ###################VAT CALCS####################### $inv['delvat'] += 0; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes WHERE id='{$inv['delvat']}'"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) < 1) { $Sl = "SELECT * FROM vatcodes"; $Ri = db_exec($Sl); } $vd = pg_fetch_array($Ri); if (TAX_VAT != $vd['vat_amount'] and $vd['vat_amount'] != "0.00") { $showvat = FALSE; } if ($vd['zero'] == "Yes") { $excluding = "y"; } else { $excluding = ""; } $vr = vatcalc($inv['delchrg'], $inv['chrgvat'], $excluding, $inv['traddisc'], $vd['vat_amount']); $vrs = explode("|", $vr); $ivat = $vrs[0]; $iamount = $vrs[1]; vatr($vd['id'], $inv['odate'], "OUTPUT", $vd['code'], $refnum, "VAT for Invoice No.{$invnum} for Customer : {$inv['cusname']} {$inv['surname']}", sprint($iamount + $ivat), $ivat); #################################################### /* - Start Transactoins - */ # dt(debtors) ct(income/sales) writetrans($dept['debtacc'], $dept['incacc'], $inv['odate'], $refnum, sprint($TOTAL - $VAT - $nsp), "Debtors Control for Invoice No.{$invnum} for Customer : {$inv['cusname']} {$inv['surname']}"); # dt(debtors) ct(vat account) writetrans($dept['debtacc'], $vatacc, $inv['odate'], $refnum, $VAT, "VAT Received on Invoice No.{$invnum} for Customer : {$inv['cusname']} {$inv['surname']}"); db_conn('cubit'); $Sl = "\n\t\t\tINSERT INTO sj (\n\t\t\t\tcid, name, des, date, exl, \n\t\t\t\tvat, inc, div\n\t\t\t) VALUES (\n\t\t\t\t'{$inv['cusnum']}', '{$inv['surname']}', 'Invoice {$invnum}', '{$inv['odate']}', '" . sprint($TOTAL - $VAT) . "', \n\t\t\t\t'{$VAT}', '" . sprint($TOTAL) . "', '" . USER_DIV . "'\n\t\t\t)"; $Ri = db_exec($Sl); // db_connect(); // $sql = "INSERT INTO salesrec(edate, invid, invnum, debtacc, vat, total, typ, div) // VALUES('$inv[odate]', '$invid', '$invnum', '$dept[debtacc]', '$VAT', '$TOTAL', 'stk', '".USER_DIV."')"; // $recRslt = db_exec($sql); //exit; # Commit updates pglib_transaction("COMMIT") or errDie("Unable to commit a database transaction.", SELF); /* - End Transactoins - */ # vat explanation if ($inv['chrgvat'] == 'nov') { $expl = "VAT Exempt indicator"; } else { $expl = "VAT Exempt indicator"; } if (strlen($inv['comm']) > 0) { $inv['comm'] = "\n\t\t\t<table border='1' cellspacing='0' bordercolor='#000000'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Remarks:</td>\n\t\t\t\t\t<td>" . nl2br($inv['comm']) . "</td>\n\t\t\t\t</tr>\n\t\t\t</table>"; } $cc = "<script> sCostCenter('dt', 'Sales', '{$inv['odate']}', 'Invoice No.{$invnum} for Customer {$inv['cusname']} {$inv['surname']}', '" . ($TOTAL - $VAT) . "', 'Cost Of Sales for Invoice No.{$invnum}', '{$tcosamt}', ''); </script>"; db_conn('cubit'); $Sl = "SELECT * FROM settings WHERE constant='SALES'"; $Ri = db_exec($Sl) or errDie("Unable to get settings."); $data = pg_fetch_array($Ri); if ($data['value'] == "Yes") { $sp = "\n\t\t\t<tr>\n\t\t\t\t<td><b>Sales Person:</b> {$inv['salespn']}</td>\n\t\t\t</tr>"; } else { $sp = ""; } if ($inv['chrgvat'] == "inc") { $inv['chrgvat'] = "Inclusive"; } elseif ($inv['chrgvat'] == "exc") { $inv['chrgvat'] = "Exclusive"; } else { $inv['chrgvat'] = "No vat"; } if ($inv['branch'] == 0) { $branchname = "Head Office"; } else { $get_bname = "SELECT * FROM customer_branches WHERE id = '{$inv['branch']}' LIMIT 1"; $run_bname = db_exec($get_bname); if (pg_numrows($run_bname) < 1) { $branchname = ""; } else { $arr = pg_fetch_array($run_bname); $branchname = $arr['branch_name']; } } if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } if (strlen(COMP_TEL) > 0) { $showtel = "Tel: "; } else { $showtel = ""; } if (strlen(COMP_FAX) > 0) { $showfax = "Fax: "; } else { $showfax = ""; } // Retrieve the company information db_conn("cubit"); $sql = "SELECT * FROM compinfo"; $comp_rslt = db_exec($sql) or errDie("Unable to retrieve company information from Cubit."); $comp_data = pg_fetch_array($comp_rslt); // Retrieve the banking information $bank_data = qryBankAcct(getdSetting("BANK_DET")); // Retrieve customer information db_conn("cubit"); $sql = "SELECT * FROM customers WHERE cusnum='{$inv['cusnum']}'"; $cust_rslt = db_exec($sql) or errDie("Unable to retrieve customer information from Cubit."); $cust_data = pg_fetch_array($cust_rslt); $table_borders = "\n\t\tborder-top: 2px solid #000000;\n\t\tborder-left: 2px solid #000000;\n\t\tborder-right: 2px solid #000000;\n\t\tborder-bottom: none;"; $details = ""; for ($i = 0; $i <= $page; $i++) { // new page? if ($i > 1) { $details .= "<br style='page-break-after:always;'>"; } $products_out = ""; foreach ($products[$i] as $string) { $products_out .= $string; } $barcode = "<img src='manufact/" . pick_slip_barcode($inv["invid"], 1) . "' />"; $details .= "\n\t\t<center>\n\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t<tr><td>\n\t\t\t<table border='0' cellpadding='2' cellspacing='2' width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align='left'><img src='compinfo/getimg.php' width='230' height='47'>{$barcode}</td>\n\t\t\t\t\t<td align='left'><font size='5'><b>" . COMP_NAME . "</b></font></td>\n\t\t\t\t\t<td align='right'><font size='5'><b>Tax Invoice</b></font></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</td></tr>\n\t\t</table>\n\n\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t<tr><td valign='top'>\n\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['addr1']} </td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['paddr1']} </td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['addr2']} </td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['paddr2']} </td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['addr3']} </td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['paddr3']} </td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['addr4']} </td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$comp_data['postcode']} </td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>REG:</b> {$comp_data['regnum']}</b> </td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>{$bank_data['bankname']}</b> </td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>VAT REG:</b> {$comp_data['vatnum']} </td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Branch</b> {$bank_data['branchname']} </td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Tel:</b> {$comp_data['tel']} </td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Branch Code:</b> {$bank_data['branchcode']} </td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Fax:</b> {$comp_data['fax']} </td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Acc Num:</b> {$bank_data['accnum']} </td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</td><td valign='top'>\n\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Date</b></td>\n\t\t\t\t\t<td><b>Page Number</b></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>{$inv['odate']}</td>\n\t\t\t\t\t<td>" . ($i + 1) . "</td>\n\t\t\t\t</tr>\n\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000'> </td>\n\t\t\t\t\t<td style='border-bottom: 2px solid #000'> </td>\n\t\t\t\t</tr>\n\t\t\t\t<tr><td> </td></tr>\n\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2'><b>Invoice No:</b> {$invnum}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2'><b>Proforma Inv No:</b> {$inv['docref']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2'><b>Sales Order No:</b> {$inv['ordno']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2'><b>Account No:</b> {$cust_data['accno']}</td>\n\t\t\t\t</tr>\n\t\t\t\t{$sp}\n\t\t\t</table>\n\t\t\t</td></tr>\n\t\t</table>\n\n\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t<tr><td>\n\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align='center'><font size='4'><b>Tax Invoice To:</b></font></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</td></tr>\n\t\t</table>\n\n\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t<tr><td>\n\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td width='33%' style='border-right: 2px solid #000'><b>{$inv['surname']}</b></td>\n\t\t\t\t\t<td width='33%' style='border-right: 2px solid #000'><b>Postal Address</b></td>\n\t\t\t\t\t<td width='33%'><b>Delivery Address</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>" . nl2br($cust_data["addr1"]) . "</td>\n\t\t\t\t\t<td style='border-right: 2px solid #000'>" . nl2br($cust_data["paddr1"]) . "</td>\n\t\t\t\t\t<td>Branch: {$branchname}<br />" . nl2br($inv["del_addr"]) . "</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</td></tr>\n\t\t</table>\n\n\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t<tr><td>\n\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td width='33%' style='border-right: 2px solid #000'><b>Customer VAT No:</b> {$inv['cusvatno']}</td>\n\t\t\t\t\t<td width='33%' style='border-right: 2px solid #000'><b>Customer Order No:</b> {$inv['cordno']}</td>\n\t\t\t\t\t<td width='33%'><b>Delivery Date:</b> {$inv['deldate']}</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</td></tr>\n\t\t</table>\n\n\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t<tr><td>\n\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000;'><b>Code</b></td>\n\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000;'><b>Description</b></td>\n\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000;'><b>Qty</b></td>\n\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000;' align='right'><b>Unit Price</b></td>\n\t\t\t\t\t<td style='border-bottom: 2px solid #000; border-right: 2px solid #000;' align='right'><b>Unit Discount</b></td>\n\t\t\t\t\t<td style='border-bottom: 2px solid #000' align='right'><b>Amount</b></td>\n\t\t\t\t</tr>\n\t\t\t\t{$products_out}\n\t\t\t</table>\n\t\t\t</td></tr>\n\t\t</table>\n\n\t\t<table cellpadding='0' cellspacing='0' width='85%' style='{$table_borders}'>\n\t\t\t<tr><td>\n\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><i>VAT Exempt Indicator: #</i></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>{$inv['comm']}</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</table>\n\n\t\t<table cellpadding='0' cellspacing='0' width='85%' style='border: 2px solid #000000'>\n\t\t\t<tr><td>\n\t\t\t<table cellpadding='2' cellspacing='0' border='0' width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Terms: {$inv['terms']} days</b></td>\n\t\t\t\t\t<td><b>Subtotal:</b></td>\n\t\t\t\t\t<td nowrap><b>" . CUR . " {$inv['subtot']}</b></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t\t\t\t\t<td><b>Trade Discount:</b></td>\n\t\t\t\t\t<td nowrap><b>" . CUR . " {$inv['discount']}</b></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Received in good order by:</b>_____________________</td>\n\t\t\t\t\t<td><b>Delivery Charge</b></td>\n\t\t\t\t\t<td nowrap><b>" . CUR . " {$inv['delivery']}</b></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'> </td>\n\t\t\t\t\t<td><b>VAT {$vat14}:</b></td>\n\t\t\t\t\t<td nowrap><b>" . CUR . " {$inv['vat']}</b></td>\n\t\t\t\t<tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td style='border-right: 2px solid #000'><b>Date:</b>_____________________</td>\n\t\t\t\t\t<td><b>Total Incl VAT:</b></td>\n\t\t\t\t\t<td nowrap><b>" . CUR . " {$inv['total']}</b></td>\n\t\t\t\t</tr>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</table>"; } // Retrieve template settings from Cubit db_conn("cubit"); $sql = "SELECT filename FROM template_settings WHERE template='invoices'"; $tsRslt = db_exec($sql) or errDie("Unable to retrieve the template settings from Cubit."); $template = pg_fetch_result($tsRslt, 0); $OUTPUT = "\n\t\t<script>\n\t\t\tsCostCenter('dt', 'Sales', '{$inv['odate']}', 'Invoice No.{$invnum} for Customer {$inv['cusname']} {$inv['surname']}', '" . ($TOTAL - $VAT) . "', 'Cost Of Sales for Invoice No.{$invnum}', '{$tcosamt}', '');\n\t\t</script>"; if (isset($email)) { $OUTPUT .= "\n\t\t\t<script>\n\t\t\t\tmove(\"invoices-email.php?evs={$inv['invid']}\");\n\t\t\t</script>"; require "template.php"; } if ($template == "invoice-print.php") { $OUTPUT .= $details; require "tmpl-print.php"; } else { $OUTPUT .= "\n\t\t\t<script>\n\t\t\t\tmove(\"{$template}?invid={$inv['invid']}&type=inv\");\n\t\t\t</script>"; require "template.php"; } }