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 setTableStatus($id_table, $field, $value) { $objTable = new MasterTableModel(); $objTable->getByID($id_table); $objTable->{$field} = $value; $objTable->load = 1; $objTable->save(); // pr($objTable); }
public function orderKitchenDone() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $orderId = $this->mustCheck($_POST["id_order"], "No Order ID"); $order = new MasterOrderModel(); $order->getByID($orderId); if ($order->status_progress == 2) { $order->status_progress = 3; $order->save(); } elseif ($order->status_progress == 3) { Generic::errorMsg("Order Already Paid"); } elseif ($order->status_progress == 4) { Generic::errorMsg("Order Already Done"); } elseif ($order->status_progress == 9) { Generic::errorMsg("Order Voided"); } else { Generic::errorMsg("Some Dishes Might Not Complete"); } $o = new OrderDetailModel(); $orderDetails = $o->getWhere("id_order='{$orderId}'"); foreach ($orderDetails as $orderDetail) { if ($orderDetail->status_progress != 9) { $orderDetail->load = 1; $orderDetail->status_progress = 3; $orderDetail->save(); } } $table = new MasterTableModel(); $table->getByID($order->id_table); $table->waitingOrder = "0"; $table->save(); if ($order->type_order == "0" || $order->type_order == "1") { $this->pushToRestoCashier($order->id_restaurant, "", "", Push::$typeNotifRefreshViewTable); } else { $this->pushToRestoCashier($order->id_restaurant, "", "", Push::$typeNotifRefreshViewTakeAway); } $json = array(); $json['status_code'] = 1; $json['results']["message"] = "Success"; echo json_encode($json); die; }
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 setTable() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $json = array(); $cmd = isset($_GET['cmd']) ? addslashes($_GET['cmd']) : ""; if (!$cmd) { $json['status_code'] = 0; $json['status_message'] = "No ID Found"; echo json_encode($json); die; } $id_restaurant = isset($_GET['id_restaurant']) ? addslashes($_GET['id_restaurant']) : ""; if (!$id_restaurant) { $json['status_code'] = 0; $json['status_message'] = "No ID Found"; echo json_encode($json); die; } $objRestaurant = new MasterRestaurantModel(); if ($cmd == "initTable") { $tableQuantity = isset($_GET['tblQty']) ? addslashes($_GET['tblQty']) : ""; if (!$tableQuantity) { $json['status_code'] = 0; $json['status_message'] = "No ID Found"; echo json_encode($json); die; } $tableColumns = isset($_GET['tblCol']) ? addslashes($_GET['tblCol']) : ""; if (!$tableColumns) { $json['status_code'] = 0; $json['status_message'] = "No ID Found"; echo json_encode($json); die; } $arr = $objRestaurant->getWhere("id_restaurant='{$id_restaurant}' AND new_set_table !='1' "); // pr($arr); if (count($arr) <= 0) { $json['status_code'] = 0; $json['status_message'] = "No ID Found"; echo json_encode($json); die; } else { for ($j = 1; $j <= $tableQuantity; $j++) { if ($this->checkTablePosition($id_restaurant, $j) == 1) { // create new datensatz in table Table // echo $this->checkTablePosition($id_restaurant, $j); $objTable = new MasterTableModel(); $objTable->table_number = $j; $objTable->table_position = $j; $objTable->id_restaurant = $id_restaurant; $objTable->status = '1'; $objTable->availability = '1'; $id = $objTable->save(); if (!$id) { $json['status_code'] = 0; $json['status_message'] = Lang::t('save failed'); //$json['err'] = array("all" => Lang::t('save failed')); } else { $json['status_code'] = 1; $json['results'] = "Sukses"; } } } } } elseif ($cmd == "edit") { $arr = $objRestaurant->getWhere("id_restaurant='{$id_restaurant}' AND new_set_table='1' "); if (count($arr) <= 0) { $json['status_code'] = 0; $json['status_message'] = "No ID Found"; echo json_encode($json); die; } $tableColumns = isset($_GET['tblCol']) ? addslashes($_GET['tblCol']) : ""; if (!$tableColumns) { $tableColumns = $arr[0]->table_column; } $tableQuantity = isset($_GET['tblQty']) ? addslashes($_GET['tblQty']) : ""; if (!$tableQuantity) { $tableQuantity = $arr[0]->table_quantity; } else { // jika qty baru > besar dr yg skrg, maka add baru // jika qty baru < qty skrf } } elseif ($cmd == "updateTable") { $arr = $objRestaurant->getWhere("id_restaurant='{$id_restaurant}' "); if (count($arr) <= 0) { $json['status_code'] = 0; $json['status_message'] = "No ID Found"; echo json_encode($json); die; } $tableColumns = isset($_GET['tblCol']) ? addslashes($_GET['tblCol']) : ""; if (!$tableColumns) { $tableColumns = $arr[0]->table_column; } $tableQuantity = isset($_GET['tblQty']) ? addslashes($_GET['tblQty']) : ""; if (!$tableQuantity) { $tableQuantity = $arr[0]->table_quantity; } else { // update di table restaurant // // jika qty baru > besar dr yg skrg, maka add baru if ($tableQuantity > $arr[0]->table_quantity) { //10 - 5 // echo "arr[0]->table_quantity: " . $arr[0]->table_quantity . "<br>"; // echo "tableQuantity: " . $tableQuantity . "<br>"; for ($j = $arr[0]->table_quantity + 1; $j <= $tableQuantity; $j++) { if ($this->checkTablePosition($id_restaurant, $j) == 1) { // create new datensatz in table Table // echo $this->checkTablePosition($id_restaurant, $j); $objTable = new MasterTableModel(); $objTable->table_number = $j; $objTable->table_position = $j; $objTable->id_restaurant = $id_restaurant; $objTable->status = '1'; $objTable->availability = '0'; $id = $objTable->save(); if (!$id) { $json['status_code'] = 0; $json['status_message'] = Lang::t('save failed'); } else { $json['status_code'] = 1; $json['results']['message'] = "success"; } } } } elseif ($tableQuantity < $arr[0]->table_quantity) { for ($j = $tableQuantity + 1; $j <= $arr[0]->table_quantity; $j++) { $objTable = new MasterTableModel(); // echo $j . "<br>"; $arrTable = $objTable->getWhere("id_restaurant={$id_restaurant} AND table_number= {$j}"); foreach ($arrTable as $val) { $val->availability = "0"; $val->load = 1; $id_objTable = $val->save(); if (!$id_objTable) { $json['status_code'] = 0; $json['results'] = Lang::t('save failed'); } else { $json['status_code'] = 1; $json['results']['message'] = "success"; } } } } // jika qty baru < qty skrf } } else { $json['status_code'] = 0; $json['status_message'] = "No ID Found"; echo json_encode($json); die; } $objRestaurant->getById($id_restaurant); if ($cmd == "initTable") { $onlyUpdates = array("table_quantity" => $tableQuantity, "table_column" => $tableColumns, "new_set_table" => "1"); } elseif ($cmd == "edit" || $cmd == "updateTable") { $onlyUpdates = array("table_quantity" => $tableQuantity, "table_column" => $tableColumns); } $objRestaurant->fill($onlyUpdates); $id_obj = $objRestaurant->save(); if (!$id_obj) { $json['status_code'] = 0; $json['status_message'] = Lang::t('save failed'); } else { $json['status_code'] = 1; $json['results']['message'] = "success"; } echo json_encode($json); die; }
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 function orderNow() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $json = array(); $json['status_code'] = 1; $id_user = isset($_POST['id_user']) ? addslashes($_POST['id_user']) : ""; if (!$id_user) { Generic::errorMsg("Please login!"); } if (!User::checkUserID($id_user)) { Generic::errorMsg("ID User not found!"); } $id_order = isset($_POST['id_order']) ? addslashes($_POST['id_order']) : ""; if (!$id_order) { Generic::errorMsg("ID Order not found!"); } $allergy = isset($_POST['allergy']) ? addslashes($_POST['allergy']) : ""; $generalNote = isset($_POST['generalNote']) ? addslashes($_POST['generalNote']) : ""; $objOrder = new MasterOrderModel(); $arrOrder = $objOrder->getWhere("id_user='******' AND id_order = '{$id_order}' AND status != '0' AND status_payment = '0' AND order_now = '0'"); Generic::checkCountWithMsg($arrOrder, "ID Order not found!"); $id_order = $arrOrder[0]->id_order; $dineIn = true; if ($arrOrder[0]->type_order == 3) { $dineIn = false; } $id_restaurant = $arrOrder[0]->id_restaurant; $arrOrder[0]->datetime_order = $this->setCurrentDate(); $arrOrder[0]->order_now = "1"; $arrOrder[0]->datetime_order = leap_mysqldate(); $arrOrder[0]->generalNote = $generalNote; $arrOrder[0]->allergy = $allergy; $arrOrder[0]->load = 1; $id = $arrOrder[0]->save(); // cari orderdetails yg id_order $objOrderDetails = new OrderDetailModel(); $arrOrderdetails = $objOrderDetails->getWhere("id_order='{$id_order}'"); Generic::checkCountWithMsg($arrOrderdetails, "ID Order Details not found!"); foreach ($arrOrderdetails as $orderdetails) { $orderdetails->datetime_order = $this->setCurrentDate(); $orderdetails->load = 1; $orderdetails->save(); } $objTable = new MasterTableModel(); $objTable->getByID($arrOrder[0]->id_table); $objTable->waitingOrder = "1"; $objTable->load = 1; $objTable->save(); // pr($objTable); $json['results'] = MasterOrder::getOrder($id_order); echo json_encode($json); $j["id_order"] = $id_order; $j['datetime'] = date('Y-m-d H:i:s'); $msg = $dineIn ? "Table {$objTable->table_number} : New Apps Dine In Order " : "New Apps Take Away Order"; $pushType = $dineIn ? Push::$typeNotifNewOrder : Push::$typeNotifNewTakeAway; $this->pushToRestoCashier($id_restaurant, $msg, $j, $pushType); die; }