From 3872207bf049122af15cf4b0bb5249b825d53a4f Mon Sep 17 00:00:00 2001 From: ninavirgiana Date: Tue, 24 Mar 2026 13:08:15 +0700 Subject: [PATCH] update ayam --- app/Http/Controllers/AyamController.php | 51 ++++++-- resources/views/inventori-ayam.blade.php | 144 +++++++++++++++-------- 2 files changed, 136 insertions(+), 59 deletions(-) diff --git a/app/Http/Controllers/AyamController.php b/app/Http/Controllers/AyamController.php index aecd047..9ca9ee8 100644 --- a/app/Http/Controllers/AyamController.php +++ b/app/Http/Controllers/AyamController.php @@ -61,13 +61,14 @@ public function index(Request $request) return view('inventori-ayam', compact('data', 'kandang')); } - public function store(Request $request) + public function store(Request $request) { $request->validate([ 'jenis_mutasi' => 'required|in:masuk,mati,afkir,pindah', - 'jumlah' => 'required|integer|min:1|max:9999', - 'tanggal' => 'required|date|before_or_equal:today', - ], [ + 'jumlah' => 'required|integer|min:1|max:9999', + 'tanggal' => 'required|date|before_or_equal:today', + 'keterangan' => 'required_if:jenis_mutasi,masuk,mati,afkir|string|max:255', + ], [ 'jenis_mutasi.required' => 'Jenis mutasi wajib dipilih.', 'jenis_mutasi.in' => 'Jenis mutasi tidak valid.', @@ -78,6 +79,10 @@ public function store(Request $request) 'tanggal.required' => 'Tanggal wajib diisi.', 'tanggal.date' => 'Format tanggal tidak valid.', 'tanggal.before_or_equal' => 'Tanggal tidak boleh melebihi hari ini.', + + 'keterangan.required_if' => 'Keterangan wajib diisi.', + 'keterangan.string' => 'Keterangan harus berupa teks.', + 'keterangan.max' => 'Keterangan maksimal 255 karakter.', ]); DB::transaction(function () use ($request) { @@ -135,7 +140,8 @@ public function store(Request $request) 'jumlah' => $request->jumlah, 'tanggal' => $request->tanggal, 'keterangan' => 'Pindahan dari ' . $kandangAsal->nama_kandang, - ]);} + ]); + } // MUTASI BIASA else { @@ -192,7 +198,13 @@ public function store(Request $request) public function update(Request $request, $id) { $mutasi = MutasiAyam::findOrFail($id); - + // CEGAH EDIT DATA PINDAH + if ( + $mutasi->jenis_mutasi === 'pindah' || + str_contains($mutasi->keterangan, 'Pindahan dari') + ) { + abort(403, 'Data hasil pindahan tidak boleh diedit.'); + } /** @var \App\Models\User $user */ $user = Auth::user(); @@ -203,8 +215,10 @@ public function update(Request $request, $id) $validator = Validator::make($request->all(), [ 'kandang_id' => 'required|exists:kandang,id', 'jenis_mutasi' => 'required|in:masuk,mati,afkir', - 'jumlah' => 'required|integer|min:1', + 'jumlah' => 'required|integer|min:1|max:9999', 'tanggal' => 'required|date|before_or_equal:today', + 'keterangan' => 'required_if:jenis_mutasi,masuk,mati,afkir|string|max:255', + ], [ 'kandang_id.required' => 'Nama kandang wajib dipilih.', 'kandang_id.exists' => 'Kandang tidak ditemukan.', @@ -216,6 +230,9 @@ public function update(Request $request, $id) 'tanggal.required' => 'Tanggal wajib diisi.', 'tanggal.date' => 'Format tanggal tidak valid.', 'tanggal.before_or_equal' => 'Tanggal tidak boleh melebihi hari ini.', + 'keterangan.required_if' => 'Keterangan wajib diisi.', + 'keterangan.string' => 'Keterangan harus berupa teks.', + 'keterangan.max' => 'Keterangan maksimal 255 karakter.', ]); if ($validator->fails()) { @@ -259,7 +276,7 @@ public function update(Request $request, $id) } } - // UPDATE DATA + // UPDATE DATA $mutasi->update([ 'kandang_id' => $request->kandang_id, 'jenis_mutasi' => $request->jenis_mutasi, @@ -273,15 +290,23 @@ public function update(Request $request, $id) } public function destroy($id) { - /** @var \App\Models\User $user */ - $user = Auth::user(); + /** @var \App\Models\User $user */ + $user = Auth::user(); - if ($user->isKaryawan()) { - abort(403, 'Karyawan tidak boleh menghapus data.'); + if ($user->isKaryawan()) { + abort(403, 'Karyawan tidak boleh menghapus data.'); } - MutasiAyam::findOrFail($id)->delete(); + $mutasi = MutasiAyam::findOrFail($id); + if ( + $mutasi->jenis_mutasi === 'pindah' || + str_contains($mutasi->keterangan, 'Pindahan dari') + ) { + abort(403, 'Data hasil pindahan tidak boleh dihapus.'); + } + + $mutasi->delete(); return redirect()->route('ayam') ->with('success', 'Data berhasil dihapus.'); } diff --git a/resources/views/inventori-ayam.blade.php b/resources/views/inventori-ayam.blade.php index 54c64e9..0e07025 100644 --- a/resources/views/inventori-ayam.blade.php +++ b/resources/views/inventori-ayam.blade.php @@ -11,26 +11,26 @@

