| Current Path : /var/www/html/reddsis/app/Http/Controllers/Backend/ |
| Current File : /var/www/html/reddsis/app/Http/Controllers/Backend/RefController.php |
<?php
namespace App\Http\Controllers\Backend;
use App\Http\Controllers\Controller;
use App\Http\Requests\Backend\RefRequest;
use App\Models\Backend\Ref;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class RefController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(Request $request)
{
$search = $request->get('search');
$cat = $request->get('cat');
$refs = Ref::query()
->when($search, function ($q) use ($search) {
$q->where(function ($sub) use ($search) {
$sub->where('cat', 'like', "%{$search}%")
->orWhere('code', 'like', "%{$search}%")
->orWhere('descr', 'like', "%{$search}%")
->orWhere('descr_en', 'like', "%{$search}%");
});
})
->when($cat, fn($q) => $q->where('cat', $cat))
->orderBy('cat')
->orderBy('sort')
->paginate(10)
->onEachSide(1)
->withQueryString();
$categories = Ref::select('cat')->distinct()->orderBy('cat')->pluck('cat');
return view(
'backend.module.ref.index',
[
'refs' => $refs,
'search' => $search,
'cat' => $cat,
'categories' => $categories,
]
);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
$codes = Ref::select('cat', 'code', 'descr')->orderBy('cat')->orderBy('sort')->get();
return view('backend.module.ref.create', ['codes' => $codes]);
}
/**
* Store a newly created resource in storage.
*/
public function store(RefRequest $request)
{
Ref::create([
'cat' => $request->cat,
'code' => $request->code,
'descr' => $request->descr,
'descr_en' => $request->descr_en,
'sort' => $request->sort,
'parent' => $request->parent,
'icon_name' => $request->icon_name,
'created_by' => auth()->user()->username ?? auth()->id(),
'updated_by' => auth()->user()->username ?? auth()->id(),
]);
flash()->success('Parameter created successfully!');
return redirect()->route('ref.index');
}
/**
* Display the specified resource.
*/
// public function show($id)
// {
// $ref = Ref::findOrFail($id);
// return view(
// 'backend.module.ref.show',
// [
// 'ref' => $ref,
// ]
// );
// }
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
$ref = Ref::findOrFail($id);
$codes = Ref::select('cat', 'code', 'descr')->orderBy('cat')->orderBy('sort')->get();
return view(
'backend.module.ref.edit',
[
'ref' => $ref,
'codes' => $codes,
]
);
}
/**
* Update the specified resource in storage.
*/
public function update(RefRequest $request, $id)
{
$ref = Ref::findOrFail($id);
$ref->update([
'cat' => $request->cat,
'code' => $request->code,
'descr' => $request->descr,
'descr_en' => $request->descr_en,
'sort' => $request->sort,
'parent' => $request->parent,
'icon_name' => $request->icon_name,
'updated_by' => auth()->user()->username ?? auth()->id(),
]);
flash()->success('Parameter updated successfully!');
return redirect()->route('ref.index');
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
$ref = Ref::findOrFail($id);
$ref->delete();
flash()->success('Parameter deleted successfully.');
return redirect()->route('ref.index');
}
public function reorder(Request $request)
{
$ids = $request->input("ids", []);
$page = (int) $request->input('page', 1);
$perPage = 10;
$offset = ($page - 1) * $perPage;
foreach ($ids as $index => $id) {
\App\Models\Backend\Ref::where("id", $id)->update(["sort" => $offset + $index + 1]);
}
return response()->json(["success" => true]);
}
}