From c42a2571f5848627dd480ea12fb7faf8ab768e3b Mon Sep 17 00:00:00 2001 From: SyaharaniSalsabilla Date: Tue, 22 Sep 2026 10:57:21 +0700 Subject: [PATCH 1/4] solve profil petani --- .../Web/Produktivitas/PetaniController.php | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Web/Produktivitas/PetaniController.php b/app/Http/Controllers/Web/Produktivitas/PetaniController.php index 99ce51a..cfec8e9 100644 --- a/app/Http/Controllers/Web/Produktivitas/PetaniController.php +++ b/app/Http/Controllers/Web/Produktivitas/PetaniController.php @@ -268,7 +268,27 @@ class PetaniController extends Controller */ public function destroy(string $id) { - // + if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) { + abort(403); + } + + $petani = Petani::findOrFail($id); + + if (auth()->user()->role->value === 'fasilitator' && $petani->created_by !== auth()->id()) { + abort(403); + } + + DB::transaction(function () use ($petani) { + $petani->update([ + 'deleted_by' => auth()->id(), + ]); + + $petani->delete(); + }); + + return response()->json([ + 'message' => 'Data petani berhasil dihapus.', + ]); } public function showImage(string $id, string $field) From 71b4d42ea23ec7739eced63f42bc079071aa2316 Mon Sep 17 00:00:00 2001 From: SyaharaniSalsabilla Date: Tue, 22 Sep 2026 10:58:41 +0700 Subject: [PATCH 2/4] Merge branch 'main' of https://git.probindo.com/Probindo/database-pertani-web --- .../Web/Produktivitas/PetaniController.php | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Web/Produktivitas/PetaniController.php b/app/Http/Controllers/Web/Produktivitas/PetaniController.php index cfec8e9..2478e1b 100644 --- a/app/Http/Controllers/Web/Produktivitas/PetaniController.php +++ b/app/Http/Controllers/Web/Produktivitas/PetaniController.php @@ -263,12 +263,10 @@ class PetaniController extends Controller return redirect()->route('petani.edit', $petani->id)->with('success', 'Data petani berhasil diupdate.'); } - /** - * Remove the specified resource from storage. - */ public function destroy(string $id) { if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) { +<<<<<<< HEAD abort(403); } @@ -289,6 +287,27 @@ class PetaniController extends Controller return response()->json([ 'message' => 'Data petani berhasil dihapus.', ]); +======= + return response()->json(['message' => 'Anda tidak memiliki akses.'], 403); + } + + try { + $petani = Petani::findOrFail($id); + + $petani->delete(); + + return response()->json([ + 'status' => 'success', + 'message' => 'Data petani berhasil dihapus.' + ]); + + } catch (\Exception $e) { + return response()->json([ + 'status' => 'error', + 'message' => 'Gagal menghapus data: ' . $e->getMessage() + ], 500); + } +>>>>>>> 16903b21e36609a7257f376b49762e4b5070024f } public function showImage(string $id, string $field) From 6b25bff2c4c4e70be855c4c10aead3ef426559f5 Mon Sep 17 00:00:00 2001 From: SyaharaniSalsabilla Date: Tue, 22 Sep 2026 10:59:55 +0700 Subject: [PATCH 3/4] Merge branch 'main' of https://git.probindo.com/Probindo/database-pertani-web --- app/Http/Controllers/Web/Produktivitas/PetaniController.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Http/Controllers/Web/Produktivitas/PetaniController.php b/app/Http/Controllers/Web/Produktivitas/PetaniController.php index 2478e1b..abebf58 100644 --- a/app/Http/Controllers/Web/Produktivitas/PetaniController.php +++ b/app/Http/Controllers/Web/Produktivitas/PetaniController.php @@ -266,6 +266,7 @@ class PetaniController extends Controller public function destroy(string $id) { if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) { +<<<<<<< HEAD <<<<<<< HEAD abort(403); } @@ -288,6 +289,8 @@ class PetaniController extends Controller 'message' => 'Data petani berhasil dihapus.', ]); ======= +======= +>>>>>>> 16903b21e36609a7257f376b49762e4b5070024f return response()->json(['message' => 'Anda tidak memiliki akses.'], 403); } @@ -307,6 +310,9 @@ class PetaniController extends Controller 'message' => 'Gagal menghapus data: ' . $e->getMessage() ], 500); } +<<<<<<< HEAD +>>>>>>> 16903b21e36609a7257f376b49762e4b5070024f +======= >>>>>>> 16903b21e36609a7257f376b49762e4b5070024f } From 1155b9b95bc7c1c0e9ee5215f46c3bc43e3b2e31 Mon Sep 17 00:00:00 2001 From: ahmadafriadi Date: Tue, 22 Sep 2026 15:12:32 +0700 Subject: [PATCH 4/4] Update Header Pertanian --- .../produktivitas/petani/header.blade.php | 112 +++++++----------- 1 file changed, 40 insertions(+), 72 deletions(-) diff --git a/resources/views/produktivitas/petani/header.blade.php b/resources/views/produktivitas/petani/header.blade.php index e3ed814..170133b 100644 --- a/resources/views/produktivitas/petani/header.blade.php +++ b/resources/views/produktivitas/petani/header.blade.php @@ -66,33 +66,11 @@
@php $skorLahanTanaman = isset($petani) ? $petani->skorLahanTanaman() : null; - $skorPraktikBudidaya = isset($petani) ? $petani->skorPraktikBudidaya() : null; - $skorPendidikan = isset($petani) ? $petani->skorPendidikan() : null; - $skorSosialEkonomiSegmen = isset($petani) ? $petani->skorSosialEkonomi() : null; - $skorAksesPasarSegmen = isset($petani) ? $petani->skorAksesPasar() : null; - - $skorSegmenPetani = collect([ - $skorLahanTanaman, - $skorPraktikBudidaya, - $skorPendidikan, - $skorSosialEkonomiSegmen, - $skorAksesPasarSegmen, - ])->filter(fn ($value) => !is_null($value))->sum(); - - $skorSegmenPetani = $skorSegmenPetani > 0 ? round($skorSegmenPetani, 1) : null; - $segmenPetani = is_null($skorSegmenPetani) ? null : match (true) { - $skorSegmenPetani >= 4.0 => 'Penggerak', - $skorSegmenPetani >= 3.0 => 'Perintis', - $skorSegmenPetani >= 2.0 => 'Pemerhati', - $skorSegmenPetani >= 1.0 => 'Pemula', - default => 'Belum tersegmentasi', - }; $lahanPetani = isset($petani) && \Illuminate\Support\Facades\Schema::hasTable('map_lahan') ? $petani->lahans()->get() : collect(); - $totalLuasLahan = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->sum('luas_lahan') : 0; - $totalLuasLahanHa = $totalLuasLahan / 10000; + $totalLuasLahanHa = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->sum('luas_lahan') : 0; $lahanKomoditasUtamaIds = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->pluck('id') : collect(); @@ -100,9 +78,8 @@ ? \App\Models\Pertanian\Tanaman::whereIn('lahan_id', $lahanKomoditasUtamaIds)->count() : 0; $pendidikanLabel = isset($petani) ? $petani->pendidikan_terakhir?->label() : null; - @endphp - +
@@ -112,8 +89,8 @@

Segmen Petani

{{ $petani?->segmen() ?? '-' }}

- @if(!is_null($petani?->skor)) - Skor {{ number_format($petani?->skor->skor_kesiapan_adopsi, 1) }} + @if(!is_null($petani?->skor?->skor_kesiapan_adopsi)) + Skor {{ number_format($petani->skor->skor_kesiapan_adopsi, 1, ',', '.') }}/5 @else Belum terisi @endif @@ -187,35 +164,19 @@

@php $skorPraktik = isset($petani?->skor) ? $petani?->skor->skor_d2_sistem_praktik_budidaya : null; - if (!is_null($skorPraktik)) { - if ($skorPraktik >= 4) { - $praktik = 'Menjalankan GAP (' . number_format($skorPraktik, 1, ',', '.') . ')'; - } else if ($skorPraktik >= 2) { - $praktik = 'Menjalankan sebagian GAP (' . number_format($skorPraktik, 1, ',', '.') . ')'; - } else { - $praktik = 'Belum menjalankan GAP (' . number_format($skorPraktik, 1, ',', '.') . ')'; - } - } - @endphp - @php - $produktivitas = isset($petani?->surveyProduktivitas) ? $petani?->surveyProduktivitas : null; - if (!is_null($produktivitas)) { - $produktivitas = $produktivitas->where('komoditas_id', $petani->komoditas_id); - } + $labelPraktik = match (true) { + is_null($skorPraktik) => null, + $skorPraktik >= 4 => 'Penuh GAP', + $skorPraktik >= 2 => 'Sebagian GAP', + default => 'Belum GAP', + }; @endphp

Praktik Budidaya

-
- @if($produktivitas && count($produktivitas) > 0) - {{ number_format($produktivitas->sum('kuantitas'), 0, ',', '.') }} - {{ $produktivitas->first()->satuan == 'ha_tahun' ? 'Ha/Tahun' : 'Pohon/Tahun' }} - @else - - - @endif -
+
{{ $labelPraktik ?? '-' }}

@if(!is_null($skorPraktik)) - {{ $praktik }} + Skor {{ number_format($skorPraktik, 1, ',', '.') }}/5 @else Belum terisi @endif @@ -241,13 +202,15 @@ $pendapatanKomoditas = isset($sosialEkonomi) ? $sosialEkonomi->pendapatanKomoditas : null; @endphp @php + $rekeningValue = $sosialEkonomi?->status_rekening_tabungan?->value; + $kreditValue = $sosialEkonomi?->pengalaman_kredit_kebun?->value; $ekonomi = null; - if ($sosialEkonomi?->status_rekening_tabungan && $sosialEkonomi?->pengalaman_kredit_kebun) { - if ($sosialEkonomi?->status_rekening_tabungan > 1 && $sosialEkonomi?->pengalaman_kredit_kebun > 3) { + if ($rekeningValue && $kreditValue) { + if ($rekeningValue > 1 && $kreditValue > 3) { $ekonomi = 'Memiliki rekening dan pengalaman kredit'; - } elseif ($sosialEkonomi?->status_rekening_tabungan > 1 && $sosialEkonomi?->pengalaman_kredit_kebun <= 3) { + } elseif ($rekeningValue > 1 && $kreditValue <= 3) { $ekonomi = 'Memiliki rekening'; - } elseif ($sosialEkonomi?->status_rekening_tabungan == 1 && $sosialEkonomi?->pengalaman_kredit_kebun > 3) { + } elseif ($rekeningValue == 1 && $kreditValue > 3) { $ekonomi = 'Memiliki pengalaman kredit'; } else { $ekonomi = 'Tidak memiliki akses keuangan'; @@ -257,9 +220,9 @@ } @endphp

- @if(!is_null($pendapatanKomoditas)) - {{ number_format($pendapatanKomoditas->sum('pendapatan'), 0, ',', '.') }} - pendapatan (Rp) + @if($pendapatanKomoditas && $pendapatanKomoditas->isNotEmpty()) + Rp {{ number_format($pendapatanKomoditas->sum('pendapatan'), 0, ',', '.') }} + /musim @else - @endif @@ -303,30 +266,35 @@ @endphp @php $pengalaman = null; - if(!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium)){ - if($aksesPasar->skor_pengalaman > 1){ - if ($aksesPasar->skor_kesadaran_premium == 5) { - $pengalaman = 'Akses saluran lain dan pasar premium'; - } else { - $pengalaman = 'Akses saluran lain'; - } - } else { - $pengalaman = 'Belum akses'; + if (!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium)) { + $pengalaman = match ($aksesPasar->skor_pengalaman) { + 1 => 'Belum pernah coba saluran lain', + 2 => 'Pernah, kini tidak ada akses', + 3 => 'Pernah, sempat berhenti', + 4 => 'Pernah, sesekali masih jual', + 5 => 'Pernah & masih punya akses', + default => null, + }; + + if (!is_null($pengalaman) && $aksesPasar->skor_kesadaran_premium == 5) { + $pengalaman .= ' · kenal pasar premium'; } } @endphp
@if(!is_null($hargaJual)) - {{ number_format($hargaJual->harga_panen_terakhir, 0, ',', '.') }} - {{ $hargaJual->bentuk_produk }} + Rp {{ number_format($hargaJual->harga_panen_terakhir, 0, ',', '.') }} @else - @endif
-

+

+ @if(!is_null($hargaJual)) + {{ $hargaJual->bentuk_produk }} + @endif @if(!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium)) - {{ $pengalaman }} - @else + {{ $hargaJual ? '·' : '' }} {{ $pengalaman }} + @elseif(is_null($hargaJual)) Belum terisi @endif