Update besar apk finance
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# Runbook Database Production — Tahap 5
|
||||
|
||||
## Preflight wajib
|
||||
|
||||
1. Full backup dan uji restore pada staging.
|
||||
2. Bekukan pembuatan invoice/pembayaran selama migration.
|
||||
3. Rekonsiliasi total invoice, pembayaran, piutang, jurnal, stock log, dan barcode.
|
||||
4. Periksa nomor invoice duplikat:
|
||||
|
||||
```sql
|
||||
SELECT no_invoice, COUNT(*), GROUP_CONCAT(id ORDER BY id)
|
||||
FROM invoices GROUP BY no_invoice HAVING COUNT(*) > 1;
|
||||
```
|
||||
|
||||
5. Periksa pembayaran tanpa invoice/customer, pembayaran melebihi invoice, jurnal hilang, dan detail stok ganda. Jangan mengoreksi otomatis sebelum Finance menyetujui mapping.
|
||||
6. Tinjau akun kontrol: Piutang Usaha, Utang Pajak Penjualan, Uang Muka Pelanggan, Beban Kerugian Piutang, HPP, Persediaan, dan akun pendapatan.
|
||||
|
||||
## Migration
|
||||
|
||||
Jalankan berurutan: `20260831001000`, `20260831001100`, lalu `20260901000100`. Migration 010 berhenti aman jika nomor invoice duplikat ditemukan.
|
||||
|
||||
Migration membuat akun default berikut hanya bila kodenya belum ada:
|
||||
|
||||
- `2191` Utang Pajak Penjualan
|
||||
- `2192` Uang Muka Pelanggan
|
||||
- `6191` Beban Kerugian Piutang
|
||||
|
||||
Production wajib menyesuaikan `system_account_mappings` dengan chart of accounts resmi perusahaan. Jangan mengandalkan nama/kode default jika COA Production berbeda.
|
||||
|
||||
## Validasi setelah migration
|
||||
|
||||
```sql
|
||||
SELECT workflow_status, status, COUNT(*) FROM invoices GROUP BY workflow_status,status;
|
||||
SELECT COUNT(*) FROM payments p LEFT JOIN payment_allocations a ON a.payment_id=p.id WHERE a.id IS NULL;
|
||||
SELECT no_invoice, COUNT(*) FROM invoices GROUP BY no_invoice HAVING COUNT(*)>1;
|
||||
```
|
||||
|
||||
Uji pada staging: quotation→SO/invoice, submit→approve→post, partial dan multi-invoice payment, uang muka, credit note, write-off, refund, reversal, aging, statement, receipt, attachment, jurnal balance, serta stok/barcode berkurang tepat sekali.
|
||||
|
||||
Invoice historis tidak boleh diposting ulang otomatis. Jika flag legacy `posted` tidak sesuai jurnal sebenarnya, rekonsiliasi per invoice dan gunakan change script yang disetujui Finance/DBA.
|
||||
|
||||
## Operasional
|
||||
|
||||
Batasi endpoint credit note, refund, write-off, posting, dan reversal kepada role berwenang. Konfigurasikan provider reminder terpisah. Backup lampiran `uploads/accounting` bersama database dan terapkan malware scanning pada infrastruktur Production.
|
||||
Reference in New Issue
Block a user