function enter() { /* db_connect(); # check if setting exists $sql = "SELECT label FROM set WHERE label = 'INT_TYPE'"; $Rslt = db_exec ($sql) or errDie ("Unable to check database for existing settings."); if (pg_numrows ($Rslt) > 0) { return printSet(); } */ core_connect(); $sql = "SELECT * FROM accounts WHERE acctype ='I' AND div = '" . USER_DIV . "'"; $accRslt = db_exec($sql); $numrows = pg_numrows($accRslt); if (empty($numrows)) { return "<li>ERROR : There are no income accounts in Cubit.</li>"; } $slctAcc = "<select name='accid'>"; while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } $slctAcc .= "<option value='{$acc['accid']}'>{$acc['topacc']}/{$acc['accnum']} - {$acc['accname']}</option>"; } $slctAcc .= "</select>"; # Connect to db $enter = "\n\t\t<h3>Cubit Settings</h3>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t<input type='hidden' name='key' value='confirm'>\n\t\t\t<tr>\n\t\t\t\t<th colspan='3'>Interest Calculation</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><input type='radio' size='20' name='typ' value='perc' checked='yes'>Use Percentage <input type='text' name='perc' value='0' size='4'> %</td>\n\t\t\t\t<td><input type='radio' size='20' name='typ' value='brac'>Use Interest Brackets</td>\n\t\t\t\t<td><input type='radio' size='20' name='typ' value='rate'>Use Customer Specific rate | Default rate <input type='text' name='dperc' value='0' size='4'>%</td>\n\t\t\t</tr>\n\t\t\t<tr><td><br></td></tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Interest Received Account</td>\n\t\t\t\t<td>{$slctAcc}</td>\n\t\t\t\t<td><br></td>\n\t\t\t</tr>\n\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align='right' colspan='2'><input type='submit' value='Continue »'></td>\n\t\t\t\t</tr>\n\t\t\t</form>\n\t\t\t</table>\n\t\t\t<p>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Quick Links</th>\n\t\t\t\t</tr>\n\t\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t\t</table>"; return $enter; }
function details($_POST, $error = "") { # Get vars extract($_POST); if (!isset($button) && isset($starting)) { return slct(); } # validate input require_lib("validate"); $v = new validate(); if (isset($invid)) { $v->isOk($invid, "num", 1, 20, "Invalid Non-Stock Invoice number."); } elseif (isset($ctyp)) { $val = $ctyp . "val"; if (isset(${$val})) { $tval = ${$val}; $v->isOk($tval, "num", 1, 20, "Invalid Selection."); } } # display errors, if any if ($v->isError()) { $errors = $v->getErrors(); foreach ($errors as $e) { $error .= "<li class='err'>" . $e["msg"] . "</li>"; } return slct($error); $confirm = "{$error}<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } if (!isset($invid) && isset($ctyp)) { $val = $ctyp . "val"; if (!isset(${$val})) { ${$val} = ""; } $tval = ${$val}; if (isset($bankid)) { $bankid += 0; $acc = $bankid; } else { $acc = 0; } // Retrieve default comments db_conn("cubit"); $sql = "SELECT value FROM settings WHERE constant='DEFAULT_COMMENTS'"; $commRslt = db_exec($sql) or errDie("Unable to retrieve default comments from Cubit."); $comment = base64_decode(pg_fetch_result($commRslt, 0)); $invid = create_dummy(0, $ctyp, $tval, $acc, $comment); } # Get invoice info db_connect(); $sql = "SELECT * FROM rnons_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 "<li class='err'>Invoice Not Found</li>"; } $inv = pg_fetch_array($invRslt); /* --- Start Drop Downs --- */ # format date list($rinv_year, $rinv_month, $rinv_day) = explode("-", $inv['sdate']); # keep the charge vat option stable if ($inv['chrgvat'] == "yes") { $chy = "checked=yes"; $chn = ""; $chnone = ""; } elseif ($inv['chrgvat'] == "no") { $chy = ""; $chn = "checked=yes"; $chnone = ""; } else { $chy = ""; $chn = ""; $chnone = "checked=yes"; } # Days drop downs $days = array("0" => "0", "7" => "7", "14" => "14", "30" => "30", "60" => "60", "90" => "90", "120" => "120"); $termssel = extlib_cpsel("terms", $days, $inv['terms']); /* --- End Drop Downs --- */ /* --- Start Products Display --- */ # Select all products $products = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<th>DESCRIPTION</th>\n\t\t\t\t<th>QTY</th>\n\t\t\t\t<th>UNIT PRICE</th>\n\t\t\t\t<th>AMOUNT</th>\n\t\t\t\t<th>Account</th>\n\t\t\t\t<th>VAT Code</th>\n\t\t\t\t<th>Remove</th>\n\t\t\t<tr>"; # get selected stock in this purchase db_connect(); $sql = "SELECT * FROM rnons_inv_items WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $i = 0; while ($stkd = pg_fetch_array($stkdRslt)) { # keep track of selected stock amounts $amts[$i] = $stkd['amt']; $stkd['amt'] = round($stkd['amt'], 2); $chk = ""; if ($stkd['vatex'] == 'y') { $chk = "checked=yes"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl); $vats = "<select name='vatcodes[]'>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatex'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $vats .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $vats .= "</select>"; db_conn('core'); $Sl = "SELECT accid,accname FROM accounts WHERE div='" . USER_DIV . "' ORDER BY accname"; $Ri = db_exec($Sl); $accounts = "<select name='accounts[]'>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } if ($ad['accid'] == $stkd['account']) { $sel = "selected"; } else { $sel = ""; } $accounts .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>"; } $accounts .= "</select>"; db_conn('cubit'); # put in product $products .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td align='center'><input type='text' size='50' name='des[]' value='{$stkd['description']}'></td>\n\t\t\t\t<td align='center'><input type='text' size='3' name='qtys[]' value='{$stkd['qty']}'></td>\n\t\t\t\t<td align='center'><input type='text' size='8' name='unitcost[]' value='{$stkd['unitcost']}'></td>\n\t\t\t\t<td><input type='hidden' name='amt[]' value='{$stkd['amt']}'> " . CUR . " " . sprint($stkd["amt"]) . "</td>\n\t\t\t\t<td>{$accounts}</td>\n\t\t\t\t<td align='center'>{$vats}</td>\n\t\t\t\t<td align='center'><input type='checkbox' name='remprod[]' value='{$i}'><input type='hidden' name='SCROLL' value='yes'></td>\n\t\t\t</tr>"; $i++; } # Look above(remprod keys) $keyy = $i; # look above(if i = 0 then there are no products) if ($i == 0) { $done = ""; } if ($i == 0 || isset($diffwhBtn)) { db_conn('core'); $Sl = "SELECT accid,accname FROM accounts WHERE div='" . USER_DIV . "' ORDER BY accname"; $Ri = db_exec($Sl); $accounts = "<select name='accounts[]'>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $accounts .= "</select>"; # add one $products .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td align='center'><input type='text' size='50' name='des[]' value=''></td>\n\t\t\t\t<td align='center'><input type='text' size='3' name='qtys[]' value='1'></td>\n\t\t\t\t<td align='center'><input type='text' size='8' name='unitcost[]'></td>\n\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t<td>{$accounts}</td>\n\t\t\t\t<td> </td>\n\t\t\t\t<td> </td>\n\t\t\t</tr>"; } $products .= "</table>"; /* --- End Products Display --- */ /* --- Start Some calculations --- */ # Get subtotal $SUBTOT = $inv['subtot']; # Get Total $TOTAL = sprint($inv['total']); # Get vat $VAT = sprint($inv['vat']); /* --- End Some calculations --- */ db_conn('cubit'); if ($inv['ctyp'] == 's') { $sql = "SELECT * FROM customers WHERE cusnum = '{$inv['tval']}' AND div = '" . USER_DIV . "'"; $custRslt = db_exec($sql) or errDie("Unable to view customer"); $cust = pg_fetch_array($custRslt); $details = "\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'> Customer Details </th>\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='cusname' value='{$cust['surname']}'>\n\t\t\t<input type='hidden' name='cusaddr' value='{$cust['addr1']}'>\n\t\t\t<input type='hidden' name='cusvatno' value='{$cust['vatnum']}'>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Customer</td>\n\t\t\t\t<td valign='center'>{$cust['surname']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Customer Address</td>\n\t\t\t\t<td valign='center'><pre>{$cust['addr1']}</pre></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Customer Vat Number</td>\n\t\t\t\t<td valign='center'>{$cust['vatnum']}</td>\n\t\t\t</tr>"; } elseif ($inv['ctyp'] == 'c') { db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid = '{$inv['tval']}'"; $deptRslt = db_exec($sql) or errDie("Unable to view customers"); $dept = pg_fetch_array($deptRslt); $details = "\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'> Customer Details </th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Customer</td>\n\t\t\t\t<td valign='center'><input type='text' name='cusname' value='{$inv['cusname']}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td valign='top'>Customer Address</td>\n\t\t\t\t<td valign='center'><textarea name='cusaddr' cols='18' rows='3'>{$inv['cusaddr']}</textarea></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td valign='top'>Customer VAT No.</td>\n\t\t\t\t<td valign='center'><input type='text' name='cusvatno' value='{$inv['cusvatno']}'></td>\n\t\t\t</tr>"; } else { db_conn('core'); $Sl = "SELECT accid,accname FROM accounts WHERE div='" . USER_DIV . "' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $accountss = "<select name=account>"; while ($ad = pg_fetch_array($Ri)) { if ($ad['accid'] == $inv['tval']) { $sel = "selected"; } else { $sel = ""; } $accountss .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>"; } $accountss .= "</select>"; $details = "\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'> Customer Details </th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Customer</td>\n\t\t\t\t<td valign='center'><input type='text' name='cusname' value='{$inv['cusname']}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td valign='top'>Customer Address</td>\n\t\t\t\t<td valign='center'><textarea name='cusaddr' cols='18' rows='3'>{$inv['cusaddr']}</textarea></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td valign='top'>Customer VAT No.</td>\n\t\t\t\t<td valign='center'><input type='text' name='cusvatno' value='{$inv['cusvatno']}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Ledger Account</td>\n\t\t\t\t<td>{$accountss}</td>\n\t\t\t</tr>"; } db_conn('cubit'); $Sl = "SELECT * FROM costcenters"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) > 0) { $ctd = "\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Cost Center</th>\n\t\t\t\t\t<th>Percentage</th>\n\t\t\t\t</tr>"; $i = 0; while ($data = pg_fetch_array($Ri)) { $Sl = "SELECT * FROM ninvc WHERE inv='{$invid}' AND cid='{$data['ccid']}'"; $Rq = db_exec($Sl); $cd = pg_fetch_array($Rq); $ctd .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$data['centername']}</td>\n\t\t\t\t\t<td><input type='text' name='ct[{$data['ccid']}]' size='5' value='{$cd['amount']}'>%</td>\n\t\t\t\t</tr>"; $i++; } $ctd .= "</table>"; } else { $ctd = ""; } if (empty($inv["remarks"])) { // Retrieve default comments db_conn("cubit"); $sql = "SELECT value FROM settings WHERE constant='DEFAULT_COMMENTS'"; $commRslt = db_exec($sql) or errDie("Unable to retrieve default comments from Cubit."); $comment = base64_decode(pg_fetch_result($commRslt, 0)); } else { $comment = $inv["remarks"]; } if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } if (isset($diffwhBtn) or isset($upBtn) or isset($doneBtn)) { $jump_bot = "\n\t\t\t<script>\n\t\t\t\twindow.location.hash='bottom';\n\t\t\t</script>"; } else { $jump_bot = ""; } $details = "\n\t\t<center>\n\t\t<h3>New Recurring Non-Stock Invoices</h3>\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='key' value='update'>\n\t\t\t<input type='hidden' name='invid' value='{$invid}'>\n\t\t<table " . TMPL_tblDflts . " width='95%'>\n\t\t\t<tr>\n\t\t\t\t<td valign='top'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t{$details}\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Customer Order number</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='10' name='cordno' value='{$inv['cordno']}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t\t<td valign='top' align='right'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan='2'> Non-Stock Invoice Details </th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Recurring Non-Stock Invoice No.</td>\n\t\t\t\t\t\t\t<td valign='center'>RI {$inv['invid']}</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>Proforma Invoice No.</td>\n\t\t\t\t\t\t\t<td><input type='text' name='docref' value='{$inv['docref']}'></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'>" . mkDateSelect("rinv", $rinv_year, $rinv_month, $rinv_day) . "</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>VAT Inclusive</td>\n\t\t\t\t\t\t\t<td valign='center'>Yes <input type='radio' size='7' name='chrgvat' value='yes' {$chy}> No<input type='radio' size='7' name='chrgvat' value='no' {$chn}></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>Terms</td>\n\t\t\t\t\t\t\t<td valign='center'>{$termssel} Days</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td colspan='2'>{$ctd}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr>\n\t\t\t\t<td colspan='2'>{$products}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>\n\t\t\t\t\t<p>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th width='25%'>Quick Links</th>\n\t\t\t\t\t\t\t<th width='25%'>Remarks</th>\n\t\t\t\t\t\t\t<td rowspan='5' valign='top' width='50%'>{$error}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td class='" . bg_class() . "'><a href='rec-nons-invoice-view.php'>View Recurring Non-Stock Invoices</a></td>\n\t\t\t\t\t\t\t<td class='" . bg_class() . "' rowspan='4' align='center' valign='top'><textarea name='remarks' rows='4' cols='20'>{$comment}</textarea></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t\t<td align='right'>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='80%'>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>SUBTOTAL</td>\n\t\t\t\t\t\t\t<td align='right'>" . CUR . " <input type='hidden' name='subtot' value='{$SUBTOT}'>{$SUBTOT}</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>VAT {$vat14}</td>\n\t\t\t\t\t\t\t<td align='right'>" . CUR . " {$inv['vat']}</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<th>GRAND TOTAL</th>\n\t\t\t\t\t\t\t<td align='right'>" . CUR . " <input type='hidden' name='total' value='{$TOTAL}'>{$TOTAL}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td align='right'><input name='diffwhBtn' type='submit' value='Add Item'> |</td>\n\t\t\t\t<td><input type='submit' name='upBtn' value='Update'>{$done}</td>\n\t\t\t</tr>\n\t\t</table>\n\t\t<a name='bottom'>\n\t\t</form>\n\t\t</center>\n\t\t{$jump_bot}"; return $details; }
function enter() { # connect to db core_connect(); $depacc = "<select name='incacc'>"; $sql = "SELECT * FROM accounts WHERE acctype = 'I' AND div = '" . USER_DIV . "'"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li class=error>There are no Income accounts yet in Cubit."; } else { while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } $depacc .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } } $depacc .= "</select>"; $debtacc = "<select name='debtacc'>"; $sql = "SELECT * FROM accounts WHERE acctype = 'B' AND div = '" . USER_DIV . "'"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li class=error>There are no Balance accounts yet in Cubit."; } else { while ($acc = pg_fetch_array($accRslt)) { $debtacc .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } } $debtacc .= "</select>"; $credacc = "<select name='credacc'>"; $sql = "SELECT * FROM accounts WHERE acctype = 'B' AND div = '" . USER_DIV . "'"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li class=error>There are no Balance accounts yet in Cubit."; } else { while ($acc = pg_fetch_array($accRslt)) { $credacc .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } } $credacc .= "</select>"; //Get account for Point of sale income account $pias = "<select name='pia'>"; $sql = "SELECT accid,accname FROM accounts WHERE acctype = 'I' AND div = '" . USER_DIV . "'"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li class=error>There are no Income accounts in Cubit."; } else { while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } $pias .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } } $pias .= "</select>"; //Get account for Point of Sale Cash on hand account $pcas = "<select name='pca'>"; $sql = "SELECT accid,accname FROM accounts WHERE acctype = 'B' AND div = '" . USER_DIV . "'"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li class=error>There are no Income accounts in Cubit."; } else { while ($acc = pg_fetch_array($accRslt)) { $pcas .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } } $pcas .= "</select>"; $enter = "<h3>Add Department</h3>\r\n\t<form action='" . SELF . "' method=post>\r\n\t<table cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\r\n\t<input type=hidden name=key value=confirm>\r\n\t<tr><th>Field</th><th>Value</th></tr>\r\n\t<tr class='bg-odd'><td>Dept Number</td><td><input type=text size=10 name=deptno></td></tr>\r\n\t<tr class='bg-even'><td>Department</td><td><input type=text size=20 name=deptname></td></tr>\r\n\t<tr class='bg-odd'><td>Income Account</td><td>{$depacc}</td></tr>\r\n\t<tr class='bg-even'><td>Debtors Control Account</td><td>{$debtacc}</td></tr>\r\n\t<tr class='bg-odd'><td>Creditors Control Account</td><td>{$credacc}</td></tr>\r\n\t<tr class='bg-even'><td>Point of Sale: Cash on hand account</td><td>{$pcas}</td></tr>\r\n\t<tr class='bg-odd'><td>Point of Sale Income Account</td><td>{$pias}</td></tr>\r\n\t<tr><td colspan=2 align=right><input type=submit value='Confirm »'></td></tr>\r\n\t</table></form>\r\n\t<p>\r\n\t<table border=0 cellpadding='2' cellspacing='1'>\r\n\t<tr><th>Quick Links</th></tr>\r\n\t<tr class='bg-odd'><td><a href='dept-view.php'>View Departments</a></td></tr>\r\n\t<tr class='bg-odd'><td><a href='../core/acc-new2.php'>Add Account</a></td></tr>\r\n\t<tr class='bg-odd'><td><a href='../main.php'>Main Menu</a></td></tr>\r\n\t</table>"; return $enter; }
function writeLoan($_POST) { # get vars extract($_POST); # validate input require_lib("validate"); $v = new validate(); $v->isOk($empnum, "num", 1, 20, "Invalid employee number."); $v->isOk($loanid, "num", 1, 20, "Invalid loan ID."); $v->isOk($loanamt, "float", 1, 10, "Invalid loan amount."); $v->isOk($loanint, "float", 1, 5, "Invalid loan interest."); $v->isOk($loanperiod, "num", 1, 3, "Invalid payback period."); $v->isOk($loaninstall, "float", 1, 10, "Invalid monthly installment."); $v->isOk($fringebenefit, "float", 1, 10, "Invalid fringe benefit amount."); $v->isOk($accid, "num", 1, 9, "Invalid bank account selected."); $v->isOk($account, "num", 1, 9, "Invalid contra account selected."); $v->isOk($loan_account, "num", 1, 9, "Invalid loan account selected."); $v->isOk($loan_type, "num", 1, 9, "Invalid loan type selected."); $ldate = mkdate($lyear, $lmonth, $lday); $v->isOk($ldate, "date", 1, 1, "Invalid loan date."); $archdate = mkdate($arch_year, $arch_month, $arch_day); $v->isOk($archdate, "date", 1, 1, "Invalid approval/denial date."); if (!checkdate($lmonth, $lday, $lyear)) { $v->addError("", "Invalid date."); } if ($account > 0 && isb($account) || isb($loan_account)) { $v->addError("", "Main accounts blocked. Please select sub accounts."); } # display errors, if any if ($v->isError()) { $confirmCust = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirmCust .= "<li class='err'>" . $e["msg"] . "</li>"; } return enterLoan($confirmCust); } # CHECK IF THIS DATE IS IN THE BLOCKED RANGE $blocked_date_from = getCSetting("BLOCKED_FROM"); $blocked_date_to = getCSetting("BLOCKED_TO"); if (strtotime($ldate) >= strtotime($blocked_date_from) and strtotime($ldate) <= 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>"; } # CHECK IF THIS DATE IS IN THE BLOCKED RANGE $blocked_date_from = getCSetting("BLOCKED_FROM"); $blocked_date_to = getCSetting("BLOCKED_TO"); if (strtotime($archdate) >= strtotime($blocked_date_from) and strtotime($archdate) <= 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>"; } # get employee details db_connect(); $sql = "SELECT * FROM employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "'"; $empRslt = db_exec($sql) or errDie("Unable to select employees from database."); if (pg_numrows($empRslt) < 1) { return "Invalid employee ID."; } $myEmp = pg_fetch_array($empRslt); if (!isset($deny)) { # check for previous loan $sql = "SELECT empnum FROM employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "' AND gotloan='t'::bool"; $chkRslt = db_exec($sql) or errDie("Unable to check existing loans for employee."); if (pg_numrows($chkRslt) > 0) { return "<li class='err'>Loan already exists for employee number: {$empnum}.</li>"; } } $date = date("Y-m-d"); pglib_transaction("BEGIN"); $totamount = sprint($loanperiod * $loaninstall); $loanint_amt = $totamount - $loanamt; $sql = "\n\t\tINSERT INTO emp_loanarchive (\n\t\t\tempnum, loanamt, loaninstall, loanint, loanperiod, loandate, archdate, loan_type, \n\t\t\tdiv, status\n\t\t) VALUES (\n\t\t\t'{$empnum}', '{$totamount}', '{$loaninstall}', '{$loanint}', '{$loanperiod}', '{$ldate}', '{$archdate}', '{$loan_type}', \n\t\t\t'" . USER_DIV . "', '" . (isset($deny) ? "D" : "A") . "'\n\t\t)"; $rslt = db_exec($sql) or errDie("Unable to pre archive loan."); $loanaid = pglib_lastid('emp_loanarchive', 'id'); $rem_sql = "DELETE FROM loan_requests WHERE id = '{$loanid}'"; $run_rem = db_exec($rem_sql) or errDie("Unable to get loan requests information."); if (!isset($deny)) { $refnum = getrefnum(); if ($accid > 0) { $bankacc = getbankaccid($accid); } if ($account > 0) { $bankacc = $account; } writetrans($loan_account, $bankacc, $archdate, $refnum, $loanamt, "Loan granted to employee {$myEmp['fnames']} {$myEmp['sname']}."); if ($accid > 0) { banktrans($accid, "withdrawal", $archdate, "{$myEmp['fnames']} {$myEmp['sname']}", "Loan granted to employee {$myEmp['fnames']} {$myEmp['sname']}.", 0, $loanamt, $loan_account); } # write to db $sql = "\n\t\t\tUPDATE cubit.employees \n\t\t\tSET loanamt = '{$totamount}', loanint = '{$loanint}', loanint_amt = '{$loanint_amt}', loanint_unpaid = '{$loanint_amt}', \n\t\t\t\tloanperiod = '{$loanperiod}', loaninstall = '{$loaninstall}', gotloan = 't'::bool, loanpayslip = '{$loanamt}', \n\t\t\t\tloanfringe = '{$fringebenefit}', loandate = '{$archdate}', expacc_loan = '{$loan_account}', \n\t\t\t\tloanamt_tot = '{$totamount}', loanid = '{$loanaid}' \n\t\t\tWHERE empnum = '{$empnum}' AND div = '" . USER_DIV . "'"; $loanRslt = db_exec($sql) or errDie("Unable to add loan to system.", SELF); if (pg_cmdtuples($loanRslt) < 1) { return "Unable to add loan to system."; } } pglib_transaction("COMMIT"); $OUT = "<table " . TMPL_tblDflts . ">"; if (isset($deny)) { $OUT .= "\n\t\t\t<tr>\n\t\t\t\t<th>Loan Denied And Request Archived.</th>\n\t\t\t</tr>"; } else { $OUT .= "\n\t\t\t<tr>\n\t\t\t\t<th>Loan Granted And Added To System</th>\n\t\t\t</tr>"; } $OUT .= "\n\t\t<tr class='datacell'>\n\t\t\t<td>Loan information successfully updated.</td>\n\t\t</tr>\n\t\t" . TBL_BR; if (!isset($deny)) { $OUT .= "\n\t\t\t<tr>\n\t\t\t\t<td><input type='button' onclick=\"document.location='../reporting/loan_approval.php?id={$loanaid}'\" value='Generate Approval Report'></td>\n\t\t\t</tr>"; } $OUT .= "\n\t\t</table><br>" . mkQuickLinks(ql("loan_apply.php", "Add Loan Application"), ql("loan_apply_view.php", "View Loan Applications"), ql("../admin-employee-add.php", "Add Employee"), ql("../admin-employee-view.php", "View Employees")); return $OUT; }
function confirmAllow($_POST) { # get vars extract($_POST); # validate input require_lib("validate"); $v = new validate(); $v->isOk($allowance, "string", 1, 100, "Invalid allowance name."); $v->isOk($catid, "string", 1, 20, "Invalid Category number."); $v->isOk($taxable, "string", 1, 3, "Invalid taxablility option."); $v->isOk($type, "string", 1, 15, "Invalid type."); # display errors, if any if ($v->isError()) { $confirmCust = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirmCust .= "<li class='err'>" . $e["msg"] . "</li>"; } $confirmCust .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirmCust; } # connect to db core_connect(); $allacc = "<select name='accid'>"; $sql = "SELECT * FROM accounts WHERE catid = '{$catid}' AND div = '" . USER_DIV . "'"; $accRslt = db_exec($sql); $numrows = pg_numrows($accRslt); if (empty($numrows)) { return "<li> There are no accounts under selected category.</li>\n\t\t\t\t<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; } else { $prevtop = ""; while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } if ($acc["topacc"] == $prevtop && $acc["accnum"] != "000") { $x = " - {$acc['topacc']}/{$acc['accnum']}"; } else { $x = "{$acc['topacc']}/{$acc['accnum']}"; $prevtop = $acc["topacc"]; } $allacc .= "<option value='{$acc['accid']}'>{$x} {$acc['accname']}</option>"; } } $allacc .= "</select>"; $confirmAllow = "\n\t\t\t\t\t\t<h3>Confirm new allowance</h3>\n\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t\t\t\t\t<input type='hidden' name='key' value='write'>\n\t\t\t\t\t\t\t<input type='hidden' name='allowance' value='{$allowance}'>\n\t\t\t\t\t\t\t<input type='hidden' name='taxable' value='{$taxable}'>\n\t\t\t\t\t\t\t<input type='hidden' name='type' value='{$type}'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th colspan='2'>Allowance Details</th>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Name of allowance</td>\n\t\t\t\t\t\t\t\t<td align='center'>{$allowance}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Allowance Account</td>\n\t\t\t\t\t\t\t\t<td align='center'>{$allacc}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Add Before PAYE</td>\n\t\t\t\t\t\t\t\t<td align='center'>{$taxable}</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 class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Allowance Type</td>\n\t\t\t\t\t\t\t\t<td align='center'>{$type}</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 colspan='2' align='right'><input type=submit value='Write »'></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t\t<br>" . mkQuickLinks(ql("allowance-add.php", "Add Allowance"), ql("../admin-employee-add.php", "Add Employee"), ql("../admin-employee-view.php", "View Employees")); return $confirmAllow; }
function block_check($acc, $debug = false) { global $block_check_errs, $block_check_accs; if (!isset($block_check_accs[$acc]) && isb($acc)) { $block_check_accs[$acc] = 1; $sql = "SELECT accname FROM core.accounts WHERE accid='{$acc}'"; $rslt = db_exec($sql) or errDie("Error reading account name for blocked account."); $accname = pg_fetch_result($rslt, 0, 0); $block_check_errs .= "<li class='err'>{$accname} is a blocked account. Please use the appropriate feature to\r\n\t\t\t\t\tchange the usage of this account before you continue with processing salaries.</li>"; return false; } return true; }
function details($_POST, $error = "") { extract($_POST); # validate input include "libs/validate.lib.php"; $v = new validate(); if (isset($quoid)) { $v->isOk($quoid, "num", 1, 20, "Invalid quote number."); } if (isset($deptid)) { $v->isOk($deptid, "num", 1, 20, "Invalid department number."); } if (isset($letters)) { $v->isOk($letters, "string", 0, 5, "Invalid First 3 Letters."); } # display errors, if any if ($v->isError()) { $errors = $v->getErrors(); foreach ($errors as $e) { $error .= "<li class='err'>{$e['msg']}</li>"; } $confirm .= "{$error}<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } if (!isset($deptid)) { $deptid = 0; } else { if (isset($quoid)) { db_conn("cubit"); $sql = "UPDATE quotes SET deptid='{$deptid}' WHERE quoid='{$quoid}' AND deptid<>'{$deptid}'"; db_exec($sql) or errDie("Error updating invoice department."); } } if (!isset($quoid)) { $quoid = create_dummy($deptid); } if (!isset($stkerr)) { $stkerr = "0,0"; } if (!isset($done)) { $done = ""; } if (!isset($sel_frm)) { $sel_frm = "stkcod"; } # Get quote info db_connect(); $sql = "SELECT * FROM quotes WHERE quoid = '{$quoid}' AND div = '" . USER_DIV . "'"; $quoRslt = db_exec($sql) or errDie("Unable to get quote information"); if (pg_numrows($quoRslt) < 1) { return "<li class='err'>Quote Not Found</li>"; } $quo = pg_fetch_array($quoRslt); # check if quote has been printed if ($quo['accepted'] == "y") { $error = "<li class='err'> Error : Quote number <b>{$quoid}</b> has already been printed.</li>"; $error .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $error; } if (!isset($lead)) { $lead = $quo["lead"]; } //manual error handling if (!isset($quo['ncdate'])) { $quo['ncdate'] = ""; } if (strlen($quo['ncdate']) < 1) { $ncdate_year = date("Y"); $ncdate_month = date("m", mktime(0, 0, 0, date("m"), date("d") + 5, date("Y"))); $ncdate_day = date("d", mktime(0, 0, 0, date("m"), date("d") + 5, date("Y"))); } else { $darr = explode("-", $quo['ncdate']); $ncdate_year = $darr['0']; $ncdate_month = $darr['1']; $ncdate_day = $darr['2']; } # get department db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid = '{$quo['deptid']}' AND div = '" . USER_DIV . "'"; $deptRslt = db_exec($sql); if (pg_numrows($deptRslt) < 1) { $dept['deptname'] = "<li class='err'>Department not Found.</li>"; } else { $dept = pg_fetch_array($deptRslt); } # Get selected customer info if (isset($letters)) { db_connect(); $sql = "SELECT * FROM customers WHERE cusnum = '{$quo['cusnum']}' AND div = '" . USER_DIV . "'"; $custRslt = db_exec($sql) or errDie("Unable to view customer"); if (pg_numrows($custRslt) < 1) { db_connect(); if ($inv['deptid'] == 0) { $searchdept = ""; } else { $searchdept = "deptid = '{$quo['deptid']}' AND "; } # Query server for customer info $sql = "SELECT cusnum,cusname,surname FROM customers WHERE {$searchdept} location != 'int' AND lower(surname) LIKE lower('{$letters}%') AND div = '" . USER_DIV . "' ORDER BY surname"; $custRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($custRslt) < 1) { $ajax_err = "<li class='err'>No customer names starting with <b>{$letters}</b> in database.</li>"; //return view_err($_POST, $err); } else { $customers = "<select name='cusnum' onChange='javascript:document.form.submit();'>"; $customers .= "<option value='-S' selected>Select Customer</option>"; while ($cust = pg_fetch_array($custRslt)) { $customers .= "<option value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']}</option>"; } $customers .= "</select>"; } # take care of the unset vars $cust['addr1'] = ""; $cust['cusnum'] = ""; $cust['vatnum'] = ""; $cust['accno'] = ""; } else { $cust = pg_fetch_array($custRslt); # moarn if customer account has been blocked if ($cust['blocked'] == 'yes') { return "<li class='err'>Error : Selected customer account has been blocked.</li>"; } $customers = "<input type='hidden' name=cusnum value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']}"; $cusnum = $cust['cusnum']; } } /* --- Start Drop Downs --- */ # Select warehouse db_conn("exten"); //no good ... breaks the search feature because it doesnt send search with // onChange='javascript:document.form.submit();' $whs = "<select name='whidss[]'>"; $sql = "SELECT * FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { return "<li class='err'> There are no Stores found in Cubit.</li>"; } else { $whs .= "<option value='-S' disabled selected>Select Store</option>"; while ($wh = pg_fetch_array($whRslt)) { if (!user_in_store_team($wh["whid"], USER_ID)) { continue; } $whs .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $whs .= "</select>"; # get sales people db_conn("exten"); $sql = "SELECT * FROM salespeople WHERE div = '" . USER_DIV . "' ORDER BY salesp ASC"; $salespRslt = db_exec($sql) or errDie("Unable to get sales people."); if (pg_numrows($salespRslt) < 1) { return "<li class='err'> There are no Sales People found in Cubit.</li>"; } else { $salesps = "<select name='salespn'>"; while ($salesp = pg_fetch_array($salespRslt)) { if ($salesp['salesp'] == $quo['salespn']) { $sel = "selected"; } else { $sel = ""; } $salesps .= "<option value='{$salesp['salesp']}' {$sel}>{$salesp['salesp']}</option>"; } $salesps .= "</select>"; } # days drop downs $days = array("0" => "0", "7" => "7", "14" => "14", "30" => "30", "60" => "60", "90" => "90", "120" => "120"); $termssel = extlib_cpsel("terms", $days, $quo['terms']); # Keep the charge vat option stable if ($quo['chrgvat'] == "inc") { $chin = "checked=yes"; $chex = ""; $chno = ""; } elseif ($quo['chrgvat'] == "exc") { $chin = ""; $chex = "checked=yes"; $chno = ""; } else { $chin = ""; $chex = ""; $chno = "checked=yes"; } # format date list($quote_year, $quote_month, $quote_day) = explode("-", $quo['odate']); // list($followon_year, $followon_month, $followon_day) = explode("-", $quo['ncdate']); /* --- End Drop Downs --- */ // get the ID of the first warehouse db_conn("exten"); $sql = "SELECT whid FROM warehouses ORDER BY whid ASC LIMIT 1"; $rslt = db_exec($sql) or errDie("Error reading warehouses (FWH)."); if (pg_num_rows($rslt) > 0) { $FIRST_WH = pg_fetch_result($rslt, 0, 0); } else { $FIRST_WH = "-S"; } /* --- Start Products Display --- */ # select all products $products = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<th>STORE</th>\n\t\t\t\t<th>ITEM NUMBER</th>\n\t\t\t\t<th>VAT CODE</th>\n\t\t\t\t<th>DESCRIPTION</th>\n\t\t\t\t<th>QTY</th>\n\t\t\t\t<th>UNIT PRICE</th>\n\t\t\t\t<th>UNIT DISCOUNT</th>\n\t\t\t\t<th>AMOUNT</th>\n\t\t\t\t<th>Remove</th>\n\t\t\t<tr>"; # get selected stock in this quote db_connect(); $sql = "SELECT * FROM quote_items WHERE quoid = '{$quoid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $i = 0; $key = 0; while ($stkd = pg_fetch_array($stkdRslt)) { $stkd['account'] += 0; if ($stkd['account'] != 0) { # Keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "\n\t\t\t\t<select name='accounts[]'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } if ($ad['accid'] == $stkd['account']) { $sel = "selected"; } else { $sel = ""; } $Accounts .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>"; } $Accounts .= "</select>"; $sernos = ""; $stkd['unitcost'] = sprint($stkd['unitcost']); $stkd['amt'] = sprint($stkd['amt']); # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[]' value='{$stkd['qty']}'>"; $viewcost = "<input type='text' size='8' name='unitcost[]' value='{$stkd['unitcost']}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodes[]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; //print "fo"; # Put in product $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whids[]' value='{$stkd['whid']}'></td>\n\t\t\t\t\t<td><input type='hidden' name='stkids[]' value='{$stkd['stkid']}'>{$Vatcodes}</td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptions[]' value='{$stkd['description']}'> {$sernos}</td>\n\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t<td><input type='hidden' name='disc[]' value='{$stkd['disc']}'><input type='hidden' name='discp[]' value='{$stkd['discp']}'></td>\n\t\t\t\t\t<td nowrap><input type='hidden' name='amt[]' value='{$stkd['amt']}'> " . CUR . " {$stkd['amt']}</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$key}'><input type='hidden' name='SCROLL' value='yes'></td>\n\t\t\t\t</tr>"; $key++; } else { # keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; # 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); # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$stk['whid']}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodes[]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $stkd['unitcost'] = sprint($stkd['unitcost']); $stkd['amt'] = sprint($stkd['amt']); # put in product $products .= "\n\t\t\t\t<input type='hidden' name='accounts[]' value='0'>\n\t\t\t\t<input type='hidden' name='descriptions[]' value=''>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><input type='hidden' name='whids[]' value='{$stkd['whid']}'>{$wh['whname']}</td>\n\t\t\t\t\t<td><input type='hidden' name='stkids[]' value='{$stkd['stkid']}'><a href='#' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtys[]' value='{$stkd['qty']}'></td>\n\t\t\t\t\t<td><input type='text' size='8' name='unitcost[]' value='{$stkd['unitcost']}'></td>\n\t\t\t\t\t<td><input type='text' size='4' name='disc[]' value='{$stkd['disc']}'> OR <input type='text' size='4' name='discp[]' value='{$stkd['discp']}' maxlength=5>%</td>\n\t\t\t\t\t<td nowrap><input type='hidden' name='amt[]' value='{$stkd['amt']}'> " . CUR . " {$stkd['amt']}</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$key}'><input type='hidden' name='SCROLL' value='yes'></td>\n\t\t\t\t</tr>"; $key++; } } # Look above(remprod keys) $keyy = $key; # look above(if i = 0 then there are no products) if ($i == 0) { $done = ""; } # check if stock warehouse was selected if (isset($whidss)) { foreach ($whidss as $key => $whid) { if (isset($stkidss[$key]) && $stkidss[$key] != "-S" && isset($cust['pricelist'])) { # skip if not selected if ($whid == "-S") { continue; } # get selected stock in this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE stkid = '{$stkidss[$key]}' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$stk['whid']}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); # get price from price list if it is set if (isset($cust['pricelist'])) { # get selected stock in this warehouse db_conn("exten"); $sql = "SELECT price FROM plist_prices WHERE listid = '{$cust['pricelist']}' AND stkid = '{$stk['stkid']}' AND div = '" . USER_DIV . "'"; $plRslt = db_exec($sql); if (pg_numrows($plRslt) > 0) { $pl = pg_fetch_array($plRslt); $stk['selamt'] = $pl['price']; } } /* -- Start Some Checks -- */ # check if they are selling too much if ($stk['units'] - $stk['alloc'] < $qtyss[$key]) { if (!in_array($stk['stkid'], explode(",", $stkerr))) { if ($stk['type'] != 'lab') { $stkerr .= ",{$stk['stkid']}"; $error .= "<li class='err'>Warning : Item number <b>{$stk['stkcod']}</b> does not have enough items available.</li>"; } } } /* -- End Some Checks -- */ # Calculate the Discount discount if ($discs[$key] < 1) { if ($discps[$key] > 0) { $discs[$key] = round($discps[$key] / 100 * $stk['selamt'], 2); } } else { $discps[$key] = round($discs[$key] * 100 / $stk['selamt'], 2); } # Calculate amount $amt[$key] = $qtyss[$key] * ($stk['selamt'] - $discs[$key]); db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t<select name='vatcodes[]'>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stk['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $stk['selamt'] = sprint($stk['selamt']); $amt[$key] = sprint($amt[$key]); # put in selected warehouse and stock $products .= "\n\t\t\t\t\t<input type='hidden' name='accounts[]' value='0'>\n\t\t\t\t\t<input type='hidden' name='descriptions[]' value=''>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td><input type='hidden' name='whids[]' value='{$whid}'>{$wh['whname']}</td>\n\t\t\t\t\t\t<td><input type='hidden' name='stkids[]' value='{$stk['stkid']}'><a href='#' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t\t<td><input type='text' size='3' name='qtys[]' value='{$qtyss[$key]}'></td>\n\t\t\t\t\t\t<td><input type='text' size='8' name='unitcost[]' value='{$stk['selamt']}'></td>\n\t\t\t\t\t\t<td><input type='text' size='4' name='disc[]' value='{$discs[$key]}'> OR <input type='text' size='4' name='discp[]' value='{$discps[$key]}' maxlength='5'>%</td>\n\t\t\t\t\t\t<td nowrap><input type='hidden' name='amt[]' value='{$amt[$key]}'> " . CUR . " {$amt[$key]}</td>\n\t\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$keyy}'></td>\n\t\t\t\t\t</tr>"; $keyy++; } elseif (isset($accountss[$key]) && $accountss[$key] != "0" && isset($cust['pricelist'])) { db_conn('core'); $Sl = "SELECT * FROM accounts WHERE accid='{$accountss[$key]}'"; $Ri = db_exec($Sl) or errDie("Unable to get account data."); if (pg_num_rows($Ri) < 1) { return "invalid."; } $ad = pg_fetch_array($Ri); # Calculate amount $amt[$key] = sprint($qtyss[$key] * $unitcosts[$key]); # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[]' value='{$qtyss[$key]}'>"; $unitcosts[$key] = sprint($unitcosts[$key]); $amt[$key] = sprint($amt[$key]); # Check permissions $viewcost = "<input type='text' size='8' name='unitcost[]' value='{$unitcosts[$key]}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t<select name='vatcodes[]'>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vatcodess[$key] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in selected warehouse and stock $products .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td colspan='2'>{$ad['accname']}<input type='hidden' name='accounts[]' value='{$accountss[$key]}'><input type='hidden' name='whids[]' value='0'></td>\n\t\t\t\t\t\t<td>{$Vatcodes}<input type='hidden' name='stkids[]' value='0'></td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='descriptions[]' value='{$descriptionss[$key]}'></td>\n\t\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t\t<td><input type='hidden' name='disc[]' value='0'><input type='hidden' name='discp[]' value='0'></td>\n\t\t\t\t\t\t<td nowrap><input type='hidden' name='amt[]' value='{$amt[$key]}'> " . CUR . " {$amt[$key]}</td>\n\t\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$keyy}'></td>\n\t\t\t\t\t</tr>"; $keyy++; } else { # skip if not selected if ($whid == "-S") { continue; } if (!isset($addnon)) { if (isset($filter_store) and $filter_store != "0") { # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$filter_store}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); } if (isset($des) and $des != "") { $len = strlen($des); if ($des == "Show All") { $Wh = ""; $des = ""; } else { $Wh = "AND (lower(substr(stkdes,1,'{$len}'))=lower('{$des}') OR lower(substr(stkcod,1,'{$len}'))=lower('{$des}'))"; } } else { $Wh = "AND FALSE"; $des = ""; } $check_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($check_setting) and $check_setting == "yes") { if (isset($filter_class) and $filter_class != "0") { $Wh .= " AND prdcls = '{$filter_class}'"; } if (isset($filter_cat) and $filter_cat != "0") { $Wh .= " AND catid = '{$filter_cat}'"; } } if (isset($filter_store) and $filter_store != "0") { $Wh .= " AND whid = '{$filter_store}'"; } # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE blocked = 'n' AND div = '" . USER_DIV . "' {$Wh} ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { $error .= "<li class='err'>There are no stock items in the selected store.</li>"; continue; } if ($sel_frm == "stkcod") { $cods = "<select name='stkidss[]' onChange='javascript:document.form.submit();'>"; $cods .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $cods .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $cods .= "</select> "; $descs = ""; } else { $descs = "<select style='width:250px' name='stkidss[]' onChange='javascript:document.form.submit();'>"; $descs .= "<option value='-S' disabled selected>Select Description</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $descs .= "<option value='{$stk['stkid']}'>{$stk['stkdes']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $descs .= "</select> "; $cods = ""; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t\t<select name='vatcodess[]'>\n\t\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # put in drop down and warehouse $products .= "\n\t\t\t\t\t\t<input type='hidden' name='accountss[]' value='0'>\n\t\t\t\t\t\t<input type='hidden' name='descriptionss[]' value=''>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td><input type='hidden' name='whidss[]' value='{$filter_store}'></td>\n\t\t\t\t\t\t\t<td>{$cods}<input type='hidden' name='vatcodess' value='0'></td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td>{$descs}</td>\n\t\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td><input type='text' size='4' name='discs[]' value='0'> OR <input type='text' size='4' name='discps[]' value='0' maxlength='5'>%</td>\n\t\t\t\t\t\t\t<td><input type='hidden' name='amts[]' value='0.00'>" . CUR . " 0.00</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t</tr>"; } else { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "\n\t\t\t\t\t\t<select name='accountss[]'>\n\t\t\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $Accounts .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t\t<select name='vatcodess[]'>\n\t\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whidss[]' value='{$FIRST_WH}'></td>\n\t\t\t\t\t\t\t<inpu type='hidden' name='stkidss[]' value=''>\n\t\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[]'></td>\n\t\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t\t\t<td><input type='text' name='unitcosts[]' size='7'></td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t\t\t<td><input type='hidden' name='discs[]' value='0'><input type='hidden' name='discps[]' value='0' ></td>\n\t\t\t\t\t\t</tr>"; } } } } else { if (!isset($addnon) && !isset($upBtn)) { if (isset($filter_store) and $filter_store != "0") { # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$filter_store}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); } if (isset($des) and $des != "") { $len = strlen($des); if ($des == "Show All") { $Wh = ""; $des = ""; } else { $Wh = "AND (lower(substr(stkdes,1,'{$len}'))=lower('{$des}') OR lower(substr(stkcod,1,'{$len}'))=lower('{$des}'))"; } } else { $Wh = "AND FALSE"; $des = ""; } $check_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($check_setting) and $check_setting == "yes") { if (isset($filter_class) and $filter_class != "0") { $Wh .= " AND prdcls = '{$filter_class}'"; } if (isset($filter_cat) and $filter_cat != "0") { $Wh .= " AND catid = '{$filter_cat}'"; } } if (isset($filter_store) and $filter_store != "0") { $Wh .= " AND whid = '{$filter_store}'"; } # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE blocked = 'n' AND div = '" . USER_DIV . "' {$Wh} ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { if (!isset($err)) { $err = ""; } $err .= "<li>There are no stock items in the selected warehouse.</li>"; } $stks = "<select name='stkidss[]' onChange='javascript:document.form.submit();'>"; $stks .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $stks .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $stks .= "</select> "; $products .= "\n\t\t\t\t<input type='hidden' name='descriptionss[]' value=''>\n\t\t\t\t<input type='hidden' name='vatcodess[]' value=''>\n\t\t\t\t<input type='hidden' name='accountss[]' value='0'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><input type='hidden' name='whidss[]' value='{$filter_store}'></td>\n\t\t\t\t\t<td>{$stks}</td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td><input type='text' size='4' name='discs[]' value='0'> OR <input type='text' size='4' name='discps[]' value='0' maxlength='5'>%</td>\n\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t<td></td>\n\t\t\t\t</tr>"; } else { if (isset($addnon)) { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "\n\t\t\t\t<select name='accountss[]'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $Accounts .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodess[]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whidss[]' value='{$FIRST_WH}'></td>\n\t\t\t\t\t<inpu type='hidden' name='stkidss[]' value=''>\n\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[]'></td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t<td><input type='text' name='unitcosts[]' size='7'></td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t<td><input type='hidden' name='discs[]' value='0'><input type='hidden' name='discps[]' value='0'></td>\n\t\t\t\t</tr>"; } } } $products .= "</table>"; /* --- End Products Display --- */ /* --- Start Some calculations --- */ # Calculate subtotal $SUBTOT = sprint($quo['subtot']); $VATP = TAX_VAT; # Calculate subtotal $SUBTOT = sprint($quo['subtot']); $VAT = sprint($quo['vat']); $TOTAL = sprint($quo['total']); /* --- End Some calculations --- */ /*--- Start checks --- */ # check only if the customer is selected if (isset($cusnum) && $cusnum != "-S") { #check againg credit limit if ($cust['credlimit'] != 0 && $TOTAL + $cust['balance'] > $cust['credlimit']) { $error .= "<li class='err'>Warning : Customers Credit limit of <b>" . CUR . " {$cust['credlimit']}</b> has been exceeded</li>"; } $avcred = $cust['credlimit'] - $cust['balance']; } else { $avcred = "0.00"; } $quo['delvat'] += 0; if ($quo['delvat'] == 0) { $Sl = "SELECT * FROM vatcodes WHERE del='Yes'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $vd = pg_fetch_array($Ri); $quo['delvat'] = $vd['id']; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t<select name='delvat'>\n\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['id'] == $quo['delvat']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } // Which display method was selected if (isset($sel_frm) && $sel_frm == "stkdes") { $sel_frm_cod = ""; $sel_frm_des = "checked"; } else { $sel_frm_cod = "checked"; $sel_frm_des = ""; } $sel = ""; if (isset($lead) and strlen($lead) > 0) { $sel = "checked=yes"; } /*--- Start checks --- */ /* -- Final Layout --No VAT<input type=radio size=7 name=chrgvat value='nov' $chno> */ $details_begin = "\n\t\t<center>\n\t\t<h3>New Quote</h3>\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='key' value='update'>\n\t\t\t<input type='hidden' name='quoid' value='{$quoid}'>\n\t\t<table " . TMPL_tblDflts . " width='95%'>\n\t\t\t<tr>\n\t\t\t\t<td valign='top'>\n\t\t\t\t\t<div id='cust_selection'>"; if (empty($ajax_err) && (isset($cusnum) || AJAX)) { if (isset($cusnum)) { $OTS_OPT = onthespot_encode(SELF, "cust_selection", "deptid={$quo['deptid']}&letters={$letters}&cusnum={$cusnum}&quoid={$quoid}"); $custedit = "\n\t\t\t\t<td nowrap>\n\t\t\t\t\t<a href='javascript: popupSized(\"cust-edit.php?cusnum={$cusnum}&onthespot={$OTS_OPT}\", \"edit_cust\", 700, 630);'>Edit Customer Details</a>\n\t\t\t\t</td>"; } else { $custedit = ""; } $optional_filter_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($optional_filter_setting) and $optional_filter_setting == "yes") { db_connect(); $catsql = "SELECT catid, cat, catcod FROM stockcat WHERE div = '" . USER_DIV . "' ORDER BY cat ASC"; $catRslt = db_exec($catsql); if (pg_numrows($catRslt) < 1) { $cat_drop = "<input type='hidden' name='filter_cat' value='0'>"; } else { $cat_drop = "<select name='filter_cat'>"; $cat_drop .= "<option value='0'>All Categories</option>"; while ($cat = pg_fetch_array($catRslt)) { if (isset($filter_cat) and $filter_cat == $cat['catid']) { $cat_drop .= "<option value='{$cat['catid']}' selected>({$cat['catcod']}) {$cat['cat']}</option>"; } else { $cat_drop .= "<option value='{$cat['catid']}'>({$cat['catcod']}) {$cat['cat']}</option>"; } } $cat_drop .= "</select>"; } # Select classification $classsql = "SELECT * FROM stockclass WHERE div = '" . USER_DIV . "' ORDER BY classname ASC"; $clasRslt = db_exec($classsql); if (pg_numrows($clasRslt) < 1) { $class_drop = "<input type='hidden' name='filter_class' value='0'>"; } else { $class_drop = "<select name='filter_class' style='width: 167'>"; $class_drop .= "<option value='0'>All Classifications</option>"; while ($clas = pg_fetch_array($clasRslt)) { if (isset($filter_class) and $filter_class == $clas['clasid']) { $class_drop .= "<option value='{$clas['clasid']}' selected>{$clas['classname']}</option>"; } else { $class_drop .= "<option value='{$clas['clasid']}'>{$clas['classname']}</option>"; } } $class_drop .= "</select>"; } $display_optional_filters = "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Category</td>\n\t\t\t\t\t<td>{$cat_drop}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Classification</td>\n\t\t\t\t\t<td>{$class_drop}</td>\n\t\t\t\t</tr>"; } db_conn("exten"); $sql = "SELECT whid, whname, whno FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { $store_drop = "<input type='hidden' name='filter_store' value='0'>"; } else { if (!isset($filter_store)) { # check if setting exists db_connect(); $sql = "SELECT value FROM set WHERE label = 'DEF_WH' AND div = '" . USER_DIV . "'"; $Rslt = db_exec($sql) or errDie("Unable to check database for existing settings."); if (pg_numrows($Rslt) > 0) { $set = pg_fetch_array($Rslt); $filter_store = $set['value']; } } $store_drop = "<select name='filter_store'>"; $store_drop .= "<option value='0'>All Stores</option>"; while ($wh = pg_fetch_array($whRslt)) { if (isset($filter_store) and $filter_store == $wh['whid']) { $store_drop .= "<option value='{$wh['whid']}' selected>({$wh['whno']}) {$wh['whname']}</option>"; } else { $store_drop .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $store_drop .= "</select>"; } $ajaxOut = "\n\t\t\t<input type='hidden' name='letters' value='{$letters}'>\n\t\t\t<input type='hidden' name='stkerr' value='{$stkerr}'>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'> Customer Details </th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Department</td>\n\t\t\t\t\t<td valign='center'>{$dept['deptname']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Account No.</td>\n\t\t\t\t\t<td valign='center'>{$cust['accno']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer</td>\n\t\t\t\t\t<td valign='center'>{$customers}</td>\n\t\t\t\t\t{$custedit}\n\t\t\t\t\t<td><input type='button' onClick=\"javascript:document.location=('pos-quote-new.php')\" value='Quote Non Customer'></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td valign='top'>Customer Address</td>\n\t\t\t\t\t<td valign='center'>" . nl2br($cust['addr1']) . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer Req number</td>\n\t\t\t\t\t<td valign='center'><input type='text' size='10' name='cordno' value='{$quo['cordno']}'></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer VAT Number</td>\n\t\t\t\t\t<td>{$cust['vatnum']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td valign='top'>Next Contact Date</td>\n\t\t\t\t\t<td valign='center'>" . mkDateSelect("ncdate", $ncdate_year, $ncdate_month, $ncdate_day) . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td valign='top'>Add As Lead</td>\n\t\t\t\t\t<td valign='center'><input type='checkbox' name='lead' {$sel} value='yes'></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Using</td>\n\t\t\t\t\t<td>Stock Code<input type='radio' name='sel_frm' value='stkcod' onChange='javascript:document.form.submit();' {$sel_frm_cod}><br>Stock Description<input type='radio' name='sel_frm' value='stkdes' onChange='javascript:document.form.submit();' {$sel_frm_des}></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'>Additional Filters</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Store</td>\n\t\t\t\t\t<td>{$store_drop}</td>\n\t\t\t\t</tr>\n\t\t\t\t{$display_optional_filters}\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Stock Filter</td>\n\t\t\t\t\t<td><input type='text' size='13' name='des' value='{$des}'> <input type='submit' value='Search'> <input type='submit' name='des' value='Show All'></td>\n\t\t\t\t</tr>\n\t\t\t</table>"; } else { db_conn("exten"); $sql = "SELECT * FROM departments WHERE div = '" . USER_DIV . "' ORDER BY deptname ASC"; $deptRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($deptRslt) < 1) { return "<li class='err'>There are no Departments found in Cubit.</li>"; } else { $depts = "<select id='deptid'>"; $depts .= "<option value='0'>All Departments</option>"; while ($dept = pg_fetch_array($deptRslt)) { $depts .= "<option value='{$dept['deptid']}'>{$dept['deptname']}</option>"; } $depts .= "</select>"; } if (!isset($ajax_err)) { $ajax_err = ""; } $ajaxOut = "\n\t\t\t<script>\n\t\t\t\tfunction updateCustSelection() {\n\t\t\t\t\tdeptid = getObject('deptid').value;\n\t\t\t\t\tletters = getObject('letters').value;\n\t\t\t\t\tajaxRequest('" . SELF . "', 'cust_selection', AJAX_SET, 'letters='+letters+'&deptid='+deptid+'&quoid={$quoid}');\n\t\t\t\t}\n\t\t\t</script>\n\t\t\t{$ajax_err}\n\t\t\t<table " . TMPL_tblDflts . " width='400'>\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>New Quote</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Select Department</td>\n\t\t\t\t<td valign='center'>{$depts}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>First Letters of customer</td>\n\t\t\t\t<td valign='center'><input type='text' size='5' id='letters' maxlength='5'></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td> </td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td> </td>\n\t\t\t\t<td valign='center'><input type='button' value='Update »' onClick='updateCustSelection();'></td>\n\t\t\t</tr>\n\t\t</table>"; } $avcred = sprint($avcred); if (isset($addprodBtn) or isset($addnon) or isset($saveBtn) or isset($upBtn) or isset($doneBtn) or isset($donePrnt) or isset($des)) { $jump_bot = "\n\t\t\t<script>\n\t\t\t\twindow.location.hash='bottom';\n\t\t\t</script>"; } else { $jump_bot = ""; } $details_end = "\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t\t<td valign='top' align='right'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan='2'> Quote Details </th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Quote No.</td>\n\t\t\t\t\t\t\t<td valign='center'>{$quo['quoid']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Order No.</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='ordno' value='{$quo['ordno']}'></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>VAT Inclusive</td>\n\t\t\t\t\t\t\t<td valign='center'>Yes <input type='radio' size='7' name='chrgvat' value='inc' {$chin}> No<input type='radio' size='7' name='chrgvat' value='exc' {$chex}> </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>Terms</td>\n\t\t\t\t\t\t\t<td valign='center'>{$termssel} Days</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Sales Person</td>\n\t\t\t\t\t\t\t<td valign='center'>{$salesps}</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>Quote Date</td>\n\t\t\t\t\t\t\t<td valign='center'>" . mkDateSelect("quote", $quote_year, $quote_month, $quote_day) . "</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>Available Credit</td>\n\t\t\t\t\t\t\t<td>" . CUR . " {$avcred}</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>Trade Discount</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='traddisc' value='{$quo['traddisc']}'>%</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>Delivery Charge</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='7' name='delchrg' value='{$quo['delchrg']}'>{$Vatcodes}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr><td><br></td></tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='2'>{$products}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td rowspan='2'>" . mkQuickLinks(ql("quote-view.php", "View Quotes"), ql("customers-new.php", "New Customer")) . "\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<th width='25%'>Comments</th>\n\t\t\t\t\t\t\t<td rowspan='5' valign='top' width='50%'>{$error}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td class='" . bg_class() . "' rowspan='4' align='center' valign='top'>\n\t\t\t\t\t\t\t\t<textarea name='comm' rows='4' cols='20'>{$quo['comm']}</textarea>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t\t<td align='right'>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='80%'>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>SUBTOTAL</td>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " <input type='hidden' name='SUBTOT' value='{$SUBTOT}'>{$SUBTOT}</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>Trade Discount</td>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$quo['discount']}</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>Delivery Charge</td>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$quo['delivery']}</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><b>VAT {$vat14}</b></td>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$VAT}</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<th>GRAND TOTAL</th>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$TOTAL}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td align='center' colspan='2' nowrap><input name='addprodBtn' type='submit' value='Add Product'> | <input name='addnon' type='submit' value='Add Non stock Product'> | <input type='submit' name='saveBtn' value='Save'> | <input type='submit' name='upBtn' value='Update'>{$done}</td>\n\t\t\t</tr>\n\t\t</table>\n\t\t<a name='bottom'>\n\t\t</form>\n\t\t</center>\n\t\t{$jump_bot}"; if (AJAX) { return $ajaxOut; } else { return "{$details_begin}{$ajaxOut}{$details_end}"; } }
function confirm() { global $_GET; extract($_GET); # validate input require_lib("validate"); $v = new validate(); $v->isOk($empnum, "num", 1, 9, "Invalid employee selected."); $v->isOk($expacc_pension, "string", 1, 3, "Invalid pension account."); $v->isOk($expacc_provident, "string", 1, 3, "Invalid provident account."); $v->isOk($expacc_medical, "string", 1, 3, "Invalid medical account."); $v->isOk($expacc_ret, "string", 1, 3, "Invalid retirement annuity account."); $v->isOk($expacc_uif, "string", 1, 3, "Invalid uif account."); $v->isOk($expacc_salwages, "string", 1, 3, "Invalid salaries and wages account."); $v->isOk($expacc_sdl, "string", 1, 3, "Invalid sdl account."); # display errors, if any if ($v->isError()) { $confirm = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirm .= "<li class='err'>" . $e["msg"] . "</li>"; } return slctAcc($confirm); } $fields = array("Pension" => "pension", "Provident" => "provident", "UIF" => "uif", "Medical Aid" => "medical", "Retirement Annuity" => "ret", "Salaries & Wages" => "salwages", "SDL" => "sdl"); foreach ($fields as $fdesc => $fn) { if (isb(${"expacc_{$fn}"})) { $v->addError("", "Account is blocked for: {$fdesc}"); } $rslt = get("core", "accname", "accounts", "accid", ${"expacc_{$fn}"}); ${"name_{$fn}"} = pg_fetch_result($rslt, 0, 0); } $emp_ded = ""; if (isset($dedaccs) && is_array($dedaccs)) { foreach ($dedaccs as $key => $value) { if (!$v->isOk($key . $value, "string", 2, 20, "")) { continue; } // salded db_conn("cubit"); $sql = "SELECT salded.deduction FROM salded, empdeduct\n\t\t\t\t\tWHERE salded.id=empdeduct.dedid AND empdeduct.id='{$key}'"; $rslt = db_exec($sql); $salded = pg_fetch_array($rslt); if (isb($value)) { $v->addError("", "Account is blocked for: {$salded['deduction']}"); } // accounts $name_ded = pg_fetch_result(get("core", "accname", "accounts", "accid", $value), 0, 0); $emp_ded .= "\n\t\t\t<input type='hidden' name='dedaccs[{$key}]' value='{$value}'>\n\t\t\t<tr bgcolor=" . bgcolorg() . ">\n\t\t\t\t<td>{$salded['deduction']}</td>\n\t\t\t\t<td>{$name_ded}</td>\n\t\t\t</tr>"; } } $emp_allow = ""; if (isset($allowaccs) && is_array($allowaccs)) { foreach ($allowaccs as $key => $value) { if (!$v->isOk($key . $value, "string", 2, 20, "")) { continue; } // salded db_conn("cubit"); $sql = "SELECT allowances.allowance FROM allowances, empallow\n\t\t\t\t\tWHERE allowances.id=empallow.allowid AND empallow.id='{$key}'"; $rslt = db_exec($sql); $allowinfo = pg_fetch_array($rslt); if (isb($value)) { $v->addError("", "Account is blocked for: {$allowinfo['allowance']}"); } // accounts $name_allow = pg_fetch_result(get("core", "accname", "accounts", "accid", $value), 0, 0); $emp_allow .= "\n\t\t\t<input type='hidden' name='allowaccs[{$key}]' value='{$value}'>\n\t\t\t<tr bgcolor=" . bgcolorg() . ">\n\t\t\t\t<td>{$allowinfo['allowance']}</td>\n\t\t\t\t<td>{$name_allow}</td>\n\t\t\t</tr>"; } } // display account block errors if any if ($v->isError()) { $confirm = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirm .= "<li class='err'>" . $e["msg"] . "</li>"; } return slctAcc($confirm); } $confirm = "\n\t\t<h3>Company Contributions to Employee Deductions Expense Accounts</h3>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t<form action='" . SELF . "' method='GET'>\n\t\t\t<input type='hidden' name='key' value='write'>\n\t\t\t<input type='hidden' name='empnum' value='{$empnum}'>"; foreach ($fields as $fn) { $confirm .= "<input type='hidden' name='expacc_{$fn}' value='" . ${"expacc_{$fn}"} . "'>"; } $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>Salaries and Wages</td>\n\t\t\t\t<td>{$name_salwages}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Pension Fund</td>\n\t\t\t\t<td>{$name_pension}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Provident Fund</td>\n\t\t\t\t<td>{$name_provident}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Retirement Annuity Fund</td>\n\t\t\t\t<td>{$name_ret}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Medical Aid</td>\n\t\t\t\t<td>{$name_medical}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>UIF</td>\n\t\t\t\t<td>{$name_uif}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Skills Development Levy</td>\n\t\t\t\t<td>{$name_sdl}</td>\n\t\t\t</tr>\n\t\t\t{$emp_ded}\n\t\t\t<tr><th colspan='2'>Allowances</th></tr>\n\t\t\t{$emp_allow}\n\t\t\t<tr>\n\t\t\t\t<td align='right'><input type='button' value='« Back' onClick='javascript:history.back()'></td>\n\t\t\t\t<td align='right'><input type='submit' value='Add Link »'></td>\n\t\t\t</tr>\n\t\t</form>\n\t\t</table>" . mkQuickLinks(ql("../admin-employee-add.php", "Add Employee"), ql("../admin-employee-view.php", "View Employees")); return $confirm; }
function details($_POST, $error = "") { # get vars foreach ($_POST as $key => $value) { ${$key} = $value; } # validate input require_lib("validate"); $v = new validate(); if (isset($quoid)) { $v->isOk($quoid, "num", 1, 20, "Invalid quote number."); } else { $v->isOk($deptid, "num", 1, 20, "Invalid department number."); $v->isOk($letters, "string", 0, 5, "Invalid First 3 Letters."); } # display errors, if any if ($v->isError()) { $errors = $v->getErrors(); foreach ($errors as $e) { $error .= "<li class=err>{$e['msg']}</li>"; } $confirm .= "{$error}<p><input type=button onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } if (!isset($quoid)) { $quoid = create_dummy($deptid); $stkerr = "0,0"; } if (!isset($done)) { $done = ""; } # Get quote info db_connect(); $sql = "SELECT * FROM quotes WHERE quoid = '{$quoid}' AND div = '" . USER_DIV . "'"; $quoRslt = db_exec($sql) or errDie("Unable to get quote information"); if (pg_numrows($quoRslt) < 1) { return "<li class=err>Quote Not Found</li>"; } $quo = pg_fetch_array($quoRslt); # check if quote has been printed if ($quo['accepted'] == "y") { $error = "<li class=err> Error : Quote number <b>{$quoid}</b> has already been printed.</li>"; $error .= "<p><input type=button onClick='JavaScript:history.back();' value='« Correct submission'>"; return $error; } # get department db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid = '{$quo['deptid']}' AND div = '" . USER_DIV . "'"; $deptRslt = db_exec($sql); if (pg_numrows($deptRslt) < 1) { $dept['deptname'] = "<li class=err>Department not Found.</li>"; } else { $dept = pg_fetch_array($deptRslt); } # Get selected customer info db_connect(); $sql = "SELECT * FROM customers WHERE cusnum = '{$quo['cusnum']}' AND div = '" . USER_DIV . "'"; $custRslt = db_exec($sql) or errDie("Unable to view customer"); if (pg_numrows($custRslt) < 1) { db_connect(); # Query server for customer info $sql = "SELECT cusnum,cusname,surname FROM customers WHERE deptid = '{$quo['deptid']}' AND location != 'int' AND lower(surname) LIKE lower('{$letters}%') AND div = '" . USER_DIV . "' ORDER BY surname"; $custRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($custRslt) < 1) { $err = "<li class=err>No customer names starting with <b>{$letters}</b> in database.</li>"; return view_err($_POST, $err); } else { $customers = "<select name='cusnum' onChange='javascript:document.form.submit();'>"; $customers .= "<option value='-S' selected>Select Customer</option>"; while ($cust = pg_fetch_array($custRslt)) { $customers .= "<option value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']}</option>"; } $customers .= "</select>"; } # take care of the unset vars $cust['addr1'] = ""; $cust['cusnum'] = ""; $cust['vatnum'] = ""; $cust['accno'] = ""; } else { $cust = pg_fetch_array($custRslt); # moarn if customer account has been blocked if ($cust['blocked'] == 'yes') { return "<li class=err>Error : Selected customer account has been blocked.</li>"; } $customers = "<input type=hidden name=cusnum value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']}"; $cusnum = $cust['cusnum']; } /* --- Start Drop Downs --- */ # Select warehouse db_conn("exten"); $whs = "<select name='whidss[]' onChange='javascript:document.form.submit();'>"; $sql = "SELECT * FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { return "<li class=err> There are no Stores found in Cubit.</li>"; } else { $whs .= "<option value='-S' disabled selected>Select Store</option>"; while ($wh = pg_fetch_array($whRslt)) { $whs .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $whs .= "</select>"; # get sales people db_conn("exten"); $sql = "SELECT * FROM salespeople WHERE div = '" . USER_DIV . "' ORDER BY salesp ASC"; $salespRslt = db_exec($sql) or errDie("Unable to get sales people."); if (pg_numrows($salespRslt) < 1) { return "<li class=err> There are no Sales People found in Cubit.</li>"; } else { $salesps = "<select name='salespn'>"; while ($salesp = pg_fetch_array($salespRslt)) { if ($salesp['salesp'] == $quo['salespn']) { $sel = "selected"; } else { $sel = ""; } $salesps .= "<option value='{$salesp['salesp']}' {$sel}>{$salesp['salesp']}</option>"; } $salesps .= "</select>"; } # days drop downs $days = array("0" => "0", "7" => "7", "14" => "14", "30" => "30", "60" => "60", "90" => "90", "120" => "120"); $termssel = extlib_cpsel("terms", $days, $quo['terms']); # Keep the charge vat option stable if ($quo['chrgvat'] == "inc") { $chin = "checked=yes"; $chex = ""; $chno = ""; } elseif ($quo['chrgvat'] == "exc") { $chin = ""; $chex = "checked=yes"; $chno = ""; } else { $chin = ""; $chex = ""; $chno = "checked=yes"; } # format date list($oyear, $omon, $oday) = explode("-", $quo['odate']); /* --- End Drop Downs --- */ // get the ID of the first warehouse db_conn("exten"); $sql = "SELECT whid FROM warehouses ORDER BY whid ASC LIMIT 1"; $rslt = db_exec($sql) or errDie("Error reading warehouses (FWH)."); if (pg_num_rows($rslt) > 0) { $FIRST_WH = pg_fetch_result($rslt, 0, 0); } else { $FIRST_WH = "-S"; } /* --- Start Products Display --- */ # select all products $products = "\n\t<table cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' border=0 width=100%>\n\t<tr><th>STORE</th><th>ITEM NUMBER</th><th>VAT CODE</th><th>DESCRIPTION</th><th>QTY</th><th>UNIT PRICE</th><th>UNIT DISCOUNT</th><th>AMOUNT</th><th>Remove</th><tr>"; # get selected stock in this quote db_connect(); $sql = "SELECT * FROM quote_items WHERE quoid = '{$quoid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $i = 0; $key = 0; while ($stkd = pg_fetch_array($stkdRslt)) { $stkd['account'] += 0; if ($stkd['account'] != 0) { # Keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "<select name=accounts[]>\n\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } if ($ad['accid'] == $stkd['account']) { $sel = "selected"; } else { $sel = ""; } $Accounts .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>"; } $Accounts .= "</select>"; $sernos = ""; # Input qty if not serialised $qtyin = "<input type=text size=3 name=qtys[] value='{$stkd['qty']}'>"; $viewcost = "<input type=text size=8 name=unitcost[] value='{$stkd['unitcost']}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name=vatcodes[]>\n\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; //print "fo"; # Put in product $products .= "<tr class='bg-odd'><td colspan=2>{$Accounts}<input type=hidden name=whids[] value='{$stkd['whid']}'></td><td><input type=hidden name=stkids[] value='{$stkd['stkid']}'>{$Vatcodes}</td><td><input type=text size=20 name=descriptions[] value='{$stkd['description']}'> {$sernos}</td><td>{$qtyin}</td><td>{$viewcost}</td><td><input type=hidden name=disc[] value='{$stkd['disc']}'><input type=hidden name=discp[] value='{$stkd['discp']}'></td><td><input type=hidden name=amt[] value='{$stkd['amt']}'> " . CUR . " {$stkd['amt']}</td><td><input type=checkbox name=remprod[] value='{$key}'><input type=hidden name=SCROLL value=yes></td></tr>"; $key++; } else { # keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; # 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); db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name=vatcodes[]>\n\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # put in product $products .= "<input type=hidden name=accounts[] value=0>\n\t\t\t<input type=hidden name=descriptions[] value=''>\n\t\t\t<tr class='bg-odd'><td><input type=hidden name=whids[] value='{$stkd['whid']}'>{$wh['whname']}</td><td><input type=hidden name=stkids[] value='{$stkd['stkid']}'><a href='#' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td><td>{$Vatcodes}</td><td>" . extlib_rstr($stk['stkdes'], 30) . "</td><td><input type=text size=3 name=qtys[] value='{$stkd['qty']}'></td><td><input type=text size=8 name=unitcost[] value='{$stkd['unitcost']}'></td><td><input type=text size=4 name=disc[] value='{$stkd['disc']}'> OR <input type=text size=4 name=discp[] value='{$stkd['discp']}' maxlength=5>%</td><td><input type=hidden name=amt[] value='{$stkd['amt']}'> " . CUR . " {$stkd['amt']}</td><td><input type=checkbox name=remprod[] value='{$key}'><input type=hidden name=SCROLL value=yes></td></tr>"; $key++; } } # Look above(remprod keys) $keyy = $key; # look above(if i = 0 then there are no products) if ($i == 0) { $done = ""; } # check if stock warehouse was selected if (isset($whidss)) { foreach ($whidss as $key => $whid) { if (isset($stkidss[$key]) && $stkidss[$key] != "-S" && isset($cust['pricelist'])) { # skip if not selected if ($whid == "-S") { continue; } # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$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 = '{$stkidss[$key]}' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); # get price from price list if it is set if (isset($cust['pricelist'])) { # get selected stock in this warehouse db_conn("exten"); $sql = "SELECT price FROM plist_prices WHERE listid = '{$cust['pricelist']}' AND stkid = '{$stk['stkid']}' AND div = '" . USER_DIV . "'"; $plRslt = db_exec($sql); if (pg_numrows($plRslt) > 0) { $pl = pg_fetch_array($plRslt); $stk['selamt'] = $pl['price']; } } /* -- Start Some Checks -- */ # check if they are selling too much if ($stk['units'] - $stk['alloc'] < $qtyss[$key]) { if (!in_array($stk['stkid'], explode(",", $stkerr))) { if ($stk['type'] != 'lab') { $stkerr .= ",{$stk['stkid']}"; $error .= "<li class=err>Warning : Item number <b>{$stk['stkcod']}</b> does not have enough items available.</li>"; } } } /* -- End Some Checks -- */ # Calculate the Discount discount if ($discs[$key] < 1) { if ($discps[$key] > 0) { $discs[$key] = round($discps[$key] / 100 * $stk['selamt'], 2); } } else { $discps[$key] = round($discs[$key] * 100 / $stk['selamt'], 2); } # Calculate amount $amt[$key] = $qtyss[$key] * ($stk['selamt'] - $discs[$key]); db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name=vatcodes[]>\n\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stk['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # put in selected warehouse and stock $products .= "<input type=hidden name=accounts[] value=0>\n\t\t\t\t<input type=hidden name=descriptions[] value=''>\n\t\t\t\t<tr class='bg-odd'><td><input type=hidden name=whids[] value='{$whid}'>{$wh['whname']}</td><td><input type=hidden name=stkids[] value='{$stk['stkid']}'><a href='#' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td><td>{$Vatcodes}</td><td>" . extlib_rstr($stk['stkdes'], 30) . "</td><td><input type=text size=3 name=qtys[] value='{$qtyss[$key]}'></td><td><input type=text size=8 name='unitcost[]' value='{$stk['selamt']}'></td><td><input type=text size=4 name=disc[] value='{$discs[$key]}'> OR <input type=text size=4 name=discp[] value='{$discps[$key]}' maxlength=5>%</td><td><input type=hidden name=amt[] value='{$amt[$key]}'> " . CUR . " {$amt[$key]}</td><td><input type=checkbox name=remprod[] value='{$keyy}'></td></tr>"; $keyy++; } elseif (isset($accountss[$key]) && $accountss[$key] != "0" && isset($cust['pricelist'])) { db_conn('core'); $Sl = "SELECT * FROM accounts WHERE accid='{$accountss[$key]}'"; $Ri = db_exec($Sl) or errDie("Unable to get account data."); if (pg_num_rows($Ri) < 1) { return "invalid."; } $ad = pg_fetch_array($Ri); # Calculate amount $amt[$key] = sprint($qtyss[$key] * $unitcosts[$key]); # Input qty if not serialised $qtyin = "<input type=text size=3 name=qtys[] value='{$qtyss[$key]}'>"; # Check permissions $viewcost = "<input type=text size=8 name=unitcost[] value='{$unitcosts[$key]}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name=vatcodes[]>\n\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vatcodess[$key] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in selected warehouse and stock $products .= "<tr class='bg-odd'><td colspan=2>{$ad['accname']}<input type=hidden name=accounts[] value='{$accountss[$key]}'><input type=hidden name=whids[] value='0'></td><td>{$Vatcodes}<input type=hidden name=stkids[] value='0'></td><td><input type=text size=20 name=descriptions[] value='{$descriptionss[$key]}'></td><td>{$qtyin}</td><td>{$viewcost}</td><td><input type=hidden name=disc[] value='0'><input type=hidden name=discp[] value='0'></td><td><input type=hidden name=amt[] value='{$amt[$key]}'> " . CUR . " {$amt[$key]}</td><td><input type=checkbox name=remprod[] value='{$keyy}'></td></tr>"; $keyy++; } else { if (!isset($diffwhBtn)) { # skip if not selected if ($whid == "-S") { continue; } if (!isset($addnon)) { # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$whid}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE whid = '{$whid}' AND blocked = 'n' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { $error .= "<li class=err>There are no stock items in the selected store.</li>"; continue; } $stks = "<select class='width:15' name='stkidss[]' onChange='javascript:document.form.submit();'>"; $stks .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $stks .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . ($stk['units'] - $stk['alloc']) . ")</option>"; } $stks .= "</select> "; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name=vatcodess[]>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # put in drop down and warehouse $products .= "<input type=hidden name=accountss[] value=0>\n\t\t\t\t\t\t<input type=hidden name=descriptionss[] value=''>\n\t\t\t\t\t\t<tr class='bg-odd'><td><input type=hidden name=whidss[] value='{$whid}'>{$wh['whname']}</td><td>{$stks}<input type=hidden name=vatcodess value=0></td><td></td><td></td><td><input type=text size=3 name='qtyss[]' value='1'></td><td> </td><td><input type=text size=4 name=discs[] value='0'> OR <input type=text size=4 name=discps[] value='0' maxlength=5>%</td><td><input type=hidden name=amts[] value='0.00'>" . CUR . " 0.00</td><td></td></tr>"; } else { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "<select name=accountss[]>\n\t\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value={$ad['accid']}>{$ad['accname']}</option>"; } $Accounts .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name=vatcodess[]>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "<tr class='bg-odd'><td colspan=2>{$Accounts}<input type=hidden name=whidss[] value='{$FIRST_WH}'></td>\n\t\t\t\t\t\t<inpu type=hidden name='stkidss[]' value=''>\n\t\t\t\t\t\t<td>{$Vatcodes}</td><td><input type=text size=20 name=descriptionss[]></td><td>\n\t\t\t\t\t\t<input type=text size=3 name='qtyss[]' value='1'></td><td><input type=text name=unitcosts[] size=7></td><td></td><td>\n\t\t\t\t\t\t" . CUR . " 0.00</td><td><input type=hidden name=discs[] value='0'><input type=hidden name=discps[] value='0' >\n\t\t\t\t\t\t</td></tr>"; } } } } } else { if (!(isset($diffwhBtn) || isset($addnon))) { # check if setting exists db_connect(); $sql = "SELECT value FROM set WHERE label = 'DEF_WH' AND div = '" . USER_DIV . "'"; $Rslt = db_exec($sql) or errDie("Unable to check database for existing settings."); if (pg_numrows($Rslt) > 0) { $set = pg_fetch_array($Rslt); $whid = $set['value']; if (isset($wtd) && $wtd != 0) { $whid = $wtd; } # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$whid}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE whid = '{$whid}' AND blocked = 'n' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { if (!isset($err)) { $err = ""; } $err .= "<li>There are no stock items in the selected warehouse."; } $stks = "<select class='width:15' name='stkidss[]' onChange='javascript:document.form.submit();'>"; $stks .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $stks .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . ($stk['units'] - $stk['alloc']) . ")</option>"; } $stks .= "</select> "; $products .= "<input type=hidden name=descriptionss[] value=''>\n\t\t\t\t<input type=hidden name=vatcodess[] value=''>\n\t\t\t\t<input type=hidden name=accountss[] value='0'>\n\t\t\t\t<tr class='bg-odd'><td><input type=hidden name=whidss[] value='{$whid}'>{$wh['whname']}</td><td>{$stks}</td><td></td><td></td><td><input type=text size=3 name=qtyss[] value='1'></td><td> </td><td><input type=text size=4 name=discs[] value='0'> OR <input type=text size=4 name=discps[] value='0' maxlength=5>%</td><td>" . CUR . " 0.00</td><td></td></tr>"; } else { $products .= "<tr class='bg-odd'><td>{$whs}</td><td></td><td> </td><td> </td><td> </td><td><input type=text size=4 name=discs[] value='0'> OR <input type=text size=4 name=discps[] value='0' maxlength=5>%</td><td>" . CUR . " 0.00</td><td></td></tr>"; } } else { if (isset($addnon)) { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "<select name=accountss[]>\n\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value={$ad['accid']}>{$ad['accname']}</option>"; } $Accounts .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name=vatcodess[]>\n\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "<tr class='bg-odd'><td colspan=2>{$Accounts}<input type=hidden name=whidss[] value='{$FIRST_WH}'></td>\n\t\t\t<inpu type=hidden name='stkidss[]' value=''>\n\t\t\t<td>{$Vatcodes}</td><td><input type=text size=20 name=descriptionss[]></td><td>\n\t\t\t<input type=text size=3 name='qtyss[]' value='1'></td><td><input type=text name=unitcosts[] size=7></td><td></td><td>\n\t\t\t" . CUR . " 0.00</td><td><input type=hidden name=discs[] value='0'><input type=hidden name=discps[] value='0' >\n\t\t\t</td></tr>"; } } } /* -- start Listeners -- */ if (isset($diffwhBtn)) { $products .= "<tr class='bg-odd'><td>{$whs}</td><td></td><td></td><td> </td><td> </td><td> </td><td><input type=text size=4 name=discs[] value='0'> OR <input type=text size=4 name=discps[] value='0' maxlength=5>%</td><td>" . CUR . " 0.00</td><td></td></tr>"; } /* -- End Listeners -- */ $products .= "</table>"; /* --- End Products Display --- */ /* --- Start Some calculations --- */ # Calculate subtotal $SUBTOT = sprint($quo['subtot']); $VATP = TAX_VAT; # Calculate subtotal $SUBTOT = sprint($quo['subtot']); $VAT = sprint($quo['vat']); $TOTAL = sprint($quo['total']); /* --- End Some calculations --- */ /*--- Start checks --- */ # check only if the customer is selected if (isset($cusnum) && $cusnum != "-S") { #check againg credit limit if ($cust['credlimit'] != 0 && $TOTAL + $cust['balance'] > $cust['credlimit']) { $error .= "<li class=err>Warning : Customers Credit limit of <b>" . CUR . " {$cust['credlimit']}</b> has been exceeded</li>"; } $avcred = $cust['credlimit'] - $cust['balance']; } else { $avcred = "0.00"; } $quo['delvat'] += 0; if ($quo['delvat'] == 0) { $Sl = "SELECT * FROM vatcodes WHERE del='Yes'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $vd = pg_fetch_array($Ri); $quo['delvat'] = $vd['id']; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name=delvat>\n\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['id'] == $quo['delvat']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; /*--- Start checks --- */ /* -- Final Layout --No VAT<input type=radio size=7 name=chrgvat value='nov' $chno> */ $details = "<center><h3>New Quote</h3>\n\t<form action='" . SELF . "' method=post name=form>\n\t<input type=hidden name=key value=update>\n\t<input type=hidden name=quoid value='{$quoid}'>\n\t<input type=hidden name=letters value='{$letters}'>\n\t<input type=hidden name=stkerr value='{$stkerr}'>\n\t<table cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' border=0 width=95%>\n \t<tr><td valign=top>\n\t\t<table cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' border=0>\n\t\t\t<tr><th colspan=2> Customer Details </th></tr>\n\t\t\t<tr class='bg-odd'><td>Department</td><td valign=center>{$dept['deptname']}</td></tr>\n\t\t\t<tr class='bg-even'><td>Account No.</td><td valign=center>{$cust['accno']}</td></tr>\n\t\t\t<tr class='bg-odd'><td>Customer</td><td valign=center>{$customers}</td></tr>\n\t\t\t<tr class='bg-even'><td valign=top>Customer Address</td><td valign=center>" . nl2br($cust['addr1']) . "</td></tr>\n\t\t\t<tr class='bg-odd'><td>Customer Order number</td><td valign=center><input type=text size=10 name=cordno value='{$quo['cordno']}'></td></tr>\n\t\t\t<tr class='bg-even'><td>Customer VAT Number</td><td>{$cust['vatnum']}</td></tr>\n\t\t</table>\n\t</td><td valign=top align=right>\n\t\t<table cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' border=0>\n\t\t\t<tr><th colspan=2> Quote Details </th></tr>\n\t\t\t<tr class='bg-even'><td>Quote No.</td><td valign=center>{$quo['quoid']}</td></tr>\n\t\t\t<tr class='bg-odd'><td>Order No.</td><td valign=center><input type=text size=5 name=ordno value='{$quo['ordno']}'></td></tr>\n\t\t\t<tr class='bg-even'><td>VAT Inclusive</td><td valign=center>Yes <input type=radio size=7 name=chrgvat value='inc' {$chin}> No<input type=radio size=7 name=chrgvat value='exc' {$chex}> </td></tr>\n\t\t\t<tr class='bg-odd'><td>Terms</td><td valign=center>{$termssel} Days</td></tr>\n\t\t\t<tr class='bg-even'><td>Sales Person</td><td valign=center>{$salesps}</td></tr>\n\t\t\t<tr class='bg-odd'><td>Quote Date</td><td valign=center><input type=text size=2 name=oday maxlength=2 value='{$oday}'>-<input type=text size=2 name=omon maxlength=2 value='{$omon}'>-<input type=text size=4 name=oyear maxlength=4 value='{$oyear}'></td></tr>\n\t\t\t<tr class='bg-even'><td>Available Credit</td><td>" . CUR . " {$avcred}</td></tr>\n\t\t\t<tr class='bg-odd'><td>Trade Discount</td><td valign=center><input type=text size=5 name=traddisc value='{$quo['traddisc']}'>%</td></tr>\n\t\t\t<tr class='bg-even'><td>Delivery Charge</td><td valign=center><input type=text size=7 name=delchrg value='{$quo['delchrg']}'>{$Vatcodes}</td></tr>\n\t\t</table>\n\t</td></tr>\n\t<tr><td><br></td></tr>\n\t<tr><td colspan=2>{$products}</td></tr>\n\t<tr><td>\n\t\t<p>\n\t\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n\t\t\t<tr><th width=25%>Quick Links</th><th width=25%>Comments</th><td rowspan=5 valign=top width=50%>{$error}</td></tr>\n\t\t\t<tr><td class='bg-odd'><a href='quote-new.php'>New Quote</a></td><td class='bg-odd' rowspan=4 align=center valign=top><textarea name=comm rows=4 cols=20>{$quo['comm']}</textarea></td></tr>\n\t\t\t<tr class='bg-odd'><td><a href='quote-view.php'>View Quotes</a></td></tr>\n\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t</table>\n\t</td><td align=right>\n\t\t<table cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' border=0 width=80%>\n\t\t\t<tr class='bg-odd'><td>SUBTOTAL</td><td align=right>" . CUR . " <input type=hidden name=SUBTOT value='{$SUBTOT}'>{$SUBTOT}</td></tr>\n\t\t\t<tr class='bg-even'><td>Trade Discount</td><td align=right>" . CUR . " {$quo['discount']}</td></tr>\n\t\t\t<tr class='bg-odd'><td>Delivery Charge</td><td align=right>" . CUR . " {$quo['delivery']}</td></tr>\n\t\t\t<tr class='bg-even'><td><b>VAT @ {$VATP}%</b></td><td align=right>" . CUR . " {$VAT}</td></tr>\n\t\t\t<tr class='bg-odd'><th>GRAND TOTAL</th><td align=right>" . CUR . " {$TOTAL}</td></tr>\n\t\t</table>\n\t</td></tr>\n\t<tr><td align=right><input name=diffwhBtn type=submit value='Different Store'> | <input name=addprodBtn type=submit value='Add Product'>| <input name=addnon type=submit value='Add Non stock Product'> | <input type=submit name='saveBtn' value='Save'></td><td> | <input type=submit name='upBtn' value='Update'>{$done}</td></tr>\n\t</table>\n\t</form>\n\t</center>"; return $details; }
function block_check($acc, $debug = false) { global $global_empnum; global $block_check_errs, $block_check_accs; if (!isset($block_check_accs[$acc]) && isb($acc)) { $block_check_accs[$acc] = 1; $sql = "SELECT accname FROM core.accounts WHERE accid='{$acc}'"; $rslt = db_exec($sql) or errDie("Error reading account name for blocked account."); $accname = pg_fetch_result($rslt, 0, 0); $block_check_errs .= "<li class='err'>{$accname} is a blocked account. Click\n\t\t\t<a href='empacc-link.php?empnum={$global_empnum}'>here</a> to change the\n\t\t\taccount for as the 'Salaries and Wages' account before you continue\n\t\t\t with reversing salaries.</li>"; return false; } return true; }
function enter($_POST) { extract($_POST); if (!isset($group)) { $group = ""; $costacc = 0; $accdacc = 0; $depacc = 0; } # connect to db core_connect(); $Dcostacc = "<select name='costacc'>"; $sql = "SELECT * FROM accounts WHERE acctype = 'B' AND div = '" . USER_DIV . "' ORDER BY accname ASC"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li class=error>There are no Balance accounts yet in Cubit.</li>"; } else { while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } if ($costacc == $acc['accid']) { $sel = "selected"; } else { $sel = ""; } $Dcostacc .= "<option value='{$acc['accid']}' {$sel}>{$acc['accname']}</option>"; } } $Dcostacc .= "</select>"; $Daccdacc = "<select name='accdacc'>"; $sql = "SELECT * FROM accounts WHERE acctype = 'B' AND div = '" . USER_DIV . "' ORDER BY accname ASC"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li class=error>There are no Balance accounts yet in Cubit.</li>"; } else { while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } if ($acc['accid'] == $accdacc) { $sel = "selected"; } else { $sel = ""; } $Daccdacc .= "<option value='{$acc['accid']}' {$sel}>{$acc['accname']}</option>"; } } $Daccdacc .= "</select>"; $Ddepacc = "<select name='depacc'>"; $sql = "SELECT * FROM accounts WHERE acctype = 'E' AND div = '" . USER_DIV . "' ORDER BY accname ASC"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li class=error>There are no Expenditure accounts yet in Cubit.</li>"; } else { while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } if ($acc['accid'] == $depacc) { $sel = "selected"; } elseif ($depacc == 0 && $acc['accname'] == "Depreciation") { $sel = "selected"; } else { $sel = ""; } $Ddepacc .= "<option value='{$acc['accid']}' {$sel}>{$acc['accname']}</option>"; } } $Ddepacc .= "</select>"; $enter = "<h3>Add Asset Group</h3>\r\n\t<form action='" . SELF . "' method=post>\r\n\t<table cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\r\n\t<input type=hidden name=key value=confirm>\r\n\t<tr><th>Field</th><th>Value</th></tr>\r\n\t<tr class='bg-even'><td>" . REQ . "Asset Group</td><td><input type=text size=20 name=group value='{$group}'></td></tr>\r\n\t<tr class='bg-odd'><td>" . REQ . "Cost Account</td><td>{$Dcostacc}</td></tr>\r\n\t<tr class='bg-even'><td>" . REQ . "Accumulated Depreciation Account</td><td>{$Daccdacc}</td></tr>\r\n\t<tr class='bg-odd'><td>" . REQ . "Depreciation Account</td><td>{$Ddepacc}</td></tr>\r\n\t<tr><td><br></td></tr>\r\n\t<tr><td colspan=2 align=right><input type=submit value='Confirm »'></td></tr>\r\n\t</table></form>\r\n\t<p>\r\n\t<table border=0 cellpadding='2' cellspacing='1'>\r\n\t<tr><th>Quick Links</th></tr>\r\n\t<tr class='bg-odd'><td><a href='assetgrp-view.php'>View Asset Groups</a></td></tr>\r\n\t<script>document.write(getQuicklinkSpecial());</script>\r\n\t</table>"; return $enter; }
function block_check($acc, $empname = false, $debug = false) { global $global_empnum; global $block_check_errs, $block_check_accs; if (!isset($block_check_accs[$acc]) && isb($acc)) { $block_check_accs[$acc] = 1; db_conn("core"); $sql = "SELECT accname FROM accounts WHERE accid='{$acc}'"; $rslt = db_exec($sql) or errDie("Error reading account name for blocked account."); $accname = pg_fetch_result($rslt, 0, 0); if ($empname === false) { $block_check_errs .= "<li class='err'>{$accname} is a blocked account. Please use the appropriate feature to\n\t\t\t\t\t\tchange the usage of this account before you continue with processing salaries.</li>"; } else { $block_check_errs .= "<li class='err'>{$accname} is a blocked account. Unable to process employee {$empname}. Click\n\t\t\t\t<a href='empacc-link.php?empnum={$global_empnum}'>here</a> to change the\n\t\t\t\taccount to appropriate/custom account before you continue with reversing salaries.</li>"; } return false; } return true; }
function enter() { extract($_REQUEST); db_connect(); #branch mode install may not add stores .. disable this script $get_check = getCSetting("INST_MODE"); if (!isset($get_check) or strlen($get_check) < 1) { #setting not found ??? do nothing } elseif ($get_check == "branch") { return "<li class='err'>Branch Companies May Not Add New Stores.</li>"; } $fields = array(); $fields["team_id"] = 0; extract($fields, EXTR_SKIP); # connect to db core_connect(); $stkacc = "<select name='stkacc'>"; $sql = "SELECT * FROM accounts WHERE acctype = 'B' AND div = '" . USER_DIV . "'"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li class='err'>There are no Balance accounts yet in Cubit.</li>"; } else { while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } $stkacc .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } } $stkacc .= "</select>"; $cosacc = "<select name='cosacc'>"; $sql = "SELECT * FROM accounts WHERE acctype = 'E' AND div = '" . USER_DIV . "'"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li class='err'>There are no Expenditure accounts yet in Cubit.</li>"; } else { while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } $cosacc .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } } $cosacc .= "</select>"; $conacc = "<select name='conacc'>"; $sql = "SELECT * FROM accounts WHERE acctype = 'B' AND div = '" . USER_DIV . "'"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li class='err'>There are no Income accounts yet in Cubit.</li>"; } else { while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } $conacc .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } } $conacc .= "</select>"; // Team permissions $sql = "SELECT id, name, des FROM crm.teams ORDER BY name ASC"; $team_rslt = db_exec($sql) or errDie("Unable to retrieve teams."); $team_sel = "\r\n\t\t<select name='team_id' style='width: 100%'>\r\n\t\t\t<option value='0'>[All]</option>"; while (list($id, $team_name, $team_desc) = pg_fetch_array($team_rslt)) { if ($team_id == $id) { $sel = "selected='selected'"; } else { $sel = ""; } $team_sel .= "<option value='{$id}' {$sel}>{$team_name} - {$team_desc}</option>"; } $enter = "\r\n\t\t<h3>Add Store</h3>\r\n\t\t<form action='" . SELF . "' method='POST'>\r\n\t\t<table " . TMPL_tblDflts . ">\r\n\t\t\t<input type='hidden' name='key' value='confirm'>\r\n\t\t\t<tr>\r\n\t\t\t\t<th>Field</th>\r\n\t\t\t\t<th>Value</th>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td>Number</td>\r\n\t\t\t\t<td><input type='text' size='10' name='whno' /></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td>Store</td>\r\n\t\t\t\t<td><input type='text' size='10' maxlength='10' name='whname' /></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td>Stock Account</td>\r\n\t\t\t\t<td>{$stkacc}</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td>Cost Of Sales Account</td>\r\n\t\t\t\t<td>{$cosacc}</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td>Stock Control Account</td>\r\n\t\t\t\t<td>{$conacc}</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td>Team Permissions</td>\r\n\t\t\t\t<td>{$team_sel}</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan='2' align='right'>\r\n\t\t\t\t\t<input type='submit' value='Confirm »' />\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</form>\r\n\t\t<p>\r\n\t\t<table border='0' cellpadding='2' cellspacing='1'>\r\n\t\t\t<tr>\r\n\t\t\t\t<th>Quick Links</th>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td><a href='whouse-view.php'>View Stores</a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td><a href='../core/acc-new2.php'>Add Account</a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td><a href='../main.php'>Main Menu</a></td>\r\n\t\t\t</tr>\r\n\t\t</table>"; return $enter; }
function view($VARS = array(), $err = "") { foreach ($VARS as $key => $vals) { ${$key} = $vals; } $vars = array("bankname", "branchname", "loc", "fcid", "branchcode", "accname", "accnum", "cardnum", "mon", "year", "lastdigits", "cardname", "cardtyp", "details"); $vard = array("cardtyp" => "Visa", "mon" => date("m"), "year" => date("Y")); foreach ($vars as $key => $val) { if (!isset(${$val})) { ${$val} = isset($vard[$val]) ? $vard[$val] : ""; } } if (strlen($lastdigits) < 1) { $lastdigits = "000"; } db_connect(); # Locations drop down $locs = array("loc" => "Local", "int" => "International"); $locsel = extlib_cpsel("loc", $locs, $loc); # currency drop down $currsel = ext_unddbsel("fcid", "currency", "fcid", "descrip", "There are is no currency found in Cubit, please add currency first.", ""); $chm = ""; $chv = ""; $cho = ""; if ($cardtyp == 'Visa') { $chv = "checked=yes"; } elseif ($cardtyp == 'Mastercard') { $chm = "checked=yes"; } else { $cho = "checked=yes"; } core_connect(); $sql = "SELECT * FROM accounts WHERE acctype = 'B' AND div = '" . USER_DIV . "' ORDER BY accname"; $accRslt = db_exec($sql) or errDie("Could not retrieve accounts from Cubit.", SELF); if (pg_numrows($accRslt) < 1) { return "<li> There are no balance accouts in Cubit."; } $accs = "<select name=accid>"; while ($acc = pg_fetch_array($accRslt)) { if (isbank($acc['accid'])) { continue; } if (isb($acc['accid'])) { continue; } $accs .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } $accs .= "</select>"; //layout $view = "\n\t<h3>Add New Petrol Card Account</h3>\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n\t<form action='" . SELF . "' method=post name=form>\n\t<input type=hidden name=key value=confirm>\n\t<tr><td colspan=2>{$err}</td></tr>\n\t<tr><th>Field</th><th>Value</th></tr>\n\t<tr class='bg-odd'><td>" . REQ . "Bank Name</td><td ><input type=text size=20 name=bankname value='{$bankname}'></td></tr>\n\t<tr class='bg-even'><td>" . REQ . "Type</td><td>{$locsel}</td></tr>\n\t<tr class='bg-odd'><td>" . REQ . "Currency</td><td>{$currsel}</td></tr>\n\t<tr class='bg-even'><td>" . REQ . "Branch Name</td><td ><input type=text size=20 name=branchname value='{$branchname}'></td></tr>\n\t<tr class='bg-odd'><td>" . REQ . "Branch Code</td><td ><input type=text size=20 name=branchcode value='{$branchcode}'></td></tr>\n\t<tr class='bg-even'><td>" . REQ . "Account Name</td><td ><input type=text size=20 name=accname maxlength=50 value='{$accname}'></td></tr>\n\t<tr class='bg-odd'><td>" . REQ . "Account Number</td><td ><input type=text size=20 name=accnum value='{$accnum}'></td></tr>\n\t<tr class='bg-even'><td>" . REQ . "Ledger Account</td><td>{$accs}</td></tr>\n\t<tr class='bg-odd'><td>" . REQ . "Card Number</td><td ><input type=text size=25 name=cardnum maxlength=16 value='{$cardnum}'></td></tr>\n\t<tr class='bg-even'><td>" . REQ . "Expiry Date</td><td><input type=text size=2 name=mon maxlength=2 value='{$mon}'>-<input type=text size=4 name=year maxlength=4 value='{$year}'>MM-YYYY</td></tr>\n\t<tr class='bg-odd'><td>" . REQ . "Last 3 Digits at back of Card</td><td ><input type=text size=3 maxlength=3 name=lastdigits value='{$lastdigits}'></td></tr>\n\t<tr class='bg-even'><td>Card Type</td><td><input type=radio name=cardtyp value=Visa {$chv}>Visa <input type=radio name=cardtyp value='Mastercard' {$chm}> Mastercard <input type=radio name=cardtyp value='other' {$cho}>Other: <input type=text name=cardname value='{$cardname}'></td>\n\t<tr class='bg-odd'><td>" . REQ . "Details</td><td ><textarea cols=20 rows=3 name=details>{$details}</textarea></td></tr>\n\t<tr><td><br></td></tr>\n\t<tr><td><input type=button value='« Cancel' onClick='javascript:history.back();'></td><td ><input type=submit value='Confirm »'></td></tr>\n\t</form>\n\t</table>\n\t<p>\n\t<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>\n\t\t<tr><th>Quick Links</th></tr>\n\t\t<tr class='bg-odd'><td><a href='../core/acc-new2.php'>Add Ledger Account</a></td></tr>\n\t\t<tr class='bg-odd'><td><a href='../main.php'>Main Menu</a></td></tr>\n\t</table>"; return $view; }
function writeLoan($_POST) { # get vars foreach ($_POST as $key => $value) { ${$key} = $value; } # validate input require_lib("validate"); $v = new validate(); $v->isOk($empnum, "num", 1, 20, "Invalid employee number."); $v->isOk($loanamt, "float", 1, 10, "Invalid loan amount."); $v->isOk($loanint, "float", 1, 5, "Invalid loan interest."); $v->isOk($loanperiod, "num", 1, 3, "Invalid payback period."); $v->isOk($loaninstall, "float", 1, 10, "Invalid monthly installment."); $v->isOk($fringebenefit, "float", 1, 10, "Invalid fringe benefit amount."); $v->isOk($lday, "num", 1, 2, "Invalid day."); $v->isOk($lmonth, "num", 1, 2, "Invalid month."); $v->isOk($lyear, "num", 4, 4, "Invalid year."); $v->isOk($accid, "num", 1, 9, "Invalid bank account selected."); $v->isOk($account, "num", 1, 9, "Invalid contra account selected."); $v->isOk($loan_account, "num", 1, 9, "Invalid loan account selected."); if (!checkdate($lmonth, $lday, $lyear)) { $v->addError("", "Invalid date."); } if ($account > 0 && isb($account) || isb($loan_account)) { $v->addError("", "Main accounts blocked. Please select sub accounts."); } # display errors, if any if ($v->isError()) { $confirmCust = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirmCust .= "<li class=err>" . $e["msg"] . "</li>"; } return enterLoan($confirmCust); } # get employee details db_connect(); $sql = "SELECT * FROM employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "'"; $empRslt = db_exec($sql) or errDie("Unable to select employees from database."); if (pg_numrows($empRslt) < 1) { return "Invalid employee ID."; } $myEmp = pg_fetch_array($empRslt); # check for previous loan $sql = "SELECT empnum FROM employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "' AND gotloan='t'::bool"; $chkRslt = db_exec($sql) or errDie("Unable to check existing loans for employee."); if (pg_numrows($chkRslt) > 0) { return "Loan already exists for employee number: {$empnum}."; } if ($accid > 0) { $bankacc = getbankaccid($accid); } # Debit salaries control acc and credit Bank acc $date = date("Y-m-d"); $refnum = getrefnum(); if ($account > 0) { $bankacc = $account; } writetrans($loan_account, $bankacc, $date, $refnum, $loanamt, "Loan granted to employee {$myEmp['fnames']} {$myEmp['sname']}."); if ($accid > 0) { # issue bank record banktrans($accid, "withdrawal", date("d-m-Y"), "{$myEmp['fnames']} {$myEmp['sname']}", "Loan granted to employee {$myEmp['fnames']} {$myEmp['sname']}.", 0, $loanamt, $loan_account); } $totamount = sprint($loanperiod * $loaninstall); $loanint_amt = $totamount - $loanamt; # connect to db db_connect(); $ldate = "{$lyear}-{$lmonth}-{$lday}"; pglib_transaction("BEGIN"); $sql = "INSERT INTO emp_loanarchive (empnum, loanamt, loaninstall, loanint, loanperiod,loandate, div)\n\t\t\tVALUES('{$empnum}', '{$totamount}', '{$loaninstall}', '{$loanint}', '{$loanperiod}', CURRENT_DATE, '" . USER_DIV . "')"; $rslt = db_exec($sql) or errDie("Unable to pre archive loan."); $loanid = pglib_lastid('emp_loanarchive', 'id'); # write to db $sql = "UPDATE employees\n\t\t\tSET loanamt='{$totamount}', loanint='{$loanint}', loanint_amt='{$loanint_amt}',\n\t\t\t\tloanint_unpaid='{$loanint_amt}', loanperiod='{$loanperiod}', loaninstall='{$loaninstall}',\n\t\t\t\tgotloan='t'::bool, loanpayslip='{$loanamt}', loanfringe='{$fringebenefit}', loandate='{$ldate}',\n\t\t\t\texpacc_loan='{$loan_account}', loanamt_tot='{$totamount}', loanid='{$loanid}'\n\t\t\tWHERE empnum='{$empnum}' AND div = '" . USER_DIV . "'"; $loanRslt = db_exec($sql) or errDie("Unable to add loan to system.", SELF); if (pg_cmdtuples($loanRslt) < 1) { return "Unable to add loan to system."; } pglib_transaction("COMMIT"); $writeLoan = "<table border=0 cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "' width='50%'>\n\t<tr><th>Loan granted and added to system</th></tr>\n\t<tr class=datacell><td>New loan has been successfully added to Cubit.</td></tr>\n\t</table>" . mkQuickLinks(ql("../admin-employee-add.php", "Add Employee"), ql("../admin-employee-view.php", "View Employees")); return $writeLoan; }
function editAccnt($bankid) { # validate input require_lib("validate"); $v = new validate(); $v->isOk($bankid, "num", 1, 4, "Invalid Bank Account ID."); # display errors, if any if ($v->isError()) { $confirm = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirm .= "<li class='err'>" . $e["msg"] . "</li>"; } $confirm .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } // Connect to database Db_Connect(); $sql = "SELECT * FROM bankacct WHERE bankid='{$bankid}' AND div = '" . USER_DIV . "'"; $bankRslt = db_exec($sql) or errDie("ERROR: Unable to retrieve bank account details from database.", SELF); $numrows = pg_numrows($bankRslt); if ($numrows < 1) { $OUTPUT = "<li> - Invalid Bank account ID."; return $OUTPUT; } global $_POST; extract($_POST); $accnt = pg_fetch_array($bankRslt); if (isset($accname)) { $accnt['accname'] = $accname; $accnt['acctype'] = $acctype; $accnt['bankname'] = $bankname; $accnt['branchname'] = $branchname; $accnt['branchcode'] = $branchcode; $accnt['accnum'] = $accnum; $accnt['details'] = $details; $accnt['btype'] = $loc; } if (strlen($accnt['accname']) < 20) { $size = 20; } else { $size = strlen($accnt['accname']); } // Get Bank account [the traditional way re: hook of hook] core_connect(); $sql = "SELECT * FROM bankacc WHERE accid = '{$bankid}' AND div = '" . USER_DIV . "'"; $Rslt = db_exec($sql) or errDie("Unable to retrieve bank account link from Cubit", SELF); # check if link exists if (pg_numrows($Rslt) < 1) { return "<li class='err'> ERROR : The bank account that you selected doesn't appear to have an account linked to it."; } $bank = pg_fetch_array($Rslt); $bankaccid = $bank["accnum"]; # Check account balance $sql = "SELECT * FROM trial_bal WHERE period='" . PRD_DB . "' AND accid = '{$bankaccid}' AND debit > 0 OR accid = '{$bankaccid}' AND credit > 0"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) > 0) { $acc = pg_fetch_array($accRslt); $account = "<input type='hidden' name='glacc' value='{$acc['accid']}'>{$acc['accname']}"; } else { core_connect(); # income accounts ($inc) $account = "<select name='glacc'>"; $sql = "SELECT * FROM accounts WHERE acctype ='B' ORDER BY accname"; $accRslt = db_exec($sql); $numrows = pg_numrows($accRslt); if (empty($numrows)) { return "<li> - There are no accounts yet in Cubit. Please set up accounts first.</li>"; } while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } if ($acc['accid'] == $bankaccid) { $sal = "selected"; } else { $sal = ""; } $account .= "<option value='{$acc['accid']}' {$sal}>{$acc['accname']}</option>"; } $account .= "</select>"; } db_connect(); # Locations drop down $locs = array("loc" => "Local", "int" => "International"); $locsel = extlib_cpsel("loc", $locs, $accnt['btype']); # currency drop down $currsel = ext_unddbsel("fcid", "currency", "fcid", "descrip", "There are is no currency found in Cubit, please add currency first.", $accnt['fcid']); // Set up table to display in $OUTPUT = "\n\t\t<h3>Edit Bank Account</h3>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='key' value='confirm'>\n\t\t\t<input type='hidden' name='bankid' value='{$bankid}'>\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>Type of Account</td>\n\t\t\t\t<td valign='center'><input type='text' size='20' name='acctype' value='{$accnt['acctype']}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Bank Name</td>\n\t\t\t\t<td valign='center'><input type='text' size='20' name='bankname' value='{$accnt['bankname']}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Type</td>\n\t\t\t\t<td>{$locsel}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Currency</td>\n\t\t\t\t<td>{$currsel}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Branch Name</td>\n\t\t\t\t<td valign='center'><input type='text' size='20' name='branchname' value='{$accnt['branchname']}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Branch Code</td>\n\t\t\t\t<td valign='center'><input type='text' size='20' name='branchcode' value='{$accnt['branchcode']}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Account Name</td>\n\t\t\t\t<td valign='center'><input type='text' size='{$size}' name='accname' value='{$accnt['accname']}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Account Number</td>\n\t\t\t\t<td valign='center'><input type='text' name='accnum' value='{$accnt['accnum']}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Ledger Account</td>\n\t\t\t\t<td valign='center'>{$account}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Details</td>\n\t\t\t\t<td valign='center'><textarea cols='20' rows='5' name='details'>{$accnt['details']}</textarea></td></tr>\n\t\t\t<tr>\n\t\t\t\t<td></td>\n\t\t\t\t<td valign='center' align='right'><input type='submit' value='Confirm »'></td>\n\t\t\t</tr>\n\t\t</form>\n\t\t</table>\n\t\t<p>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Quick Links</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><a href='bankacct-view.php'>View Bank Accounts</a></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><a href='../main.php'>Main Menu</a></td>\n\t\t\t</tr>\n\t\t</table>"; return $OUTPUT; }
function details($_POST, $error = "") { # Get vars extract($_POST); # validate input require_lib("validate"); $v = new validate(); if (isset($invid)) { $v->isOk($invid, "num", 1, 20, "Invalid invoice number."); } if (isset($letter)) { $v->isOk($letters, "string", 0, 5, "Invalid First 3 Letters."); } if (isset($deptid)) { $v->isOk($deptid, "num", 1, 20, "Invalid department number."); } if (isset($sel_frm)) { $v->isOk($sel_frm, "string", 6, 6, "Invalid select from selection."); } # display errors, if any if ($v->isError()) { $error = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $error .= "<li class='err'>" . $e["msg"] . "</li>"; } return $error . view_err($_POST); } if (isset($deptid) && isset($letters)) { db_connect(); if ($deptid == "0") { $searchdept = ""; } else { $searchdept = "deptid = '{$deptid}' AND "; } # Query server for customer info $sql = "SELECT cusnum, cusname, surname FROM customers WHERE {$searchdept} location != 'int' AND lower(surname) LIKE lower('{$letters}%') AND blocked != 'yes' AND div = '" . USER_DIV . "' ORDER BY surname"; $custRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($custRslt) < 1) { $ajax_err = "<li class='err'>No customer names starting with <b>{$letters}</b> in database.</li>"; //return view_err($_POST, $err); } } if (!isset($deptid)) { $deptid = 2; } else { if (isset($invid)) { db_conn("cubit"); $sql = "UPDATE invoices SET deptid='{$deptid}' WHERE invid='{$invid}' AND deptid<>'{$deptid}'"; db_exec($sql) or errDie("Error updating invoice department."); } } if (!isset($invid)) { $invid = create_dummy($deptid); } if (!isset($stkerr)) { $stkerr = "0,0"; } if (!isset($done)) { $done = ""; } if (!isset($cust_del_addr)) { $cust_del_addr = ""; } if (!isset($sel_frm)) { $sel_frm = "stkcod"; } # 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 "<li class='err'>Invoice Not Found</li>"; } $inv = pg_fetch_array($invRslt); if (!isset($branch)) { $branch = $inv['branch']; } # 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>"; $error .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $error; } # 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'] = "<li class='err'>Department not Found.</li>"; } else { $dept = pg_fetch_array($deptRslt); } # Get selected Customer info if (isset($letters)) { db_connect(); $sql = "SELECT * FROM customers WHERE cusnum = '{$inv['cusnum']}' AND location != 'int' AND div = '" . USER_DIV . "'"; $custRslt = db_exec($sql) or errDie("Unable to view customer"); if (pg_numrows($custRslt) < 1) { if ($inv['deptid'] == 0) { $searchdept = ""; } else { $searchdept = "deptid = '{$inv['deptid']}' AND "; } # Query server for customer info $sql = "SELECT cusnum, cusname, surname, accno FROM customers WHERE {$searchdept} location != 'int' AND lower(surname) LIKE lower('{$letters}%') AND blocked != 'yes' AND div = '" . USER_DIV . "' ORDER BY surname"; $custRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($custRslt) < 1) { $ajax_err = "<li class='err'>No customer names starting with <b>{$letters}</b> in database.</li>"; //return view_err($_POST, $err); } else { $customers = "<select name='cusnum' onChange='javascript:document.form.submit();'>"; if (pg_numrows($custRslt) == 1) { $inv['cusnum'] = pg_fetch_result($custRslt, 0, 0); } else { $customers .= "<option value='-S' selected>Select Customer</option>"; } while ($cust = pg_fetch_array($custRslt)) { $customers .= "<option value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']} ({$cust['accno']})</option>"; } $customers .= "</select>"; } # Take care of the unset vars $cust['addr1'] = ""; $cust['cusnum'] = ""; $cust['vatnum'] = ""; $cust['accno'] = ""; $cust_del_addr = ""; $branchdrop = "<input type='hidden' name='branch' value='0'>"; } else { $cust = pg_fetch_array($custRslt); #override address if ($branch != 0) { $get_addr = "SELECT branch_descrip FROM customer_branches WHERE id = '{$branch}' AND div = '" . USER_DIV . "' LIMIT 1"; $run_addr = db_exec($get_addr); if (pg_numrows($run_addr) < 1) { #address missing ... do nothing } else { $arr = pg_fetch_array($run_addr); $cust['addr1'] = $arr['branch_descrip']; if ($inv['del_addr'] != $arr['branch_descrip']) { $update_addr = "UPDATE invoices SET del_addr = '{$arr['branch_descrip']}' WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; } } } #if the del_addr of invoice if empty, add the customer's entry and display button so user can edit anyway if (strlen($inv['del_addr']) < 1) { $cust_del_addr = $cust['del_addr1']; } else { $cust_del_addr = $inv['del_addr']; } $sql = "SELECT cusnum, cusname, surname FROM customers WHERE deptid = '{$inv['deptid']}' AND location != 'int' AND lower(surname) LIKE lower('{$letters}%') AND blocked != 'yes' AND div = '" . USER_DIV . "' ORDER BY surname"; $cusRslt = db_exec($sql) or errDie("Unable to view customers"); # Moarn if customer account has been blocked if ($cust['blocked'] == 'yes') { $error .= "<li class='err'>Error : Selected customer account has been blocked.</li>"; } // $customers = "<input type=hidden name=cusnum value='$cust[cusnum]'>$cust[cusname] $cust[surname]"; $cusnum = $cust['cusnum']; $customers = "<select name='cusnum' onChange='javascript:document.form.submit();'>"; // $customers .= "<option value='-S' selected>Select Customer</option>"; while ($cus = pg_fetch_array($cusRslt)) { $sel = ""; if ($cust['cusnum'] == $cus['cusnum']) { $sel = "selected"; } $customers .= "<option value='{$cus['cusnum']}' {$sel}>{$cus['cusname']} {$cus['surname']}</option>"; } $customers .= "</select>"; #get list of branches $get_branches = "SELECT * FROM customer_branches WHERE cusnum = '{$cusnum}' AND div = '" . USER_DIV . "'"; $run_branches = db_exec($get_branches); if (pg_numrows($run_branches) < 1) { $branchdrop = "<input type='hidden' name='branch' value='0'>No Branches For This Customer"; } else { $branchdrop = "<select name='branch' onChange='javascript:document.form.submit();'>"; $branchdrop .= "<option value='0'>Head Office</option>"; while ($barr = pg_fetch_array($run_branches)) { $sel2 = ""; if ($barr['id'] == $branch) { $sel2 = "selected"; } $branchdrop .= "<option {$sel2} value='{$barr['id']}'>{$barr['branch_name']}</option>"; } $branchdrop .= "</select>"; } } } /* --- Start Drop Downs --- */ # Select warehouse db_conn("exten"); //old //$whs = "<select name='whidss[]' onChange='javascript:document.form.submit();'>"; //fixes broken new store function //STORE1 $whs = "<select name='whidss[]'>"; $sql = "SELECT * FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { return "<li class='err'> There are no Stores found in Cubit.</li>"; } else { $whs .= "<option value='-S' disabled selected>Select Store</option>"; while ($wh = pg_fetch_array($whRslt)) { $whs .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $whs .= "</select>"; // Is the customer linked to a sales rep if (!empty($cust["sales_rep"])) { db_conn("exten"); $sql = "SELECT salesp FROM salespeople WHERE salespid='{$cust['sales_rep']}'"; $sr_rslt = db_exec($sql) or errDie("Unable to retrieve sales rep from Cubit."); $salespname = pg_fetch_result($sr_rslt, 0); $salesps = "<input type='hidden' name='salespn' value='{$salespname}'><b>[{$salespname}]</b>"; } else { db_conn("exten"); $sql = "SELECT * FROM salespeople WHERE div = '" . USER_DIV . "' ORDER BY salesp ASC"; $salespRslt = db_exec($sql) or errDie("Unable to get sales people."); if (pg_numrows($salespRslt) < 1) { return "<li class='err'> There are no Sales People found in Cubit.</li>"; } else { $salesps = "<select name='salespn'>"; while ($salesp = pg_fetch_array($salespRslt)) { if ($salesp['salesp'] == $inv['salespn']) { $sel = "selected"; } else { $sel = ""; } $salesps .= "<option value='{$salesp['salesp']}' {$sel}>{$salesp['salesp']}</option>"; } $salesps .= "</select>"; } } # Days drop downs $days = array("0" => "0", "7" => "7", "14" => "14", "30" => "30", "60" => "60", "90" => "90", "120" => "120"); $termssel = extlib_cpsel("terms", $days, $inv['terms']); # Keep the charge vat option stable if ($inv['chrgvat'] == "inc") { $chin = "checked=yes"; $chex = ""; $chno = ""; } elseif ($inv['chrgvat'] == "exc") { $chin = ""; $chex = "checked=yes"; $chno = ""; } else { $chin = ""; $chex = ""; $chno = "checked=yes"; } # Format date list($inv_date_year, $inv_date_month, $inv_date_day) = explode("-", $inv['odate']); /* --- End Drop Downs --- */ /* --- Start Products Display --- */ # Select all products $products = "\n\t\t<table " . TMPL_tblDflts . "' width='100%'>\n\t\t\t<tr>\n\t\t\t\t<th>STORE</th>\n\t\t\t\t<th>ITEM NUMBER</th>\n\t\t\t\t<th>VAT CODE</th>\n\t\t\t\t<th>SERIAL NO.</th>\n\t\t\t\t<th>DESCRIPTION</th>\n\t\t\t\t<th>QTY</th>\n\t\t\t\t<th>UNIT PRICE</th>\n\t\t\t\t<th>UNIT DISCOUNT</th>\n\t\t\t\t<th>AMOUNT</th>\n\t\t\t\t<th>Remove</th>\n\t\t\t<tr>"; # 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; $key = 0; $ai = 0; while ($stkd = pg_fetch_array($stkdRslt)) { $stkd['account'] += 0; if ($stkd['account'] != 0) { # Keep track of selected stock amounts $stkd["amt"] = sprint($stkd["amt"]); $amts[$i] = $stkd['amt']; $i++; $Accounts = "\n\t\t\t\t<select name='accounts[{$ai}]'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; $useaccdrop = getCSetting("USE_NON_STOCK_ACCOUNTS"); if (isset($useaccdrop) and $useaccdrop == "yes") { db_connect(); $acc_sql = "SELECT * FROM non_stock_account_list ORDER BY accname"; $run_acc = db_exec($acc_sql) or errDie("Unable to get account information."); if (pg_numrows($run_acc) > 0) { while ($acc = pg_fetch_array($run_acc)) { if ($acc['accid'] == $stkd['account']) { $Accounts .= "<option value='{$acc['accid']}' selected>{$acc['accname']}</option>"; } else { $Accounts .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } } $Accounts .= "</select>"; } } else { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); while ($ad = pg_fetch_array($Ri)) { if ($ad['accid'] == $stkd['account']) { $sel = "selected"; } else { $sel = ""; } if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>"; } } $Accounts .= "</select>"; $sernos = "\n\t\t\t\t<input type='hidden' name='sernos[{$ai}]' value='{$stkd['serno']}'>\n\t\t\t\t<input type='hidden' name='sernos_ss[{$ai}]' value='{$stkd['serno']}'>"; # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[{$ai}]' value='{$stkd['qty']}'>"; $viewcost = "<input type='text' size='8' name='unitcost[{$ai}]' value='{$stkd['unitcost']}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodes[{$ai}]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in product $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>\n\t\t\t\t\t\t{$Accounts}\n\t\t\t\t\t\t<input type='hidden' name='whids[{$ai}]' value='{$stkd['whid']}'>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td><input type='hidden' name='stkids[{$ai}]' value='{$stkd['stkid']}'>{$Vatcodes}</td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptions[{$ai}]' value='{$stkd['description']}'> {$sernos}</td>\n\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t<td><input type='hidden' name='disc[{$ai}]' value='{$stkd['disc']}'><input type='hidden' name='discp[{$ai}]' value='{$stkd['discp']}'></td>\n\t\t\t\t\t<td nowrap><input type='hidden' name='amt[{$ai}]' value='{$stkd['amt']}'> " . CUR . " {$stkd['amt']}</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[{$ai}]' value='{$key}'></td>\n\t\t\t\t</tr>"; $key++; ++$ai; } else { # Keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; # 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); # Serial number if ($stk['serd'] == 'yes' && ($inv['serd'] == 'n' || $stkd["serno"] == "")) { $sers = ext_getavserials($stkd['stkid']); $sernos = "<select name='sernos[{$ai}]'>"; foreach ($sers as $skey => $ser) { $sernos .= "<option value='{$ser['serno']}'>{$ser['serno']}</option>"; } $sernos .= "</select>\n\t\t\t\t\t<input type='hidden' name='sernos_ss[]' value='*_*_*CUBIT_SERIAL_SELECT_BOX*_*_*' />"; } else { $sernos = "\n\t\t\t\t\t<input type='hidden' name='sernos_ss[]' value='{$stkd['ss']}' />\n\t\t\t\t\t<input type='hidden' name='sernos[{$ai}]' value='{$stkd['serno']}'>{$stkd['ss']}"; } # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[{$ai}]' value='{$stkd['qty']}'>"; if ($stk['serd'] == 'yes') { $qtyin = "<input type='hidden' size='3' name='qtys[{$ai}]' value='{$stkd['qty']}'>{$stkd['qty']}"; } # check permissions if (perm("invoice-unitcost-edit.php")) { $viewcost = "<input type='text' size='8' name='unitcost[{$ai}]' value='{$stkd['unitcost']}'>"; } else { $viewcost = "<input type='hidden' size='8' name='unitcost[{$ai}]' value='{$stkd['unitcost']}'>{$stkd['unitcost']}"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodes[{$ai}]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in product $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input type='hidden' name='accounts[{$ai}]' value='0'>\n\t\t\t\t\t\t<input type='hidden' name='descriptions[{$ai}]' value=''>\n\t\t\t\t\t\t<input type='hidden' name='whids[{$ai}]' value='{$stkd['whid']}'>{$wh['whname']}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td><input type='hidden' name='stkids[]' value='{$stkd['stkid']}'><a href='#bottom' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t<td>{$sernos}</td>\n\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t<td><input type='text' size='4' name='disc[{$ai}]' value='{$stkd['disc']}'> OR <input type='text' size='4' name='discp[{$ai}]' value='{$stkd['discp']}' maxlength='5'>%</td>\n\t\t\t\t\t<td nowrap><input type='hidden' name='amt[{$ai}]' value='{$stkd['amt']}'> " . CUR . " {$stkd['amt']}</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[{$ai}]' value='{$key}'></td>\n\t\t\t\t</tr>"; $key++; ++$ai; } } # Look above(remprod keys) $keyy = $key; # Look above(if i = 0 then there are no products) if ($i == 0) { $done = ""; } else { $SCROLL = "yes"; } # check if stock warehouse was selected if (isset($whidss)) { foreach ($whidss as $key => $whid) { if (isset($stkidss[$key]) && $stkidss[$key] != "-S" && isset($cust['pricelist'])) { # skip if not selected if ($whid == "-S") { continue; } # Get selected stock in this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE stkid = '{$stkidss[$key]}' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); # Get selected warehouse name db_conn("exten"); $sql = "SELECT whid, whname FROM warehouses WHERE whid = (select whid from cubit.stock where stkid = '{$stk['stkid']}' limit 1) AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); if ($stk['serd'] == 'yes') { $sers = ext_getavserials($stkidss[$key]); $sernos = "<select name='sernos[]' onChange='javascript:document.form.submit();'>"; foreach ($sers as $skey => $ser) { $sernos .= "<option value='{$ser['serno']}'>{$ser['serno']}</option>"; } $sernos .= "</select>\n\t\t\t\t\t\t<input type='hidden' name='sernos_ss[]' value='*_*_*CUBIT_SERIAL_SELECT_BOX*_*_*' />"; } else { $sernos = "\n\t\t\t\t\t\t<input type='hidden' name='sernos_ss[]' value=''>\n\t\t\t\t\t\t<input type='hidden' name='sernos[{$ai}]' value=''>"; } # Get price from price list if it is set if (isset($cust['pricelist'])) { # get selected stock in this warehouse db_conn("exten"); $sql = "SELECT price FROM plist_prices WHERE listid = '{$cust['pricelist']}' AND stkid = '{$stk['stkid']}' AND div = '" . USER_DIV . "'"; $plRslt = db_exec($sql); if (pg_numrows($plRslt) > 0) { $pl = pg_fetch_array($plRslt); $stk['selamt'] = $pl['price']; } } /* -- Start Some Checks -- */ # check if they are selling too much if ($stk['units'] - $stk['alloc'] < $qtyss[$key]) { if (!in_array($stk['stkid'], explode(",", $stkerr))) { if ($stk['type'] != 'lab') { $stkerr .= ",{$stk['stkid']}"; $error .= "<li class='err'>Warning : Item number <b>{$stk['stkcod']}</b> does not have enough items available.</li>"; } } } if ($stk['units'] <= $stk['minlvl'] && $stk['minlvl'] != 0) { $error .= "<li class='err'>{$stk['stkcod']} is below minimum level, please notify stock controller.</li>"; } /* -- End Some Checks -- */ # Calculate the Discount discount if ($discs[$key] < 1) { if ($discps[$key] > 0) { $discs[$key] = round($discps[$key] / 100 * $stk['selamt'], 2); } } else { $discps[$key] = round($discs[$key] * 100 / $stk['selamt'], 2); } # Calculate amount $amt[$key] = $qtyss[$key] * ($stk['selamt'] - $discs[$key]); # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtemp' value='{$qtyss[$key]}'>"; if ($stk['serd'] == 'yes') { $qtyin = "<input type='hidden' size='3' name='qtemp' value='{$qtyss[$key]}'>{$qtyss[$key]}"; } #clean some vars $stk['selamt'] = sprint($stk['selamt']); $amt[$key] = sprint($amt[$key]); # Check permissions if (perm("invoice-unitcost-edit.php")) { $viewcost = "<input type='text' size='8' name='unitcost[{$ai}]' value='{$stk['selamt']}'>"; } else { $viewcost = "<input type='hidden' size='8' name='unitcost[{$ai}]' value='{$stk['selamt']}'>{$stk['selamt']}"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t<select name='vatcodes[{$ai}]'>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stk['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in selected warehouse and stock $products .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type='hidden' name='accounts[{$ai}]' value='0'>\n\t\t\t\t\t\t\t<input type='hidden' name='descriptions[{$ai}]' value=''>\n\t\t\t\t\t\t\t<input type='hidden' name='whids[]' value='{$wh['whid']}'>{$wh['whname']}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td><input type='hidden' name='stkids[{$ai}]' value='{$stk['stkid']}'><a href='#bottom' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t<td>{$sernos}</td>\n\t\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t\t<td><input type='text' size='4' name='disc[{$ai}]' value='{$discs[$key]}'> OR <input type='text' size='4' name='discp[{$ai}]' value='{$discps[$key]}' maxlength='5'>%</td>\n\t\t\t\t\t\t<td nowrap><input type='hidden' name='amt[{$ai}]' value='{$amt[$key]}'> " . CUR . " {$amt[$key]}</td>\n\t\t\t\t\t\t<td><input type='checkbox' name='remprod[{$ai}]' value='{$keyy}'></td>\n\t\t\t\t\t</tr>"; $keyy++; ++$ai; } elseif (isset($accountss[$key]) && $accountss[$key] != "0" && isset($cust['pricelist'])) { db_conn('core'); $Sl = "SELECT * FROM accounts WHERE accid='{$accountss[$key]}'"; $Ri = db_exec($Sl) or errDie("Unable to get account data."); if (pg_num_rows($Ri) < 1) { return "invalid."; } $ad = pg_fetch_array($Ri); # Calculate amount $amt[$key] = sprint($qtyss[$key] * $unitcosts[$key]); # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtemp' value='{$qtyss[$key]}'>"; # Check permissions $viewcost = "<input type='text' size='8' name='unitcost[{$ai}]' value='{$unitcosts[$key]}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t<select name='vatcodes[{$ai}]'>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vatcodess[$key] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in selected warehouse and stock $products .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td colspan='2'>\n\t\t\t\t\t\t\t{$ad['accname']}\n\t\t\t\t\t\t\t<input type='hidden' name='accounts[{$ai}]' value='{$accountss[$key]}'>\n\t\t\t\t\t\t\t<input type='hidden' name='whids[{$ai}]' value='0'>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>{$Vatcodes}<input type='hidden' name='stkids[{$ai}]' value='0'></td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='descriptions[{$ai}]' value='{$descriptionss[$key]}'></td>\n\t\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t\t<td><input type='hidden' name='disc[{$ai}]' value='0'><input type='hidden' name='discp[{$ai}]' value='0'></td>\n\t\t\t\t\t\t<td nowrap><input type='hidden' name='amt[{$ai}]' value='{$amt[$key]}'> " . CUR . " {$amt[$key]}</td>\n\t\t\t\t\t\t<td><input type='checkbox' name='remprod[{$ai}]' value='{$keyy}'></td>\n\t\t\t\t\t</tr>"; $keyy++; ++$ai; } else { # skip if not selected if ($whid == "-S") { continue; } if (!isset($addnon)) { if ($filter_store != "0") { # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$filter_store}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); } if (isset($ria) and $ria != "") { $len = strlen($ria); if ($ria == "Show All") { $Wh = ""; $ria = ""; } else { $Wh = "AND (lower(stkdes) LIKE lower('%{$ria}%')) OR (lower(stkcod) LIKE lower('%{$ria}%'))"; $ria = ""; } } else { $Wh = "AND FALSE"; $ria = ""; } $check_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($check_setting) and $check_setting == "yes") { if (isset($filter_class) and $filter_class != "0") { $Wh .= " AND prdcls = '{$filter_class}'"; } if (isset($filter_cat) and $filter_cat != "0") { $Wh .= " AND catid = '{$filter_cat}'"; } } if (isset($filter_store) and $filter_store != "0") { $Wh .= " AND whid = '{$filter_store}'"; } # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE blocked = 'n' AND div = '" . USER_DIV . "' {$Wh} ORDER BY {$sel_frm} ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { $error .= "<li class='err'>There are no stock items in the selected warehouse."; continue; } if (pg_numrows($stkRslt) == 1) { $ex = "selected"; $reload = TRUE; $send_override = "<input type='hidden' name='stkidss[{$ai}]' value='" . pg_fetch_result($stkRslt, 0, 0) . "'><script>document.form.submit();</script>"; } else { $ex = ""; $reload = FALSE; } if ($sel_frm == "stkcod") { $cods = "<select name='stkidss[{$ai}]' onChange='javascript:document.form1.submit();'>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { // Check if this stock item has been blocked //pointless, as we only get non blocked stock ... //if (stock_is_blocked($stk["stkid"])) { // continue; //} $cods .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $cods .= "</select> "; $descs = ""; } else { $descs = "<select style='width:250px'name='stkidss[{$ai}]' onChange='javascript:document.form.submit();'>"; $descs .= "<option value='-S' disabled selected>Select Description</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { // Check if this stock item has been blocked //pointless, as ge only get non blocked stock // if (stock_is_blocked($stk["stkid"])) { // continue; // } $descs .= "<option value='{$stk['stkid']}'>{$stk['stkdes']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $descs .= "</select> "; $cods = ""; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t\t<select name='vatcodess[{$ai}]'>\n\t\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # put in drop down and warehouse $products .= "\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input type='hidden' name='accountss[{$ai}]' value='0'>\n\t\t\t\t\t\t\t\t<input type='hidden' name='descriptionss[{$ai}]' value=''>\n\t\t\t\t\t\t\t\t<input type='hidden' name='whidss[{$ai}]' value='{$filter_store}'>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>{$cods}</td>\n\t\t\t\t\t\t\t<td><input type='hidden' name='vatcodess' value='0'></td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td>{$descs}</td>\n\t\t\t\t\t\t\t<td><input type='hidden' size='3' name='qtyss[{$ai}]' value='1'>1</td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td><input type='text' size='4' name='discs[{$ai}]' value='0'> OR <input type='text' size='4' name='discps[{$ai}]' value='0' maxlength='5'>%</td>\n\t\t\t\t\t\t\t<td nowrap><input type='hidden' name='amts[{$ai}]' value='0.00'>" . CUR . " 0.00</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t</tr>"; ++$ai; } else { $Accounts = "\n\t\t\t\t\t\t<select name='accountss[{$ai}]' onChange='javascript:document.form.submit();'>\n\t\t\t\t\t\t\t<option value='0'>Select Account</option>"; $useaccdrop = getCSetting("USE_NON_STOCK_ACCOUNTS"); if (isset($useaccdrop) and $useaccdrop == "yes") { db_connect(); $acc_sql = "SELECT * FROM non_stock_account_list ORDER BY accname"; $run_acc = db_exec($acc_sql) or errDie("Unable to get account information."); if (pg_numrows($run_acc) > 0) { while ($acc = pg_fetch_array($run_acc)) { $Accounts .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } $Accounts .= "</select>"; } } else { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $Accounts .= "</select>"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t\t<select name='vatcodess[{$ai}]'>\n\t\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td colspan='2'>\n\t\t\t\t\t\t\t\t{$Accounts}\n\t\t\t\t\t\t\t\t<input type='hidden' name='whidss[{$ai}]' value='1'>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<inpu type='hidden' name='stkidss[{$ai}]' value=''>\n\t\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[{$ai}]'></td>\n\t\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[{$ai}]' value='1'></td>\n\t\t\t\t\t\t\t<td><input type='text' name='unitcosts[{$ai}]' size='7'></td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td nowrap>" . CUR . " 0.00</td>\n\t\t\t\t\t\t\t<td><input type='hidden' name='discs[{$ai}]' value='0'><input type='hidden' name='discps[{$ai}]' value='0'></td>\n\t\t\t\t\t\t</tr>"; ++$ai; } } } } else { #HAX ! if (!isset($addnon) && !isset($upBtn)) { if (isset($ria) and $ria != "") { $len = strlen($ria); if ($ria == "Show All") { $Wh = ""; $ria = ""; } else { $Wh = "AND (lower(stkdes) LIKE lower('%{$ria}%')) OR (lower(stkcod) LIKE lower('%{$ria}%'))"; $ria = ""; } } else { $Wh = "AND FALSE"; $ria = ""; } $check_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($check_setting) and $check_setting == "yes") { if (isset($filter_class) and $filter_class != "0") { $Wh .= " AND prdcls = '{$filter_class}'"; } if (isset($filter_cat) and $filter_cat != "0") { $Wh .= " AND catid = '{$filter_cat}'"; } } if (isset($filter_store) and $filter_store != "0") { $Wh .= " AND whid = '{$filter_store}'"; } # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE blocked = 'n' AND div = '" . USER_DIV . "' {$Wh} ORDER BY {$sel_frm} ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { if (!isset($err)) { $err = ""; } $err .= "<li>There are no stock items in the selected store.</li>"; //ontinue; } if (pg_numrows($stkRslt) == 1) { $reload = TRUE; $send_override = "<input type='hidden' name='stkidss[{$ai}]' value='" . pg_fetch_result($stkRslt, 0, 0) . "'>"; } else { $reload = FALSE; $send_override = ""; } if ($sel_frm == "stkcod") { $cods = "<select name='stkidss[{$ai}]' onChange='javascript:document.form.submit();'>"; // $cods .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $cods .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $cods .= "</select> "; $descs = ""; } else { $descs = "<select style='width:250px' name='stkidss[{$ai}]' onChange='javascript:document.form.submit();'>"; $descs .= "<option value='-S' disabled selected>Select Description</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $descs .= "<option value='{$stk['stkid']}'>{$stk['stkdes']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $descs .= "</select> "; $cods = ""; } $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input type='hidden' name='accountss[{$ai}]' value='0'>\n\t\t\t\t\t\t<input type='hidden' name='descriptionss[{$ai}]' value=''>\n\t\t\t\t\t\t<input type='hidden' name='vatcodess[{$ai}]' value=''>\n\t\t\t\t\t\t<input type='hidden' name='whidss[{$ai}]' value='{$filter_store}'>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>{$cods}</td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td>{$descs}</td>\n\t\t\t\t\t<td><input type='hidden' size='3' name='qtyss[{$ai}]' value='1'>1</td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td><input type='text' size='4' name='discs[{$ai}]' value='0'> OR <input type='text' size='4' name='discps[{$ai}]' value='0' maxlength='5'>%</td>\n\t\t\t\t\t<td nowrap>" . CUR . " 0.00</td>\n\t\t\t\t\t<td></td>\n\t\t\t\t</tr>"; ++$ai; } elseif (isset($addnon)) { $Accounts = "\n\t\t\t\t<select name='accountss[{$ai}]' onChange='javascript:document.form.submit();'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; $useaccdrop = getCSetting("USE_NON_STOCK_ACCOUNTS"); if (isset($useaccdrop) and $useaccdrop == "yes") { db_connect(); $acc_sql = "SELECT * FROM non_stock_account_list ORDER BY accname"; $run_acc = db_exec($acc_sql) or errDie("Unable to get account information."); if (pg_numrows($run_acc) > 0) { while ($acc = pg_fetch_array($run_acc)) { $Accounts .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } $Accounts .= "</select>"; } } else { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $Accounts .= "</select>"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodess[{$ai}]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whidss[{$ai}]' value='1'></td>\n\t\t\t\t\t<inpu type='hidden' name='stkidss[{$ai}]' value=''>\n\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[{$ai}]'></td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtyss[{$ai}]' value='1'></td>\n\t\t\t\t\t<td><input type='text' name='unitcosts[{$ai}]' size='7'></td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td nowrap>" . CUR . " 0.00</td>\n\t\t\t\t\t<td><input type='hidden' name='discs[{$ai}]' value='0'><input type='hidden' name='discps[{$ai}]' value='0' ></td>\n\t\t\t\t</tr>"; ++$ai; } } $products .= "</table>"; /* --- End Products Display --- */ /* --- Start Some calculations --- */ # Calculate subtotal $SUBTOT = sprint($inv['subtot']); # Calculate tradediscm if ($inv['traddisc'] > 0) { $traddiscm = sprint($inv['traddisc'] / 100 * $inv['total']); } else { $traddiscm = "0.00"; } $VATP = TAX_VAT; # Calculate subtotal $SUBTOT = sprint($inv['subtot']); $VAT = sprint($inv['vat']); $TOTAL = sprint($inv['total']); $inv['delchrg'] = sprint($inv['delchrg']); /* --- End Some calculations --- */ /*--- Start checks --- */ # check only if the customer is selected if (isset($cusnum) && $cusnum != "-S") { #check againg credit limit if ($TOTAL + $cust['balance'] > $cust['credlimit']) { $error .= "<li class='err'>Warning : Customers Credit limit of <b>" . CUR . " " . sprint($cust["credlimit"]) . "</b> has been exceeded"; #limit reached ... check for warn/block db_conn("cubit"); $get_check = "SELECT value FROM set WHERE label = 'CUST_INV_WARN' LIMIT 1"; $run_check = db_exec($get_check) or errDie("Unable to get credit limit response setting"); if (pg_numrows($run_check) < 1) { #no setting ? do nothing .... } else { $sarr = pg_fetch_array($run_check); if ($sarr['value'] == "block") { #block account ... $done = ""; } } # Check permissions if (!perm("invoice-limit-override.php")) { $done = ""; } } $avcred = $cust['credlimit'] - $cust['balance']; } else { $avcred = "0.00"; } /*--- Start checks --- */ 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") { $sc = "checked"; } else { $sc = ""; } $sales = "\n\t\t<td>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<td>{$salesps}</td>\n\t\t\t\t\t<td>Print</td>\n\t\t\t\t\t<td><input type='checkbox' name='printsales' {$sc}></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>"; $inv['delvat'] += 0; if ($inv['delvat'] == 0) { $Sl = "SELECT * FROM vatcodes WHERE del='Yes'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $vd = pg_fetch_array($Ri); $inv['delvat'] = $vd['id']; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t<select name='delvat'>\n\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['id'] == $inv['delvat']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM settings WHERE constant='Delivery Note'"; $Ri = db_exec($Sl) or errDie("Unable to get settings."); $data = pg_fetch_array($Ri); if ($data['value'] == "Yes") { $chp = "checked"; } else { $chp = ""; } if (empty($inv["comm"])) { db_conn("cubit"); $sql = "SELECT value FROM settings WHERE constant='DEFAULT_COMMENTS'"; $cmntRslt = db_exec($sql) or errDie("Unable to retrieve the default comment from Cubit."); $comm = base64_decode(pg_fetch_result($cmntRslt, 0)); } else { $comm = $inv["comm"]; } if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } // Which display method was selected if (isset($sel_frm) && $sel_frm == "stkdes") { $sel_frm_cod = ""; $sel_frm_des = "checked"; } else { $sel_frm_cod = "checked"; $sel_frm_des = ""; } // Delivery Date if (!empty($inv["deldate"])) { $deldate = explode("-", $inv["deldate"]); } else { $trans_date_setting = getCSetting("USE_TRANSACTION_DATE"); if (isset($trans_date_setting) and $trans_date_setting == "yes") { $trans_date_value = getCSetting("TRANSACTION_DATE"); $date_arr = explode("-", $trans_date_value); $deldate[0] = $date_arr[0]; $deldate[1] = $date_arr[1]; $deldate[2] = $date_arr[2]; } else { $deldate[0] = date("Y"); $deldate[1] = date("m"); $deldate[2] = date("d"); } } $details_begin = "\n\t\t<center>\n\t\t<h3>New Invoice</h3>\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='SCROLL' value='yes'>\n\t\t\t<input type='hidden' name='key' value='update'>\n\t\t\t<input type='hidden' name='invid' value='{$invid}'>\n\t\t\t<input type='hidden' name='stkerr' value='{$stkerr}'>\n\t\t<table " . TMPL_tblDflts . " width='95%'>\n\t\t \t<tr>\n\t\t \t\t<td valign='top' width='50%'>\n\t\t \t\t\t<div id='cust_selection'>"; if (empty($ajax_err) && (isset($cusnum) || AJAX)) { if (isset($cusnum)) { $OTS_OPT = onthespot_encode(SELF, "cust_selection", "deptid={$inv['deptid']}&letters={$letters}&cusnum={$cusnum}&invid={$invid}"); $custedit = "\n\t\t\t\t<td nowrap>\n\t\t\t\t\t<a href='javascript: popupSized(\"customers-new.php?cusnum={$cusnum}&onthespot={$OTS_OPT}\", \"edit_cust\", 700, 630);'>Edit Customer Details</a>\n\t\t\t\t</td>"; } else { $custedit = ""; } $optional_filter_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($optional_filter_setting) and $optional_filter_setting == "yes") { db_connect(); $catsql = "SELECT catid, cat, catcod FROM stockcat WHERE div = '" . USER_DIV . "' ORDER BY cat ASC"; $catRslt = db_exec($catsql); if (pg_numrows($catRslt) < 1) { $cat_drop = "<input type='hidden' name='filter_cat' value='0'>"; } else { $cat_drop = "<select name='filter_cat'>"; $cat_drop .= "<option value='0'>All Categories</option>"; while ($cat = pg_fetch_array($catRslt)) { if (isset($filter_cat) and $filter_cat == $cat['catid']) { $cat_drop .= "<option value='{$cat['catid']}' selected>({$cat['catcod']}) {$cat['cat']}</option>"; } else { $cat_drop .= "<option value='{$cat['catid']}'>({$cat['catcod']}) {$cat['cat']}</option>"; } } $cat_drop .= "</select>"; } # Select classification $classsql = "SELECT * FROM stockclass WHERE div = '" . USER_DIV . "' ORDER BY classname ASC"; $clasRslt = db_exec($classsql); if (pg_numrows($clasRslt) < 1) { $class_drop = "<input type='hidden' name='filter_class' value='0'>"; } else { $class_drop = "<select name='filter_class' style='width: 167'>"; $class_drop .= "<option value='0'>All Classifications</option>"; while ($clas = pg_fetch_array($clasRslt)) { if (isset($filter_class) and $filter_class == $clas['clasid']) { $class_drop .= "<option value='{$clas['clasid']}' selected>{$clas['classname']}</option>"; } else { $class_drop .= "<option value='{$clas['clasid']}'>{$clas['classname']}</option>"; } } $class_drop .= "</select>"; } $display_optional_filters = "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Category</td>\n\t\t\t\t\t<td>{$cat_drop}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Classification</td>\n\t\t\t\t\t<td>{$class_drop}</td>\n\t\t\t\t</tr>"; } db_conn("exten"); $sql = "SELECT whid, whname, whno FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { $store_drop = "<input type='hidden' name='filter_store' value='0'>"; } else { if (!isset($filter_store)) { # check if setting exists db_connect(); $sql = "SELECT value FROM set WHERE label = 'DEF_WH' AND div = '" . USER_DIV . "'"; $Rslt = db_exec($sql) or errDie("Unable to check database for existing settings."); if (pg_numrows($Rslt) > 0) { $set = pg_fetch_array($Rslt); $filter_store = $set['value']; } } $store_drop = "<select name='filter_store'>"; $store_drop .= "<option value='0'>All Stores</option>"; while ($wh = pg_fetch_array($whRslt)) { if ($wh['whid'] == $filter_store) { $store_drop .= "<option value='{$wh['whid']}' selected>({$wh['whno']}) {$wh['whname']}</option>"; } else { $store_drop .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $store_drop .= "</select>"; } $ajaxOut = "\n\t\t\t<input type='hidden' name='letters' value='{$letters}'>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'> Customer Details </th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Department</td>\n\t\t\t\t\t<td valign='center'>{$dept['deptname']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Account No.</td>\n\t\t\t\t\t<td valign='center'>{$cust['accno']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer</td>\n\t\t\t\t\t<td valign='center'>{$customers}</td>\n\t\t\t\t\t{$custedit}\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td valign='top'>Customer Branch</td>\n\t\t\t\t\t<td valign='center'>{$branchdrop}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td valign='top'>Customer Address</td>\n\t\t\t\t\t<td valign='center'>" . nl2br($cust['addr1']) . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td valign='top'>Current Delivery Address</td>\n\t\t\t\t\t<td valign='center'>" . nl2br($cust_del_addr) . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td valign='top'>Delivery Address</td>\n\t\t\t\t\t<td valign='center'>\n\t\t\t\t\t\t<input type='button' onClick=\"\n\t\t\t\t\t\t\tvar windowReference;\n\n\t\t\t\t\t\t\tfunction openPopup() {\n\t\t\t\t\t\t\t\twindowReference = window.open('cust-credit-stockinv-deladdr.php?invid={$invid}','windowName','width=500,height=400,status=1');\n\t\t\t\t\t\t\t\tif (!windowReference.opener)\n\t\t\t\t\t\t\t\t\twindowReference.opener = self;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\topenPopup();\" value='Change Delivery Address'>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer Order number</td>\n\t\t\t\t\t<td valign='center'><input type='text' size='10' name='cordno' value='{$inv['cordno']}'></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer VAT Number</td>\n\t\t\t\t\t<td>{$cust['vatnum']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'>Point of Sale</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Barcode</td>\n\t\t\t\t\t<td><input type='text' size='13' name='bar' value=''></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Print Delivery Note</td>\n\t\t\t\t\t<td><input type='checkbox' name='printdel' {$chp}></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Using</td>\n\t\t\t\t\t<td>Stock Code<input type='radio' name='sel_frm' value='stkcod' onChange='javascript:document.form.submit();' {$sel_frm_cod}><br>Stock Description<input type='radio' name='sel_frm' value='stkdes' onChange='javascript:document.form.submit();' {$sel_frm_des}></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'>Additional Filters</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Store</td>\n\t\t\t\t\t<td>{$store_drop}</td>\n\t\t\t\t</tr>\n\t\t\t\t{$display_optional_filters}\n\t\t\t\t<tr class='" . bg_class() . "' " . ass("Type the first letters of the stock code you are looking for.") . ">\n\t\t\t\t\t<td>Stock Filter</td>\n\t\t\t\t\t<td nowrap><input type='text' size='13' name='ria' value='{$ria}'> <input type='submit' value='Search'> <input type='submit' name='ria' value='Show All'></td>\n\t\t\t\t</tr>\n\t\t\t</table>"; } else { db_conn("exten"); $sql = "SELECT * FROM departments WHERE div = '" . USER_DIV . "' ORDER BY deptname ASC"; $deptRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($deptRslt) < 1) { return "<li class='err'>There are no Departments found in Cubit.</li>"; } else { $depts = "<select name='deptid' id='deptid'>"; $depts .= "<option value='0'>All Departments</option>"; while ($dept = pg_fetch_array($deptRslt)) { $depts .= "<option value='{$dept['deptid']}'>{$dept['deptname']}</option>"; } $depts .= "</select>"; } if (!isset($ajax_err)) { $ajax_err = ""; } $ajaxOut = "\n\t\t\t<script>\n\t\t\t\tfunction updateCustSelection() {\n\t\t\t\t\tdeptid = getObject('deptid').value;\n\t\t\t\t\tletters = getObject('letters').value;\n\t\t\t\t\tctyp = getObject('ctypintl').checked;\n\t\t\t\t\tif (ctyp) {\n\t\t\t\t\t\tdocument.location.href='intinvoice-new.php?' + 'letters=' + letters + '&deptid=' + deptid + '&ctyp=' + ctyp + '&invid={$invid}';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tajaxRequest('" . SELF . "', 'cust_selection', AJAX_SET, 'letters='+letters+'&deptid='+deptid+'&ctyp='+ctyp+'&invid={$invid}');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</script>\n\t\t\t{$ajax_err}\n\t\t\t<form name='cusselfrm'>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'>Customer Selection</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Department</td>\n\t\t\t\t\t<td valign='center'>{$depts}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>First Letters of customer</td>\n\t\t\t\t\t<td valign='center'><input type='text' size='5' id='letters' maxlength='5'></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer is International</td>\n\t\t\t\t\t<td valign='center'><input type='checkbox' id='ctypintl'></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><br /></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td valign='center'><input type='button' value='Update »' onClick='updateCustSelection();'></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</form>"; } $avcred = sprint($avcred); if (isset($addprodBtn) or isset($addnon) or isset($saveBtn) or isset($upBtn) or isset($ria)) { $jump_bot = "\n\t\t\t<script>\n\t\t\t\twindow.location.hash='bottom';\n\t\t\t</script>"; } else { $jump_bot = ""; } $details_end = "\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td valign='top' align='right' width='50%'>\n\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th colspan='2'> Invoice Details </th>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Invoice No.</td>\n\t\t\t\t\t\t\t\t<td valign='center'>TI {$inv['invid']}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Proforma Inv No.</td>\n\t\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='docref' value='{$inv['docref']}'></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Sales Order No.</td>\n\t\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='ordno' value='{$inv['ordno']}'></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>VAT Inclusive</td>\n\t\t\t\t\t\t\t\t<td valign='center'>Yes <input type='radio' size='7' name='chrgvat' value='inc' {$chin}> No<input type='radio' size='7' name='chrgvat' value='exc' {$chex}></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Terms</td>\n\t\t\t\t\t\t\t\t<td valign='center'>{$termssel} Days</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Sales Person</td>\n\t\t\t\t\t\t\t\t{$sales}\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Invoice Date</td>\n\t\t\t\t\t\t\t\t<td valign='center'>" . mkDateSelect("inv_date", $inv_date_year, $inv_date_month, $inv_date_day) . "</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Available Credit</td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " {$avcred}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Trade Discount</td>\n\t\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='traddisc' value='{$inv['traddisc']}'>%</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Delivery Charge</td>\n\t\t\t\t\t\t\t\t<td valign='center'><input type='text' size='7' name='delchrg' value='{$inv['delchrg']}'>{$Vatcodes}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Delivery Date</td>\n\t\t\t\t\t\t\t\t<td valign='center'>" . mkDateSelect("del_date", $deldate[0], $deldate[1], $deldate[2]) . "</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\t" . TBL_BR . "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2'>{$products}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th width='25%'>Quick Links</th>\n\t\t\t\t\t\t\t\t<th width='25%'>Comments</th>\n\t\t\t\t\t\t\t\t<td rowspan='5' valign='top' width='50%'>{$error}</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 class='" . bg_class() . "'><a href='customers-new.php?re={$inv['invid']}'>New Customer</a></td>\n\t\t\t\t\t\t\t\t<td class='" . bg_class() . "' rowspan='5' align='center' valign='top'><textarea name='comm' rows='4' cols='20'>{$comm}</textarea></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 class='" . bg_class() . "'><a href='cust-credit-stockinv.php'>New Invoice</a></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td><a href='invoice-view.php'>View Invoices</a></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td><a href='settings/cust-credit-stockinv-newsetting.php?change=yes'>Change Invoice Complete Setting</a></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td align='right' valign='top'>\n\t\t\t\t\t\t<table " . TMPL_tblDflts . " width='50%'>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>SUBTOTAL</td>\n\t\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " <input type='hidden' name='SUBTOT' value='{$SUBTOT}'>{$SUBTOT}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Trade Discount</td>\n\t\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$inv['discount']}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>Delivery Charge</td>\n\t\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$inv['delivery']}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\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 align='right' nowrap>" . CUR . " {$VAT}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<th>GRAND TOTAL</th>\n\t\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$TOTAL}</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\t<tr>\n\t\t\t\t\t<td align='right'><input name='addprodBtn' type='submit' value='Add Product'> | <input name='addnon' type='submit' value='Add Non stock Product'> | <input type='submit' name='saveBtn' value='Save'> </td>\n\t\t\t\t\t<td nowrap>| <input type='submit' name='upBtn' value='Update'>{$done}</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t<a name='bottom'>\n\t\t\t</form>\n\t\t\t</center>\n\t\t\t{$jump_bot}"; if (!isset($reload)) { $reload = FALSE; $send_override = ""; } if ($reload) { $details_end .= "\n\t\t\t\t\t\t{$send_override}\n\t\t\t\t\t\t<script>\n\t\t\t\t\t\t\tonLoad=document.form.submit();\n\t\t\t\t\t\t</script>\n\t\t\t\t\t"; } if (AJAX) { return $ajaxOut; } else { return "{$details_begin}{$ajaxOut}{$details_end}"; } }
function confirm($_POST) { # get vars extract($_POST); # validate input require_lib("validate"); $v = new validate(); $v->isOk($acctype, "string", 1, 30, "Invalid Account Type."); $v->isOk($bankname, "string", 1, 50, "Invalid Bank name."); $v->isOk($loc, "string", 1, 3, "Invalid Type."); $v->isOk($fcid, "num", 1, 30, "Invalid Currency."); $v->isOk($branchname, "string", 1, 50, "Invalid Branch Name."); $v->isOk($branchcode, "string", 1, 15, "Invalid Branch Code."); $v->isOk($accname, "string", 1, 50, "Invalid Account Name."); $v->isOk($accnum, "num", 1, 30, "Invalid Account Number."); $v->isOk($catid, "string", 1, 4, "Invalid Category."); $v->isOk($details, "string", 1, 255, "Invalid Details."); # display errors, if any if ($v->isError()) { $confirm = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirm .= "-" . $e["msg"] . "<br>"; } $err = "<tr><td class='err' colspan='2'>{$confirm}</td></tr>\n\t\t<tr><td colspan='2'><br></td></tr>"; return view($acctype, $bankname, $loc, $branchname, $branchcode, $accname, $accnum, $details, $err); } core_connect(); # income accounts ($inc) $glacc = "<select name='glacc'>"; $sql = "SELECT * FROM accounts WHERE catid ='{$catid}' AND div = '" . USER_DIV . "' ORDER BY accname"; $accRslt = db_exec($sql); $numrows = pg_numrows($accRslt); if (empty($numrows)) { return "<li> - There are no accounts yet in Cubit. Please set up accounts first.</li>"; } while ($acc = pg_fetch_array($accRslt)) { if (isbank($acc['accid'])) { continue; } if (isb($acc['accid'])) { continue; } $glacc .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } $glacc .= "</select>"; //processes db_connect(); # check if account name doesn't exist $sql = "SELECT bankname FROM bankacct WHERE accname ='{$accname}' AND type != 'cr' AND type != 'ptrl' AND div = '" . USER_DIV . "'"; $checkRslt = db_exec($sql) or errDie("Unable to select bank details from database.", SELF); $check = pg_numrows($checkRslt); if (!empty($check)) { return "<li class='err'>The Account : {$accname} Already Exits, please choose another account name.<p>\n\t\t\t\t<input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; } # check accnum and bankname $sql = "SELECT bankname FROM bankacct WHERE bankname ='{$bankname}' AND accnum = '{$accnum}' AND type != 'cr' AND type != 'ptrl' AND div = '" . USER_DIV . "'"; $checkRslt = db_exec($sql) or errDie("Unable to select bank details from database.", SELF); $check = pg_numrows($checkRslt); if (!empty($check)) { return "<li class='err'>The Account with account number : {$accnum}, held at {$bankname} already exits.<p>\n\t\t\t<input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; } # Locations drop down $locs = array("loc" => "Local", "int" => "International"); $curr = getSymbol($fcid); // layout $confirm = "\n\t\t<h3>Add New Account to database</h3>\n\t\t<h4>Confirm entry</h4>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t<input type='hidden' name='key' value='write'>\n\t\t\t<input type='hidden' name='acctype' value='{$acctype}'>\n\t\t\t<input type='hidden' name='bankname' value='{$bankname}'>\n\t\t\t<input type='hidden' name='loc' value='{$loc}'>\n\t\t\t<input type='hidden' name='fcid' value='{$fcid}'>\n\t\t\t<input type='hidden' name='branchname' value='{$branchname}'>\n\t\t\t<input type='hidden' name='branchcode' value='{$branchcode}'>\n\t\t\t<input type='hidden' name='accname' value='{$accname}'>\n\t\t\t<input type='hidden' name='accnum' value='{$accnum}'>\n\t\t\t<input type='hidden' name='catid' value='{$catid}'>\n\t\t\t<input type='hidden' name='details' value='{$details}'>\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 Type</td>\n\t\t\t\t<td>{$acctype}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Bank Name</td>\n\t\t\t\t<td>{$bankname}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Type</td>\n\t\t\t\t<td>{$locs[$loc]}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Currency</td>\n\t\t\t\t<td>{$curr['symbol']} - {$curr['name']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Branch Name</td>\n\t\t\t\t<td>{$branchname}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Branch Code</td>\n\t\t\t\t<td>{$branchcode}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Account Name</td>\n\t\t\t\t<td>{$accname}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Account Number</td>\n\t\t\t\t<td>{$accnum}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Legder account</td>\n\t\t\t\t<td>{$glacc}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Details</td>\n\t\t\t\t<td>{$details}</td>\n\t\t\t</tr>\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='Write »'></td>\n\t\t\t</tr>\n\t\t</form>\n\t\t</table>\n\t\t<p>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Quick Links</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><a href='../core/acc-new2.php'>Add Ledger Account</a></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><a href='../main.php'>Main Menu</a></td>\n\t\t\t</tr>\n\t\t</table>"; return $confirm; }
function details($_POST, $error = "") { # get vars extract($_POST); # validate input require_lib("validate"); $v = new validate(); if (isset($quoid)) { $v->isOk($quoid, "num", 1, 20, "Invalid quote number."); } if (isset($deptid)) { $v->isOk($deptid, "num", 1, 20, "Invalid department number."); } # display errors, if any if ($v->isError()) { $errors = $v->getErrors(); foreach ($errors as $e) { $error .= "<li class='err'>{$e['msg']}</li>"; } $confirm .= "{$error}<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } if (!isset($quoid)) { // $quoid = create_dummy(2); $quoid = create_dummy($deptid); $stkerr = "0,0"; } if (!isset($done)) { $done = ""; } # Get quote info db_connect(); $sql = "SELECT * FROM pos_quotes WHERE quoid = '{$quoid}' AND div = '" . USER_DIV . "'"; $quoRslt = db_exec($sql) or errDie("Unable to get quote information"); if (pg_numrows($quoRslt) < 1) { return "<li class='err'>Quote Not Found</li>"; } $quo = pg_fetch_array($quoRslt); $cusname = $quo["cusname"]; $cusaddr = $quo["cusaddr"]; $telno = $quo["telno"]; $lead = $quo["lead"]; if (strlen($quo['ncdate']) < 1) { $ncdate_year = date("Y"); $ncdate_month = date("m", mktime(0, 0, 0, date("m"), date("d") + 5, date("Y"))); $ncdate_day = date("d", mktime(0, 0, 0, date("m"), date("d") + 5, date("Y"))); } else { $darr = explode("-", $quo['ncdate']); $ncdate_year = $darr['0']; $ncdate_month = $darr['1']; $ncdate_day = $darr['2']; } # check if quote has been printed if ($quo['accepted'] == "y") { $error = "<li class='err'> Error : Quote number <b>{$quoid}</b> has already been printed.</li>"; return $error; } # get department db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid = '{$quo['deptid']}' AND div = '" . USER_DIV . "'"; $deptRslt = db_exec($sql); if (pg_numrows($deptRslt) < 1) { $dept['deptname'] = "<li class='err'>Department not Found.</li>"; } else { $dept = pg_fetch_array($deptRslt); } # Get selected customer info db_connect(); /* --- Start Drop Downs --- */ # Select warehouse db_conn("exten"); $whs = "<select name='whidss[%%KEY%%]' onChange='javascript:document.form.submit();'>"; $sql = "SELECT * FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { return "<li class='err'> There are no Stores found in Cubit.</li>"; } else { $whs .= "<option value='-S' disabled selected>Select Store</option>"; while ($wh = pg_fetch_array($whRslt)) { $whs .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $whs .= "</select>"; # get sales people db_conn("exten"); $sql = "SELECT * FROM salespeople WHERE div = '" . USER_DIV . "' ORDER BY salesp ASC"; $salespRslt = db_exec($sql) or errDie("Unable to get sales people."); if (pg_numrows($salespRslt) < 1) { return "<li class='err'> There are no Sales People found in Cubit.</li>"; } else { $salesps = "<select name='salespn'>"; while ($salesp = pg_fetch_array($salespRslt)) { if ($salesp['salesp'] == $quo['salespn']) { $sel = "selected"; } else { $sel = ""; } $salesps .= "<option value='{$salesp['salesp']}' {$sel}>{$salesp['salesp']}</option>"; } $salesps .= "</select>"; } # days drop downs $days = array("0" => "0", "30" => "30", "60" => "60", "90" => "90", "120" => "120"); $termssel = extlib_cpsel("terms", $days, $quo['terms']); # Keep the charge vat option stable if ($quo['chrgvat'] == "inc") { $chin = "checked=yes"; $chex = ""; $chno = ""; } elseif ($quo['chrgvat'] == "exc") { $chin = ""; $chex = "checked=yes"; $chno = ""; } else { $chin = ""; $chex = ""; $chno = "checked=yes"; } # format date list($pquote_year, $pquote_month, $pquote_day) = explode("-", $quo['odate']); /* --- End Drop Downs --- */ // get the ID of the first warehouse, just when selecting from nons-product to new stock-product db_conn("exten"); $sql = "SELECT whid FROM warehouses ORDER BY whid ASC LIMIT 1"; $rslt = db_exec($sql) or errDie("Error reading warehouses (FWH)."); if (pg_num_rows($rslt) > 0) { $FIRST_WH = pg_fetch_result($rslt, 0, 0); } else { $FIRST_WH = "-S"; } /* --- Start Products Display --- */ # select all products $products = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<th>STORE</th>\n\t\t\t\t<th>ITEM NUMBER</th>\n\t\t\t\t<th>VAT CODE</th>\n\t\t\t\t<th>DESCRIPTION</th>\n\t\t\t\t<th>QTY</th>\n\t\t\t\t<th>UNIT PRICE</th>\n\t\t\t\t<th>UNIT DISCOUNT</th>\n\t\t\t\t<th>AMOUNT</th>\n\t\t\t\t<th>Remove</th>\n\t\t\t<tr>"; # get selected stock in this quote db_connect(); $sql = "SELECT * FROM pos_quote_items WHERE quoid = '{$quoid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $i = 0; $key = 0; $ai = 0; while ($stkd = pg_fetch_array($stkdRslt)) { $stkd['account'] += 0; if ($stkd['account'] != 0) { # Keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "\n\t\t\t\t<select name='accounts[{$ai}]'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } if ($ad['accid'] == $stkd['account']) { $sel = "selected"; } else { $sel = ""; } $Accounts .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>"; } $Accounts .= "</select>"; $sernos = ""; # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[{$ai}]' value='{$stkd['qty']}'>"; $viewcost = "<input type='text' size='8' name='unitcost[{$ai}]' value='{$stkd['unitcost']}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodes[{$ai}]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in product $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whids[{$ai}]' value='{$stkd['whid']}'></td>\n\t\t\t\t\t<td><input type='hidden' name='stkids[{$ai}]' value='{$stkd['stkid']}'>{$Vatcodes}</td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptions[{$ai}]' value='{$stkd['description']}'> {$sernos}</td>\n\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t<td><input type='hidden' name='disc[{$ai}]' value='{$stkd['disc']}'><input type='hidden' name='discp[{$ai}]' value='{$stkd['discp']}'></td>\n\t\t\t\t\t<td><input type='hidden' name='amt[{$ai}]' value='{$stkd['amt']}'> " . CUR . " {$stkd['amt']}</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[{$ai}]' value='{$key}'><input type='hidden' name='SCROLL' value='yes'></td>\n\t\t\t\t</tr>"; $key++; ++$ai; } else { # keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; # 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); # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$stk['whid']}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodes[{$ai}]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; //if($stk['serd'] == 'yes') // continue; # put in product $products .= "\n\t\t\t\t<input type='hidden' name='amt[{$ai}]' value='{$stkd['amt']}'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><input type='hidden' name='whids[{$ai}]' value='{$stkd['whid']}'>{$wh['whname']}</td>\n\t\t\t\t\t<td><input type='hidden' name='stkids[{$ai}]' value='{$stkd['stkid']}'><a href='#' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtys[{$ai}]' value='{$stkd['qty']}'></td>\n\t\t\t\t\t<td><input type='hidden' size='8' name='unitcost[{$ai}]' value='{$stkd['unitcost']}'>{$stkd['unitcost']}</td>\n\t\t\t\t\t<td><input type='text' size='4' name='disc[{$ai}]' value='{$stkd['disc']}'> OR <input type='text' size='4' name='discp[{$ai}]' value='{$stkd['discp']}' maxlength=5>%</td>\n\t\t\t\t\t<td>" . CUR . " {$stkd['amt']}</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[{$ai}]' value='{$key}'><input type='hidden' name='SCROLL' value='yes'></td>\n\t\t\t\t</tr>"; $key++; ++$ai; } } # Look above(remprod keys) $keyy = $key; # look above(if i = 0 then there are no products) if ($i == 0) { $done = ""; } # check if stock warehouse was selected if (isset($whidss)) { foreach ($whidss as $key => $whid) { if (!empty($stkidss[$key]) && $stkidss[$key] != "-S") { # skip if not selected if ($whid == "-S") { continue; } # get selected stock in this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE stkid = '{$stkidss[$key]}' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$stk['whid']}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); /* -- Start Some Checks -- */ # check if they are selling too much if ($stk['units'] - $stk['alloc'] < $qtyss[$key]) { if (!in_array($stk['stkid'], explode(",", $stkerr))) { if ($stk['type'] != 'lab') { $stkerr .= ",{$stk['stkid']}"; $error .= "<li class='err'>Warning : Item number <b>{$stk['stkcod']}</b> does not have enough items available.</li>"; } } } /* -- End Some Checks -- */ # Calculate the Discount discount if ($discs[$key] < 1) { if ($discps[$key] > 0) { $discs[$key] = round($discps[$key] / 100 * $stk['selamt'], 2); } } else { $discps[$key] = round($discs[$key] * 100 / $stk['selamt'], 2); } # Calculate amount $amt[$key] = $qtyss[$key] * ($stk['selamt'] - $discs[$key]); db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t<select name='vatcodes[{$ai}]'>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stk['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $amt[$key] = sprint($amt[$key]); $stk["selamt"] = sprint($stk["selamt"]); # put in selected warehouse and stock $products .= "\n\t\t\t\t\t<input type='hidden' size='8' name='unitcost[{$ai}]' value='{$stk['selamt']}'>\n\t\t\t\t\t<input type='hidden' name='accounts[{$ai}]' value=0>\n\t\t\t\t\t<input type='hidden' name='amt[{$ai}]' value='{$amt[$key]}'>\n\t\t\t\t\t<input type='hidden' name='descriptions[{$ai}]' value=''>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td><input type='hidden' name='whids[{$ai}]' value='{$whid}'>{$wh['whname']}</td>\n\t\t\t\t\t\t<td><input type='hidden' name='stkids[{$ai}]' value='{$stk['stkid']}'><a href='#' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t\t<td><input type='text' size='3' name='qtys[{$ai}]' value='{$qtyss[$key]}'></td>\n\t\t\t\t\t\t<td>{$stk['selamt']}</td>\n\t\t\t\t\t\t<td><input type='text' size='4' name='disc[{$ai}]' value='{$discs[$key]}'> OR <input type='text' size='4' name='discp[{$ai}]' value='{$discps[$key]}' maxlength='5'>%</td>\n\t\t\t\t\t\t<td>" . CUR . " {$amt[$key]}</td>\n\t\t\t\t\t\t<td><input type='checkbox' name='remprod[{$ai}]' value='{$keyy}'></td>\n\t\t\t\t\t</tr>"; $keyy++; ++$ai; } elseif (isset($accountss[$key]) && $accountss[$key] != "0") { db_conn('core'); $Sl = "SELECT * FROM accounts WHERE accid='{$accountss[$key]}'"; $Ri = db_exec($Sl) or errDie("Unable to get account data."); if (pg_num_rows($Ri) < 1) { return "invalid."; } $ad = pg_fetch_array($Ri); # Calculate amount $amt[$key] = sprint($qtyss[$key] * $unitcosts[$key]); # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[{$ai}]' value='{$qtyss[$key]}'>"; # Check permissions $viewcost = "<input type='text' size='8' name='unitcost[{$ai}]' value='{$unitcosts[$key]}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t<select name='vatcodes[{$ai}]'>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vatcodess[$key] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in selected warehouse and stock $products .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td colspan='2'>{$ad['accname']}<input type='hidden' name='accounts[{$ai}]' value='{$accountss[$key]}'><input type='hidden' name='whids[{$ai}]' value='0'></td>\n\t\t\t\t\t\t<td>{$Vatcodes}<input type='hidden' name='stkids[{$ai}]' value='0'></td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='descriptions[{$ai}]' value='{$descriptionss[$key]}'></td>\n\t\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t\t<td><input type='hidden' name='disc[{$ai}]' value='0'><input type='hidden' name='discp[{$ai}]' value='0'></td>\n\t\t\t\t\t\t<td><input type='hidden' name='amt[{$ai}]' value='{$amt[$key]}'> " . CUR . " {$amt[$key]}</td>\n\t\t\t\t\t\t<td><input type='checkbox' name='remprod[{$ai}]' value='{$keyy}'></td>\n\t\t\t\t\t</tr>"; $keyy++; ++$ai; } else { if ($whid == "-S") { continue; } if (!isset($addnon)) { if (isset($filter_store) and $filter_store != "0") { # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$filter_store}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); } if (isset($des) and $des != "") { $len = strlen($des); if ($des == "Show All") { $Wh = ""; $des = ""; } else { $Wh = "AND (lower(substr(stkdes,1,'{$len}'))=lower('{$des}') OR lower(substr(stkcod,1,'{$len}'))=lower('{$des}'))"; } } else { $Wh = "AND FALSE"; $des = ""; } $check_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($check_setting) and $check_setting == "yes") { if (isset($filter_class) and $filter_class != "0") { $Wh .= " AND prdcls = '{$filter_class}'"; } if (isset($filter_cat) and $filter_cat != "0") { $Wh .= " AND catid = '{$filter_cat}'"; } } if (isset($filter_store) and $filter_store != "0") { $Wh .= " AND whid = '{$filter_store}'"; } # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE blocked = 'n' AND div = '" . USER_DIV . "' {$Wh} ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { $error .= "<li class='err'>There are no stock items in the selected store.</li>"; continue; } if ($sel_frm == "stkcod") { $cods = "<select class='width:15' name='stkidss[{$ai}]' onChange='javascript:document.form.submit();'>"; $cods .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { //if($stk['serd'] == 'yes') // continue; $cods .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $cods .= "</select> "; $descs = ""; } else { $descs = "<select class='width:15' name='stkidss[{$ai}]' onChange='javascript:document.form.submit();'>"; $descs .= "<option value='-S' disabled selected>Select Description</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { //if($stk['serd'] == 'yes') // continue; $descs .= "<option value='{$stk['stkid']}'>{$stk['stkdes']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $descs .= "</select> "; $cods = ""; } # put in drop down and warehouse $products .= "\n\t\t\t\t\t\t<input type='hidden' name='accountss[{$ai}]' value='0'>\n\t\t\t\t\t\t<input type='hidden' name='descriptionss[{$ai}]' value=''>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td><input type='hidden' name='whidss[{$ai}]' value='{$filter_store}'></td>\n\t\t\t\t\t\t\t<td>{$cods}</td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td>{$descs}</td>\n\t\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[{$ai}]' value='1'></td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td><input type='text' size='4' name='discs[{$ai}]' value='0'> OR <input type='text' size='4' name='discps[{$ai}]' value='0' maxlength=5>%</td>\n\t\t\t\t\t\t\t<td><input type='hidden' name='amts[{$ai}]' value='0.00'>" . CUR . " 0.00</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t</tr>"; ++$ai; } else { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "\n\t\t\t\t\t\t<select name='accountss[{$ai}]'>\n\t\t\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $Accounts .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t\t<select name='vatcodess[{$ai}]'>\n\t\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whidss[{$ai}]' value='{$FIRST_WH}'></td>\n\t\t\t\t\t\t\t<input type='hidden' name='stkidss[{$ai}]' value='-S'>\n\t\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[{$ai}]'></td>\n\t\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[{$ai}]' value='1'></td>\n\t\t\t\t\t\t\t<td><input type='text' name='unitcosts[{$ai}]' size=7></td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t\t\t<td><input type='hidden' name='discs[{$ai}]' value='0'><input type='hidden' name='discps[{$ai}]' value='0' ></td>\n\t\t\t\t\t\t</tr>"; ++$ai; } } } } else { if (isset($addprodBtn) || !isset($addnon)) { if (isset($filter_store) and $filter_store != "0") { # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$filter_store}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); } if (isset($des) and $des != "") { $len = strlen($des); if ($des == "Show All") { $Wh = ""; $des = ""; } else { $Wh = "AND (lower(substr(stkdes,1,'{$len}'))=lower('{$des}') OR lower(substr(stkcod,1,'{$len}'))=lower('{$des}'))"; } } else { $Wh = "AND FALSE"; $des = ""; } $check_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($check_setting) and $check_setting == "yes") { if (isset($filter_class) and $filter_class != "0") { $Wh .= " AND prdcls = '{$filter_class}'"; } if (isset($filter_cat) and $filter_cat != "0") { $Wh .= " AND catid = '{$filter_cat}'"; } } if (isset($filter_store) and $filter_store != "0") { $Wh .= " AND whid = '{$filter_store}'"; } # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE blocked = 'n' AND div = '" . USER_DIV . "' {$Wh} ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { if (!isset($err)) { $err = ""; } $err .= "<li>There are no stock items in the selected warehouse.</li>"; } $stks = "\n\t\t\t\t<select name='stkidss[{$ai}]' onChange='javascript:document.form.submit();'>\n\t\t\t\t\t<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { //if($stk['serd'] == 'yes') // continue; $stks .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $stks .= "</select> "; $products .= "\n\t\t\t\t<input type='hidden' name='descriptionss[{$ai}]' value=''>\n\t\t\t\t<input type='hidden' name='vatcodess[{$ai}]' value=''>\n\t\t\t\t<input type='hidden' name='accountss[{$ai}]' value='0'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><input type='hidden' name='whidss[{$ai}]' value='{$filter_store}'></td>\n\t\t\t\t\t<td>{$stks}</td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtyss[{$ai}]' value='1'></td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td><input type='text' size='4' name='discs[{$ai}]' value='0'> OR <input type='text' size='4' name='discps[{$ai}]' value='0' maxlength='5'>%</td>\n\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t<td></td>\n\t\t\t\t</tr>"; ++$ai; } else { if (isset($addnon)) { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "\n\t\t\t\t<select name='accountss[{$ai}]'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $Accounts .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodess[{$ai}]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whidss[{$ai}]' value='{$FIRST_WH}'></td>\n\t\t\t\t\t<input type='hidden' name='stkidss[{$ai}]' value='-S'>\n\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[{$ai}]'></td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtyss[{$ai}]' value='1'></td>\n\t\t\t\t\t<td><input type='text' name='unitcosts[{$ai}]' size='7'></td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t<td><input type='hidden' name='discs[{$ai}]' value='0'><input type='hidden' name='discps[{$ai}]' value='0'></td>\n\t\t\t\t</tr>"; ++$ai; } } } $products .= "</table>"; /* --- End Products Display --- */ /* --- Start Some calculations --- */ # Calculate subtotal $SUBTOT = sprint($quo['subtot']); $VATP = TAX_VAT; # Calculate subtotal $SUBTOT = sprint($quo['subtot']); $VAT = sprint($quo['vat']); $TOTAL = sprint($quo['total']); /* --- End Some calculations --- */ /*--- Start checks --- */ # check only if the customer is selected if (isset($cusnum) && $cusnum != "-S") { db_connect(); # check credit limit (inclide unpaid quotes) $sql = "SELECT sum(balance) FROM invoices WHERE cusnum = '{$cusnum}' AND printed = 'y' AND balance <> 0 AND div = '" . USER_DIV . "'"; $rslt = db_exec($sql); $bal = pg_fetch_array($rslt); $credbal = $bal['sum']; #check againg credit limit if ($TOTAL + $credbal > $cust['credlimit']) { $error .= "<li class='err'>Warning : Customers Credit limit of <b>" . CUR . " {$cust['credlimit']}</b> has been exceeded</li>"; } $avcred = $cust['credlimit'] - $credbal; } else { $avcred = "0.00"; } $quo['delvat'] += 0; if ($quo['delvat'] == 0) { $Sl = "SELECT * FROM vatcodes WHERE del='Yes'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $vd = pg_fetch_array($Ri); $quo['delvat'] = $vd['id']; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t<select name='delvat'>\n\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['id'] == $quo['delvat']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } /*--- Start checks --- */ #attempt to get department db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid = '{$quo['deptid']}' AND div = '" . USER_DIV . "'"; $deptRslt = db_exec($sql); if (pg_numrows($deptRslt) < 1) { $dept['deptid'] = "<li class='err'>Department not Found.</li>"; $dept['deptid'] = "0"; } else { $dept = pg_fetch_array($deptRslt); } if (!isset($dept['deptid'])) { # Query server for depts db_conn("exten"); $sql = "SELECT * FROM departments WHERE div = '" . USER_DIV . "' ORDER BY deptname ASC"; $deptRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($deptRslt) < 1) { return "<li class='err'>There are no Departments found in Cubit.</li>"; } else { $depts = "<select id='deptid_sel' onChange='updateDept(this);'>"; $depts .= "<option value='0'>-- SELECT DEPARTMENT --</option>"; while ($dept = pg_fetch_array($deptRslt)) { $depts .= "<option value='{$dept['deptid']}'>{$dept['deptname']}</option>"; } $depts .= "</select>"; } $deptshow = $depts; $deptid = 0; } else { db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid='{$dept['deptid']}'"; $deptRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($deptRslt) > 0) { $dept = pg_fetch_array($deptRslt); $deptshow = $dept["deptname"]; } else { errDie("Invalid department selected."); } db_conn("cubit"); $sql = "UPDATE pos_quotes SET deptid='{$dept['deptid']}' WHERE quoid='{$quoid}' AND deptid<>'{$dept['deptid']}'"; $rslt = db_exec($sql) or errDie("Error updating department id."); } // Which display method was selected if (isset($sel_frm) && $sel_frm == "stkdes") { $sel_frm_cod = ""; $sel_frm_des = "checked"; } else { $sel_frm_cod = "checked"; $sel_frm_des = ""; } $sel = ""; if (isset($lead) and strlen($lead) > 0) { $sel = "checked=yes"; } if (!isset($old_customer_select)) { $old_customer_select = ""; } #get customers $get_cust = "SELECT cusnum, surname, vatnum, paddr1 FROM customers WHERE blocked = 'no' AND location = 'loc' ORDER BY cusname"; $run_cust = db_exec($get_cust) or errDie("Unable to get customer information."); if (pg_numrows($run_cust) < 1) { $cust_drop = "<input type='hidden' name='customer_select' value=''>No Customers Found."; } else { $cust_drop = "<select name='customer_select' onChange=\"document.form.submit();\">"; $cust_drop .= "<option value=''>Select Customer Or Enter Details</option>"; while ($carr = pg_fetch_array($run_cust)) { if (isset($customer_select) and $customer_select == $carr['cusnum']) { $cust_drop .= "<option value='{$carr['cusnum']}' selected>{$carr['surname']}</option>"; if ($old_customer_select != $customer_select) { $cusname = $carr['surname']; $cusaddr = $carr['paddr1']; $telno = $carr['vatnum']; } } else { $cust_drop .= "<option value='{$carr['cusnum']}'>{$carr['surname']}</option>"; } } $cust_drop .= "</select>"; } if (isset($addprodBtn) or isset($addnon) or isset($saveBtn) or isset($upBtn) or isset($doneBtn) or isset($des)) { $jump_bot = "\n\t\t\t<script>\n\t\t\t\twindow.location.hash='bottom';\n\t\t\t</script>"; } else { $jump_bot = ""; } $optional_filter_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($optional_filter_setting) and $optional_filter_setting == "yes") { db_connect(); $catsql = "SELECT catid, cat, catcod FROM stockcat WHERE div = '" . USER_DIV . "' ORDER BY cat ASC"; $catRslt = db_exec($catsql); if (pg_numrows($catRslt) < 1) { $cat_drop = "<input type='hidden' name='filter_cat' value='0'>"; } else { $cat_drop = "<select name='filter_cat'>"; $cat_drop .= "<option value='0'>All Categories</option>"; while ($cat = pg_fetch_array($catRslt)) { if (isset($filter_cat) and $filter_cat == $cat['catid']) { $cat_drop .= "<option value='{$cat['catid']}' selected>({$cat['catcod']}) {$cat['cat']}</option>"; } else { $cat_drop .= "<option value='{$cat['catid']}'>({$cat['catcod']}) {$cat['cat']}</option>"; } } $cat_drop .= "</select>"; } # Select classification $classsql = "SELECT * FROM stockclass WHERE div = '" . USER_DIV . "' ORDER BY classname ASC"; $clasRslt = db_exec($classsql); if (pg_numrows($clasRslt) < 1) { $class_drop = "<input type='hidden' name='filter_class' value='0'>"; } else { $class_drop = "<select name='filter_class' style='width: 167'>"; $class_drop .= "<option value='0'>All Classifications</option>"; while ($clas = pg_fetch_array($clasRslt)) { if (isset($filter_class) and $filter_class == $clas['clasid']) { $class_drop .= "<option value='{$clas['clasid']}' selected>{$clas['classname']}</option>"; } else { $class_drop .= "<option value='{$clas['clasid']}'>{$clas['classname']}</option>"; } } $class_drop .= "</select>"; } $display_optional_filters = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Select Category</td>\n\t\t\t\t<td>{$cat_drop}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Select Classification</td>\n\t\t\t\t<td>{$class_drop}</td>\n\t\t\t</tr>"; } db_conn("exten"); $sql = "SELECT whid, whname, whno FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { $store_drop = "<input type='hidden' name='filter_store' value='0'>"; } else { if (!isset($filter_store)) { # check if setting exists db_connect(); $sql = "SELECT value FROM set WHERE label = 'DEF_WH' AND div = '" . USER_DIV . "'"; $Rslt = db_exec($sql) or errDie("Unable to check database for existing settings."); if (pg_numrows($Rslt) > 0) { $set = pg_fetch_array($Rslt); $filter_store = $set['value']; } } $store_drop = "<select name='filter_store'>"; $store_drop .= "<option value='0'>All Stores</option>"; while ($wh = pg_fetch_array($whRslt)) { if (isset($filter_store) and $filter_store == $wh['whid']) { $store_drop .= "<option value='{$wh['whid']}' selected>({$wh['whno']}) {$wh['whname']}</option>"; } else { $store_drop .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $store_drop .= "</select>"; } $details = "\n\t\t<center>\n\t\t<h3>New POS Quote</h3>\n\t\t<script>\n\t\t\tfunction updateDept(seldept) {\n\t\t\t\tsel = seldept.options[seldept.selectedIndex];\n\t\t\t\tdocument.form.deptid.value = sel.value;\n\t\t\t\tgetObject('deptshow').innerHTML = sel.text;\n\t\t\t}\n\t\t</script>\n\t\t<form action='" . SELF . "' method='POST' id='quofrm' name='form'>\n\t\t\t<input type='hidden' name='key' value='update'>\n\t\t\t<input type='hidden' name='old_customer_select' value='{$customer_select}'>\n\t\t\t<input type='hidden' name='quoid' value='{$quoid}'>\n\t\t\t<input type='hidden' name='stkerr' value='{$stkerr}'>\n\t\t\t<input type='hidden' name='deptid' value='{$dept['deptid']}'>\n\t\t<table " . TMPL_tblDflts . " width='95%'>\n\t\t\t<tr>\n\t\t\t\t<td valign='top'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan='2'> Customer Details </th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Select Customer</td>\n\t\t\t\t\t\t\t<td>{$cust_drop}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Department</td>\n\t\t\t\t\t\t\t<td valign='center'><div id='deptshow'>{$deptshow}</div></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Customer</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='cusname' value='{$cusname}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td valign='top'>Customer Address</td>\n\t\t\t\t\t\t\t<td valign='center'><textarea name='cusaddr'>" . htmlspecialchars($cusaddr) . "</textarea></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td valign='top'>Contact Number</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' name='telno' value='{$telno}'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td valign='top'>Next Contact Date</td>\n\t\t\t\t\t\t\t<td valign='center'>" . mkDateSelect("ncdate", $ncdate_year, $ncdate_month, $ncdate_day) . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td valign='top'>Add As Lead</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='checkbox' name='lead' {$sel} value='yes'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Select Using</td>\n\t\t\t\t\t\t\t<td>Stock Code<input type='radio' name='sel_frm' value='stkcod' onChange='javascript:document.form.submit();' {$sel_frm_cod}><br>Stock Description<input type='radio' name='sel_frm' value='stkdes' onChange='javascript:document.form.submit();' {$sel_frm_des}></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan='2'>Additional Filters</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Select Store</td>\n\t\t\t\t\t\t\t<td>{$store_drop}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t{$display_optional_filters}\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Stock Filter</td>\n\t\t\t\t\t\t\t<td><input type='text' size='13' name='des' value='{$des}'> <input type='submit' value='Search'> <input type='submit' name='des' value='Show All'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t\t<td valign='top' align='right'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan='2'> POS Quote Details </th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>POS Quote No.</td>\n\t\t\t\t\t\t\t<td valign='center'>{$quo['quoid']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Order No.</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='ordno' value='{$quo['ordno']}'></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>VAT Inclusive</td>\n\t\t\t\t\t\t\t<td valign='center'>Yes <input type='radio' size='7' name='chrgvat' value='inc' {$chin}> No<input type='radio' size='7' name='chrgvat' value='exc' {$chex}> No Vat<input type='radio' size='7' name='chrgvat' value='nov' {$chno}></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>Terms</td>\n\t\t\t\t\t\t\t<td valign='center'>{$termssel} Days</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Sales Person</td>\n\t\t\t\t\t\t\t<td valign='center'>{$salesps}</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>Quote Date</td>\n\t\t\t\t\t\t\t<td valign='center'>" . mkDateSelect("pquote", $pquote_year, $pquote_month, $pquote_day) . "</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>Trade Discount</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='traddisc' value='{$quo['traddisc']}'>%</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>Delivery Charge</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='7' name='delchrg' value='{$quo['delchrg']}'>{$Vatcodes}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr><td><br></td></tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='2'>{$products}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>\n\t\t\t\t\t<p>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th width='25%'>Quick Links</th>\n\t\t\t\t\t\t\t<th width='25%'>Comments</th>\n\t\t\t\t\t\t\t<td rowspan='5' valign='top' width='50%'>{$error}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td class='" . bg_class() . "'><a href='pos-quote-new.php'>New POS Quote</a></td>\n\t\t\t\t\t\t\t<td class='" . bg_class() . "' rowspan='4' align='center' valign='top'><textarea name='comm' rows='4' cols='20'>{$quo['comm']}</textarea></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><a href='pos-quote-view.php'>View POS Quotes</a></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td><a href='main.php'>Main Menu</a></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t\t<td align='right'>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='80%'>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>SUBTOTAL</td>\n\t\t\t\t\t\t\t<td align='right'>" . CUR . " <input type=hidden name=SUBTOT value='{$SUBTOT}'>{$SUBTOT}</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>Trade Discount</td>\n\t\t\t\t\t\t\t<td align='right'>" . CUR . " {$quo['discount']}</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>Delivery Charge</td>\n\t\t\t\t\t\t\t<td align='right'>" . CUR . " {$quo['delivery']}</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><b>VAT {$vat14}</b></td>\n\t\t\t\t\t\t\t<td align='right'>" . CUR . " {$VAT}</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<th>GRAND TOTAL</th>\n\t\t\t\t\t\t\t<td align='right'>" . CUR . " {$TOTAL}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td align='right'><input name='addprodBtn' type='submit' value='Add Product'>| <input name='addnon' type='submit' value='Add Non stock Product'> | <input type='submit' name='saveBtn' value='Save'></td>\n\t\t\t\t<td> | <input type='submit' name='upBtn' value='Update'>{$done}</td>\n\t\t\t</tr>\n\t\t</table>\n\t\t<a name='bottom'>\n\t\t</form>\n\t\t</center>\n\t\t{$jump_bot}"; return $details; }
function details($_POST, $error = "") { extract($_POST); # validate input include "libs/validate.lib.php"; $v = new validate(); if (isset($sordid)) { $v->isOk($sordid, "num", 1, 20, "Invalid sales order number."); } if (isset($deptid)) { $v->isOk($deptid, "num", 1, 20, "Invalid department number."); } if (isset($letters)) { $v->isOk($letters, "string", 0, 5, "Invalid First 3 Letters."); } # display errors, if any if ($v->isError()) { $errors = $v->getErrors(); foreach ($errors as $e) { $error .= "<li class='err'>{$e['msg']}</li>"; } $confirm .= "{$error}<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } if (!isset($sordid)) { $sordid = create_dummy($deptid); $stkerr = "0,0"; } if (!isset($proforma)) { $proforma = ""; } if (!isset($done)) { $done = ""; } # Get Sales Order info db_connect(); $sql = "SELECT * FROM sorders WHERE sordid = '{$sordid}' AND div = '" . USER_DIV . "'"; $sordRslt = db_exec($sql) or errDie("Unable to get Sales Order information"); if (pg_numrows($sordRslt) < 1) { return "<li class='err'>Sales Order Not Found</li>"; } $sord = pg_fetch_array($sordRslt); # check if Sales Order has been printed if ($sord['accepted'] == "y") { $error = "<li class='err'> Error : Sales Order number <b>{$sordid}</b> has already been printed."; $error .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $error; } # get department db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid = '{$sord['deptid']}' AND div = '" . USER_DIV . "'"; $deptRslt = db_exec($sql); if (pg_numrows($deptRslt) < 1) { $dept['deptname'] = "<li class='err'>Department not Found.</li>"; } else { $dept = pg_fetch_array($deptRslt); } # Get selected customer info db_connect(); $sql = "SELECT * FROM customers WHERE cusnum = '{$sord['cusnum']}' AND div = '" . USER_DIV . "'"; $custRslt = db_exec($sql) or errDie("Unable to view customer"); if (pg_numrows($custRslt) < 1) { db_connect(); if ($deptid == "0") { $searchdept = ""; } else { $searchdept = "deptid = '{$sord['deptid']}' AND "; } # Query server for customer info $sql = "SELECT cusnum, cusname, surname FROM customers WHERE {$searchdept} location != 'int' AND lower(surname) LIKE lower('{$letters}%') AND div = '" . USER_DIV . "' ORDER BY surname"; $custRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($custRslt) < 1) { $err = "<li class='err'>No customer names starting with <b>{$letters}</b> in database.</li>"; return view_err($_POST, $err); } else { $customers = "<select name='cusnum' onChange='javascript:document.form.submit();'>"; $customers .= "<option value='-S' selected>Select Customer</option>"; while ($cust = pg_fetch_array($custRslt)) { $customers .= "<option value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']}</option>"; } $customers .= "</select>"; } # take care of the unset vars $cust['addr1'] = ""; $cust['cusnum'] = ""; $cust['vatnum'] = ""; $cust['accno'] = ""; } else { $cust = pg_fetch_array($custRslt); # moarn if customer account has been blocked if ($cust['blocked'] == 'yes') { return "<li class='err'>Error : Selected customer account has been blocked.</li>"; } $customers = "<input type='hidden' name='cusnum' value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']}"; $cusnum = $cust['cusnum']; } /* --- Start Drop Downs --- */ # Select warehouse db_conn("exten"); // $whs = "<select name='whidss[]' onChange='javascript:document.form.submit();'>"; $whs = "<select name='whidss[]'>"; $sql = "SELECT * FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { return "<li class='err'> There are no Stores found in Cubit.</li>"; } else { $whs .= "<option value='-S' disabled selected>Select Store</option>"; while ($wh = pg_fetch_array($whRslt)) { if (!user_in_store_team($wh["whid"], USER_ID)) { continue; } $whs .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $whs .= "</select>"; # get sales people db_conn("exten"); $sql = "SELECT * FROM salespeople WHERE div = '" . USER_DIV . "' ORDER BY salesp ASC"; $salespRslt = db_exec($sql) or errDie("Unable to get sales people."); if (pg_numrows($salespRslt) < 1) { return "<li class='err'> There are no Sales People found in Cubit.</li>"; } else { $salesps = "<select name='salespn'>"; while ($salesp = pg_fetch_array($salespRslt)) { if ($salesp['salesp'] == $sord['salespn']) { $sel = "selected"; } else { $sel = ""; } $salesps .= "<option value='{$salesp['salesp']}' {$sel}>{$salesp['salesp']}</option>"; } $salesps .= "</select>"; } # days drop downs $days = array("0" => "0", "7" => "7", "14" => "14", "30" => "30", "60" => "60", "90" => "90", "120" => "120"); $termssel = extlib_cpsel("terms", $days, $sord['terms']); # Keep the charge vat option stable if ($sord['chrgvat'] == "inc") { $chin = "checked=yes"; $chex = ""; $chno = ""; } elseif ($sord['chrgvat'] == "exc") { $chin = ""; $chex = "checked=yes"; $chno = ""; } else { $chin = ""; $chex = ""; $chno = "checked=yes"; } if ($sord["display_costs"] == "yes") { $dc_sel["yes"] = "checked"; $dc_sel["no"] = ""; } else { $dc_sel["yes"] = ""; $dc_sel["no"] = "checked"; } # format date list($sord_year, $sord_month, $sord_day) = explode("-", $sord['odate']); list($ddate_year, $ddate_month, $ddate_day) = explode("-", $sord["ddate"]); /* --- End Drop Downs --- */ // get the ID of the first warehouse db_conn("exten"); $sql = "SELECT whid FROM warehouses ORDER BY whid ASC LIMIT 1"; $rslt = db_exec($sql) or errDie("Error reading warehouses (FWH)."); if (pg_num_rows($rslt) > 0) { $FIRST_WH = pg_fetch_result($rslt, 0, 0); } else { $FIRST_WH = "-S"; } /* --- Start Products Display --- */ # select all products $products = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<th>STORE</th>\n\t\t\t\t<th>ITEM NUMBER</th>\n\t\t\t\t<th>VAT CODE</th>\n\t\t\t\t<th>DESCRIPTION</th>\n\t\t\t\t<th>QTY</th>\n\t\t\t\t<th>UNIT PRICE</th>\n\t\t\t\t<th>UNIT DISCOUNT</th>\n\t\t\t\t<th>AMOUNT</th>\n\t\t\t\t<th>Remove</th>\n\t\t\t</tr>"; # get selected stock in this Sales Order db_connect(); $sql = "SELECT * FROM sorders_items WHERE sordid = '{$sordid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $i = 0; $key = 0; while ($stkd = pg_fetch_array($stkdRslt)) { $stkd['account'] += 0; if ($stkd['account'] != 0) { # Keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; $Accounts = "\n\t\t\t\t<select name='accounts[]'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; $useaccdrop = getCSetting("USE_NON_STOCK_ACCOUNTS"); if (isset($useaccdrop) and $useaccdrop == "yes") { db_connect(); $acc_sql = "SELECT * FROM non_stock_account_list ORDER BY accname"; $run_acc = db_exec($acc_sql) or errDie("Unable to get account information."); if (pg_numrows($run_acc) > 0) { while ($acc = pg_fetch_array($run_acc)) { if ($acc['accid'] == $stkd['account']) { $Accounts .= "<option value='{$acc['accid']}' selected>{$acc['accname']}</option>"; } else { $Accounts .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } } $Accounts .= "</select>"; } } else { db_conn('core'); $Sl = "SELECT accid, topacc, accnum, accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } if ($ad['accid'] == $stkd['account']) { $sel = "selected"; } else { $sel = ""; } $Accounts .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>"; } $Accounts .= "</select>"; } $sernos = ""; # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[]' value='{$stkd['qty']}'>"; $stkd['unitcost'] = sprint($stkd['unitcost']); $viewcost = "<input type='text' size='8' name='unitcost[]' value='{$stkd['unitcost']}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodes[]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $stkd['amt'] = sprint($stkd['amt']); # Put in product $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>\n\t\t\t\t\t\t{$Accounts}\n\t\t\t\t\t\t<input type='hidden' name='whids[]' value='{$stkd['whid']}'>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td><input type='hidden' name='stkids[]' value='{$stkd['stkid']}'>{$Vatcodes}</td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptions[]' value='{$stkd['description']}'> {$sernos}</td>\n\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t<td><input type='hidden' name='disc[]' value='{$stkd['disc']}'><input type='hidden' name='discp[]' value='{$stkd['discp']}'></td>\n\t\t\t\t\t<td nowrap><input type='hidden' name='amt[]' value='{$stkd['amt']}'> " . CUR . " {$stkd['amt']}</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$key}'><input type='hidden' name='SCROLL' value='yes'></td>\n\t\t\t\t</tr>"; $key++; } else { # keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; # 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); # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$stk['whid']}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodes[]'>"; //<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $stkd['unitcost'] = sprint($stkd['unitcost']); $stkd['amt'] = sprint($stkd['amt']); // $sql = "SELECT * FROM manufact.jobcards WHERE recipe!='yes' AND completion!='1'"; // $job_rslt = db_exec($sql) or errDie("Unable to retrieve jobs."); // // $job_sel = "<select name='job_id[]' style='width: 100%'>"; // while ($job_data = pg_fetch_array($job_rslt)) { // if ($stkd["jobcard_id"] == $job_data["id"]) { // $sel = "selected"; // } else { // $sel = ""; // } // // $job_sel .= "<option value='$job_data[id]' $sel> // $job_data[id] $job_data[description] // </option>"; // } // $job_sel .= "</select>"; // <tr> // <td bgcolor='#ff0000' width='10%'> // $job_sel<br /> // <input type='submit' name='pur[]' value='Add To Purchase Resource Planning'> // </td> // </tr> // rowspan='2' # put in product $products .= "\n\t\t\t\t<input type='hidden' name='accounts[]' value='0'>\n\t\t\t\t<input type='hidden' name='descriptions[]' value=''>\n\t\t\t\t<input type='hidden' name='amt[]' value='{$stkd['amt']}'>\n\t\t\t\t<input type='hidden' name='pqty[{$stk['stkid']}]' value='{$stkd['qty']}' />\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><input type='hidden' name='whids[]' value='{$stkd['whid']}'>{$wh['whname']}</td>\n\t\t\t\t\t<td><input type='hidden' name='stkids[]' value='{$stkd['stkid']}'><a href='#' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtys[]' value='{$stkd['qty']}'></td>\n\t\t\t\t\t<td><input type='text' size='8' name='unitcost[]' value='{$stkd['unitcost']}'></td>\n\t\t\t\t\t<td><input type='text' size='4' name='disc[]' value='{$stkd['disc']}'> OR <input type='text' size='4' name='discp[]' value='{$stkd['discp']}' maxlength=5>%</td>\n\t\t\t\t\t<td>" . CUR . " {$stkd['amt']}</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$key}'><input type='hidden' name='SCROLL' value='yes'></td>\n\t\t\t\t</tr>"; $key++; } } # Look above(remprod keys) $keyy = $key; # look above(if i = 0 then there are no products) if ($i == 0) { $done = ""; } #get negative stock setting $neg_setting = getCsetting("SORDER_NEG_STOCK"); if (!isset($neg_setting) or strlen($neg_setting) < 1) { $neg_setting = "yes"; } if ($neg_setting == "yes") { $search_neg_stock = ""; } else { $search_neg_stock = " AND (units > 0) "; } # check if stock warehouse was selected if (isset($whidss)) { foreach ($whidss as $key => $whid) { if (isset($stkidss[$key]) && $stkidss[$key] != "-S" && isset($cust['pricelist'])) { # skip if not selected if ($whid == "-S") { continue; } # get selected stock in this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE stkid = '{$stkidss[$key]}' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$stk['whid']}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); # get price from price list if it is set if (isset($cust['pricelist'])) { # get selected stock in this warehouse db_conn("exten"); $sql = "SELECT price FROM plist_prices WHERE listid = '{$cust['pricelist']}' AND stkid = '{$stk['stkid']}' AND div = '" . USER_DIV . "'"; $plRslt = db_exec($sql); if (pg_numrows($plRslt) > 0) { $pl = pg_fetch_array($plRslt); $stk['selamt'] = $pl['price']; } } /* -- Start Some Checks -- */ # check if they are selling too much if ($stk['units'] - $stk['alloc'] < $qtyss[$key]) { if (!in_array($stk['stkid'], explode(",", $stkerr))) { if ($stk['type'] != 'lab') { $stkerr .= ",{$stk['stkid']}"; $error .= "<li class='err'>Warning : Item number <b>{$stk['stkcod']}</b> does not have enough items available.</li>"; } } } /* -- End Some Checks -- */ # Calculate the Discount discount if ($discs[$key] < 1) { if ($discps[$key] > 0) { $discs[$key] = round($discps[$key] / 100 * $stk['selamt'], 2); } } else { $discps[$key] = round($discs[$key] * 100 / $stk['selamt'], 2); } # Calculate amount $amt[$key] = $qtyss[$key] * ($stk['selamt'] - $discs[$key]); db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t<select name='vatcodes[]'>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stk['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $amt[$key] = sprint($amt[$key]); $stk['selamt'] = sprint($stk['selamt']); # put in selected warehouse and stock $products .= "\n\t\t\t\t\t<input type='hidden' name='accounts[]' value='0'>\n\t\t\t\t\t<input type='hidden' name='descriptions[]' value=''>\n\t\t\t\t\t<input type='hidden' name='whids[]' value='{$whid}'>\n\t\t\t\t\t<input type='hidden' name='stkids[]' value='{$stk['stkid']}'>\n\t\t\t\t\t<input type='hidden' name='amt[]' value='{$amt[$key]}'>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>{$wh['whname']}</td>\n\t\t\t\t\t\t<td><a href='#' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t\t<td><input type='text' size='3' name='qtys[]' value='{$qtyss[$key]}'></td>\n\t\t\t\t\t\t<td><input type='text' size='8' name='unitcost[]' value='{$stk['selamt']}'></td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type='text' size='4' name='disc[]' value='{$discs[$key]}'>\n\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t<input type='text' size='4' name='discp[]' value='{$discps[$key]}' maxlength=5>%\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td nowrap>" . CUR . " {$amt[$key]}</td>\n\t\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$keyy}'></td>\n\t\t\t\t\t</tr>"; $keyy++; } else { if (isset($accountss[$key]) && $accountss[$key] != "0" && isset($cust['pricelist'])) { db_conn('core'); $Sl = "SELECT * FROM accounts WHERE accid='{$accountss[$key]}'"; $Ri = db_exec($Sl) or errDie("Unable to get account data."); if (pg_num_rows($Ri) < 1) { return "invalid."; } $ad = pg_fetch_array($Ri); # Calculate amount $amt[$key] = sprint($qtyss[$key] * $unitcosts[$key]); # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[]' value='{$qtyss[$key]}'>"; # Check permissions $unitcosts[$key] = sprint($unitcosts[$key]); $viewcost = "<input type='text' size='8' name='unitcost[]' value='{$unitcosts[$key]}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t<select name='vatcodes[]'>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vatcodess[$key] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $amt[$key] = sprint($amt[$key]); # Put in selected warehouse and stock $products .= "\n\t\t\t\t\t<input type='hidden' name='accounts[]' value='{$accountss[$key]}'>\n\t\t\t\t\t<input type='hidden' name='whids[]' value='0'>\n\t\t\t\t\t<input type='hidden' name='stkids[]' value='0'>\n\t\t\t\t\t<input type='hidden' name='disc[]' value='0'>\n\t\t\t\t\t<input type='hidden' name='discp[]' value='0'>\n\t\t\t\t\t<input type='hidden' name='amt[]' value='{$amt[$key]}'>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td colspan='2'>{$ad['accname']}</td>\n\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='descriptions[]' value='{$descriptionss[$key]}'></td>\n\t\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t<td nowrap> " . CUR . " {$amt[$key]}</td>\n\t\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$keyy}'></td>\n\t\t\t\t\t</tr>"; $keyy++; } else { # skip if not selected if ($whid == "-S") { continue; } if (!isset($addnon)) { if (isset($filter_store) and $filter_store != "0") { # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$filter_store}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); } # get stock on this warehouse db_connect(); if (isset($ria) and $ria != "") { $len = strlen($ria); if ($ria == "Show All") { $Wh = ""; $ria = ""; } else { $Wh = "AND (lower(stkdes) LIKE lower('%{$ria}%')) OR (lower(stkcod) LIKE lower('%{$ria}%'))"; $ria = ""; } } else { $Wh = "AND FALSE"; $ria = ""; } $check_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($check_setting) and $check_setting == "yes") { if (isset($filter_class) and $filter_class != "0") { $Wh .= " AND prdcls = '{$filter_class}'"; } if (isset($filter_cat) and $filter_cat != "0") { $Wh .= " AND catid = '{$filter_cat}'"; } } if (isset($filter_store) and $filter_store != "0") { $Wh .= " AND whid = '{$filter_store}'"; } $sql = "SELECT * FROM stock WHERE blocked = 'n' {$search_neg_stock} AND div = '" . USER_DIV . "' {$Wh} ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { $error .= "<li class='err'>There are no stock items in the selected store.</li>"; continue; } if ($sel_frm == "stkcod") { $cods = "<select name='stkidss[]' onChange='javascript:document.form.submit();'>"; $cods .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $cods .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $cods .= "</select> "; $descs = ""; } else { $descs = "<select style='width:250px' name='stkidss[]' onChange='javascript:document.form.submit();'>"; $descs .= "<option value='-S' disabled selected>Select Description</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $descs .= "<option value='{$stk['stkid']}'>{$stk['stkdes']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $descs .= "</select> "; $cods = ""; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t\t<select name='vatcodess[]'>\n\t\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # put in drop down and warehouse $products .= "\n\t\t\t\t\t\t<input type='hidden' name='accountss[]' value='0'>\n\t\t\t\t\t\t<input type='hidden' name='descriptionss[]' value=''>\n\t\t\t\t\t\t<input type='hidden' name='whidss[]' value='{$filter_store}'>\n\t\t\t\t\t\t<input type='hidden' name='amts[]' value='0.00'>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td>{$cods}<input type='hidden' name='vatcodess' value='0'></td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td>{$descs}</td>\n\t\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t" . CUR . " <input type='text' size='4' name='discs[]' value='0'>\n\t\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t\t<input type='text' size='4' name='discps[]' value='0' maxlength='5'>%\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t</tr>"; } else { $Accounts = "\n\t\t\t\t\t\t<select name='accountss[]'>\n\t\t\t\t\t\t\t<option value='0'>Select Account</option>"; $useaccdrop = getCSetting("USE_NON_STOCK_ACCOUNTS"); if (isset($useaccdrop) and $useaccdrop == "yes") { db_connect(); $acc_sql = "SELECT * FROM non_stock_account_list ORDER BY accname"; $run_acc = db_exec($acc_sql) or errDie("Unable to get account information."); if (pg_numrows($run_acc) > 0) { while ($acc = pg_fetch_array($run_acc)) { $Accounts .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } $Accounts .= "</select>"; } } else { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $Accounts .= "</select>"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t\t<select name='vatcodess[]'>\n\t\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "\n\t\t\t\t\t\t<input type='hidden' name='whidss[]' value='{$FIRST_WH}'>\n\t\t\t\t\t\t<inpu type='hidden' name='stkidss[]' value=''>\n\t\t\t\t\t\t<input type='hidden' name='discs[]' value='0'>\n\t\t\t\t\t\t<input type='hidden' name='discps[]' value='0' >\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td colspan='2'>{$Accounts}</td>\n\t\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[]'></td>\n\t\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t\t\t<td><input type='text' name='unitcosts[]' size='7'></td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t</tr>"; } } } } } else { if (!isset($addnon)) { if (isset($filter_store) and $filter_store != "0") { # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$filter_store}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); } # get stock on this warehouse db_connect(); if (isset($ria) and $ria != "") { $len = strlen($ria); if ($ria == "Show All") { $Wh = ""; $ria = ""; } else { $Wh = "AND (lower(stkdes) LIKE lower('%{$ria}%')) OR (lower(stkcod) LIKE lower('%{$ria}%'))"; $ria = ""; } } else { $Wh = "AND FALSE"; $ria = ""; } $check_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($check_setting) and $check_setting == "yes") { if (isset($filter_class) and $filter_class != "0") { $Wh .= " AND prdcls = '{$filter_class}'"; } if (isset($filter_cat) and $filter_cat != "0") { $Wh .= " AND catid = '{$filter_cat}'"; } } if (isset($filter_store) and $filter_store != "0") { $Wh .= " AND whid = '{$filter_store}'"; } $sql = "SELECT * FROM stock WHERE blocked = 'n' {$search_neg_stock} AND div = '" . USER_DIV . "' {$Wh} ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { if (!isset($err)) { $err = ""; } $err .= "<li>There are no stock items in the selected warehouse.</li>"; } $stks = "<select name='stkidss[]' onChange='javascript:document.form.submit();'>"; $stks .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $stks .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $stks .= "</select> "; $products .= "\n\t\t\t\t<input type='hidden' name='accountss[]' value='0'>\n\t\t\t\t<input type='hidden' name='descriptionss[]' value=''>\n\t\t\t\t<input type='hidden' name='vatcodess[]' value=''>\n\t\t\t\t<input type='hidden' name='whidss[]' value='{$filter_store}'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td>{$stks}</td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input type='text' size='4' name='discs[]' value='0'>\n\t\t\t\t\t\tOR\n\t\t\t\t\t\t<input type='text' size='4' name='discps[]' value='0' maxlength='5'>%</td>\n\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t</tr>"; } else { if (isset($addnon)) { $Accounts = "\n\t\t\t\t<select name='accountss[]'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; $useaccdrop = getCSetting("USE_NON_STOCK_ACCOUNTS"); if (isset($useaccdrop) and $useaccdrop == "yes") { db_connect(); $acc_sql = "SELECT * FROM non_stock_account_list ORDER BY accname"; $run_acc = db_exec($acc_sql) or errDie("Unable to get account information."); if (pg_numrows($run_acc) > 0) { while ($acc = pg_fetch_array($run_acc)) { $Accounts .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } $Accounts .= "</select>"; } } else { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $Accounts .= "</select>"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodess[]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "\n\t\t\t\t<inpu type='hidden' name='stkidss[]' value=''>\n\t\t\t\t<input type='hidden' name='whidss[]' value='{$FIRST_WH}'>\n\t\t\t\t<input type='hidden' name='discs[]' value='0'>\n\t\t\t\t<input type='hidden' name='discps[]' value='0' >\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>{$Accounts}</td>\n\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[]'></td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t<td><input type='text' name='unitcosts[]' size='7'></td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t</tr>"; } } } // $products .= "</table>"; /* --- End Products Display --- */ /* --- Start Some calculations --- */ # Calculate subtotal $SUBTOT = sprint($sord['subtot']); # Calculate tradediscm if ($sord['traddisc'] > 0) { $traddiscm = sprint($sord['traddisc'] / 100 * ($SUBTOT + $sord['delchrg'])); } else { $traddiscm = "0.00"; } $VATP = TAX_VAT; # Calculate subtotal $SUBTOT = sprint($sord['subtot']); $VAT = sprint($sord['vat']); $TOTAL = sprint($sord['total']); $sord['delchrg'] = sprint($sord['delchrg']); /* --- End Some calculations --- */ /*--- Start checks --- */ # check only if the customer is selected if (isset($cusnum) && $cusnum != "-S") { #check againg credit limit if ($cust['credlimit'] != 0 && $TOTAL + $cust['balance'] > $cust['credlimit']) { $error .= "<li class='err'>Warning : Customers Credit limit of <b>" . CUR . " {$cust['credlimit']}</b> has been exceeded:</li>"; } $avcred = $cust['credlimit'] - $cust['balance']; } else { $avcred = "0.00"; } /*--- Start checks --- */ if (!isset($letters)) { $letters = ""; } $sord['delvat'] += 0; if ($sord['delvat'] == 0) { $Sl = "SELECT * FROM vatcodes WHERE del='Yes'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $vd = pg_fetch_array($Ri); $sord['delvat'] = $vd['id']; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t<select name='delvat'>\n\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['id'] == $sord['delvat']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } $psel1 = ""; $psel2 = ""; if (isset($proforma) and $proforma == "yes") { $psel1 = "checked=yes"; } else { $psel2 = "checked=yes"; } if ($proforma == "yes") { #generate a unique id IF it hasnt been done yet if (!isset($pinvnum) or $pinvnum == 0) { pglib_transaction("BEGIN") or errDie("Could not start database transaction"); #get unique id $get_uni = "INSERT INTO unique_id (entry) VALUES ('value')"; $run_uni = db_exec($get_uni) or errDie("Unable to get unique id"); $pinvnum = pglib_lastid("unique_id", "id"); $rem_sql = "DELETE FROM unique_id WHERE id = '{$pinvnum}'"; $run_rem = db_exec($rem_sql) or errDie("Unable to remove unique id check"); #further check to see if an invoice has this is should be done here... pglib_transaction("COMMIT") or errDie("Could not commit database transaction"); } $getpinvnum = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Proforma Invoice Number</td>\n\t\t\t\t<td><input type='hidden' name='pinvnum' value='{$pinvnum}'>{$pinvnum}</td>\n\t\t\t</tr>"; } else { $getpinvnum = "<input type='hidden' name='pinvnum' value='0'>"; } // Which display method was selected if (isset($sel_frm) && $sel_frm == "stkdes") { $sel_frm_cod = ""; $sel_frm_des = "checked"; } else { $sel_frm_cod = "checked"; $sel_frm_des = ""; } // Retrieve VAT Setting $sql = "SELECT value FROM cubit.settings WHERE constant='VAT_INC'"; $vatinc_rslt = db_exec($sql) or errDie("Unable to retrieve vat setting."); $vatinc = pg_fetch_result($vatinc_rslt, 0); if ($vatinc != "yes" && $vatinc != "no") { $vatinc = "no"; } if ($vatinc == 'yes') { $chrgvat = "inc"; } else { $chrgvat = "exc"; } if (isset($diffwhBtn) or isset($addprodBtn) or isset($addnon) or isset($saveBtn) or isset($upBtn) or isset($doneBtn) or isset($donePrnt) or isset($ria)) { $jump_bot = "\n\t\t\t<script>\n\t\t\t\twindow.location.hash='bottom';\n\t\t\t</script>"; } else { $jump_bot = ""; } $optional_filter_setting = getCSetting("OPTIONAL_STOCK_FILTERS"); if (isset($optional_filter_setting) and $optional_filter_setting == "yes") { db_connect(); $catsql = "SELECT catid, cat, catcod FROM stockcat WHERE div = '" . USER_DIV . "' ORDER BY cat ASC"; $catRslt = db_exec($catsql); if (pg_numrows($catRslt) < 1) { $cat_drop = "<input type='hidden' name='filter_cat' value='0'>"; } else { $cat_drop = "<select name='filter_cat'>"; $cat_drop .= "<option value='0'>All Categories</option>"; while ($cat = pg_fetch_array($catRslt)) { if (isset($filter_cat) and $filter_cat == $cat['catid']) { $cat_drop .= "<option value='{$cat['catid']}' selected>({$cat['catcod']}) {$cat['cat']}</option>"; } else { $cat_drop .= "<option value='{$cat['catid']}'>({$cat['catcod']}) {$cat['cat']}</option>"; } } $cat_drop .= "</select>"; } # Select classification $classsql = "SELECT * FROM stockclass WHERE div = '" . USER_DIV . "' ORDER BY classname ASC"; $clasRslt = db_exec($classsql); if (pg_numrows($clasRslt) < 1) { $class_drop = "<input type='hidden' name='filter_class' value='0'>"; } else { $class_drop = "<select name='filter_class' style='width: 167'>"; $class_drop .= "<option value='0'>All Classifications</option>"; while ($clas = pg_fetch_array($clasRslt)) { if (isset($filter_class) and $filter_class == $clas['clasid']) { $class_drop .= "<option value='{$clas['clasid']}' selected>{$clas['classname']}</option>"; } else { $class_drop .= "<option value='{$clas['clasid']}'>{$clas['classname']}</option>"; } } $class_drop .= "</select>"; } $display_optional_filters = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Select Category</td>\n\t\t\t\t<td>{$cat_drop}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Select Classification</td>\n\t\t\t\t<td>{$class_drop}</td>\n\t\t\t</tr>"; } db_conn("exten"); $sql = "SELECT whid, whname, whno FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { $store_drop = "<input type='hidden' name='filter_store' value='0'>"; } else { if (!isset($filter_store)) { # check if setting exists db_connect(); $sql = "SELECT value FROM set WHERE label = 'DEF_WH' AND div = '" . USER_DIV . "'"; $Rslt = db_exec($sql) or errDie("Unable to check database for existing settings."); if (pg_numrows($Rslt) > 0) { $set = pg_fetch_array($Rslt); $filter_store = $set['value']; } } $store_drop = "<select name='filter_store'>"; $store_drop .= "<option value='0'>All Stores</option>"; while ($wh = pg_fetch_array($whRslt)) { if (isset($filter_store) and $filter_store == $wh['whid']) { $store_drop .= "<option value='{$wh['whid']}' selected>({$wh['whno']}) {$wh['whname']}</option>"; } else { $store_drop .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $store_drop .= "</select>"; } $cust_del_addr = $sord['del_addr']; $details = "\n\t\t<center>\n\t\t<h3>New Sales Order</h3>\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='key' value='update'>\n\t\t\t<input type='hidden' name='sordid' value='{$sordid}'>\n\t\t\t<input type='hidden' name='letters' value='{$letters}'>\n\t\t\t<input type='hidden' name='stkerr' value='{$stkerr}'>\n\t\t\t<input type='hidden' name='chrgvat' value='{$chrgvat}' />\n\t\t<table " . TMPL_tblDflts . " width='95%'>\n\t\t\t\t<tr>\n\t\t\t\t<td valign='top'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan='2'> Customer Details </th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Department</td>\n\t\t\t\t\t\t\t<td valign='center'>{$dept['deptname']}</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>Account No.</td>\n\t\t\t\t\t\t\t<td valign='center'>{$cust['accno']}</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>Customer</td>\n\t\t\t\t\t\t\t<td valign='center'>{$customers}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td valign='top'>Customer Address</td>\n\t\t\t\t\t\t\t<td valign='center'>" . nl2br($cust['addr1']) . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td valign='top'>Current Delivery Address</td>\n\t\t\t\t\t\t\t<td valign='center'>" . nl2br($cust_del_addr) . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td valign='top'>Delivery Address</td>\n\t\t\t\t\t\t\t<td valign='center'>\n\t\t\t\t\t\t\t\t<input type='button' onClick=\"\n\t\t\t\t\t\t\t\t\tvar windowReference;\n\t\t\t\t\t\t\t\t\tfunction openPopup() {\n\t\t\t\t\t\t\t\t\t\twindowReference = window.open('sorder-new-deladdr.php?sordid={$sordid}','windowName','width=500,height=400,status=1');\n\t\t\t\t\t\t\t\t\t\tif (!windowReference.opener)\n\t\t\t\t\t\t\t\t\t\t\twindowReference.opener = self;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\topenPopup();\" value='Change Delivery Address'>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Customer Order number</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='10' name='cordno' value='{$sord['cordno']}'></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>Customer VAT Number</td>\n\t\t\t\t\t\t\t<td>{$cust['vatnum']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Select Using</td>\n\t\t\t\t\t\t\t<td>Stock Code<input type='radio' name='sel_frm' value='stkcod' onChange='javascript:document.form.submit();' {$sel_frm_cod}><br>Stock Description<input type='radio' name='sel_frm' value='stkdes' onChange='javascript:document.form.submit();' {$sel_frm_des}></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan='2'>Additional Filters</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Select Store</td>\n\t\t\t\t\t\t\t<td>{$store_drop}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t{$display_optional_filters}\n\t\t\t\t\t\t<tr class='" . bg_class() . "' " . ass("Type the first letters of the stock code you are looking for.") . ">\n\t\t\t\t\t\t\t<td>Stock Filter</td>\n\t\t\t\t\t\t\t<td nowrap><input type='text' size='13' name='ria' value='{$ria}'> <input type='submit' value='Search'> <input type='submit' name='ria' value='Show All'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t\t<td valign='top' align='right'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan='2'> Sales Order Details </th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Sales Order No.</td>\n\t\t\t\t\t\t\t<td valign='center'>{$sord['sordid']}</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>Proforma Invoice</td>\n\t\t\t\t\t\t\t<td valign='center'>Yes <input type='radio' name='proforma' value='yes' {$psel1} onChange='javascript:document.form.submit();'> No <input type='radio' name='proforma' value='no' {$psel2} onChange='javascript:document.form.submit();'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t{$getpinvnum}\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Display Costs</td>\n\t\t\t\t\t\t\t<td>Yes <input type='radio' name='costs' value='yes' {$dc_sel['yes']}> No <input type='radio' name='costs' value='no' {$dc_sel['no']}></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Order No.</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='ordno' value='{$sord['ordno']}'></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>VAT Inclusive</td>\n\t\t\t\t\t\t\t<td valign='center'>Yes <input type='radio' size='7' name='chrgvat' value='inc' {$chin}> No<input type='radio' size='7' name='chrgvat' value='exc' {$chex}></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>Terms</td>\n\t\t\t\t\t\t\t<td valign='center'>{$termssel} Days</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Sales Person</td>\n\t\t\t\t\t\t\t<td valign='center'>{$salesps}</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>Sales Order Date</td>\n\t\t\t\t\t\t\t<td valign='center'>" . mkDateSelect("sord", $sord_year, $sord_month, $sord_day) . "</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>Delivery/Due Date</td>\n\t\t\t\t\t\t\t<td valign='center'>\n\t\t\t\t\t\t\t\t" . mkDateSelect("ddate", $ddate_year, $ddate_month, $ddate_day) . "</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>Available Credit</td>\n\t\t\t\t\t\t\t<td>" . CUR . " " . sprint($avcred) . "</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>Trade Discount</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='traddisc' value='{$sord['traddisc']}'>%</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>Delivery Charge</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='7' name='delchrg' value='{$sord['delchrg']}'>{$Vatcodes}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr>\n\t\t\t\t<td colspan='2'><table " . TMPL_tblDflts . ">{$products}</table></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>\n\t\t\t\t\t<p>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td rowspan='2'>" . mkQuickLinks(ql("sorder-view.php", "View Sales Orders"), ql("customers-new.php", "New Customer")) . "\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<th width='25%'>Comments</th>\n\t\t\t\t\t\t\t<td rowspan='5' valign='top' width='50%'>{$error}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td class='" . bg_class() . "' rowspan='4' align='center' valign='top'><textarea name='comm' rows='4' cols='20'>{$sord['comm']}</textarea></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t\t<td align='right'>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='80%'>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>SUBTOTAL</td>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " <input type='hidden' name='SUBTOT' value='{$SUBTOT}'>{$SUBTOT}</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>Trade Discount</td>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$sord['discount']}</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>Delivery Charge</td>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$sord['delivery']}</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><b>VAT {$vat14}</b>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$VAT}</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<th>GRAND TOTAL</th>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$TOTAL}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='2' align='center'><input name='addprodBtn' type='submit' value='Add Product'>| <input name='addnon' type='submit' value='Add Non stock Product'> | <input type='submit' name='saveBtn' value='Save'> | <input type='submit' name='upBtn' value='Update'>{$done}</td>\n\t\t\t</tr>\n\t\t</table>\n\t\t<a name='bottom'>\n\t\t</form>\n\t\t</center>\n\t\t{$jump_bot}"; return $details; }
function confirm($_POST) { # Get vars extract($_POST); # Redirect if must chrgvat if ($chrgvat == 'yes' && !isset($vataccid)) { return slctVatAcc($_POST); } if (isset($vatcode)) { $vatcode += 0; } else { $vatcode = 0; } if (isb($dtaccid)) { return "<li class='err'>You selected a main account.</li>" . slctacc($_POST); } if (isb($ctaccid)) { return "<li class='err'>You selected a main account.</li>" . slctacc($_POST); } # validate input require_lib("validate"); $v = new validate(); $v->isOk($ctaccid, "num", 1, 50, "Invalid Account to be Credited."); $v->isOk($dtaccid, "num", 1, 50, "Invalid Account to be Debited."); $v->isOk($refnum, "num", 1, 10, "Invalid Reference number."); $v->isOk($amount, "float", 1, 20, "Invalid Amount."); $v->isOk($details, "string", 0, 255, "Invalid Details."); $v->isOk($author, "string", 1, 30, "Invalid Authorising person name."); $datea = explode("-", $date); if (count($datea) == 3) { if (!checkdate($datea[1], $datea[0], $datea[2])) { $v->isOk($date, "num", 1, 1, "Invalid date."); } } else { $v->isOk($date, "num", 1, 1, "Invalid date."); } if ($chrgvat == 'yes') { $v->isOk($vataccid, "num", 1, 50, "Invalid VAT Account number."); $v->isOk($vatdedacc, "num", 1, 50, "Invalid VAT Deductable Account number."); $v->isOk($vatinc, "string", 1, 3, "Invalid vat inclusive selection."); } # display errors, if any if ($v->isError()) { $confirm = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirm .= "<li class='err'>" . $e["msg"] . "</li>"; } return details($_POST, $confirm); } if ($amount <= 0) { return details($_POST, "<li class='err'>Invalid Amount To Process.</li>"); } $dtaccRs = get("core", "*", "accounts", "accid", $dtaccid); $dtacc = pg_fetch_array($dtaccRs); $ctaccRs = get("core", "*", "accounts", "accid", $ctaccid); $ctacc = pg_fetch_array($ctaccRs); # show vat account if vat is charged if ($chrgvat == 'yes') { $vataccRs = get("core", "*", "accounts", "accid", $vataccid); $vatacc = pg_fetch_array($vataccRs); $vatin = ucwords($vatinc); $vataccnum = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>VAT Account</td>\n\t\t\t\t<td><input type='hidden' name='vataccid' value='{$vataccid}'><input type='hidden' name='vatdedacc' value='{$vatdedacc}'>{$vatacc['topacc']}/{$vatacc['accnum']} - {$vatacc['accname']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>VAT Inclusive</td>\n\t\t\t\t<td><input type='hidden' name='vatinc' value='{$vatinc}'>{$vatin}</td>\n\t\t\t</tr>"; } else { $vataccnum = ""; } $vat = ucwords($chrgvat); if ($vatcode > 0) { db_conn('cubit'); $Sl = "SELECT * FROM vatcodes WHERE id='{$vatcode}'"; $Ri = db_exec($Sl) or errDie("unable to get data."); $va = pg_fetch_array($Ri); $vd = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>VAT Code</td>\n\t\t\t\t<td>{$va['code']}</td>\n\t\t\t</tr>"; } else { $vd = ""; } $confirm = "\n\t\t<h3>Record Recurring Transaction</h3>\n\t\t<h4>Confirm entry</h4>\n\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t<input type='hidden' name='key' value='write'>\n\t\t\t<input type='hidden' name='vatcode' value='{$vatcode}'>\n\t\t\t<input type='hidden' name='dtaccid' value='{$dtaccid}'>\n\t\t\t<input type='hidden' name='ctaccid' value='{$ctaccid}'>\n\t\t\t<input type='hidden' name='dtaccname' value='{$dtacc['accname']}'>\n\t\t\t<input type='hidden' name='ctaccname' value='{$ctacc['accname']}'>\n\t\t\t<input type='hidden' name='date' value='{$date}'>\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='refnum' value='{$refnum}'>\n\t\t\t<input type='hidden' name='amount' value='{$amount}'>\n\t\t\t<input type='hidden' name='chrgvat' value='{$chrgvat}'>\n\t\t\t<input type='hidden' name='details' value='{$details}'>\n\t\t\t<input type='hidden' name='author' value='{$author}'>\n\t\t<table " . TMPL_tblDflts . " width='500'>\n\t\t\t<tr>\n\t\t\t\t<td width='50%'><h3>Debit</h3></td>\n\t\t\t\t<td width='50%'><h3>Credit</h3></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>{$dtacc['topacc']}/{$dtacc['accnum']} - {$dtacc['accname']}</td>\n\t\t\t\t<td>{$ctacc['topacc']}/{$ctacc['accnum']} - {$ctacc['accname']}</td>\n\t\t\t</tr>\n\t\t\t<tr><td><br></td></tr>\n\t\t\t<tr><td><br></td></tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Date</td>\n\t\t\t\t<td>{$date}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Reference number</td>\n\t\t\t\t<td>{$refnum}</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>" . CUR . " {$amount}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Charge VAT </td>\n\t\t\t\t<td>{$vat}</td>\n\t\t\t</tr>\n\t\t\t{$vataccnum}\n\t\t\t{$vd}\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Details</td>\n\t\t\t\t<td>{$details}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Authorising Person</td>\n\t\t\t\t<td>{$author}</td>\n\t\t\t</tr>\n\t\t\t<tr><td><br></td></tr>\n\t\t\t<tr>\n\t\t\t\t<td align='right'><input type='button' value='« Back' onClick='javascript:history.back()'></td>\n\t\t\t\t<td align='right'><input type='submit' value='Confirm Transaction »'></td>\n\t\t\t</tr>\n\t\t</form>\n\t\t</table>\n\t\t<p>\n\t\t<table border=0 cellpadding='2' cellspacing='1' width=15%>\n\t\t\t<tr>\n\t\t\t\t<th>Quick Links</th>\n\t\t\t</tr>\n\t\t\t<tr class='datacell'>\n\t\t\t\t<td align='center'><a href='../reporting/index-reports.php'>Financials</a></td>\n\t\t\t</tr>\n\t\t\t<tr class='datacell'>\n\t\t\t\t<td align='center'><a href='rectrans-view.php'>View Recurring Transactions</td>\n\t\t\t</tr>\n\t\t\t<tr class='datacell'>\n\t\t\t\t<td align='center'><a href='trans-new.php'>Journal Transactions</td>\n\t\t\t</tr>\n\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t</table>"; return $confirm; }
function cdetails($_GET) { $showvat = TRUE; # get vars extract($_GET); if (!isset($button) && isset($starting)) { return slct($_GET); } # validate input require_lib("validate"); $v = new validate(); $v->isOk($invid, "num", 1, 20, "Invalid Invoice number."); if (isset($ctyp) && $ctyp == 's') { $v->isOk($cusnum, "num", 1, 20, "Invalid customer number."); } elseif (isset($ctyp) && $ctyp == 'c') { $v->isOk($deptid, "num", 1, 20, "Invalid Department."); } # 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'>{$err}"; return $confirm; } if ($ctyp == "ac") { return acdetails($_GET); } # Get Invoice info db_connect(); $sql = "SELECT * FROM nons_invoices WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $invRslt = db_exec($sql) or errDie("Unable to get invoices information"); if (pg_numrows($invRslt) < 1) { return "<i class='err'>Not Found</i>"; } $inv = pg_fetch_array($invRslt); $details = ""; if ($ctyp == 's') { $sql = "SELECT * FROM customers WHERE cusnum = '{$cusnum}' AND div = '" . USER_DIV . "'"; $custRslt = db_exec($sql) or errDie("Unable to view customer"); $cust = pg_fetch_array($custRslt); $details = "\r\n\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<th colspan='2'> Customer Details </th>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<input type='hidden' name='cusnum' value='{$cusnum}'>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'>{$cust['cusname']} {$cust['surname']}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer Address</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'><pre>{$cust['addr1']}</pre></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer VAT Number</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'>{$cust['vatnum']}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer Order number</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'>{$inv['cordno']}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table>"; } elseif ($ctyp == 'c') { db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid = '{$deptid}'"; $deptRslt = db_exec($sql) or errDie("Unable to view customers"); $dept = pg_fetch_array($deptRslt); $details = "\r\n\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<th colspan='2'> Customer Details </th>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<input type='hidden' name='deptid' value='{$deptid}'>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'>{$inv['cusname']} </td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer Address</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'><pre>{$inv['cusaddr']}</pre></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer VAT Number</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'>{$inv['cusvatno']}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer Order number</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'>{$inv['cordno']}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table>"; } elseif ($ctyp == 'cb') { db_conn("cubit"); $sql = "SELECT * FROM bankacct WHERE bankid = '{$inv['accid']}'"; $deptRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($deptRslt) < 1) { $error = "<li class='err'> Bank not Found.</li>"; $confirm .= "{$error}<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } else { $dept = pg_fetch_array($deptRslt); $supacc = "{$dept['bankname']} - {$dept['accname']}({$dept['acctype']})"; } $details = "\r\n\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<th colspan='2'> Customer Details </th>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<input type='hidden' name='bankid' value='{$inv['accid']}'>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'>{$inv['cusname']} </td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer Address</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'><pre>{$inv['cusaddr']}</pre></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer VAT Number</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'>{$inv['cusvatno']}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Customer Order number</td>\r\n\t\t\t\t\t\t\t\t<td valign='center'>{$inv['cordno']}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t\t<td>Account</td>\r\n\t\t\t\t\t\t\t\t<td>{$supacc}</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table>"; } /* --- Start Products Display --- */ # Products layout $products = "\r\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<th width='5%'>#</th>\r\n\t\t\t\t\t\t\t<th width='55%'>DESCRIPTION</th>\r\n\t\t\t\t\t\t\t<th width='10%'>QTY</th>\r\n\t\t\t\t\t\t\t<th width='10%'>UNIT PRICE</th>\r\n\t\t\t\t\t\t\t<th width='10%'>AMOUNT</th>\r\n\t\t\t\t\t\t\t<th width='10%'>ACCOUNT</th>\r\n\t\t\t\t\t\t<tr>"; # get selected stock in this Invoice db_connect(); $sql = "SELECT * FROM nons_inv_items WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $i = 0; while ($stkd = pg_fetch_array($stkdRslt)) { $i++; // Check Tax Excempt db_conn("cubit"); $sql = "SELECT zero FROM vatcodes WHERE id='{$stkd['vatex']}'"; $zRslt = db_exec($sql) or errDie("Unable to retrieve vat code from Cubit."); $vatex = pg_fetch_result($zRslt, 0); if ($vatex == "Yes") { $ex = "#"; } else { $ex = ""; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes WHERE id='{$stkd['vatex']}'"; $Ri = db_exec($Sl); $vd = pg_fetch_array($Ri); if (TAX_VAT != $vd['vat_amount'] and $vd['vat_amount'] != "0.00") { $showvat = FALSE; } $stkacc = ""; core_connect(); $sql = "SELECT * FROM accounts WHERE div = '" . USER_DIV . "' ORDER BY accname ASC"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li>There are No accounts in Cubit.</li>"; } while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } if ($acc["accid"] == $stkd["accid"]) { $sel = "selected"; } else { $sel = ""; } $stkacc .= "<option value='{$acc['accid']}' {$sel}>{$acc['topacc']}/{$acc['accnum']} - {$acc['accname']}</option>"; } $stkacc .= "</select>"; # put in product $products .= "\r\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t<td align='center'>{$i}</td>\r\n\t\t\t\t\t\t\t<td>{$ex} {$stkd['description']}</td>\r\n\t\t\t\t\t\t\t<td>{$stkd['qty']}</td>\r\n\t\t\t\t\t\t\t<td>{$stkd['unitcost']}</td>\r\n\t\t\t\t\t\t\t<td nowrap>" . CUR . " {$stkd['amt']}</td>\r\n\t\t\t\t\t\t\t<td " . ass("Select the account you wish to Credit") . "><select name='stkaccs[{$stkd['id']}]'>{$stkacc}</td>\r\n\t\t\t\t\t\t</tr>"; } $products .= "</table>"; /* --- Start Some calculations --- */ # Get subtotal $SUBTOT = sprint($inv['subtot']); # Get Total $TOTAL = sprint($inv['total']); # Get vat $VAT = sprint($inv['vat']); /* --- End Some calculations --- */ # format date list($syear, $smon, $sday) = explode("-", $inv['odate']); if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } /* -- Final Layout -- */ $details = "\r\n\t<center>\r\n\t<h3>Non-Stock Invoice Details</h3>\r\n\t<form action='" . SELF . "' method='POST' name='form'>\r\n\t<input type='hidden' name='key' value='cconfirm'>\r\n\t<input type='hidden' name='invid' value={$invid}>\r\n\t<input type='hidden' name='ctyp' value={$ctyp}>\r\n\t<table " . TMPL_tblDflts . " width=95%>\r\n\t<tr><td valign='top'>\r\n\t\t{$details}\r\n\t</td><td valign='top' align='right'>\r\n\t\t<table " . TMPL_tblDflts . ">\r\n\t\t\t<tr><th colspan='2'> Non-Stock Invoice Details </th></tr>\r\n\t\t\t<tr class='bg-odd'><td>Non-Stock Invoice No.</td><td valign='center'>T {$inv['invid']}</td></tr>\r\n\t\t\t<tr class='bg-even'><td>Proforma Inv No.</td><td valign='center'>{$inv['docref']}</td></tr>\r\n\t\t\t<tr class='bg-odd'><td>Date</td><td valign='center'>{$sday}-{$smon}-{$syear}</td></tr>\r\n\t\t\t<tr class='bg-even'><td>VAT Inclusive</td><td valign='center'>{$inv['chrgvat']}</td></tr>\r\n\t\t\t<tr class='bg-odd'><td>Terms</td><td valign='center'>{$inv['terms']} Days</td></tr>\r\n\t\t</table>\r\n\t</td></tr>\r\n\t<tr><td><br></td></tr>\r\n\t<tr><td colspan='2'>\r\n\t{$products}\r\n\t</td></tr>\r\n\t<tr><td>\r\n\t\t<table " . TMPL_tblDflts . ">\r\n\t\t\t<tr><th width='40%'>Quick Links</th><th width='45%'>Remarks</th><td rowspan='5' valign='top' width='15%'><br></td></tr>\r\n\t\t\t<tr class='bg-odd'><td align='center'><a href='nons-invoice-new.php'>New Non-Stock Invoices</a></td><td class='bg-odd' rowspan=4 align=center valign=top>" . nl2br($inv['remarks']) . "</td></tr>\r\n\t\t\t<tr class='bg-odd'><td align='center'><a href='nons-invoice-view.php'>View Non-Stock Invoices</a></td></tr>\r\n\t\t\t<script>document.write(getQuicklinkSpecial());</script>\r\n\t\t</table>\r\n\t</td><td align='right'>\r\n\t\t<table " . TMPL_tblDflts . " width='80%'>\r\n\t\t\t<tr class='bg-odd'><td>SUBTOTAL</td><td align='right'>" . CUR . " {$inv['subtot']}</td></tr>\r\n\t\t\t<tr class='bg-odd'><td>VAT {$vat14}</td><td align='right'>" . CUR . " {$inv['vat']}</td></tr>\r\n\t\t\t<tr class='bg-even'><th>GRAND TOTAL</th><td align='right'>" . CUR . " {$inv['total']}</td></tr>\r\n\t\t</table>\r\n\t</td></tr>\r\n\t<tr><td align='right'><input type='submit' value='Confirm »'></td></tr>\r\n\t</table></form>\r\n\t</center>"; return $details; }
function details($_POST, $error = "") { extract($_POST); # validate input include "libs/validate.lib.php"; $v = new validate(); if (isset($calloutid)) { $v->isOk($calloutid, "num", 1, 20, "Invalid callout document number."); } if (isset($deptid)) { $v->isOk($deptid, "num", 1, 20, "Invalid department number."); } if (isset($letters)) { $v->isOk($letters, "string", 0, 5, "Invalid First 3 Letters."); } # display errors, if any if ($v->isError()) { $errors = $v->getErrors(); foreach ($errors as $e) { $error .= "<li class='err'>{$e['msg']}</li>"; } $confirm .= "{$error}<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } if (!isset($deptid)) { $deptid = 0; } else { if (isset($calloutid)) { db_conn("cubit"); $sql = "UPDATE callout_docs SET deptid='{$deptid}' WHERE calloutid='{$calloutid}' AND deptid<>'{$deptid}'"; db_exec($sql) or errDie("Error updating invoice department."); } } if (!isset($calloutid)) { db_conn("exten"); #only create dummy if needed resources are available ... $get_cpeople = "SELECT * FROM calloutpeople"; $run_cpeople = db_exec($get_cpeople) or errDie("Unable to get call out person information"); if (pg_numrows($run_cpeople) < 1) { return "\n\t\t\t\t<li class='err'>No Call out People Found. Please add at least one.</li>\n\t\t\t\t<br>\n\t\t\t\t<table border=0 cellpadding='2' cellspacing='1' width=15%>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Quick Links</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td><a href='toms/calloutp-add.php'>Add Call Out Person</a></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td><a href='main.php'>Main Menu</a></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>"; } db_connect(); $calloutid = create_dummy($deptid); } if (!isset($stkerr)) { $stkerr = "0,0"; } if (!isset($done)) { $done = ""; } # Get callout document info db_connect(); $sql = "SELECT * FROM callout_docs WHERE calloutid = '{$calloutid}' AND div = '" . USER_DIV . "'"; $docRslt = db_exec($sql) or errDie("Unable to get callout document information"); if (pg_numrows($docRslt) < 1) { return "<li class='err'>Callout Document Not Found</li>"; } $doc = pg_fetch_array($docRslt); # check if callout document has been printed if ($doc['accepted'] == "y") { $error = "<li class='err'> Error : Callout Document number <b>{$calloutid}</b> has already been printed.</li>"; $error .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $error; } # get department db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid = '{$doc['deptid']}' AND div = '" . USER_DIV . "'"; $deptRslt = db_exec($sql); if (pg_numrows($deptRslt) < 1) { $dept['deptname'] = "<li class='err'>Department not Found.</li>"; } else { $dept = pg_fetch_array($deptRslt); } # Get selected customer info if (isset($letters)) { db_connect(); $sql = "SELECT * FROM customers WHERE cusnum = '{$doc['cusnum']}' AND div = '" . USER_DIV . "'"; $custRslt = db_exec($sql) or errDie("Unable to view customer"); if (pg_numrows($custRslt) < 1) { db_connect(); if ($inv['deptid'] == 0) { $searchdept = ""; } else { $searchdept = "deptid = '{$doc['deptid']}' AND "; } # Query server for customer info $sql = "SELECT cusnum,cusname,surname FROM customers WHERE {$searchdept} location != 'int' AND lower(surname) LIKE lower('{$letters}%') AND div = '" . USER_DIV . "' ORDER BY surname"; $custRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($custRslt) < 1) { $ajax_err = "<li class='err'>No customer names starting with <b>{$letters}</b> in database.</li>"; //return view_err($_POST, $err); } else { $customers = "<select name='cusnum' onChange='javascript:document.form.submit();'>"; $customers .= "<option value='-S' selected>Select Customer</option>"; while ($cust = pg_fetch_array($custRslt)) { $customers .= "<option value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']}</option>"; } $customers .= "</select>"; } # take care of the unset vars $cust['addr1'] = ""; $cust['cusnum'] = ""; $cust['accno'] = ""; } else { $cust = pg_fetch_array($custRslt); # moarn if customer account has been blocked if ($cust['blocked'] == 'yes') { return "<li class='err'>Error : Selected customer account has been blocked.</li>"; } $customers = "<input type='hidden' name='cusnum' value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']}"; $cusnum = $cust['cusnum']; } } /* --- Start Drop Downs --- */ # Select warehouse db_conn("exten"); $whs = "<select name='whidss[]' onChange='javascript:document.form.submit();'>"; $sql = "SELECT * FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { return "<li class='err'> There are no Stores found in Cubit.</li>"; } else { $whs .= "<option value='-S' disabled selected>Select Store</option>"; while ($wh = pg_fetch_array($whRslt)) { $whs .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $whs .= "</select>"; # get callout people db_conn("exten"); $sql = "SELECT * FROM calloutpeople WHERE div = '" . USER_DIV . "' ORDER BY calloutp ASC"; $run_sql = db_exec($sql) or errDie("Unable to get call out people from system."); if (pg_numrows($run_sql) < 1) { return "<li class='err'> There were no Call Out People found.</li>"; } else { $calloutps = "<select name='calloutp'>"; while ($arr = pg_fetch_array($run_sql)) { if ($doc['calloutp'] == $arr['calloutp']) { $calloutps .= "<option value='{$arr['calloutp']}' selected>{$arr['calloutp']}</option>"; } else { $calloutps .= "<option value='{$arr['calloutp']}'>{$arr['calloutp']}</option>"; } } $calloutps .= "</select>"; } # days drop downs $days = array("0" => "0", "7" => "7", "14" => "14", "30" => "30", "60" => "60", "90" => "90", "120" => "120"); # format date list($call_year, $call_month, $call_day) = explode("-", $doc['odate']); /* --- End Drop Downs --- */ // get the ID of the first warehouse db_conn("exten"); $sql = "SELECT whid FROM warehouses ORDER BY whid ASC LIMIT 1"; $rslt = db_exec($sql) or errDie("Error reading warehouses (FWH)."); if (pg_num_rows($rslt) > 0) { $FIRST_WH = pg_fetch_result($rslt, 0, 0); } else { $FIRST_WH = "-S"; } /* --- Start Products Display --- */ # select all products $products = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<th>STORE</th>\n\t\t\t\t<th>ITEM NUMBER</th>\n\t\t\t\t<th>DESCRIPTION</th>\n\t\t\t\t<th>QTY</th>\n\t\t\t\t<th>ITEM PRICE</th>\n\t\t\t\t<th>Remove</th>\n\t\t\t<tr>"; # get selected stock in this callout document db_connect(); $sql = "SELECT * FROM cubit.callout_docs_items WHERE calloutid = '{$calloutid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $i = 0; $key = 0; while ($stkd = pg_fetch_array($stkdRslt)) { $stkd['account'] += 0; $stkd['unitcost'] = sprint($stkd['unitcost']); if ($stkd['account'] != 0) { # Keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "\n\t\t\t\t<select name='accounts[]'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } if ($ad['accid'] == $stkd['account']) { $sel = "selected"; } else { $sel = ""; } $Accounts .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>"; } $Accounts .= "</select>"; $sernos = ""; # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[]' value='{$stkd['qty']}'>"; $viewcost = "<input type='text' size='8' name='unitcost[]' value='{$stkd['unitcost']}'>"; # Put in product $products .= "\n\t\t\t\t<input type='hidden' name='whids[]' value='{$stkd['whid']}'>\n\t\t\t\t<input type='hidden' name='stkids[]' value='{$stkd['stkid']}'>\n\t\t\t\t<input type='hidden' name='SCROLL' value='yes'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>{$Accounts}</td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptions[]' value='{$stkd['description']}'> {$sernos}</td>\n\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$key}'></td>\n\t\t\t\t</tr>"; $key++; } else { # keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; # 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); # put in product $products .= "\n\t\t\t\t<input type='hidden' name='accounts[]' value='0'>\n\t\t\t\t<input type='hidden' name='descriptions[]' value=''>\n\t\t\t\t<input type='hidden' name='stkids[]' value='{$stkd['stkid']}'>\n\t\t\t\t<input type='hidden' name='whids[]' value='{$stkd['whid']}'>\n\t\t\t\t<input type='hidden' name='SCROLL' value='yes'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$wh['whname']}</td>\n\t\t\t\t\t<td><a href='#' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtys[]' value='{$stkd['qty']}'></td>\n\t\t\t\t\t<td><input type='text' size='8' name='unitcost[]' value='{$stkd['unitcost']}'></td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$key}'></td>\n\t\t\t\t</tr>"; $key++; } } # Look above(remprod keys) $keyy = $key; # look above(if i = 0 then there are no products) if ($i == 0) { $done = ""; } # check if stock warehouse was selected if (isset($whidss)) { foreach ($whidss as $key => $whid) { if (isset($stkidss[$key]) && $stkidss[$key] != "-S" && isset($cust['pricelist'])) { # skip if not selected if ($whid == "-S") { continue; } # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$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 = '{$stkidss[$key]}' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); # get price from price list if it is set if (isset($cust['pricelist'])) { # get selected stock in this warehouse db_conn("exten"); $sql = "SELECT price FROM plist_prices WHERE listid = '{$cust['pricelist']}' AND stkid = '{$stk['stkid']}' AND div = '" . USER_DIV . "'"; $plRslt = db_exec($sql); if (pg_numrows($plRslt) > 0) { $pl = pg_fetch_array($plRslt); $stk['selamt'] = $pl['price']; } } /* -- Start Some Checks -- */ # check if they are selling too much if ($stk['units'] - $stk['alloc'] < $qtyss[$key]) { if (!in_array($stk['stkid'], explode(",", $stkerr))) { if ($stk['type'] != 'lab') { $stkerr .= ",{$stk['stkid']}"; $error .= "<li class=err>Warning : Item number <b>{$stk['stkcod']}</b> does not have enough items available.</li>"; } } } /* -- End Some Checks -- */ # Calculate amount $amt[$key] = $qtyss[$key] * $stk['selamt']; $stk['selamt'] = sprint($stk['selamt']); # put in selected warehouse and stock $products .= "\n\t\t\t\t\t<input type='hidden' name='accounts[]' value='0'>\n\t\t\t\t\t<input type='hidden' name='descriptions[]' value=''>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td><input type='hidden' name='whids[]' value='{$whid}'>{$wh['whname']}</td>\n\t\t\t\t\t\t<td><input type='hidden' name='stkids[]' value='{$stk['stkid']}'><a href='#' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t\t<td><input type='text' size='3' name='qtys[]' value='{$qtyss[$key]}'></td>\n\t\t\t\t\t\t<td><input type='text' size='8' name='unitcost[]' value='{$stk['selamt']}'></td>\n\t\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$keyy}'></td>\n\t\t\t\t\t</tr>"; $keyy++; } elseif (isset($accountss[$key]) && $accountss[$key] != "0" && isset($cust['pricelist'])) { db_conn('core'); $Sl = "SELECT * FROM accounts WHERE accid='{$accountss[$key]}'"; $Ri = db_exec($Sl) or errDie("Unable to get account data."); if (pg_num_rows($Ri) < 1) { return "invalid."; } $ad = pg_fetch_array($Ri); # Calculate amount $amt[$key] = sprint($qtyss[$key] * $unitcosts[$key]); # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[]' value='{$qtyss[$key]}'>"; # Check permissions $viewcost = "<input type='text' size='8' name='unitcost[]' value='{$unitcosts[$key]}'>"; # Put in selected warehouse and stock $products .= "\n\t \t\t\t\t<input type='hidden' name='accounts[]' value='{$accountss[$key]}'>\n\t \t\t\t\t<input type='hidden' name='whids[]' value='0'>\n\t \t\t\t\t<input type='hidden' name='stkids[]' value='0'>\n\t \t\t\t\t<input type='hidden' name='disc[]' value='0'>\n\t \t\t\t\t<input type='hidden' name='discp[]' value='0'>\n\t \t\t\t\t<tr class='" . bg_class() . "'>\n\t \t\t\t\t\t<td colspan='2'>{$ad['accname']}</td>\n\t \t\t\t\t\t<td><input type='text' size='20' name='descriptions[]' value='{$descriptionss[$key]}'></td>\n\t \t\t\t\t\t<td>{$qtyin}</td>\n\t \t\t\t\t\t<td>{$viewcost}</td>\n\t \t\t\t\t\t<td><input type='hidden' name='amt[]' value='{$amt[$key]}'> " . CUR . " {$amt[$key]}</td>\n\t \t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$keyy}'></td>\n\t \t\t\t\t</tr>"; $keyy++; } else { if (!isset($diffwhBtn)) { # skip if not selected if ($whid == "-S") { continue; } if (!isset($addnon)) { # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$whid}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE whid = '{$whid}' AND blocked = 'n' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { $error .= "<li class='err'>There are no stock items in the selected store.</li>"; continue; } if ($sel_frm == "stkcod") { $cods = "\n\t\t\t\t\t\t\t\t<select class='width:15' name='stkidss[]' onChange='javascript:document.form.submit();'>\n\t\t\t\t\t\t\t\t\t<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $cods .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $cods .= "</select> "; $descs = ""; } else { $descs = "<select class='width:15' name='stkidss[]' onChange='javascript:document.form.submit();'>"; $descs .= "<option value='-S' disabled selected>Select Description</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $descs .= "<option value='{$stk['stkid']}'>{$stk['stkdes']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $descs .= "</select> "; $cods = ""; } # put in drop down and warehouse $products .= "\n\t\t\t\t\t\t\t<input type='hidden' name='accountss[]' value='0'>\n\t\t\t\t\t\t\t<input type='hidden' name='descriptionss[]' value=''>\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' name='whidss[]' value='{$whid}'>{$wh['whname']}</td>\n\t\t\t\t\t\t\t\t<td>{$cods}</td>\n\t\t\t\t\t\t\t\t<td>{$descs}</td>\n\t\t\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t\t\t\t<td><input type='hidden' name='amts[]' value='0.00'></td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t</tr>"; } } } } } else { if (!(isset($diffwhBtn) || isset($addnon))) { # check if setting exists db_connect(); $sql = "SELECT value FROM set WHERE label = 'DEF_WH' AND div = '" . USER_DIV . "'"; $Rslt = db_exec($sql) or errDie("Unable to check database for existing settings."); if (pg_numrows($Rslt) > 0) { $set = pg_fetch_array($Rslt); $whid = $set['value']; if (isset($wtd) && $wtd != 0) { $whid = $wtd; } # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$whid}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE whid = '{$whid}' AND blocked = 'n' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { if (!isset($err)) { $err = ""; } $err .= "<li>There are no stock items in the selected warehouse.</li>"; } $stks = "\n\t\t\t\t\t<select class='width:15' name='stkidss[]' onChange='javascript:document.form.submit();'>\n\t\t\t\t\t\t<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $stks .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $stks .= "</select> "; $products .= "\n\t\t\t\t\t<input type='hidden' name='descriptionss[]' value=''>\n\t\t\t\t\t<input type='hidden' name='accountss[]' value='0'>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td><input type='hidden' name='whidss[]' value='{$whid}'>{$wh['whname']}</td>\n\t\t\t\t\t\t<td>{$stks}</td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t</tr>"; } else { $products .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>{$whs}</td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t</tr>"; } } else { if (isset($addnon)) { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "\n\t\t\t\t<select name='accountss[]'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $Accounts .= "</select>"; $products .= "\n\t\t\t\t<input type='hidden' name='whidss[]' value='{$FIRST_WH}'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>{$Accounts}</td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[]'></td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t<td><input type='text' name='unitcosts[]' size='7'></td>\n\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t</tr>"; } } } /* -- start Listeners -- */ if (isset($diffwhBtn)) { $products .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>{$whs}</td>\n\t\t\t\t<td></td>\n\t\t\t\t<td></td>\n\t\t\t\t<td> </td>\n\t\t\t\t<td> </td>\n\t\t\t\t<td> </td>\n\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t<td></td>\n\t\t\t</tr>"; } /* -- End Listeners -- */ $products .= "</table>"; /* --- End Products Display --- */ /* --- Start Some calculations --- */ # Calculate subtotal $SUBTOT = sprint($doc['subtot']); # Calculate subtotal $SUBTOT = sprint($doc['subtot']); /* --- End Some calculations --- */ /*--- Start checks --- */ // Which display method was selected if (isset($sel_frm) && $sel_frm == "stkdes") { $sel_frm_cod = ""; $sel_frm_des = "checked"; } else { $sel_frm_cod = "checked"; $sel_frm_des = ""; } /*--- Start checks --- */ $details_begin = "\n\t\t<center>\n\t\t<h3>New CallOut </h3>\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='key' value='update'>\n\t\t\t<input type='hidden' name='calloutid' value='{$calloutid}'>\n\t\t<table " . TMPL_tblDflts . " width='95%'>\n \t\t\t<tr>\n \t\t\t\t<td valign='top'>\n \t\t\t\t\t<div id='cust_selection'>"; if (empty($ajax_err) && (isset($cusnum) || AJAX)) { if (isset($cusnum)) { $OTS_OPT = onthespot_encode(SELF, "cust_selection", "deptid={$doc['deptid']}&letters={$letters}&cusnum={$cusnum}&calloutid={$calloutid}"); $custedit = "\n\t\t\t\t<td nowrap>\n\t\t\t\t\t<a href='javascript: popupSized(\"cust-edit.php?cusnum={$cusnum}&onthespot={$OTS_OPT}\", \"edit_cust\", 700, 630);'>\n\t\t\t\t\t\tEdit Customer Details\n\t\t\t\t\t</a>\n\t\t\t\t</td>"; } else { $custedit = ""; } $ajaxOut = "\n\t\t\t<input type='hidden' name='letters' value='{$letters}'>\n\t\t\t<input type='hidden' name='stkerr' value='{$stkerr}'>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'> Customer Details </th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Department</td>\n\t\t\t\t\t<td valign='center'>{$dept['deptname']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer</td>\n\t\t\t\t\t<td valign='center'>{$customers}</td>\n\t\t\t\t\t{$custedit}\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td valign='top'>Customer Address</td>\n\t\t\t\t\t<td valign='center'>" . nl2br($cust['addr1']) . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer VAT Number</td>\n\t\t\t\t\t<td>{$cust['vatnum']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Using</td>\n\t\t\t\t\t<td>Stock Code<input type='radio' name='sel_frm' value='stkcod' onChange='javascript:document.form.submit();' {$sel_frm_cod}><br>Stock Description<input type='radio' name='sel_frm' value='stkdes' onChange='javascript:document.form.submit();' {$sel_frm_des}></td>\n\t\t\t\t</tr>\n\t\t\t</table>"; } else { db_conn("exten"); $sql = "SELECT * FROM departments WHERE div = '" . USER_DIV . "' ORDER BY deptname ASC"; $deptRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($deptRslt) < 1) { return "<li class='err'>There are no Departments found in Cubit."; } else { $depts = "<select id='deptid'>"; $depts .= "<option value='0'>All Departments</option>"; while ($dept = pg_fetch_array($deptRslt)) { $depts .= "<option value='{$dept['deptid']}'>{$dept['deptname']}</option>"; } $depts .= "</select>"; } if (!isset($ajax_err)) { $ajax_err = ""; } $ajaxOut = "\n\t\t\t<script>\n\t\t\t\tfunction updateCustSelection() {\n\t\t\t\t\tdeptid = getObject('deptid').value;\n\t\t\t\t\tletters = getObject('letters').value;\n\t\t\t\t\tajaxRequest('" . SELF . "', 'cust_selection', AJAX_SET, 'letters='+letters+'&deptid='+deptid+'&calloutid={$calloutid}');\n\t\t\t\t}\n\t\t\t</script>\n\n\t\t\t{$ajax_err}\n\t\t\t<table " . TMPL_tblDflts . " width='400'>\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'>New Callout Document</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>" . REQ . "Select Department</td>\n\t\t\t\t\t<td valign='center'>{$depts}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>First Letters of customer</td>\n\t\t\t\t\t<td valign='center'><input type='text' size='5' id='letters' maxlength='5'></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td> </td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td valign='center'><input type='button' value='Update »' onClick='updateCustSelection();'></td>\n\t\t\t\t</tr>\n\t\t\t</table>"; } if (isset($diffwhBtn) or isset($addprodBtn) or isset($addnon) or isset($saveBtn) or isset($upBtn) or isset($doneBtn)) { $jump_bot = "\n\t\t\t<script>\n\t\t\t\twindow.location.hash='bottom';\n\t\t\t</script>"; } else { $jump_bot = ""; } $details_end = "\n\t\t\t\t</div>\n\t\t\t</td>\n\t\t\t<td valign='top' align='right'>\n\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th colspan='2'>Callout Document Details</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Job Number</td>\n\t\t\t\t\t\t<td valign='center'>{$doc['calloutid']}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Call Out Person</td>\n\t\t\t\t\t\t<td valign='center'>{$calloutps}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Date Service Required</td>\n\t\t\t\t\t\t<td valign='center'>" . mkDateSelect("call", $call_year, $call_month, $call_day) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Call Out Rate</td>\n\t\t\t\t\t\t<td valign='center' nowrap>" . CUR . " <input type='text' name='def_travel' value='{$doc['def_travel']}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Labour Rate/Hour</td>\n\t\t\t\t\t\t<td valign='center' nowrap>" . CUR . " <input type='text' name='def_labour' value='{$doc['def_labour']}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td> </td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td colspan='2'>{$products}</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td colspan='4'><textarea name='sign' cols='80' rows='2'>{$doc['sign']}</textarea></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>\n\t\t\t<p>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th width='25%'>Quick Links</th>\n\t\t\t\t\t<th width='25%'>Description Of Callout</th>\n\t\t\t\t\t<th width='25%'>Comments</th>\n\t\t\t\t\t<td rowspan='5' valign='top' width='50%'>{$error}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td class='" . bg_class() . "'><a href='callout-new.php'>New Callout Document</a></td>\n\t\t\t\t\t<td class='" . bg_class() . "' rowspan='4' align='center' valign='top'><textarea name='calloutdescrip' rows='4' cols='20'>{$doc['calloutdescrip']}</textarea></td>\n\t\t\t\t\t<td class='" . bg_class() . "' rowspan='4' align='center' valign='top'><textarea name='comm' rows='4' cols='20'>{$doc['comm']}</textarea></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><a href='callout-view.php'>View Callout Documents</a></td>\n\t\t\t\t</tr>\n\t\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t\t</table>\n\t\t\t</td>\n\t\t\t<td align='right'></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td align='right'>\n\t\t\t\t<input name='diffwhBtn' type='submit' value='Different Store'> |\n\t\t\t\t<input name='addprodBtn' type='submit' value='Add Product'> |\n\t\t\t\t<input name='addnon' type='submit' value='Add Non stock Product'> |\n\t\t\t\t<input type='submit' name='saveBtn' value='Save'></td><td> |\n\t\t\t\t<input type='submit' name='upBtn' value='Update'>{$done}\n\t\t\t</td>\n\t\t</tr>\n\t\t</table>\n\t\t<a name='bottom'>\n\t\t</form>\n\t\t</center>\n\t\t{$jump_bot}"; if (AJAX) { return $ajaxOut; } else { return "{$details_begin}{$ajaxOut}{$details_end}"; } }
function cdetails($_GET) { # get vars extract($_GET); # 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>"; } $confirm .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } # Get Invoice info db_connect(); $sql = "SELECT * FROM nons_invoices WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $invRslt = db_exec($sql) or errDie("Unable to get invoices information"); if (pg_numrows($invRslt) < 1) { return "<i class='err'>Not Found</i>"; } $inv = pg_fetch_array($invRslt); $currs = getSymbol($inv['fcid']); $details = ""; $sql = "SELECT * FROM customers WHERE cusnum = '{$inv['tval']}' AND div = '" . USER_DIV . "'"; $custRslt = db_exec($sql) or errDie("Unable to view customer"); $cust = pg_fetch_array($custRslt); $details = "\n\t<table " . TMPL_tblDflts . ">\n\t\t<tr>\n\t\t\t<th colspan='2'> Customer Details </th>\n\t\t</tr>\n\t\t<input type='hidden' name='cusnum' value='{$cust['cusnum']}'>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Customer</td>\n\t\t\t<td valign='center'>{$cust['cusname']} {$cust['surname']}</td>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Customer Address</td>\n\t\t\t<td valign='center'><pre>{$cust['addr1']}</pre></td>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Customer VAT Number</td>\n\t\t\t<td valign='center'>{$cust['vatnum']}</td>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Customer Order number</td>\n\t\t\t<td valign='center'>{$inv['cordno']}</td>\n\t\t</tr>\n\t</table>"; $stkacc = ""; core_connect(); $sql = "SELECT * FROM accounts WHERE div = '" . USER_DIV . "' ORDER BY accname ASC"; $accRslt = db_exec($sql); if (pg_numrows($accRslt) < 1) { return "<li>There are No accounts in Cubit.</li>"; } while ($acc = pg_fetch_array($accRslt)) { if (isb($acc['accid'])) { continue; } $stkacc .= "<option value='{$acc['accid']}'>{$acc['topacc']}/{$acc['accnum']} - {$acc['accname']}</option>"; } $stkacc .= "</select>"; /* --- Start Products Display --- */ # Products layout $products = "\n\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t<tr>\n\t\t\t<th width='5%'>#</th>\n\t\t\t<th width='55%'>DESCRIPTION</th>\n\t\t\t<th width='10%'>QTY</th>\n\t\t\t<th width='10%'>UNIT PRICE</th>\n\t\t\t<th width='10%'>AMOUNT</th>\n\t\t\t<th width='10%'>ACCOUNT</th>\n\t\t<tr>"; # get selected stock in this Invoice db_connect(); $sql = "SELECT * FROM nons_inv_items WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $i = 0; while ($stkd = pg_fetch_array($stkdRslt)) { $i++; # put in product $products .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td align='center'>{$i}</td>\n\t\t\t\t<td>{$stkd['description']}</td>\n\t\t\t\t<td>{$stkd['qty']}</td>\n\t\t\t\t<td>{$inv['currency']} {$stkd['unitcost']}</td>\n\t\t\t\t<td>{$inv['currency']} {$stkd['amt']}</td>\n\t\t\t\t<td " . ass("Select the account you wish to Credit") . "><select name='stkaccs[{$stkd['id']}]'>{$stkacc}</td>\n\t\t\t</tr>"; } $products .= "</table>"; /* --- Start Some calculations --- */ # Get subtotal $SUBTOT = sprint($inv['subtot']); # Get Total $TOTAL = sprint($inv['total']); # Get vat $VAT = sprint($inv['vat']); /* --- End Some calculations --- */ # format date list($syear, $smon, $sday) = explode("-", $inv['sdate']); /* -- Final Layout -- */ $details = "\n\t\t\t\t<center>\n\t\t\t\t<h3>Non-Stock Invoice Details</h3>\n\t\t\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t\t\t<input type='hidden' name='key' value='cconfirm'>\n\t\t\t\t\t<input type='hidden' name='invid' value={$invid}>\n\t\t\t\t<table " . TMPL_tblDflts . " width='95%'>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td valign='top'>{$details}</td>\n\t\t\t\t\t\t<td valign='top' align='right'>\n\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th colspan='2'> Non-Stock Invoice Details </th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<td>Non-Stock Invoice No.</td>\n\t\t\t\t\t\t\t\t\t<td valign='center'>T {$inv['invid']}</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<td>Proforma Inv No.</td>\n\t\t\t\t\t\t\t\t\t<td valign='center'>{$inv['docref']}</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<td>Date</td>\n\t\t\t\t\t\t\t\t\t<td valign='center'>{$sday}-{$smon}-{$syear}</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<td>Foreign Currency</td>\n\t\t\t\t\t\t\t\t\t<td valign='center'>{$currs['symbol']} - {$currs['name']} Exchange rate " . CUR . " {$inv['xrate']}</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<td>VAT Inclusive</td>\n\t\t\t\t\t\t\t\t\t<td valign='center'>{$inv['chrgvat']}</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t" . TBL_BR . "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td colspan='2'>{$products}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th width='40%'>Quick Links</th>\n\t\t\t\t\t\t\t\t\t<th width='45%'>Remarks</th>\n\t\t\t\t\t\t\t\t\t<td rowspan='5' valign='top' width='15%'><br></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td class='" . bg_class() . "'><a href='nons-invoice-new.php'>New Non-Stock Invoices</a></td>\n\t\t\t\t\t\t\t\t\t<td class='" . bg_class() . "' rowspan='4' align='center' valign='top'>" . nl2br($inv['remarks']) . "</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<td><a href='nons-invoice-view.php'>View Non-Stock Invoices</a></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td align='right'>\n\t\t\t\t\t\t\t<table " . TMPL_tblDflts . " width='80%'>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<td>SUBTOTAL</td>\n\t\t\t\t\t\t\t\t\t<td align='right'>{$inv['currency']} {$inv['subtot']}</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<td>VAT @ " . TAX_VAT . " %</td>\n\t\t\t\t\t\t\t\t\t<td align='right'>{$inv['currency']} {$inv['vat']}</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<th>GRAND TOTAL</th>\n\t\t\t\t\t\t\t\t\t<td align='right'>{$inv['currency']} {$inv['total']}</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td align='right'><input type='button' value='« Back' onClick='javascript:history.back()'> | <input type='submit' value='Continue »'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t\t</form>\n\t\t\t\t</center>"; return $details; }
function writeLoan($_POST) { # get vars extract($_POST); # validate input require_lib("validate"); $v = new validate(); $v->isOk($empnum, "num", 1, 20, "Invalid employee number."); $v->isOk($loanamt, "float", 1, 10, "Invalid loan amount."); $v->isOk($loanint, "float", 1, 5, "Invalid loan interest."); $v->isOk($loanperiod, "num", 1, 3, "Invalid payback period."); $v->isOk($loaninstall, "float", 1, 10, "Invalid monthly installment."); $v->isOk($fringebenefit, "float", 1, 10, "Invalid fringe benefit amount."); $v->isOk($lday, "num", 1, 2, "Invalid day."); $v->isOk($lmonth, "num", 1, 2, "Invalid month."); $v->isOk($lyear, "num", 4, 4, "Invalid year."); $v->isOk($accid, "num", 1, 9, "Invalid bank account selected."); $v->isOk($account, "num", 1, 9, "Invalid contra account selected."); $v->isOk($loan_account, "num", 1, 9, "Invalid loan account selected."); $v->isOk($loan_type, "num", 1, 9, "Invalid loan type selected."); if (!checkdate($lmonth, $lday, $lyear)) { $v->addError("", "Invalid date."); } if ($account > 0 && isb($account) || isb($loan_account)) { $v->addError("", "Main accounts blocked. Please select sub accounts."); } # display errors, if any if ($v->isError()) { $confirmCust = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirmCust .= "<li class='err'>" . $e["msg"] . "</li>"; } return enterLoan($confirmCust); } # get employee details db_connect(); $sql = "SELECT * FROM employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "'"; $empRslt = db_exec($sql) or errDie("Unable to select employees from database."); if (pg_numrows($empRslt) < 1) { return "Invalid employee ID."; } $myEmp = pg_fetch_array($empRslt); # check for previous loan $sql = "SELECT empnum FROM employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "' AND gotloan='t'::bool"; $chkRslt = db_exec($sql) or errDie("Unable to check existing loans for employee."); if (pg_numrows($chkRslt) > 0) { return "<li class='err'>Loan already exists for employee number: {$myEmp['enum']}.</li>"; } if ($accid > 0) { $bankacc = getbankaccid($accid); } # Debit salaries control acc and credit Bank acc $date = date("Y-m-d"); $ldate = mkdate($lyear, $lmonth, $lday); $refnum = getrefnum(); if ($account > 0) { $bankacc = $account; } // writetrans($loan_account, $bankacc, $date, $refnum, $loanamt, "Loan granted to employee $myEmp[fnames] $myEmp[sname]."); if ($accid > 0) { # issue bank record // banktrans($accid, "withdrawal", date("d-m-Y"), "$myEmp[fnames] $myEmp[sname]", "Loan granted to employee $myEmp[fnames] $myEmp[sname].", 0, $loanamt, $loan_account); } $totamount = sprint($loanperiod * $loaninstall); $loanint_amt = $totamount - $loanamt; # connect to db db_connect(); $ldate = "{$lyear}-{$lmonth}-{$lday}"; $insert_sql = "\n\t\tINSERT INTO loan_requests (\n\t\t\tempnum, loanamt, loaninstall, loanint, loanperiod, loandate, \n\t\t\tloan_type, div, loan_account, bankacc, date, totamount, \n\t\t\tloanint_amt, fringebenefit, ldate, account, accid\n\t\t) VALUES (\n\t\t\t'{$empnum}', '{$loanamt}', '{$loaninstall}', '{$loanint}', '{$loanperiod}', '{$ldate}', \n\t\t\t'{$loan_type}', '" . USER_DIV . "', '{$loan_account}', '{$bankacc}', '{$date}', '{$totamount}', \n\t\t\t'{$loanint_amt}', '{$fringebenefit}', '{$ldate}', '{$account}', '{$accid}'\n\t\t)"; $run_insert = db_exec($insert_sql) or errDie("Unable to add loan application request."); // pglib_transaction("BEGIN"); // // $sql = "INSERT INTO emp_loanarchive (empnum, loanamt, loaninstall, loanint, loanperiod,loandate, loan_type, div) // VALUES('$empnum', '$totamount', '$loaninstall', '$loanint', '$loanperiod', CURRENT_DATE, '$loan_type', '".USER_DIV."')"; // $rslt = db_exec($sql) or errDie("Unable to pre archive loan."); // // $loanid = pglib_lastid('emp_loanarchive', 'id'); // // # write to db // $sql = "UPDATE employees // SET loanamt='$totamount', loanint='$loanint', loanint_amt='$loanint_amt', // loanint_unpaid='$loanint_amt', loanperiod='$loanperiod', loaninstall='$loaninstall', // gotloan='t'::bool, loanpayslip='$loanamt', loanfringe='$fringebenefit', loandate='$ldate', // expacc_loan='$loan_account', loanamt_tot='$totamount', loanid='$loanid' // WHERE empnum='$empnum' AND div = '".USER_DIV."'"; // $loanRslt = db_exec ($sql) or errDie ("Unable to add loan to system.", SELF); // // if (pg_cmdtuples ($loanRslt) < 1) { // return "Unable to add loan to system."; // } // // pglib_transaction("COMMIT"); $writeLoan = "\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Loan granted and added to system</th>\n\t\t\t</tr>\n\t\t\t<tr class='datacell'>\n\t\t\t\t<td>New loan application has been successfully added to Cubit.\n\t\t\t\t<a href='../groupware/req_gen.php'>Send</a> an instant message.</td>\n\t\t\t</tr>\n\t\t</table><br>" . mkQuickLinks(ql("loan_apply.php", "Add Loan Application"), ql("loan_apply_view.php", "View Loan Applications"), ql("../admin-employee-add.php", "Add Employee"), ql("../admin-employee-view.php", "View Employees")); return $writeLoan; }
function enter($HTTP_VARS) { extract($HTTP_VARS); $id += 0; if (!isset($paidamount)) { $paidamount = "0.00"; } if (!isset($bankid)) { $bankid = 0; $day = date("d"); $mon = date("m"); $year = date("Y"); } db_conn('cubit'); $Sl = "SELECT * FROM employees WHERE empnum='{$id}'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Ri) < 1) { return "Invalid employee."; } $edata = pg_fetch_array($Ri); $edata['paytype'] = "Ledger Account"; if ($edata["paytype"] == "EFT" && (empty($edata["bankname"]) || empty($edata["bankaccno"]))) { return "Employee banking information not entered.<br>\n\t\t\tClick <a href='../admin-employee-edit.php?empnum={$id}'>here</a> employee banking information."; } if ($edata['paytype'] == "Cash") { $row = "<tr class='" . bg_class() . "'><td colspan='2'>Paid Cash</td></tr>"; } elseif ($edata['paytype'] == "Ledger Account") { db_conn('core'); $Sl = "SELECT accid,accname FROM accounts ORDER BY accname"; $Ri = db_exec($Sl); $accounts = "\n\t\t\t<select name='account'>\n\t\t\t\t<option value='#'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } if (isset($account) && $account == $ad['accid']) { $sel = "selected"; } else { $sel = ""; } $accounts .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>"; } $accounts .= "</select>"; $row = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Ledger Account</td>\n\t\t\t\t<td>{$accounts}</td>\n\t\t\t</tr>"; } else { $Sl = "SELECT * FROM bankacct WHERE btype != 'int' AND div = '" . USER_DIV . "' ORDER BY accname ASC"; $Ry = db_exec($Sl) or errDie("Unable to get bank account."); if (pg_numrows($Ry) < 1) { return "<li class='err'> There are no bank accounts found in Cubit.\n\t\t\t<p><input type='button' onClick='JavaScript:history.back();' value='« Correct Selection'>"; } $banks = "<select name='accid'>"; while ($acc = pg_fetch_array($Ry)) { if ($acc['bankid'] == $bankid) { $sel = "selected"; } else { $sel = ""; } $banks .= "<option value='{$acc['bankid']}' {$sel}>{$acc['accname']}</option>"; } $banks .= "</select>"; $row = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Bank Account</td>\n\t\t\t\t<td>{$banks}</td>\n\t\t\t</tr>"; } $entd = ""; $entc = "checked=yes"; if (isset($tran)) { if ($tran == "dt") { $entd = "checked=yes"; $entc = ""; } } $out = "\n\t\t<h3>Employee Transaction</h3>\n\t\t<table " . TMPL_tblDflts . ">\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='id' value='{$id}'>\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Details</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Amount due to employee</td>\n\t\t\t\t<td>" . CUR . " {$edata['balance']}</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><input type='text' size='8' name='paidamount' value='{$paidamount}'></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><input type='text' size='2' name='day' maxlength='2' value='{$day}'>-<input type='text' size='2' name='mon' maxlength='2' value='{$mon}'>-<input type='text' size='4' name='year' maxlength='4' value='{$year}'></td>\n\t\t\t</tr>\n\t\t\t{$row}\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Entry Type</td>\n\t\t\t\t<td><input type='radio' name='entry' value='DT' {$entd}> Debit(Decrease) | <input type='radio' name='entry' value='CT' {$entc}>Credit(Increase)</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><input type='text' size='40' name='description' value=''></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='2' align='right'><input type='submit' value='Confirm »'></td>\n\t\t\t</tr>\n\t\t</form>\n\t\t</table>"; return $out; }
function details($_POST, $error = "") { # Get vars extract($_POST); $v = new validate(); if (isset($invid)) { $v->isOk($invid, "num", 1, 20, "Invalid invoice number."); } else { $client = ""; $vatnum = ""; $cordno = ""; $deptid = 2; $v->isOk($deptid, "num", 1, 20, "Invalid department number."); } # display errors, if any if ($v->isError()) { $errors = $v->getErrors(); foreach ($errors as $e) { $error .= "<li class='err'>" . $e["msg"] . "</li>"; } $confirm .= "{$error}<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } // Initial values if (!isset($invid)) { $invid = create_dummy($deptid); $stkerr = "0,0"; $cusnum = 0; } # Get invoice info db_connect(); $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 "<li class='err'>Invoice Not Found</li>"; } $inv = pg_fetch_array($invRslt); if (!isset($vatnum)) { $vatnum = $inv['vatnum']; } if (!isset($cordno)) { $cordno = $inv['cordno']; } # check if invoice has been printed if ($inv['printed'] == "y") { $error = "<li class='err'> Error : Invoice number <b>{$invid}</b> has already been printed."; $error .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $error; } // get the ID of the first warehouse db_conn("exten"); $sql = "SELECT whid FROM warehouses ORDER BY whid ASC LIMIT 1"; $rslt = db_exec($sql) or errDie("Error reading warehouses (FWH)."); if (pg_num_rows($rslt) > 0) { $FIRST_WH = pg_fetch_result($rslt, 0, 0); } else { $FIRST_WH = "-S"; } # Get selected Customer info db_connect(); $sql = "SELECT * FROM customers WHERE cusnum = '{$inv['cusnum']}' AND location != 'int' AND div = '" . USER_DIV . "'"; $custRslt = db_exec($sql) or errDie("Unable to view customer"); if (pg_numrows($custRslt) < 1) { db_connect(); # Query server for customer info AND lower(surname) LIKE lower('$letters%') $sql = "SELECT cusnum,cusname,surname FROM customers WHERE location != 'int' AND blocked != 'yes' AND div = '" . USER_DIV . "' ORDER BY surname"; $custRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($custRslt) < 1) { $customers = "<select name='cusnum' onChange='javascript:document.form.submit();'>"; $customers .= "<option value='0' selected>Select Customer</option>"; while ($cust = pg_fetch_array($custRslt)) { $customers .= "<option value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']}</option>"; } $customers .= "</select>"; } else { $customers = "<select name='cusnum' onChange='javascript:document.form.submit();'>"; $customers .= "<option value='0' selected>Select Customer</option>"; while ($cust = pg_fetch_array($custRslt)) { $customers .= "<option value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']}</option>"; } $customers .= "</select>"; } # Take care of the unset vars $cust['addr1'] = ""; $cust['cusnum'] = ""; $cust['vatnum'] = ""; $cust['accno'] = ""; $cust["bustel"] = $inv["telno"]; $cust["tel"] = ""; $cust["cellno"] = ""; } else { $cust = pg_fetch_array($custRslt); $sql = "SELECT cusnum, cusname, surname FROM customers WHERE deptid = '{$inv['deptid']}' AND location != 'int' AND blocked != 'yes' AND div = '" . USER_DIV . "' ORDER BY surname"; $cusRslt = db_exec($sql) or errDie("Unable to view customers"); # Moarn if customer account has been blocked AND lower(surname) LIKE lower('$letters%') if ($cust['blocked'] == 'yes') { $error .= "<li class=err>Error : Selected customer account has been blocked."; } // $customers = "<input type=hidden name=cusnum value='$cust[cusnum]'>$cust[cusname] $cust[surname]"; $cusnum = $cust['cusnum']; $customers = "<select name='cusnum' onChange='javascript:document.form.submit();'>"; $customers .= "<option value='0' selected>Select Customer</option>"; // $customers .= "<option value='-S' selected>Select Customer</option>"; while ($cus = pg_fetch_array($cusRslt)) { $sel = ""; if ($cust['cusnum'] == $cus['cusnum']) { $sel = "selected"; } $customers .= "<option value='{$cus['cusnum']}' {$sel}>{$cus['cusname']} {$cus['surname']}</option>"; } $customers .= "</select>"; } /* after first customer selection, set telno to customer's (if any) */ if (isset($prev_cusnum) && $prev_cusnum != $cusnum) { if (trim($cust["bustel"]) != "") { $inv["telno"] = $cust["bustel"]; } else { if (trim($cust["tel"]) != "") { $inv["telno"] = $cust["tel"]; } else { $inv["telno"] = $cust["cellno"]; } } } /* --- Start Drop Downs --- */ # Select warehouse db_conn("exten"); $whs = "<select name='whidss[]' onChange='javascript:document.form.submit();'>"; $sql = "SELECT * FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { return "<li class='err'> There are no Stores found in Cubit.</li>"; } else { $whs .= "<option value='-S' disabled selected>Select Store</option>"; while ($wh = pg_fetch_array($whRslt)) { if (!user_in_store_team($wh["whid"], USER_ID)) { continue; } $whs .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $whs .= "</select>"; # get sales people db_conn("exten"); $sql = "SELECT * FROM salespeople WHERE div = '" . USER_DIV . "' ORDER BY salesp ASC"; $salespRslt = db_exec($sql) or errDie("Unable to get sales people."); if (pg_numrows($salespRslt) < 1) { return "<li class='err'> There are no Sales People found in Cubit.</li>"; } else { $salesps = "<select name='salespn'>"; while ($salesp = pg_fetch_array($salespRslt)) { if ($salesp['salesp'] == $inv['salespn']) { $sel = "selected"; } else { $sel = ""; } $salesps .= "<option value='{$salesp['salesp']}' {$sel}>{$salesp['salesp']}</option>"; } $salesps .= "</select>"; } # Keep the charge vat option stable if ($inv['chrgvat'] == "inc") { $chin = "checked=yes"; $chex = ""; $chno = ""; } elseif ($inv['chrgvat'] == "exc") { $chin = ""; $chex = "checked=yes"; $chno = ""; } else { $chin = ""; $chex = ""; $chno = "checked=yes"; } /* we came as a correction from receive payment page */ if (isset($_POST["key"]) && $_POST["key"] == "recvpayment_write") { $inv["odate"] == $_POST["date"]; $inv["pcc"] = $_POST["pcc"]; $inv["pcheque"] = $_POST["pcheque"]; $inv["pcash"] = $_POST["pcash"]; } else { list($pinv_year, $pinv_month, $pinv_day) = explode("-", $inv['odate']); } /* --- End Drop Downs --- */ /* --- Start Products Display --- */ # select all products $products = "\n\t<table " . TMPL_tblDflts . " width='100%'>\n\t<tr>\n\t\t<th>STORE</th>\n\t\t<th>ITEM NUMBER</th>\n\t\t<th>VAT CODE</th>\n\t\t<th>SERIAL NO.</th>\n\t\t<th>DESCRIPTION</th>\n\t\t<th>QTY</th>\n\t\t<th>UNIT PRICE</th>\n\t\t<th>UNIT DISCOUNT</th>\n\t\t<th>AMOUNT</th>\n\t\t<th>Remove</th>\n\t<tr>"; # get selected stock in this invoice db_connect(); $sql = "SELECT * FROM pinv_items WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $line_count = pg_num_rows($stkdRslt); $i = 0; $key = 0; while ($stkd = pg_fetch_array($stkdRslt)) { $stkd['account'] += 0; if ($stkd['account'] != 0) { # Keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "<select name='accounts[]'>\n\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } if ($ad['accid'] == $stkd['account']) { $sel = "selected"; } else { $sel = ""; } $Accounts .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>"; } $Accounts .= "</select>"; $sernos = "\n\t\t\t\t<input type='hidden' name='sernos[]' value='{$stkd['serno']}'>\n\t\t\t\t<input type='hidden' name='sernos_ss[]' value='{$stkd['serno']}'>"; # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[]' value='{$stkd['qty']}'>"; $viewcost = "<input type='text' size='8' name='unitcost[]' value='" . sprint($stkd["unitcost"]) . "'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name='vatcodes[]'>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in product $products .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whids[]' value='{$stkd['whid']}'></td>\n\t\t\t\t<td><input type='hidden' name='stkids[]' value='{$stkd['stkid']}'>{$Vatcodes}</td>\n\t\t\t\t<td> </td>\n\t\t\t\t<td><input type='text' size='20' name='descriptions[]' value='{$stkd['description']}'> {$sernos}</td>\n\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t<td>\n\t\t\t\t\t<input type='hidden' name='disc[]' value='{$stkd['disc']}'>\n\t\t\t\t\t<input type='hidden' name='discp[]' value='{$stkd['discp']}'>\n\t\t\t\t</td>\n\t\t\t\t<td><input type='hidden' name='amt[]' value='" . sprint($stkd["amt"]) . "'> " . CUR . " {$stkd['amt']}</td>\n\t\t\t\t<td>\n\t\t\t\t\t<input type='checkbox' name='remprod[]' value='{$key}'>\n\t\t\t\t</td>\n\t\t\t</tr>"; $key++; } else { # keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; # 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); if ($stk['units'] <= $stk['minlvl']) { $error .= "<li class='err'>{$stk['stkcod']} is below minimum level, please notify stock controller.</li>"; } # Serial number if ($stk['serd'] == 'yes' && ($inv['serd'] == 'n' || $stkd["serno"] == "")) { $sers = ext_getavserials($stkd['stkid']); $sernos = "<select name='sernos[]'>"; foreach ($sers as $skey => $ser) { $sernos .= "<option value='{$ser['serno']}'>{$ser['serno']}</option>"; } $sernos .= "</select>\n\t\t\t\t\t\t\t<input type='hidden' name='sernos_ss[]' value='*_*_*CUBIT_SERIAL_SELECT_BOX*_*_*' />"; } else { $sernos = "\n\t\t\t\t\t<input type='hidden' name='sernos_ss[]' value='{$stkd['ss']}' />\n\t\t\t\t\t<input type='hidden' name='sernos[]' value='{$stkd['serno']}'>{$stkd['ss']}"; } # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[]' value='{$stkd['qty']}'>"; if ($stk['serd'] == 'yes') { $qtyin = "<input type='hidden' size='3' name='qtys[]' value='{$stkd['qty']}'>{$stkd['qty']}"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name='vatcodes[]'>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # check permissions if (perm("invoice-unitcost-edit.php")) { $viewcost = "<input type='text' size='8' name='unitcost[]' value='" . sprint($stkd["unitcost"]) . "'>"; } else { $viewcost = "<input type='hidden' size='8' name='unitcost[]' value='" . sprint($stkd["unitcost"]) . "'>" . sprint($stkd["unitcost"]); } # put in product $products .= "\n\t\t\t<input type='hidden' name='accounts[]' value='0'>\n\t\t\t<input type='hidden' name='descriptions[]' value=''>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><input type='hidden' name='whids[]' value='{$stkd['whid']}'>{$wh['whname']}</td>\n\t\t\t\t<td>\n\t\t\t\t\t<input type='hidden' name='stkids[]' value='{$stkd['stkid']}'>\n\t\t\t\t\t<a href='#bottom' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a>\n\t\t\t\t</td>\n\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t<td>{$sernos}</td>\n\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t<td>\n\t\t\t\t\t<input type='text' size='4' name='disc[]' value='{$stkd['disc']}'><b> OR </b>\n\t\t\t\t\t<input type='text' size='4' name='discp[]' value='{$stkd['discp']}' maxlength='5'>%\n\t\t\t\t</td>\n\t\t\t\t<td><input type='hidden' name='amt[]' value='" . sprint($stkd["amt"]) . "'> " . CUR . sprint($stkd["amt"]) . "</td>\n\t\t\t\t<td>\n\t\t\t\t\t<input type='checkbox' name='remprod[]' value='{$key}'>\n\t\t\t\t</td>\n\t\t\t</tr>"; $key++; } } # Look above(remprod keys) $keyy = $key; # Look above(if i = 0 then there are no products) if ($i == 0) { $done = ""; } else { $SCROLL = "yes"; } # check if stock warehouse was selected if (isset($whidss)) { foreach ($whidss as $key => $whid) { if (isset($stkidss[$key]) && $stkidss[$key] != "-S" && strlen($stkidss[$key]) > 0) { # skip if not selected if ($whid == "-S") { continue; } # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$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 = '{$stkidss[$key]}' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); if ($stk['serd'] == 'yes') { $sers = ext_getavserials($stkidss[$key]); $sernos = "<select name='sernos[]' onChange='javascript:document.form.submit();'>"; foreach ($sers as $skey => $ser) { $sernos .= "<option value='{$ser['serno']}'>{$ser['serno']}</option>"; } $sernos .= "</select>\n\t\t\t\t\t\t\t\t<input type='hidden' name='sernos_ss[]' value='*_*_*CUBIT_SERIAL_SELECT_BOX*_*_*' />"; } else { $sernos = "\n\t\t\t\t\t\t<input type='hidden' name='sernos_ss[]' value=''>\n\t\t\t\t\t\t<input type='hidden' name='sernos[]' value=''>"; } /* -- Start Some Checks -- */ # check if they are selling too much if ($stk['units'] - $stk['alloc'] < $qtyss[$key]) { if (!in_array($stk['stkid'], explode(",", $stkerr))) { if ($stk['type'] != 'lab') { $stkerr .= ",{$stk['stkid']}"; $error .= "<li class='err'>Warning : Item number <b>{$stk['stkcod']}</b> does not have enough items available.</li>"; } } } /* -- End Some Checks -- */ # Calculate the Discount discount if ($discs[$key] < 1) { if ($discps[$key] > 0) { $discs[$key] = round($discps[$key] / 100 * $stk['selamt'], 2); } } else { $discps[$key] = round($discs[$key] * 100 / $stk['selamt'], 2); } # Calculate amount $amt[$key] = $qtyss[$key] * ($stk['selamt'] - $discs[$key]); # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[]' value='{$qtyss[$key]}'>"; if ($stk['serd'] == 'yes') { $qtyin = "<input type='hidden' size='3' name='qtys[]' value='{$qtyss[$key]}'>{$qtyss[$key]}"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name='vatcodes[]'>"; while ($vd = pg_fetch_array($Ri)) { if ($stk['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; if (perm("invoice-unitcost-edit.php")) { $viewcost = "<input type='text' size='8' name='unitcost[]' value='" . sprint($stk["selamt"]) . "'>"; } else { $viewcost = "<input type='hidden' size='8' name='unitcost[]' value='" . sprint($stk["selamt"]) . "'>" . sprint($stk["selamt"]); } # put in selected warehouse and stock $products .= "\n\t\t\t\t<input type='hidden' name='accounts[]' value='0'>\n\t\t\t\t<input type='hidden' name='descriptions[]' value=''>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><input type='hidden' name='whids[]' value='{$whid}'>{$wh['whname']}</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input type='hidden' name='stkids[]' value='{$stk['stkid']}'>\n\t\t\t\t\t\t<a href='#bottom' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t<td>{$sernos}</td>\n\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input type='text' size='4' name='disc[]' value='{$discs[$key]}'><b> OR </b>\n\t\t\t\t\t\t<input type='text' size='4' name='discp[]' value='{$discps[$key]}' maxlength='5'>%\n\t\t\t\t\t</td>\n\t\t\t\t\t<td><input type='hidden' name='amt[]' value='" . sprint($amt[$key]) . "'> " . CUR . sprint($amt[$key]) . "</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$keyy}'></td>\n\t\t\t\t</tr>"; $line_count = 1; $keyy++; } else { if (isset($accountss[$key]) && $accountss[$key] != "0") { db_conn('core'); $Sl = "SELECT * FROM accounts WHERE accid='{$accountss[$key]}'"; $Ri = db_exec($Sl) or errDie("Unable to get account data."); if (pg_num_rows($Ri) < 1) { return "invalid."; } $ad = pg_fetch_array($Ri); # Calculate amount $amt[$key] = sprint($qtyss[$key] * $unitcosts[$key]); # Input qty if not serialised //$qtyin = "<input type=text size=3 name=qtemp value='$qtyss[$key]'>"; $qtyin = "<input type='text' size='3' name='qtys[]' value='{$qtyss[$key]}'>"; # Check permissions $viewcost = "<input type='text' size='8' name='unitcost[]' value='" . sprint($unitcosts[$key]) . "'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name='vatcodes[]'>"; while ($vd = pg_fetch_array($Ri)) { if ($vatcodess[$key] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in selected warehouse and stock $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan=2>\n\t\t\t\t\t\t{$ad['accname']}<input type='hidden' name='accounts[]' value='{$accountss[$key]}'>\n\t\t\t\t\t\t<input type='hidden' name='whids[]' value='0'>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>{$Vatcodes}<input type='hidden' name='stkids[]' value='0'></td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptions[]' value='{$descriptionss[$key]}'></td>\n\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input type='hidden' name='disc[]' value='0'>\n\t\t\t\t\t\t<input type='hidden' name='discp[]' value='0'>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td><input type='hidden' name='amt[]' value='" . sprint($amt[$key]) . "'> " . CUR . sprint($amt[$key]) . "</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$keyy}'></td>\n\t\t\t\t</tr>"; $keyy++; } else { if (!isset($diffwhBtn)) { # skip if not selected if ($whid == "-S") { continue; } if (!isset($addnon)) { # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$whid}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); if (isset($des) and $des != "") { $len = strlen($des); if ($des == "Show All") { $Wh = ""; $des = ""; } else { $Wh = "AND (lower(substr(stkdes,1,'{$len}'))=lower('{$des}') OR lower(substr(stkcod,1,'{$len}'))=lower('{$des}'))"; } } else { $Wh = "AND FALSE"; $des = ""; } # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE whid = '{$whid}' AND blocked = 'n' AND div = '" . USER_DIV . "' {$Wh} ORDER BY {$sel_frm} ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { $error .= "<li class='err'>There are no stock items in the selected warehouse."; continue; } /* # get selected stock in this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE stkid = '$stkidss[$key]' AND div = '".USER_DIV."' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); if($stk['serd'] == 'yes'){ $sers = ext_getavserials($stkidss[$key]); $sernos = "<select class='width : 15'name='sernos[]' onChange='javascript:document.form.submit();'>"; foreach($sers as $skey => $ser){ $sernos .= "<option value='$ser[serno]'>$ser[serno]</option>"; } $sernos .= "</select>"; }else{ $sernos = "<input type=hidden name=sernos[] value=''>"; } */ if (isset($sel_frm) && $sel_frm == "stkdes") { $descs = "<select class='width : 15'name='stkidss[]' onChange=\"document.form.des.value=''; javascript:document.form.submit();\">"; $descs .= "<option value='-S' disabled selected>Select Description</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { // Check if this stock item has been blocked if (stock_is_blocked($stk["stkid"])) { continue; } if ($stk["units"] <= 0) { continue; } $descs .= "<option value='{$stk['stkid']}'>{$stk['stkdes']} (" . ($stk['units'] - $stk['alloc']) . ")</option>"; } $descs .= "</select> "; $cods = ""; } else { $cods = "<select class='width : 15'name='stkidss[]' onChange=\"document.form.des.value=''; javascript:document.form.submit();\">"; $cods .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { // Check if this stock item has been blocked if (stock_is_blocked($stk["stkid"])) { continue; } if ($stk["units"] <= 0) { continue; } $cods .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . ($stk['units'] - $stk['alloc']) . ")</option>"; } $cods .= "</select> "; $descs = ""; } # put in drop down and warehouse $products .= "\n\t\t\t\t\t\t<input type='hidden' name='accountss[]' value='0'>\n\t\t\t\t\t\t<input type='hidden' name='descriptionss[]' value=''>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input type='hidden' name='whidss[]' value='{$whid}'>\n\t\t\t\t\t\t\t\t{$wh['whname']}\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>{$cods}</td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td>{$descs}</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input type='text' size='3' name='qtyss[]' value='1'>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input type='text' size='4' name='discs[] value='0'>\n\t\t\t\t\t\t\t\t<b> OR </b>\n\t\t\t\t\t\t\t\t<input type='text' size='4' name='discps[] value='0' maxlength='5'>%\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input type='hidden' name='amts[]' value='0.00'>\n\t\t\t\t\t\t\t\t" . CUR . " 0.00\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t</tr>"; } else { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts\n\t\t\t\t\t\t\tWHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "<select name='accountss[]' onChange='javascript:document.form.submit();'>\n\t\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "\n\t\t\t\t\t\t\t<option value={$ad['accid']}>\n\t\t\t\t\t\t\t\t{$ad['accname']}\n\t\t\t\t\t\t\t</option>"; } $Accounts .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name='vatcodess[]'>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whidss[]' value='{$FIRST_WH}'></td>\n\t\t\t\t\t\t\t<input type='hidden' name='stkidss[]' value=''>\n\t\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[]'></td>\n\t\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t\t\t<td><input type='text' name='unitcosts[]' size='7'></td>\n\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<input type='hidden' name='discs[]' value='0'>\n\t\t\t\t\t\t\t\t<input type='hidden' name='discps[]' value='0' >\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>"; } } } } } } else { if (!(isset($diffwhBtn) || isset($addnon))) { # check if setting exists db_connect(); $sql = "SELECT value FROM set WHERE label = 'DEF_WH' AND div = '" . USER_DIV . "'"; $Rslt = db_exec($sql) or errDie("Unable to check database for existing settings."); if (pg_numrows($Rslt) > 0) { $set = pg_fetch_array($Rslt); $whid = $set['value']; if (isset($wtd) && $wtd != 0) { $whid = $wtd; } # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$whid}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); if (isset($des) and $des != "") { $len = strlen($des); if ($des == "Show All") { $Wh = ""; $des = ""; } else { $Wh = "AND (lower(substr(stkdes,1,'{$len}'))=lower('{$des}') OR lower(substr(stkcod,1,'{$len}'))=lower('{$des}'))"; } } else { $Wh = "AND FALSE"; $des = ""; } # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE whid = '{$whid}' AND blocked = 'n' AND div = '" . USER_DIV . "' {$Wh} ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { if (!isset($err)) { $err = ""; } $err .= "<li>There are no stock items in the selected store."; } $stks = "<select name='stkidss[]' onChange=\"document.form.des.value=''; javascript:document.form.submit();\">"; $stks .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { // Check if this stock item has been blocked if (stock_is_blocked($stk["stkid"])) { continue; } if ($stk["units"] <= 0) { continue; } $stks .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . ($stk['units'] - $stk['alloc']) . ")</option>"; } $stks .= "</select> "; $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<input type='hidden' name='accountss[]' value='0'>\n\t\t\t\t\t<input type='hidden' name='descriptionss[]' value=''>\n\t\t\t\t\t<input type='hidden' name='vatcodess[]' value=''>\n\t\t\t\t\t<td><input type='hidden' name='whidss[]' value='{$whid}'>{$wh['whname']}</td>\n\t\t\t\t\t<td>{$stks}</td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input type='text' size='4' name='discs[]' value='0'><b> OR </b>\n\t\t\t\t\t\t<input type='text' size='4' name='discps[]' value='0' maxlength='5'>%</td><td>" . CUR . " 0.00</td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t</tr>"; } else { $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$whs}</td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input type='text' size='4' name='discs[]' value='0'><b> OR </b>\n\t\t\t\t\t\t<input type='text' size='4' name='discps[]' value='0' maxlength='5'>%\n\t\t\t\t\t</td>\n\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t</tr>"; } } else { if (isset($addnon)) { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "<select name='accountss[]' onChange='javascript:document.form.submit();'>\n\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $Accounts .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name='vatcodess[]'>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; // <input type=hidden name='stkidss[]' value=''> $products .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan=2>\n\t\t\t\t\t{$Accounts}<input type='hidden' name='whidss[]' value='{$FIRST_WH}'>\n\t\t\t\t</td>\n\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t<td> </td>\n\t\t\t\t<td><input type='text' size='20' name='descriptionss[]'></td>\n\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t<td><input type='text' name='unitcosts[]' size='7'></td>\n\t\t\t\t<td> </td>\n\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t<td>\n\t\t\t\t\t<input type='hidden' name='discs[]' value='0'>\n\t\t\t\t\t<input type='hidden' name='discps[]' value='0' >\n\t\t\t\t</td>\n\t\t\t</tr>"; } } } /* -- start Listeners -- */ if (isset($diffwhBtn)) { $products .= "\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>{$whs}</td>\n\t\t\t<td> </td>\n\t\t\t<td> </td>\n\t\t\t<td> </td>\n\t\t\t<td> </td>\n\t\t\t<td> </td>\n\t\t\t<td>\n\t\t\t\t<input type='text' size='4' name='discs[]' value='0'><b> OR </b>\n\t\t\t\t<input type='text' size='4' name='discps[]' value='0' maxlength='5'>%\n\t\t\t</td>\n\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t<td> </td>\n\t\t</tr>"; } /* -- End Listeners -- */ $products .= "</table>"; /* --- End Products Display --- */ /* --- Start Some calculations --- */ $SUBTOT = sprint($inv['subtot']); # Calculate tradediscm if ($inv['traddisc'] > 0) { $traddiscm = sprint($inv['traddisc'] / 100 * ($SUBTOT + $inv['delchrg'])); } else { $traddiscm = "0.00"; } $VATP = TAX_VAT; # Calculate subtotal $SUBTOT = sprint($inv['subtot']); $VAT = sprint($inv['vat']); $TOTAL = sprint($inv['total']); $inv['delchrg'] = sprint($inv['delchrg']); if (!isset($done)) { $done = ""; } /* --- End Some calculations --- */ if ($inv['terms'] == 1) { $tc1 = ""; $tc2 = "checked"; } else { $tc1 = "checked"; $tc2 = ""; } 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") { $sc = "checked"; } else { $sc = ""; } $sales = "<td>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<td>{$salesps}</td>\n\t\t\t\t<td>Print</td>\n\t\t\t\t<td><input type='checkbox' name='printsales' {$sc}></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t</td>"; # Query server for depts db_conn("exten"); $sql = "SELECT * FROM departments WHERE div = '" . USER_DIV . "' ORDER BY deptname ASC"; $deptRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($deptRslt) < 1) { return "<li class='err'>There are no Departments found in Cubit.</li>"; } else { $depts = "<select name='deptid'>"; while ($dept = pg_fetch_array($deptRslt)) { if ($dept['deptid'] == $inv['deptid']) { $sel = "selected"; } else { $sel = ""; } $depts .= "<option value='{$dept['deptid']}' {$sel}>{$dept['deptname']}</option>"; } $depts .= "</select>"; } db_conn('cubit'); $Sl = "SELECT * FROM users WHERE username='******'"; $Ri = db_exec($Sl); $data = pg_fetch_array($Ri); if ($data['help'] != "S") { $save = "|<input type='submit' name='saveBtn' value='Save'>"; } else { $save = ""; } if ($inv['rounding'] > 0) { $due = sprint($inv['total'] - $inv['rounding']); $rd = "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Rounding</td>\n\t\t\t\t\t<td align='right'>R {$inv['rounding']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<th>Amount Due</th>\n\t\t\t\t\t<td align='right'>R {$due}</td>\n\t\t\t\t</tr>"; } else { $rd = ""; } $inv['delvat'] += 0; if ($inv['delvat'] == 0) { $Sl = "SELECT * FROM vatcodes WHERE del='Yes'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $vd = pg_fetch_array($Ri); $inv['delvat'] = $vd['id']; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name='delvat'>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['id'] == $inv['delvat']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; if (strlen($client) < 1) { $client = $inv['cusname']; } if ($inv['cusnum'] == 0) { $cd = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Customer</td>\n\t\t\t\t<td valign='center'><input type='text' size='20' name='client' value='{$client}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>VAT Number</td>\n\t\t\t\t<td valign='center'><input type='text' size='20' name='vatnum' value='{$vatnum}'></td>\n\t\t\t</tr>\n\t\t\t"; $pc = "<input type='hidden' name='pcredit' value='0'>"; } else { $cd = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td valign=top>Customer Address</td>\n\t\t\t\t<td valign=center>" . nl2br($cust['addr1']) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Customer VAT Number</td>\n\t\t\t\t<td>{$cust['vatnum']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Customer Balance</td>\n\t\t\t\t<td nowrap='t'>\n\t\t\t\t\t" . CUR . " {$cust['balance']}\n\t\t\t\t\t<a href='javascript: printer(\"cust-stmnt.php?cusnum={$cusnum}&print=t\");'>Print Statement</a>\n\t\t\t\t</td>\n\t\t\t</tr>"; $pc = "\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Amount On Credit</td>\n\t\t\t<td nowrap='t'>\n\t\t\t\t<input size='12' type='text' name='pcredit' id='pcredit' value='{$inv['pcredit']}' onchange='ptot_update();'>\n\t\t\t\t<input type='button' value='« Total' onclick='paytotal(\"pcredit\");' />\n\t\t\t</td>\n\t\t</tr>"; if ($line_count > 0) { $recvpay = ""; } else { $recvpay = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan='2' align='center'><input type='submit' name='recvpay' id='recvpay' onclick='return ptot_recvpay();' value='Receive Payment: " . CUR . " " . sprint($inv["pcc"] + $inv["pcheque"] + $inv["pcash"]) . "' /></td>\n\t\t\t</tr>"; } } if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } if (!isset($des)) { $des = ""; } if (isset($sel_frm) && $sel_frm == "stkdes") { $sel_frm_cod = ""; $sel_frm_des = "checked"; } else { $sel_frm_cod = "checked"; $sel_frm_des = ""; } if (!isset($recvpay)) { $recvpay = ""; } if (empty($inv["comm"])) { db_conn("cubit"); $sql = "SELECT value FROM settings WHERE constant='DEFAULT_POS_COMMENTS'"; $rslt = db_exec($sql) or errDie("Unable to retrieve default comments from Cubit."); $inv["comm"] = base64_decode(pg_fetch_result($rslt, 0)); } /* -- Final Layout -- */ $details = "\n\t<script language=\"JavaScript\"><!--\n\t\tvar windowReference;\n\n\tfunction openRFPopup() {\n\t\twindowReference = window.open('rfid_batch.php?invid={$invid}','windowName','height=500,width=700,toolbar=no,menubar=no,scrollbars=no');\n\t\tif (!windowReference.opener)\n\t\t\twindowReference.opener = self;\n\t\t}\n\t//--></script>\n\n\t<center><h3>New Point of Sale Invoice</h3>\n\t<form method='POST' name='formName'>\n\t<input type='hidden' name='key' value='update' />\n\t<input type='hidden' name='invid' value='{$invid}' />\n\t<input type='hidden' name='SCROLL' value='yes'>\n\t</form>\n\t<script>\n\tfunction ptot_recvpay() {\n\t\tif (ptot_amt() > 0) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\talert('Enter amounts received by customer above.');\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tfunction pfld_num(fn) {\n\t\ti = getObject(fn).value;\n\n\t\tif (i) {\n\t\t\treturn parseFloat(i);\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\tfunction ptot_amt(nocredit) {\n\t\ti = pfld_num('pcash');\n\t\ti += pfld_num('pcc');\n\t\ti += pfld_num('pcheque');\n\n\t\tif (!nocredit && getObject('pcredit')) {\n\t\t\ti += pfld_num('pcredit');\n\t\t}\n\n\t\treturn i.toFixed(2);\n\t}\n\n\tfunction ptot_update() {\n\t\tgetObject('ptot').innerHTML = '" . CUR . " ' + ptot_amt();\n\n\t\tif (o = getObject('recvpay')) {\n\t\t\to.value = 'Receive Payment: " . CUR . " ' + ptot_amt(true);\n\t\t}\n\t}\n\n\tfunction paytotal(id) {\n\t\tgetObject('pcash').value = '0.00';\n\t\tgetObject('pcc').value = '0.00';\n\t\tgetObject('pcheque').value = '0.00';\n\t\tif (getObject('pcredit')) getObject('pcredit').value = '0.00';\n\n\t\tgetObject(id).value = getObject('itotal').value;\n\n\t\tptot_update();\n\t}\n\t</script>\n\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t<input type='hidden' name='key' value='update'>\n\t\t<input type='hidden' name='invid' value='{$invid}'>\n\t\t<input type='hidden' name='stkerr' value='{$stkerr}'>\n\t\t<input type='hidden' id='itotal' value='{$TOTAL}' />\n\t\t<input type='hidden' name='prev_cusnum' value='{$cusnum}' />\n\t\t<input type='hidden' name='SCROLL' value='yes'>\n\t<table " . TMPL_tblDflts . " width='95%'>\n \t\t<tr>\n \t\t\t<td valign='top'>\n\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th colspan='2'> Customer Details </th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Department</td>\n\t\t\t\t\t\t<td valign='center'>{$depts}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Customer</td>\n\t\t\t\t\t\t<td valign='center'>{$customers}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t{$cd}\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Customer Telephone Number</td>\n\t\t\t\t\t\t<td valign='center'><input type='text' size='20' name='telno' value='{$inv['telno']}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Customer Order number</td>\n\t\t\t\t\t\t<td valign='center'><input type='text' size='10' name='cordno' value='{$cordno}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th colspan='2'>Point of Sale</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Barcode</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type='text' size='13' name='bar' value=''>\n\t\t\t\t\t\t\t<input type='button' onClick='javascript:openRFPopup();' value='RFID Batch'>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th colspan='2'>Options</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Select Using</td>\n\t\t\t\t\t\t<td>Stock Code<input type='radio' name='sel_frm' value='stkcod' onChange='javascript:document.form.submit();' {$sel_frm_cod}> Stock Description<input type='radio' name='sel_frm' value='stkdes' onChange='javascript:document.form.submit();' {$sel_frm_des}></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Stock Filter</td>\n\t\t\t\t\t\t<td><input type='text' size='13' name='des' value='{$des}'> <input type='submit' value='Search'> <input type='submit' name='des' value='Show All'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</td>\n\t\t\t<td valign='top' align='right'>\n\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th colspan='2'>Invoice Details</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Invoice No.</td>\n\t\t\t\t\t\t<td valign='center'>{$inv['invid']}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Sales Order No.</td>\n\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='ordno' value='{$inv['ordno']}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Invoice Date</td>\n\t\t\t\t\t\t<td valign='center' nowrap='t'>" . mkDateSelect("pinv", $pinv_year, $pinv_month, $pinv_day) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td nowrap='t'>VAT Inclusive</td>\n\t\t\t\t\t\t<td valign='center'>Yes <input type='radio' size='7' name='chrgvat' value='inc' {$chin}> No<input type='radio' size='7' name='chrgvat' value='exc' {$chex}></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Sales Person</td>\n\t\t\t\t\t\t{$sales}\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Trade Discount</td>\n\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='traddisc' value='{$inv['traddisc']}'>%</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Delivery Charge</td>\n\t\t\t\t\t\t<td valign='center'><input type='text' size='7' name='delchrg' value='{$inv['delchrg']}'>{$Vatcodes}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th colspan='2'>Payment Details </th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>User</td>\n\t\t\t\t\t\t<td><input type='hidden' name='user' value='" . USER_NAME . "'>" . USER_NAME . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td nowrap='t'>Amount Paid Cash</td>\n\t\t\t\t\t\t<td nowrap='t'>\n\t\t\t\t\t\t\t<input size='12' type='text' name='pcash' id='pcash' value='{$inv['pcash']}' onchange='ptot_update();'>\n\t\t\t\t\t\t\t<input type='button' value='« Total' onclick='paytotal(\"pcash\");' />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td nowrap='t'>Amount Paid Cheque</td>\n\t\t\t\t\t\t<td nowrap='t'>\n\t\t\t\t\t\t\t<input size='12' type='text' name='pcheque' id='pcheque' value='{$inv['pcheque']}' onchange='ptot_update();'>\n\t\t\t\t\t\t\t<input type='button' value='« Total' onclick='paytotal(\"pcheque\");' />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td nowrap='t'>Amount Paid Credit Card</td>\n\t\t\t\t\t\t<td nowrap='t'>\n\t\t\t\t\t\t\t<input size='12' type='text' name='pcc' id='pcc' value='{$inv['pcc']}' onchange='ptot_update();'>\n\t\t\t\t\t\t\t<input type='button' value='« Total' onclick='paytotal(\"pcc\");' />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t{$recvpay}\n\t\t\t\t\t{$pc}\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td nowrap='t'>Total Covered</td>\n\t\t\t\t\t\t<td nowrap='t' id='ptot'>" . CUR . " " . sprint($inv["pcash"] + $inv["pcheque"] + $inv["pcc"] + $inv["pcredit"]) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</td>\n\t\t</tr>\n\t\t<tr><td><br></td></tr>\n\t\t<tr>\n\t\t\t<td colspan='2'>{$products}</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td width='70%' valign='top'>\n\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td rowspan='2'>" . mkQuickLinks(ql("pos-invoice-new-no-neg.php", "New POS Invoice"), ql("pos-invoice-list.php", "View POS Invoices"), ql("customers-new.php", "New Customer")) . "\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<th width='30%'>Comments</th>\n\t\t\t\t\t\t<td rowspan='5' valign='top' width='40%'>{$error}</td></tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td rowspan='4' align='center' valign='top'><textarea name='comm' rows='4' cols='20'>{$inv['comm']}</textarea></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</td>\n\t\t\t<td align='right' valign='top' width='30%'>\n\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>SUBTOTAL</td>\n\t\t\t\t\t\t<td align='right'>" . CUR . " <input type='hidden' name='SUBTOT' value='{$SUBTOT}'>{$SUBTOT}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Trade Discount</td>\n\t\t\t\t\t\t<td align='right'>" . CUR . " {$inv['discount']}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Delivery Charge</td>\n\t\t\t\t\t\t<td align='right'>" . CUR . " {$inv['delivery']}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td><b>VAT {$vat14}</b></td>\n\t\t\t\t\t\t<td align='right'>" . CUR . " {$VAT}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<th>GRAND TOTAL</th>\n\t\t\t\t\t\t<td align='right'>" . CUR . " {$TOTAL}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t{$rd}\n\t\t\t\t</table>\n\t\t\t</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td align='right'><input name='diffwhBtn' type='submit' value='Different Store'> | <input name='addprodBtn' type='submit' value='Add Product'>| <input name='addnon' type='submit' value='Add Non stock Product'>{$save} </td>\n\t\t\t<td>| <input type='submit' name='upBtn' value='Update'>{$done}</td>\n\t\t</tr>\n\t</table>\n\t<a name='bottom'>\n\t</form>\n\t</center>"; return $details; }
function confirm($_POST, $err = "") { extract($_POST); if (isset($back)) { if (isset($vat)) { return details($_POST); } else { return slctacc(); } } # Redirect if must chrgvat if ($chrgvat == 'yes' && !isset($vataccid)) { return slctVatacc($_POST); } if (isset($vatcode)) { $vatcode += 0; } else { $vatcode = 0; } # validate input require_lib("validate"); $v = new validate(); $v->isOk($ctaccid, "num", 1, 50, "Invalid Account to be Credited."); $v->isOk($dtaccid, "num", 1, 50, "Invalid Account to be Debited."); $v->isOk($refnum, "num", 1, 10, "Invalid Reference number."); $v->isOk($amount, "float", 1, 20, "Invalid Amount."); $v->isOk($details, "string", 0, 255, "Invalid Details."); $v->isOk($author, "string", 1, 30, "Invalid Authorising person name."); $v->isOk($chrgvat, "string", 1, 4, "Invalid charge vat option."); if ($chrgvat == 'yes') { $v->isOk($vataccid, "num", 1, 50, "Invalid VAT Account number."); $v->isOk($vatdedacc, "num", 1, 50, "Invalid VAT Deductable Account number."); $v->isOk($vatinc, "string", 1, 3, "Invalid vat inclusive selection."); } $v->isOk($date, "date", 1, 1, "Invalid date."); if ($v->isError()) { $err = $v->genErrors(); if (isset($details)) { return details($_POST, $err); } else { return details2($_POST, $err); } } $amount = sprint($amount); if ($chrgvat == 'yes') { $vataccRs = get("core", "*", "accounts", "accid", $vataccid); $vatacc = pg_fetch_array($vataccRs); $vatin = ucwords($vatinc); //$VATP = TAX_VAT; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes WHERE id='{$vatcode}'"; $Ri = db_exec($Sl); $vd = pg_fetch_array($Ri); $VATP = $vd['vat_amount']; # if vat must be charged if ($vatinc == "no") { $vatamt = sprint($VATP / 100 * $amount); $totamt = sprint($amount + $vatamt); } else { $vatamt = sprint($amount / ($VATP + 100) * $VATP); $totamt = sprint($amount); } $vataccnum = "\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>VAT Amount</td>\n\t\t\t\t\t\t\t<td><input type='hidden' name='vatinc' value='{$vatinc}'><input type='hidden' name='vatamt' value='{$vatamt}'>{$vatamt}</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>Total Transaction Amount</td>\n\t\t\t\t\t\t\t<td>{$totamt}</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>VAT Account</td>\n\t\t\t\t\t\t\t<td><input type='hidden' name='vataccid' value='{$vataccid}'><input type='hidden' name='vatdedacc' value='{$vatdedacc}'>{$vatacc['topacc']}/{$vatacc['accnum']} - {$vatacc['accname']}</td>\n\t\t\t\t\t\t</tr>"; } else { $vataccnum = ""; } $dtaccRs = get("core", "*", "accounts", "accid", $dtaccid); $dtacc = pg_fetch_array($dtaccRs); $ctaccRs = get("core", "*", "accounts", "accid", $ctaccid); $ctacc = pg_fetch_array($ctaccRs); if (isb($dtaccid)) { return slctacc("<li class='err'>You selected a main account for debit account.</li>"); } if (isb($ctaccid)) { return slctacc("<li class='err'>You selected a main account for credit account.</li>"); } if ($vatcode > 0) { db_conn('cubit'); $Sl = "SELECT * FROM vatcodes WHERE id='{$vatcode}'"; $Ri = db_exec($Sl) or errDie("unable to get data."); $va = pg_fetch_array($Ri); $vd = "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>VAT Code</td>\n\t\t\t\t\t<td>{$va['code']}</td>\n\t\t\t\t</tr>"; } else { $vd = ""; } $confirm = "\n\t\t\t\t\t<h3>Record Journal transaction</h3>\n\t\t\t\t\t{$err}\n\t\t\t\t\t<h4>Confirm entry</h4>\n\t\t\t\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t\t\t\t<input type='hidden' name='key' value='write' />\n\t\t\t\t\t\t<input type='hidden' name='vatcode' value='{$vatcode}' />\n\t\t\t\t\t\t<input type='hidden' name='dtaccid' value='{$dtaccid}' />\n\t\t\t\t\t\t<input type='hidden' name='ctaccid' value='{$ctaccid}' />\n\t\t\t\t\t\t<input type='hidden' name='dtaccname' value='{$dtacc['accname']}' />\n\t\t\t\t\t\t<input type='hidden' name='ctaccname' value='{$ctacc['accname']}' />\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='refnum' value='{$refnum}' />\n\t\t\t\t\t\t<input type='hidden' name='amount' value='{$amount}' />\n\t\t\t\t\t\t<input type='hidden' name='chrgvat' value='{$chrgvat}' />\n\t\t\t\t\t\t<input type='hidden' name='details' value='{$details}' />\n\t\t\t\t\t\t<input type='hidden' name='author' value='{$author}' />\n\t\t\t\t\t\t<input type='hidden' name='jr_day' value='{$jr_day}' />\n\t\t\t\t\t\t<input type='hidden' name='jr_month' value='{$jr_month}' />\n\t\t\t\t\t\t<input type='hidden' name='jr_year' value='{$jr_year}' />\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td width='50%'><h3>Debit</h3></td>\n\t\t\t\t\t\t\t<td width='50%'><h3>Credit</h3></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>{$dtacc['topacc']}/{$dtacc['accnum']} - {$dtacc['accname']}</td>\n\t\t\t\t\t\t\t<td>{$ctacc['topacc']}/{$ctacc['accnum']} - {$ctacc['accname']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t" . TBL_BR . "\n\t\t\t\t\t\t" . TBL_BR . "\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>{$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>Reference number</td>\n\t\t\t\t\t\t\t<td>{$refnum}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t" . TBL_BR . "\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>{$amount}</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>Charge VAT </td>\n\t\t\t\t\t\t\t<td>{$chrgvat}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t{$vataccnum}\n\t\t\t\t\t\t{$vd}\n\t\t\t\t\t\t" . TBL_BR . "\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Details</td>\n\t\t\t\t\t\t\t<td>{$details}</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>Authorising Person</td>\n\t\t\t\t\t\t\t<td>{$author}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t" . TBL_BR . "\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td><input type='submit' name='back' value='« Correction'></td>\n\t\t\t\t\t\t\t<td align='right'><input type='submit' value='Write »'></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t\t</form>" . mkQuickLinks(ql("../reporting/index-reports.php", "Financials"), ql("../core/trans-new.php", "Journal Transactions")); return $confirm; }
function details($_POST, $error = "") { # Get vars extract($_POST); # validate input require_lib("validate"); $v = new validate(); if (isset($invid)) { $v->isOk($invid, "num", 1, 20, "Invalid invoice number."); } if (isset($deptid)) { $v->isOk($deptid, "num", 1, 20, "Invalid department number."); } if (isset($letters)) { $v->isOk($letters, "string", 0, 5, "Invalid First 3 Letters."); } # display errors, if any if ($v->isError()) { $errors = $v->getErrors(); foreach ($errors as $e) { $error .= "<li class='err'>{$e['msg']}</li>"; } $confirm .= "{$error}<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } if (!isset($deptid)) { $deptid = 0; } else { if (isset($invid)) { db_conn("cubit"); $sql = "UPDATE rec_invoices SET deptid='{$deptid}' WHERE invid='{$invid}' AND deptid<>'{$deptid}'"; db_exec($sql) or errDie("Error updating invoice department."); } } if (!isset($invid)) { $invid = create_dummy($deptid); $stkerr = "0,0"; } if (!isset($done)) { $done = ""; } if (!isset($stkerr)) { $stkerr = "0,0"; } # Get invoice info db_connect(); $sql = "SELECT * FROM rec_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 "<li class='err'>Invoice Not Found</li>"; } $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'] = "<li class='err'>Department not Found.</li>"; } else { $dept = pg_fetch_array($deptRslt); } # Get selected Customer info if (isset($letters)) { db_connect(); $sql = "SELECT * FROM customers WHERE cusnum = '{$inv['cusnum']}' AND div = '" . USER_DIV . "'"; $custRslt = db_exec($sql) or errDie("Unable to view customer"); if (pg_numrows($custRslt) < 1) { db_connect(); if ($inv['deptid'] == 0) { $searchdept = ""; } else { $searchdept = "deptid = '{$inv['deptid']}' AND "; } # Query server for customer info $sql = "\n\t\t\t\tSELECT * FROM customers \n\t\t\t\tWHERE {$searchdept} location != 'int' AND lower(surname) LIKE lower('{$letters}%') AND blocked != 'yes' AND div = '" . USER_DIV . "' \n\t\t\t\tORDER BY surname"; $custRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($custRslt) < 1) { $ajax_err = "<li class='err'>No customer names starting with <b>{$letters}</b> in database.</li>"; //return view_err($_POST, $err); } else { $customers = "<select name='cusnum' onChange='javascript:document.form.submit();'>"; $customers .= "<option value='-S' selected>Select Customer</option>"; while ($cust = pg_fetch_array($custRslt)) { $customers .= "<option value='{$cust['cusnum']}'>{$cust['cusname']} {$cust['surname']}</option>"; } $customers .= "</select>"; } # Take care of the unset vars $cust['addr1'] = ""; $cust['cusnum'] = ""; $cust['vatnum'] = ""; $cust['accno'] = ""; } else { $cust = pg_fetch_array($custRslt); $sql = "SELECT * FROM customers WHERE deptid = '{$inv['deptid']}' AND location != 'int' AND lower(surname) LIKE lower('{$letters}%') AND blocked != 'yes' AND div = '" . USER_DIV . "' ORDER BY surname"; $cusRslt = db_exec($sql) or errDie("Unable to view customers"); # Moarn if customer account has been blocked if ($cust['blocked'] == 'yes') { $error .= "<li class='err'>Error : Selected customer account has been blocked.</li>"; } // $customers = "<input type=hidden name=cusnum value='$cust[cusnum]'>$cust[cusname] $cust[surname]"; $cusnum = $cust['cusnum']; $customers = "<select name='cusnum' onChange='javascript:document.form.submit();'>"; // $customers .= "<option value='-S' selected>Select Customer</option>"; while ($cus = pg_fetch_array($cusRslt)) { $sel = ""; if ($cust['cusnum'] == $cus['cusnum']) { $sel = "selected"; } $customers .= "<option value='{$cus['cusnum']}' {$sel}>{$cus['cusname']} {$cus['surname']}</option>"; } $customers .= "</select>"; } } /* --- Start Drop Downs --- */ # Select warehouse db_conn("exten"); // $whs = "<select name='whidss[]' onChange='javascript:document.form.submit();'>"; $whs = "<select name='whidss[]'>"; $sql = "SELECT * FROM warehouses WHERE div = '" . USER_DIV . "' ORDER BY whname ASC"; $whRslt = db_exec($sql); if (pg_numrows($whRslt) < 1) { return "<li class='err'> There are no Stores found in Cubit.</li>"; } else { $whs .= "<option value='-S' disabled selected>Select Store</option>"; while ($wh = pg_fetch_array($whRslt)) { if (!user_in_store_team($wh["whid"], USER_ID)) { continue; } $whs .= "<option value='{$wh['whid']}'>({$wh['whno']}) {$wh['whname']}</option>"; } } $whs .= "</select>"; # Get sales people db_conn("exten"); $sql = "SELECT * FROM salespeople WHERE div = '" . USER_DIV . "' ORDER BY salesp ASC"; $salespRslt = db_exec($sql) or errDie("Unable to get sales people."); if (pg_numrows($salespRslt) < 1) { return "<li class='err'> There are no Sales People found in Cubit.</li>"; } else { $salesps = "<select name='salespn'>"; while ($salesp = pg_fetch_array($salespRslt)) { if ($salesp['salesp'] == $inv['salespn']) { $sel = "selected"; } else { $sel = ""; } $salesps .= "<option value='{$salesp['salesp']}' {$sel}>{$salesp['salesp']}</option>"; } $salesps .= "</select>"; } # Days drop downs $days = array("0" => "0", "7" => "7", "14" => "14", "30" => "30", "60" => "60", "90" => "90", "120" => "120"); $termssel = extlib_cpsel("terms", $days, $inv['terms']); # Keep the charge vat option stable if ($inv['chrgvat'] == "inc") { $chin = "checked=yes"; $chex = ""; $chno = ""; } elseif ($inv['chrgvat'] == "exc") { $chin = ""; $chex = "checked=yes"; $chno = ""; } else { $chin = ""; $chex = ""; $chno = "checked=yes"; } # Format date list($rinv_year, $rinv_month, $rinv_day) = explode("-", $inv['odate']); /* --- End Drop Downs --- */ // get the ID of the first warehouse db_conn("exten"); $sql = "SELECT whid FROM warehouses ORDER BY whid ASC LIMIT 1"; $rslt = db_exec($sql) or errDie("Error reading warehouses (FWH)."); if (pg_num_rows($rslt) > 0) { $FIRST_WH = pg_fetch_result($rslt, 0, 0); } else { $FIRST_WH = "-S"; } /* --- Start Products Display --- */ # Select all products $products = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<th>STORE</th>\n\t\t\t\t<th>ITEM NUMBER</th>\n\t\t\t\t<th>VAT CODE</th>\n\t\t\t\t<th>DESCRIPTION</th>\n\t\t\t\t<th>QTY</th>\n\t\t\t\t<th>UNIT PRICE</th>\n\t\t\t\t<th>UNIT DISCOUNT</th>\n\t\t\t\t<th>AMOUNT</th>\n\t\t\t\t<th>Remove</th>\n\t\t\t<tr>"; # get selected stock in this invoice db_connect(); $sql = "SELECT * FROM recinv_items WHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $stkdRslt = db_exec($sql); $i = 0; $key = 0; while ($stkd = pg_fetch_array($stkdRslt)) { $stkd['account'] += 0; if ($stkd['account'] != 0) { # Keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "\n\t\t\t\t<select name='accounts[]'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } if ($ad['accid'] == $stkd['account']) { $sel = "selected"; } else { $sel = ""; } $Accounts .= "<option value='{$ad['accid']}' {$sel}>{$ad['accname']}</option>"; } $Accounts .= "</select>"; $sernos = ""; # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[]' value='{$stkd['qty']}'>"; $viewcost = "<input type='text' size='8' name='unitcost[]' value='{$stkd['unitcost']}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodes[]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in product $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whids[]' value='{$stkd['whid']}'></td>\n\t\t\t\t\t<td><input type='hidden' name='stkids[]' value='{$stkd['stkid']}'>{$Vatcodes}</td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptions[]' value='{$stkd['description']}'> {$sernos}</td>\n\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t<td><input type='hidden' name='disc[]' value='{$stkd['disc']}'><input type='hidden' name='discp[]' value='{$stkd['discp']}'></td>\n\t\t\t\t\t<td nowrap><input type='hidden' name='amt[]' value='{$stkd['amt']}'> " . CUR . " " . sprint($stkd['amt']) . "</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$key}'><input type='hidden' name='SCROLL' value='yes'></td>\n\t\t\t\t</tr>"; $key++; } else { # Keep track of selected stock amounts $amts[$i] = $stkd['amt']; $i++; # 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); $sernos = "<input type='hidden' name='sernos[]' value='{$stkd['serno']}'>{$stkd['serno']}"; # check permissions if (perm("invoice-unitcost-edit.php")) { $viewcost = "<input type='text' size='8' name='unitcost[]' value='{$stkd['unitcost']}'>"; } else { $viewcost = "<input type='hidden' size='8' name='unitcost[]' value='{$stkd['unitcost']}'>{$stkd['unitcost']}"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodes[]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stkd['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in product $products .= "\n\t\t\t\t<input type='hidden' name='accounts[]' value='0'>\n\t\t\t\t<input type='hidden' name='descriptions[]' value=''>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><input type='hidden' name='whids[]' value='{$stkd['whid']}'>{$wh['whname']}</td>\n\t\t\t\t\t<td><input type='hidden' name='stkids[]' value='{$stkd['stkid']}'><a href='#bottom' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t{$sernos}\n\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtys[]' value='{$stkd['qty']}'></td>\n\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t<td><input type='text' size='4' name='disc[]' value='{$stkd['disc']}'> OR <input type='text' size='4' name='discp[]' value='{$stkd['discp']}' maxlength='5'>%</td>\n\t\t\t\t\t<td nowrap><input type='hidden' name='amt[]' value='{$stkd['amt']}'> " . CUR . " " . sprint($stkd['amt']) . "</td>\n\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$key}'><input type='hidden' name='SCROLL' value='yes'></td>\n\t\t\t\t</tr>"; $key++; } } # Look above(remprod keys) $keyy = $key; # Look above(if i = 0 then there are no products) if ($i == 0) { $done = ""; } else { $SCROLL = "yes"; } # check if stock warehouse was selected if (isset($whidss)) { foreach ($whidss as $key => $whid) { if (isset($stkidss[$key]) && $stkidss[$key] != "-S" && isset($cust['pricelist'])) { # skip if not selected if ($whid == "-S") { continue; } # Get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$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 = '{$stkidss[$key]}' AND div = '" . USER_DIV . "' ORDER BY stkcod ASC"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); $sernos = "<input type='hidden' name='sernos[]' value=''>"; # Get price from price list if it is set if (isset($cust['pricelist'])) { # get selected stock in this warehouse db_conn("exten"); $sql = "SELECT price FROM plist_prices WHERE listid = '{$cust['pricelist']}' AND stkid = '{$stk['stkid']}' AND div = '" . USER_DIV . "'"; $plRslt = db_exec($sql); if (pg_numrows($plRslt) > 0) { $pl = pg_fetch_array($plRslt); $stk['selamt'] = $pl['price']; } } /* -- Start Some Checks -- */ # check if they are selling too much if ($stk['units'] - $stk['alloc'] < $qtyss[$key]) { if (!in_array($stk['stkid'], explode(",", $stkerr))) { if ($stk['type'] != 'lab') { $stkerr .= ",{$stk['stkid']}"; $error .= "<li class='err'>Warning : Item number <b>{$stk['stkcod']}</b> does not have enough items available.</li>"; } } } /* -- End Some Checks -- */ # Calculate the Discount discount if ($discs[$key] < 1) { if ($discps[$key] > 0) { $discs[$key] = round($discps[$key] / 100 * $stk['selamt'], 2); } } else { $discps[$key] = round($discs[$key] * 100 / $stk['selamt'], 2); } # Calculate amount $amt[$key] = $qtyss[$key] * ($stk['selamt'] - $discs[$key]); $stk['selamt'] = sprint($stk['selamt']); # Check permissions if (perm("invoice-unitcost-edit.php")) { $viewcost = "<input type='text' size='8' name='unitcost[]' value='{$stk['selamt']}'>"; } else { $viewcost = "<input type='hidden' size='8' name='unitcost[]' value='{$stk['selamt']}'>{$stk['selamt']}"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t<select name='vatcodes[]'>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($stk['vatcode'] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $amt[$key] = sprint($amt[$key]); # Put in selected warehouse and stock $products .= "\n\t\t\t\t\t<input type='hidden' name='accounts[]' value='0'>\n\t\t\t\t\t<input type='hidden' name='descriptions[]' value=''>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td><input type='hidden' name='whids[]' value='{$whid}'>{$wh['whname']}</td>\n\t\t\t\t\t\t<td><input type='hidden' name='stkids[]' value='{$stk['stkid']}'><a href='#bottom' onclick='openwindow(\"stock-amt-det.php?stkid={$stk['stkid']}\")'>{$stk['stkcod']}</a></td>\n\t\t\t\t\t\t{$sernos}\n\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t<td>" . extlib_rstr($stk['stkdes'], 30) . "</td>\n\t\t\t\t\t\t<td><input type='text' size='3' name='qtys[]' value='{$qtyss[$key]}'></td>\n\t\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t\t<td><input type='text' size='4' name='disc[]' value='{$discs[$key]}'> OR <input type='text' size='4' name='discp[]' value='{$discps[$key]}' maxlength='5'>%</td>\n\t\t\t\t\t\t<td nowrap><input type='hidden' name='amt[]' value='{$amt[$key]}'> " . CUR . " {$amt[$key]}</td>\n\t\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$keyy}'></td>\n\t\t\t\t\t</tr>"; $keyy++; } elseif (isset($accountss[$key]) && $accountss[$key] != "0" && isset($cust['pricelist'])) { db_conn('core'); $Sl = "SELECT * FROM accounts WHERE accid='{$accountss[$key]}'"; $Ri = db_exec($Sl) or errDie("Unable to get account data."); if (pg_num_rows($Ri) < 1) { return "invalid."; } $ad = pg_fetch_array($Ri); # Calculate amount $amt[$key] = sprint($qtyss[$key] * $unitcosts[$key]); # Input qty if not serialised $qtyin = "<input type='text' size='3' name='qtys[]' value='{$qtyss[$key]}'>"; # Check permissions $viewcost = "<input type='text' size='8' name='unitcost[]' value='{$unitcosts[$key]}'>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t<select name='vatcodes[]'>\n\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vatcodess[$key] == $vd['id']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; # Put in selected warehouse and stock $products .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td colspan='2'>{$ad['accname']}<input type='hidden' name='accounts[]' value='{$accountss[$key]}'><input type='hidden' name='whids[]' value='0'></td>\n\t\t\t\t\t\t<td>{$Vatcodes}<input type='hidden' name='stkids[]' value='0'></td>\n\t\t\t\t\t\t<td><input type='text' size='20' name='descriptions[]' value='{$descriptionss[$key]}'></td>\n\t\t\t\t\t\t<td>{$qtyin}</td>\n\t\t\t\t\t\t<td>{$viewcost}</td>\n\t\t\t\t\t\t<td><input type='hidden' name='disc[]' value='0'><input type='hidden' name='discp[]' value='0'></td>\n\t\t\t\t\t\t<td nowrap><input type='hidden' name='amt[]' value='{$amt[$key]}'> " . CUR . " {$amt[$key]}</td>\n\t\t\t\t\t\t<td><input type='checkbox' name='remprod[]' value='{$keyy}'></td>\n\t\t\t\t\t</tr>"; $keyy++; } else { if (!isset($diffwhBtn)) { # skip if not selected if ($whid == "-S") { continue; } if (!isset($addnon)) { # get warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$whid}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); if (isset($ria) && $ria != "") { $len = strlen($ria); if ($ria == "Show All") { $Wh = ""; $ria = ""; } else { $Wh = "AND (lower(stkdes) LIKE lower('%{$ria}%')) OR (lower(stkcod) LIKE lower('%{$ria}%'))"; // $Wh = "AND lower(substr(stkcod,1,'$len'))=lower('$ria')"; } } else { $Wh = "AND FALSE"; $ria = ""; } # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE whid = '{$whid}' AND blocked = 'n' AND div = '" . USER_DIV . "' AND serd = 'no' {$Wh} ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { $error .= "<li class='err'>There are no stock items in the selected warehouse.</li>"; continue; } if (pg_numrows($stkRslt) == 1) { $ex = "selected"; } else { $ex = ""; } if (!isset($sel_frm) || $sel_frm == "stkcod") { $cods = "<select class='width : 15'name='stkidss[]' onChange='javascript:document.form.submit();'>"; $cods .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $cods .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $cods .= "</select> "; $descs = ""; } else { $descs = "<select class='width : 15'name='stkidss[]' onChange='javascript:document.form.submit();'>"; $descs .= "<option value='-S' disabled selected>Select Description</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $descs .= "<option value='{$stk['stkid']}'>{$stk['stkdes']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $descs .= "</select> "; $cods = ""; } # put in drop down and warehouse $products .= "\n\t\t\t\t\t\t\t<input type='hidden' name='accountss[]' value='0'>\n\t\t\t\t\t\t\t<input type='hidden' name='descriptionss[]' value=''>\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' name='whidss[]' value='{$whid}'>{$wh['whname']}</td>\n\t\t\t\t\t\t\t\t<td>{$cods}</td>\n\t\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t\t<td>{$descs}</td>\n\t\t\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t\t\t<td><input type='text' size='4' name='discs[]' value='0'> OR <input type='text' size='4' name='discps[]' value='0' maxlength='5'>%</td>\n\t\t\t\t\t\t\t\t<td><input type='hidden' name='amts[]' value='0.00'>" . CUR . " 0.00</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t</tr>"; } else { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "\n\t\t\t\t\t\t\t<select name='accountss[]' onChange='javascript:document.form.submit();'>\n\t\t\t\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value={$ad['accid']}>{$ad['accname']}</option>"; } $Accounts .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t\t\t\t<select name='vatcodess[]'>\n\t\t\t\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; //<input type='hidden' name='stkidss[]' value=''> $products .= "\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whidss[]' value='{$FIRST_WH}'></td>\n\t\t\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[]'></td>\n\t\t\t\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t\t\t\t<td><input type='text' name='unitcosts[]' size='7'></td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t\t\t\t<td><input type='hidden' name='discs[]' value='0'><input type='hidden' name='discps[]' value='0' ></td>\n\t\t\t\t\t\t\t</tr>"; } } } } } else { if (!(isset($diffwhBtn) || isset($addnon))) { # check if setting exists db_connect(); $sql = "SELECT value FROM set WHERE label = 'DEF_WH' AND div = '" . USER_DIV . "'"; $Rslt = db_exec($sql) or errDie("Unable to check database for existing settings."); if (pg_numrows($Rslt) > 0) { $set = pg_fetch_array($Rslt); $whid = $set['value']; if (isset($wtd) && $wtd != 0) { $whid = $wtd; } # get selected warehouse name db_conn("exten"); $sql = "SELECT whname FROM warehouses WHERE whid = '{$whid}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); if (isset($ria) && $ria != "") { $len = strlen($ria); if ($ria == "Show All") { $Wh = ""; $ria = ""; } else { $Wh = "AND lower(substr(stkcod,1,'{$len}'))=lower('{$ria}')"; $ria = ""; } } else { $Wh = ""; $ria = ""; } # get stock on this warehouse db_connect(); $sql = "SELECT * FROM stock WHERE whid = '{$whid}' AND blocked = 'n' AND div = '" . USER_DIV . "' AND serd = 'no' {$Wh} ORDER BY stkcod ASC"; $stkRslt = db_exec($sql) or errDie("Unable to retrieve stocks from database."); if (pg_numrows($stkRslt) < 1) { if (!isset($err)) { $err = ""; } $err .= "<li>There are no stock items in the selected store.</li>"; //ontinue; } $stks = "<select name='stkidss[]' onChange='javascript:document.form.submit();'>"; $stks .= "<option value='-S' disabled selected>Select Number</option>"; $count = 0; while ($stk = pg_fetch_array($stkRslt)) { $stks .= "<option value='{$stk['stkid']}'>{$stk['stkcod']} (" . sprint3($stk['units'] - $stk['alloc']) . ")</option>"; } $stks .= "</select> "; $products .= "\n\t\t\t\t\t<input type='hidden' name='descriptionss[]' value=''>\n\t\t\t\t\t<input type='hidden' name='vatcodess[]' value=''>\n\t\t\t\t\t<input type='hidden' name='accountss[]' value='0'>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td><input type='hidden' name='whidss[]' value='{$whid}'>{$wh['whname']}</td>\n\t\t\t\t\t\t<td>{$stks}</td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t<td><input type='hidden' size='3' name='qtyss[]' value='1'>1</td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t<td><input type='text' size='4' name='discs[]' value='0'> OR <input type='text' size='4' name='discps[]' value='0' maxlength='5'>%</td>\n\t\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t</tr>"; } else { $products .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>{$whs}</td>\n\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t\t<td><input type='text' size='4' name='discs[]' value='0'> OR <input type='text' size='4' name='discps[]' value='0' maxlength='5'>%</td>\n\t\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t</tr>"; } } else { if (isset($addnon)) { db_conn('core'); $Sl = "SELECT accid,topacc,accnum,accname FROM accounts WHERE acctype='I' ORDER BY accname"; $Ri = db_exec($Sl) or errDie("Unable to get accounts."); $Accounts = "\n\t\t\t\t<select name='accountss[]'>\n\t\t\t\t\t<option value='0'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isb($ad['accid'])) { continue; } $Accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $Accounts .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t\t\t<select name='vatcodess[]'>\n\t\t\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['del'] == "Yes") { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; $products .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='2'>{$Accounts}<input type='hidden' name='whidss[]' value='{$FIRST_WH}'></td>\n\t\t\t\t\t<input type='hidden' name='stkidss[]' value='-S'>\n\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t<td><input type='text' size='20' name='descriptionss[]'></td>\n\t\t\t\t\t<td><input type='text' size='3' name='qtyss[]' value='1'></td>\n\t\t\t\t\t<td><input type='text' name='unitcosts[]' size='7'></td>\n\t\t\t\t\t<td></td>\n\t\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t\t<td><input type='hidden' name='discs[]' value='0'><input type='hidden' name='discps[]' value='0'></td>\n\t\t\t\t</tr>"; } } } /* -- start Listeners -- */ if (isset($diffwhBtn)) { $products .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>{$whs}</td>\n\t\t\t\t<td> </td>\n\t\t\t\t<td></td>\n\t\t\t\t<td> </td>\n\t\t\t\t<td> </td>\n\t\t\t\t<td><input type='text' size='4' name='discs[]' value='0'> OR <input type='text' size='4' name='discps[]' value='0' maxlength='5'>%</td>\n\t\t\t\t<td>" . CUR . " 0.00</td>\n\t\t\t\t<td></td>\n\t\t\t</tr>"; } /* -- End Listeners -- */ $products .= "</table>"; /* --- End Products Display --- */ /* --- Start Some calculations --- */ # Calculate subtotal $SUBTOT = sprint($inv['subtot']); # Calculate tradediscm if ($inv['traddisc'] > 0) { $traddiscm = sprint($inv['traddisc'] / 100 * ($SUBTOT + $inv['delchrg'])); } else { $traddiscm = "0.00"; } $VATP = TAX_VAT; # Calculate subtotal $SUBTOT = sprint($inv['subtot']); $VAT = sprint($inv['vat']); $TOTAL = sprint($inv['total']); $inv['delchrg'] = sprint($inv['delchrg']); /* --- End Some calculations --- */ /*--- Start checks --- */ # check only if the customer is selected if (isset($cusnum) && $cusnum != "-S") { #check againg credit limit if ($TOTAL + $cust['balance'] > $cust['credlimit']) { $error .= "<li class='err'>Warning : Customers Credit limit of <b>" . CUR . " " . sprint($cust["credlimit"]) . "</b> has been exceeded"; } $avcred = $cust['credlimit'] - $cust['balance']; } else { $avcred = "0.00"; } $inv['delvat'] += 0; if ($inv['delvat'] == 0) { $Sl = "SELECT * FROM vatcodes WHERE del='Yes'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $vd = pg_fetch_array($Ri); $inv['delvat'] = $vd['id']; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "\n\t\t<select name='delvat'>\n\t\t\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['id'] == $inv['delvat']) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM costcenters"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) > 0) { $ctd = "\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Cost Center</th>\n\t\t\t\t\t<th>Percentage</th>\n\t\t\t\t</tr>"; $i = 0; while ($data = pg_fetch_array($Ri)) { $Sl = "SELECT * FROM invc WHERE inv='{$invid}' AND cid='{$data['ccid']}'"; $Rq = db_exec($Sl); $cd = pg_fetch_array($Rq); $ctd .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$data['centername']}</td>\n\t\t\t\t\t<td><input type='text' name='ct[{$data['ccid']}]' size='5' value='{$cd['amount']}'>%</td>\n\t\t\t\t</tr>"; $i++; } $ctd .= "</table>"; } else { $ctd = ""; } // Retrieve default comments from Cubit if (empty($inv["comm"])) { db_conn("cubit"); $sql = "SELECT value FROM settings WHERE constant='DEFAULT_COMMENTS'"; $commRslt = db_exec($sql) or errDie("Unable to retrieve default comment from Cubit."); $comment = base64_decode(pg_fetch_result($commRslt, 0)); } else { $comment = $inv["comm"]; } if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } // Which display method was selected if (isset($sel_frm) && $sel_frm == "stkdes") { $sel_frm_cod = ""; $sel_frm_des = "checked"; } else { $sel_frm_cod = "checked"; $sel_frm_des = ""; } /*--- Start checks --- */ /* -- Final Layout -- */ $details_begin = "\n\t\t<center>\n\t\t<h3>Recurring Invoice</h3>\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='key' value='update'>\n\t\t\t<input type='hidden' name='invid' value='{$invid}'>\n\t\t\t<input type='hidden' name='stkerr' value='{$stkerr}'>\n\t\t<table " . TMPL_tblDflts . " width='95%'>\n\t\t\t<tr>\n\t\t\t\t<td valign='top'>\n\t\t\t\t\t<div id='cust_selection'>"; if (empty($ajax_err) && (isset($cusnum) || AJAX)) { if (isset($cusnum)) { $OTS_OPT = onthespot_encode(SELF, "cust_selection", "deptid={$inv['deptid']}&letters={$letters}&cusnum={$cusnum}&invid={$invid}"); $custedit = "\n\t\t\t\t<td nowrap>\n\t\t\t\t\t<a href='javascript: popupSized(\"cust-edit.php?cusnum={$cusnum}&onthespot={$OTS_OPT}\", \"edit_cust\", 700, 630);'>\n\t\t\t\t\t\tEdit Customer Details\n\t\t\t\t\t</a>\n\t\t\t\t</td>"; } else { $custedit = ""; } $ajaxOut = "\n\t\t\t<input type='hidden' name='letters' value='{$letters}'>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'> Customer Details </th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Department</td>\n\t\t\t\t\t<td valign='center'>{$dept['deptname']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Account No.</td>\n\t\t\t\t\t<td valign='center'>{$cust['accno']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer</td>\n\t\t\t\t\t<td valign='center'>{$customers}</td>\n\t\t\t\t\t{$custedit}\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td valign='top'>Customer Address</td>\n\t\t\t\t\t<td valign='center'>" . nl2br($cust['addr1']) . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer Order number</td>\n\t\t\t\t\t<td valign='center'><input type='text' size='10' name='cordno' value='{$inv['cordno']}'></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Customer VAT Number</td>\n\t\t\t\t\t<td>{$cust['vatnum']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'>Point of Sale</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Barcode</td>\n\t\t\t\t\t<td><input type='text' size='13' name='bar' value=''></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Using</td>\n\t\t\t\t\t<td>Stock Code<input type='radio' name='sel_frm' value='stkcod' onChange='javascript:document.form.submit();' {$sel_frm_cod}><br>Stock Description<input type='radio' name='sel_frm' value='stkdes' onChange='javascript:document.form.submit();' {$sel_frm_des}></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "' " . ass("Type the first letters of the stock code you are looking for.") . ">\n\t\t\t\t\t<td>Stock Filter</td>\n\t\t\t\t\t<td nowrap><input type='text' size='13' name='ria' value='{$ria}'> <input type='submit' value='Search'> <input type='submit' name='ria' value='Show All'></td>\n\t\t\t\t</tr>\n\t\t\t</table>"; } else { # Query server for depts db_conn("exten"); $sql = "SELECT * FROM departments WHERE div = '" . USER_DIV . "' ORDER BY deptname ASC"; $deptRslt = db_exec($sql) or errDie("Unable to view customers"); if (pg_numrows($deptRslt) < 1) { return "<li class='err'>There are no Departments found in Cubit.</li>"; } else { $depts = "<select id='deptid'>"; $depts .= "<option value='0'>All Departments</option>"; while ($dept = pg_fetch_array($deptRslt)) { $depts .= "<option value='{$dept['deptid']}'>{$dept['deptname']}</option>"; } $depts .= "</select>"; } if (!isset($ajax_err)) { $ajax_err = ""; } $ajaxOut = "\n\t\t\t<script>\n\t\t\t\tfunction updateCustSelection() {\n\t\t\t\t\tdeptid = getObject('deptid').value;\n\t\t\t\t\tletters = getObject('letters').value;\n\t\t\t\t\tajaxRequest('" . SELF . "', 'cust_selection', AJAX_SET, 'letters='+letters+'&deptid='+deptid+'&invid={$invid}');\n\t\t\t\t}\n\t\t\t</script>\n\t\t\t{$ajax_err}\n\t\t\t<table " . TMPL_tblDflts . " width='400'>\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'>New Recurring Invoice</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Select Department</td>\n\t\t\t\t\t<td valign='center'>{$depts}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>First Letters of customer</td>\n\t\t\t\t\t<td valign='center'><input type='text' size='5' id='letters' maxlength='5'></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td> </td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td valign='center'><input type='button' value='Update' onClick='updateCustSelection();'></td>\n\t\t\t\t</tr>\n\t\t\t</table>"; } if (isset($diffwhBtn) or isset($addprodBtn) or isset($addnon) or isset($upBtn) or isset($saveBtn) or isset($ria)) { $jump_bot = "\n\t\t\t<script>\n\t\t\t\twindow.location.hash='bottom';\n\t\t\t</script>"; } else { $jump_bot = ""; } $details_end = "\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t\t<td valign='top' align='right'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th colspan='2'> Invoice Details </th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Invoice No.</td>\n\t\t\t\t\t\t\t<td valign='center'>RI {$inv['invid']}</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>Document Ref No.</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='docref' value='{$inv['docref']}'></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>Sales Order No.</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='ordno' value='{$inv['ordno']}'></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>VAT Inclusive</td>\n\t\t\t\t\t\t\t<td valign='center'>Yes <input type='radio' size='7' name='chrgvat' value='inc' {$chin}> No<input type='radio' size='7' name='chrgvat' value='exc' {$chex}></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>Terms</td>\n\t\t\t\t\t\t\t<td valign='center'>{$termssel} Days</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>Sales Person</td>\n\t\t\t\t\t\t\t<td valign='center'>{$salesps}</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>Invoice Date</td>\n\t\t\t\t\t\t\t<td valign='center'>" . mkDateSelect("rinv", $rinv_year, $rinv_month, $rinv_day) . "</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>Available Credit</td>\n\t\t\t\t\t\t\t<td>" . CUR . " " . sprint($avcred) . "</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>Trade Discount</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='5' name='traddisc' value='{$inv['traddisc']}'>%</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>Delivery Charge</td>\n\t\t\t\t\t\t\t<td valign='center'><input type='text' size='7' name='delchrg' value='{$inv['delchrg']}'>{$Vatcodes}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td colspan='2'>{$ctd}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr><td><br></td></tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='2'>{$products}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>\n\t\t\t\t\t<p>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td rowspan='2'>" . mkQuickLinks(ql("cust-credit-stockinv.php", "New Invoice"), ql("rec-invoice-view.php", "View Recurring Invoices"), ql("customers-new.php", "New Customer")) . "\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<th width='25%'>Comments</th>\n\t\t\t\t\t\t\t<td rowspan='5' valign='top' width='50%'>{$error}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td class='" . bg_class() . "' rowspan='4' align='center' valign='top'><textarea name='comm' rows='4' cols='20'>{$comment}</textarea></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t\t<td align='right' valign='top'>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<td>SUBTOTAL</td>\n\t\t\t\t\t\t\t<td align='right'>" . CUR . " <input type='hidden' name='SUBTOT' value='{$SUBTOT}'>{$SUBTOT}</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>Trade Discount</td>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$inv['discount']}</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>Delivery Charge</td>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$inv['delivery']}</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><b>VAT {$vat14}</b></td>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$VAT}</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<th>GRAND TOTAL</th>\n\t\t\t\t\t\t\t<td align='right' nowrap>" . CUR . " {$TOTAL}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td align='right'><input name='diffwhBtn' type='submit' value='Different Store'> | <input name='addprodBtn' type='submit' value='Add Product'> | <input name='addnon' type='submit' value='Add Non stock Product'> | <input type='submit' name='upBtn' value='Update'> </td>\n\t\t\t\t<td> | <input type='submit' name='saveBtn' value='Save »'></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t<a name='bottom'>\n\t\t</form>\n\t\t</center>\n\t\t{$jump_bot}"; if (AJAX) { return $ajaxOut; } else { return "{$details_begin}{$ajaxOut}{$details_end}"; } }
function view($VARS = array(), $err = "") { extract($VARS); if (!isset($accid)) { $accid = ""; } $vars = array("bankname", "branchname", "loc", "fcid", "branchcode", "accname", "accnum", "cardnum", "mon", "year", "lastdigits", "cardname", "cardtyp", "details"); $vard = array("cardtyp" => "Visa", "mon" => date("m"), "year" => date("Y")); foreach ($vars as $key => $val) { if (!isset(${$val})) { ${$val} = isset($vard[$val]) ? $vard[$val] : ""; } } if (strlen($lastdigits) < 1) { $lastdigits = "000"; } db_connect(); # Locations drop down $locs = array("loc" => "Local", "int" => "International"); $locsel = extlib_cpsel("loc", $locs, $loc); # currency drop down $currsel = ext_unddbsel("fcid", "currency", "fcid", "descrip", "There are is no currency found in Cubit, please add currency first.", $fcid); $chm = ""; $chv = ""; $cho = ""; if ($cardtyp == 'Visa') { $chv = "checked=yes"; } elseif ($cardtyp == 'Mastercard') { $chm = "checked=yes"; } else { $cho = "checked=yes"; } core_connect(); $sql = "SELECT * FROM accounts WHERE acctype = 'B' AND div = '" . USER_DIV . "' ORDER BY accname"; $accRslt = db_exec($sql) or errDie("Could not retrieve accounts from Cubit.", SELF); if (pg_numrows($accRslt) < 1) { return "<li> There are no balance accouts in Cubit."; } $accs = "<select name='accid'>"; while ($acc = pg_fetch_array($accRslt)) { if (isbank($acc['accid'])) { continue; } if (isb($acc['accid'])) { continue; } if ($accid == $acc['accid']) { $accs .= "<option value='{$acc['accid']}' selected>{$acc['accname']}</option>"; } else { $accs .= "<option value='{$acc['accid']}'>{$acc['accname']}</option>"; } } $accs .= "</select>"; //layout $view = "\n\t\t<h3>Add New Credit Card Account</h3>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='key' value='confirm'>\n\t\t\t<tr>\n\t\t\t\t<td colspan='2'>{$err}</td>\n\t\t\t</tr>\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>" . REQ . "Bank Name</td>\n\t\t\t\t<td><input type='text' size='20' name='bankname' value='{$bankname}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Type</td>\n\t\t\t\t<td>{$locsel}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Currency</td>\n\t\t\t\t<td>{$currsel}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Branch Name</td>\n\t\t\t\t<td><input type='text' size='20' name='branchname' value='{$branchname}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Branch Code</td>\n\t\t\t\t<td><input type='text' size='20' name='branchcode' value='{$branchcode}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Account Name</td>\n\t\t\t\t<td><input type='text' size='20' name='accname' maxlength='50' value='{$accname}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Account Number</td>\n\t\t\t\t<td><input type='text' size='20' name='accnum' value='{$accnum}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Ledger Account</td>\n\t\t\t\t<td>{$accs}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Card Number</td>\n\t\t\t\t<td><input type='text' size='25' name='cardnum' maxlength='16' value='{$cardnum}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Expiry Date</td>\n\t\t\t\t<td>\n\t\t\t\t\t<input type='text' size='2' name='mon' maxlength='2' value='{$mon}'>-\n\t\t\t\t\t<input type='text' size='4' name='year' maxlength='4' value='{$year}'>MM-YYYY\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Last 3 Digits at back of Card</td>\n\t\t\t\t<td><input type='text' size='3' maxlength='3' name='lastdigits' value='{$lastdigits}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Card Type</td>\n\t\t\t\t<td><input type='radio' name='cardtyp' value='Visa' {$chv}>Visa <input type='radio' name='cardtyp' value='Mastercard' {$chm}> Mastercard <input type='radio' name='cardtyp' value='other' {$cho}>Other: <input type='text' name='cardname' value='{$cardname}'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>" . REQ . "Details</td>\n\t\t\t\t<td><textarea cols='20' rows='3' name='details'>{$details}</textarea></td>\n\t\t\t</tr>\n\t\t\t<tr><td><br></td></tr>\n\t\t\t<tr>\n\t\t\t\t<td><input type='button' value='« Cancel' onClick='javascript:history.back();'></td>\n\t\t\t\t<td><input type='submit' value='Confirm »'></td>\n\t\t\t</tr>\n\t\t</form>\n\t\t</table>\n\t\t<p>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Quick Links</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><a href='../core/acc-new2.php'>Add Ledger Account</a></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><a href='../main.php'>Main Menu</a></td>\n\t\t\t</tr>\n\t\t</table>"; return $view; }