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 check($str) { $my_url = MiscLib::base_url(); $this->dest_input_page = ""; $this->dest_main_page = ""; $this->dest_scale = False; $this->ret = $this->default_json(); // Argument to PV, either before or after. if (substr($str, -2, 2) == "PV") { $pvsearch = substr($str, 0, -2); $str = "PV"; } elseif (substr($str, 0, 2) == "PV") { $pvsearch = substr($str, 2); $str = "PV"; } // common error message $repeat = CoreLocal::get('msgrepeat'); $in_progress_msg = DisplayLib::boxMsg(_("transaction in progress"), '', true, DisplayLib::standardClearButton()); CoreLocal::set('msgrepeat', $repeat); switch ($str) { case 'CAB': if (CoreLocal::get("LastID") != "0") { $this->ret['output'] = $in_progress_msg; } else { $this->ret['main_frame'] = $my_url . "gui-modules/cablist.php"; } return true; case "PV": CoreLocal::set("pvsearch", "{$pvsearch}"); $this->ret['main_frame'] = $my_url . "gui-modules/productlist.php"; return true; case "MSTG": if (CoreLocal::get('memType') == 1 || CoreLocal::get('memType') == 2) { // could this be CoreLocal::get('isMember') == 1 // to avoid relying on specific memTypes? $this->ret['output'] = DisplayLib::boxMsg(_("Cannot UNset a member status"), '', true, DisplayLib::standardClearButton()); } elseif (CoreLocal::get("SecuritySR") > 20) { $this->ret['main_frame'] = $my_url . "gui-modules/adminlogin.php?class=MemStatusAdminLogin"; } else { $this->ret['output'] = DisplayLib::boxMsg(_("You must be an admin to do this."), _('Access Denied'), true, DisplayLib::standardClearButton()); } return true; case "UNDO": if (CoreLocal::get("LastID") != "0") { $this->ret['output'] = $in_progress_msg; } else { $this->ret['main_frame'] = $my_url . "gui-modules/adminlogin.php?class=UndoAdminLogin"; } return true; case 'SK': case "DDD": $this->ret['main_frame'] = $my_url . "gui-modules/DDDReason.php"; return true; case 'MG': if (CoreLocal::get("SecuritySR") > 20) { $this->ret['main_frame'] = $my_url . "gui-modules/adminlogin.php?class=SusResAdminLogin"; } else { $this->ret['main_frame'] = $my_url . "gui-modules/adminlist.php"; } return true; case 'RP': if (CoreLocal::get("LastID") != "0") { $tr = CoreLocal::get("receiptToggle"); if ($tr == 1) { CoreLocal::set("receiptToggle", 0); } else { CoreLocal::set("receiptToggle", 1); } $this->ret['main_frame'] = $my_url . "gui-modules/pos2.php"; } else { $db = Database::tDataConnect(); $query = "select register_no, emp_no, trans_no, " . "sum((case when trans_type = 'T' then -1 * total else 0 end)) as total " . "from localtranstoday where register_no = " . CoreLocal::get("laneno") . " and emp_no = " . CoreLocal::get("CashierNo") . " AND datetime >= " . $db->curdate() . " group by register_no, emp_no, trans_no order by 1000 - trans_no"; $result = $db->query($query); $num_rows = $db->num_rows($result); if ($num_rows == 0) { $this->ret['output'] = DisplayLib::boxMsg(_("no receipt found"), '', true, DisplayLib::standardClearButton()); } else { $this->ret['main_frame'] = $my_url . "gui-modules/rplist.php"; } } return true; case 'ID': $this->ret['main_frame'] = $my_url . "gui-modules/memlist.php"; return true; case 'DDM': $this->ret['main_frame'] = $my_url . 'gui-modules/drawerPage.php'; return true; case 'SS': case 'SO': // sign off and suspend shift are identical except for // drawer behavior if (CoreLocal::get("LastID") != 0) { $this->ret['output'] = $in_progress_msg; } else { TransRecord::addLogRecord(array('upc' => 'SIGNOUT', 'description' => 'Sign Out Emp#' . CoreLocal::get('CashierNo'))); Database::setglobalvalue("LoggedIn", 0); CoreLocal::set("LoggedIn", 0); CoreLocal::set("training", 0); CoreLocal::set("gui-scale", "no"); /** An empty transaction may still contain invisible, logging records. Rotate those out of localtemptrans to ensure sequential trans_id values */ if (Database::rotateTempData()) { Database::clearTempTables(); } if ($str == 'SO') { if (session_id() != '') { session_write_close(); } $kicker_class = CoreLocal::get("kickerModule") == "" ? 'Kicker' : CoreLocal::get('kickerModule'); $kicker_object = new $kicker_class(); if ($kicker_object->kickOnSignOut()) { ReceiptLib::drawerKick(); } ReceiptLib::freeDrawer(ReceiptLib::currentDrawer()); } $this->ret['main_frame'] = $my_url . "login.php"; } return true; case 'NS': if (CoreLocal::get("LastID") != 0) { $this->ret['output'] = $in_progress_msg; } else { $this->ret['main_frame'] = $my_url . "gui-modules/nslogin.php"; } return true; case 'GD': CoreLocal::set("msgrepeat", 0); $this->ret['main_frame'] = $my_url . "gui-modules/giftcardlist.php"; return true; case 'IC': CoreLocal::set("msgrepeat", 0); $this->ret['main_frame'] = $my_url . "gui-modules/HouseCouponList.php"; return true; case "CN": $this->ret['main_frame'] = $my_url . "gui-modules/mgrlogin.php"; return true; case "PO": $this->ret['main_frame'] = $my_url . "gui-modules/adminlogin.php?class=PriceOverrideAdminLogin"; return true; } return false; }