# TODO - Update Cronjob depreciation_asset()

- [x] Review dan lock aturan tanggal penyusutan bulanan berdasarkan tanggal_perolehan
- [x] Update logic due date bulanan per aset (min(day_perolehan, last_day_of_month))
- [x] Pastikan penyusutan mulai bulan berikutnya setelah perolehan
- [x] Batasi eksekusi hanya saat runDate == dueDateThisMonth
- [x] Pertahankan idempotency 1x per bulan
- [x] Samakan tanggal pencatatan mutation dan journal ke dueDateThisMonth
- [x] Verifikasi struktur response details (success/skip reason) tetap informatif

## TODO Baru - Catch-up penyusutan multi-bulan

- [ ] Refactor logic depreciation_asset agar memproses multi-bulan (catch-up)
- [ ] Terapkan loop per bulan dari bulan setelah tanggal patokan sampai bulan berjalan
- [ ] Pertahankan idempotent check per bulan berdasarkan asset_mutations
- [ ] Generate mutasi + jurnal per bulan yang eligible
- [ ] Update nilai buku & akumulasi penyusutan asset setelah proses loop
- [ ] Tambahkan detail response per bulan (processed/skipped reason)
- [ ] Validasi syntax PHP untuk Cronjob.php
