Files
accounting_dev_v2/docs/TAHAP-3.md
T
2026-09-11 16:03:00 +07:00

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.