<?php
session_start();
require_once '../includes/db.php';
//require_once '../includes/theme_only.php';
//require_once '../includes/header.php';

// Función para ajustar el brillo de un color hexadecimal
function adjustBrightness($hex, $steps) {
    // Remover el # si existe
    $hex = ltrim($hex, '#');
    
    // Convertir a RGB
    $r = hexdec(substr($hex, 0, 2));
    $g = hexdec(substr($hex, 2, 2));
    $b = hexdec(substr($hex, 4, 2));
    
    // Ajustar el brillo
    $r = max(0, min(255, $r + $steps));
    $g = max(0, min(255, $g + $steps));
    $b = max(0, min(255, $b + $steps));
    
    // Convertir de vuelta a hexadecimal
    return sprintf('#%02x%02x%02x', $r, $g, $b);
}

// Verificar si el usuario está logueado y es administrador
if (!isset($_SESSION['usuario_id']) || $_SESSION['rol'] !== 'admin') {
    header('Location: login.php');
    exit;
}

$db = new Database();
$pdo = $db->getPDO();

// Verificar si el usuario tiene documento registrado
$stmtUsuario = $pdo->prepare("SELECT documento FROM usuarios WHERE id = ?");
$stmtUsuario->execute([$_SESSION['usuario_id']]);
$usuario = $stmtUsuario->fetch(PDO::FETCH_ASSOC);

if (empty($usuario['documento'])) {
    $_SESSION['mensaje_error'] = "Para facturar, debe tener registrado su número de documento en su perfil de usuario.";
    header('Location: usuarios.php');
    exit;
}

// Definir valores predeterminados
$defaultConfig = [
    'color_principal' => '#007bff',
    'color_secundario' => '#6c757d',
    'color_fondo' => '#ffffff',
    'color_texto' => '#212529',
    'favicon' => '',
    'factura_tipo' => 1  // Valor por defecto para factura electrónica
];

