Detail Calon Penerima

Informasi lengkap & hasil prediksi kelayakan.

Kembali
@php $prediksi = $calonPenerima->prediksiKelayakan; $prob = 0; $label = null; if ($prediksi) { $prob = $prediksi->probability <= 1 ? round($prediksi->probability * 100) : round($prediksi->probability); $label = $prediksi->recommendation; // 'Layak' atau 'Tidak Layak' } $isLayak = $label === 'Layak'; $ringColor = $isLayak ? '#22c55e' : ($label ? '#ef4444' : '#d1d5db'); $r = 28; $circ = round(2 * M_PI * $r, 2); $fill = round($circ * $prob / 100, 2); $gap = $circ - $fill; $currentStatus = $calonPenerima->tracking_status ?? 'draft'; @endphp {{-- HERO --}}
{{ strtoupper(substr($calonPenerima->nama_lengkap, 0, 1)) }}
{{ $calonPenerima->nama_lengkap }}
NIK: {{ $calonPenerima->nik }}
{{ ucfirst($currentStatus) }}
@if($prediksi)
{{ $prob }}%
probabilitas
@if($isLayak) ● Layak @else ● Tidak Layak @endif
@else
Belum diprediksi
@endif
{{-- ACTION BUTTONS --}}
@if($currentStatus === 'draft') Edit Data
@csrf
@endif
{{-- MAIN LAYOUT --}}
{{-- ═══ KOLOM KIRI ═══ --}}
{{-- IDENTITAS --}}
Identitas
No. KK
{{ $calonPenerima->no_kk }}
Jenis Kelamin
{{ $calonPenerima->jenis_kelamin }}
Tempat Lahir
{{ $calonPenerima->tempat_lahir }}
Tanggal Lahir
{{ \Carbon\Carbon::parse($calonPenerima->tanggal_lahir)->translatedFormat('d F Y') }}
Usia
{{ $calonPenerima->usia }} tahun
Status Kawin
{{ $calonPenerima->status_perkawinan }}
{{-- TEMPAT TINGGAL --}}
Tempat Tinggal
Alamat
{{ $calonPenerima->alamat }}
Dusun
{{ $calonPenerima->desa }}
RT
RT {{ str_pad($calonPenerima->rt->nomor_rt ?? '?', 3, '0', STR_PAD_LEFT) }}
Aset Kepemilikan
{{ $calonPenerima->aset_kepemilikan ?? '-' }}
Lantai
{{ $calonPenerima->lantai_rumah }}
Dinding
{{ $calonPenerima->dinding_rumah }}
Atap
{{ $calonPenerima->atap_rumah }}
Luas Rumah
{{ $calonPenerima->luas_rumah_m2 }} m²
Status Kepemilikan
{{ $calonPenerima->status_kepemilikan_rumah }}
Meteran Listrik
{{ $calonPenerima->meteran_listrik }}
Sumber Air
{{ $calonPenerima->sumber_air }}
{{-- DATA EKONOMI --}}
Data Ekonomi
Pekerjaan
{{ $calonPenerima->pekerjaan }}
Penghasilan
Rp {{ number_format($calonPenerima->penghasilan, 0, ',', '.') }}
Tanggungan
{{ $calonPenerima->jumlah_tanggungan }} orang
Bantuan Lain
@if($calonPenerima->bantuan_lain === 'ya') Ya @else Tidak @endif
{{-- FOTO & DOKUMEN --}}
Foto & Dokumen
@php $fotoFields = [ 'foto_rumah_depan' => 'Rumah Depan', 'foto_rumah_belakang' => 'Rumah Belakang', 'foto_rumah_kanan' => 'Rumah Kanan', 'foto_rumah_kiri' => 'Rumah Kiri', 'foto_kk' => 'Foto KK', 'foto_ktp' => 'Foto KTP', 'foto_rekening_listrik' => 'Rekening Listrik', 'foto_meteran_air' => 'Meteran Air', ]; @endphp
@foreach($fotoFields as $field => $label)
$field) onclick="openFoto('{{ asset('storage/' . $calonPenerima->$field) }}')" @endif> @if($calonPenerima->$field) {{ $label }} @else
Belum ada
@endif
{{ $label }}
@endforeach
@if($calonPenerima->dokumen_pendukung) @endif
{{-- TRACKING PENGAJUAN --}}
Tracking Pengajuan
@php $steps = [ 'draft' => ['label' => 'Data dibuat RT', 'desc' => 'Data masih bisa diubah dan dihapus sebelum diajukan.'], 'terkirim' => ['label' => 'Data diajukan ke kelurahan', 'desc' => 'Menunggu tindakan RT untuk mengajukan data.'], 'validasi' => ['label' => 'Proses validasi & filterisasi','desc' => 'Menunggu admin memulai proses validasi.'], 'final' => ['label' => 'Hasil akhir ditetapkan', 'desc' => 'Menunggu hasil akhir dari admin perangkat desa.'], ]; $statusOrder = array_keys($steps); $currentIndex = array_search($currentStatus, $statusOrder) ?? 0; @endphp @foreach($steps as $key => $step) @php $stepIndex = array_search($key, $statusOrder); $isDone = $stepIndex < $currentIndex; $isActive = $stepIndex === $currentIndex; @endphp
@if($isDone) @else {{ $stepIndex + 1 }} @endif
@if(!$loop->last)
@endif
{{ $step['label'] }}
{{ $step['desc'] }}
@endforeach
{{-- STATUS PENGAJUAN --}}
Status Pengajuan
@php $statusMap = [ 'draft' => ['bg' => 'bg-yellow-100', 'text' => 'text-yellow-700', 'dot' => 'bg-yellow-400', 'label' => 'Draft'], 'terkirim' => ['bg' => 'bg-blue-100', 'text' => 'text-blue-700', 'dot' => 'bg-blue-400', 'label' => 'Diajukan'], 'validasi' => ['bg' => 'bg-purple-100', 'text' => 'text-purple-700', 'dot' => 'bg-purple-400', 'label' => 'Validasi'], 'final' => ['bg' => 'bg-green-100', 'text' => 'text-green-700', 'dot' => 'bg-green-400', 'label' => 'Final'], ]; $s = $statusMap[$currentStatus] ?? $statusMap['draft']; @endphp {{ $s['label'] }}
Dibuat {{ $calonPenerima->created_at->translatedFormat('d M Y, H:i') }}
Diperbarui {{ $calonPenerima->updated_at->translatedFormat('d M Y, H:i') }}
{{-- end kolom kiri --}} {{-- ═══ KOLOM KANAN: PREDIKSI ═══ --}}
Prediksi Kelayakan
{{-- Donut --}}
{{ $prob }}%
Rekomendasi
@if($prediksi) @if($isLayak) Layak @else Tidak Layak @endif @else Belum diprediksi @endif
{{-- Faktor Pendukung --}} @if(!empty($explanation['positive']))
Faktor Pendukung
@foreach($explanation['positive'] as $f)
{{ $f }}
@endforeach
@endif {{-- Faktor Pengurang --}} @if(!empty($explanation['negative']))
Faktor Pengurang
@foreach($explanation['negative'] as $f)
{{ $f }}
@endforeach
@endif {{-- Penjelasan Lengkap — selalu terbuka --}}
Penjelasan Lengkap
@php $penjelasanRows = [ 'Pekerjaan' => $calonPenerima->pekerjaan, 'Penghasilan' => 'Rp ' . number_format($calonPenerima->penghasilan, 0, ',', '.'), 'Tanggungan' => $calonPenerima->jumlah_tanggungan . ' orang', 'Aset' => $calonPenerima->aset_kepemilikan ?? '-', 'Bantuan Lain' => ucfirst($calonPenerima->bantuan_lain), 'Usia' => $calonPenerima->usia . ' tahun', 'Kondisi Rumah' => ($calonPenerima->kondisi_rumah ?? '-'), 'Meteran Listrik' => $calonPenerima->meteran_listrik, 'Sumber Air' => $calonPenerima->sumber_air, ]; @endphp @foreach($penjelasanRows as $k => $v)
{{ $k }} {{ $v }}
@endforeach
{{-- Ringkasan --}} @if(!empty($explanation['summary']))
Ringkasan

{{ $explanation['summary'] }}

@endif
{{-- ZONA BAHAYA --}} @if($currentStatus === 'draft')
Zona Bahaya

Hapus data ini secara permanen. Tindakan ini tidak dapat dibatalkan.

@csrf @method('DELETE')
@endif
{{-- LIGHTBOX --}}