@extends('layouts.admin.master') @section('content') @php $keluargaAktif = $penduduk->keluargaAktif?->keluarga; $account = $penduduk->user; $dpt = $penduduk->dptTerdaftar; $bpjsStatusColors = [ 'active' => 'bg-success', 'inactive' => 'bg-danger', 'registered' => 'bg-primary', 'not_registered' => 'bg-secondary', 'pending_verification' => 'bg-warning text-dark', 'unknown' => 'bg-light text-dark', ]; $bpjsCheckColors = [ 'synced' => 'bg-success', 'pending_configuration' => 'bg-warning text-dark', 'local_profile_only' => 'bg-info text-dark', 'error' => 'bg-danger', ]; @endphp

{{ $penduduk->nama }}

{{ $penduduk->nomor_ktp ?: 'NIK belum diisi' }} {{ $penduduk->is_active ? 'Aktif' : 'Nonaktif' }} {{ $penduduk->status_verifikasi_data ?: 'Belum diverifikasi' }}

Master data individu untuk sinkronisasi akun, keluarga, DPT, dan riwayat verifikasi.

Kembali ke Daftar @if ($keluargaAktif) Buka Keluarga @elseif(auth_can('admin.penduduk.keluarga')) Cari Keluarga @endif @if (Route::has('member.profile')) Profil Lengkap @endif
@if (session('success'))
{{ session('success') }}
@endif
Akun Terhubung
{{ $summary['has_account'] ? 'Sudah' : 'Belum' }}
{{ $account?->email ?: 'Belum ada email login' }}
Sinkron DPT
{{ $summary['has_dpt'] ? 'Terhubung' : 'Belum' }}
{{ $dpt?->status_verifikasi ?: 'Belum ada tiket DPT' }}
Keluarga Aktif
{{ $summary['has_keluarga'] ? $keluargaAktif->nomor_kk : 'Belum terhubung' }}
{{ $penduduk->status_keluarga ?: 'Peran keluarga belum diisi' }}
Lampiran Master
{{ $summary['identity_count'] }} identitas | {{ $summary['document_count'] }} dokumen
Riwayat alamat {{ $penduduk->alamatRiwayats->count() }} entri
Ringkasan Master Individu

Form ini dipakai untuk data inti yang paling memengaruhi sinkronisasi keluarga dan DPT.

@csrf
@error('nomor_ktp')
{{ $message }}
@enderror
@error('nomor_kk')
{{ $message }}
@enderror
@error('nama')
{{ $message }}
@enderror
@error('tanggal_lahir')
{{ $message }}
@enderror
@error('email_pribadi')
{{ $message }}
@enderror
is_active))>
@csrf
Riwayat Alamat
@forelse ($penduduk->alamatRiwayats->sortByDesc('valid_from') as $riwayat) @empty @endforelse
JenisAlamatWilayahPeriode
{{ $riwayat->jenis_alamat }} {{ $riwayat->alamat ?: '-' }}
RT {{ $riwayat->rt ?: '-' }} / RW {{ $riwayat->rw ?: '-' }} | {{ $riwayat->kode_pos ?: '-' }}
{{ $riwayat->village?->name ?: '-' }}
{{ $riwayat->lingkungan?->name ?: ($riwayat->district?->name ?: '-') }}
{{ optional($riwayat->valid_from)->format('d M Y') ?: '-' }} - {{ optional($riwayat->valid_to)->format('d M Y') ?: 'Sekarang' }}
Belum ada riwayat alamat tersimpan.
Identitas Tambahan
@forelse ($penduduk->identitasLains as $identitas)
{{ $identitas->jenis_identitas }}
{{ $identitas->nomor }}
{{ $identitas->issued_by ?: '-' }} | {{ optional($identitas->issued_at)->format('d M Y') ?: '-' }} - {{ optional($identitas->expired_at)->format('d M Y') ?: 'Berlaku terus' }}
@empty
Belum ada identitas tambahan.
@endforelse
Dokumen
@forelse ($penduduk->dokumens as $dokumen)
{{ $dokumen->jenis_dokumen }}
{{ $dokumen->nomor_dokumen ?: '-' }}
{{ optional($dokumen->issued_at)->format('d M Y') ?: '-' }} - {{ optional($dokumen->expired_at)->format('d M Y') ?: 'Berlaku terus' }}
@empty
Belum ada dokumen terarsip.
@endforelse
Status Operasional
Wilayah saat ini
{{ $penduduk->village?->name ?: '-' }}{{ $penduduk->lingkungan?->name ? ', ' . $penduduk->lingkungan->name : '' }}
Sumber Data Awal
{{ $penduduk->sumber_data_awal ?: 'Belum ditandai' }}
ASN
@if ($penduduk->asn) {{ $penduduk->asn->nip ?? 'ASN' }} | {{ $penduduk->asn->organization?->short_name ?: $penduduk->asn->organization?->name ?: 'OPD belum dihubungkan' }} @else Belum ada data ASN @endif
Audit
Dibuat: {{ optional($penduduk->created_at)->format('d M Y H:i') ?: '-' }}
Diubah: {{ optional($penduduk->updated_at)->format('d M Y H:i') ?: '-' }}
Verifikasi: {{ optional($penduduk->verified_at)->format('d M Y H:i') ?: '-' }}
Akun & Integrasi
Akun Login
{{ $account?->username ?: 'Belum ada akun' }}
{{ $account?->email ?: 'Email akun belum ada' }}
@if ($account?->roles?->count())
@foreach ($account->roles as $role) {{ $role->name }} @endforeach
@endif
DPT
{{ $dpt?->status_verifikasi ?: 'Belum tersinkron' }}
{{ $dpt?->village_name ?: '-' }} {{ $dpt?->lingkungan_name ? '/ ' . $dpt->lingkungan_name : '' }}
Keluarga
{{ $keluargaAktif?->nomor_kk ?: 'Belum punya keluarga aktif' }}
{{ $keluargaAktif?->kepalaKeluarga?->nama ?: 'Kepala keluarga belum ditetapkan' }}
Data BPJS

