# 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