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
+78
View File
@@ -0,0 +1,78 @@
# 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.