@if($statusData)
@php
$pred = $statusData->prediksiKelayakan;
$final = $penerimaFinal ?? null; // dari controller, bukan relasi langsung
// Sudah ditetapkan jika ada record di penerima_finals
$sudahDitetapkan = !is_null($final);
// Status layak/tidak dari prediksi
$rekStr = strtolower($pred->recommendation ?? $pred->status ?? $pred->rekomendasi ?? '');
$isLayak = $pred && in_array($rekStr, ['layak', 'ya', 'yes', '1', 'true']);
// Kalau ada field status di PenerimaFinal, override
// Kalau ada field status di PenerimaFinal, override
if ($sudahDitetapkan && isset($final->status)) {
$isLayak = in_array(strtolower($final->status), ['layak', 'diterima', 'ya', '1', 'disetujui']);
}
$cardClass = $sudahDitetapkan ? ($isLayak ? 'layak' : 'tidak') : 'pending';
$icon = $sudahDitetapkan ? ($isLayak ? '✅' : '❌') : '⏳';
$statusStr = $isLayak ? 'LAYAK' : 'TIDAK LAYAK';
// Probabilitas (0–100)
$probRaw = (float)($pred->probability ?? $pred->prob ?? $pred->skor_kelayakan ?? 0);
$probPct = min(100, max(0, $probRaw > 1 ? $probRaw : $probRaw * 100));
$hasExpl = !empty($explanation['positive']) || !empty($explanation['negative']) || !empty($explanation['summary']);
// Usia dari tanggal_lahir jika field usia kosong
$usia = $statusData->usia ?? ($statusData->tanggal_lahir
? \Carbon\Carbon::parse($statusData->tanggal_lahir)->age
: null);
@endphp
{{-- Header identitas --}}
{{-- Status badge --}}
@if($sudahDitetapkan)
{{ $isLayak ? '✔' : '✖' }} {{ $statusStr }} MENERIMA BLT-DD
@else
⏳ MENUNGGU PENETAPAN perangkat desa
@endif
{{-- ══════════════════════════════
SEBELUM PENETAPAN → Tracking
══════════════════════════════ --}}
@if(!$sudahDitetapkan)
{{-- Info dasar yang tetap boleh ditampilkan --}}
@if($statusData->rt)
RT
RT {{ $statusData->rt->nama_rt ?? '-' }}
@endif
@if($statusData->rt?->dusun)
Dusun
{{ $statusData->rt->dusun->nama_dusun ?? '-' }}
@endif
✓
Data Terdaftar
Data Anda telah tercatat dalam sistem desa
✓
Verifikasi & Analisis Sistem
Data telah diverifikasi dan dianalisis kelayakannya
→
Menunggu Penetapan perangkat desa
Perangkat Desa sedang melakukan penetapan penerima resmi
4
Penetapan Resmi & Pengumuman
Hasil akhir dan detail penilaian akan ditampilkan di sini
ℹ️ Detail belum tersedia.
Hasil penilaian lengkap akan muncul setelah pihak pearangkat desa menyelesaikan proses penetapan resmi.
Silakan cek kembali secara berkala atau tanyakan langsung ke kantor desa.
{{-- ══════════════════════════════
SETELAH PENETAPAN → Detail (REVISI: data sensitif disembunyikan)
══════════════════════════════ --}}
@else
{{-- Identitas dasar saja --}}
@if($statusData->rt)
RT
RT {{ str_pad($statusData->rt->nomor_rt ?? '-', 3, '0', STR_PAD_LEFT) }}
@endif
@if($statusData->rt?->dusun)
Dusun
{{ $statusData->rt->dusun->nama_dusun ?? '-' }}
@endif
@if($statusData->jenis_kelamin)
Jenis Kelamin
{{ $statusData->jenis_kelamin }}
@endif
@if($usia)
@endif
@if($statusData->alamat)
Alamat
{{ $statusData->alamat }}
@endif
{{-- Generate faktor pendukung & pengurang dari data CalonPenerima --}}
@php
$faktPos = $explanation['positive'] ?? [];
$faktNeg = $explanation['negative'] ?? [];
if (empty($faktPos) && empty($faktNeg)) {
$cp = $statusData;
$pekerjaan = strtolower(trim($cp->pekerjaan ?? ''));
if (in_array($pekerjaan, ['tidak bekerja','tidak ada','tidak','','—','-'])) {
$faktPos[] = 'Tidak bekerja / tidak memiliki penghasilan tetap';
} elseif (in_array($pekerjaan, ['petani','buruh','nelayan','pemulung','pedagang kecil','kuli'])) {
$faktPos[] = 'Pekerjaan termasuk kategori rentan (' . ucfirst($pekerjaan) . ')';
} else {
$faktNeg[] = 'Memiliki pekerjaan (' . ucfirst($cp->pekerjaan ?? '-') . ')';
}
$ph = (float)($cp->penghasilan ?? 0);
if ($ph == 0) {
$faktPos[] = 'Penghasilan Rp 0 — tidak ada sumber pendapatan';
} elseif ($ph < 500000) {
$faktPos[] = 'Penghasilan sangat rendah (Rp ' . number_format($ph,0,',','.') . '/bulan)';
} elseif ($ph < 1500000) {
$faktPos[] = 'Penghasilan di bawah UMR (Rp ' . number_format($ph,0,',','.') . '/bulan)';
} else {
$faktNeg[] = 'Penghasilan cukup (Rp ' . number_format($ph,0,',','.') . '/bulan)';
}
$tang = (int)($cp->jumlah_tanggungan ?? 0);
if ($tang >= 4) {
$faktPos[] = 'Jumlah tanggungan banyak (' . $tang . ' orang)';
} elseif ($tang >= 2) {
$faktPos[] = 'Memiliki ' . $tang . ' orang tanggungan';
} else {
$faktNeg[] = 'Tanggungan sedikit (' . $tang . ' orang)';
}
$aset = strtolower(trim($cp->aset_kepemilikan ?? ''));
if (in_array($aset, ['tidak punya','tidak ada','tidak','','—','-'])) {
$faktPos[] = 'Tidak memiliki aset kepemilikan berarti';
} else {
$faktNeg[] = 'Memiliki aset kepemilikan (' . ucfirst($cp->aset_kepemilikan ?? '-') . ')';
}
$bantuan = strtolower(trim($cp->bantuan_lain ?? ''));
if (in_array($bantuan, ['tidak','tidak ada','','—','-'])) {
$faktPos[] = 'Belum menerima bantuan sosial lain';
} else {
$faktNeg[] = 'Sudah menerima bantuan lain (' . $cp->bantuan_lain . ')';
}
if ($usia !== null) {
if ($usia >= 60) {
$faktPos[] = 'Usia lanjut (' . $usia . ' tahun) — masuk prioritas penerima';
} elseif ($usia >= 50) {
$faktPos[] = 'Usia ' . $usia . ' tahun (kelompok rentan)';
}
}
$kondisi = strtolower(trim($cp->kondisi_rumah ?? ''));
if (in_array($kondisi, ['tidak layak','buruk','rusak berat','sangat buruk'])) {
$faktPos[] = 'Kondisi rumah tidak layak huni';
} elseif (!empty($kondisi) && !in_array($kondisi, ['-','—',''])) {
$faktNeg[] = 'Kondisi rumah ' . ucfirst($kondisi);
}
$meteran = strtolower(trim($cp->meteran_listrik ?? ''));
if (str_contains($meteran, '450')) {
$faktPos[] = 'Meteran listrik 450VA (golongan sangat miskin)';
} elseif (str_contains($meteran, '900')) {
$faktPos[] = 'Meteran listrik 900VA (golongan miskin/subsidi)';
} elseif (!empty($meteran) && !in_array($meteran, ['-','—',''])) {
$faktNeg[] = 'Meteran listrik ' . strtoupper($cp->meteran_listrik) . ' (di atas subsidi)';
}
$air = strtolower(trim($cp->sumber_air ?? ''));
if (in_array($air, ['sumur','sungai','mata air','tadah hujan','sumur gali'])) {
$faktPos[] = 'Sumber air ' . ucfirst($air) . ' (bukan PDAM/perpipaan)';
} elseif (!empty($air) && !in_array($air, ['-','—',''])) {
$faktNeg[] = 'Sumber air ' . ucfirst($air);
}
}
@endphp
{{-- Faktor Pengurang — hanya tampil kalau TIDAK layak --}}
@if(!$isLayak)
Faktor Pengurang / Penolak
@if(count($faktNeg) > 0)
@foreach($faktNeg as $item)
- ❌{{ $item }}
@endforeach
@else
Tidak ada faktor pengurang yang teridentifikasi.
@endif
@endif
{{-- Ringkasan --}}
Ringkasan Keputusan
💬 Berdasarkan analisis, {{ $statusData->nama_lengkap ?? 'warga ini' }}
dinyatakan {{ $statusStr }} menerima BLT Dana Desa
dengan probabilitas kelayakan {{ number_format($probPct, 1) }}%.
@if($isLayak)
Penetapan ini didasarkan pada kondisi sosial dan ekonomi yang tercatat dalam data pengajuan.
Bantuan akan disalurkan sesuai jadwal pencairan yang ditetapkan oleh pihak desa.
@else
@if(!empty($faktNeg))
Hal ini disebabkan oleh beberapa faktor pengurang, yaitu:
{{ implode(', ', array_map('lcfirst', $faktNeg)) }}.
@endif
Untuk informasi lebih lanjut atau keberatan, silakan hubungi petugas desa.
@endif
{{-- Tanggal penetapan --}}
@if($final && $final->created_at)
Ditetapkan pada: {{ \Carbon\Carbon::parse($final->created_at)->translatedFormat('d F Y') }}
@endif
{{-- Catatan privasi --}}
🔒
Detail penilaian bersifat rahasia dan hanya dapat diakses oleh petugas perangkat desa yang berwenang. Kebijakan ini diterapkan untuk menjaga privasi dan keharmonisan antar warga.
@endif{{-- /sudahDitetapkan --}}