<?php
require '../vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Fill;

if (isset($_POST['fechaInicio'], $_POST['fechaFin'])) {
    include("../config/conexion.php");

    $inicio = $_POST['fechaInicio'];
    $fin    = $_POST['fechaFin'];

    $sql = "SELECT 
                rf.idregistro, rf.carnet, rf.nombre, rf.carrera, rf.grado,
                rf.seccion, rf.falta, rf.bimestre, rf.fecha, rf.observaciones,
                u.nombre AS usuario
            FROM registro_falta rf
            INNER JOIN usuarios u ON rf.idusuario = u.id
            WHERE rf.fecha BETWEEN ? AND ?";

    $stmt = $conexion->prepare($sql);
    $stmt->bind_param("ss", $inicio, $fin);
    $stmt->execute();
    $res = $stmt->get_result();

    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $sheet->setTitle("Faltas por Fecha");

    // Encabezados
    $encabezados = ['ID', 'Carnet', 'Nombre', 'Carrera', 'Grado', 'Sección', 'Falta', 'Bimestre', 'Fecha', 'Observaciones', 'Usuario'];
    $colIndex = 'A';
    foreach ($encabezados as $campo) {
        $sheet->setCellValue($colIndex . '1', $campo);
        // Ajustar ancho automáticamente
        $sheet->getColumnDimension($colIndex)->setAutoSize(true);
        $colIndex++;
    }

    // Estilo de encabezado: fondo gris y texto en negrita
    $sheet->getStyle('A1:K1')->getFont()->setBold(true);
    $sheet->getStyle('A1:K1')->getFill()
        ->setFillType(Fill::FILL_SOLID)
        ->getStartColor()->setRGB('D9D9D9'); // Gris claro

    // Datos
    $rowNum = 2;
    while ($row = $res->fetch_assoc()) {
        $col = 'A';
        foreach ($row as $val) {
            $sheet->setCellValue($col . $rowNum, $val);
            $col++;
        }
        $rowNum++;
    }

    // Descargar archivo
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment; filename="faltas_por_fecha_' . date('Ymd') . '.xlsx"');
    header('Cache-Control: max-age=0');

    $writer = new Xlsx($spreadsheet);
    $writer->save('php://output');
    exit;
}
