Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
0.00% |
0 / 29 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
| ReportingActiveUsersRequest | |
0.00% |
0 / 29 |
|
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 1 |
| execute | |
0.00% |
0 / 29 |
|
0.00% |
0 / 1 |
20 | |||
| 1 | <?php |
| 2 | |
| 3 | namespace App\Actions; |
| 4 | |
| 5 | use App\DTO\ReportingActiveUsersRequestDTO; |
| 6 | use App\Http\Models\Auth\User; |
| 7 | use App\Http\Models\UserInfo; |
| 8 | |
| 9 | class ReportingActiveUsersRequest |
| 10 | { |
| 11 | /** |
| 12 | * Execute the action to get active and inactive users. |
| 13 | * |
| 14 | * @return array |
| 15 | */ |
| 16 | public function execute(ReportingActiveUsersRequestDTO $filter) |
| 17 | { |
| 18 | $users = UserInfo::select([ |
| 19 | 'user_id', |
| 20 | 'first_name', |
| 21 | 'last_name', |
| 22 | 'company_group_id', |
| 23 | 'company_id', |
| 24 | 'deleted_at', |
| 25 | 'deactivated_at', |
| 26 | 'status', |
| 27 | 'user_created_at', |
| 28 | 'avatar', |
| 29 | ]); |
| 30 | |
| 31 | // Filter by user IDs, group IDs, and subgroup IDs |
| 32 | $user_ids = array_filter(explode(',', $filter->user_ids ?? '')); |
| 33 | $group_ids = array_filter(explode(',', $filter->group_ids ?? '')); |
| 34 | $subgroup_ids = array_filter(explode(',', $filter->subgroup_ids ?? '')); |
| 35 | |
| 36 | if (! empty($user_ids)) { |
| 37 | $users->whereIn('user_id', $user_ids); |
| 38 | } |
| 39 | if (! empty($group_ids)) { |
| 40 | $users->whereIn('company_group_id', $group_ids); |
| 41 | } |
| 42 | if (! empty($subgroup_ids)) { |
| 43 | $users->whereIn('company_group_id', $subgroup_ids); |
| 44 | } |
| 45 | |
| 46 | $active_users_count = $users->where('status', 'Active')->orWhereNull('status')->count(); |
| 47 | $inactive_users_count = $users->where('status', '!=', 'Active')->whereNotNull('status')->count(); |
| 48 | |
| 49 | return [ |
| 50 | 'active_users' => $active_users_count, |
| 51 | 'inactive_users' => $inactive_users_count, |
| 52 | 'with_extension_installed' => $users->where('is_any_extension_installed', true)->count(), |
| 53 | 'with_extension_uninstalled' => $users->where('is_any_extension_uninstalled', true)->count(), |
| 54 | ]; |
| 55 | } |
| 56 | } |