solve dashboard indikator pertanian
This commit is contained in:
@@ -22,10 +22,13 @@ class ProfilPetaniController extends Controller
|
||||
}
|
||||
$title = 'Dashboard Profil Petani';
|
||||
|
||||
$komoditas = Komoditas::where('is_utama', true)->get();
|
||||
$komoditas = Komoditas::select('id', 'nama')->where('is_utama', true)->get();
|
||||
$komoditasIds = $komoditas->pluck('id');
|
||||
|
||||
$petani = Petani::pluck('id');
|
||||
$lahan = Lahan::whereIn('petani_id', $petani)->get();
|
||||
$petaniIds = fn () => Petani::query()->select('id');
|
||||
$lahanIds = fn () => Lahan::query()
|
||||
->whereIn('petani_id', $petaniIds())
|
||||
->select('id');
|
||||
|
||||
$petaniSummary = Petani::select(
|
||||
'komoditas_id',
|
||||
@@ -38,14 +41,14 @@ class ProfilPetaniController extends Controller
|
||||
DB::raw('COUNT(*) as total'),
|
||||
DB::raw('SUM(luas_lahan) as luas_lahan')
|
||||
)
|
||||
->whereIn('petani_id', $petani)
|
||||
->whereIn('petani_id', $petaniIds())
|
||||
->groupBy('komoditas_id')
|
||||
->get();
|
||||
$tanamanSummary = Tanaman::select(
|
||||
'komoditas_id',
|
||||
DB::raw('COUNT(*) as total')
|
||||
)
|
||||
->whereIn('lahan_id', $lahan->pluck('id'))
|
||||
->whereIn('lahan_id', $lahanIds())
|
||||
->groupBy('komoditas_id')
|
||||
->get();
|
||||
|
||||
@@ -59,7 +62,7 @@ class ProfilPetaniController extends Controller
|
||||
END
|
||||
";
|
||||
$skorSummary = SkorPetani::selectRaw("$case AS segmen, COUNT(*) AS total")
|
||||
->whereIn('petani_id', $petani)
|
||||
->whereIn('petani_id', $petaniIds())
|
||||
->groupByRaw($case)
|
||||
->get();
|
||||
|
||||
@@ -70,15 +73,15 @@ class ProfilPetaniController extends Controller
|
||||
$case AS segmen,
|
||||
COUNT(petani.id) AS total
|
||||
")
|
||||
->whereIn('petani_skor.petani_id', $petani)
|
||||
->whereIn('petani_skor.petani_id', $petaniIds())
|
||||
->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'))
|
||||
->whereIn('petani_id', $petaniIds())
|
||||
->whereIn('petani.komoditas_id', $komoditasIds)
|
||||
->avg('skor_kesiapan_adopsi');
|
||||
if ($skorAverage >= 4.0) {
|
||||
$segmenAverage = 'Penggerak';
|
||||
@@ -94,8 +97,8 @@ class ProfilPetaniController extends Controller
|
||||
|
||||
$skorDimensi = SkorPetani::query()
|
||||
->join('petani', 'petani_skor.petani_id', '=', 'petani.id')
|
||||
->whereIn('petani_id', $petani)
|
||||
->whereIn('petani.komoditas_id', $komoditas->pluck('id'))
|
||||
->whereIn('petani_id', $petaniIds())
|
||||
->whereIn('petani.komoditas_id', $komoditasIds)
|
||||
->selectRaw("
|
||||
avg(skor_d2_sistem_praktik_budidaya) as skor_d2_sistem_praktik_budidaya,
|
||||
avg(skor_d4_sosial_ekonomi) as skor_d4_sosial_ekonomi,
|
||||
@@ -104,8 +107,8 @@ class ProfilPetaniController extends Controller
|
||||
|
||||
$skorKomponen = SkorPetani::query()
|
||||
->join('petani', 'petani_skor.petani_id', '=', 'petani.id')
|
||||
->whereIn('petani_id', $petani)
|
||||
->whereIn('petani.komoditas_id', $komoditas->pluck('id'))
|
||||
->whereIn('petani_id', $petaniIds())
|
||||
->whereIn('petani.komoditas_id', $komoditasIds)
|
||||
->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,
|
||||
@@ -116,8 +119,8 @@ class ProfilPetaniController extends Controller
|
||||
|
||||
$skorMultiDimensi = SkorPetani::query()
|
||||
->join('petani', 'petani_skor.petani_id', '=', 'petani.id')
|
||||
->whereIn('petani_id', $petani)
|
||||
->whereIn('petani.komoditas_id', $komoditas->pluck('id'))
|
||||
->whereIn('petani_id', $petaniIds())
|
||||
->whereIn('petani.komoditas_id', $komoditasIds)
|
||||
->selectRaw("$case AS segmen,
|
||||
avg(skor_kesiapan_adopsi) as skor_kesiapan_adopsi,
|
||||
avg(skor_d2_sistem_praktik_budidaya) as skor_d2_sistem_praktik_budidaya,
|
||||
@@ -128,8 +131,8 @@ class ProfilPetaniController extends Controller
|
||||
|
||||
$skorMultiKomponen = SkorPetani::query()
|
||||
->join('petani', 'petani_skor.petani_id', '=', 'petani.id')
|
||||
->whereIn('petani_id', $petani)
|
||||
->whereIn('petani.komoditas_id', $komoditas->pluck('id'))
|
||||
->whereIn('petani_id', $petaniIds())
|
||||
->whereIn('petani.komoditas_id', $komoditasIds)
|
||||
->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,
|
||||
@@ -141,9 +144,14 @@ class ProfilPetaniController extends Controller
|
||||
->groupByRaw($case)
|
||||
->get();
|
||||
|
||||
$petani = Petani::with(['skor'])
|
||||
->whereIn('id', $petani)
|
||||
->whereIn('komoditas_id', $komoditas->pluck('id'))
|
||||
$petani = Petani::query()
|
||||
->select('id', 'nama', 'jenis_kelamin', 'tanggal_lahir', 'komoditas_id')
|
||||
->with([
|
||||
'komoditas:id,nama',
|
||||
'skor:id,petani_id,skor_kesiapan_adopsi,skor_d2_sistem_praktik_budidaya,skor_d4_sosial_ekonomi,skor_d6_rantai_nilai_akses_pasar,skor_komp_1_d4_k3_motivasi_kapasitas_adopsi,skor_komp_2_d4_k2_ekonomi_rumah_tangga,skor_komp_3_d2_praktik_budidaya_gap,skor_komp_4_d4_k4_keterlibatan_kelembagaan,skor_komp_5_d4_k5_k6_akses_kebebasan_keuangan,skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar',
|
||||
])
|
||||
->whereIn('komoditas_id', $komoditasIds)
|
||||
->orderBy('nama')
|
||||
->get();
|
||||
|
||||
return view('dashboard.petani', compact('title',
|
||||
|
||||
Reference in New Issue
Block a user