Update besar apk finance

This commit is contained in:
Wian Drs
2026-09-11 16:03:00 +07:00
parent d42483b350
commit 4ef15c22ae
897 changed files with 98056 additions and 15979 deletions
+16
View File
@@ -0,0 +1,16 @@
# Checklist Production DB — Tahap 12–14
1. Backup dan uji restore; jalankan migration `20260901001700`–`20260901002100`.
2. Verifikasi seluruh data lama berada pada company `MAIN` dan setiap user memiliki tepat satu default company.
3. Jalankan `php index.php stage1214check`; `critical_rows_without_company`, `user_without_company`, `unbalanced_by_company`, dan `duplicate_rates` harus nol.
4. Jalankan migration `20260901002200` untuk memastikan `business_dimensions.company_id`, backfill tenant, dan unique key per perusahaan tersedia; kemudian petakan branch/departemen lama dan lengkapi project, cost center, profit center serta salesperson.
5. Isi dimensi default pada sumber transaksi agar journal detail baru tidak kosong. Data legacy tanpa dimensi tetap valid tetapi laporan dimensi akan masuk kelompok “tanpa dimensi”.
6. Petakan `budget_account_id` pada PO yang menjadi commitment. Uji warning/blocking sebelum budget diaktifkan.
7. Konfigurasikan worker export dan direktori `uploads/accounting/reports` di luar public access atau lindungi dengan authorization download.
8. Sebelum close, selesaikan closing checklist dan buat snapshot laporan utama.
9. Validasi mapping akun realized/unrealized FX gain/loss serta kurs sumber resmi.
10. Rekonsiliasi saldo foreign AR/AP ke base currency sebelum revaluasi pertama.
11. Jangan mengaktifkan perusahaan kedua untuk transaksi operasional sampai seluruh controller/model legacy diberi scope `company_id`. Prioritas: invoice, purchase, inventory, asset, cash/bank, HR/payroll, tax, dashboard dan generator PDF lama.
12. Setelah tenant audit lulus, ubah unique number/account/mapping/period indexes menjadi composite dengan `company_id` sesuai kebutuhan nomor terpisah per perusahaan.
Aktivasi multi-company Production wajib dilakukan sebagai cutover tersendiri. Migration menyiapkan fondasi dan memproteksi jalur baru, tetapi tidak otomatis membuat seluruh query legacy menjadi tenant-safe.