$row['jam_masuk'], 'pulang' => $row['jam_pulang'] ]; } // Buat thead $thead = ""; $thead .= "Nama"; $thead .= "Tanggal"; $thead .= ""; for ($tgl = 1; $tgl <= $jumlah_hari; $tgl++) { $thead .= "{$tgl}"; } $thead .= ""; // Buat tbody $tbody = ''; while ($row = mysqli_fetch_assoc($karyawan)) { $tbody .= ""; $tbody .= "{$row['nama']}"; for ($tgl = 1; $tgl <= $jumlah_hari; $tgl++) { $tanggal = sprintf('%04d-%02d-%02d', $tahun, $bulan, $tgl); $hari = date('N', strtotime($tanggal)); // 6 = Sabtu, 7 = Minggu // Tanggal ke depan, tampil abu if ($tanggal > $today) { $tbody .= "-"; } // Sabtu/Minggu elseif ($hari == 6 || $hari == 7) { $tbody .= "X"; } // Hari kerja, evaluasi absensi else { $status = ''; if (isset($absensi[$row['rfid']][$tanggal])) { $data = $absensi[$row['rfid']][$tanggal]; if ($data['masuk'] && $data['pulang']) { $status = 'hadir'; } elseif ($data['masuk']) { $status = 'masuk'; } else { $status = 'tidak_masuk'; } } else { $status = 'tidak_masuk'; } if ($status == 'hadir') { $tbody .= "✔"; } elseif ($status == 'masuk') { $tbody .= "●"; } else { $tbody .= "-"; } } } $tbody .= ""; } // Kirim JSON echo json_encode([ 'thead' => $thead, 'tbody' => $tbody ]); ?>