// Obtener configuración actual
try {
    // Obtener la configuración
    $stmt = $pdo->prepare("SELECT *
                        FROM configuracion 
                        LIMIT 1");
    $stmt->execute();
    $configDB = $stmt->fetch(PDO::FETCH_ASSOC);
    
    // Si no hay configuración o es null, usar los valores predeterminados
    if (!$configDB) {
        $pdo->exec("INSERT INTO configuracion (factura_tipo) VALUES (1)");
        $config = $defaultConfig;
    } else {
        // Crear un nuevo array con los valores por defecto
        $config = $defaultConfig;
        
        // Sobrescribir con los valores de la BD que existan
        foreach ($configDB as $key => $value) {
            if ($value !== null && $value !== '') {
                $config[$key] = $value;
            }
        }
        
        // Asegurarse de que factura_tipo se mantenga de la BD
        if (isset($configDB['factura_tipo'])) {
            $config['factura_tipo'] = intval($configDB['factura_tipo']);
        }
    }

} catch (PDOException $e) {
    error_log("Error al obtener configuración: " . $e->getMessage());
    $config = $defaultConfig;
}

// Variables para los resultados
$clienteSeleccionado = null;
$itemsFactura = [];
$clientes = []; // Inicializar la variable $clientes
$mensajeExito = '';
$mensajeError = '';

// Agregar esta función después de las definiciones iniciales
function calcularDigitoVerificador($ruc) {
    if (empty($ruc)) return '';
    
    // Limpiar el RUC de cualquier carácter que no sea número
    $ruc = preg_replace('/\D/', '', $ruc);
    
    if (strlen($ruc) < 6) return '';

    $baseMax = 11;
    $k = 2;
    $total = 0;

    // Iteramos de derecha a izquierda
    for ($i = strlen($ruc) - 1; $i >= 0; $i--) {
        $k = $k > $baseMax ? 2 : $k;
        $total += intval($ruc[$i]) * $k++;
    }

    $resto = $total % 11;
    return $resto > 1 ? 11 - $resto : 0;
}

// Modificar la consulta de búsqueda por número de documento
if (isset($_POST['buscar_cliente']) && !empty($_POST['buscar_cliente'])) {
    $termino_busqueda = trim($_POST['buscar_cliente']);
    $sql = "SELECT c.id_cliente, c.tipo_documento, c.numero_documento, c.nombre, c.apellidos, 
            c.razon_social, c.email, c.telefono_principal, c.tipo_contribuyente 
            FROM clientes c 
            WHERE c.numero_documento LIKE :termino 
            OR c.nombre LIKE :termino 
            OR c.apellidos LIKE :termino 
            OR c.razon_social LIKE :termino";
    
    $stmt = $pdo->prepare($sql);
    $termino_busqueda = "%{$termino_busqueda}%";
    $stmt->bindParam(':termino', $termino_busqueda, PDO::PARAM_STR);
    $stmt->execute();
    $clientes = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (count($clientes) === 1) {
        $clienteSeleccionado = $clientes[0];
    } else if (count($clientes) > 1) {
        $_SESSION['temp_clientes'] = $clientes;
        header('Location: facturar.php?accion=buscar_cliente');
        exit;
    } else {
        $clienteSeleccionado = null;
    }
    
    if ($clienteSeleccionado) {
        // Verificar si el sistema está configurado para factura electrónica
        if ($config['factura_tipo'] == 1) {
            $errores = array();
            
            // Verificar tipo de documento
            if (empty($clienteSeleccionado['tipo_documento'])) {
                $errores[] = "Tipo de documento no especificado";
            }
            
            // Verificar número de documento
            if (empty($clienteSeleccionado['numero_documento'])) {
                $errores[] = "Número de documento no especificado";
            }
            
            // Verificar correo electrónico
            if (empty($clienteSeleccionado['email'])) {
                $errores[] = "Correo electrónico no especificado";
            }
            
            // Verificar tipo de contribuyente
            if (empty($clienteSeleccionado['tipo_contribuyente'])) {
                $errores[] = "Tipo de contribuyente no especificado";
            }
            
            // Verificar coherencia entre tipo de documento y tipo de contribuyente
            if ($clienteSeleccionado['tipo_documento'] === 'CI' && 
                in_array($clienteSeleccionado['tipo_contribuyente'], ['Unipersonal', 'Persona Jurídica'])) {
                $errores[] = "El tipo de documento (CI) no es coherente con el tipo de contribuyente (" . 
                            htmlspecialchars($clienteSeleccionado['tipo_contribuyente']) . ")";
            }
                            htmlspecialchars($clienteSeleccionado['tipo_contribuyente']) . ")";
            }
            
            // Verificar coherencia para RUC
            if ($clienteSeleccionado['tipo_documento'] === 'RUC' && 
                (empty($clienteSeleccionado['tipo_contribuyente']) || 
                 $clienteSeleccionado['tipo_contribuyente'] === 'No Contribuyente')) {
                $errores[] = "El tipo de documento (RUC) no es coherente con el tipo de contribuyente (" . 
                            htmlspecialchars($clienteSeleccionado['tipo_contribuyente'] ?: 'No especificado') . ")";
            }
            
            // Si hay errores, mostrar mensaje y redirigir a editar cliente
            if (!empty($errores)) {
                $mensajeError = "Para facturación electrónica, el cliente debe tener todos los datos completos:\n\n";
                $mensajeError .= "• " . implode("\n• ", $errores) . "\n\n";
                $mensajeError .= "Por favor, edite los datos del cliente antes de continuar.";
                
                // Guardar el mensaje en la sesión
                $_SESSION['mensaje_error'] = $mensajeError;
                
                // Redirigir a la página de edición del cliente
                header('Location: editar-cliente.php?id=' . $clienteSeleccionado['id_cliente']);
                exit;
            }

        // Agregar nueva validación para RUC
        if ($clienteSeleccionado['tipo_documento'] === 'RUC' && 
            (empty($clienteSeleccionado['tipo_contribuyente']) || 
             $clienteSeleccionado['tipo_contribuyente'] === 'No Contribuyente')) {
            
            $mensaje = sprintf(
                "El cliente %s tiene un tipo de documento (RUC) que no es coherente con su tipo de contribuyente (%s). ".

                "Por favor, verifique y actualice los datos del cliente.",
                htmlspecialchars($clienteSeleccionado['nombre'] . ' ' . $clienteSeleccionado['apellidos']),
                htmlspecialchars($clienteSeleccionado['tipo_contribuyente'] ?: 'No especificado')
            );
            
            // Mostrar alert y redirigir
            echo "<script>
                alert('" . addslashes($mensaje) . "');
                window.location.href = 'facturar.php';
            </script>";
            exit;
        }

        // Continuar con las validaciones existentes (email, etc)
        if (empty($clienteSeleccionado['email'])) {
            // Construir el mensaje
            $mensaje = sprintf(
                "El cliente %s debe tener un correo electrónico registrado para poder facturar.",
                $clienteSeleccionado['nombre'] . ' ' . $clienteSeleccionado['apellidos']
            );
            
            // Mostrar alert y redirigir a clientes.php
            echo "<script>
                alert('" . addslashes($mensaje) . "');
                window.location.href = 'facturar.php';
            </script>";
            exit;
        }
        
        // Si tiene email, continuar con el proceso normal
        $_SESSION['cliente_seleccionado'] = $clienteSeleccionado;
        unset($_SESSION['temp_busqueda']);
        
        header('Location: facturar.php?accion=cliente_encontrado');
        exit;
    } else {
        $_SESSION['mensaje_error'] = "No se encontró ningún cliente con ese número de documento.";
        $_SESSION['temp_busqueda'] = $numero_documento;
        
        // Forzar que la sesión se escriba
        session_write_close();
        
        header('Location: facturar.php?accion=no_encontrado');
        exit;
    }
}

// Modificar la consulta de selección de cliente
if (isset($_POST['cliente_id']) && !empty($_POST['cliente_id'])) {
    $sql = "SELECT id_cliente, tipo_documento, numero_documento, nombre, apellidos, 
            razon_social, email, telefono_principal, tipo_contribuyente 
            FROM clientes 
            WHERE id_cliente = :id_cliente";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':id_cliente', $_POST['cliente_id'], PDO::PARAM_INT);
    $stmt->execute();
    $clienteSeleccionado = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($clienteSeleccionado) {
        // Verificar si el sistema está configurado para factura electrónica
        if ($config['factura_tipo'] == 1) {
            $errores = array();
            
            // Verificar tipo de documento
            if (empty($clienteSeleccionado['tipo_documento'])) {
                $errores[] = "Tipo de documento no especificado";
            }
            
            // Verificar número de documento
            if (empty($clienteSeleccionado['numero_documento'])) {
                $errores[] = "Número de documento no especificado";
            }
            
            // Verificar correo electrónico
            if (empty($clienteSeleccionado['email'])) {
                $errores[] = "Correo electrónico no especificado";
            }
            
            // Verificar tipo de contribuyente
            if (empty($clienteSeleccionado['tipo_contribuyente'])) {
                $errores[] = "Tipo de contribuyente no especificado";
            }
            
            // Si hay errores, mostrar mensaje modal y redirigir a editar cliente
            if (!empty($errores)) {
                $mensajeError = "Para facturación electrónica, el cliente debe tener todos los datos completos:\n\n";
                $mensajeError .= "• " . implode("\n• ", $errores) . "\n\n";
                $mensajeError .= "Por favor, edite los datos del cliente antes de continuar.";
                
                // Mostrar mensaje modal y redirigir
                echo "
                <style>
                    body.modal-open {
                        overflow: hidden;
                    }
                    .custom-modal {
                        position: fixed;
                        top: 0;
                        left: 0;
                        width: 100vw;
                        height: 100vh;
                        background: rgba(0,0,0,0.6);
                        backdrop-filter: blur(3px);
                        z-index: 9999;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        padding: 1rem;
                    }
                    .custom-modal .modal-content {
                        position: relative;
                        border: none;
                        border-radius: 12px;
                        box-shadow: 0 8px 24px rgba(0,0,0,0.15);
                        background: white;
                        max-width: 500px;
                        width: 100%;
                        margin: 1.75rem auto;
                        animation: modalFadeIn 0.3s ease-out;
                    }
                    .custom-modal .modal-header {
                        border-bottom: none;
                        padding: 20px 25px;
                        border-radius: 8px 8px 0 0;
                        background: " . (isset($config['color_principal']) ? $config['color_principal'] : '#007bff') . ";
                    }
                    .custom-modal .modal-title {
                        color: white;
                        font-size: 1.2rem;
                        font-weight: 500;
                        display: flex;
                        align-items: center;
                        gap: 10px;
                    }
                    .custom-modal .modal-body {
                        padding: 25px;
                        font-size: 1rem;
                        line-height: 1.6;
                    }
                    .custom-modal .modal-footer {
                        border-top: none;
                        padding: 20px 25px;
                        justify-content: center;
                    }
                    .custom-modal .btn-edit {
                        padding: 10px 24px;
                        font-size: 1rem;
                        font-weight: 500;
                        transition: all 0.3s ease;
                        min-width: 200px;
                    }
                    .custom-modal .btn-edit:hover {
                        transform: translateY(-1px);
                        box-shadow: 0 4px 8px rgba(0,0,0,0.1);
                        background-color: " . (isset($config['color_principal']) ? adjustBrightness($config['color_principal'], -10) : '#0056b3') . ";
                    }
                    .error-list {
                        list-style: none;
                        padding: 0;
                        margin: 0;
                    }
                    .error-list li {
                        padding: 8px 0;
                        padding-left: 24px;
                        position: relative;
                    }
                    .error-list li:before {
                        content: '•';
                        color: #dc3545;
                        position: absolute;
                        left: 8px;
                    }
                    @keyframes modalFadeIn {
                        from {
                            opacity: 0;
                            transform: translateY(-20px);
                        }
                        to {
                            opacity: 1;
                            transform: translateY(0);
                        }
                    }
                </style>
                <div class='custom-modal' id='errorModal'>
                    <div class='modal-content'>
                        <div class='modal-header'>
                            <h5 class='modal-title'>
                                <i class='fas fa-exclamation-triangle'></i>
                                Datos Incompletos para Facturación
                            </h5>
                        </div>
                        <div class='modal-body'>
                            <p class='text-muted mb-3'>Para poder generar una factura electrónica, es necesario completar los siguientes datos del cliente:</p>
                            <ul class='error-list'>
                                " . implode('', array_map(function($error) {
                                    return "<li>" . htmlspecialchars($error) . "</li>";
                                }, $errores)) . "
                            </ul>
                        </div>
                        <div class='modal-footer'>
                            <button type='button' class='btn btn-primary btn-edit' onclick='editarCliente()'>
                                <i class='fas fa-edit'></i> Completar Datos del Cliente
                            </button>
                        </div>
                    </div>
                </div>
                <script>
                    function editarCliente() {
                        window.location.href = 'editar-cliente.php?id=" . $clienteSeleccionado['id_cliente'] . "';
                    }
                </script>";
                exit;
            }
        }
        
        $_SESSION['cliente_seleccionado'] = $clienteSeleccionado;
    }

    header('Location: facturar.php?accion=seleccionar_cliente');
    exit;
}

