/** * Display the specified resource. * * @param int $id * @return Response */ public function show($publicId) { $client = Client::withTrashed()->scope($publicId)->with('contacts', 'size', 'industry')->firstOrFail(); if (!$this->checkViewPermission($client, $response)) { return $response; } Utils::trackViewed($client->getDisplayName(), ENTITY_CLIENT); $actionLinks = []; if (Task::canCreate()) { $actionLinks[] = ['label' => trans('texts.new_task'), 'url' => '/tasks/create/' . $client->public_id]; } if (Utils::isPro() && Invoice::canCreate()) { $actionLinks[] = ['label' => trans('texts.new_quote'), 'url' => '/quotes/create/' . $client->public_id]; } if (!empty($actionLinks)) { $actionLinks[] = \DropdownButton::DIVIDER; } if (Payment::canCreate()) { $actionLinks[] = ['label' => trans('texts.enter_payment'), 'url' => '/payments/create/' . $client->public_id]; } if (Credit::canCreate()) { $actionLinks[] = ['label' => trans('texts.enter_credit'), 'url' => '/credits/create/' . $client->public_id]; } if (Expense::canCreate()) { $actionLinks[] = ['label' => trans('texts.enter_expense'), 'url' => '/expenses/create/0/' . $client->public_id]; } $data = array('actionLinks' => $actionLinks, 'showBreadcrumbs' => false, 'client' => $client, 'credit' => $client->getTotalCredit(), 'title' => trans('texts.view_client'), 'hasRecurringInvoices' => Invoice::scope()->where('is_recurring', '=', true)->whereClientId($client->id)->count() > 0, 'hasQuotes' => Invoice::scope()->where('is_quote', '=', true)->whereClientId($client->id)->count() > 0, 'hasTasks' => Task::scope()->whereClientId($client->id)->count() > 0, 'gatewayLink' => $client->getGatewayLink()); return View::make('clients.show', $data); }
protected function getDatatableActions($entityType) { return [[trans('texts.edit_client'), function ($model) { return URL::to("clients/{$model->public_id}/edit"); }, function ($model) { return Client::canEditItem($model); }], ['--divider--', function () { return false; }, function ($model) { return Client::canEditItem($model) && (Task::canCreate() || Invoice::canCreate()); }], [trans('texts.new_task'), function ($model) { return URL::to("tasks/create/{$model->public_id}"); }, function ($model) { return Task::canCreate(); }], [trans('texts.new_invoice'), function ($model) { return URL::to("invoices/create/{$model->public_id}"); }, function ($model) { return Invoice::canCreate(); }], [trans('texts.new_quote'), function ($model) { return URL::to("quotes/create/{$model->public_id}"); }, function ($model) { return Auth::user()->isPro() && Invoice::canCreate(); }], ['--divider--', function () { return false; }, function ($model) { return (Task::canCreate() || Invoice::canCreate()) && (Payment::canCreate() || Credit::canCreate() || Expense::canCreate()); }], [trans('texts.enter_payment'), function ($model) { return URL::to("payments/create/{$model->public_id}"); }, function ($model) { return Payment::canCreate(); }], [trans('texts.enter_credit'), function ($model) { return URL::to("credits/create/{$model->public_id}"); }, function ($model) { return Credit::canCreate(); }], [trans('texts.enter_expense'), function ($model) { return URL::to("expenses/create/0/{$model->public_id}"); }, function ($model) { return Expense::canCreate(); }]]; }