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; }