Populasi Ayam

- @foreach ($kandang as $k) -
-
-
+ @foreach ($kandang as $k) +
+
+
-
- {{ $k->nama_kandang }} -
+
+ {{ $k->nama_kandang }} +
-
- {{ number_format($k->jumlah_ayam_terakhir, 0, ',', '.') }} -
+
+ {{ number_format($k->jumlah_ayam_terakhir, 0, ',', '.') }} +
+
+
+
+ @endforeach
-
-
- @endforeach -
@@ -79,12 +79,12 @@ class="form-control form-control-sm" placeholder="Cari kandang/keterangan">
@@ -140,9 +140,9 @@ class="form-control form-control-sm"> {{ number_format($item->jumlah, 0, ',', '.') }} - - {{ ucfirst($item->jenis_mutasi ?? '-') }} - + + {{ ucfirst($item->jenis_mutasi ?? '-') }} + {{ $item->keterangan ?? '-' }} @@ -151,24 +151,43 @@ class="form-control form-control-sm"> - + {{-- ✅ TOMBOL HAPUS --}} @auth @if (auth()->user()->isAdmin()) - @endif @endauth + @@ -232,12 +251,19 @@ class="form-control form-control-sm"> + @error('jenis_mutasi') + {{ $message }} + @enderror @@ -247,15 +273,19 @@ class="form-control mt-2 @error('jenis_mutasi') is-invalid @enderror">
- @foreach ($kandang as $k) - @endforeach + @error('kandang_id') + {{ $message }} + @enderror
@@ -266,25 +296,37 @@ class="form-control mt-2 @error('jenis_mutasi') is-invalid @enderror">
- @foreach ($kandang as $k) - @endforeach + @error('kandang_asal_id') + {{ $message }} + @enderror
- @foreach ($kandang as $k) - + @endforeach + @error('kandang_tujuan_id') + {{ $message }} + @enderror
@@ -295,21 +337,31 @@ class="form-control mt-2 @error('jenis_mutasi') is-invalid @enderror">
- {{-- --}} + @error('jumlah') + {{ $message }} + @enderror
- + + @error('tanggal') + {{ $message }} + @enderror
- + + @error('keterangan') + {{ $message }} + @enderror
@@ -361,9 +413,7 @@ class="form-control @error('jumlah') is-invalid @enderror"
- {{-- --}} + @@ -377,9 +427,11 @@ class="form-control @error('jumlah') is-invalid @enderror"> --}} @error('jenis_mutasi') @@ -452,11 +504,11 @@ class="form-control @error('jumlah') is-invalid @enderror"> --}} @section('scripts')