File: /www/wwwroot/erp.nhatnamsst.com/domains/PaymentMethod/DataTables/PaymentMethodDataTable.php
<?php
namespace Domains\PaymentMethod\DataTables;
use Domains\Core\DataTables\DataTables;
use Domains\PaymentMethod\Repositories\PaymentMethod\PaymentMethodRepositoryInterface;
class PaymentMethodDataTable extends DataTables
{
public function __construct(
public PaymentMethodRepositoryInterface $repo
) {}
protected function setColumnHasSearch(): void
{
$this->columnHasSearch = ['name'];
}
protected function setRemoveColumns(): void
{
$currentAdmin = get_auth_admin();
$hasEdit = $currentAdmin && $currentAdmin->checkRouteNameAccessOrSuperAdmin('cms.payment_method.edit');
$hasDelete = $currentAdmin && $currentAdmin->checkRouteNameAccessOrSuperAdmin('cms.payment_method.delete');
$hasAnyAction = $hasEdit || $hasDelete;
if (!$hasAnyAction) {
$this->removeColumns[] = 'action';
}
}
public function query()
{
$query = $this->repo->getQueryBuilder();
if ($this->request) {
if ($this->request->has('filter_name') && $this->request->get('filter_name')) {
$name = $this->request->get('filter_name');
$query->where('name', 'like', '%' . $name . '%');
}
}
return $query;
}
protected function setEditColumns(): void
{
$this->editColumns = [
'name' => 'cms.payment_methods.datatable.name',
];
}
protected function setAddColumns(): void
{
$this->addColumns = [
'action' => 'cms.payment_methods.datatable.action',
];
}
protected function setRawColumns(): void
{
$this->rawColumns = ['name', 'action'];
}
protected function setConfigColumns(): void
{
$this->configColumns = [
'name' => [
'title' => 'Phương thức thanh toán',
'orderable' => true,
],
'action' => [
'title' => 'Hành động',
'orderable' => false,
'exportable' => false,
'printable' => false,
'addClass' => 'text-center',
'width' => '120px'
]
];
}
}