# Task Breakdown: 18 - Kompilasi Laporan & Ekspor Data

**Referensi Dokumen:** FR-18.1 hingga FR-18.7
**Tujuan:** Transformator keluaran luapan data absensi menjadi laporan *human-readable*, difilter ketat per parameter rentang kalender, dan dapat langsung divacuum masuk ke *Paper Print Format*.

## 1. Controller Read-Only
- [ ] Buat `ReportController`: Berisikan metode kompilasi untuk *UI Reporting Menu*.
  - `teacherDaily()` dengan param: `teacher_id` pilihan, string bentang `date range`.
  - `studentDaily()` dengan param: `classroom_id`, dll.
  - Sediakan model kueri agregasi penghitungan *Total Hadir, Sakit, Alpa, Telat* per bulan / parameter secara akurat.

## 2. Sistem Ekspor Endpoint Output
- [ ] Buat `ReportExportController`, menerima injeksi parameter array kueri untuk dikoneksikan ke library.
  - Routing Cetak Ekspor ke: *DomPDF* (`barryvdh/laravel-dompdf`). Menggunakan layout kustom ukuran f4/A4, Header logo kop institusi sekolah ditarik dari *System Setting* kolom address/name.
  - Routing Cetak Ekspor ke: *Excel Spreadsheet* (`maatwebsite/laravel-excel`). Menyusun blokir tabel dan formula bila ada ke *response header download*.

## 3. Acceptance Criteria
- [ ] Kueri wajib efisien `N+1 safe` memanfaatkan fasihnya *Eager Loading* di perulangan relasi pelengkap, mampu melampaui filter 1 tahun ajaran tanpa time-out error yang memalukan server.
- [ ] Excel / PDF tercetak cantik merender *Cell* kolom tabel tanpa berantakan, siap didistribusikan hardcopy.
