# Attendance Review V2 -> SPL -> Payroll Engine

File diagram:
- `docs/flowcharts/attendance-spl-payroll-engine.drawio`

Fokus diagram:
- Jalur ingest log ke Attendance Review V2
- Jalur approval review
- Jalur pembentukan SPL dari review candidate
- Percabangan ke payroll normal atau separate payout
- Output payroll, slip, tax, THR

Dasar struktur yang dipakai:
- [AttendanceReview routes](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\AttendanceReview\routes\web.php)
- [AttendanceReviewController.php](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\AttendanceReview\Http\Controllers\AttendanceReviewController.php)
- [AttendanceReviewV2Controller.php](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\AttendanceReview\Http\Controllers\AttendanceReviewV2Controller.php)
- [SuratPerintahLembur routes](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\SuratPerintahLembur\routes\web.php)
- [SuratPerintahLemburController.php](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\SuratPerintahLembur\Http\Controllers\SuratPerintahLemburController.php)
- [Penggajian routes](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\Penggajian\routes\web.php)
- [PenggajianController.php](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\Penggajian\Http\Controllers\PenggajianController.php)

Pembacaan singkat:
1. Log masuk dari mesin, API publik, atau manual log.
2. Detection engine membaca planning dan assignment bulanan.
3. Hasilnya menjadi attendance review dan calculation detail.
4. Review yang cukup aman bisa langsung menjadi basis payroll.
5. Review yang perlu lembur / special handling masuk ke jalur SPL.
6. SPL approved bisa dibayar lewat payroll atau separate payout.
7. Payroll engine menggabungkan attendance approved, SPL approved, profil bulan, BPJS, tax, dan komponen gaji.

Catatan penting:
- `AttendanceReviewV2Controller` mewarisi banyak engine utama dari `AttendanceReviewController`, jadi beberapa jalur di diagram berasal dari method di controller induk.
- Diagram ini tetap high-level operasional, belum memecah tabel database per node.

Langkah lanjutan yang cocok:
- buat versi `database flow`
- buat versi `approval lifecycle`
- buat versi `employee master + contract + signature lifecycle`
