diff --git a/app/Http/Controllers/Web/Produktivitas/PraktikBudidayaController.php b/app/Http/Controllers/Web/Produktivitas/PraktikBudidayaController.php new file mode 100644 index 0000000..cee7c7b --- /dev/null +++ b/app/Http/Controllers/Web/Produktivitas/PraktikBudidayaController.php @@ -0,0 +1,24 @@ +where('kategori', 'utama')->values(); $pendapatanKomoditasLainnya = $pendapatanKomoditas->where('kategori', 'lainnya')->values(); $pendapatanLuarPertanian = $sosialEkonomi?->pendapatanLuarPertanian?->values() ?? collect(); + $komoditasPetani = $this->komoditasPetani($petani); return view('produktivitas.petani.sosial-ekonomi.index', compact( 'petani', 'sosialEkonomi', 'pendapatanKomoditasUtama', 'pendapatanKomoditasLainnya', - 'pendapatanLuarPertanian' + 'pendapatanLuarPertanian', + 'komoditasPetani' )); } @@ -56,7 +61,7 @@ class SosialEkonomiController extends Controller return response()->json($sosialEkonomi); } - public function store(Request $request): JsonResponse + public function store(Request $request): JsonResponse|RedirectResponse { $validated = $this->validateData($request); @@ -103,7 +108,7 @@ class SosialEkonomiController extends Controller ]); } - public function update(Request $request, string $id): JsonResponse + public function update(Request $request, string $id): JsonResponse|RedirectResponse { $sosialEkonomi = SosialEkonomi::findOrFail($id); $validated = $this->validateData($request, $sosialEkonomi->id); @@ -201,12 +206,19 @@ class SosialEkonomiController extends Controller private function sosialEkonomiPayload(array $validated): array { - return collect($validated) + $payload = collect($validated) ->except(['pendapatan_komoditas', 'pendapatan_luar_pertanian']) ->merge([ 'uid' => $validated['uid'] ?? 'SEK-' . Str::uuid(), ]) ->all(); + + if (($payload['pihak_membantu_konflik'] ?? null) === 'Tidak ada-selesaikan sendiri') { + $payload['pihak_membantu_konflik_nama'] = null; + $payload['tahun_bantuan_konflik'] = null; + } + + return $payload; } private function syncPendapatanKomoditas(SosialEkonomi $sosialEkonomi, array $items): void @@ -261,4 +273,23 @@ class SosialEkonomiController extends Controller return filled($item['jenis_pekerjaan'] ?? null) || filled($item['estimasi_per_bulan'] ?? null); } + + private function komoditasPetani(Petani $petani) + { + $komoditasIds = Lahan::query() + ->whereNotNull('komoditas_id') + ->where(function ($query) use ($petani) { + $query->where('petani_id', $petani->id); + + if ($petani->profile_id) { + $query->orWhere('profile_id', $petani->profile_id); + } + }) + ->distinct() + ->pluck('komoditas_id'); + + return Komoditas::whereIn('id', $komoditasIds) + ->orderBy('nama') + ->get(); + } } diff --git a/resources/views/produktivitas/petani/header.blade.php b/resources/views/produktivitas/petani/header.blade.php index a41b60f..36625d0 100644 --- a/resources/views/produktivitas/petani/header.blade.php +++ b/resources/views/produktivitas/petani/header.blade.php @@ -72,7 +72,7 @@ @@ -82,7 +82,7 @@ diff --git a/resources/views/produktivitas/petani/praktik-budidaya/add.blade.php b/resources/views/produktivitas/petani/praktik-budidaya/add.blade.php new file mode 100644 index 0000000..6ccdfda --- /dev/null +++ b/resources/views/produktivitas/petani/praktik-budidaya/add.blade.php @@ -0,0 +1,326 @@ +@extends('layout.main') + +@section('content') +
+ @if ($errors->any()) +
+ +
+ @endif + +
+ + + +
+ + @include('produktivitas.petani.header', ['petani' => $petani]) + +
+
+ +
Persiapan Lahan & Tanaman
+
+
+ + + @error('tenaga_kerja')
{{ $message }}
@enderror +
+
+
Praktik Pemangkasan & Penyerbukan
+
+
+ + + @error('frekuensi_pemangkasan_komoditas_utama')
{{ $message }}
@enderror +
+
+ + +
+ teknik_pemangkasan, true))) && in_array('bentuk', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}> + +
+ +
+ teknik_pemangkasan, true))) && in_array('produksi', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}> + +
+ +
+ teknik_pemangkasan, true))) && in_array('peremajaan', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}> + +
+ +
+ teknik_pemangkasan, true))) && in_array('kebiasaan', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}> + +
+ +
+ teknik_pemangkasan, true))) && in_array('lainnya', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}> + + + + +
+ + @error('teknik_pemangkasan') +
{{ $message }}
+ @enderror +
+
+ + + @error('frekuensi_pemangkasan_pohon_penaung')
{{ $message }}
@enderror +
+
+
+
+ + +
+ penyerbukan_manual) == 'Selalu, setiap musim berbunga' ? 'checked' : '' }}> + +
+ +
+ penyerbukan_manual) == 'Kadang-kadang, tergantung kondisi' ? 'checked' : '' }}> + +
+ +
+ penyerbukan_manual) == 'Tidak pernah' ? 'checked' : '' }}> + +
+ + @error('penyerbukan_manual') +
{{ $message }}
+ @enderror +
+
+ + +
+ alasan_tidak_penyerbukan) == 'Tidak tahu caranya' ? 'checked' : '' }}> + +
+ +
+ alasan_tidak_penyerbukan) == 'Tidak ada tenaga/waktu' ? 'checked' : '' }}> + +
+ +
+ alasan_tidak_penyerbukan) == 'Mengandalkan penyerbuk alami' ? 'checked' : '' }}> + +
+ +
+ alasan_tidak_penyerbukan) == 'lainnya' ? 'checked' : '' }}> + + + + +
+ + @error('alasan_tidak_penyerbukan') +
{{ $message }}
+ @enderror +
+
+
+ +
+
+
+
+
+
+@endsection + +@push('scripts') + +@endpush \ No newline at end of file diff --git a/resources/views/produktivitas/petani/sosial-ekonomi/index.blade.php b/resources/views/produktivitas/petani/sosial-ekonomi/index.blade.php index f173946..92b5da4 100644 --- a/resources/views/produktivitas/petani/sosial-ekonomi/index.blade.php +++ b/resources/views/produktivitas/petani/sosial-ekonomi/index.blade.php @@ -50,6 +50,11 @@
Pendapatan dari Komoditas Utama
+ @if($komoditasPetani->isEmpty()) +
+ Petani ini belum memiliki komoditas pada data lahan. Tambahkan data Lahan & Tanaman terlebih dahulu agar pilihan komoditas tersedia. +
+ @endif
@@ -62,13 +67,20 @@ @for($i = 0; $i < 2; $i++) @php($item = $pendapatanKomoditasUtama->get($i)) - + + @for($i = 0; $i < 2; $i++) @php($item = $pendapatanLuarPertanian->get($i)) - + @endfor @@ -148,12 +168,12 @@
@error('skor_periode_paceklik')
{{ $message }}
@enderror
@@ -173,24 +193,26 @@
- + @php($biayaKebunValue = old('total_estimasi_biaya_kebun_per_musim', $sosialEkonomi?->total_estimasi_biaya_kebun_per_musim)) + @error('total_estimasi_biaya_kebun_per_musim')
{{ $message }}
@enderror
@error('skor_kemampuan_menabung')
{{ $message }}
@enderror
- + @php($tabunganValue = old('estimasi_tabungan_per_bulan', $sosialEkonomi?->estimasi_tabungan_per_bulan)) + @error('estimasi_tabungan_per_bulan')
{{ $message }}
@enderror
@@ -200,12 +222,12 @@
@error('skor_kecukupan_penghasilan')
{{ $message }}
@enderror
@@ -221,7 +243,7 @@
- - - - - - + + + + + + @error('skor_kejelasan_status_lahan')
{{ $message }}
@enderror
@@ -312,7 +334,110 @@ @endpush diff --git a/routes/web.php b/routes/web.php index ac93d79..7517d25 100644 --- a/routes/web.php +++ b/routes/web.php @@ -186,8 +186,9 @@ Route::middleware('auth') Route::resource('verifikasi', App\Http\Controllers\Web\Program\VerifikasiController::class)->only('store', 'destroy'); // Petani - Route::get('petani/{petani}/sosial-ekonomi', [App\Http\Controllers\Web\Produktivitas\SosialEkonomiController::class, 'editByPetani'])->name('petani.sosial-ekonomi.edit'); Route::resource('petani', App\Http\Controllers\Web\Produktivitas\PetaniController::class); - Route::resource('sosial-ekonomi', App\Http\Controllers\Web\Produktivitas\SosialEkonomiController::class)->except(['create', 'edit']); 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.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); +}); \ No newline at end of file
- komoditas) }}"> + @php($selectedKomoditas = old("pendapatan_komoditas.$i.komoditas", $item?->komoditas)) + - pendapatan) }}"> + @php($pendapatanValue = old("pendapatan_komoditas.$i.pendapatan", $item?->pendapatan)) +
- komoditas) }}"> + @php($selectedKomoditas = old("pendapatan_komoditas.$index.komoditas", $item?->komoditas)) + - pendapatan) }}"> + @php($pendapatanValue = old("pendapatan_komoditas.$index.pendapatan", $item?->pendapatan)) +
- jenis_pekerjaan) }}"> + jenis_pekerjaan) }}"> - estimasi_per_bulan) }}"> + @php($estimasiValue = old("pendapatan_luar_pertanian.$i.estimasi_per_bulan", $item?->estimasi_per_bulan)) +