protected function getDatatableActions($entityType) { return [[trans('texts.apply_credit'), function ($model) { return URL::to("payments/create/{$model->client_public_id}") . '?paymentTypeId=1'; }, function ($model) { return Payment::canCreate(); }]]; }
/** * 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_{$entityType}"), function ($model) use($entityType) { return URL::to("{$entityType}s/{$model->public_id}/edit"); }, function ($model) { return Invoice::canEditItem($model); }], [trans("texts.clone_{$entityType}"), function ($model) use($entityType) { return URL::to("{$entityType}s/{$model->public_id}/clone"); }, function ($model) { return Invoice::canCreate(); }], [trans("texts.view_history"), function ($model) use($entityType) { return URL::to("{$entityType}s/{$entityType}_history/{$model->public_id}"); }], ['--divider--', function () { return false; }, function ($model) { return Invoice::canEditItem($model) || Payment::canCreate(); }], [trans("texts.mark_sent"), function ($model) { return "javascript:markEntity({$model->public_id})"; }, function ($model) { return $model->invoice_status_id < INVOICE_STATUS_SENT && Invoice::canEditItem($model); }], [trans('texts.enter_payment'), function ($model) { return URL::to("payments/create/{$model->client_public_id}/{$model->public_id}"); }, function ($model) use($entityType) { return $entityType == ENTITY_INVOICE && $model->balance > 0 && Payment::canCreate(); }], [trans("texts.view_quote"), function ($model) { return URL::to("quotes/{$model->quote_id}/edit"); }, function ($model) use($entityType) { return $entityType == ENTITY_INVOICE && $model->quote_id && Invoice::canEditItem($model); }], [trans("texts.view_invoice"), function ($model) { return URL::to("invoices/{$model->quote_invoice_id}/edit"); }, function ($model) use($entityType) { return $entityType == ENTITY_QUOTE && $model->quote_invoice_id && Invoice::canEditItem($model); }], [trans("texts.convert_to_invoice"), function ($model) { return "javascript:convertEntity({$model->public_id})"; }, function ($model) use($entityType) { return $entityType == ENTITY_QUOTE && !$model->quote_invoice_id && Invoice::canEditItem($model); }]]; }
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(); }]]; }