public function setOrderViaDevice()
 {
     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_dish = isset($_POST['id_dish']) ? addslashes($_POST['id_dish']) : "";
     if (!$id_dish) {
         Generic::errorMsg("No ID Dish  found!");
     }
     if (!MasterDish::checkDish($id_dish)) {
         Generic::errorMsg("ID Dish not found!");
     }
     $qty = isset($_POST['qty']) ? addslashes($_POST['qty']) : "";
     if (!$qty) {
         Generic::errorMsg("No Qty  found!");
     }
     $objOrder = new MasterOrderModel();
     $arrOrder = $objOrder->getWhere("(id_user='******' OR FIND_IN_SET('{$id_user}', user_guest_id))  AND status_payment = '0' AND order_now = '0' AND status!='0'");
     $id_restaurant = MasterDish::getDishAttributByID($id_dish, "id_restaurant");
     //TODO CEK RESTORAN SEKARANG BUKA ATAU TIDAK
     $user = new UserModel();
     $user->getByID($id_user);
     $resto = new MasterRestaurantModel();
     $resto->getByID($id_restaurant);
     //DENY IF RESTO CLOSED
     if ($resto->now_open == "0") {
         Generic::errorMsg("Not accepting orders now");
     }
     if (count($arrOrder) == 0) {
         $type_order = '3';
         $id_order = $this->createHeadOrder($id_user, $id_restaurant, $type_order);
         $id_orderDetails = $this->addOrderDetails($id_order, $id_user, $id_dish, $qty);
     } elseif (count($arrOrder) > 0) {
         // kumpulan resto id
         foreach ($arrOrder as $order) {
             $arrResto[] = $order->id_restaurant;
         }
         // check resto id ada di kumpulan resto id
         if (in_array($id_restaurant, $arrResto)) {
             $objOrderHlp = new MasterOrderModel();
             $arrOrderHlp = $objOrderHlp->getWhere("(id_user='******' OR FIND_IN_SET('{$id_user}', user_guest_id)) AND id_restaurant='{$id_restaurant}' AND status_payment = '0' AND order_now = '0' AND status!='0'");
             if (count($arrOrderHlp) > 0) {
                 $id_order = $arrOrderHlp[0]->id_order;
                 $id_orderDetails = $this->addOrderDetails($id_order, $id_user, $id_dish, $qty);
             }
         } else {
             $type_order = '3';
             $id_order = $this->createHeadOrder($id_user, $id_restaurant, $type_order);
             $id_orderDetails = $this->addOrderDetails($id_order, $id_user, $id_dish, $qty);
         }
     }
     $invoice = $this->calcRechnung($id_restaurant, $id_order);
     $objOrder->getByID($id_order);
     $this->setInvoiceInOrder($objOrder, $invoice);
     $objOrder->user_name = $user->user_name;
     $objOrder->user_email = $user->email;
     $objOrder->status = "1";
     $objOrder->user_last_phone_number = substr($user->phone_no, -2);
     if ($objOrder->type_order == "3" && $objOrder->order_number == "0" || $objOrder->order_number == "") {
         $resto->order_number = $resto->order_number + 1;
         $objOrder->order_number = $resto->order_number;
         $resto->save();
     }
     if ($objOrder->type_order != "3") {
         $objOrder->order_number = 0;
     }
     $objOrder->save();
     $json['results']['messages'] = "Success";
     echo json_encode($json);
     $objOrderHlp = new MasterOrderModel();
     $objOrderHlp->getByID($id_order);
     $ids = $this->getUserIdByIDOrder($id_order, $id_user);
     $this->notifyAddOrder($ids, $id_order);
     die;
 }