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

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

if (isset($_POST['bimestre'])) {
    include("../config/conexion.php");
    $bimestre = intval($_POST['bimestre']);

    $sql = "SELECT 
                rf.idregistro, rf.carnet, rf.nombre, rf.apellidos,
                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.bimestre = ?";

    $stmt = $conexion->prepare($sql);
    $stmt->bind_param("i", $bimestre);
    $stmt->execute();
    $res = $stmt->get_result();

    // Crear archivo Excel
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $sheet->setTitle("Bimestre $bimestre");

    // Encabezados
    $encabezados = ['ID', 'Carnet', 'Nombre', 'Apellidos', 'Carrera', 'Grado', 'Sección', 'Falta', 'Bimestre', 'Fecha', 'Observaciones', 'Usuario'];
    $col = 'A';
    foreach ($encabezados as $campo) {
        $sheet->setCellValue($col . '1', $campo);
        $col++;
    }

    // Estilo para el encabezado: fondo gris claro y negrita
    $sheet->getStyle('A1:L1')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB('D3D3D3');
    $sheet->getStyle('A1:L1')->getFont()->setBold(true);

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

    // Descargar Excel
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment; filename="faltas_bimestre_' . $bimestre . '.xlsx"');
    header('Cache-Control: max-age=0');

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