// Modificar la sección de búsqueda de venta
if (isset($_POST['numero_venta']) && !empty($_POST['numero_venta'])) {
    $ventaId = trim($_POST['numero_venta']);

    // Primero verificar si existen registros
    $sqlVerificar = "SELECT COUNT(*) FROM venta_items WHERE venta_id = :venta_id";
    $stmtVerificar = $pdo->prepare($sqlVerificar);
    $stmtVerificar->bindParam(':venta_id', $ventaId, PDO::PARAM_INT);
    $stmtVerificar->execute();
    $cantidad = $stmtVerificar->fetchColumn();
    
    if ($cantidad > 0) {
        // Si hay registros, hacer la consulta completa con el nombre correcto de la columna 'id'
        $sql = "SELECT p.codigo, p.titulo, p.iva,
                       vi.cantidad, vi.precio_unitario, vi.subtotal, vi.dias_credito
                FROM venta_items vi 
                INNER JOIN productos p ON vi.producto_id = p.id  -- Cambiado de p.id_producto a p.id
                WHERE vi.venta_id = :venta_id";
        
        $stmt = $pdo->prepare($sql);
        $stmt->bindParam(':venta_id', $ventaId, PDO::PARAM_INT);
        $stmt->execute();
        
        $itemsFactura = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        if (!empty($itemsFactura)) {
            $_SESSION['items_factura'] = $itemsFactura;
            $_SESSION['numero_venta'] = $ventaId;
            header('Location: facturar.php?accion=buscar_venta');
            exit;
        }
    }
    
    $_SESSION['mensaje_error'] = "No se encontraron items para la venta " . htmlspecialchars($ventaId);
    header('Location: facturar.php');
    exit;
}

// Primero, modifica la sección donde se recuperan los datos de la sesión
// Coloca esto después del session_start()
if (isset($_GET['accion'])) {
    if ($_GET['accion'] == 'buscar_cliente' && isset($_SESSION['temp_clientes'])) {
        $clientes = $_SESSION['temp_clientes'];
        unset($_SESSION['temp_clientes']);
    }
}

// Recuperar cliente seleccionado de la sesión
$clienteSeleccionado = isset($_SESSION['cliente_seleccionado']) ? $_SESSION['cliente_seleccionado'] : null;

// Limpiar la selección si se solicita explícitamente
if (isset($_GET['limpiar'])) {
    if ($_GET['limpiar'] == 'cliente') {
        unset($_SESSION['cliente_seleccionado']);
        unset($_SESSION['temp_busqueda']); // Agregar esta línea
        $clienteSeleccionado = null;
        header('Location: facturar.php');
        exit;
    }
    
    if ($_GET['limpiar'] == 'venta') {
        unset($_SESSION['items_factura']);
        unset($_SESSION['numero_venta']);
        $itemsFactura = [];
        header('Location: facturar.php');
        exit;
    }
}

// Agregar esto después del session_start() y los requires

// Limpiar mensajes al recargar la página directamente
if ($_SERVER['REQUEST_METHOD'] === 'GET' && empty($_GET['accion'])) {
    unset($_SESSION['mensaje_error']);
    unset($_SESSION['mensaje_exito']);
    unset($_SESSION['numero_venta']);
    unset($_SESSION['items_factura']);
    unset($_SESSION['pdf_url']);  // Limpiar la URL del PDF almacenada
}

