public function scan() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $id_user = isset($_GET['id_user']) ? addslashes($_GET['id_user']) : ""; if (!$id_user) { Generic::errorMsg("Please login!"); } if (!User::checkUserID($id_user)) { Generic::errorMsg("ID User not found!"); } $QR = Generic::mustCheck($_GET['QR'], "No QR found!"); $objOrder = new MasterOrderModel(); // check, QR validapakah table free // table status = 0, occupied, 1 is free if (!Mastertable::isQRValid($QR)) { Generic::errorMsg("Invalid QR Code"); } $objUser = new UserModel(); $objUser->getByID($id_user); $objTable = Mastertable::getTableBYQR($QR); $id_table = $objTable[0]->id_table; $objTable = Mastertable::getTableID($id_table); $isTableFree = MasterTable::isTableFree($objTable); // Table free if ($isTableFree) { $paymentMethod = Generic::mustCheck($_GET['payment_method'], "Payment Method Required"); $this->requestRestoPermission($objUser, $objTable, $paymentMethod); } else { $objOrder = MasterOrder::getActiveOrderByTableID($id_table); Generic::checkCountWithMsg($objOrder, "Empty ID Order!"); $this->requestJoinTable($objUser, $objOrder); } die; }
public function setTakeAwayOrder() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $type_order = isset($_POST['type_order']) ? addslashes($_POST['type_order']) : ""; // echo $type_order; // if (!$type_order) { // Generic::errorMsg("NO Type_order found!"); // } $id_restaurant = isset($_POST['id_restaurant']) ? addslashes($_POST['id_restaurant']) : ""; if (!$id_restaurant) { Generic::errorMsg("NO ID Restaurant found!"); } $json = array(); // $jsonOrder = isset($_POST['order']) ? ($_POST['order']) : ""; // pr($_POST['order']); if (!isset($_POST['order'])) { $json['status_code'] = 0; $json['status_message'] = "No Order Found"; echo json_encode($json); die; } $jsonOrder = $_POST['order']; $jsonArrayOrder = json_decode($jsonOrder); // update row di tabel Table // add data di tabel Order // add data di tabel OrderDetail $objTable = new MasterTableModel(); $objOrder = new MasterOrderModel(); foreach ($jsonArrayOrder as $key => $val) { // echo $key . "=>" . $val . "<br>"; if ($key == "id_table" || $key == "type_order" || $key == "id_restaurant") { $arrTable[$key] = $val; } elseif ($key == "detail_order") { $arrDetailOrder = $val; } if ($key != "detail_order") { $arrOrder[$key] = $val; } } // Check id_table apakah free atau tidak $arrUpdTable = $objTable->getWhere("id_table = {$arrTable['id_table']}"); MasterDish::checkCount($arrUpdTable); // Meja is free if ($arrUpdTable[0]->status == "1") { // create foreach ($arrOrder as $key => $val) { $objOrder->{$key} = $val; } $objOrder->order_now = "1"; $objOrder->datetime_order = $this->setCurrentDate(); $objOrder->datetime_order_now = $this->setCurrentDate(); $objOrder->type_order = $type_order; $objOrder->id_restaurant = $id_restaurant; $idOrder = $objOrder->save(); if (!$idOrder) { $json['status_code'] = 0; $json['status_message'] = Lang::t('save failed'); } // Update di row Table; $arrTable["id_order"] = $idOrder; foreach ($arrTable as $key => $val) { $arrUpdTable[0]->{$key} = $val; } $arrUpdTable[0]->status = "0"; $arrUpdTable[0]->load = 1; $arrUpdTable[0]->save(); foreach ($arrDetailOrder as $val) { $objOrderdetail = new OrderDetailModel(); foreach ($val as $key => $o) { $objOrderdetail->{$key} = $o; } $objOrderdetail->id_order = $idOrder; $objOrderdetail->datetime_order = $this->setCurrentDate(); $objOrderdetail->save(); } } else { $json['status_code'] = 0; $json['status_message'] = "Table " . $arrUpdTable[0]->table_number . " is occupied"; echo json_encode($json); die; } $json['status_code'] = 1; $json['results']['ID Order'] = $idOrder; $objTableHlp = Mastertable::getTableID($arrTable['id_table']); // id_table, id_order $invoice = $this->calcRechnung($objTableHlp->id_restaurant, $idOrder); $this->setInvoiceInOrder($objOrder, $invoice); $json['invoice'] = $invoice; // $objOrder->total_cost = $invoice['Total']; // $objOrder->load = 1; $objOrder->save(); echo json_encode($json); die; }