PATCH v4.30.0 -> v4.31.0
Prestige Barbershop Professional

TUJUAN
- Mencegah transaksi ganda akibat double-click, koneksi lambat, atau browser retry.
- Mencegah benturan nomor invoice jika dua transaksi diproses bersamaan.

FILE PATCH
- config/config.php
- new_transaction.php
- system_audit.php
- upgrade_v4_31_0.php
- VERSION.txt

LANGKAH AMAN
1. Backup database dari aplikasi dan phpMyAdmin/cPanel.
2. Backup seluruh file aplikasi.
3. Jangan hapus config/database.local.php.
4. Jangan hapus folder uploads.
5. Upload isi patch mengikuti struktur folder dan timpa file lama.
6. Login sebagai Super Admin.
7. Jalankan upgrade_v4_31_0.php satu kali. Script aman/idempotent jika dibuka lagi.
8. Buka Administrasi -> System Audit.
9. Pastikan tidak ada ERROR.
10. Uji transaksi: klik tombol Simpan sekali, lalu coba double-click cepat. Hanya satu transaksi/nota yang boleh terbentuk.

CATATAN DATABASE
Patch TIDAK menyertakan database.sql. Jangan menjalankan database.sql atau upgrade_v3_6.sql pada database produksi yang sudah berada di v4.30.0.
upgrade_v4_31_0.php menambahkan secara aman:
- transactions.request_token CHAR(64) NULL
- UNIQUE index request_token
- tabel invoice_counters

Transaksi lama tidak diubah dan request_token transaksi lama tetap NULL.