// Agregar esto después de la inicialización de variables
if (isset($_GET['accion']) && $_GET['accion'] == 'buscar_venta') {
    $itemsFactura = isset($_SESSION['items_factura']) ? $_SESSION['items_factura'] : [];
}

// Guardar el tipo de factura antes de incluir el header
$facturaConfig = [
    'tipo' => isset($config['factura_tipo']) ? (int)$config['factura_tipo'] : 1
];

// Aplicar CSS del tema
//echo getThemeCSS();
require_once '../includes/header.php';
?>
<!DOCTYPE html>
<html lang="es">
<head>


    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Facturación</title>
    <link rel="shortcut icon" href="<?php echo isset($config['favicon']) ? '../' . $config['favicon'] : '../img/favicon.png'; ?>" type="image/x-icon">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
    <style>
        .card {
            margin-bottom: 1.5rem;
            box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important;
        }
        
        .card-header {
            background-color: <?php echo isset($config['color_principal']) ? $config['color_principal'] : '#007bff'; ?>;
            color: white;
            border-bottom: 0;
        }
        
        .table-dark th {
            background-color: #212529 !important;
            color: white !important;
        }
        .error-details {
            font-size: 14px;
            line-height: 1.5;
        }
        .error-details ul {
            margin-bottom: 0;
        }
        .error-details li {
            margin-bottom: 5px;
        }
        .alert-danger {
            background-color: #fff;
            border-left: 4px solid #dc3545;
        }
        .badge {
    font-size: 0.875rem;
    padding: 0.4em 0.8em;
}
.text-danger {
    margin-bottom: 0.25rem;
}
.table-sm th {
    background-color: #f8f9fa;
}
pre {
        font-size: 13px;
        line-height: 1.4;
        font-family: Consolas, Monaco, 'Courier New', monospace;
        margin: 0;
        white-space: pre-wrap;
        word-wrap: break-word;
    }
    
    .card-header small {
        font-size: 85%;
        opacity: 0.8;
    }
    
    .btn-primary {
        background-color: <?php echo isset($config['color_principal']) ? $config['color_principal'] : '#007bff'; ?>;
        border-color: <?php echo isset($config['color_principal']) ? $config['color_principal'] : '#007bff'; ?>;
    }
    
    .btn-primary:hover {
        filter: brightness(90%);
    }
    </style>

