{{-- ================================================================================================= FILE : resources/views/anggota/edit.blade.php MODUL : Edit Anggota TAHUN : 2026 FUNGSI: - Form edit anggota. - Menampilkan data lama dengan benar. - Kompatibel snake_case dan legacy pada object $anggota. - Dropdown wilayah dinamis + preload pilihan dari controller. - Lock wilayah sesuai role user login. - Role mengikuti allowedRoles dari controller. - No Kartu Anggota hanya tampil untuk role tertentu dan lock sekali isi. CATATAN: - View ini memakai nama input snake_case agar konsisten dengan create.blade.php. - Controller update() tetap aman karena mendukung snake_case dan legacy. ================================================================================================= --}} @extends('layouts.dashboard') @section('title', 'Edit Anggota') @section('pagetitle', 'Edit Anggota HNSI 2026') @push('styles') @endpush @section('content') @php $anggotaId = $anggota->anggota_id ?? ($anggota->anggotaid ?? ($anggota->id ?? null)); $valNama = $anggota->nama_lengkap ?? ($anggota->namalengkap ?? ''); $valAgama = $anggota->id_agama ?? ($anggota->idagama ?? null); $valPendidikan = $anggota->pendidikan_id ?? ($anggota->pendidikanid ?? null); $valStatus = $anggota->id_status ?? ($anggota->idstatus ?? null); $valJabatan = $anggota->jabatan_id ?? ($anggota->jabatanid ?? null); $rawTgl = $anggota->tanggal_lahir ?? ($anggota->tanggallahir ?? null); try { $valTgl = $rawTgl ? \Carbon\Carbon::parse($rawTgl)->format('Y-m-d') : ''; } catch (\Throwable $e) { $valTgl = ''; } $valJK = $anggota->jenis_kelamin ?? ($anggota->jeniskelamin ?? null); $valNoWa = $anggota->nomor_wa ?? ($anggota->nomorwa ?? null); $valEmail = $anggota->email ?? null; $valStatusOrg = $anggota->status_organisasi ?? ($anggota->statusorganisasi ?? null); $valProv = old('alamat_provinsi_id', old('alamatprovinsiid', $anggota->alamat_provinsi_id ?? ($anggota->alamatprovinsiid ?? null))); $valKota = old('alamat_kota_id', old('alamatkotaid', $anggota->alamat_kota_id ?? ($anggota->alamatkotaid ?? null))); $valKec = old('alamat_kecamatan_id', old('alamatkecamatanid', $anggota->alamat_kecamatan_id ?? ($anggota->alamatkecamatanid ?? null))); $valDesa = old('alamat_desa_id', old('alamatdesaid', $anggota->alamat_desa_id ?? ($anggota->alamatdesaid ?? null))); $valDetailAlamat = $anggota->detail_alamat ?? ($anggota->detailalamat ?? ''); $valStatusRumah = $anggota->status_rumah ?? ($anggota->statusrumah ?? null); $valKondisiRumah = $anggota->kondisi_rumah ?? ($anggota->kondisirumah ?? null); $valStatusTanah = $anggota->status_tanah_pekarangan ?? ($anggota->statustanahpekarangan ?? null); $valListrik = $anggota->akses_listrik ?? ($anggota->akseslistrik ?? null); $valAir = $anggota->akses_air_bersih ?? ($anggota->aksesairbersih ?? null); $valSanitasi = $anggota->sanitasi ?? null; $valBpjsKes = $anggota->bpjs_kesehatan ?? ($anggota->bpjskesehatan ?? null); $valBpjsKet = $anggota->bpjs_ketenagakerjaan ?? ($anggota->bpjsketenagakerjaan ?? null); $valAsNelayan = $anggota->asuransi_nelayan ?? ($anggota->asuransinelayan ?? null); $valRiwayat = $anggota->riwayat_penyakit_kecelakaan ?? ($anggota->riwayatpenyakitkecelakaan ?? null); $valKoperasi = $anggota->keanggotaan_koperasi ?? ($anggota->keanggotaankoperasi ?? null); $valKusuka = $anggota->kartu_kusuka ?? ($anggota->kartukusuka ?? 'T'); $roleLoginRaw = strtolower(trim((string)(auth()->user()->role ?? ''))); $roleAliasMap = [ 'joudie' => 'joudie', 'superadmin' => 'superadmin', 'super_admin' => 'superadmin', 'dpp' => 'dpp', 'dpd_pengurus' => 'dpd_pengurus', 'dpdpengurus' => 'dpd_pengurus', 'dpd_operator' => 'dpd_operator', 'dpdoperator' => 'dpd_operator', 'opr_dpd' => 'dpd_operator', 'operator_dpd' => 'dpd_operator', 'dpc_pengurus' => 'dpc_pengurus', 'dpcpengurus' => 'dpc_pengurus', 'dpc_operator' => 'dpc_operator', 'dpcoperator' => 'dpc_operator', 'opr_dpc' => 'dpc_operator', 'operator_dpc' => 'dpc_operator', 'ranting_pengurus' => 'ranting_pengurus', 'rantingpengurus' => 'ranting_pengurus', 'ranting_operator' => 'ranting_operator', 'rantingoperator' => 'ranting_operator', 'opr_ranting' => 'ranting_operator', 'operator_ranting' => 'ranting_operator', 'opr_rtg' => 'ranting_operator', 'anggota' => 'anggota', ]; $roleLogin = $roleAliasMap[$roleLoginRaw] ?? $roleLoginRaw; $targetRoleRaw = strtolower(trim((string)($anggota->role ?? 'anggota'))); $targetRole = $roleAliasMap[$targetRoleRaw] ?? $targetRoleRaw; $canEditNoKartu = in_array($roleLogin, ['joudie', 'superadmin', 'dpp'], true); $valNoKartuAnggota = $anggota->no_kartu_anggota ?? ($anggota->nokartuanggota ?? null); $noKartuKosong = is_null($valNoKartuAnggota) || trim((string)$valNoKartuAnggota) === ''; $roleLabels = [ 'joudie' => 'Joudie', 'superadmin' => 'Superadmin', 'dpp' => 'DPP', 'dpd_pengurus' => 'DPD Pengurus', 'dpd_operator' => 'DPD Operator', 'dpc_pengurus' => 'DPC Pengurus', 'dpc_operator' => 'DPC Operator', 'ranting_pengurus' => 'Ranting Pengurus', 'ranting_operator' => 'Ranting Operator', 'anggota' => 'Anggota', ]; $selectedRole = old('role', $targetRole); $lockProv = in_array($roleLogin, ['dpd_pengurus','dpd_operator','dpc_pengurus','dpc_operator','ranting_pengurus','ranting_operator','anggota'], true); $lockKota = in_array($roleLogin, ['dpc_pengurus','dpc_operator','ranting_pengurus','ranting_operator','anggota'], true); $lockKec = in_array($roleLogin, ['ranting_pengurus','ranting_operator','anggota'], true); $lockDesa = in_array($roleLogin, ['anggota'], true); @endphp
Edit Data Anggota

