From 6b44c11181cc5877aa29607580c8f7206753033b Mon Sep 17 00:00:00 2001
From: Irwan Cahyono
Date: Wed, 15 Jul 2026 11:44:38 +0700
Subject: [PATCH] header dan index
---
.../Web/Produktivitas/PetaniController.php | 27 +++++++++++++++-
...26_07_15_110145_update_komoditas_table.php | 25 +++++++++++++++
.../views/components/summary-card.blade.php | 2 +-
.../produktivitas/petani/header.blade.php | 8 ++---
.../produktivitas/petani/index.blade.php | 32 +++++++++++++++++++
5 files changed, 88 insertions(+), 6 deletions(-)
create mode 100644 database/migrations/2026_07_15_110145_update_komoditas_table.php
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 }}
-
{{ $count }}
+
{!! $count !!}
{{ $subtitle }}
diff --git a/resources/views/produktivitas/petani/header.blade.php b/resources/views/produktivitas/petani/header.blade.php
index ec77916..70b8c67 100644
--- a/resources/views/produktivitas/petani/header.blade.php
+++ b/resources/views/produktivitas/petani/header.blade.php
@@ -127,7 +127,7 @@
-
+
@@ -175,13 +175,13 @@
@if(!is_null($skorPraktik))
{{ $praktik }}
@else
- Belum isi
+ Belum terisi
@endif
-
+
@@ -285,7 +285,7 @@
@if(!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium))
{{ $pengalaman }}
@else
- Belum isi
+ Belum terisi
@endif
diff --git a/resources/views/produktivitas/petani/index.blade.php b/resources/views/produktivitas/petani/index.blade.php
index 33dd94e..33ae852 100644
--- a/resources/views/produktivitas/petani/index.blade.php
+++ b/resources/views/produktivitas/petani/index.blade.php
@@ -2,6 +2,36 @@
@section('content')