<?php session_start(); include ("../settings.php"); include ("../language/$cfg_language"); $lang=new language(); //updating row for an item already in sale. if(isset($_GET['update_item'])) { $k=$_GET['update_item']; $new_price=$_POST["price$k"]; $new_tax=$_POST["tax$k"]; $new_quantity=$_POST["quantity$k"]; $item_info=explode(' ',$_SESSION['items_in_sale'][$k]); $item_id=$item_info[0]; $percentOff=$item_info[4]; $_SESSION['items_in_sale'][$k]=$item_id.' '.$new_price.' '.$new_tax.' '.$new_quantity.' '.$percentOff; header("location: sale_ui.php"); } if(isset($_GET['discount'])) { $discount=$_POST['global_sale_discount']; if(is_numeric($discount)) { for($k=0;$k<count($_SESSION['items_in_sale']);$k++) { $item_info=explode(' ',$_SESSION['items_in_sale'][$k]); $item_id=$item_info[0]; $new_price=$item_info[1]*(1-($discount/100)); $tax=$item_info[2]; $quantity=$item_info[3]; $percentOff=$item_info[4]; $new_price=number_format($new_price,2,'.', ''); $_SESSION['items_in_sale'][$k]=$item_id.' '.$new_price.' '.$tax.' '.$quantity.' '.$percentOff; } header("location: sale_ui.php?global_sale_discount=$discount"); } } include ("../classes/db_functions.php"); include ("../classes/security_functions.php"); include ("../classes/display.php"); $dbf=new db_functions($cfg_server,$cfg_username,$cfg_password,$cfg_database,$cfg_tableprefix,$cfg_theme,$lang); $sec=new security_functions($dbf,'Sales Clerk',$lang); $display=new display($dbf->conn,$cfg_theme,$cfg_currency_symbol,$lang); $today = date("Y-m-d"); if(cfg_mustOpen && !$sec->isOpen()){ header("location: ../books/openshop.php"); exit(); } if(isset($_POST['customer'])) { if($cfg_numberForBarcode=="Row ID") { if($dbf->isValidCustomer($_POST['customer'])) { $_SESSION['current_sale_customer_id']=$_POST['customer']; } } else//try account_number { $id=$dbf->fieldToid($cfg_tableprefix.'customers','account_number',$_POST['customer']); if($dbf->isValidCustomer($id)) { $_SESSION['current_sale_customer_id']=$id; } else { echo "$lang->customerWithID/$lang->accountNumber ".$_POST['customer'].', '."$lang->isNotValid"; } } } ?> <html> <head> <title>PHP Point Of Sale</title> <script type="text/javascript" language="javascript"> <!-- function customerFocus() { document.scan_customer.customer.focus(); updateScanCustomerField(); } function itemFocus() { document.scan_item.item.focus(); updateScanItemField(); } function updateScanCustomerField() { document.scan_customer.customer.value=document.scan_customer.customer_list.value; } function updateScanItemField() { document.scan_item.item.value=document.scan_item.item_list.value; } //--> </script> </head> <?php if(isset($_SESSION['current_sale_customer_id'])) { ?> <body onLoad="itemFocus();"> <?php } else { ?> <body onLoad="customerFocus();"> <?php } $table_bg=$display->sale_bg; $items_table="$cfg_tableprefix".'items'; if(!$sec->isLoggedIn()) { header ("location: ../login.php"); exit(); } $display->displayTitle("$lang->newSale"); if(empty($_SESSION['current_sale_customer_id'])) { $customers_table="$cfg_tableprefix".'customers'; if(isset($_POST['customer_search']) and $_POST['customer_search']!='') { $search=$_POST['customer_search']; $_SESSION['current_customer_search']=$search; $customer_result=mysql_query("SELECT first_name,last_name,account_number,id FROM $customers_table WHERE last_name like \"%$search%\" or first_name like \"%$search%\" or id =\"$search\" ORDER by last_name",$dbf->conn); } elseif(isset($_SESSION['current_customer_search'])) { $search=$_SESSION['current_customer_search']; $customer_result=mysql_query("SELECT first_name,last_name,account_number,id FROM $customers_table WHERE last_name like \"%$search%\" or first_name like \"%$search%\" or id =\"$search\" ORDER by last_name",$dbf->conn); } elseif($dbf->getNumRows($customers_table) >200) { $customer_result=mysql_query("SELECT first_name,last_name,account_number,id FROM $customers_table ORDER by last_name LIMIT 0,200",$dbf->conn); } else { $customer_result=mysql_query("SELECT first_name,last_name,account_number,id FROM $customers_table ORDER by last_name",$dbf->conn); } $customer_title=isset($_SESSION['current_customer_search']) ? "<b><font color='white'>$lang->selectCustomer: </font></b>":"<font color='white'>$lang->selectCustomer: </font>"; echo "<table align='center' cellpadding='2' cellspacing='2' bgcolor='$table_bg'> <form name='select_customer' action='sale_ui.php' method='POST'> <tr><td align='left'><font color='white'>$lang->findCustomer:</font> <input type='text' size='8' name='customer_search'> <input type='submit' value='Go'><a href='delete.php?action=customer_search'><font size='-1' color='white'>[$lang->clearSearch]</font></a> </form></td></tr> <form name='scan_customer' action='sale_ui.php' method='POST'> <tr><td align='left'>$customer_title<select name='customer_list' onChange=\"updateScanCustomerField()\";>"; while($row=mysql_fetch_assoc($customer_result)) { if($cfg_numberForBarcode=="Row ID") { $id=$row['id']; } elseif($cfg_numberForBarcode=="Account/Item Number") { $id=$row['account_number']; } if ($cfg_sellToNonMembers == "1"){ $display_name=$row['last_name'].', '.$row['first_name']; echo "<option value=$id>$display_name</option></center>"; } else { //IF config is member only sales, only list them. $today = date('Y-m-d'); $membersinquery = "SELECT userID FROM visits WHERE DATE_FORMAT(intime,'%Y-%m-%d')='$today' AND endout IS NULL"; $membersinresult = mysql_query("$membersinquery",$dbf->conn); while ($inarray = mysql_fetch_array($membersinresult)){ if ($id == $inarray[userID]) { $display_name=$row['last_name'].', '.$row['first_name']; echo "<option value=$id>$display_name</option></center>"; } } } } echo "</select>"; echo "</td><br><br>"; echo "<tr><td align='left'><center><small><font color='white'>($lang->scanInCustomer)</font></small></center>"; echo"<font color='white'>$lang->customerID / $lang->accountNumber: </font><input type='text' name='customer' size='6'> <input type='submit'></td></tr> </form>"; } if(isset($_SESSION['current_sale_customer_id'])) { if(isset($_POST['item'])) { $item=$_POST['item']; $discount='0%'; if($cfg_numberForBarcode=="Account/Item Number") { $item=$dbf->fieldToid($items_table,'item_number',$_POST['item']); } if($dbf->isValidItem($item)) { if($dbf->isItemOnDiscount($item)) { $discount=$dbf->getPercentDiscount($item).'%'; $itemPrice=$dbf->getDiscountedPrice($item); } else { $itemPrice=$dbf->idToField($items_table,'unit_price',$item); } $itemTax=$dbf->idToField($items_table,'tax_percent',$item); $_SESSION['items_in_sale'][]=$item.' '.$itemPrice.' '.$itemTax.' '.'1'.' '.$discount; } else { echo "$lang->itemWithID/$lang->itemNumber ".$_POST['item'].', '."$lang->isNotValid"; } } if(isset($_SESSION['items_in_sale'])) { $num_items=count($_SESSION['items_in_sale']); } else { $num_items=0; } $temp_item_name=''; $temp_item_id=''; $temp_quantity=''; $temp_price=''; $finalSubTotal=0; $finalTax=0; $finalTotal=0; $totalItemsPurchased=0; $item_info=array(); $customers_table="$cfg_tableprefix".'customers'; $order_customer_first_name=$dbf->idToField($customers_table,'first_name',$_SESSION['current_sale_customer_id']); $order_customer_last_name=$dbf->idToField($customers_table,'last_name',$_SESSION['current_sale_customer_id']); $order_customer_name=$order_customer_first_name.' '.$order_customer_last_name; echo "<hr><center><a href=delete.php?action=all>[$lang->clearSale]</a></center>"; $items_table="$cfg_tableprefix".'items'; $brands_table="$cfg_tableprefix".'brands'; if(isset($_POST['item_search']) and $_POST['item_search']!='') { $search=$_POST['item_search']; $_SESSION['current_item_search']=$search; $item_result=mysql_query("SELECT item_name,unit_price,tax_percent,brand_id,item_number,quantity,id FROM $items_table WHERE item_name like \"%$search%\" or item_number= \"$search\" or id =\"$search\" ORDER by item_name",$dbf->conn); } elseif(isset($_SESSION['current_item_search'])) { $search=$_SESSION['current_item_search']; $item_result=mysql_query("SELECT item_name,unit_price,tax_percent,brand_id,item_number,quantity,id FROM $items_table WHERE item_name like \"%$search%\" or item_number= \"$search\" or id =\"$search\" ORDER by item_name",$dbf->conn); } elseif($dbf->getNumRows($items_table) >200) { $item_result=mysql_query("SELECT item_name,unit_price,tax_percent,brand_id,item_number,quantity,id FROM $items_table ORDER by item_name LIMIT 0,200",$dbf->conn); } else { $item_result=mysql_query("SELECT item_name,unit_price,tax_percent,brand_id,item_number,quantity,id FROM $items_table ORDER by item_name",$dbf->conn); } $item_title=isset($_SESSION['current_item_search']) ? "<b><font color='white'>$lang->selectItem: </font></b>":"<font color=white>$lang->selectItem: </font>"; echo "<form name='select_item' action='sale_ui.php' method='POST'> <table border='0' bgcolor='$table_bg' align='center'> <tr><td align='left'><font color='white'>$lang->findItem: <input type='text' size='8' name='item_search'></font> <input type='submit' value='Go'><a href='delete.php?action=item_search'><font size='-1' color='white'>[$lang->clearSearch]</font></a></td></tr>"; echo "</form><tr><td><form name='scan_item' action='sale_ui.php' method='POST'> $item_title <select name='item_list' onChange=\"updateScanItemField()\";>\n"; while($row=mysql_fetch_assoc($item_result)) { if($cfg_numberForBarcode=="Row ID") { $id=$row['id']; } elseif($cfg_numberForBarcode=="Account/Item Number") { $id=$row['item_number']; } $quantity=$row['quantity']; $brand_id=$row['brand_id']; $brand_name=$dbf->idToField("$brands_table",'brand',"$brand_id"); $unit_price=$row['unit_price']; $tax_percent=$row['tax_percent']; $option_value=$id; $display_item="$brand_name".'- '.$row['item_name']; if($quantity <=0) { echo "<option value='$option_value'>$display_item ($lang->outOfStockWarn)</option>\n"; } else { echo "<option value='$option_value'>$display_item</option>\n"; } } echo "</select></td></tr> <tr><td><center><small><font color='white'>($lang->scanInItem)</font></small></center> <font color='white'>$lang->itemID / $lang->itemNumber: </font><input type='text' name='item' size='6'> <input type='submit'></form></td></tr> <center>$lang->orderFor: <b>$order_customer_name</b></center><br> </table>"; echo "<h3 align='center'>$lang->shoppingCart</h3> <form name='add_sale' action='addsale.php' method='POST'>"; echo "<table border='0' bgcolor='$table_bg' cellspacing='0' cellpadding='2' align='center'> <tr><th><font color=CCCCCC>$lang->remove</font></th> <th><font color=CCCCCC>$lang->itemName</font></th> <th><font color=CCCCCC>$lang->unitPrice</font></th> <th><font color=CCCCCC>$lang->tax %</font></th> <th><font color=CCCCCC>$lang->quantity</font></th> <th><font color=CCCCCC>$lang->extendedPrice</font></th> <th><font color=CCCCCC>$lang->update</font></th> <th><font color=CCCCCC>$lang->percentOff</font></th> </tr>"; for($k=0;$k<$num_items;$k++) { $item_info=explode(' ',$_SESSION['items_in_sale'][$k]); $temp_item_id=$item_info[0]; $temp_item_name=$dbf->idToField($items_table,'item_name',$temp_item_id); $temp_price=$item_info[1]; $temp_tax=$item_info[2]; $temp_quantity=$item_info[3]; $temp_discount=$item_info[4]; $subTotal=$temp_price*$temp_quantity; $tax=$subTotal*($temp_tax/100); $rowTotal=$subTotal+$tax; $rowTotal=number_format($rowTotal,2,'.', ''); $finalSubTotal+=$subTotal; $finalTax+=$tax; $finalTotal+=$rowTotal; $totalItemsPurchased+=$temp_quantity; echo "<tr><td align='center'><a href=delete.php?action=item&pos=$k><font color=white>[$lang->delete]</font></a></td> <td align='center'><font color='white'><b>$temp_item_name</b></font></td> <td align='center'><input type=text name='price$k' value='$temp_price' size='8'></td> <td align='center'><input type=text name='tax$k' value='$temp_tax' size='3'></td> <td align='center'><input type=text name='quantity$k' value='$temp_quantity' size='3'></td> <td align='center'><font color='white'><b>$cfg_currency_symbol$rowTotal</b></font></td> <td align='center'><input type='button' name='updateQuantity$k' value='$lang->update' onclick=\"document.add_sale.action='sale_ui.php?update_item=$k';document.add_sale.submit();\"></td> <td align='center'><font color='white'><b>$temp_discount $lang->percentOff</b></font></td> <input type='hidden' name='item_id$k' value='$temp_item_id'> </tr>"; } $finalSubTotal=number_format($finalSubTotal,2,'.', ''); $finalTax=number_format($finalTax,2,'.', ''); $finalTotal=number_format($finalTotal,2,'.', ''); echo '</table>'; echo "<table align='center' ><br> <tr><td align='left'>$lang->saleSubTotal: $cfg_currency_symbol$finalSubTotal</td></tr> <tr><td align='left'>$lang->tax: $cfg_currency_symbol$finalTax</td></tr>"; if(isset($_GET['global_sale_discount'])) { $discount=$_GET['global_sale_discount']; echo"<tr><td align='left'>$discount% $lang->percentOff</td></tr>"; } echo"<tr><td align='left'><b>$lang->saleTotalCost: $cfg_currency_symbol$finalTotal</b></td></tr>"; echo'</table>'; echo "<br> <table align='center' bgcolor='$table_bg'><br> <tr><td align='left'><font color='white'>$lang->globalSaleDiscount</font></td> <td align='left'><input type='text' name='global_sale_discount' size='3'></td> <td><input type='button' name='updateQuantity$k' value='$lang->update' onclick=\"document.add_sale.action='sale_ui.php?discount=true';document.add_sale.submit();\"></td></tr> </table><br>"; echo "<br><table border='0' bgcolor='$table_bg' align='center'> <tr> <td> <font color='white'>$lang->paidWith:</font> </td> <td> <select name='paid_with'> <option value='$lang->cash'>$lang->cash</option> <option value='$lang->check'>$lang->check</option> <option value='$lang->credit'>$lang->credit</option> <option value='$lang->giftCertificate'>$lang->giftCertificate</option> <option value='$lang->account'>$lang->account</option> <option value='$lang->other'>$lang->other</option> </select> <font color='white'>$lang->amtTendered:<input type='text' name='amt_tendered'></font> </td> </tr> <tr> <td> <font color='white'>$lang->saleComment:</font> </td> <td> <input type=text name=comment size=25> </td> </tr> </table> <br> <input type=hidden name='totalItemsPurchased' value='$totalItemsPurchased'> <input type=hidden name='totalTax' value='$finalTax'> <input type=hidden name='finalTotal' value='$finalTotal'> <center><input type='submit' value='Add Sale'></center></form>"; } $dbf->closeDBlink(); ?> </body> </html>