diff --git a/app/Http/Controllers/Web/Produktivitas/PetaniController.php b/app/Http/Controllers/Web/Produktivitas/PetaniController.php index 6a176fd..92a99ef 100644 --- a/app/Http/Controllers/Web/Produktivitas/PetaniController.php +++ b/app/Http/Controllers/Web/Produktivitas/PetaniController.php @@ -15,6 +15,9 @@ use App\Models\Wilayah\Provinsi; use App\Models\Pertanian\Petani; use App\Models\Wilayah\DesaKelurahan; use App\Models\Pertanian\Komoditas; +use App\Models\Pertanian\Tanaman; +use App\Models\Pertanian\Lahan; +use App\Models\Pertanian\SkorPetani; use App\Enums\Pendidikan; use App\Enums\Pekerjaan; @@ -49,7 +52,29 @@ class PetaniController extends Controller $petani = $query->paginate($request->per_page ?? 10); - return view('produktivitas.petani.index', compact('petani', 'provinsi')); + $komoditas = Komoditas::where('is_utama', true)->get(); + $lahan = Lahan::whereIn('petani_id', $petani->pluck('id')) + ->whereIn('komoditas_id', $komoditas->pluck('id')) + ->get(); + $tanaman = Tanaman::whereIn('lahan_id', $lahan->pluck('id')) + ->whereIn('lahan_id', $lahan->pluck('id')) + ->get(); + + $case = " + CASE + WHEN skor_kesiapan_adopsi >= 4.0 THEN 'Penggerak' + WHEN skor_kesiapan_adopsi >= 3.0 THEN 'Perintis' + WHEN skor_kesiapan_adopsi >= 2.0 THEN 'Pemerhati' + WHEN skor_kesiapan_adopsi >= 1.0 THEN 'Pemula' + ELSE 'Belum Lengkap' + END + "; + $skor = SkorPetani::selectRaw("$case AS segmen, COUNT(*) AS total") + ->whereIn('petani_id', $petani->pluck('id')) + ->groupByRaw($case) + ->get(); + + return view('produktivitas.petani.index', compact('petani', 'provinsi', 'lahan', 'komoditas', 'tanaman', 'skor')); } public function create() diff --git a/database/migrations/2026_07_15_110145_update_komoditas_table.php b/database/migrations/2026_07_15_110145_update_komoditas_table.php new file mode 100644 index 0000000..41dd782 --- /dev/null +++ b/database/migrations/2026_07_15_110145_update_komoditas_table.php @@ -0,0 +1,25 @@ +boolean('is_utama')->default(false); + }); + } + + public function down(): void + { + Schema::table('master_komoditas', function (Blueprint $table) { + $table->dropColumn('is_utama'); + }); + } +}; diff --git a/resources/views/components/summary-card.blade.php b/resources/views/components/summary-card.blade.php index 901a701..7f5d918 100644 --- a/resources/views/components/summary-card.blade.php +++ b/resources/views/components/summary-card.blade.php @@ -4,7 +4,7 @@
{{ $title }}
-