<?php
/**
 * Generador de PDF: Lista de Asistentes
 */

require_once __DIR__ . '/../../includes/db.php';
require_once __DIR__ . '/../../includes/auth.php';
require_once __DIR__ . '/../../includes/functions.php';

// Verificar autenticación
if (!isLoggedIn()) {
    die('Acceso denegado');
}

$eventoId = getEventoId();
$evento = obtenerEvento($eventoId);

// Obtener solo invitados aceptados
$stmt = $pdo->prepare("
    SELECT * FROM invitados 
    WHERE evento_id = ? AND estado = 'Aceptado'
    ORDER BY nombre_invitado ASC
");
$stmt->execute([$eventoId]);
$invitados = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Preparar datos para la tabla
$datosTabla = [];
$numero = 1;

foreach ($invitados as $invitado) {
    $admisiones = obtenerAdmisiones($invitado['id']);
    
    // Fila del invitado principal
    $datosTabla[] = [
        'numero' => $numero++,
        'nombre' => $invitado['nombre_cortesia'] . ' ' . $invitado['nombre_invitado'],
        'invitacion_de' => $invitado['invitacion_de'] ?? '-',
        'telefono' => $invitado['telefono'] ?? '-',
        'email' => $invitado['email'] ?? '-',
        'estado' => $invitado['estado'],
        'admisiones' => $invitado['numero_admisiones'],
        'es_principal' => true
    ];
    
    // Filas de admisiones (dependientes)
    foreach ($admisiones as $admision) {
        $datosTabla[] = [
            'numero' => '',
            'nombre' => $admision,
            'invitacion_de' => '',
            'telefono' => '',
            'email' => '',
            'estado' => '',
            'admisiones' => '',
            'es_principal' => false
        ];
    }
}

// Título del evento
$tituloEvento = obtenerTituloEvento($evento);
$organizadorEvento = '';
if (in_array($evento['tipo_evento'] ?? '', ['evento_social', 'reunion']) && !empty($evento['nombre_organizador'])) {
    $organizadorEvento = $evento['nombre_organizador'];
}
$hayDatos = !empty($datosTabla);
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Lista de Asistentes - <?php echo htmlspecialchars($tituloEvento); ?></title>
    <style>
        @media print {
            @page {
                margin: 1.5cm;
            }
            .no-print {
                display: none;
            }
        }
        body {
            font-family: Arial, sans-serif;
            font-size: 12px;
            margin: 0;
            padding: 20px;
            color: #333;
        }
        .header {
            text-align: center;
            margin-bottom: 30px;
            border-bottom: 2px solid #333;
            padding-bottom: 15px;
        }
        .header h1 {
            margin: 0;
            font-size: 24px;
            color: #000;
        }
        .header h2 {
            margin: 10px 0 0 0;
            font-size: 18px;
            color: #666;
            font-weight: normal;
        }
        .header-organizador {
            margin: 6px 0 0 0;
            font-size: 14px;
            color: #888;
            font-weight: normal;
        }
        .info {
            margin-bottom: 20px;
            font-size: 11px;
            color: #666;
        }
        table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 20px;
        }
        th {
            background-color: #333;
            color: white;
            padding: 10px 8px;
            text-align: left;
            font-size: 11px;
            font-weight: bold;
            border: 1px solid #000;
        }
        td {
            padding: 8px;
            border: 1px solid #ddd;
            font-size: 11px;
        }
        tr:nth-child(even) {
            background-color: #f9f9f9;
        }
        tr.dependiente {
            background-color: #f0f0f0;
            font-style: italic;
        }
        tr.dependiente td {
            padding-left: 30px;
        }
        .numero {
            text-align: center;
            width: 40px;
        }
        .nombre {
            width: 200px;
        }
        .invitacion-de {
            width: 150px;
        }
        .telefono {
            width: 120px;
        }
        .email {
            width: 180px;
        }
        .estado {
            width: 80px;
            text-align: center;
        }
        .admisiones {
            width: 80px;
            text-align: center;
        }
        .footer {
            margin-top: 30px;
            text-align: center;
            font-size: 10px;
            color: #666;
            border-top: 1px solid #ddd;
            padding-top: 10px;
        }
        .btn-print {
            margin-bottom: 20px;
            padding: 10px 20px;
            background: #333;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            font-size: 14px;
        }
        .btn-print:hover {
            background: #555;
        }
        .sin-registros {
            text-align: center;
            padding: 40px 20px;
            color: #666;
            font-size: 16px;
            font-style: italic;
        }
        .sin-registros td {
            border: none;
            padding: 40px;
        }
    </style>
</head>
<body>
    <div class="no-print">
        <button class="btn-print" onclick="window.print()">Imprimir / Guardar como PDF</button>
    </div>
    
    <div class="header">
        <h1>Lista de Asistentes</h1>
        <h2><?php echo htmlspecialchars($tituloEvento); ?></h2>
        <?php if ($organizadorEvento): ?>
        <p class="header-organizador"><?php echo htmlspecialchars($organizadorEvento); ?></p>
        <?php endif; ?>
    </div>
    
    <div class="info">
        <strong>Fecha del Evento:</strong> <?php echo formatearFechaEspanol($evento['fecha_evento']); ?><br>
        <strong>Lugar:</strong> <?php echo htmlspecialchars($evento['lugar_evento']); ?><br>
        <strong>Total de Asistentes:</strong> <?php echo count($invitados); ?> invitado(s) principal(es)
    </div>
    
    <table>
        <thead>
            <tr>
                <th class="numero">No.</th>
                <th class="nombre">Nombres</th>
                <th class="invitacion-de">Invitación de</th>
                <th class="telefono">Teléfono</th>
                <th class="email">Email</th>
                <th class="estado">Estado</th>
                <th class="admisiones">Admisiones</th>
            </tr>
        </thead>
        <tbody>
            <?php if ($hayDatos): ?>
                <?php foreach ($datosTabla as $fila): ?>
                    <tr class="<?php echo $fila['es_principal'] ? '' : 'dependiente'; ?>">
                        <td class="numero"><?php echo htmlspecialchars($fila['numero']); ?></td>
                        <td class="nombre"><?php echo htmlspecialchars($fila['nombre']); ?></td>
                        <td class="invitacion-de"><?php echo htmlspecialchars($fila['invitacion_de']); ?></td>
                        <td class="telefono"><?php echo htmlspecialchars($fila['telefono']); ?></td>
                        <td class="email"><?php echo htmlspecialchars($fila['email']); ?></td>
                        <td class="estado"><?php echo htmlspecialchars($fila['estado']); ?></td>
                        <td class="admisiones"><?php echo htmlspecialchars($fila['admisiones']); ?></td>
                    </tr>
                <?php endforeach; ?>
            <?php else: ?>
                <tr>
                    <td colspan="7" class="sin-registros">No hay registros</td>
                </tr>
            <?php endif; ?>
        </tbody>
    </table>
    
    <div class="footer">
        <p>Generado el <?php echo date('d/m/Y H:i'); ?></p>
    </div>
</body>
</html>