</head>
<body>

    <div class="container py-4">
        <div class="d-flex justify-content-between align-items-center mb-4">
            <h1>Facturación</h1>
            <?php if ($facturaConfig['tipo'] === 1): ?>
            <a href="historial_facturas.php" class="btn btn-outline-secondary">
                <i class="fas fa-history"></i> Ver historial de facturas
            </a>
            <?php endif; ?>
        </div>
        
        <div class="row">
            <!-- Aquí va el contenido existente de las tarjetas -->
            <!-- Tarjeta de búsqueda de cliente -->
            <div class="col-12 mb-4">
                <div class="card shadow">
                    <div class="card-header" style="background-color: <?php echo isset($config['color_principal']) ? $config['color_principal'] : '#007bff'; ?>; color: white;">
                        <h5 class="card-title mb-0">Datos del Cliente</h5>
                    </div>
                    <div class="card-body">
                        <!-- Sección de mensajes -->
                        <?php if (isset($_SESSION['mensaje_exito'])): ?>
                            <div class="alert alert-success alert-dismissible fade show" role="alert">
                                <i class="fas fa-check-circle"></i> 
                                <?php echo $_SESSION['mensaje_exito']; ?>
                                <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                            </div>
                            <?php unset($_SESSION['mensaje_exito']); ?>
                        <?php endif; ?>

                        <?php if (isset($_SESSION['mensaje_error'])): ?>
                            <div class="alert alert-danger alert-dismissible fade show" role="alert">
                                <?php echo $_SESSION['mensaje_error']; ?>
                                <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                            </div>
                            <?php unset($_SESSION['mensaje_error']); ?>
                        <?php endif; ?>

                        <form method="post" id="formBuscarCliente" class="mb-3" action="facturar.php">
                            <div class="position-relative">
                                <input type="text" class="form-control" name="buscar_cliente" id="buscar_cliente" 
                                       placeholder="Buscar por documento, nombre, apellido o razón social..."
                                       autocomplete="off"
                                       value="<?php echo isset($_SESSION['temp_busqueda']) ? htmlspecialchars($_SESSION['temp_busqueda']) : ''; ?>">
                                <div id="resultadosBusqueda" class="position-absolute w-100 mt-1 shadow rounded-3 d-none" 
                                     style="z-index: 1000; max-height: 300px; overflow-y: auto; background: white;">
                                </div>
                            </div>
                        </form>
                        
                        <style>
                        .resultado-cliente {
                            padding: 8px 15px;
                            cursor: pointer;
                            border-bottom: 1px solid #eee;
                        }
                        .resultado-cliente:hover {
                            background-color: #f8f9fa;
                        }
                        .resultado-cliente:last-child {
                            border-bottom: none;
                        }
                        .cliente-info {
                            font-size: 0.9em;
                            color: #6c757d;
                        }
                        </style>
                        
                        <script>
                        document.addEventListener('DOMContentLoaded', function() {
                            let timeoutId;
                            const input = document.getElementById('buscar_cliente');
                            const resultadosDiv = document.getElementById('resultadosBusqueda');
                            
                            // Función para realizar la búsqueda
                            function buscarClientes(termino) {
                                if (termino.length < 2) {
                                    resultadosDiv.classList.add('d-none');
                                    return;
                                }
                                
                                fetch('buscar_clientes_ajax.php?term=' + encodeURIComponent(termino))
                                    .then(response => response.json())
                                    .then(data => {
                                        if (data.error) {
                                            console.error('Error:', data.error);
                                            return;
                                        }
                                        
                                        if (data.results && data.results.length > 0) {
                                            resultadosDiv.innerHTML = data.results.map(item => `
                                                <div class="resultado-cliente" data-cliente='${JSON.stringify(item.cliente)}'>
                                                    <div><strong>${item.text}</strong></div>
                                                    <div class="cliente-info">
                                                        ${item.cliente.email ? `Email: ${item.cliente.email}` : ''}
                                                        ${item.cliente.telefono_principal ? ` | Tel: ${item.cliente.telefono_principal}` : ''}
                                                    </div>
                                                </div>
                                            `).join('');
                                            
                                            resultadosDiv.classList.remove('d-none');
                                            
                                            // Agregar eventos click a los resultados
                                            document.querySelectorAll('.resultado-cliente').forEach(elemento => {
                                                elemento.addEventListener('click', function() {
                                                    const clienteData = JSON.parse(this.dataset.cliente);
                                                    seleccionarCliente(clienteData);
                                                });
                                            });
                                        } else {
                                            resultadosDiv.innerHTML = '<div class="p-3 text-muted">No se encontraron resultados</div>';
                                            resultadosDiv.classList.remove('d-none');
                                        }
                                    })
                                    .catch(error => {
                                        console.error('Error:', error);
                                        resultadosDiv.innerHTML = '<div class="p-3 text-danger">Error al buscar</div>';
                                        resultadosDiv.classList.remove('d-none');
                                    });
                            }
                            
                            // Función para seleccionar un cliente
                            function seleccionarCliente(cliente) {
                                // Crear un formulario oculto para enviar los datos
                                const form = document.createElement('form');
                                form.method = 'POST';
                                form.action = 'facturar.php';
                                
                                const input = document.createElement('input');
                                input.type = 'hidden';
                                input.name = 'cliente_id';
                                input.value = cliente.id_cliente;
                                
                                form.appendChild(input);
                                document.body.appendChild(form);
                                form.submit();
                            }
                            
                            // Evento input para búsqueda con debounce
                            input.addEventListener('input', function() {
                                clearTimeout(timeoutId);
                                const termino = this.value.trim();
                                
                                timeoutId = setTimeout(() => {
                                    buscarClientes(termino);
                                }, 300);
                            });
                            
                            // Cerrar resultados al hacer clic fuera
                            document.addEventListener('click', function(e) {
                                if (!input.contains(e.target) && !resultadosDiv.contains(e.target)) {
                                    resultadosDiv.classList.add('d-none');
                                }
                            });
                        });
                        </script>

                        <?php if ($clienteSeleccionado): ?>
                        <div class="card">
                            <div class="card-header bg-light">
                                <h5 class="card-title mb-0 text-dark">Datos del Cliente</h5>
                            </div>
                            <div class="card-body">
                                <?php if (!$clienteSeleccionado): ?>
                                <form method="POST" class="mb-4">
                                    <div class="row align-items-end">
                                        <div class="col-md-8">
                                            <label for="buscar_cliente" class="form-label">Buscar Cliente</label>
                                            <input type="text" class="form-control" name="buscar_cliente" id="buscar_cliente" 
                                                   placeholder="Ingrese número de documento, nombre, apellido o razón social"
                                                   value="<?php echo isset($_SESSION['temp_busqueda']) ? htmlspecialchars($_SESSION['temp_busqueda']) : ''; ?>">
                                        </div>
                                        <div class="col-md-4">
                                            <button type="submit" class="btn btn-primary w-100">
                                                <i class="fas fa-search"></i> Buscar
                                            </button>
                                        </div>
                                    </div>
                                </form>

                                <?php if (isset($clientes) && !empty($clientes)): ?>
                                <div class="table-responsive mt-3">
                                    <table class="table table-hover">
                                        <thead class="table-dark">
                                            <tr>
                                                <th>Documento</th>
                                                <th>Nombre/Razón Social</th>
                                                <th>Email</th>
                                                <th>Teléfono</th>
                                                <th>Acción</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            <?php foreach ($clientes as $cliente): ?>
                                            <tr>
                                                <td><?php echo htmlspecialchars($cliente['tipo_documento'] . ': ' . $cliente['numero_documento']); ?></td>
                                                <td><?php echo htmlspecialchars($cliente['razon_social'] ?: ($cliente['nombre'] . ' ' . $cliente['apellidos'])); ?></td>
                                                <td><?php echo htmlspecialchars($cliente['email']); ?></td>
                                                <td><?php echo htmlspecialchars($cliente['telefono_principal']); ?></td>
                                                <td>
                                                    <form method="POST">
                                                        <input type="hidden" name="cliente_id" value="<?php echo $cliente['id_cliente']; ?>">
                                                        <button type="submit" class="btn btn-sm btn-primary">
                                                            <i class="fas fa-check"></i> Seleccionar
                                                        </button>
                                                    </form>
                                                </td>
                                            </tr>
                                            <?php endforeach; ?>
                                        </tbody>
                                    </table>
                                </div>
                                <?php endif; ?>
                                
                                <?php else: ?>
                                <div class="row g-3">
                                    <div class="col-md-6">
                                        <div class="mb-3">
                                            <label class="fw-bold">Tipo documento:</label>
                                            <div class="border-bottom p-2"><?php echo htmlspecialchars($clienteSeleccionado['tipo_documento'] ?? '-'); ?></div>
                                        </div>
                                        <div class="mb-3">
                                            <label class="fw-bold">Número documento:</label>
                                            <div class="border-bottom p-2"><?php echo htmlspecialchars($clienteSeleccionado['numero_documento'] ?? '-'); ?></div>
                                        </div>
                                        <div class="mb-3">
                                            <label class="fw-bold">Nombre completo:</label>
                                            <div class="border-bottom p-2">
                                                <?php 
                                                    $nombreCompleto = trim(($clienteSeleccionado['nombre'] ?? '') . ' ' . ($clienteSeleccionado['apellidos'] ?? ''));
                                                    echo htmlspecialchars($nombreCompleto ?: '-');
                                                ?>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="col-md-6">
                                        <div class="mb-3">
                                            <label class="fw-bold">Razón social:</label>
                                            <div class="border-bottom p-2"><?php echo htmlspecialchars($clienteSeleccionado['razon_social'] ?? '-'); ?></div>
                                        </div>
                                        <div class="mb-3">
                                            <label class="fw-bold">Email:</label>
                                            <div class="border-bottom p-2"><?php echo htmlspecialchars($clienteSeleccionado['email'] ?? '-'); ?></div>
                                        </div>
                                        <div class="mb-3">
                                            <label class="fw-bold">Teléfono:</label>
                                            <div class="border-bottom p-2"><?php echo htmlspecialchars($clienteSeleccionado['telefono_principal'] ?? '-'); ?></div>
                                        </div>
                                    </div>
                                </div>
                                <div class="mt-3">
                                    <a href="facturar.php?limpiar=cliente" class="btn btn-outline-secondary">
                                        <i class="fas fa-user-edit"></i> Cambiar cliente
                                    </a>
                                </div>
                                <?php endif; ?>
                            </div>
                        </div>
                        <?php endif; ?>
                    </div>
                </div>
            </div>
            
            <!-- Tarjeta de búsqueda de venta -->
            <div class="col-12 mb-4">
                <div class="card shadow">
                    <div class="card-header" style="background-color: <?php echo isset($config['color_principal']) ? $config['color_principal'] : '#007bff'; ?>; color: white;">
                        <h5 class="card-title mb-0">Datos de la Venta</h5>
                    </div>
                    <div class="card-body">
                        <form method="post" class="mb-3" action="facturar.php">
                            <?php if ($clienteSeleccionado && isset($clienteSeleccionado['id'])): ?>
                            <input type="hidden" name="cliente_id" value="<?php echo htmlspecialchars($clienteSeleccionado['id']); ?>">
                            <?php endif; ?>
                            <div class="mb-3">
                                <label for="numero_venta" class="form-label">Número de venta a facturar:</label>
                                <div class="input-group">
                                    <input type="text" class="form-control" name="numero_venta" id="numero_venta" 
                                           value="<?php echo isset($_SESSION['numero_venta']) ? htmlspecialchars($_SESSION['numero_venta']) : ''; ?>"
                                           required>
                                    <button class="btn btn-outline-secondary" type="submit">
                                        <i class="fas fa-search"></i> Buscar
                                    </button>
                                </div>
                            </div>
                        </form>
                        
                        <?php if (!empty($itemsFactura)): ?>
                        <div class="table-responsive">
                            <table class="table table-bordered table-striped">
                                <thead class="table-dark">
                                    <tr>
                                        <th>Código</th>
                                        <th>Descripción</th>
                                        <th>Cantidad</th>
                                        <th>Precio</th>
                                        <th>IVA</th>
                                        <th>Subtotal</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php 
                                    $subtotal = 0;
                                    $totalIva = 0;
                                    $total = 0;
                                    
                                    foreach ($itemsFactura as $item): 
                                        $cantidad = isset($item['cantidad']) ? $item['cantidad'] : 0;
                                        $precio = isset($item['precio_unitario']) ? $item['precio_unitario'] : 0;
                                        $iva = isset($item['iva']) ? $item['iva'] : 0;
                                        
                                        $itemSubtotal = $cantidad * $precio;
                                        $itemIva = $itemSubtotal * ($iva / 100);
                                        
                                        $subtotal += $itemSubtotal;
                                        $totalIva += $itemIva;
                                        $total += ($itemSubtotal + $itemIva);
                                    ?>
                                    <tr>
                                        <td><?php echo isset($item['codigo']) ? htmlspecialchars($item['codigo']) : ''; ?></td>
                                        <td><?php echo isset($item['titulo']) ? htmlspecialchars($item['titulo']) : ''; ?></td>
                                        <td><?php echo isset($item['cantidad']) ? htmlspecialchars($item['cantidad']) : ''; ?></td>
                                        <td><?php 
                                            $decimales = isset($configDB['con_decimales']) ? ($configDB['con_decimales'] ? 2 : 0) : 2;
                                            echo isset($item['precio_unitario']) ? number_format($item['precio_unitario'], $decimales, ',', '.') : ''; 
                                        ?></td>
                                        <td><?php echo isset($item['iva']) ? htmlspecialchars($item['iva']) : ''; ?>%</td>
                                        <td><?php echo number_format($itemSubtotal, $decimales, ',', '.'); ?></td>
                                    </tr>
                                    <?php endforeach; ?>
                                </tbody>
                                <tfoot>
                                    <tr>
                                        <td colspan="5" class="text-end"><strong>Total:</strong></td>
                                        <td><strong><?php 
                                            $decimales = isset($configDB['con_decimales']) ? ($configDB['con_decimales'] ? 2 : 0) : 2;
                                            echo number_format($subtotal, $decimales, ',', '.'); 
                                        ?></strong></td>
                                    </tr>
                                </tfoot>
                            </table>
                        </div>
                        
                        <?php if ($clienteSeleccionado): ?>
                        <div class="d-grid mt-3">
                            <form method="post" action="<?php echo $facturaConfig['tipo'] === 1 ? 'enviar_factura.php' : 'generar_factura_preimpresa.php'; ?>">
                                <input type="hidden" name="cliente_id" value="<?php echo isset($clienteSeleccionado['id_cliente']) ? htmlspecialchars($clienteSeleccionado['id_cliente']) : ''; ?>">
                                <input type="hidden" name="venta_id" value="<?php echo isset($_SESSION['numero_venta']) ? htmlspecialchars($_SESSION['numero_venta']) : ''; ?>">
                                
                                <!-- Agregar los radio buttons -->
                                <div class="mb-3">
                                    <label class="form-label">Condición de la factura:</label>
                                    <div class="form-check">
                                        <input class="form-check-input" type="radio" name="condicion_tipo" id="contado" value="1" checked>
                                        <label class="form-check-label" for="contado">
                                            Contado
                                        </label>
                                    </div>
                                    <div class="form-check">
                                        <input class="form-check-input" type="radio" name="condicion_tipo" id="credito" value="2">
                                        <label class="form-check-label" for="credito">
                                            Crédito
                                        </label>
                                    </div>
                                </div>
                                
                                <!-- Campo informativo para días de crédito -->
                                <div id="infoCredito" class="mb-3 d-none">
                                    <div class="alert alert-info">
                                        <i class="fas fa-info-circle"></i> 
                                        <span id="diasCreditoInfo">Se utilizarán los días de crédito registrados en la venta</span>
                                    </div>
                                </div>
                                
                                <!-- Mensaje sobre la tabla facturados -->
                                <?php
                                // Verificar si la tabla facturados existe
                                try {
                                    $tablaExiste = $pdo->query("SHOW TABLES LIKE 'facturados'")->rowCount() > 0;
                                    if (!$tablaExiste) {
                                        echo '<div class="alert alert-warning mb-3">
                                            <i class="fas fa-exclamation-triangle"></i> 
                                            La tabla "facturados" no existe. 
                                            <a href="crear_tabla_facturados.php" class="alert-link">Hacer clic aquí para crearla</a>.
                                        </div>';
                                    }
                                } catch (Exception $e) {
                                    error_log("Error al verificar tabla facturados: " . $e->getMessage());
                                }
                                ?>

                                <button type="submit" class="btn btn-success">
                                    <i class="fas fa-file-invoice"></i> Generar Factura
                                </button>
                            </form>
                        </div>
                        <?php else: ?>
                        <div class="alert alert-warning mt-3">
                            <i class="fas fa-exclamation-triangle"></i> Debe seleccionar un cliente para poder generar la factura.
                        </div>
                        <?php endif; ?>
                        
                        <div class="mt-3">
                            <a href="facturar.php?limpiar=venta" class="btn btn-outline-secondary">
                                <i class="fas fa-search"></i> Buscar otra venta
                            </a>
                        </div>
                        
                        <?php elseif (isset($_SESSION['numero_venta'])): ?>
                        <div class="alert alert-danger">
                            <i class="fas fa-times-circle"></i> No se encontraron items para la venta con ID: <?php echo htmlspecialchars($_SESSION['numero_venta']); ?>
                        </div>
                        <div class="mt-3">
                            <a href="facturar.php?limpiar=venta" class="btn btn-outline-secondary">
                                <i class="fas fa-search"></i> Buscar otra venta
                            </a>
                        </div>
                        <?php endif; ?>
                    </div>
                </div>
            </div>
            
            <!-- Sección de Cancelar Factura (solo visible para factura electrónica) -->
            <?php
            // Mostrar sección solo si es factura electrónica (tipo 1)
            if ($facturaConfig['tipo'] === 1): ?>
            <div class="col-12 mb-4">
                <div class="card shadow">
                    <div class="card-header" style="background-color: <?php echo isset($config['color_principal']) ? $config['color_principal'] : '#007bff'; ?>; color: white;">
                        <h5 class="card-title mb-0">Cancelar Factura</h5>
                    </div>
                    <div class="card-body">
                        <form method="post" action="cancelar_factura.php">
                            <div class="mb-3">
                                <label for="cdc" class="form-label">CDC de la factura a cancelar:</label>
                                <input type="text" 
                                       class="form-control" 
                                       id="cdc" 
                                       name="cdc" 
                                       placeholder="Ingrese el CDC de la factura"
                                       required
                                       pattern="[0-9]{44}"
                                       title="El CDC debe tener 44 dígitos numéricos">
                                <small class="form-text text-muted">
                                    Ingrese los 44 dígitos del CDC de la factura que desea cancelar
                                </small>
                            </div>
                            <button type="submit" class="btn btn-danger">
                                <i class="fas fa-ban"></i> Cancelar Factura
                            </button>
                        </form>
                    </div>
                </div>
            </div>
            <?php endif; ?>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        // Código JavaScript para mejorar la experiencia de usuario
        document.addEventListener('DOMContentLoaded', function() {
            // Enfocar el campo de búsqueda al cargar la página
            const buscarClienteInput = document.getElementById('buscar_cliente');
            const numeroVentaInput = document.getElementById('numero_venta');
            
            if (buscarClienteInput && numeroVentaInput) {
                if (!numeroVentaInput.value) {
                    buscarClienteInput.focus();
                } else {
                    numeroVentaInput.focus();
                }
            }
            
            // Manejar visualización de la información de crédito
            const radioContado = document.getElementById('contado');
            const radioCredito = document.getElementById('credito');
            const infoCredito = document.getElementById('infoCredito');
            
            if (radioContado && radioCredito && infoCredito) {
                // Eventos para mostrar/ocultar la información de crédito
                radioCredito.addEventListener('change', function() {
                    if (this.checked) {
                        infoCredito.classList.remove('d-none');
                        // Carga los días de crédito si hay una venta seleccionada
                        cargarDiasCredito();
                    }
                });
                
                radioContado.addEventListener('change', function() {
                    if (this.checked) {
                        infoCredito.classList.add('d-none');
                    }
                });
                
                // Verificar estado inicial
                if (radioCredito.checked) {
                    infoCredito.classList.remove('d-none');
                    cargarDiasCredito();
                }
            }
            
            // Función para cargar los días de crédito de la venta
            function cargarDiasCredito() {
                const ventaId = numeroVentaInput ? numeroVentaInput.value : '';
                const diasInfoElement = document.getElementById('diasCreditoInfo');
                
                if (ventaId && diasInfoElement) {
                    // Aquí podrías hacer una llamada AJAX para obtener los días de crédito
                    // Por ahora, simplemente mostraremos un mensaje informativo
                    diasInfoElement.textContent = 'La cantidad de días de crédito se calculará automáticamente según lo registrado en la venta #' + ventaId;
                }
            }
        });
    </script>

    
