header skor

This commit is contained in:
2026-07-14 10:44:35 +07:00
parent 5b776b2ae8
commit fcc5d7dcc5
4 changed files with 385 additions and 0 deletions
@@ -0,0 +1,76 @@
<?php
namespace App\Http\Controllers\Web\Produktivitas;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
use App\Models\Pertanian\SkorPetani;
use App\Models\Pertanian\Petani;
class SkorPetaniController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(string $petaniId)
{
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
abort(403);
}
$petani = Petani::findOrFail($petaniId);
$skor = $petani->skor;
return view('produktivitas.petani.skor.index', compact('petani', 'skor'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $petaniId, string $id)
{
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}
+23
View File
@@ -368,4 +368,27 @@ class Petani extends Model
return 'Belum tersegmentasi';
}
public function keteranganSegmen(): ?string
{
$skor = $this->skor;
if (!$skor) {
return null;
}
if ($skor->skor_kesiapan_adopsi >= 4.0) {
return 'Siap menjadi peserta agrolab utama dan panutan bagi petani lain';
} elseif ($skor->skor_kesiapan_adopsi >= 3.0) {
return 'Berpotensi berkembang menjadi Penggerak dengan dukungan yang tepat';
} elseif ($skor->skor_kesiapan_adopsi >= 2.0) {
return 'Perlu melihat bukti hasil nyata dari Penggerak sebelum mau bergerak';
} elseif ($skor->skor_kesiapan_adopsi >= 1.0) {
return 'Butuh penanganan hambatan dasar terlebih dahulu sebelum intervensi teknis';
} else {
return 'Belum tersegmentasi, data belum lengkap';
}
return 'Belum tersegmentasi, data belum lengkap';
}
}
@@ -0,0 +1,284 @@
@extends('layout.main')
@section('content')
<div class="container-xxl flex-grow-1 container-p-y">
@if (session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
@if ($errors->any())
<div class="alert alert-danger">
<ul class="mb-0">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="row">
<div class="col-md-12">
@include('produktivitas.petani.header', ['petani' => $petani])
<div class="row g-6">
<div class="col-lg-4 col-sm-6">
<div class="card card-border-shadow-primary h-100">
<div class="card-body">
@php
$segmen = 'Belum tersegmentasi';
@endphp
<div class="d-flex align-items-center mb-2">
<h4 class="mb-0">{{ $petani->segmen() }} ({{ number_format($skor->skor_kesiapan_adopsi, 1, ',', '.') }})</h4>
</div>
<p class="mb-1 text-wrapped">{{ $petani->keteranganSegmen() }}</p>
</div>
</div>
</div>
<div class="col-lg-8 col-sm-6">
<div class="card card-border-shadow-primary h-100">
<div class="card-body d-flex align-items-end">
<div class="w-100">
<div class="row gy-3">
<div class="col-md-4 col-12">
<div class="card-info">
<h5 class="mb-0">{{ number_format($skor->skor_d2_sistem_praktik_budidaya, 1, ',', '.') }}</h5></h5>
<small>Sistem & Praktik Budidaya</small>
</div>
</div>
<div class="col-md-4 col-12">
<div class="card-info">
<h5 class="mb-0">{{ number_format($skor->skor_d4_sosial_ekonomi, 1, ',', '.') }}</h5>
<small>Sosial Ekonomi Rumah Tangga</small>
</div>
</div>
<div class="col-md-4 col-12">
<div class="card-info">
<h5 class="mb-0">{{ number_format($skor->skor_d6_rantai_nilai_akses_pasar, 1, ',', '.') }}</h5>
<small>Rantai Nilai & Akses Pasar</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row g-6 pt-4">
<div class="col-lg-4 col-sm-6">
<div class="card card-border-shadow-primary">
<div class="card-body d-flex align-items-end">
<div class="w-100">
<div class="row gy-3">
<div class="col-12">
<div class="card-info">
<h5 class="mb-0">{{ number_format($skor->skor_komp_1_d4_k3_motivasi_kapasitas_adopsi, 1, ',', '.') }}</h5></h5>
<small>Motivasi & Kapasitas Adopsi</small><br/>
<small class="text-body-secondary">Kemauan dan kapasitas kognitif untuk mengadopsi perubahan</small>
</div>
</div>
</div>
<div class="row gy-3">
<div class="col-12">
<div class="card-info">
<h5 class="mb-0">{{ number_format($skor->skor_komp_2_d4_k2_ekonomi_rumah_tangga, 1, ',', '.') }}</h5></h5>
<small>Kondisi Ekonomi Rumah Tangga</small><br/>
<small class="text-body-secondary">Kapasitas material petani untuk berinvestasi dalam perubahan</small>
</div>
</div>
</div>
<div class="row gy-3">
<div class="col-12">
<div class="card-info">
<h5 class="mb-0">{{ number_format($skor->skor_komp_3_d2_praktik_budidaya_gap, 1, ',', '.') }}</h5></h5>
<small>Praktik Budidaya & Skor GAP</small><br/>
<small class="text-body-secondary">Kualitas praktik budidaya aktual petani dibandingkan praktik terbaik yang dituju</small>
</div>
</div>
</div>
<div class="row gy-3">
<div class="col-12">
<div class="card-info">
<h5 class="mb-0">{{ number_format($skor->skor_komp_4_d4_k4_keterlibatan_kelembagaan, 1, ',', '.') }}</h5></h5>
<small>Keterlibatan Kelembagaan</small><br/>
<small class="text-body-secondary">Kapasitas sosial petani untuk berubah</small>
</div>
</div>
</div>
<div class="row gy-3">
<div class="col-12">
<div class="card-info">
<h5 class="mb-0">{{ number_format($skor->skor_komp_5_d4_k5_k6_akses_kebebasan_keuangan, 1, ',', '.') }}</h5></h5>
<small>Akses & Kebebasan Keuangan</small><br/>
<small class="text-body-secondary">Akses yang memperluas ruang gerak investasi dan membatasi pengambilan keputusan</small>
</div>
</div>
</div>
<div class="row gy-3">
<div class="col-12">
<div class="card-info">
<h5 class="mb-0">{{ number_format($skor->skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar, 1, ',', '.') }}</h5></h5>
<small>Posisi & Akses Pasar</small><br/>
<small class="text-body-secondary">Posisi petani dalam rantai nilai dan akses pasar</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-8 col-sm-6">
<div class="card card-border-shadow-primary">
<div class="card-body">
<div class="table-responsive">
<table class="table table-borderless">
<thead>
<tr>
<th scope="col">Variabel</th>
<th scope="col" class="w-10 text-end">Skor</th>
</tr>
</thead>
<tbody>
<tr>
<td class="text-wrapped">Kemampuan mencoba praktik baru</td>
<td class="text-end">{{ number_format($skor->skor_d4_k3_1_praktik_baru, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Pemahaman kaitan mutu dan harga</td>
<td class="text-end">{{ number_format($skor->skor_d4_k3_4_pemahaman_mutu_harga, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Keberadaan role model</td>
<td class="text-end">{{ number_format($skor->skor_d4_k3_5_role_model, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Kemauan terlibat dalam program</td>
<td class="text-end">{{ number_format($skor->skor_d4_k3_6_kemampuan_keterlibatan_program, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Orientasi jangka panjang</td>
<td class="text-end">{{ number_format($skor->skor_d4_k3_7_orientasi_jangka_panjang, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Stabilitas penghasilan</td>
<td class="text-end">{{ number_format($skor->skor_d4_k2_5_stabilitas_penghasilan, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Kemampuan menabung</td>
<td class="text-end">{{ number_format($skor->skor_d4_k2_8_kemampuan_menabung, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Persepsi kecukupan penghasilan</td>
<td class="text-end">{{ number_format($skor->skor_d4_k2_9_kecukupan_penghasilan, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Rasio biaya produksi terhadap pendapatan</td>
<td class="text-end">{{ number_format($skor->skor_d4_k2_3_k2_7_rasio_biaya_produksi_pendapatan, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Kejelasan hak kelola lahan</td>
<td class="text-end">{{ number_format($skor->skor_d4_k2_11_hak_kelola_lahan, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Praktik pemangkasan</td>
<td class="text-end">{{ number_format($skor->skor_d2_k2_3_praktik_pemangkasan, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Praktik pemupukan</td>
<td class="text-end">{{ number_format($skor->skor_d2_k2_4_praktik_pemupukan, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Pengendalian OPT</td>
<td class="text-end">{{ number_format($skor->skor_d2_k2_5_pengendalian_opt, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Sanitasi kebun</td>
<td class="text-end">{{ number_format($skor->skor_d2_k2_6_sanitasi_kebun, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Pengelolaan gulma</td>
<td class="text-end">{{ number_format($skor->skor_d2_k2_6b_pengelolaan_gulma, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Pengelolaan air & irigasi</td>
<td class="text-end">{{ number_format($skor->skor_d2_k2_7_penglolaan_air_irigasi, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Praktik konservasi tanah</td>
<td class="text-end">{{ number_format($skor->skor_d2_k2_8_praktik_konservasi_tanah, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Penentuan kematangan saat panen</td>
<td class="text-end">{{ number_format($skor->skor_d2_k3_1_penentuan_pematangan, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Sortasi awal dan pemisahan kualitas</td>
<td class="text-end">{{ number_format($skor->skor_d2_k3_5_sortasi_awal_pemisahan_kualitas, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Keaktifan menghadiri pertemuan</td>
<td class="text-end">{{ number_format($skor->skor_d4_k4_2_keaktifan_pertemuan, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Peran dalam kelompok</td>
<td class="text-end">{{ number_format($skor->skor_d4_k4_3_peran_dalam_kelompok, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Manfaat yang dirasakan dari kelompok</td>
<td class="text-end">{{ number_format($skor->skor_d4_k4_4_manfaat_dirasakan, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Kepemilikan rekening bank</td>
<td class="text-end">{{ number_format($skor->skor_d4_k5_1_kepemilikan_rekening, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Pengalaman kredit formal</td>
<td class="text-end">{{ number_format($skor->skor_d4_k5_2_pengalaman_kredit_formal, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Kepemilikan aset produktif</td>
<td class="text-end">{{ number_format($skor->skor_d4_k5_3_kepemilikan_aset_produktif, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Kepemilikan aset tidak produktif</td>
<td class="text-end">{{ number_format($skor->skor_d4_k5_4_kepemilikan_aset_tidak_produktif, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Akses program bantuan</td>
<td class="text-end">{{ number_format($skor->skor_d4_k5_4_5_akses_program_bantuan, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Keberadaan hutang terkait panen</td>
<td class="text-end">{{ number_format($skor->skor_d4_k6_3_keberadaan_hutang_terkait_panen, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Praktik ijon</td>
<td class="text-end">{{ number_format($skor->skor_d4_k6_5a_praktik_ijon, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Kebebasan memilih pembeli</td>
<td class="text-end">{{ number_format($skor->skor_d4_k6_5b_kebebasan_memilih_pembeli, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Pengalaman menjual ke saluran yang berbeda</td>
<td class="text-end">{{ number_format($skor->skor_d6_k1_6_pengalaman_menjual_ke_saluran_berbeda, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Kesadaran dan akses pasar premium</td>
<td class="text-end">{{ number_format($skor->skor_d6_k4_1_kesadaran_akses_pasar_premium, 1, ',', '.') }}</td>
</tr>
<tr>
<td class="text-wrapped">Hambatan mutu sebagai penghalang pasar</td>
<td class="text-end">{{ number_format($skor->skor_d6_k5_1_hambatan_mutu, 1, ',', '.') }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
+2
View File
@@ -216,4 +216,6 @@ Route::middleware('auth')
Route::resource('petani.sosial-ekonomi', App\Http\Controllers\Web\Produktivitas\SosialEkonomiController::class)->whereNumber('petani');
Route::resource('petani.akses-pasar', App\Http\Controllers\Web\Produktivitas\AksesPasarController::class)->whereNumber('petani');
Route::resource('petani.skor', App\Http\Controllers\Web\Produktivitas\SkorPetaniController::class)->only(['index']);
});