<?php
session_start();

// Validar que el usuario tenga permisos
if (!isset($_SESSION['usuario_id'])) {
    header('Location: ../login.php');
    exit;
}

// Permitir más roles para ver recibos
if (!in_array($_SESSION['rol'], ['admin', 'vendedor', 'cobrador'])) {
    header('Location: ../login.php');
    exit;
}

// Verificar si existe información de recibo en la sesión
if (!isset($_SESSION['recibo']) || !is_array($_SESSION['recibo'])) {
    $_SESSION['error'] = "No hay información de recibo disponible.";
    header('Location: clientes.php');
    exit;
}

// Obtener la configuración
require_once '../includes/config.php';
require_once '../includes/db.php';

$db = new Database();
// Obtener configuración
try {
    $stmt = $db->prepare("SELECT color_principal, color_secundario, favicon FROM configuracion LIMIT 1");
    $stmt->execute();
    $config = $stmt->fetch(PDO::FETCH_ASSOC);
    $color_principal = $config['color_principal'] ?? '#007bff';
    $color_secundario = $config['color_secundario'] ?? '#6c757d';
    // Actualizar la ruta del favicon para que apunte al directorio correcto
    $favicon = !empty($config['favicon']) ? '../uploads/config/' . basename($config['favicon']) : '../assets/img/favicon.ico';
} catch(PDOException $e) {
    $color_principal = '#007bff'; // Color bootstrap por defecto
    $color_secundario = '#6c757d'; // Color bootstrap por defecto
    $favicon = '../assets/img/favicon.ico'; // Valor predeterminado si falla la consulta
}

$cliente_id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
$recibo = $_SESSION['recibo'];
$archivo = $recibo['archivo'];
$nombre = $recibo['nombre'];
$num_recibo = $recibo['num_recibo'];

// Verificar si el archivo existe antes de intentar descargarlo
if (isset($_GET['descargar']) && $_GET['descargar'] == '1') {
    $ruta_completa = __DIR__ . '/' . str_replace('../', '../', $archivo); // Aseguramos ruta absoluta correcta
    if (file_exists($ruta_completa)) {
        // Entregar el archivo para descarga
        header('Content-Description: File Transfer');
        header('Content-Type: application/pdf');
        header('Content-Disposition: attachment; filename="' . $nombre . '"');
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($ruta_completa));
        ob_clean();
        flush();
        readfile($ruta_completa);
        exit;
    } else {
        $_SESSION['error'] = "El archivo del recibo no se encuentra disponible. Ruta: $ruta_completa";
    }
}

// Eliminar la información del recibo de la sesión después de usarla, pero mantener la referencia
// para esta página
$temp_recibo = $_SESSION['recibo'];
// No eliminar si es vista previa
if (!isset($_GET['preview'])) {
    unset($_SESSION['recibo']);
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Recibo de Pago</title>
    <link rel="stylesheet" href="../assets/css/bootstrap.min.css">
    <link rel="stylesheet" href="../assets/css/styles.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
    <!-- Siempre mostrar el favicon, usando el valor de la BD o el predeterminado -->
    <link rel="icon" href="<?php echo $favicon; ?>" type="image/x-icon">
    <link rel="shortcut icon" href="<?php echo $favicon; ?>" type="image/x-icon">
    
    <style>
        :root {
            --color-primary: <?php echo $color_principal; ?>;
            --color-secondary: <?php echo $color_secundario; ?>;
        }
        .recibo-container {
            margin: 20px auto;
            max-width: 800px;
            text-align: center;
        }
        .btn-container {
            margin: 20px 0;
        }
        .pdf-container {
            width: 100%;
            height: 600px;
            border: 1px solid #ddd;
        }
        .btn-volver {
            background-color: var(--color-primary);
            color: white !important;
            padding: 10px 20px;
            font-size: 1.1rem;
        }
        .btn-volver:hover {
            opacity: 0.9;
            color: white !important;
        }
    </style>
</head>
<body>
    <?php include_once '../includes/header.php'; ?>
    
    <div class="container mt-4">
        <div class="recibo-container">
            <h1>Recibo de Pago</h1>
            <p>Se ha generado el recibo número: <strong><?php echo htmlspecialchars($num_recibo); ?></strong></p>
            
            <div class="btn-container">
                <a href="ver-cliente.php?id=<?php echo $cliente_id; ?>" class="btn btn-volver" style="background-color: <?php echo $color_principal; ?>; color: white;">
                    <i class="fas fa-arrow-left mr-2"></i> Volver a Detalles del Cliente
                </a>
            </div>
            
            <!-- Visualización del PDF - Corregimos la ruta para que funcione correctamente -->
            <div class="pdf-container">
                <?php
                $ruta_para_embed = $archivo;
                ?>
                <embed src="<?php echo $ruta_para_embed; ?>" type="application/pdf" width="100%" height="100%">
            </div>
        </div>
    </div>
    
    <?php include_once '../includes/footer.php'; ?>
    
    <script src="../assets/js/bootstrap.bundle.min.js"></script>
    <script src="../assets/js/scripts.js"></script>
</body>
</html>
