Update Header Pertanian

This commit is contained in:
2026-09-22 15:12:32 +07:00
parent 607533a327
commit 1155b9b95b
@@ -66,33 +66,11 @@
<div class="col-md-8 d-flex flex-column"> <div class="col-md-8 d-flex flex-column">
@php @php
$skorLahanTanaman = isset($petani) ? $petani->skorLahanTanaman() : null; $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') $lahanPetani = isset($petani) && \Illuminate\Support\Facades\Schema::hasTable('map_lahan')
? $petani->lahans()->get() ? $petani->lahans()->get()
: collect(); : collect();
$totalLuasLahan = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->sum('luas_lahan') : 0; $totalLuasLahanHa = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->sum('luas_lahan') : 0;
$totalLuasLahanHa = $totalLuasLahan / 10000;
$lahanKomoditasUtamaIds = $petani $lahanKomoditasUtamaIds = $petani
? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->pluck('id') ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->pluck('id')
: collect(); : collect();
@@ -100,7 +78,6 @@
? \App\Models\Pertanian\Tanaman::whereIn('lahan_id', $lahanKomoditasUtamaIds)->count() ? \App\Models\Pertanian\Tanaman::whereIn('lahan_id', $lahanKomoditasUtamaIds)->count()
: 0; : 0;
$pendidikanLabel = isset($petani) ? $petani->pendidikan_terakhir?->label() : null; $pendidikanLabel = isset($petani) ? $petani->pendidikan_terakhir?->label() : null;
@endphp @endphp
<div class="card mb-2 flex-grow-1"> <div class="card mb-2 flex-grow-1">
@@ -112,8 +89,8 @@
<p class="mb-0 text-muted" style="font-size: 0.75rem;">Segmen Petani</p> <p class="mb-0 text-muted" style="font-size: 0.75rem;">Segmen Petani</p>
<h5 class="mb-0">{{ $petani?->segmen() ?? '-' }}</h5> <h5 class="mb-0">{{ $petani?->segmen() ?? '-' }}</h5>
<p class="mb-0" style="font-size: 0.75rem;"> <p class="mb-0" style="font-size: 0.75rem;">
@if(!is_null($petani?->skor)) @if(!is_null($petani?->skor?->skor_kesiapan_adopsi))
<span class="me-1">Skor {{ number_format($petani?->skor->skor_kesiapan_adopsi, 1) }}</span> <span class="me-1">Skor {{ number_format($petani->skor->skor_kesiapan_adopsi, 1, ',', '.') }}/5</span>
@else @else
<span class="me-1">Belum terisi</span> <span class="me-1">Belum terisi</span>
@endif @endif
@@ -187,35 +164,19 @@
<div class="d-flex justify-content-between align-items-center card-widget-1 border-end h-100 pe-3"> <div class="d-flex justify-content-between align-items-center card-widget-1 border-end h-100 pe-3">
@php @php
$skorPraktik = isset($petani?->skor) ? $petani?->skor->skor_d2_sistem_praktik_budidaya : null; $skorPraktik = isset($petani?->skor) ? $petani?->skor->skor_d2_sistem_praktik_budidaya : null;
if (!is_null($skorPraktik)) { $labelPraktik = match (true) {
if ($skorPraktik >= 4) { is_null($skorPraktik) => null,
$praktik = 'Menjalankan GAP (' . number_format($skorPraktik, 1, ',', '.') . ')'; $skorPraktik >= 4 => 'Penuh GAP',
} else if ($skorPraktik >= 2) { $skorPraktik >= 2 => 'Sebagian GAP',
$praktik = 'Menjalankan sebagian GAP (' . number_format($skorPraktik, 1, ',', '.') . ')'; default => 'Belum GAP',
} 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);
}
@endphp @endphp
<div> <div>
<p class="mb-0 text-muted" style="font-size: 0.75rem;">Praktik Budidaya</p> <p class="mb-0 text-muted" style="font-size: 0.75rem;">Praktik Budidaya</p>
<h5 class="mb-0"> <h5 class="mb-0">{{ $labelPraktik ?? '-' }}</h5>
@if($produktivitas && count($produktivitas) > 0)
{{ number_format($produktivitas->sum('kuantitas'), 0, ',', '.') }}
<small>{{ $produktivitas->first()->satuan == 'ha_tahun' ? 'Ha/Tahun' : 'Pohon/Tahun' }}</small>
@else
-
@endif
</h5>
<p class="mb-0" style="font-size: 0.75rem;"> <p class="mb-0" style="font-size: 0.75rem;">
@if(!is_null($skorPraktik)) @if(!is_null($skorPraktik))
<span class="me-1">{{ $praktik }}</span> <span class="me-1">Skor {{ number_format($skorPraktik, 1, ',', '.') }}/5</span>
@else @else
<span class="me-1">Belum terisi</span> <span class="me-1">Belum terisi</span>
@endif @endif
@@ -241,13 +202,15 @@
$pendapatanKomoditas = isset($sosialEkonomi) ? $sosialEkonomi->pendapatanKomoditas : null; $pendapatanKomoditas = isset($sosialEkonomi) ? $sosialEkonomi->pendapatanKomoditas : null;
@endphp @endphp
@php @php
$rekeningValue = $sosialEkonomi?->status_rekening_tabungan?->value;
$kreditValue = $sosialEkonomi?->pengalaman_kredit_kebun?->value;
$ekonomi = null; $ekonomi = null;
if ($sosialEkonomi?->status_rekening_tabungan && $sosialEkonomi?->pengalaman_kredit_kebun) { if ($rekeningValue && $kreditValue) {
if ($sosialEkonomi?->status_rekening_tabungan > 1 && $sosialEkonomi?->pengalaman_kredit_kebun > 3) { if ($rekeningValue > 1 && $kreditValue > 3) {
$ekonomi = 'Memiliki rekening dan pengalaman kredit'; $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'; $ekonomi = 'Memiliki rekening';
} elseif ($sosialEkonomi?->status_rekening_tabungan == 1 && $sosialEkonomi?->pengalaman_kredit_kebun > 3) { } elseif ($rekeningValue == 1 && $kreditValue > 3) {
$ekonomi = 'Memiliki pengalaman kredit'; $ekonomi = 'Memiliki pengalaman kredit';
} else { } else {
$ekonomi = 'Tidak memiliki akses keuangan'; $ekonomi = 'Tidak memiliki akses keuangan';
@@ -257,9 +220,9 @@
} }
@endphp @endphp
<h5 class="mb-0"> <h5 class="mb-0">
@if(!is_null($pendapatanKomoditas)) @if($pendapatanKomoditas && $pendapatanKomoditas->isNotEmpty())
{{ number_format($pendapatanKomoditas->sum('pendapatan'), 0, ',', '.') }} Rp {{ number_format($pendapatanKomoditas->sum('pendapatan'), 0, ',', '.') }}
<small>pendapatan (Rp)</small> <small>/musim</small>
@else @else
- -
@endif @endif
@@ -304,29 +267,34 @@
@php @php
$pengalaman = null; $pengalaman = null;
if (!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium)) { if (!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium)) {
if($aksesPasar->skor_pengalaman > 1){ $pengalaman = match ($aksesPasar->skor_pengalaman) {
if ($aksesPasar->skor_kesadaran_premium == 5) { 1 => 'Belum pernah coba saluran lain',
$pengalaman = 'Akses saluran lain dan pasar premium'; 2 => 'Pernah, kini tidak ada akses',
} else { 3 => 'Pernah, sempat berhenti',
$pengalaman = 'Akses saluran lain'; 4 => 'Pernah, sesekali masih jual',
} 5 => 'Pernah & masih punya akses',
} else { default => null,
$pengalaman = 'Belum akses'; };
if (!is_null($pengalaman) && $aksesPasar->skor_kesadaran_premium == 5) {
$pengalaman .= ' · kenal pasar premium';
} }
} }
@endphp @endphp
<h5 class="mb-0"> <h5 class="mb-0">
@if(!is_null($hargaJual)) @if(!is_null($hargaJual))
{{ number_format($hargaJual->harga_panen_terakhir, 0, ',', '.') }} Rp {{ number_format($hargaJual->harga_panen_terakhir, 0, ',', '.') }}
<small>{{ $hargaJual->bentuk_produk }}</small>
@else @else
- -
@endif @endif
</h5> </h5>
<p class="mb-0" style="font-size: 0.75rem;"> <p class="mb-0 text-truncate" style="font-size: 0.75rem;" title="{{ $hargaJual?->bentuk_produk }} — {{ $pengalaman }}">
@if(!is_null($hargaJual))
<span class="me-1">{{ $hargaJual->bentuk_produk }}</span>
@endif
@if(!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium)) @if(!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium))
<span class="me-1">{{ $pengalaman }}</span> <span class="me-1">{{ $hargaJual ? '·' : '' }} {{ $pengalaman }}</span>
@else @elseif(is_null($hargaJual))
<span class="me-1">Belum terisi</span> <span class="me-1">Belum terisi</span>
@endif @endif
</p> </p>