Server : Apache System : Linux 145.162.205.92.host.secureserver.net 5.14.0-611.45.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Apr 1 05:56:53 EDT 2026 x86_64 User : tradze ( 1001) PHP Version : 8.1.34 Disable Function : NONE Directory : /home/tradze/public_html/app/Modules/Schedules/Http/Controllers/Admin/ |
<?php
namespace App\Modules\Schedules\Http\Controllers\Admin;
use App\Http\Controllers\AdminController;
use App\Modules\Accounts\Models\Setting;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\User;
use Illuminate\Support\Collection;
use Yajra\DataTables\DataTables;
class SettingsController extends AdminController
{
public function radiusSetting(Request $request)
{
$this->data['page_title'] = 'Service Radius Setting';
$this->data['radius'] = Setting::where('key', 'default_radius')->first();
return view('accounts::admin.settings.radius.index', $this->data);
}
/**
* Show a list of all companies
*
* @return mixed
*/
public function data(Request $request)
{
$obj = $this->getData($request);
return DataTables::of($obj)
->editColumn('name', function ($o) {
return $o->name;
})
->addColumn('radius', function ($o) {
return $o->radius . ' km';
})
->addColumn('actions', function ($o) {
return '<button
class="btn btn-xs blue edit-radius"
data-id="' . $o->id . '"
data-type="' . $o->type . '"
data-radius="' . $o->radius . '">
Edit
</button>';
})
->rawColumns(['actions'])
->make(true);
}
// protected function getData(Request $request)
// {
// // Get default radius correctly from DB
// $defaultRadius = Setting::where('key', 'default_radius')->value('value') ?? 10;
// $data = collect();
// // Default row
// $data->push((object)[
// 'id' => 0,
// 'name' => 'Default Radius',
// 'radius' => $defaultRadius,
// 'type' => 'default'
// ]);
// // Users
// $users = User::get();
// foreach ($users as $user) {
// $data->push((object)[
// 'id' => $user->id,
// 'name' => $user->name,
// 'radius' => $user->radius,
// 'type' => 'user'
// ]);
// }
// return $data;
// }
protected function getData(Request $request)
{
return User::select('users.id', 'users.name', 'users.radius')
->join('role_user', 'users.id', '=', 'role_user.user_id')
->where('role_user.role_id', 3)
->get()
->map(function ($user) {
return (object)[
'id' => $user->id,
'name' => $user->name,
'radius' => $user->radius,
'type' => 'user'
];
});
}
public function updateRadius(Request $request)
{
$request->validate([
'type' => 'required|in:default,user',
'radius' => 'required|numeric|min:1'
]);
if ($request->type === 'default') {
Setting::updateOrCreate(
['key' => 'default_radius'],
['value' => $request->radius]
);
} else {
User::where('id', $request->id)->update([
'radius' => $request->radius
]);
}
return response()->json([
'success' => true,
'message' => 'Radius updated successfully'
]);
}
}