function preprocess() { $me = CoreLocal::get('CashierNo'); $this->security = Authenticate::getPermission($me); if (isset($_REQUEST['selectlist'])) { if (!FormLib::validateToken()) { return false; } if (empty($_REQUEST['selectlist'])) { $this->change_page($this->page_url . "gui-modules/pos2.php"); return False; } elseif ($_REQUEST['selectlist'] == 'SUSPEND') { Database::getsubtotals(); if (CoreLocal::get("LastID") == 0) { CoreLocal::set("boxMsg", _("no transaction in progress")); CoreLocal::set('boxMsgButtons', array('Dismiss [clear]' => '$(\'#reginput\').val(\'CL\');submitWrapper();')); $this->change_page($this->page_url . "gui-modules/boxMsg2.php"); return False; } else { // ajax call to end transaction // and print receipt $ref = SuspendLib::suspendorder(); $this->add_onload_command("\$.ajax({\n type:'post',\n url:'{$this->page_url}ajax-callbacks/ajax-end.php',\n cache: false,\n data: 'receiptType=suspended&ref={$ref}',\n dataType: 'json',\n success: function(data){\n \$.ajax({\n type:'post',\n url:'{$this->page_url}ajax-callbacks/ajax-transaction-sync.php',\n cache: false,\n success: function(data){\n location='{$this->page_url}gui-modules/pos2.php';\n },\n error: function(e1){\n location='{$this->page_url}gui-modules/pos2.php';\n }\n });\n },\n error: function(e1){\n location='{$this->page_url}gui-modules/pos2.php';\n }\n });"); return True; } } else { if ($_REQUEST['selectlist'] == 'RESUME') { Database::getsubtotals(); if (CoreLocal::get("LastID") != 0) { CoreLocal::set("boxMsg", _("transaction in progress")); CoreLocal::set('boxMsgButtons', array('Dismiss [clear]' => '$(\'#reginput\').val(\'CL\');submitWrapper();')); $this->change_page($this->page_url . "gui-modules/boxMsg2.php"); } elseif (SuspendLib::checksuspended() == 0) { CoreLocal::set("boxMsg", _("no suspended transaction")); CoreLocal::set('boxMsgButtons', array('Dismiss [clear]' => '$(\'#reginput\').val(\'CL\');submitWrapper();')); CoreLocal::set("strRemembered", ""); $this->change_page($this->page_url . "gui-modules/boxMsg2.php"); } else { $this->change_page($this->page_url . "gui-modules/suspendedlist.php"); } return False; } else { if ($_REQUEST['selectlist'] == 'TR') { TenderReport::printReport(); $this->change_page($this->page_url . "gui-modules/pos2.php"); return False; } else { if ($_REQUEST['selectlist'] == 'OTR' && $this->security >= 30) { $this->change_page($this->page_url . 'gui-modules/requestInfo.php?class=AnyTenderReportRequest'); return False; } elseif ($_REQUEST['selectlist'] == 'UNDO' && $this->security >= 30) { $this->change_page($this->page_url . 'gui-modules/undo.php'); return false; } } } } } return True; }
function preprocess() { $this->my_drawer = ReceiptLib::currentDrawer(); $this->available = ReceiptLib::availableDrawers(); $this->is_admin = false; $db = Database::pDataConnect(); $sec = Authenticate::getPermission(CoreLocal::get('CashierNo')); if ($sec >= 30) { $this->is_admin = true; } if (isset($_REQUEST['selectlist'])) { if (empty($_REQUEST['selectlist'])) { if (empty($this->available) && !$this->is_admin && $this->my_drawer == 0) { // no drawer available and not admin // sign out and go back to main login screen Database::setglobalvalue("LoggedIn", 0); CoreLocal::set("LoggedIn", 0); CoreLocal::set("training", 0); CoreLocal::set("gui-scale", "no"); $this->change_page($this->page_url . "gui-modules/login2.php"); } else { $this->change_page($this->page_url . "gui-modules/pos2.php"); } return False; } if (substr($_REQUEST['selectlist'], 0, 2) == 'TO' && $this->is_admin) { // take over a drawer $new_drawer = substr($_REQUEST['selectlist'], 2); if ($this->my_drawer != 0) { // free up the current drawer if it exists ReceiptLib::drawerKick(); ReceiptLib::freeDrawer($this->my_drawer); } // switch to the requested drawer ReceiptLib::assignDrawer(CoreLocal::get('CashierNo'), $new_drawer); ReceiptLib::drawerKick(); $this->my_drawer = $new_drawer; } elseif (substr($_REQUEST['selectlist'], 0, 2) == 'SW') { // switch to available drawer $new_drawer = substr($_REQUEST['selectlist'], 2); foreach ($this->available as $id) { // verify the requested drawer is available if ($new_drawer == $id) { if ($this->my_drawer != 0) { // free up the current drawer if it exists ReceiptLib::drawerKick(); ReceiptLib::freeDrawer($this->my_drawer); } // switch to the requested drawer ReceiptLib::assignDrawer(CoreLocal::get('CashierNo'), $new_drawer); ReceiptLib::drawerKick(); $this->my_drawer = $new_drawer; break; } } } } return True; }
function body_content() { $local = array(); $other = array(); $db = Database::tDataConnect(); $localQ = 'SELECT amount, PAN, refNum FROM efsnetRequest GROUP BY amount, PAN, refNum'; $localR = $db->query($localQ); while ($w = $db->fetch_row($localR)) { $local['_l' . $w['refNum']] = '(CURRENT)' . $w['PAN'] . ' : ' . sprintf('%.2f', $w['amount']); } if (CoreLocal::get('standalone') == 0) { $emp = CoreLocal::get('CashierNo'); $sec = Authenticate::getPermission($emp); $supervisor = $sec >= 30 ? true : false; $db = Database::mDataConnect(); $otherQ = 'SELECT MIN(datetime) as dt, amount, PAN, refNum, cashierNo, laneNo, transNo FROM efsnetRequest WHERE date=' . date('Ymd'); if (!$supervisor) { $otherQ .= ' AND laneNo=' . (int) CoreLocal::get('laneno') . ' AND cashierNo=' . (int) CoreLocal::get('CashierNo'); } $otherQ .= ' GROUP BY amount, PAN, refNum ORDER BY datetime DESC'; $otherR = $db->query($otherQ); while ($w = $db->fetch_row($otherR)) { $other[$w['refNum']] = $w['dt'] . ' : ' . $w['cashierNo'] . '-' . $w['laneNo'] . '-' . $w['transNo'] . ' : ' . sprintf('%.2f', $w['amount']); } } ?> <div class="baseHeight"> <div class="listbox"> <form name="selectform" method="post" id="selectform" action="<?php echo $_SERVER['PHP_SELF']; ?> " > <select name="selectlist" size="10" id="selectlist" onblur="$('#selectlist').focus()" > <?php $selected = 'selected'; foreach ($local as $id => $label) { printf('<option %s value="%s">%s</option>', $selected, $id, $label); $selected = ''; } foreach ($other as $id => $label) { printf('<option %s value="%s">%s</option>', $selected, $id, $label); $selected = ''; } if (count($local) == 0 && count($other) == 0) { echo '<option value="" selected>No transactions found</option>'; } ?> </select> </form> </div> <div class="listboxText coloredText centerOffset"> <?php echo _("use arrow keys to navigate"); ?> <br /> <?php echo _("enter to reprint receipt"); ?> <br /> <?php echo _("clear to cancel"); ?> </div> <div class="clear"></div> </div> <?php $this->add_onload_command("\$('#selectlist').keypress(processkeypress);\n"); $this->add_onload_command("\$('#selectlist').focus();\n"); }
public function testAuthenticate() { CoreLocal::set('scaleDriver', ''); // don't interact w/ scale Database::setglobalvalue('LoggedIn', 1); Database::setglobalvalue('CashierNo', 1); $fail = Authenticate::checkPassword('9999'); $this->assertEquals(False, $fail); Database::setglobalvalue('CashierNo', 9999); $pass = Authenticate::checkPassword('9999'); $this->assertEquals(True, $pass); Database::setglobalvalue('LoggedIn', 0); Database::setglobalvalue('CashierNo', 1); $pass = Authenticate::checkPassword('9999'); $this->assertEquals(True, $pass); Database::setglobalvalue('LoggedIn', 0); Database::setglobalvalue('CashierNo', 1); $pass = Authenticate::checkPassword('56'); $this->assertEquals(True, $pass); Database::setglobalvalue('LoggedIn', 0); Database::setglobalvalue('CashierNo', 1); $fail = Authenticate::checkPassword('invalid password'); $this->assertEquals(false, $fail); $this->assertEquals(false, Authenticate::checkPermission('56', 50)); $this->assertEquals(false, Authenticate::checkPermission('56', 21)); $this->assertEquals(true, Authenticate::checkPermission('56', 20)); $this->assertEquals(true, Authenticate::checkPermission('56', 10)); $this->assertEquals(false, Authenticate::getEmployeeByPassword('asdf')); $this->assertInternalType('array', Authenticate::getEmployeeByPassword('56')); $this->assertEquals(false, Authenticate::getEmployeeByNumber(75)); $this->assertInternalType('array', Authenticate::getEmployeeByNumber(56)); $this->assertEquals(0, Authenticate::getPermission(55)); $this->assertEquals(20, Authenticate::getPermission(56)); }
function body_content() { $fes = Authenticate::getPermission(CoreLocal::get('CashierNo')); /* if front end security >= 25, pull all * available receipts; other wise, just * current cashier's receipt */ $result = -1; if ($fes >= 25) { $query = "select emp_no, register_no, trans_no, sum((case when trans_type = 'T' then -1 * total else 0 end)) as total " . "from localtranstoday " . " group by register_no, emp_no, trans_no\n having sum((case when trans_type='T' THEN -1*total ELSE 0 end)) >= 30\n order by register_no,emp_no,trans_no desc"; $db = Database::tDataConnect(); if (CoreLocal::get("standalone") == 0) { $query = str_replace("localtranstoday", "dtransactions", $query); $db = Database::mDataConnect(); } $result = $db->query($query); } else { $db = Database::tDataConnect(); $query = "\n SELECT emp_no, \n register_no, \n trans_no, \n SUM((CASE WHEN trans_type = 'T' THEN -1 * total ELSE 0 END)) AS total \n FROM localtranstoday \n WHERE register_no = ?\n AND emp_no = ?\n AND datetime >= " . $db->curdate() . "\n GROUP BY register_no, \n emp_no, \n trans_no\n HAVING SUM((CASE WHEN trans_type='T' THEN -1*total ELSE 0 END)) >= 30\n ORDER BY trans_no desc"; $args = array(CoreLocal::get('laneno'), CoreLocal::get('CashierNo')); $prep = $db->prepare($query); $result = $db->execute($prep, $args); } $num_rows = $db->num_rows($result); ?> <div class="baseHeight"> <div class="listbox"> <form id="selectform" name="selectform" onsubmit="return submitWrapper();"> <select name="selectlist" size="15" onblur="$('#selectlist').focus()" id="selectlist"> <?php $selected = "selected"; for ($i = 0; $i < $num_rows; $i++) { $row = $db->fetch_array($result); echo "<option value='" . $row["emp_no"] . "-" . $row["register_no"] . "-" . $row["trans_no"] . "'"; echo $selected; echo ">lane " . substr(100 + $row["register_no"], -2) . " Cashier " . $row["emp_no"] . " #" . $row["trans_no"] . " -- \$" . $row["total"]; $selected = ""; } if ($num_rows == 0) { echo "<option selected value=\"\">None found</option>"; } ?> </select> </div> <?php if (CoreLocal::get('touchscreen')) { echo '<div class="listbox listboxText">' . DisplayLib::touchScreenScrollButtons('#selectlist') . '</div>'; } ?> <div class="listboxText coloredText centerOffset"> <?php echo _("use arrow keys to navigate"); ?> <br /> <p> <button type="submit" class="pos-button wide-button coloredArea"> Reprint <span class="smaller">[enter]</span> </button> </p> <p> <button type="submit" class="pos-button wide-button errorColoredArea" onclick="$('#selectlist').append($('<option>').val(''));$('#selectlist').val('');"> Cancel <span class="smaller">[clear]</span> </button></p> </div> </form> <div class="clear"></div> </div> <?php }