static function getFreeDepartmentAdmins($company_id, array $exclude_admin = [])
 {
     $user_ids = CompanyDepartmentAdmins::where("company_id", $company_id)->lists("user_id");
     $department_admins_ids = [];
     if (sizeof($user_ids) > 0) {
         $department_admins_ids = DepartmentAdmins::whereIn('user_id', $user_ids)->lists('user_id');
     }
     $department_admins = [];
     if (sizeof($user_ids) > 0) {
         $admins = User::whereIn("id", $user_ids)->get();
         foreach ($admins as $admin) {
             if (!in_array($admin->id, $exclude_admin)) {
                 if (!in_array($admin->id, $department_admins_ids)) {
                     array_push($department_admins, $admin);
                 }
             } else {
                 array_push($department_admins, $admin);
             }
         }
     }
     return $department_admins;
 }
 public function all()
 {
     $user_ids = [];
     if (\KodeInfo\Utilities\Utils::isDepartmentAdmin(Auth::user()->id)) {
         $department_admin = DepartmentAdmins::where('user_id', Auth::user()->id)->first();
         $department = Department::where('id', $department_admin->department_id)->first();
         $department_ids = Department::where('company_id', $department->company_id)->lists('id');
         $user_ids = DepartmentAdmins::whereIn('department_id', $department_ids)->lists('user_id');
     } elseif (\KodeInfo\Utilities\Utils::isOperator(Auth::user()->id)) {
         $department_admin = DepartmentAdmins::where('user_id', Auth::user()->id)->first();
         $department = Department::where('id', $department_admin->department_id)->first();
         $department_ids = Department::where('company_id', $department->company_id)->lists('id');
         $user_ids = DepartmentAdmins::whereIn('department_id', $department_ids)->lists('user_id');
     } else {
         $group = Groups::where("name", "department-admin")->first();
         $user_ids = UsersGroups::where("group_id", $group->id)->lists("user_id");
     }
     if (sizeof($user_ids) > 0) {
         $this->data["admins"] = User::whereIn("id", $user_ids)->orderBy('id', 'desc')->get();
     } else {
         $this->data["admins"] = [];
     }
     foreach ($this->data["admins"] as $admin) {
         $department_admin = DepartmentAdmins::where('user_id', $admin->id)->first();
         if (!empty($department_admin)) {
             $admin->department = Department::find($department_admin->department_id);
         }
         $company_id = CompanyDepartmentAdmins::where("user_id", $admin->id)->pluck('company_id');
         $admin->company = Company::find($company_id);
     }
     return View::make('department_admins.all', $this->data);
 }