diff --git a/app/Ninja/Reports/TaskReport.php b/app/Ninja/Reports/TaskReport.php index fbc52b0591..b19e871c86 100644 --- a/app/Ninja/Reports/TaskReport.php +++ b/app/Ninja/Reports/TaskReport.php @@ -13,24 +13,39 @@ class TaskReport extends AbstractReport 'project', 'description', 'duration', + 'amount', ]; public function run() { + $startDate = date_create($this->startDate); + $endDate = date_create($this->endDate); + $tasks = Task::scope() ->orderBy('created_at', 'desc') - ->with('client.contacts') + ->with('client.contacts', 'project', 'account') ->withArchived() - ->dateRange($this->startDate, $this->endDate); + ->dateRange($startDate, $endDate); foreach ($tasks->get() as $task) { + $amount = $task->getRate() * ($task->getDuration() / 60 / 60); + if ($task->client && $task->client->currency_id) { + $currencyId = $task->client->currency_id; + } else { + $currencyId = auth()->user()->account->getCurrencyId(); + } + $this->data[] = [ $task->client ? ($this->isExport ? $task->client->getDisplayName() : $task->client->present()->link) : trans('texts.unassigned'), $this->isExport ? $task->getStartTime() : link_to($task->present()->url, $task->getStartTime()), $task->present()->project, $task->description, Utils::formatTime($task->getDuration()), + Utils::formatMoney($amount, $currencyId), ]; + + $this->addToTotals($currencyId, 'duration', $task->getDuration()); + $this->addToTotals($currencyId, 'amount', $amount); } } }