66 lines
2.7 KiB
Markdown
66 lines
2.7 KiB
Markdown
# Tahap 3: Fondasi Accounting Profesional
|
|
|
|
## Tahun buku dan periode
|
|
|
|
- Tahun buku kalender dapat dibuat melalui menu Admin → Periode Accounting.
|
|
- Setiap tahun buku memiliki 12 periode bulanan.
|
|
- Status periode: `open`, `soft_closed`, dan `closed`.
|
|
- Soft close/close ditolak bila masih ada jurnal `draft`, `submitted`, atau `approved`.
|
|
- Membuka kembali periode wajib menyertakan alasan dan dicatat pada log periode.
|
|
- Trigger database menghubungkan journal legacy ke periode dan menolak insert pada periode non-open.
|
|
|
|
## Workflow jurnal
|
|
|
|
```text
|
|
draft -> submitted -> approved -> posted -> reversed
|
|
| |
|
|
+-> rejected<+
|
|
```
|
|
|
|
- Jurnal manual baru selalu dibuat sebagai `draft`.
|
|
- Submit hanya dapat dilakukan pembuat jurnal atau Admin.
|
|
- Approve, reject, post, dan reversal hanya tersedia bagi Admin pada implementasi saat ini.
|
|
- Opsi pemisahan pembuat dan approver dapat diaktifkan dengan `WORKFLOW_REQUIRE_SEPARATE_APPROVER=true`.
|
|
- Jurnal posted tidak dapat dihapus melalui menu Jurnal.
|
|
- Koreksi posted dilakukan dengan reversal yang menukar debit dan kredit.
|
|
- Setiap perubahan status dicatat pada `journal_status_histories`.
|
|
- Seluruh jurnal historis diberi status awal `posted` dan history migrasi tanpa mengubah nominal.
|
|
|
|
## Dampak laporan
|
|
|
|
Dashboard, buku besar, laba rugi, neraca, neraca saldo, dan generator PDF hanya menghitung status `posted` dan `reversed`. Draft, submitted, approved, serta rejected tidak memengaruhi laporan.
|
|
|
|
## Chart of accounts
|
|
|
|
- Kode akun unik pada database.
|
|
- Tersedia jenis akun header dan akun transaksi.
|
|
- Akun header tidak dapat menerima posting.
|
|
- Akun nonaktif tidak dapat menerima posting.
|
|
- Parent cycle dicegah.
|
|
- Akun yang mempunyai child, transaksi, atau mapping sistem tidak dapat dihapus.
|
|
- Akun yang sudah pernah digunakan sebagai akun posting dipertahankan sebagai akun transaksi saat migrasi.
|
|
|
|
## Migration
|
|
|
|
Version terakhir Tahap 3:
|
|
|
|
```text
|
|
20260831000700
|
|
```
|
|
|
|
Jalankan:
|
|
|
|
```powershell
|
|
php index.php migrate latest
|
|
php index.php migrate status
|
|
php index.php accountingcheck
|
|
```
|
|
|
|
## Catatan kompatibilitas
|
|
|
|
Beberapa modul legacy seperti Items, Asset manual, dan bagian tertentu Invoice masih membuat atau membersihkan jurnal sumber secara langsung. Insert-nya sudah dilindungi period trigger dan default `posted`, tetapi proses pembatalannya belum seluruhnya menggunakan reversal. Migrasi penuh proses tersebut dilakukan bersama penyempurnaan masing-masing subledger agar stok, invoice, aset, dan jurnal tidak terpisah.
|
|
|
|
## Temuan data lama
|
|
|
|
Lima nomor jurnal historis masih duplikat dan tidak diubah otomatis karena memerlukan keputusan accounting. Unique index `journals.no_ref` baru dapat ditambahkan setelah rekonsiliasi data tersebut.
|