</body>
</html>

<!-- Mensajes de Error -->
<?php if (isset($_SESSION['mensaje_error']) || isset($_SESSION['debug_info'])): ?>
    <div class="card mt-4">
        <div class="card-header bg-danger text-white">
            <h6 class="mb-0">
                <i class="fas fa-exclamation-triangle"></i> Error en el Proceso de Facturación
                <small class="float-end">
                    <?php echo isset($_SESSION['error_detalles']['tiempo']) ? $_SESSION['error_detalles']['tiempo'] : date('Y-m-d H:i:s'); ?>
                </small>
            </h6>
        </div>
        <div class="card-body">
            <?php if (isset($_SESSION['mensaje_error'])): ?>
                <p class="alert alert-danger mb-2">
                    <?php echo htmlspecialchars($_SESSION['mensaje_error']); ?>
                </p>
            <?php endif; ?>

            <?php if (isset($_SESSION['error_detalles'])): ?>
                <div class="alert alert-warning">
                    <strong>Detalles técnicos:</strong>
                    <ul class="mb-0">
                        <li>Dominio configurado: <?php echo htmlspecialchars($_SESSION['error_detalles']['dominio'] ?? 'No disponible'); ?></li>
                        <li>URL completa: <?php echo htmlspecialchars($_SESSION['error_detalles']['url'] ?? 'No disponible'); ?></li>
                        <li>Código de error: <?php echo htmlspecialchars($_SESSION['error_detalles']['errno'] ?? 'No disponible'); ?></li>
                        <li>Descripción del error: <?php echo htmlspecialchars($_SESSION['error_detalles']['error'] ?? 'No disponible'); ?></li>
                        <li>Tiempo del error: <?php echo htmlspecialchars($_SESSION['error_detalles']['tiempo'] ?? 'No disponible'); ?></li>
                    </ul>
                </div>
            <?php endif; ?>

            <?php if (isset($_SESSION['debug_info'])): ?>
                <div class="alert alert-info">
                    <strong>Información de depuración adicional:</strong>
                    <ul class="mb-0">
                        <li>Tiempo de la petición: <?php echo htmlspecialchars($_SESSION['debug_info']['tiempo']); ?></li>
                        <li>Código HTTP: <?php echo htmlspecialchars($_SESSION['debug_info']['http_code']); ?></li>
                        <li>Error cURL: <?php echo htmlspecialchars($_SESSION['debug_info']['curl_error']); ?></li>
                        <li>Código de error cURL: <?php echo htmlspecialchars($_SESSION['debug_info']['curl_errno']); ?></li>
                    </ul>
                </div>
            <?php endif; ?>
            <?php 
            // Limpiar todos los mensajes y datos de debug después de mostrarlos
            if (isset($_SESSION['mensaje_error'])) {
                error_log("Mostrando y limpiando mensaje de error: " . $_SESSION['mensaje_error']);
                unset($_SESSION['mensaje_error']);
            }
            if (isset($_SESSION['error_detalles'])) {
                error_log("Limpiando detalles de error");
                unset($_SESSION['error_detalles']);
            }
            if (isset($_SESSION['debug_info'])) {
                error_log("Limpiando información de depuración");
                unset($_SESSION['debug_info']);
            }
            ?>
        </div>
    </div>
