![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/ts.corals.io/corals-api/Corals/core/User/Transformers/API/ |
<?php namespace Corals\User\Transformers\API; use Corals\Foundation\Transformers\APIBaseTransformer; use Corals\Modules\Timesheet\Facades\Timesheet; use Corals\Modules\Utility\Facades\ListOfValue\ListOfValues; use Corals\Settings\Facades\Settings; use Corals\User\Models\User; class UserTransformer extends APIBaseTransformer { /** * @param User $user * @return array * @throws \Throwable */ public function transform(User $user) { $client = Timesheet::getUserClients($user); $permissions = $user->getAllPermissions() ->pluck('name') ->toArray(); $positions = ListOfValues::get('positions'); $employee_type = ListOfValues::get('employee_type'); if ($this->isInEditMode()) { $userRate = $user->hourly_rate; } else { $userRate = $user->hourly_rate ?? 0; if (!$userRate && $user->salary) { $userRate = round($user->salary / Settings::get('total_working_hours_per_month', 176), 1); } if (!$userRate) { $userRate = '-'; } } $transformedArray = [ 'id' => $user->id, 'full_name' => $user->full_name, 'name' => $user->name, 'last_name' => $user->last_name, 'email' => $user->email, 'client_id' => data_get($client, 'id'), 'permissions' => $permissions, 'status' => $this->isInEditMode() ? $user->status : formatStatusAsLabels($user->status), 'confirmed' => $user->confirmed, 'roles' => $user->roles->pluck('id')->toArray(), 'roles_names' => $user->roles()->select('name', 'dashboard_url')->get(), 'roles_as_labels' => formatArrayAsLabels($user->roles->pluck('label'), 'primary'), 'job_title' => $user->job_title, 'picture' => $user->picture, 'picture_thumb' => $user->picture_thumb, 'about' => $user->getProperty('about'), 'phone_country_code' => $user->phone_country_code, 'phone_number' => $user->phone_number, 'address' => $user->getRawOriginal('address') ? $user->address : null, 'integration_id' => $user->integration_id, 'gateway' => $user->gateway, // 'projects_with_client' => $this->getUserProjectsWithClients($user), 'hourly_rate' => $userRate, 'salary' => $this->isInEditMode() ? $user->salary : ($user->salary ? ($user->salary . '/' . ucfirst($user->salary_period)) : $user->salary ?? '-'), 'working_hours' => $user->working_hours, 'salary_period' => $user->salary_period, 'employee_type' => $user->employee_type, 'employee_type_as_label' => $user->employee_type ? data_get($employee_type, $user->employee_type, $user->employee_type) : '-', 'start_date' => $user->start_date, 'position' => $this->isInEditMode() ? $user->position : ($user->position ? data_get($positions, $user->position, $user->position) : '-'), 'card_brand' => $user->card_brand, 'birth_date' => $user->birth_date, 'birth_date_visible' => $user->birth_date_visible, 'card_last_four' => $user->card_last_four, 'payment_method_token' => $user->payment_method_token, 'is_timesheet_administration' => Timesheet::isTimesheetAdministration(), 'properties' => $user->getProperties() ?? [], 'default_activity_id' => optional($user->defaultActivity)->title, 'created_at' => format_date($user->created_at), 'updated_at' => format_date($user->updated_at), ]; return parent::transformResponse($transformedArray, $user); } protected function getUserProjectsWithClients($user) { $projectsWithClients = []; foreach ($user->projects as $project) { if (empty($projectsWithClients[$project->client_id])) { $projectsWithClients[$project->client_id] = [ 'client' => $project->client->name, 'projects' => [], ]; } $projectsWithClients[$project->client_id]['projects'][] = [ 'project_name' => $project->name, ]; } return $projectsWithClients; } }