public function columns()
{
return [['invoice_number', function ($model) {
if (!Auth::user()->can('viewByOwner', [ENTITY_INVOICE, $model->invoice_user_id])) {
return $model->invoice_number;
}
return link_to("invoices/{$model->invoice_public_id}/edit", $model->invoice_number, ['class' => Utils::getEntityRowClass($model)])->toHtml();
}], ['client_name', function ($model) {
if (!Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])) {
return Utils::getClientDisplayName($model);
}
return $model->client_public_id ? link_to("clients/{$model->client_public_id}", Utils::getClientDisplayName($model))->toHtml() : '';
}, !$this->hideClient], ['transaction_reference', function ($model) {
return $model->transaction_reference ? $model->transaction_reference : '<i>' . trans('texts.manual_entry') . '</i>';
}], ['payment_type', function ($model) {
return $model->payment_type && !$model->last4 ? $model->payment_type : ($model->account_gateway_id ? $model->gateway_name : '');
}], ['payment_type_id', function ($model) {
$code = str_replace(' ', '', strtolower($model->payment_type));
$card_type = trans('texts.card_' . $code);
if ($model->payment_type_id != PAYMENT_TYPE_ACH) {
if ($model->last4) {
$expiration = Utils::fromSqlDate($model->expiration, false)->format('m/y');
return '<img height="22" src="' . URL::to('/images/credit_cards/' . $code . '.png') . '" alt="' . htmlentities($card_type) . '"> •••' . $model->last4 . ' ' . $expiration;
} elseif ($model->email) {
return $model->email;
}
} elseif ($model->last4) {
if ($model->bank_name) {
$bankName = $model->bank_name;
} else {
$bankData = PaymentMethod::lookupBankData($model->routing_number);
if ($bankData) {
$bankName = $bankData->name;
}
}
if (!empty($bankName)) {
return $bankName . ' •••' . $model->last4;
} elseif ($model->last4) {
return '<img height="22" src="' . URL::to('/images/credit_cards/ach.png') . '" alt="' . htmlentities($card_type) . '"> •••' . $model->last4;
}
}
}], ['amount', function ($model) {
return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id);
}], ['payment_date', function ($model) {
if ($model->is_deleted) {
return Utils::dateToString($model->payment_date);
} else {
return link_to("payments/{$model->public_id}/edit", Utils::dateToString($model->payment_date))->toHtml();
}
}], ['payment_status_name', function ($model) {
return self::getStatusLabel($model);
}]];
}