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);
     }]];
 }