selectedKelas = $selectedKelas; $this->selectedMatpel = $selectedMatpel; } /** * @return \Illuminate\Support\Collection */ public function collection() { $guruNip = Auth::user()->guru->nip; $query = SubmitTugas::with(['siswa', 'tugas.mataPelajaran']) ->whereHas('tugas', function ($q) use ($guruNip) { $q->where('guru_nip', $guruNip); }); if ($this->selectedKelas) { $query->whereHas('tugas', function ($q) { $q->where('kelas', $this->selectedKelas); }); } if ($this->selectedMatpel) { $query->whereHas('tugas', function ($q) { $q->where('matapelajaran_id', $this->selectedMatpel); }); } return $query->orderBy('created_at', 'desc')->get(); } public function headings(): array { return [ 'No', 'Nama Tugas', 'Mata Pelajaran', 'Kelas', 'Nama Siswa', 'NISN', 'Tanggal Submit', 'Nilai', 'Status Nilai', 'Tenggat Waktu', 'Status Tenggat', 'Deskripsi Tugas' ]; } public function map($submitTugas): array { static $no = 1; $tugas = $submitTugas->tugas; $siswa = $submitTugas->siswa; $statusNilai = $submitTugas->nilai !== null ? 'Sudah Dinilai' : 'Belum Dinilai'; $statusTenggat = \Carbon\Carbon::parse($tugas->tenggat)->isPast() ? 'Lewat Tenggat' : 'Masih Aktif'; return [ $no++, $tugas->nama, $tugas->mataPelajaran->nama ?? '-', $tugas->kelas, $siswa->nama ?? 'Siswa tidak ditemukan', $submitTugas->nisn, \Carbon\Carbon::parse($submitTugas->tanggal)->format('d/m/Y H:i'), $submitTugas->nilai ?? '-', $statusNilai, \Carbon\Carbon::parse($tugas->tenggat)->format('d/m/Y'), $statusTenggat, $tugas->deskripsi ?? '-' ]; } public function styles(Worksheet $sheet) { return [ 1 => [ 'font' => ['bold' => true], 'fill' => [ 'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'startColor' => ['rgb' => 'E2E8F0'] ] ] ]; } }