PRESTIGE BARBER CLUB - PATCH v4.41.7 -> v4.41.8

Fokus perbaikan:
1. Deep audit Penjualan Member yang tidak tercatat.
2. Token pembayaran calon member tidak lagi deterministik per sumber. Setiap percobaan transaksi memakai token unik; proteksi duplikasi bisnis tetap dijaga oleh pemeriksaan transaksi aktif.
3. membership_finalize_payment() sekarang self-healing: memvalidasi income_id, mencari pemasukan existing berdasarkan source/reference, dan membuat pemasukan hanya bila belum ada.
4. Tanggal pemasukan membership mengikuti tanggal penjualan membership (sale_date), bukan tanggal verifikasi pembayaran.
5. Upgrade melakukan repair aman pada membership PAID lama yang kehilangan relasi pemasukan.
6. Pra-Member dan Non-Member memiliki photo_path agar foto dapat disimpan sebelum/ketika dikonversi menjadi Member.
7. Branding & Sistem: sumber foto Pra/Non-Member dapat diatur menjadi Fleksibel, Upload, Webcam, Kamera HP Depan, atau Kamera HP Belakang.
8. Form Penjualan Member mendukung getUserMedia webcam + hasil foto canvas, dan capture kamera HP.

DEPLOY PATCH:
- Backup database dan file aplikasi.
- Upload seluruh isi ZIP patch ke root aplikasi dan overwrite.
- JANGAN hapus config/database.local.php dan folder uploads.
- Login Super Admin.
- Jalankan upgrade_v4_41_8.php sekali.
- Buka Branding & Sistem untuk memilih sumber foto.
