middleware('admin'); } public function index($step = false) { $d = Booking::join('travel_country', 'travel_country_id', '=', 'travel_country.id')->get()->pluck('name', 'travel_country_id')->unique()->toArray(); $data = [ 'step' => $step, 'travel_countries' => $d, ]; return view('request.index', $data); } /* wirte old where has state to new has travel_documents $bs = Booking::whereHas('arrangements', function($q){ $q->where('state', '!=', NULL); })->where('lead_id', '!=', NULL)->where('new_drafts', 0)->get(); foreach ($bs as $b){ $b->travel_documents = true; $b->save(); var_dump($b->travel_documents); } die(); */ private function getSearchRequests(){ $query = Booking::where('lead_id', '!=', NULL); if(Request::get('full_firstname_search') != ""){ $query->where('participant_firstname', 'LIKE', '%'.Request::get('full_firstname_search').'%'); } if(Request::get('full_lastname_search') != ""){ $query->where('participant_name', 'LIKE', '%'.Request::get('full_lastname_search').'%'); } if(Request::get('travel_option_country_id') != ""){ $country_ids = TravelCountry::where('contact_lands', 'LIKE', '%"'.Request::get('travel_option_country_id').'"%')->get()->pluck('id'); $country_ids[] = Request::get('travel_option_country_id'); $query->whereIn('travel_country_id', $country_ids); } if(Request::get('travel_option_agenda_id') != ""){ $query->where('travelagenda_id', '=', Request::get('travel_option_agenda_id')); } // $query->where('end_date', '<=', $now); if(Request::get('travel_option_search')){ $now = Carbon::now(); switch (Request::get('travel_option_search')){ case 'before_2': $query->whereBetween('start_date', [Carbon::now()->modify('-2 month'), $now]); break; case 'brefore_1': $query->whereBetween('start_date', [Carbon::now()->modify('-1 month'), $now]); break; case 'on_site': $query->where('start_date', '<=', $now); $query->where('end_date', '>=', $now); break; case 'after_1': $query->whereBetween('start_date', [$now, Carbon::now()->modify('+1 month')]); break; case 'after_2': $query->whereBetween('start_date', [$now, Carbon::now()->modify('+2 month')]); break; } }else{ $start = null; $end = null; if(Request::get('arrival_start_date') != ""){ $arrStart = explode(".", Request::get('arrival_start_date')); if(count($arrStart) == 3){ $start = Carbon::create($arrStart[2], $arrStart[1], $arrStart[0], 0, 0, 0); } } if(Request::get('arrival_end_date') != ""){ $arrEnd = explode(".", Request::get('arrival_end_date')); if(count($arrEnd) == 3){ $end = Carbon::create($arrEnd[2], $arrEnd[1], $arrEnd[0], 23, 59, 59); } } if($start && $end){ $query->whereBetween('start_date', [$start, $end]); } if($start && !$end){ $query->where('start_date', '>=', $start); } if(!$start && $end){ $query->where('start_date', '<=', $end); } $start = null; $end = null; if(Request::get('departure_start_date') != ""){ $arrStart = explode(".", Request::get('departure_start_date')); if(count($arrStart) == 3){ $start = Carbon::create($arrStart[2], $arrStart[1], $arrStart[0], 0, 0, 0); } } if(Request::get('departure_end_date') != ""){ $arrEnd = explode(".", Request::get('departure_end_date')); if(count($arrEnd) == 3){ $end = Carbon::create($arrEnd[2], $arrEnd[1], $arrEnd[0], 23, 59, 59); } } if($start && $end){ $query->whereBetween('end_date', [$start, $end]); } if($start && !$end){ $query->where('end_date', '>=', $start); } if(!$start && $end){ $query->where('end_date', '<=', $end); } } if(Request::get('sort_travel_country_id') != ""){ $query->where('travel_country_id', '=', Request::get('sort_travel_country_id')); } if(Request::get('sort_travelagenda_id') != ""){ $query->where('travelagenda_id', '=', Request::get('sort_travelagenda_id')); } if(Request::get('sort_sf_guard_user_id') != ""){ $query->where('sf_guard_user_id', '=', Request::get('sort_sf_guard_user_id')); } if(Request::get('sort_travel_documents') != ""){ $query->where('travel_documents', '=', Request::get('sort_travel_documents')); } if(Request::get('full_lead_id_search') != ""){ $query->where('lead_id', 'LIKE', '%'.Request::get('full_lead_id_search'). '%'); } if(Request::get('full_booking_id_search') != ""){ $query->where('id', 'LIKE', '%'.Request::get('full_booking_id_search').'%'); } return $query; } public function getAjaxRequests(){ $query = $this->getSearchRequests(); $ret = $query->get()->pluck('travelagenda_id', 'id')->unique()->toArray(); return TravelAgenda::whereIn('id', $ret)->get()->pluck('name', 'id'); } public function getRequests() { $query = $this->getSearchRequests(); return \DataTables::eloquent($query) ->addColumn('action_edit', function (Booking $booking) { return ''; //''; }) ->addColumn('lead_id', function (Booking $booking) { return ''.$booking->lead_id.''; }) ->addColumn('participant_firstname', function (Booking $booking) { return ''.$booking->participant_firstname.''; }) ->addColumn('participant_name', function (Booking $booking) { return ''.$booking->participant_name.''; }) ->addColumn('id', function (Booking $booking) { return ''.$booking->id.''; }) ->addColumn('travel_country_id', function (Booking $booking) { return ''.($booking->travel_country_id ? $booking->travel_country->name : "-").''; }) ->addColumn('travelagenda_id', function (Booking $booking) { return ''.($booking->travelagenda_id ? $booking->travel_agenda->name : "-").''; }) ->addColumn('start_date', function (Booking $booking) { return $booking->getStartDateFormat(); }) ->addColumn('end_date', function (Booking $booking) { return $booking->getEndDateFormat(); }) ->addColumn('travel_documents', function (Booking $booking) { return $booking->travel_documents ? ' ' : ''; }) ->addColumn('sf_guard_user_id', function (Booking $booking) { return ''.($booking->sf_guard_user_id? $booking->sf_guard_user->first_name." ".$booking->sf_guard_user->last_name : "-").''; }) ->addColumn('lead.status_id', function (Booking $booking) { return ''.($booking->lead->status_id ? $booking->lead->status->name : "-").''; }) /* ->filterColumn('travel_country_id', function($query, $keyword) { if($keyword != "") { $query->whereRaw("travel_country_id = ?", $keyword); } }) ->filterColumn('travelagenda_id', function($query, $keyword) { if($keyword != ""){ $query->whereRaw("travelagenda_id = ?", $keyword); } }) */ ->orderColumn('lead_id', 'lead_id $1') ->orderColumn('participant_firstname', 'participant_firstname $1') ->orderColumn('participant_name', 'participant_name $1') ->orderColumn('id', 'id $1') ->orderColumn('travel_country_id', 'travel_country_id $1') ->orderColumn('travelagenda_id', 'travelagenda_id $1') ->orderColumn('sf_guard_user_id', 'sf_guard_user_id $1') ->orderColumn('start_date', 'start_date $1') ->orderColumn('end_date', 'end_date $1') ->orderColumn('travel_documents', 'travel_documents $1') ->rawColumns(['action_edit', 'lead_id', 'participant_firstname', 'participant_name', 'travel_country_id', 'travelagenda_id', 'sf_guard_user_id', 'lead.status_id', 'id', 'travel_documents']) ->make(true); } }