Esempio n. 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');
 }