HEX
Server: nginx/1.24.0
System: Linux localhost 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64
User: www (1000)
PHP: 8.3.27
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
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'
            ]
        ];
    }
}