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); }