public function all($params)
 {
     $params['order'] = isset($params['order']) ? $params['order'] : ['services.id|DESC'];
     $services = Service::select("services.*");
     $services->leftJoin("companies", "companies.id", "=", "services.company_id");
     $services->leftJoin("company_person as internal_contact", "internal_contact.id", "=", "services.internal_contact_id");
     $services->leftJoin("company_person as external_contact", "external_contact.id", "=", "services.external_contact_id");
     $services->leftJoin('people as internals', 'internal_contact.person_id', '=', 'internals.id');
     $services->leftJoin('people as externals', 'external_contact.person_id', '=', 'externals.id');
     $services->leftJoin('hotels', 'hotels.id', '=', 'services.hotel_id');
     $services = parent::execute($services, $params);
     return $services;
 }
 public function ajaxServicesRequest($params = "")
 {
     parse_str($params, $params);
     $services = Service::select("services.*");
     $services->leftJoin("companies", "companies.id", "=", "services.company_id");
     $services->leftJoin("company_person as internal_contact", "internal_contact.id", "=", "services.internal_contact_id");
     $services->leftJoin("company_person as external_contact", "external_contact.id", "=", "services.external_contact_id");
     $services->leftJoin('people as internals', 'internal_contact.person_id', '=', 'internals.id');
     $services->leftJoin('people as externals', 'external_contact.person_id', '=', 'externals.id');
     $services->leftJoin('hotels', 'hotels.id', '=', 'services.hotel_id');
     // apply search
     if (isset($params['search'])) {
         $services->where('name', 'like', '%' . $params['search'] . '%');
     }
     // apply ordering
     if (isset($params['order'])) {
         $services->orderByRaw("case when " . $params['order']['column'] . " is null then 1 else 0 end asc");
         $services->orderBy($params['order']['column'], $params['order']['type']);
     }
     $services = $services->paginate(PAGINATION);
     $data['services'] = $services;
     return view('services/services', $data);
 }