public function Scan() { $userId = $_GET["user_id"]; $qr = $_GET["QR"]; $qrs = new QRModel(); //////validate QR Code $resQrs = $qrs->getWhere("textQR='{$qr}'"); if (count($resQrs) == 1) { if ($resQrs[0]->status == 0) { $this->error("Unasigned QR Code!"); } } else { $this->error("Wrong QR Code!"); } ///////fetch user details $user = new UserModel(); $user->getByID($userId); // pr($user); if ($user->user_name == null || $user->user_name == "") { $this->error("Who Are You ?!"); } ///////validate Table $ta = new MasterTableModel(); $arr = $ta->getWhere("QR='{$qr}'"); if (count($arr) == 1) { //status 0 = OCCUPIED if ($arr[0]->status == 0) { if ($arr[0]->id_order == 0) { $this->error("Empty Order ID"); } else { $this->requestJoinTable($user, $arr[0]->id_order); } } else { $this->requestRestoPermission($user, $arr[0]); } } else { $this->error("Wrong Table!"); } die; }
public static function setTableStatus($id_table, $field, $value) { $objTable = new MasterTableModel(); $objTable->getByID($id_table); $objTable->{$field} = $value; $objTable->load = 1; $objTable->save(); // pr($objTable); }
public function getMonthByMonthOrder() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $idResto = $this->mustCheck($_GET['id_restaurant'], "NO ID Restaurant"); $range = $_GET['range'] == null || $_GET['range'] == "" ? 0 : $_GET['range']; $extraQ = $this->selectTypeOrder($_GET['type_order']); $idServer = $_GET['id_user']; $extraQ .= $idServer == null || $idServer == "" || $idServer == "0" ? "" : "AND id_server='{$idServer}'"; $extraQ .= $_GET['voided'] == null || $_GET['voided'] == "" || $_GET['voided'] == "0" ? " AND status_progress='4' " : "AND status_progress='9' AND voided='1'"; $extraQ .= $_GET['status_payment'] == null || $_GET['status_payment'] == "" || $_GET['status_payment'] == "999" ? "" : "AND status_payment='" . $_GET['status_payment'] . "'"; $r = new MasterRestaurantModel(); $r->getByID($idResto); $result["name"] = $r->name; $result['list_orders'] = array(); $result['sum_total_grand_total'] = 0; $result['sum_total_order_count'] = 0; $result['sum_disc_mr'] = 0; $result['sum_disc_resto'] = 0; $result['sum_disc_bank'] = 0; $result['sum_disc_other'] = 0; $result['sum_tax_pb1'] = 0; $result['sum_service_charge'] = 0; $result['sum_other_charge'] = 0; $result['sum_other_charge'] = 0; if (!isset($range) || $range == 999) { $range = 4; } for ($i = 0; $i <= $range; $i++) { $date = date('m', strtotime("-{$i} months")); $o = new MasterOrderModel(); $q = "status='1' AND id_restaurant='{$idResto}' AND MONTH(datetime_order)='{$date}' {$extraQ} ORDER BY id_order DESC"; if ($_GET['is_debug']) { echo $q . "<br>"; } $arrO = $o->getWhere($q); if (count($arrO) == 0) { continue; } unset($b); $b['date'] = $date; $b['header_id'] = $i; $b['order_count'] = 0; $b['order_sum'] = 0; $b['sum_disc_mr'] = 0; $b['sum_disc_resto'] = 0; $b['sum_disc_bank'] = 0; $b['sum_disc_other'] = 0; $b['sum_tax_pb1'] = 0; $b['sum_service_charge'] = 0; $b['sum_other_charge'] = 0; $b['sum_mr_fee'] = 0; $b['sum_cc_fee'] = 0; foreach ($arrO as $order) { unset($c); if (!$order instanceof MasterOrderModel) { return; } $c['date'] = $date; // $b['order_sum'] += (double)$order->grand_total; // $b['order_count']++; // // $b['sum_disc_mr'] += (double)$order->disc_mr; // $b['sum_disc_resto'] += (double)$order->disc_resto; // $b['sum_disc_bank'] += (double)$order->disc_bank; // $b['sum_disc_other'] += (double)$order->disc_other; // $b['sum_tax_pb1'] += (double)$order->tax_pb1; // $b['sum_service_charge'] += (double)$order->service_charge; // $b['sum_other_charge'] += (double)$order->other_charge; $c['header_id'] = $i; $c['id_order'] = $order->id_order; $c['id_table'] = $order->id_table; $c['id_server'] = $order->id_server; $c['server_name'] = $order->server_name; $c['type_order'] = $order->type_order; $c['status_progress'] = $order->status_progress; $c['datetime_order'] = $order->datetime_order; $c['datetime_done'] = $order->datetime_done; $c['grand_total'] = (double) $order->grand_total; $c['status'] = $order->status; $c['order_now'] = $order->order_now; $c['voided'] = $order->voided; $c['order_number'] = $order->order_number; $c['mr_fee'] = (double) $order->mr_fee; $c['cc_fee'] = (double) $order->cc_fee; $b['order_count']++; $b['order_sum'] += $order->grand_total; $b['sum_disc_mr'] += $order->disc_mr; $b['sum_disc_resto'] += $order->disc_resto; $b['sum_disc_bank'] += $order->disc_bank; $b['sum_disc_other'] += $order->disc_other; $b['sum_tax_pb1'] += $order->tax_pb1; $b['sum_service_charge'] += $order->service_charge; $b['sum_other_charge'] += $order->other_charge; $b['sum_mr_fee'] += $order->mr_fee; $b['sum_cc_fee'] += $order->cc_fee; if ($c['id_table'] == null || $c['id_table'] == 0) { $c['table_number'] = "0"; } else { $t = new MasterTableModel(); $t->getByID($c['id_table']); $c['table_number'] = $t->table_number; } $b['Orders'][] = $c; } $result['list_orders'][] = $b; $result['sum_total_grand_total'] += $b['order_sum']; $result['sum_total_order_count'] += $b['order_count']; $result['sum_disc_mr'] += $b['sum_disc_mr']; $result['sum_disc_resto'] += $b['sum_disc_resto']; $result['sum_disc_bank'] += $b['sum_disc_bank']; $result['sum_disc_other'] += $b['sum_disc_other']; $result['sum_tax_pb1'] += $b['sum_tax_pb1']; $result['sum_service_charge'] += $b['sum_service_charge']; $result['sum_other_charge'] += $b['sum_other_charge']; $result['sum_mr_fee'] += $b['sum_mr_fee']; $result['sum_cc_fee'] += $b['sum_cc_fee']; } $result['servers'] = array(); $s = new RestaurantUserModel(); $arrS = $s->getWhere("id_restaurant={$idResto} AND status='1' AND (role='Supervisor' OR role='Staff') ORDER BY role DESC"); foreach ($arrS as $server) { unset($ss); $ss['id_user'] = $server->id_user; $ss['name'] = $server->name; $ss['role'] = $server->role; $result['servers'][] = $ss; } $json['status_code'] = 1; $json['results'] = $result; echo json_encode($json); die; }
public static function clearTable($idTable) { $objTable = new MasterTableModel(); $objTable->getByID($idTable); $objTable->id_order = "0"; $objTable->waitingOrder = "0"; $objTable->appOrder = Keys::$EMPTY; $objTable->cashPayment = Keys::$EMPTY; $objTable->status = Keys::$YES; $objTable->load = 1; $id_objTable = $objTable->save(); return $id_objTable; }
public static function getRestoIDByTable($id_table) { $objTable = new MasterTableModel(); $arrTable = $objTable->getWhere("id_table = '{$id_table}'"); pr($arrTable); }
public function orderToKitchen() { $idOrder = Generic::mustCheck($_GET['id_order'], Keys::$ERR_NOT_FOUND_ID_ORDER); $idUser = Generic::mustCheck($_GET['id_user'], Keys::$ERR_NOT_FOUND_ID_USER); $allergy = Generic::getOrDefault($_GET['allergy'], Keys::$EMPTY); $generalNote = Generic::getOrDefault($_GET['generalNote'], Keys::$EMPTY); $order = new MasterOrderModel(); $order->getByID($idOrder); if ($order->order_now) { $isExtra = 1; } if ($order->id_user != $idUser) { Generic::errorMsg(Keys::$ERR_ORDER_NOW_NOT_LEADER); } //restoran harus sudah buka if (!Util::isRestaurantOpen($order->id_restaurant)) { Generic::errorMsg(Keys::$ERR_RESTAURANT_CLOSED); } //order harus masih gueltig if ($order->status != Keys::$YES || $order->voided != Keys::$NO) { Generic::errorMsg(Keys::$ERR_ORDER_INVALID); } // if ($order->status_payment == Keys::$PAYMENT_STATUS_PAID) // Generic::errorMsg(Keys::$ERR_ORDER_PAID); //cek user gueltig $user = new UserModel(); $user->getByID($idUser); if (Generic::IsNullOrEmptyString($user->id_user)) { Generic::errorMsg(Keys::$ERR_NOT_FOUND_USER); } //all order detail yang blom order_now di jadikan ordernow //update allergy //kabari kitchen // Util::orderNowDineIn($order, $allergy, $generalNote); $invoice = new Invoice($order->id_order, true); //update totalan di row order model $order->disc_resto = $invoice->valDiscRestaurant; $order->disc_bank = $invoice->valDiscBank; $order->disc_mr = $invoice->valDiscMR; $order->tax_pb1 = $invoice->valTaxCharge; $order->service_charge = $invoice->valServiceCharge; $order->other_charge = $invoice->valOtherCharge; $order->cc_fee = $invoice->valFeeBank; $order->mr_fee = $invoice->valFeeMR; $order->total_cost = $invoice->subTotal; $order->grand_total = $invoice->grandTotal; $adaPerubahan = 0; $arrOrderDetails = Util::getDetailOrderByIdOrder($order->id_order); //semua order detail di flag order_now foreach ($arrOrderDetails as $orderDetail) { if (!$orderDetail instanceof OrderDetailModel) { continue; } if ($orderDetail->order_now) { continue; } else { $orderDetail->datetime_order = leap_mysqldate(); $orderDetail->order_now = Keys::$YES; $orderDetail->load = 1; $orderDetail->save(); $adaPerubahan = 1; } //notify kitchen } if (!$order->order_now) { $order->allergy = $allergy; $order->generalNote = $generalNote; if ($order->type_order == Keys::$ORDER_TYPE_TAKE_AWAY_APPS) { $resto = new MasterRestaurantModel(); $resto->getByID($order->id_restaurant); $resto->order_number = $resto->order_number + 1; $resto->save(); $order->order_number = $resto->order_number; } } $order->order_now = Keys::$YES; $order->datetime_order_now = leap_mysqldate(); $order->save(); //kasi flag ditablenya kalau occupied if ($order->type_order == Keys::$ORDER_TYPE_DINE_IN_APPS && !Generic::IsNullOrEmptyString($order->id_table)) { $table = new MasterTableModel(); $table->getByID($order->id_table); $table->waitingOrder = Keys::$TABLE_IS_WAITING_ORDER; $table->save(); } $j["id_order"] = $order->id_order; $j['datetime'] = date('Y-m-d H:i:s'); $typePush = Keys::$typeNotifNewOrder; //new dine in order if ($isExtra) { $typePush = Keys::$typeNotifNewExtra; //extra dine in order } if ($order->type_order == Keys::$ORDER_TYPE_TAKE_AWAY_APPS || $order->type_order == Keys::$ORDER_TYPE_TAKE_AWAY_MANUAL) { $typePush = Keys::$typeNotifNewTakeAway; //take away order } return Util::pushNotifyRestaurant($order->id_restaurant, $typePush, $j); }
public function getNormalDineInOrderByRestoId() { $id_restaurant = Generic::mustCheck($_GET["id_restaurant"], "No ID Restaurant Found!"); $status_progress = Generic::mustCheck($_GET["status_progress"], "No Status Progress Found!"); $type_order = Generic::mustCheck($_GET["type_order"], "No Type Order Found"); $date = $_GET["date"]; $json['status_code'] = 1; $queryBuilder = "id_restaurant='{$id_restaurant}' AND status_progress='{$status_progress}' AND type_order ='{$type_order}' "; if (isset($date)) { $queryBuilder .= " AND datetime_order LIKE '{$date}% '"; } $queryBuilder .= " ORDER BY datetime_order DESC "; $o = new MasterOrderModel(); $arrOrder = $o->getWhere($queryBuilder); $isDineIn = $type_order == "0" || $type_order == "1" ? true : false; $isAppOrder = $type_order == "1" || $type_order == "3" ? true : false; $c = array(); foreach ($arrOrder as $order) { $table = new MasterTableModel(); $table->getByID($order->id_table); $user = new UserModel(); $user->getByID($order->id_user); $isPaid = $order->status_payment == "1" ? true : false; $allUsersIds = trim($order->id_user . $order->user_guest_id); if (count($allUsersIds) > 0) { foreach ($allUsersIds as $userId) { $u[] = User::getUser($userId); } } else { } $c[] = array('table_number' => $table->table_number, 'type_order' => $order->type_order, 'server_name' => $order->server_name, 'datetime_order' => $order->datetime_order, 'id_restaurant' => $order->id_restaurant, 'id_user' => $order->id_user, 'user_guest_id' => $order->user_guest_id, 'full_name' => $user->full_name, 'grand_total' => $order->grand_total, 'status_progress' => $order->status_progress, 'status_payment' => $order->status_payment, 'status' => $order->status, 'allUsersIds' => $allUsersIds, 'isDineIn' => $isDineIn, 'IsAppOrder' => $isAppOrder, 'isPaid' => $isPaid, 'detail_orders' => OrderDetail::getOrderDetailsByIDOrder($order->id_order)); } $json['results']["orders"] = $c; echo json_encode($json); die; }
private function checkTablePosition($id_restaurant, $position) { $return = false; $objTable = new MasterTableModel(); $arr = $objTable->getWhere("id_restaurant = {$id_restaurant} AND table_position = {$position}"); if (count($arr) == 0) { // echo "true"; $return = true; } return $return; }
public function scandinein() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $json = array(); $json['status_code'] = 1; $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 = isset($_GET['QR']) ? addslashes($_GET['QR']) : ""; if (!$QR) { Generic::errorMsg("No QR found!"); } $id_order = isset($_GET['id_order']) ? addslashes($_GET['id_order']) : ""; if (!id_order) { Generic::errorMsg("id_order not found!"); } if (!MasterOrder::isIdorderValid($id_order)) { Generic::errorMsg("id_order not found!"); } $objTableHlp = Mastertable::getTableBYQR($QR); $objTable = new MasterTableModel(); $objTable->getByID($objTableHlp[0]->id_table); $objTable->appOrder = "1"; $objTable->id_order = $id_order; $objTable->status = "0"; $objTable->waitingOrder = "2"; $objTable->load = 1; $objTable->save(); $objOrder = new MasterOrderModel(); $objOrder->getByID($id_order); $objOrder->id_table = $objTableHlp[0]->id_table; $objOrder->type_order = "1"; $objOrder->load = 1; $objOrder->save(); $objOrderHlp = new MasterOrderModel(); $arrOrder = $objOrderHlp->getWhere("id_user='******' AND status_progress < 3 OR status_payment='0'"); Generic::checkCountWithMsg($arrOrder, "No ID Order from the ID User found"); $id_order = $arrOrder[0]->id_order; $order = MasterOrder::getOrder($id_order); $arrOrderDetails = OrderDetail::getOrderDetailsByIDOrderAndUserID($id_order, $id_user); $order['Order_Details'] = $arrOrderDetails; $order['restaurant'] = User::getRestaurant($order['id_restaurant']); $json['results'][] = $order; echo json_encode($json); die; }
public static function getAllTableIDNowNachRestoID($id_restaurant) { $objTables = new MasterTableModel(); $arrTables = $objTables->getWhere("id_restaurant='{$id_restaurant}' AND order_now ='1' ORDER BY id_order asc"); return $arrTables; }
public function overwriteRead($return) { $objs = $return['objs']; foreach ($objs as $obj) { if (isset($obj->datetime_order)) { $d = strtotime("{$obj->datetime_order}"); $obj->datetime_order = date("d M, y h:m a", $d); } if (isset($obj->datetime_done)) { $d = strtotime("{$obj->datetime_done}"); $obj->datetime_done = date("d M, y h:m a", $d); } if (isset($obj->type_order)) { $obj->type_order = $this->arrOrderType[$obj->type_order]; } if (isset($obj->order_now)) { $obj->order_now = $this->arrOrderNow[$obj->order_now]; } if (isset($obj->voided)) { $obj->voided = $this->arrYesNo[$obj->voided]; } if (isset($obj->status_progress)) { $obj->status_progress = $this->arrStatusProgress[$obj->status_progress]; } if (isset($obj->status)) { $obj->status = $this->arrStatusOrder[$obj->status]; } if (isset($obj->id_table)) { if ($obj->id_table == "0") { $obj->id_table = "Take Away"; } else { $tab = new MasterTableModel(); $tab->getByID($obj->id_table); $obj->id_table = "Table ID " . $obj->id_table . " - Table No. " . $tab->table_number; } } if (isset($obj->id_restaurant)) { $resto = new MasterRestaurantModel(); $resto->getByID($obj->id_restaurant); $obj->id_restaurant = $resto->name; } } return $return; }