Panel terpisah untuk menyimpan nomor peserta dan menjalankan cek BPJS langsung dari Master Individu.

{{ $bpjs_profile['check_status_label'] }}
BPJS Kesehatan
{{ $bpjs_profile['kesehatan']['status_label'] }}
{{ $bpjs_profile['kesehatan']['number'] ?: 'Belum ada nomor peserta' }}
Sumber data: {{ $bpjs_profile['kesehatan']['source_label'] }}
BPJS Ketenagakerjaan
{{ $bpjs_profile['ketenagakerjaan']['status_label'] }}
{{ $bpjs_profile['ketenagakerjaan']['number'] ?: 'Belum ada nomor peserta' }}
Sumber data: {{ $bpjs_profile['ketenagakerjaan']['source_label'] }}
Cek terakhir: {{ $bpjs_profile['checked_at'] ? $bpjs_profile['checked_at']->format('d M Y H:i') : 'Belum pernah dijalankan' }}. {{ $bpjs_profile['bridge_ready'] ? 'Bridge API BPJS siap dipakai.' : 'Bridge API BPJS belum dikonfigurasi; tombol cek akan membaca data master lokal lebih dulu.' }}
@if ($bpjs_profile['check_message'])
{{ $bpjs_profile['check_message'] }}
@endif
@csrf
@error('bpjs_kesehatan_number')
{{ $message }}
@enderror
@error('bpjs_kesehatan_status')
{{ $message }}
@enderror
@error('bpjs_ketenagakerjaan_number')
{{ $message }}
@enderror
@error('bpjs_ketenagakerjaan_status')
{{ $message }}
@enderror
@csrf
Tombol ini menjalankan pengecekan dari data master lokal, lalu otomatis mencoba bridge eksternal bila konfigurasi API BPJS sudah tersedia.
Verifikasi Admin
@csrf
Riwayat Verifikasi & Status
@forelse ($penduduk->verifikasis->sortByDesc('verified_at')->take(5) as $verifikasi)
{{ $verifikasi->jenis_verifikasi }}
{{ $verifikasi->status }}
{{ $verifikasi->verifier?->name ?: 'Sistem' }} | {{ optional($verifikasi->verified_at)->format('d M Y H:i') ?: '-' }}
@if ($verifikasi->catatan)
{{ $verifikasi->catatan }}
@endif
@empty
Belum ada riwayat verifikasi.
@endforelse
@forelse ($penduduk->statusRiwayats->sortByDesc('tanggal_efektif')->take(5) as $riwayatStatus)
{{ $riwayatStatus->status_lama ?: '-' }} -> {{ $riwayatStatus->status_baru ?: '-' }}
{{ optional($riwayatStatus->tanggal_efektif)->format('d M Y') ?: '-' }}
@empty
Belum ada riwayat perubahan status.
@endforelse
@endsection