<?php endif; ?>

<!-- Respuesta del Servidor -->
<?php 
if (isset($_SESSION['respuesta_servidor'])): 
    $respuesta = $_SESSION['respuesta_servidor'];
    $tipoRespuesta = isset($respuesta['tipo']) ? $respuesta['tipo'] : 'info';
    $headerClass = $tipoRespuesta === 'error' ? 'bg-danger' : 'bg-info';
    $icon = $tipoRespuesta === 'error' ? 'fa-exclamation-triangle' : 'fa-server';
?>
    <div class="card mt-4">
        <div class="card-header <?php echo $headerClass; ?> text-white">
            <h6 class="mb-0">
                <i class="fas <?php echo $icon; ?>"></i> 
                <?php echo $tipoRespuesta === 'error' ? 'Error en la Comunicación' : 'Respuesta del Servidor'; ?>
                <small class="float-end">
                    <?php echo isset($respuesta['fecha']) ? $respuesta['fecha'] : date('Y-m-d H:i:s'); ?>
                </small>
            </h6>
        </div>
        <div class="card-body">
            <?php if ($tipoRespuesta === 'error'): ?>
                <div class="alert alert-danger">
                    <strong>Error:</strong> 
                    <?php echo htmlspecialchars($respuesta['mensaje'] ?? 'Error de comunicación con el servidor'); ?>
                </div>
                <?php if (isset($respuesta['detalles'])): ?>
                    <div class="alert alert-warning">
                        <strong>Detalles técnicos:</strong>
                        <ul class="mb-0">
                            <?php foreach ($respuesta['detalles'] as $clave => $valor): ?>
                                <li><?php echo htmlspecialchars(ucfirst($clave) . ': ' . $valor); ?></li>
                            <?php endforeach; ?>
                        </ul>
                    </div>
                <?php endif; ?>
            <?php else: ?>
                <pre class="mb-0 bg-light p-3 rounded" style="max-height: 300px; overflow-y: auto;">
