96 lines
2.2 KiB
PHP
96 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Penyakit;
|
|
use Illuminate\Http\Request;
|
|
|
|
class PenyakitController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
// jumlah data
|
|
$perPage = $request->perPage ?? 5;
|
|
|
|
$query = Penyakit::query();
|
|
|
|
// SEARCH
|
|
if ($request->search) {
|
|
|
|
$query->where('kode', 'like', '%' . $request->search . '%')
|
|
->orWhere('nama', 'like', '%' . $request->search . '%');
|
|
}
|
|
|
|
// PAGINATION + URUT KODE
|
|
$penyakits = $query->orderBy('kode', 'asc')
|
|
->paginate($perPage)
|
|
->withQueryString();
|
|
|
|
return view('admin.penyakit.index', compact('penyakits', 'perPage'));
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
// ambil kode terakhir
|
|
$lastPenyakit = Penyakit::orderBy('kode', 'desc')->first();
|
|
|
|
// default awal
|
|
$kode = 'P01';
|
|
|
|
// jika ada data
|
|
if ($lastPenyakit) {
|
|
|
|
// ambil angka dari kode
|
|
$lastNumber = (int) substr($lastPenyakit->kode, 1);
|
|
|
|
// tambah 1
|
|
$newNumber = $lastNumber + 1;
|
|
|
|
// format P01
|
|
$kode = 'P' . str_pad($newNumber, 2, '0', STR_PAD_LEFT);
|
|
}
|
|
|
|
return view('admin.penyakit.create', compact('kode'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'kode' => 'required|unique:penyakits',
|
|
'nama' => 'required'
|
|
]);
|
|
|
|
Penyakit::create($request->all());
|
|
|
|
return redirect()->route('penyakit.index')
|
|
->with('success', 'Data berhasil ditambahkan');
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$penyakit = Penyakit::findOrFail($id);
|
|
return view('admin.penyakit.edit', compact('penyakit'));
|
|
}
|
|
|
|
public function update(Request $request, Penyakit $penyakit)
|
|
{
|
|
$request->validate([
|
|
'nama' => 'required'
|
|
]);
|
|
|
|
$penyakit->update([
|
|
'nama' => $request->nama
|
|
]);
|
|
|
|
return redirect()->route('penyakit.index')
|
|
->with('success', 'Data penyakit berhasil diupdate');
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
Penyakit::destroy($id);
|
|
|
|
return redirect()->route('penyakit.index')
|
|
->with('success', 'Data berhasil dihapus');
|
|
}
|
|
} |