akses pasar

This commit is contained in:
2026-07-06 15:00:33 +07:00
9 changed files with 302 additions and 64 deletions
@@ -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(),
];
});
@@ -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();
@@ -43,40 +43,40 @@ class SosialEkonomiController extends Controller
}
public function index(Request $request, Petani $petani)
{
$sosialEkonomi = SosialEkonomi::with([
'pendapatanKomoditas',
{
$sosialEkonomi = SosialEkonomi::with([
'pendapatanKomoditas',
'pendapatanLuarPertanian',
])
->where('petani_id', $petani->id)
->first();
$pendapatanKomoditas = $sosialEkonomi?->pendapatanKomoditas ?? collect();
$pendapatanKomoditasUtama = $pendapatanKomoditas->where('kategori', 'utama')->values();
$pendapatanKomoditasLainnya = $pendapatanKomoditas->where('kategori', 'lainnya')->values();
$pendapatanLuarPertanian = $sosialEkonomi?->pendapatanLuarPertanian?->values() ?? collect();
$komoditasPetani = $this->komoditasPetani($petani);
if ($request->expectsJson()) {
return response()->json($sosialEkonomi);
}
return view('produktivitas.petani.sosial-ekonomi.index', compact(
'petani',
'sosialEkonomi',
'komoditasPetani',
'pendapatanKomoditasUtama',
'pendapatanKomoditasLainnya',
'pendapatanLuarPertanian',
])
->where('petani_id', $petani->id)
->first();
$komoditasPetani = collect();
$pendapatanKomoditasUtama = $sosialEkonomi?->pendapatanKomoditas
->where('kategori', 'utama') ?? collect();
$pendapatanKomoditasLainnya = $sosialEkonomi?->pendapatanKomoditas
->where('kategori', 'lainnya') ?? collect();
$pendapatanLuarPertanian = $sosialEkonomi?->pendapatanLuarPertanian ?? collect();
if ($request->expectsJson()) {
return response()->json($sosialEkonomi);
));
}
return view('produktivitas.petani.sosial-ekonomi.index', compact(
'petani',
'sosialEkonomi',
'komoditasPetani',
'pendapatanKomoditasUtama',
'pendapatanKomoditasLainnya',
'pendapatanLuarPertanian',
));
}
public function store(Request $request): JsonResponse|RedirectResponse
public function store(Request $request, ?Petani $petani = null): JsonResponse|RedirectResponse
{
if ($petani) {
$request->merge(['petani_id' => $petani->id]);
}
$validated = $this->validateData($request);
$sosialEkonomi = DB::transaction(function () use ($validated) {
@@ -97,7 +97,7 @@ class SosialEkonomiController extends Controller
if (!$request->expectsJson()) {
return redirect()
->route('petani.sosial-ekonomi.edit', $sosialEkonomi->petani_id)
->route('petani.sosial-ekonomi.index', $sosialEkonomi->petani_id)
->with('success', 'Data sosial ekonomi berhasil disimpan.');
}
@@ -122,9 +122,9 @@ class SosialEkonomiController extends Controller
]);
}
public function update(Request $request, string $id): JsonResponse|RedirectResponse
public function update(Request $request, Petani|string $petani, ?string $sosialEkonomiId = null): JsonResponse|RedirectResponse
{
$sosialEkonomi = SosialEkonomi::findOrFail($id);
$sosialEkonomi = $this->findSosialEkonomi($petani, $sosialEkonomiId);
$validated = $this->validateData($request, $sosialEkonomi->id);
$sosialEkonomi = DB::transaction(function () use ($request, $validated, $sosialEkonomi) {
@@ -149,7 +149,7 @@ class SosialEkonomiController extends Controller
if (!$request->expectsJson()) {
return redirect()
->route('petani.sosial-ekonomi.edit', $sosialEkonomi->petani_id)
->route('petani.sosial-ekonomi.index', $sosialEkonomi->petani_id)
->with('success', 'Data sosial ekonomi berhasil diperbarui.');
}
@@ -306,4 +306,13 @@ class SosialEkonomiController extends Controller
->orderBy('nama')
->get();
}
private function findSosialEkonomi(Petani|string $petani, ?string $sosialEkonomiId = null): SosialEkonomi
{
if ($petani instanceof Petani) {
return SosialEkonomi::where('petani_id', $petani->id)->findOrFail($sosialEkonomiId);
}
return SosialEkonomi::findOrFail($petani);
}
}
+3
View File
@@ -42,6 +42,9 @@ class Lahan extends Model
'penyakit_tanaman',
'keparahan_serangan',
'umur_tanaman',
'umur_lahan',
'created_by',
'updated_by',
'deleted_by',
@@ -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();
@@ -107,12 +107,12 @@
<div class="row">
<div class="col-md-3 mb-3 form-control-validation">
<label class="form-label">Kondisi Umum Tanaman</label>
<label class="form-label">Kondisi Umum Tanaman {{ $lahanSelected->kondisi_tanaman }}</label>
<select id="kondisi_tanaman" name="kondisi_tanaman" class="form-select @error('kondisi_tanaman') is-invalid @enderror">
<option value="">Pilih Kondisi Tanaman</option>
<option value="{{ \App\Enums\KondisiTanaman::BAIK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BAIK ? 'selected' : '' }}>Baik</option>
<option value="{{ \App\Enums\KondisiTanaman::SEDANG }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::SEDANG ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KondisiTanaman::BURUK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BURUK ? 'selected' : '' }}>Buruk</option>
<option value="{{ \App\Enums\KondisiTanaman::BAIK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BAIK->value ? 'selected' : '' }}>Baik</option>
<option value="{{ \App\Enums\KondisiTanaman::SEDANG }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KondisiTanaman::BURUK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BURUK->value ? 'selected' : '' }}>Buruk</option>
</select>
@error('kondisi_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
@@ -120,9 +120,9 @@
<label class="form-label">Serangan Hama</label>
<select id="serangan_hama" name="serangan_hama" class="form-select @error('serangan_hama') is-invalid @enderror">
<option value="">Pilih Serangan Hama</option>
<option value="{{ \App\Enums\SeranganHama::ULAT }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::ULAT ? 'selected' : '' }}>Ulat</option>
<option value="{{ \App\Enums\SeranganHama::BELALANG }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::BELALANG ? 'selected' : '' }}>Belalang</option>
<option value="{{ \App\Enums\SeranganHama::KUTU }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::KUTU ? 'selected' : '' }}>Kutu</option>
<option value="{{ \App\Enums\SeranganHama::ULAT }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::ULAT->value ? 'selected' : '' }}>Ulat</option>
<option value="{{ \App\Enums\SeranganHama::BELALANG }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::BELALANG->value ? 'selected' : '' }}>Belalang</option>
<option value="{{ \App\Enums\SeranganHama::KUTU }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::KUTU->value ? 'selected' : '' }}>Kutu</option>
</select>
@error('serangan_hama')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
@@ -130,19 +130,19 @@
<label class="form-label">Serangan Penyakit</label>
<select id="penyakit_tanaman" name="penyakit_tanaman" class="form-select @error('penyakit_tanaman') is-invalid @enderror">
<option value="">Pilih Penyakit</option>
<option value="{{ \App\Enums\PenyakitTanaman::BUSUK_BUAH }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::BUSUK_BUAH ? 'selected' : '' }}>Busuk Buah</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_MENGUNING }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_MENGUNING ? 'selected' : '' }}>Daun Menguning</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_BERCAK }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_BERCAK ? 'selected' : '' }}>Daun Bercak</option>
<option value="{{ \App\Enums\PenyakitTanaman::TANAMAN_LAYU }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::TANAMAN_LAYU ? 'selected' : '' }}>Tanaman Layu</option>
<option value="{{ \App\Enums\PenyakitTanaman::BUSUK_BUAH }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::BUSUK_BUAH->value ? 'selected' : '' }}>Busuk Buah</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_MENGUNING }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_MENGUNING->value ? 'selected' : '' }}>Daun Menguning</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_BERCAK }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_BERCAK->value ? 'selected' : '' }}>Daun Bercak</option>
<option value="{{ \App\Enums\PenyakitTanaman::TANAMAN_LAYU }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::TANAMAN_LAYU->value ? 'selected' : '' }}>Tanaman Layu</option>
</select>
</div>
<div class="col-md-3 mb-3 form-control-validation">
<label class="form-label">Keparahan Serangan Hama/Penyakit</label>
<select id="keparahan_serangan" name="keparahan_serangan" class="form-select @error('keparahan_serangan') is-invalid @enderror">
<option value="">Pilih Keparahan Serangan</option>
<option value="{{ \App\Enums\KeparahanSerangan::RINGAN }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::RINGAN ? 'selected' : '' }}>Ringan</option>
<option value="{{ \App\Enums\KeparahanSerangan::SEDANG }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::SEDANG ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KeparahanSerangan::BERAT }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::BERAT ? 'selected' : '' }}>Berat</option>
<option value="{{ \App\Enums\KeparahanSerangan::RINGAN }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::RINGAN->value ? 'selected' : '' }}>Ringan</option>
<option value="{{ \App\Enums\KeparahanSerangan::SEDANG }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KeparahanSerangan::BERAT }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::BERAT->value ? 'selected' : '' }}>Berat</option>
</select>
@error('keparahan_serangan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
@@ -303,8 +303,7 @@
<td>
<div class="d-flex align-items-center">
<button data-id="{{ $item->id }}" class="btn btn-icon btn-text-secondary rounded-pill edit-tanaman"><i class="ti tabler-edit ti-md"></i></button>
<a href="javascript:;" class="btn btn-icon btn-text-secondary rounded-pill delete-record" data-id="{{ $item->id }}" data-nama="{{ $item->nama }}"><i class="ti tabler-trash ti-md"></i></a>
<a href="{{ route('petani.show', $item->id) }}" class="btn btn-icon btn-text-secondary rounded-pill view-record"><i class="ti tabler-eye ti-md"></i></a>
<a href="javascript:;" class="btn btn-icon btn-text-secondary rounded-pill delete-tanaman" data-id="{{ $item->id }}" data-nama="{{ $item->nama }}"><i class="ti tabler-trash ti-md"></i></a>
</div>
</td>
</tr>
@@ -322,6 +321,7 @@
</div>
</div>
@include('produktivitas.petani.lahan.tanaman.edit')
@include('produktivitas.petani.lahan.tanaman.delete')
@endsection
@@ -0,0 +1,154 @@
<div class="modal fade" id="deleteTanamanModal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="tanamanModalLabel">Ubah Data Tanaman</h5>
<button
type="button"
class="btn-close"
data-bs-dismiss="modal"
aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="deleteTanamanForm" method="POST" action="{{ route('petani.lahan-tanaman.tanaman.destroy', ['petani' => $petani->id, 'lahan_tanaman' => $lahanSelected->id, 'tanaman' => ':id']) }}">
@csrf
@method('DELETE')
<input type="hidden" name="id" id="deleteTanamanFormId">
<div class="row mb-3">
<div class="col-md-6">
<label for="komoditas" class="form-label">Komoditas</label>
<input type="text" class="form-control" id="delete-komoditas" name="komoditas" disabled>
</div>
<div class="col-md-6">
<label for="jenis_komoditas" class="form-label">Jenis Komoditas</label>
<input type="text" class="form-control" id="delete-jenis_komoditas" name="jenis_komoditas" disabled>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="varietas" class="form-label">Varietas</label>
<input type="text" class="form-control" id="delete-varietas" name="varietas" disabled>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="latitude" class="form-label">Latitude</label>
<input type="number" class="form-control" id="delete-latitude" name="latitude">
</div>
<div class="col-md-6">
<label for="longitude" class="form-label">Longitude</label>
<input type="number" class="form-control" id="delete-longitude" name="longitude">
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="kondisi" class="form-label">Kondisi Tanaman</label>
<select class="form-select" id="kondisi" name="kondisi_tanaman" required>
<option value="">Pilih Kondisi Tanaman</option>
<option value="{{ \App\Enums\KondisiTanaman::BAIK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BAIK->value ? 'selected' : '' }}>Baik</option>
<option value="{{ \App\Enums\KondisiTanaman::SEDANG }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KondisiTanaman::BURUK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BURUK->value ? 'selected' : '' }}>Buruk</option>
</select>
</div>
<div class="col-md-6 form-control-validation">
<label class="form-label">Serangan Hama</label>
<select id="serangan_hama" name="serangan_hama" class="form-select @error('serangan_hama') is-invalid @enderror">
<option value="">Pilih Serangan Hama</option>
<option value="{{ \App\Enums\SeranganHama::ULAT }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::ULAT->value ? 'selected' : '' }}>Ulat</option>
<option value="{{ \App\Enums\SeranganHama::BELALANG }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::BELALANG->value ? 'selected' : '' }}>Belalang</option>
<option value="{{ \App\Enums\SeranganHama::KUTU }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::KUTU->value ? 'selected' : '' }}>Kutu</option>
</select>
@error('serangan_hama')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<div class="row mb-3">
<div class="col-md-6 form-control-validation">
<label class="form-label">Penyakit Tanaman</label>
<select id="penyakit_tanaman" name="penyakit_tanaman" class="form-select @error('penyakit_tanaman') is-invalid @enderror">
<option value="">Pilih Penyakit</option>
<option value="{{ \App\Enums\PenyakitTanaman::BUSUK_BUAH }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::BUSUK_BUAH->value ? 'selected' : '' }}>Busuk Buah</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_MENGUNING }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_MENGUNING->value ? 'selected' : '' }}>Daun Menguning</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_BERCAK }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_BERCAK->value ? 'selected' : '' }}>Daun Bercak</option>
<option value="{{ \App\Enums\PenyakitTanaman::TANAMAN_LAYU }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::TANAMAN_LAYU->value ? 'selected' : '' }}>Tanaman Layu</option>
</select>
@error('penyakit_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 form-control-validation">
<label class="form-label">Keparahan Serangan</label>
<select id="keparahan_serangan" name="keparahan_serangan" class="form-select @error('keparahan_serangan') is-invalid @enderror">
<option value="">Pilih Keparahan Serangan</option>
<option value="{{ \App\Enums\KeparahanSerangan::RINGAN }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::RINGAN->value ? 'selected' : '' }}>Ringan</option>
<option value="{{ \App\Enums\KeparahanSerangan::SEDANG }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KeparahanSerangan::BERAT }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::BERAT->value ? 'selected' : '' }}>Berat</option>
</select>
@error('keparahan_serangan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<div class="mb-3">
<button type="submit" class="btn btn-danger">Hapus Tanaman</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@push('scripts')
<script>
$(document).ready(function() {
let currentRow = null;
$('.delete-tanaman').on('click', function(e) {
e.preventDefault();
currentRow = $(this).closest('tr');
var url = "{{ route('petani.lahan-tanaman.tanaman.show', ['petani' => $petani->id, 'lahan_tanaman' => $lahanSelected->id, 'tanaman' => ':id']) }}".replace(':id', $(this).data('id'));
$.ajax({
url: url,
type: 'GET',
success: function(response) {
console.log(response);
$('#delete-komoditas').val(response.data.komoditas.nama);
$('#delete-jenis_komoditas').val(response.data.jenis_komoditas.nama);
$('#delete-varietas').val(response.data.varietas.nama);
$('#delete-latitude').val(response.data.latitude);
$('#delete-longitude').val(response.data.longitude);
$('#delete-kondisi').val(response.data.kondisi_tanaman);
$('#delete-serangan_hama').val(response.data.serangan_hama);
$('#delete-penyakit_tanaman').val(response.data.penyakit_tanaman);
$('#delete-keparahan_serangan').val(response.data.keparahan_serangan);
$('#deleteTanamanFormId').val(response.data.id);
$('#deleteTanamanModal').modal('show');
},
error: function(xhr) {
console.log(xhr.responseText);
}
});
});
$('#deleteTanamanForm').on('submit', function(e) {
e.preventDefault();
var form = $(this);
var url = form.attr('action').replace(':id', $('#deleteTanamanFormId').val());
$.ajax({
url: url,
type: 'POST',
data: form.serialize(),
success: function(response) {
console.log(response);
$('#deleteTanamanModal').modal('hide');
if (currentRow) {
currentRow.remove();
}
},
error: function(xhr) {
console.log(xhr.responseText);
}
});
});
});
</script>
@endpush
@@ -44,12 +44,47 @@
<div class="col-md-6">
<label for="kondisi" class="form-label">Kondisi Tanaman</label>
<select class="form-select" id="kondisi" name="kondisi_tanaman" required>
@foreach (\App\Enums\KondisiTanaman::cases() as $kondisi)
<option value="{{ $kondisi->value }}">{{ $kondisi->name }}</option>
@endforeach
<option value="">Pilih Kondisi Tanaman</option>
<option value="{{ \App\Enums\KondisiTanaman::BAIK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BAIK->value ? 'selected' : '' }}>Baik</option>
<option value="{{ \App\Enums\KondisiTanaman::SEDANG }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KondisiTanaman::BURUK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BURUK->value ? 'selected' : '' }}>Buruk</option>
</select>
</div>
<div class="col-md-6 form-control-validation">
<label class="form-label">Serangan Hama</label>
<select id="serangan_hama" name="serangan_hama" class="form-select @error('serangan_hama') is-invalid @enderror">
<option value="">Pilih Serangan Hama</option>
<option value="{{ \App\Enums\SeranganHama::ULAT }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::ULAT->value ? 'selected' : '' }}>Ulat</option>
<option value="{{ \App\Enums\SeranganHama::BELALANG }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::BELALANG->value ? 'selected' : '' }}>Belalang</option>
<option value="{{ \App\Enums\SeranganHama::KUTU }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::KUTU->value ? 'selected' : '' }}>Kutu</option>
</select>
@error('serangan_hama')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<div class="row mb-3">
<div class="col-md-6 form-control-validation">
<label class="form-label">Penyakit Tanaman</label>
<select id="penyakit_tanaman" name="penyakit_tanaman" class="form-select @error('penyakit_tanaman') is-invalid @enderror">
<option value="">Pilih Penyakit</option>
<option value="{{ \App\Enums\PenyakitTanaman::BUSUK_BUAH }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::BUSUK_BUAH->value ? 'selected' : '' }}>Busuk Buah</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_MENGUNING }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_MENGUNING->value ? 'selected' : '' }}>Daun Menguning</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_BERCAK }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_BERCAK->value ? 'selected' : '' }}>Daun Bercak</option>
<option value="{{ \App\Enums\PenyakitTanaman::TANAMAN_LAYU }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::TANAMAN_LAYU->value ? 'selected' : '' }}>Tanaman Layu</option>
</select>
@error('penyakit_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 form-control-validation">
<label class="form-label">Keparahan Serangan</label>
<select id="keparahan_serangan" name="keparahan_serangan" class="form-select @error('keparahan_serangan') is-invalid @enderror">
<option value="">Pilih Keparahan Serangan</option>
<option value="{{ \App\Enums\KeparahanSerangan::RINGAN }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::RINGAN->value ? 'selected' : '' }}>Ringan</option>
<option value="{{ \App\Enums\KeparahanSerangan::SEDANG }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KeparahanSerangan::BERAT }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::BERAT->value ? 'selected' : '' }}>Berat</option>
</select>
@error('keparahan_serangan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<div class="mb-3">
<button type="submit" class="btn btn-primary">Simpan Perubahan</button>
</div>
@@ -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');
+2 -2
View File
@@ -193,6 +193,6 @@ Route::middleware('auth')
Route::resource('petani.lahan-tanaman', App\Http\Controllers\Web\Produktivitas\PetaniLahanController::class);
Route::resource('petani.lahan-tanaman.tanaman', App\Http\Controllers\Web\Produktivitas\PetaniLahanTanamanController::class)->only(['show', 'update', 'destroy']);
Route::resource('petani.praktik-budidaya', App\Http\Controllers\Web\Produktivitas\PraktikBudidayaController::class);
Route::resource('petani.sosial-ekonomi', App\Http\Controllers\Web\Produktivitas\SosialEkonomiController::class);
Route::resource('petani.sosial-ekonomi', App\Http\Controllers\Web\Produktivitas\SosialEkonomiController::class)->only(['index', 'store', 'update']);
Route::resource('petani.akses-pasar', App\Http\Controllers\Web\Produktivitas\AksesPasarController::class);
});
});