public function raw() { if (Input::has('filtre_submitted')) { if (Input::has('filtre_user_id')) { Session::put('filtre_booking.user_id', Input::get('filtre_user_id')); } if (Input::has('filtre_ressource_id')) { Session::put('filtre_booking.ressource_id', Input::get('filtre_ressource_id')); } else { Session::forget('filtre_booking.ressource_id'); } if (Input::has('filtre_start')) { $date_start_explode = explode('/', Input::get('filtre_start')); Session::put('filtre_booking.start', $date_start_explode[2] . '-' . $date_start_explode[1] . '-' . $date_start_explode[0]); if (!Input::has('filtre_user_id')) { Session::forget('filtre_booking.user_id'); } } else { Session::put('filtre_booking.end', date('Y-m-t')); } if (Input::has('filtre_end')) { $date_end_explode = explode('/', Input::get('filtre_end')); Session::put('filtre_booking.end', $date_end_explode[2] . '-' . $date_end_explode[1] . '-' . $date_end_explode[0]); } else { Session::put('filtre_booking.end', date('Y-m-t')); } if (Input::has('filtre_toinvoice')) { Session::put('filtre_booking.toinvoice', Input::get('filtre_toinvoice')); } else { Session::put('filtre_booking.toinvoice', false); } } if (Session::has('filtre_booking.start')) { $date_filtre_start = Session::get('filtre_booking.start'); $date_filtre_end = Session::get('filtre_booking.end'); } else { $date_filtre_start = date('Y-m-d'); $date_filtre_end = date('Y-m-t'); } $q = BookingItem::query(); if ($date_filtre_start && $date_filtre_end) { $q->whereBetween('start_at', array($date_filtre_start, $date_filtre_end)); } if (Session::get('filtre_booking.ressource_id')) { $q->whereRessourceId(Session::get('filtre_booking.ressource_id')); } if (Session::get('filtre_booking.toinvoice')) { $q->whereNull('invoice_id'); $q->where('is_free', false); } if (Auth::user()->isSuperAdmin()) { if (Session::has('filtre_booking.user_id')) { $q->join('booking', function ($j) { $j->on('booking_id', '=', 'booking.id')->where('user_id', '=', Session::get('filtre_booking.user_id')); }); } } else { $q->join('booking', function ($j) { $j->on('booking_id', '=', 'booking.id')->where('user_id', '=', Auth::user()->id); }); } $q->orderBy('start_at', 'ASC'); $q->with('booking.user', 'ressource', 'booking'); $params = array(); $params['items'] = $q->paginate(15, array('booking_item.*')); return View::make('booking::raw', $params); }