Perbarui informasi anggota HNSI 2026 dengan data yang akurat.

@if ($errors->any())
Terdapat kesalahan input:
    @foreach ($errors->all() as $err)
  • {{ $err }}
  • @endforeach
@endif
@csrf @method('PUT')
Identitas Utama
@error('nik')
{{ $message }}
@enderror
@error('nama_lengkap')
{{ $message }}
@enderror @error('namalengkap')
{{ $message }}
@enderror
Data Pribadi
@error('tanggal_lahir')
{{ $message }}
@enderror @error('tanggallahir')
{{ $message }}
@enderror
@error('jenis_kelamin')
{{ $message }}
@enderror @error('jeniskelamin')
{{ $message }}
@enderror
@error('id_agama')
{{ $message }}
@enderror @error('idagama')
{{ $message }}
@enderror
@error('pendidikan_id')
{{ $message }}
@enderror @error('pendidikanid')
{{ $message }}
@enderror
@error('nomor_wa')
{{ $message }}
@enderror @error('nomorwa')
{{ $message }}
@enderror
@error('email')
{{ $message }}
@enderror
Status & Organisasi
@error('id_status')
{{ $message }}
@enderror @error('idstatus')
{{ $message }}
@enderror
@error('jabatan_id')
{{ $message }}
@enderror @error('jabatanid')
{{ $message }}
@enderror
@error('status_organisasi')
{{ $message }}
@enderror @error('statusorganisasi')
{{ $message }}
@enderror
Wilayah Domisili
@if ($lockProv) @endif @error('alamat_provinsi_id')
{{ $message }}
@enderror @error('alamatprovinsiid')
{{ $message }}
@enderror @if ($lockProv)
Provinsi dikunci sesuai wilayah user login.
@endif
@if ($lockKota) @endif @error('alamat_kota_id')
{{ $message }}
@enderror @error('alamatkotaid')
{{ $message }}
@enderror @if ($lockKota)
Kabupaten / kota dikunci sesuai wilayah user login.
@endif
@if ($lockKec) @endif @error('alamat_kecamatan_id')
{{ $message }}
@enderror @error('alamatkecamatanid')
{{ $message }}
@enderror @if ($lockKec)
Kecamatan dikunci sesuai wilayah user login.
@endif
@if ($lockDesa) @endif @error('alamat_desa_id')
{{ $message }}
@enderror @error('alamatdesaid')
{{ $message }}
@enderror @if ($lockDesa)
Desa / kelurahan dikunci sesuai wilayah user login.
@endif
@error('detail_alamat')
{{ $message }}
@enderror @error('detailalamat')
{{ $message }}
@enderror
Kondisi Tempat Tinggal
@error('status_rumah')
{{ $message }}
@enderror @error('statusrumah')
{{ $message }}
@enderror
@error('kondisi_rumah')
{{ $message }}
@enderror @error('kondisirumah')
{{ $message }}
@enderror
@error('status_tanah_pekarangan')
{{ $message }}
@enderror @error('statustanahpekarangan')
{{ $message }}
@enderror
Akses Dasar Rumah Tangga
@error('akses_listrik')
{{ $message }}
@enderror @error('akseslistrik')
{{ $message }}
@enderror
@error('akses_air_bersih')
{{ $message }}
@enderror @error('aksesairbersih')
{{ $message }}
@enderror
@error('sanitasi')
{{ $message }}
@enderror
Jaminan & Perlindungan
@error('bpjs_kesehatan')
{{ $message }}
@enderror @error('bpjskesehatan')
{{ $message }}
@enderror
@error('bpjs_ketenagakerjaan')
{{ $message }}
@enderror @error('bpjsketenagakerjaan')
{{ $message }}
@enderror
@error('asuransi_nelayan')
{{ $message }}
@enderror @error('asuransinelayan')
{{ $message }}
@enderror
Kesehatan & Sosial Ekonomi
@error('keanggotaan_koperasi')
{{ $message }}
@enderror @error('keanggotaankoperasi')
{{ $message }}
@enderror
@error('kartu_kusuka')
{{ $message }}
@enderror @error('kartukusuka')
{{ $message }}
@enderror
@error('riwayat_penyakit_kecelakaan')
{{ $message }}
@enderror @error('riwayatpenyakitkecelakaan')
{{ $message }}
@enderror
Akses Login
@error('password')
{{ $message }}
@enderror
Kosongkan jika password tidak diubah. Minimal 6 karakter bila diisi.
@if ($roleLogin === 'anggota') @endif @error('role')
{{ $message }}
@enderror
@if ($canEditNoKartu)
No Kartu Anggota
@error('no_kartu_anggota')
{{ $message }}
@enderror
Field ini hanya bisa diisi jika masih kosong. Setelah terisi, tidak bisa diubah lagi.
@endif
Kembali
@endsection @push('scripts') @endpush