/** * 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'); }
public function getFoodById($id, $secret = null) { if ($secret == '12345') { $foods = Food::find($id); } else { $foods = 'nope'; } return response()->json($foods); }
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!'; } }
public function getFood($id) { $food = Food::find($id); return response()->json($food); }
/** * 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'); }
/** * 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); }