get(); $petani = Petani::pluck('id'); $lahan = Lahan::whereIn('petani_id', $petani)->get(); $petaniSummary = Petani::select( 'komoditas_id', DB::raw('COUNT(*) as total') ) ->groupBy('komoditas_id') ->get(); $lahanSummary = Lahan::select( 'komoditas_id', DB::raw('COUNT(*) as total'), DB::raw('SUM(luas_lahan) as luas_lahan') ) ->whereIn('petani_id', $petani) ->groupBy('komoditas_id') ->get(); $tanamanSummary = Tanaman::select( 'komoditas_id', DB::raw('COUNT(*) as total') ) ->whereIn('lahan_id', $lahan->pluck('id')) ->groupBy('komoditas_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 "; $skorSummary = SkorPetani::selectRaw("$case AS segmen, COUNT(*) AS total") ->whereIn('petani_id', $petani) ->groupByRaw($case) ->get(); $skorKomoditasSummary = SkorPetani::query() ->join('petani', 'petani_skor.petani_id', '=', 'petani.id') ->selectRaw(" petani.komoditas_id, $case AS segmen, COUNT(petani.id) AS total ") ->whereIn('petani_skor.petani_id', $petani) ->groupBy('petani.komoditas_id') ->groupByRaw($case) ->get(); $skorAverage = SkorPetani::query() ->join('petani', 'petani_skor.petani_id', '=', 'petani.id') ->whereIn('petani_id', $petani) ->whereIn('petani.komoditas_id', $komoditas->pluck('id')) ->avg('skor_kesiapan_adopsi'); if ($skorAverage >= 4.0) { $segmenAverage = 'Penggerak'; } elseif ($skorAverage >= 3.0) { $segmenAverage = 'Perintis'; } elseif ($skorAverage >= 2.0) { $segmenAverage = 'Pemerhati'; } elseif ($skorAverage >= 1.0) { $segmenAverage = 'Pemula'; } else { $segmenAverage = 'Belum Lengkap'; } $skorDimensi = SkorPetani::query() ->join('petani', 'petani_skor.petani_id', '=', 'petani.id') ->whereIn('petani_id', $petani) ->whereIn('petani.komoditas_id', $komoditas->pluck('id')) ->selectRaw(" avg(skor_d2_sistem_praktik_budidaya) as skor_d2_sistem_praktik_budidaya, avg(skor_d4_sosial_ekonomi) as skor_d4_sosial_ekonomi, avg(skor_d6_rantai_nilai_akses_pasar) as skor_d6_rantai_nilai_akses_pasar") ->first(); $skorKomponen = SkorPetani::query() ->join('petani', 'petani_skor.petani_id', '=', 'petani.id') ->whereIn('petani_id', $petani) ->whereIn('petani.komoditas_id', $komoditas->pluck('id')) ->selectRaw("avg(skor_komp_1_d4_k3_motivasi_kapasitas_adopsi) as skor_komp_1_d4_k3_motivasi_kapasitas_adopsi, avg(skor_komp_2_d4_k2_ekonomi_rumah_tangga) as skor_komp_2_d4_k2_ekonomi_rumah_tangga, avg(skor_komp_3_d2_praktik_budidaya_gap) as skor_komp_3_d2_praktik_budidaya_gap, avg(skor_komp_4_d4_k4_keterlibatan_kelembagaan) as skor_komp_4_d4_k4_keterlibatan_kelembagaan, avg(skor_komp_5_d4_k5_k6_akses_kebebasan_keuangan) as skor_komp_5_d4_k5_k6_akses_kebebasan_keuanga, avg(skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar) as skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar") ->first(); $skorMultiDimensi = SkorPetani::query() ->join('petani', 'petani_skor.petani_id', '=', 'petani.id') ->whereIn('petani_id', $petani) ->whereIn('petani.komoditas_id', $komoditas->pluck('id')) ->selectRaw("$case AS segmen, avg(skor_kesiapan_adopsi) as skor_kesiapan_adopsi, avg(skor_d2_sistem_praktik_budidaya) as skor_d2_sistem_praktik_budidaya, avg(skor_d4_sosial_ekonomi) as skor_d4_sosial_ekonomi, avg(skor_d6_rantai_nilai_akses_pasar) as skor_d6_rantai_nilai_akses_pasar") ->groupByRaw($case) ->get(); $skorMultiKomponen = SkorPetani::query() ->join('petani', 'petani_skor.petani_id', '=', 'petani.id') ->whereIn('petani_id', $petani) ->whereIn('petani.komoditas_id', $komoditas->pluck('id')) ->selectRaw("$case AS segmen, avg(skor_kesiapan_adopsi) as skor_kesiapan_adopsi, avg(skor_komp_1_d4_k3_motivasi_kapasitas_adopsi) as skor_komp_1_d4_k3_motivasi_kapasitas_adopsi, avg(skor_komp_2_d4_k2_ekonomi_rumah_tangga) as skor_komp_2_d4_k2_ekonomi_rumah_tangga, avg(skor_komp_3_d2_praktik_budidaya_gap) as skor_komp_3_d2_praktik_budidaya_gap, avg(skor_komp_4_d4_k4_keterlibatan_kelembagaan) as skor_komp_4_d4_k4_keterlibatan_kelembagaan, avg(skor_komp_5_d4_k5_k6_akses_kebebasan_keuangan) as skor_komp_5_d4_k5_k6_akses_kebebasan_keuangan, avg(skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar) as skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar") ->groupByRaw($case) ->get(); $petani = Petani::with(['skor']) ->whereIn('id', $petani) ->whereIn('komoditas_id', $komoditas->pluck('id')) ->get(); return view('dashboard.petani', compact('title', 'komoditas', 'petaniSummary', 'lahanSummary', 'tanamanSummary', 'skorSummary', 'skorKomoditasSummary', 'segmenAverage', 'skorAverage', 'skorDimensi', 'skorKomponen', 'skorMultiDimensi', 'skorMultiKomponen', 'petani', )); } }