dashboard indeks petani
This commit is contained in:
@@ -106,6 +106,59 @@ class IndeksPetaniController extends Controller
|
||||
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();
|
||||
|
||||
$desaKelurahan = Petani::query()
|
||||
->join('master_desa_kelurahan', 'petani.desa_kelurahan_id', '=', 'master_desa_kelurahan.id')
|
||||
->join('master_kecamatan', 'master_desa_kelurahan.kecamatan_id', '=', 'master_kecamatan.id')
|
||||
->join('master_kabupaten_kota', 'master_kecamatan.kabupaten_kota_id', '=', 'master_kabupaten_kota.id')
|
||||
->join('master_provinsi', 'master_kabupaten_kota.provinsi_id', '=', 'master_provinsi.id')
|
||||
->selectRaw("
|
||||
master_desa_kelurahan.id as desa_kelurahan_id,
|
||||
master_desa_kelurahan.nama as desa_kelurahan,
|
||||
master_desa_kelurahan.path as path,
|
||||
master_kecamatan.id as kecamatan_id,
|
||||
master_kecamatan.nama as kecamatan,
|
||||
master_kabupaten_kota.id as kabupaten_id,
|
||||
master_kabupaten_kota.nama as kabupaten,
|
||||
master_provinsi.id as provinsi_id,
|
||||
master_provinsi.nama as provinsi
|
||||
")
|
||||
->whereIn('petani.id', $petani)
|
||||
->distinct()
|
||||
->get();
|
||||
|
||||
$mapSegmentasi = SkorPetani::query()
|
||||
->join('petani', 'petani_skor.petani_id', '=', 'petani.id')
|
||||
->selectRaw("petani.desa_kelurahan_id,
|
||||
$case AS segmen,
|
||||
COUNT(petani.id) AS total
|
||||
")
|
||||
->whereIn('petani_skor.petani_id', $petani)
|
||||
->groupBy('petani.desa_kelurahan_id')
|
||||
->groupByRaw($case)
|
||||
->get();
|
||||
|
||||
$mapAvgSkorSegmentasi = SkorPetani::query()
|
||||
->join('petani', 'petani_skor.petani_id', '=', 'petani.id')
|
||||
->selectRaw("petani.desa_kelurahan_id,
|
||||
COUNT(petani.id) AS jumlah_petani,
|
||||
avg(skor_kesiapan_adopsi) AS skor,
|
||||
CASE
|
||||
WHEN AVG(skor_kesiapan_adopsi) >= 4 THEN 'Penggerak'
|
||||
WHEN AVG(skor_kesiapan_adopsi) >= 3 THEN 'Perintis'
|
||||
WHEN AVG(skor_kesiapan_adopsi) >= 2 THEN 'Pemerhati'
|
||||
WHEN AVG(skor_kesiapan_adopsi) >= 1 THEN 'Pemula'
|
||||
ELSE 'Belum Lengkap'
|
||||
END AS segmen
|
||||
")
|
||||
->whereIn('petani_skor.petani_id', $petani)
|
||||
->groupBy('petani.desa_kelurahan_id')
|
||||
->get();
|
||||
|
||||
$daftarPetani = Petani::query()
|
||||
->whereIn('id', $petani)
|
||||
->whereIn('komoditas_id', $komoditas->pluck('id'))
|
||||
->get();
|
||||
|
||||
return view('dashboard.indeks-petani', compact(
|
||||
'komoditas',
|
||||
'countPetani',
|
||||
@@ -119,7 +172,11 @@ class IndeksPetaniController extends Controller
|
||||
'countSegmentasi',
|
||||
'countSegmentasiByKomoditas',
|
||||
'avgDimensi',
|
||||
'avgKomponen'
|
||||
'avgKomponen',
|
||||
'desaKelurahan',
|
||||
'mapSegmentasi',
|
||||
'mapAvgSkorSegmentasi',
|
||||
'daftarPetani',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -339,7 +339,7 @@ class Petani extends Model
|
||||
$skor >= 3.0 => 'Perintis',
|
||||
$skor >= 2.0 => 'Pemerhati',
|
||||
$skor >= 1.0 => 'Pemula',
|
||||
default => 'Belum tersegmentasi',
|
||||
default => 'Belum lengkap',
|
||||
};
|
||||
}
|
||||
|
||||
@@ -365,10 +365,10 @@ class Petani extends Model
|
||||
} elseif ($skor->skor_kesiapan_adopsi >= 1.0) {
|
||||
return 'Pemula';
|
||||
} else {
|
||||
return 'Belum tersegmentasi';
|
||||
return 'Belum lengkap';
|
||||
}
|
||||
|
||||
return 'Belum tersegmentasi';
|
||||
return 'Belum lengkap';
|
||||
}
|
||||
|
||||
public function keteranganSegmen(): ?string
|
||||
|
||||
Reference in New Issue
Block a user