Sh3ll
OdayForums


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/tradze/public_html/app/Modules/Schedules/Http/Controllers/Admin/SettingsController.php
<?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'
        ]);
    }
}

ZeroDay Forums Mini