diff --git a/app/Http/Controllers/HasilController.php b/app/Http/Controllers/HasilController.php index 8452877..64ddcf8 100644 --- a/app/Http/Controllers/HasilController.php +++ b/app/Http/Controllers/HasilController.php @@ -7,6 +7,7 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\Models\User; +use Illuminate\Support\Facades\Validator; class HasilController extends Controller { @@ -47,9 +48,7 @@ public function index(Request $request) }); } - if ($request->kandang) { - $query->where('kandang_id', $request->kandang); - } + if ($request->bulan) { $query->whereMonth('tanggal_produksi', $request->bulan); @@ -79,7 +78,7 @@ public function index(Request $request) public function store(Request $request) { - $request->validate([ + $validator = Validator::make($request->all(), [ 'kandang_id' => 'required|exists:kandang,id', 'shift' => 'required|in:pagi,sore', 'berat_telur_layak' => 'required|regex:/^\d{1,6}(\.\d{1,2})?$/', @@ -103,15 +102,23 @@ public function store(Request $request) 'tanggal_produksi.before_or_equal' => 'Tanggal tidak boleh melebihi hari ini.', ]); + if ($validator->fails()) { + return redirect()->route('hasil') + ->withErrors($validator) + ->withInput() + ->with('form', 'tambah'); + } - $total = $request->berat_telur_layak + $request->berat_telur_rusak; + $layak = (float) $request->berat_telur_layak; + $rusak = (float) $request->berat_telur_rusak; + $total = $layak + $rusak; ProduksiTelur::create([ 'kandang_id' => $request->kandang_id, 'user_id' => Auth::id(), 'shift' => $request->shift, - 'berat_telur_layak' => $request->berat_telur_layak, - 'berat_telur_rusak' => $request->berat_telur_rusak, + 'berat_telur_layak' => $layak, + 'berat_telur_rusak' => $rusak, 'berat_telur_total' => $total, 'tanggal_produksi' => $request->tanggal_produksi, ]); @@ -123,7 +130,7 @@ public function store(Request $request) public function update(Request $request, $id) { - $request->validate([ + $validator = Validator::make($request->all(), [ 'kandang_id' => 'required|exists:kandang,id', 'shift' => 'required|in:pagi,sore', 'berat_telur_layak' => 'required|regex:/^\d{1,6}(\.\d{1,2})?$/', @@ -150,20 +157,29 @@ public function update(Request $request, $id) 'tanggal_produksi.before_or_equal' => 'Tanggal tidak boleh melebihi hari ini.', ]); + if ($validator->fails()) { + return redirect()->route('hasil') + ->withErrors($validator) + ->withInput() + ->with('form', 'edit') + ->with('edit_id', $id); + } - $total = $request->berat_telur_layak + $request->berat_telur_rusak; + $layak = (float) $request->berat_telur_layak; + $rusak = (float) $request->berat_telur_rusak; + $total = $layak + $rusak; ProduksiTelur::findOrFail($id)->update([ 'kandang_id' => $request->kandang_id, 'shift' => $request->shift, - 'berat_telur_layak' => $request->berat_telur_layak, - 'berat_telur_rusak' => $request->berat_telur_rusak, + 'berat_telur_layak' => $layak, + 'berat_telur_rusak' => $rusak, 'berat_telur_total' => $total, 'tanggal_produksi' => $request->tanggal_produksi, ]); return redirect()->route('hasil') - ->with('success', 'Data produksi berhasil diperbarui.'); + ->with('success', 'Data berhasil diupdate.'); } diff --git a/bootstrap/app.php b/bootstrap/app.php index c183276..4f42cc1 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -3,16 +3,32 @@ use Illuminate\Foundation\Application; use Illuminate\Foundation\Configuration\Exceptions; use Illuminate\Foundation\Configuration\Middleware; +use Illuminate\Support\Facades\Auth; +use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException; +use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; return Application::configure(basePath: dirname(__DIR__)) ->withRouting( - web: __DIR__.'/../routes/web.php', - commands: __DIR__.'/../routes/console.php', + web: __DIR__ . '/../routes/web.php', + commands: __DIR__ . '/../routes/console.php', health: '/up', ) ->withMiddleware(function (Middleware $middleware): void { // }) ->withExceptions(function (Exceptions $exceptions): void { - // + + // 405 - Method tidak sesuai + $exceptions->render(function (MethodNotAllowedHttpException $e, $request) { + if (!Auth::check()) { + return redirect()->route('login'); + } + }); + + // 404 - URL tidak ditemukan / diisengi + $exceptions->render(function (NotFoundHttpException $e, $request) { + if (!Auth::check()) { + return redirect()->route('login'); + } + }); })->create(); diff --git a/resources/views/produksi-hasil.blade.php b/resources/views/produksi-hasil.blade.php index 61d19e6..c1df21f 100644 --- a/resources/views/produksi-hasil.blade.php +++ b/resources/views/produksi-hasil.blade.php @@ -288,44 +288,78 @@ class="form-control @error('tanggal_produksi') is-invalid @enderror"