public function changeStatusProgress() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $json = array(); $json['status_code'] = 1; $id_order_detail = isset($_GET['id_order_detail']) ? addslashes($_GET['id_order_detail']) : ""; if (!$id_order_detail) { Generic::errorMsg("id order detail not found!"); } $objOrderDetail = new OrderDetailModel(); $objOrderDetail->getByID($id_order_detail); if ($objOrderDetail->id_order == "") { Generic::errorMsg("id order detail not found!"); } $statusProgress = intval($objOrderDetail->status_progress); if ($statusProgress == 2) { Generic::errorMsg("Status is " . $statusProgress); } $statusProgress = $statusProgress + 1; $objOrderDetail->status_progress = strval($statusProgress); $objOrderDetail->load = 1; $objOrderDetail->save(); $json['results'] = $statusProgress; echo json_encode($json); die; }
public function updateNote() { $userId = $_POST["id_user"]; $newNote = $_POST["note"]; $idOrderDetail = $_POST["id_order_detail"]; $od = new OrderDetailModel(); $od->getByID($idOrderDetail); //TODO CHECK USER ID apakah sama dengan OrderDetailMpdel dengan id $idOrderDetail //TODO ERROR OUT KALAU TIDAK SAMA $od->note = $newNote; $od->save(); }
public static function setDetailOrderNote($idDetailOrder, $note) { $detailOrder = new OrderDetailModel(); $detailOrder->getByID($idDetailOrder); $detailOrder->note = $note; $detailOrder->save(); }
public function voidDetailOrder() { if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $revert = true; $detailOrderId = $this->mustCheck($_POST["id_order_detail"], "No Order Detail ID"); $voided = $this->mustCheckBool($_POST["voided"], "Void?"); $orderDetail = new OrderDetailModel(); $orderDetail->getByID($detailOrderId); $curStatus = $orderDetail->status_progress; if ($curStatus == 9) { Generic::errorMsg("This Detail Order already Voided"); } $orderDetail->status_progress = 9; $orderDetail->save(); $orderDetail->load = 1; $newStatus = $this->checkSiblingsStatus($orderDetail); //TODO RECALCULATE INVOICE, masukkan ke json results $order = new MasterOrderModel(); $order->getByID($orderDetail->id_order); $json = array(); $json['status_code'] = 1; $json['results']["message"] = "Success"; $json['results']["status_progress"] = (string) $newStatus; $json['results']["new_detail_status_progress"] = (string) $orderDetail->status_progress; $json['results']["invoice"] = $this->calcRechnungAndSave($order->id_restaurant, $orderDetail->id_order); echo json_encode($json); die; }
public function cancelPendingOrder() { $idOrder = Generic::mustCheck($_POST['id_order'], "ID Order Not Found"); $idUser = Generic::mustCheck($_POST['id_user'], "ID User Not Found"); $order = new MasterOrderModel(); $order->getByID($idOrder); //reject if order already set if ($order->order_now == "1") { Generic::errorMsg("Order already been set"); } $isLeader = $order->id_user == $idUser; if (!$isLeader) { $this->removeGuestOrder($idUser, $idOrder); $this->success(); } //canceling order $order->status = "0"; $order->save(); $orderDetails = OrderDetail::getOrderDetailsByIDOrder($idOrder); foreach ($orderDetails as $orderDetail) { //canceling all detail order $oDetail = new OrderDetailModel(); $oDetail->getByID($orderDetail['id_order']); $oDetail->status = "0"; $oDetail->save(); } $this->success(); }
public function addOrderInPendingOrder() { //TODO Sama seperti add order kemarin, tapi quantity cuma bisa set 1 //TODO master apa bukan if (Efiwebsetting::getData('checkOAuth') == 'yes') { IMBAuth::checkOAuth(); } $id_user = isset($_GET['id_user']) ? addslashes($_GET['id_user']) : ""; if (!$id_user) { Generic::errorMsg("Please login!"); } $id_order = isset($_GET['id_order']) ? addslashes($_GET['id_order']) : ""; if (!$id_order) { Generic::errorMsg("ID Order not found!"); } $id_dish = isset($_GET['id_dish']) ? addslashes($_GET['id_dish']) : ""; if (!$id_dish) { Generic::errorMsg("ID Dish not found!"); } $arah = addslashes($_GET['arah']); //plus //minus //ambil order saya, kalau blom ada, dan action plus, maka bikin baru //ambil order saya kalau blom ada dan action minus dan saya master..boleh kurangi, else meldung tidak bisa mengurangi order yang bukan milik anda //kalau master ambil order semua $ada_default_order = 0; $myOrder = ""; $objOrderDetail = new OrderDetailModel(); $arrObj = $objOrderDetail->getWhere("id_user = '******' AND id_order = '{$id_order}' AND id_dish ='{$id_dish}' AND order_now!=1 LIMIT 0,1"); if (count($arrObj) > 0) { $ada_default_order = 1; $myOrder = $arrObj[0]; } $dish = new MasterDishModel(); $dish->getByID($id_dish); $isLeader = Util::isLeader($id_order, $id_user); if ($arah == "plus") { if (!$ada_default_order) { $price = $dish->price; //krn qty = 1 $objOrderDetail = new OrderDetailModel(); $objOrderDetail->id_user = $id_user; $objOrderDetail->id_order = $id_order; $objOrderDetail->id_dish = $id_dish; $objOrderDetail->quantity = 1; $objOrderDetail->price = $price; $objOrderDetail->datetime_order = $this->setCurrentDate(); $objOrderDetail->status = "1"; // $dishname = MasterDish::getDish($id_dish); // $objOrderDetail->quantity = 1; $id = $objOrderDetail->save(); } else { $price = $dish->price * ($myOrder->quantity + 1); $myOrder->quantity++; $myOrder->price = $price; $myOrder->datetime_order = $this->setCurrentDate(); $myOrder->status = "1"; $myOrder->load = 1; $myOrder->save(); $id = $myOrder->id_order_detail; } } if ($arah == "minus") { if ($ada_default_order) { //cek apa default ordernya masi plus if ($myOrder->quantity > 0) { //minus biasa $price = $dish->price * ($myOrder->quantity - 1); $myOrder->quantity--; $myOrder->price = $price; $myOrder->datetime_order = $this->setCurrentDate(); $myOrder->status = "1"; $myOrder->load = 1; $myOrder->save(); $id = $myOrder->id_order_detail; } else { if ($isLeader) { //minus dari anggota yang lain $objOrderDetail = new OrderDetailModel(); $arrObjLain = $objOrderDetail->getWhere("id_order = '{$id_order}' AND id_dish ='{$id_dish}'"); if (count($arrObjLain) > 0) { //bisa dikurangin dari yang lain..lihat qty nya juga $sum = 0; foreach ($arrObjLain as $od) { $sum += $od->quantity; } if ($sum > 0) { foreach ($arrObjLain as $od) { if ($od->quantity > 0) { //minus biasa $price = $dish->price * ($od->quantity - 1); $od->quantity--; $od->price = $price; $od->datetime_order = $this->setCurrentDate(); $od->status = "1"; $od->load = 1; $od->save(); $id = $od->id_order_detail; break; } } } else { //habis ga bisa dikurangi Generic::errorMsg("Not Enough Quantity"); } } else { Generic::errorMsg("Not Enough Quantity"); } } else { //Notify kl jumlah tidak cukup utk dikurangi //habis ga bisa dikurangi Generic::errorMsg("Not Enough Quantity"); } } } else { //minus dr anggota yang lain if ($isLeader) { //minus dari anggota yang lain $objOrderDetail = new OrderDetailModel(); $arrObjLain = $objOrderDetail->getWhere("id_order = '{$id_order}' AND id_dish ='{$id_dish}'"); if (count($arrObjLain) > 0) { //bisa dikurangin dari yang lain..lihat qty nya juga $sum = 0; foreach ($arrObjLain as $od) { $sum += $od->quantity; } if ($sum > 0) { foreach ($arrObjLain as $od) { if ($od->quantity > 0) { //minus biasa $price = $dish->price * ($od->quantity - 1); $od->quantity--; $od->price = $price; $od->datetime_order = $this->setCurrentDate(); $od->status = "1"; $od->load = 1; $od->save(); $id = $od->id_order_detail; break; } } } else { //habis ga bisa dikurangi Generic::errorMsg("Not Enough Quantity"); } } else { Generic::errorMsg("Not Enough Quantity"); } } else { //Notify kl jumlah tidak cukup utk dikurangi Generic::errorMsg("Not Enough Quantity"); } } } if ($arah == "") { Generic::errorMsg("Please insert arah"); } // getcurrent qty dr iddish // $currQuantity = OrderDetail::getQuantityUserByID_dish($id_dish, $id_order, $id_user); // $id = $this->addOrderDetails($id_order, $id_user, $id_dish, $currQuantity + 1); if (!$id) { Generic::errorMsg("Add order failed!"); } $objOrder = new MasterOrderModel(); $objOrder->getByID($id_order); $invoice = $this->calcRechnung($objOrder->id_restaurant, $id_order); $inv = new Invoice($id_order, true); $this->setInvoiceInOrder($objOrder, $invoice); $objOrder->datetime_order = $this->setCurrentDate(); // $objOrder->total_cost = $invoice['Total']; $objOrder->load = 1; $id_updateOrder = $objOrder->save(); if (!$id_updateOrder) { Generic::errorMsg("Update Order failed!"); } $json = array(); $json['status_code'] = 1; $json['results']['messages'] = "Success"; $orderDetails = Util::getAllOrderDetailsByIDOrder($id_order); $orderDetailByDishID = array(); // pr($orderDetails); $total = array(); foreach ($orderDetails as $det) { if ($det['status_progress'] != 9) { // echo "dis ID ".$det['id_dish']." | ".$total[$det['id_dish']]['quantity']." add ".$det['quantity']."<br>"; $total[$det['id_dish']]['quantity'] += $det['quantity']; } $string_name = rtrim(trim(preg_replace('/\\s\\s+/', ' ', $det['name']))); $dish = new MasterDishModel(); $dish->getByID($det['id_dish']); $total[$det['id_dish']]['id_dish'] = $det['id_dish']; $total[$det['id_dish']]['name'] = $string_name; $total[$det['id_dish']]['single_price'] = (double) $dish->price; $orderDetailByDishID[$det['id_dish']][] = $det; } $hasilnya = array(); $all_total = 0; foreach ($total as $key => $val) { $sem = array(); $val['price_subtotal'] = $val['quantity'] * $val['single_price']; $all_total += $val['price_subtotal']; $sem = $val; $sem["orders"] = array(); //kelompokan menurut status progess foreach ($orderDetailByDishID[$key] as $orderDetail) { $userInstance = Util::createUserInstance($orderDetail["id_user"], $orderDetail["note"], $orderDetail["id_order_detail"]); $orderDetail['user'] = $userInstance; if ($orderDetail['order_now'] == 0) { $sem['orders']['Pending'][] = $orderDetail; } else { $sem['orders'][Helper::getStatusProgress()[$orderDetail['status_progress']]][] = $orderDetail; } } $hasilnya[] = $sem; } $json['results']['hasil'] = $hasilnya; $json['results']['alltotal'] = $all_total; $json['results']['invoice'] = $inv->getInvoice(); $ids = $this->getUserIdByIDOrder($id_order, $id_user); // $json['results']['push'] = $this->notifyAddOrder($ids, $id_order); $json['results']['push'] = Util::pushNotifyAddOrder($id_order, $id_user, $id_dish); echo json_encode($json); // $json['APA'] = ""; // $json2 =$this->notifyAddOrder($ids, $id_order); // $json3 = array_merge($json, $json2); // echo json_encode($json3) ; die; }