# Update Keuangan, Profil, Pengaduan, dan Kwitansi PDF

## Setelah upload ke NAS

Masuk ke root project Laravel:

```bash
cd /volume1/web/website-rt
```

Jalankan migrasi dan bersihkan cache memakai PHP 8.2:

```bash
/usr/local/bin/php82 artisan migrate
/usr/local/bin/php82 artisan storage:link
/usr/local/bin/php82 artisan optimize:clear
/usr/local/bin/php82 artisan config:clear
/usr/local/bin/php82 artisan route:clear
/usr/local/bin/php82 artisan view:clear
```

Kalau folder `storage` atau `bootstrap/cache` permission error:

```bash
sudo chown -R NAS-WSINDO:http storage bootstrap/cache
sudo find storage bootstrap/cache -type d -exec chmod 775 {} \;
sudo find storage bootstrap/cache -type f -exec chmod 664 {} \;
```

## Ganti IP / domain bukti pembayaran

Link bukti transfer memakai variable:

```env
APP_URL=http://192.168.1.20:2026
PUBLIC_STORAGE_URL=http://192.168.1.20:2026/storage
```

Kalau nanti pakai domain:

```env
APP_URL=https://clusterpermata.my.id
PUBLIC_STORAGE_URL=https://clusterpermata.my.id/storage
```

Setelah ubah `.env`:

```bash
/usr/local/bin/php82 artisan config:clear
/usr/local/bin/php82 artisan optimize:clear
```

## Fitur baru

- Bukti pembayaran otomatis diarahkan ke `PUBLIC_STORAGE_URL/payment-proofs/nama-file`.
- Kwitansi pembayaran tersedia sebagai PDF dan bisa diunduh.
- Email kwitansi pembayaran melampirkan PDF.
- Admin iuran memiliki filter status: belum bayar/sebagian, menunggu verifikasi, dan sudah bayar.
- Admin keuangan memiliki filter pemasukan/pengeluaran, bulan, tahun, CSV, dan PDF.
- Card pemasukan/pengeluaran/tunggakan mengarah ke halaman rekap terkait.
- Bendahara bisa mengubah rekening transfer dari halaman admin keuangan.
- Riwayat transaksi warga di halaman detail iuran dibuat tersembunyi dahulu dan dibuka lewat tombol.
- Form surat dan pengaduan warga memakai data akun dan dibuat readonly.
- Profil user punya foto profil dan edit data dengan kode verifikasi email.
- Admin pengaduan mengirim notifikasi status ke email/WA pelapor otomatis saat status berubah.
- Notifikasi WA pengurus ditingkatkan dengan fallback dan logging.

## Cek WA jika tidak terkirim

Setelah kirim pengaduan/update status, cek log:

```bash
tail -n 100 storage/logs/laravel.log
```

Cari teks `WA pengurus gagal`, `WA warga gagal`, atau `Error mengirim WhatsApp`.
