# 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

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