Files
accounting_dev_v2/docs/FIXED-ASSET-FINALIZATION.md
T
2026-09-11 16:03:00 +07:00

79 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Finalisasi Modul Aset Tetap
## Arsitektur kanonis
- Menu resmi: `Aset Tetap` → `/fixedassets`.
- Controller transaksi: `Fixedassets.php`.
- Aturan bisnis dan transaksi database: `FixedAssetService.php`.
- Query register, detail, lookup, opname, laporan: `FixedAssetModel.php`.
- `Asset.php` dan `Lokasiasset.php` hanya alias kompatibilitas. Keduanya tidak lagi boleh menulis stok, jurnal, atau aset.
## Alur perolehan
`Draft → Diajukan → Disetujui/Ditolak → Dikapitalisasi`
Dokumen pendukung wajib tersedia sebelum pengajuan. Pembuat dan approver dipisahkan, kecuali Master Admin yang memang memiliki seluruh kewenangan aplikasi.
### Input langsung
- `Buat jurnal kapitalisasi`: debit akun aset, kredit akun lawan yang dipilih.
- `Hubungkan jurnal posted`: tidak membuat jurnal kedua; jurnal sumber hanya boleh dipakai satu aset.
- `Saldo awal/tanpa jurnal baru`: khusus migrasi/saldo awal yang memang telah direkonsiliasi. Alasan dan dokumen wajib lengkap.
### Dari gudang
- Hanya item aktif dan barcode `available` yang dapat dipilih.
- Biaya berasal dari inventory ledger, bukan input manual.
- Kapitalisasi menggunakan transaksi database dan row locking.
- Otomatis membuat jurnal debit Aset / kredit Persediaan, inventory ledger keluar, stock log, item movement, dan memperbarui barcode serta cache stok.
- Barang `UNIT` selalu satu barcode untuk satu aset. Barang `QTY` dapat dikapitalisasi sebagian sesuai saldo tersedia.
## Siklus hidup
- Penyusutan bulanan/catch-up tidak boleh melewati nilai residu dan unik per aset-periode.
- Penambahan nilai, impairment, revaluasi, pelepasan/penjualan, hilang, dan rusak menghasilkan jurnal serta event immutable.
- Transfer lokasi, perubahan PIC, maintenance, dan opname tersimpan sebagai audit trail.
- Koreksi transaksi posted dilakukan melalui reversal event terakhir; histori tidak dihapus.
- Hasil opname `hilang/rusak` tidak otomatis menjurnal. Setelah opname diposting, lakukan mutasi resmi pada aset terkait agar user memverifikasi nilai dan akun sebelum posting.
## Dokumen dan laporan
- Kartu aset dan histori mutasi PDF.
- Label QR yang membuka identitas aset company-scoped.
- Berita acara opname PDF dengan pembuat, approver, dan poster.
- Daftar aset, jadwal penyusutan, maintenance, mutasi/audit, serta rekonsiliasi subledger ke buku besar tersedia dalam layar, PDF, dan Excel.
## Database produksi
Sebelum deploy:
1. Backup database dan file lampiran.
2. Jalankan migrasi berurutan sampai `20260906000900`.
3. Periksa mapping `inventory`, `asset_disposal_gain`, dan `asset_disposal_loss` untuk tiap perusahaan.
4. Lengkapi mapping akun default pada setiap kategori aset.
5. Tinjau aset legacy yang memakai mode `no_journal`, lalu rekonsiliasi saldo awal dengan GL.
6. Jalankan `php index.php fixedassetcheck` dan tindak lanjuti semua baris `[WARN]`.
7. Uji maker/approver dengan dua akun non-Admin dan satu Master Admin.
Migrasi `20260906000400` menambah workflow, company scope, histori, attachment scope, indeks, dan event immutable. Migrasi `20260906000500` mengubah nominal aset menjadi `DECIMAL` agar nilai setelah koma tidak hilang. Migrasi `20260906000600`–`20260906000700` menormalkan akun harga perolehan aset legacy: kategori yang semula menunjuk akun induk diarahkan ke akun detail yang dapat menerima posting. Migrasi `20260906000800` mengisi nilai draft aset gudang lama yang masih nol berdasarkan inventory ledger. Migrasi `20260906000900` melengkapi `stock_logs.company_id`, backfill dari master barang, dan indeks tenant untuk kapitalisasi/reversal aset gudang. Production wajib meninjau nama/kode akun detail dan nilai draft hasil migrasi bersama Finance sebelum go-live.
## Kontrol akses
- `can_view`: daftar, detail, lookup, dan laporan layar.
- `can_create`: membuat dan mengajukan draft perolehan/opname.
- `can_update`: mengubah draft/master, transfer, PIC, dan maintenance.
- `can_approve`: approve/reject perolehan dan opname.
- `can_post`: kapitalisasi, penyusutan, mutasi nilai, posting opname, dan reversal.
- `can_export`: PDF, Excel, kartu aset, dan berita acara.
## Checklist penerimaan
- Input langsung dan dari gudang berjalan sampai kapitalisasi.
- Posting gudang hanya sekali walaupun tombol diklik ulang.
- Debit dan kredit setiap jurnal aset seimbang.
- Barcode/qty, inventory ledger, stock log, item movement, dan stok item konsisten.
- Penyusutan periode yang sama tidak terduplikasi dan tidak di bawah residu.
- Periode tertutup menolak kapitalisasi, penyusutan, mutasi, dan reversal.
- Aset perusahaan lain tidak muncul pada register, lookup, detail, lampiran, atau laporan.
- Tugas utama dapat dilakukan pada laptop dan HP; modal menjadi layar penuh di HP.