diff --git a/app/Services/UserService.php b/app/Services/UserService.php index f68dd5e8..1132e5f0 100644 --- a/app/Services/UserService.php +++ b/app/Services/UserService.php @@ -77,10 +77,22 @@ public function getUsers(array $filters = [], int $perPage = 15): LengthAwarePag } // 활성 상태 필터 - if (isset($filters['is_active'])) { + if (isset($filters['is_active']) && $filters['is_active'] !== '') { $query->where('is_active', $filters['is_active']); } + // 재직상태 필터 (tenant_user_profiles.employee_status) + if (! empty($filters['employee_status']) && $tenantId) { + $status = $filters['employee_status']; + $query->whereExists(function ($sub) use ($tenantId, $status) { + $sub->select(DB::raw(1)) + ->from('tenant_user_profiles') + ->whereColumn('tenant_user_profiles.user_id', 'users.id') + ->where('tenant_user_profiles.tenant_id', $tenantId) + ->where('tenant_user_profiles.employee_status', $status); + }); + } + return $query->orderBy('created_at', 'desc')->paginate($perPage); } diff --git a/resources/views/users/index.blade.php b/resources/views/users/index.blade.php index 0dd9eabd..d409e6d4 100644 --- a/resources/views/users/index.blade.php +++ b/resources/views/users/index.blade.php @@ -22,10 +22,20 @@ class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500"> + +