File: /www/wwwroot/erp.nhatnamsst.com/domains/Unit/DataTables/UnitDataTable.php
<?php
namespace Domains\Unit\DataTables;
use Domains\Core\DataTables\DataTables;
use Domains\Unit\Repositories\Unit\UnitRepositoryInterface;
class UnitDataTable extends DataTables
{
public function __construct(
public UnitRepositoryInterface $repo
) {}
protected function setColumnHasSearch(): void
{
$this->columnHasSearch = ['name'];
}
protected function setRemoveColumns(): void
{
$currentAdmin = get_auth_admin();
$hasEdit = $currentAdmin && $currentAdmin->checkRouteNameAccessOrSuperAdmin('cms.unit.edit');
$hasDelete = $currentAdmin && $currentAdmin->checkRouteNameAccessOrSuperAdmin('cms.unit.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.units.datatable.name',
];
}
protected function setAddColumns(): void
{
$this->addColumns = [
'action' => 'cms.units.datatable.action',
];
}
protected function setRawColumns(): void
{
$this->rawColumns = ['name', 'action'];
}
protected function setConfigColumns(): void
{
$this->configColumns = [
'name' => [
'title' => 'Đơn vị',
'orderable' => true,
],
'action' => [
'title' => 'Hành động',
'orderable' => false,
'exportable' => false,
'printable' => false,
'addClass' => 'text-center',
'width' => '120px'
]
];
}
}