Пример #1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(Request $request)
 {
     $items = $request->get('items');
     $me = \Auth::user();
     $order = new \App\Order();
     $order->client()->associate($me);
     $my_orders = $me->orders;
     if ($my_orders->isEmpty()) {
         foreach ($me->waiters()->online()->get() as $waiter) {
             \App\Notification::add($me->toArray(), 'serve_me', $waiter);
         }
     } else {
         $my_order = $my_orders->first()->toArray();
         if ($my_order['waiter_id']) {
             $waiter = \App\User::find($my_order['waiter_id']);
             $order->waiter()->associate($waiter);
             \App\Notification::add($me->toArray(), 'serve_me_again', $waiter);
         }
     }
     $order->save();
     foreach ($items as $item) {
         $food = \App\Food::find($item['food']);
         if ($food->category->menu->admin_id == $me->admin_id) {
             $item = new \App\OrderItem($item);
             $item->food()->associate($food);
             $item->order()->associate($order);
             $item->save();
         }
     }
     return $order->load('items.food');
 }
Пример #2
0
 public function getFoodById($id, $secret = null)
 {
     if ($secret == '12345') {
         $foods = Food::find($id);
     } else {
         $foods = 'nope';
     }
     return response()->json($foods);
 }
Пример #3
0
 public function createOrder(Request $request)
 {
     Log::info('OrderController.createOrder:');
     $validator = Validator::make($request->all(), ['email' => 'required|email', 'address' => 'required', 'phone' => 'required|size:10', 'delivery_charges' => 'sometimes', 'payment_type' => 'sometimes|in:cod,online', 'items' => 'required']);
     if ($validator->fails()) {
         return response()->json(['response' => 'failure', 'message' => $validator->errors()]);
     }
     $order = Order::create($request->all());
     $order_id = $order->id;
     $total_amount = 0;
     $msg = "";
     if ($request->has('items')) {
         $input = $request->input('items');
         foreach ($input as $i) {
             //Check whether the food item exists
             $food = Food::find($i['food_id']);
             if (!$food || $food->quantity < $i['ordered_quantity']) {
                 $msg .= "Item " . $i['food_id'] . " is not available.";
                 //return response()->json(['response' => 'failure', 'message' => $msg, 'order' => $order]);
             } else {
                 //Add items to the order
                 $i['order_id'] = $order_id;
                 $order_detail = Order_detail::create($i);
                 $total_amount += $food->price * $i['ordered_quantity'];
                 //Update quantity in food table
                 $food->quantity = $food->quantity - $i['ordered_quantity'];
                 $food->save();
             }
         }
     }
     if ($total_amount > 0) {
         $order->item_total = $total_amount;
         $order->status = 'placed';
         $order->save();
         Event::fire(new OrderPlaced($order));
         Log::info('Order placed', ['id' => $order->id]);
         return response()->json(['response' => 'success', 'message' => $msg, 'order' => $order]);
     } else {
         //Delete the order record as none of the items are available
         $order->delete();
         Log::info('Order Deleted as items are not available', ['id' => $order_id]);
         return response()->json(['response' => 'failure', 'message' => $msg]);
     }
 }
 public function addFood()
 {
     if (Auth::check()) {
         $foodid = Request::get('foodid');
         $food = Food::find($foodid);
         if ($food == null) {
             return 'Unprocessable Food.';
         }
         $quantity = Request::get('quantity');
         if ($quantity == null || $quantity == 0) {
             return 'Invalid Quantity.';
         }
         $rating = Request::get('rating');
         $user = Auth::user();
         $user->addToFoodHistory($food, $quantity, $rating);
         return Redirect::route('foodhistory');
     } else {
         return 'Please log in!';
     }
 }
Пример #5
0
 public function getFood($id)
 {
     $food = Food::find($id);
     return response()->json($food);
 }
Пример #6
0
 /**
  * Delete id model and redirect
  *
  * @param type $id current number
  *
  * @return main page
  */
 public function destroy($id)
 {
     $object = Food::find($id);
     $object->delete();
     \Session::flash('flash_message', 'This position has been deleted :(');
     return redirect('food');
 }
Пример #7
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy(Request $request, $id)
 {
     $food = Food::find($id);
     if ($food && ($food->user_id == $request->user()->id || $request->user()->is_admin())) {
         $food->delete();
         $data['message'] = 'Food deleted successfully';
     } else {
         $data['errors'] = 'Invalid Operation. You have not sufficient permissions';
     }
     return redirect('/food/index')->with($data);
 }