Update besar apk finance
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user