protected function getDatatableColumns($entityType, $hideClient) { return [['vendor_name', function ($model) { if ($model->vendor_public_id) { if (!Vendor::canViewItemByOwner($model->vendor_user_id)) { return $model->vendor_name; } return link_to("vendors/{$model->vendor_public_id}", $model->vendor_name)->toHtml(); } else { return ''; } }], ['client_name', function ($model) { if ($model->client_public_id) { if (!Client::canViewItemByOwner($model->client_user_id)) { return Utils::getClientDisplayName($model); } return link_to("clients/{$model->client_public_id}", Utils::getClientDisplayName($model))->toHtml(); } else { return ''; } }], ['expense_date', function ($model) { if (!Expense::canEditItemByOwner($model->user_id)) { return Utils::fromSqlDate($model->expense_date); } return link_to("expenses/{$model->public_id}/edit", Utils::fromSqlDate($model->expense_date))->toHtml(); }], ['amount', function ($model) { // show both the amount and the converted amount if ($model->exchange_rate != 1) { $converted = round($model->amount * $model->exchange_rate, 2); return Utils::formatMoney($model->amount, $model->expense_currency_id) . ' | ' . Utils::formatMoney($converted, $model->invoice_currency_id); } else { return Utils::formatMoney($model->amount, $model->expense_currency_id); } }], ['public_notes', function ($model) { return $model->public_notes != null ? substr($model->public_notes, 0, 100) : ''; }], ['expense_status_id', function ($model) { return self::getStatusLabel($model->invoice_id, $model->should_be_invoiced); }]]; }