From d0e41dc1d2ddea7813fdb7b55406069a5be7102d Mon Sep 17 00:00:00 2001 From: Irwan Cahyono Date: Mon, 6 Jul 2026 11:46:02 +0700 Subject: [PATCH] lahan tanaman edit delete --- .../Produktivitas/PetaniLahanController.php | 29 +++- .../PetaniLahanTanamanController.php | 21 ++- app/Models/Pertanian/Lahan.php | 3 + .../2026_06_28_095941_update_lahan_table.php | 2 +- .../produktivitas/petani/lahan/edit.blade.php | 32 ++-- .../petani/lahan/tanaman/delete.blade.php | 154 ++++++++++++++++++ .../petani/lahan/tanaman/edit.blade.php | 44 ++++- 7 files changed, 257 insertions(+), 28 deletions(-) create mode 100644 resources/views/produktivitas/petani/lahan/tanaman/delete.blade.php diff --git a/app/Http/Controllers/Web/Produktivitas/PetaniLahanController.php b/app/Http/Controllers/Web/Produktivitas/PetaniLahanController.php index b4f0104..6a2000f 100644 --- a/app/Http/Controllers/Web/Produktivitas/PetaniLahanController.php +++ b/app/Http/Controllers/Web/Produktivitas/PetaniLahanController.php @@ -100,18 +100,20 @@ class PetaniLahanController extends Controller $lahanCount = Lahan::where('petani_id', $petaniId) ->count(); + $lahanUid = strtoupper(Str::random(10)); $lahan = Lahan::create([...$validated, 'nama' => 'Lahan ' . $komoditas->nama . ' #' . ($lahanCount + 1), - 'uid' => 'LHN-' . $petani->uid . '-' . strtoupper(Str::random(10)), + 'uid' => 'LHN-' . $petani->uid . '-' . $lahanUid, 'petani_id' => $petaniId, 'created_by' => auth()->id(), 'updated_by' => auth()->id()] ); if ($lahan) { - $data = collect(range(1, $lahan->jumlah_tanaman))->map(function ($i) use ($lahan, $komoditas) { + $data = collect(range(1, $lahan->jumlah_tanaman))->map(function ($i) use ($lahan, $komoditas, $lahanUid) { return [ 'lahan_id' => $lahan->id, + 'uid' => 'TNM-' . $lahanUid . '-' . strtoupper(Str::random(10)), 'komoditas_id' => $lahan->komoditas_id, 'jenis_komoditas_id' => $lahan->jenis_komoditas_id, 'varietas_id' => $lahan->varietas_id, @@ -121,7 +123,11 @@ class PetaniLahanController extends Controller 'kondisi_tanaman' => $lahan->kondisi_tanaman, 'serangan_hama' => $lahan->serangan_hama, 'penyakit_tanaman' => $lahan->penyakit_tanaman, - 'keparahan_serangan' => $lahan->keparahan_serangan + 'keparahan_serangan' => $lahan->keparahan_serangan, + 'created_by' => auth()->id(), + 'updated_by' => auth()->id(), + 'created_at' => now(), + 'updated_at' => now(), ]; }); @@ -209,20 +215,33 @@ class PetaniLahanController extends Controller $lahan->update([...$validated, 'nama' => 'Lahan ' . $komoditas->nama . ' #' . ($lahanCount + 1), - 'uid' => 'LHN-' . $petani->uid . '-' . strtoupper(Str::random(10)), 'petani_id' => $petaniId, 'updated_by' => auth()->id()] ); + $lahanUid = $lahan->uid; + $lahanUidParts = explode('LHN-', $lahanUid); + $lahanUid = end($lahanUidParts); + if ($lahan) { - $data = collect(range($lahanCount, $lahan->jumlah_tanaman))->map(function ($i) use ($lahan, $komoditas) { + $data = collect(range($lahanCount, $lahan->jumlah_tanaman))->map(function ($i) use ($lahan, $komoditas, $lahanUid) { return [ 'lahan_id' => $lahan->id, 'komoditas_id' => $lahan->komoditas_id, 'jenis_komoditas_id' => $lahan->jenis_komoditas_id, 'varietas_id' => $lahan->varietas_id, 'petani_id' => $lahan->petani_id, + 'uid' => 'TMN-' . $lahanUid . '-' . strtoupper(Str::random(10)), 'nama' => 'Tanaman ' . $komoditas->nama . ' #' . $i, + 'umur_tanaman' => $lahan->umur_tanaman, + 'kondisi_tanaman' => $lahan->kondisi_tanaman, + 'serangan_hama' => $lahan->serangan_hama, + 'penyakit_tanaman' => $lahan->penyakit_tanaman, + 'keparahan_serangan' => $lahan->keparahan_serangan, + 'created_by' => auth()->id(), + 'updated_by' => auth()->id(), + 'created_at' => now(), + 'updated_at' => now(), ]; }); diff --git a/app/Http/Controllers/Web/Produktivitas/PetaniLahanTanamanController.php b/app/Http/Controllers/Web/Produktivitas/PetaniLahanTanamanController.php index 54f2191..62896a4 100644 --- a/app/Http/Controllers/Web/Produktivitas/PetaniLahanTanamanController.php +++ b/app/Http/Controllers/Web/Produktivitas/PetaniLahanTanamanController.php @@ -16,6 +16,9 @@ use App\Models\Pertanian\Lahan; use App\Models\Pertanian\Tanaman; use App\Enums\KondisiTanaman; +use App\Enums\SeranganHama; +use App\Enums\PenyakitTanaman; +use App\Enums\KeparahanSerangan; class PetaniLahanTanamanController extends Controller { @@ -68,12 +71,24 @@ class PetaniLahanTanamanController extends Controller $lahan = Lahan::where('petani_id', $petaniId)->findOrFail($lahanId); $lahanTanaman = Tanaman::where('lahan_id', $lahanId)->findOrFail($id); - $validated = $request->validate([ + $validator = Validator::make($request->all(), [ 'latitude' => ['nullable', 'numeric', 'between:-90,90', 'required_with:longitude'], 'longitude' => ['nullable', 'numeric', 'between:-180,180', 'required_with:latitude'], 'kondisi_tanaman' => ['nullable', 'string', new Enum(KondisiTanaman::class)], + 'serangan_hama' => ['nullable', 'string', new Enum(SeranganHama::class)], + 'penyakit_tanaman' => ['nullable', 'string', new Enum(PenyakitTanaman::class)], + 'keparahan_serangan' => ['nullable', 'string', new Enum(KeparahanSerangan::class)], ]); - + + if ($validator->fails()) { + return response()->json([ + 'status' => 'error', + 'message' => 'Validasi gagal', + 'errors' => $validator->errors() + ], 422); + } + + $validated = $validator->validated(); $lahanTanaman->update([...$validated, 'updated_by' => auth()->id()]); return response()->json([ @@ -94,7 +109,7 @@ class PetaniLahanTanamanController extends Controller $petani = Petani::findOrFail($petaniId); $lahan = Lahan::where('petani_id', $petaniId)->findOrFail($lahanId); - $lahanTanaman = LahanTanaman::where('lahan_id', $lahanId)->findOrFail($id); + $lahanTanaman = Tanaman::where('lahan_id', $lahanId)->findOrFail($id); $lahanTanaman->updated_by = auth()->id(); $lahanTanaman->save(); diff --git a/app/Models/Pertanian/Lahan.php b/app/Models/Pertanian/Lahan.php index 131f457..c4ce730 100644 --- a/app/Models/Pertanian/Lahan.php +++ b/app/Models/Pertanian/Lahan.php @@ -42,6 +42,9 @@ class Lahan extends Model 'penyakit_tanaman', 'keparahan_serangan', + 'umur_tanaman', + 'umur_lahan', + 'created_by', 'updated_by', 'deleted_by', diff --git a/database/migrations/2026_06_28_095941_update_lahan_table.php b/database/migrations/2026_06_28_095941_update_lahan_table.php index 10653e0..b0317d5 100644 --- a/database/migrations/2026_06_28_095941_update_lahan_table.php +++ b/database/migrations/2026_06_28_095941_update_lahan_table.php @@ -19,7 +19,7 @@ return new class extends Migration $table->foreignId('varietas_id')->nullable()->constrained('master_varietas')->onDelete('set null'); $table->float('umur_tanaman', 8)->nullable(); - $table->float('umur_kebun', 8)->nullable(); + $table->float('umur_lahan', 8)->nullable(); $table->integer('jumlah_tanaman')->nullable(); diff --git a/resources/views/produktivitas/petani/lahan/edit.blade.php b/resources/views/produktivitas/petani/lahan/edit.blade.php index 541b423..b7a81c5 100644 --- a/resources/views/produktivitas/petani/lahan/edit.blade.php +++ b/resources/views/produktivitas/petani/lahan/edit.blade.php @@ -107,12 +107,12 @@
- + @error('kondisi_tanaman')
{{ $message }}
@enderror
@@ -120,9 +120,9 @@ @error('serangan_hama')
{{ $message }}
@enderror
@@ -130,19 +130,19 @@
@error('keparahan_serangan')
{{ $message }}
@enderror
@@ -303,8 +303,7 @@
- - +
@@ -322,6 +321,7 @@ @include('produktivitas.petani.lahan.tanaman.edit') +@include('produktivitas.petani.lahan.tanaman.delete') @endsection diff --git a/resources/views/produktivitas/petani/lahan/tanaman/delete.blade.php b/resources/views/produktivitas/petani/lahan/tanaman/delete.blade.php new file mode 100644 index 0000000..a7d16e1 --- /dev/null +++ b/resources/views/produktivitas/petani/lahan/tanaman/delete.blade.php @@ -0,0 +1,154 @@ + + + +@push('scripts') + +@endpush \ No newline at end of file diff --git a/resources/views/produktivitas/petani/lahan/tanaman/edit.blade.php b/resources/views/produktivitas/petani/lahan/tanaman/edit.blade.php index ede3343..ce84098 100644 --- a/resources/views/produktivitas/petani/lahan/tanaman/edit.blade.php +++ b/resources/views/produktivitas/petani/lahan/tanaman/edit.blade.php @@ -44,12 +44,47 @@
+
+ + + @error('serangan_hama')
{{ $message }}
@enderror +
+
+
+ + + @error('penyakit_tanaman')
{{ $message }}
@enderror +
+
+ + + @error('keparahan_serangan')
{{ $message }}
@enderror +
+
+
@@ -81,6 +116,9 @@ $('#latitude').val(response.data.latitude); $('#longitude').val(response.data.longitude); $('#kondisi').val(response.data.kondisi_tanaman); + $('#serangan_hama').val(response.data.serangan_hama); + $('#penyakit_tanaman').val(response.data.penyakit_tanaman); + $('#keparahan_serangan').val(response.data.keparahan_serangan); $('#editTanamanFormId').val(response.data.id); $('#tanamanModal').modal('show');