Ejemplo n.º 1
0
 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);
 }