From 3335f78e52a7ca16165a3dc2b6ea58433f0768c6 Mon Sep 17 00:00:00 2001 From: Christopher Di Carlo Date: Thu, 4 Jul 2019 19:54:24 -0400 Subject: [PATCH] Display client task rate in projects datatable (#2879) * Display client task rate in projects datatable Displays the client task rate in the projects datatable if a project rate has not been set. Also adds an icon indicating what type of rate is being used. Fixes #2527 * Added account task rate display to project datatable --- app/Ninja/Datatables/ProjectDatatable.php | 16 +++++++++++++++- app/Ninja/Repositories/ProjectRepository.php | 5 ++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/Ninja/Datatables/ProjectDatatable.php b/app/Ninja/Datatables/ProjectDatatable.php index 5730cf40ca2d..364b8914392c 100644 --- a/app/Ninja/Datatables/ProjectDatatable.php +++ b/app/Ninja/Datatables/ProjectDatatable.php @@ -55,7 +55,21 @@ class ProjectDatatable extends EntityDatatable [ 'task_rate', function ($model) { - return floatval($model->task_rate) ? Utils::formatMoney($model->task_rate) : ''; + $taskRate = 0.0000; + $taskRateIcon = ''; + + if($model->task_rate !== '0.0000') { + $taskRate = $model->task_rate; + $taskRateIcon = ' '; + } elseif($model->client_task_rate !== '0.0000') { + $taskRate = $model->client_task_rate; + $taskRateIcon = ' '; + } elseif($model->account_task_rate !== '0.0000') { + $taskRate = $model->account_task_rate; + $taskRateIcon = ' '; + } + + return floatval($taskRate) ? $taskRateIcon . Utils::formatMoney($taskRate) : ''; } ], ]; diff --git a/app/Ninja/Repositories/ProjectRepository.php b/app/Ninja/Repositories/ProjectRepository.php index b25688335539..8929569d2e6a 100644 --- a/app/Ninja/Repositories/ProjectRepository.php +++ b/app/Ninja/Repositories/ProjectRepository.php @@ -23,6 +23,7 @@ class ProjectRepository extends BaseRepository { $query = DB::table('projects') ->where('projects.account_id', '=', Auth::user()->account_id) + ->join('accounts', 'accounts.id', '=', 'projects.account_id') ->leftjoin('clients', 'clients.id', '=', 'projects.client_id') ->leftJoin('contacts', 'contacts.client_id', '=', 'clients.id') ->where('contacts.deleted_at', '=', null) @@ -43,7 +44,9 @@ class ProjectRepository extends BaseRepository 'projects.private_notes', DB::raw("COALESCE(NULLIF(clients.name,''), NULLIF(CONCAT(contacts.first_name, ' ', contacts.last_name),''), NULLIF(contacts.email,'')) client_name"), 'clients.user_id as client_user_id', - 'clients.public_id as client_public_id' + 'clients.public_id as client_public_id', + 'clients.task_rate as client_task_rate', + 'accounts.task_rate as account_task_rate' ); $this->applyFilters($query, ENTITY_PROJECT);