select('users.*')->where('users.deleted_at', '=', null)->where('users.admin', "<", 4); return \DataTables::eloquent($query) ->addColumn('first_name', function (User $user) { return $user->account ? $user->account->first_name : ''; }) ->addColumn('last_name', function (User $user) { return $user->account ? $user->account->last_name : ''; }) ->addColumn('id', function (User $user) { return ''; }) ->addColumn('admin', function (User $user) { return ''.HTMLHelper::getRoleLabel($user->admin).''; }) ->addColumn('confirmed', function (User $user) { $date = $user->getConfirmationDateFormat(); $link = ''; return $user->confirmed ? $link.' '.$date.'' : $link.''; }) ->addColumn('active', function (User $user) { $date = $user->getActiveDateFormat(); $link = ''; return $user->active ? $link.' '.$date.'' : $link.''; }) ->addColumn('account', function (User $user) { $date = $user->getPaymentAccountDateFormat(); $link = ''; if($user->payment_account){ if($user->isActiveAccount()){ return $link.' '.$date.''; } return $link.' '.$date.''; } return $link.''; }) ->addColumn('shop', function (User $user) { $date = $user->getPaymentShopDateFormat(); $link = ''; if($user->payment_shop){ if($user->isActiveShop()){ return $link.' '.$date.''; } return $link.' '.$date.''; } return $link.''; }) ->addColumn('since', function (User $user) { if($user->shop){ if($user->shop->active){ return $user->shop->getActiveDateFormatSmall(); } return $user->shop->getActiveDateFormatSmall(); } return "-"; }) ->addColumn('my_payment_methods', function (User $user) { $payment_methods = json_encode($user->payment_methods); $link = ''; if(!$user->payment_methods){ return $link.''; } return $link.' '.$user->getPaymentMethodsShort().''; }) ->addColumn('action_delete', function (User $user) { return ' '; }) ->addColumn('test_mode', function (User $user) { $link = ''; return $user->test_mode ? $link.'' : $link.''; }) ->orderColumn('id', 'id $1') ->orderColumn('confirmed', 'confirmed $1') ->orderColumn('active', 'active $1') ->orderColumn('shop', 'shop $1') ->orderColumn('admin', 'active $1') ->rawColumns(['id', 'admin', 'confirmed', 'active', 'account', 'shop', 'my_payment_methods', 'test_mode', 'action_delete']) ->make(true); } }