<?php echo htmlspecialchars($respuesta['respuesta_completa'] ?? 'No hay detalles disponibles'); ?>
                </pre>
                
                <?php if (isset($respuesta['datos']['CDC']) && $respuesta['datos']['CDC'] !== 'No disponible'): 
                    // Obtener la configuración actual
                    $stmtConfig = $pdo->prepare("SELECT dominio, tenantid FROM configuracion_facturacion LIMIT 1");
                    $stmtConfig->execute();
                    $configActual = $stmtConfig->fetch(PDO::FETCH_ASSOC);
                    
                    // Construir la URL con la configuración actual
                    $urlPDF = rtrim($configActual['dominio'], '/') . '/factuweb/' . 
                             $configActual['tenantid'] . '/factura_' . 
                             $respuesta['datos']['CDC'] . '.pdf';
                ?>
                    <div class="mt-3 text-center">
                        <a href="<?php echo $urlPDF; ?>" 
                           target="_blank" 
                           class="btn btn-primary">
                            <i class="fas fa-file-pdf"></i> 
                            Ver Factura PDF
                        </a>
                    </div>
                <?php endif; ?>
            <?php endif; ?>
        </div>
    </div>
<?php 
    // Limpiar la sesión después de mostrar la respuesta
    unset($_SESSION['respuesta_servidor']);
endif; 
?>

<!-- Agregar después de la sección de respuesta del servidor -->
<?php 
if (isset($_SESSION['respuesta_servidor']) && 
    isset($_SESSION['respuesta_servidor']['datos']['CDC']) && 
    $_SESSION['respuesta_servidor']['datos']['CDC'] !== 'No disponible'): 

    // Obtener la configuración actual
    $stmtConfig = $pdo->prepare("SELECT dominio, tenantid FROM configuracion_facturacion LIMIT 1");
    $stmtConfig->execute();
    $configActual = $stmtConfig->fetch(PDO::FETCH_ASSOC);
    
    // Construir la URL con la configuración actual
    $urlPDF = rtrim($configActual['dominio'], '/') . '/factuweb/' . 
              $configActual['tenantid'] . '/factura_' . 
              $_SESSION['respuesta_servidor']['datos']['CDC'] . '.pdf';
?>
    <div class="mt-3 text-center">
        <a href="<?php echo $urlPDF; ?>" 
           target="_blank" 
           class="btn btn-primary">
            <i class="fas fa-file-pdf"></i> 
            Ver Factura PDF
        </a>
    </div>
<?php endif; ?>

