<?php
session_start();

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

require_once '../includes/config.php';
require_once '../includes/db.php';

$db = new Database();

// Verificar estructura de la tabla configuracion sin modificarla
function verificarTablaConfiguracion($db) {
    try {
        echo "<h2>Verificando tabla configuracion</h2>";
        
        // Verificar si la tabla existe
        $stmt = $db->query("SHOW TABLES LIKE 'configuracion'");
        $tabla_existe = $stmt->rowCount() > 0;
        
        if (!$tabla_existe) {
            echo "<p class='error'>La tabla 'configuracion' no existe.</p>";
            return false;
        }
        
        // Mostrar la estructura actual sin modificar
        $stmt = $db->query("DESCRIBE configuracion");
        $columnas = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo "<h3>Estructura actual de la tabla 'configuracion':</h3>";
        echo "<table border='1' cellpadding='5' cellspacing='0'>";
        echo "<tr><th>Campo</th><th>Tipo</th><th>Nulo</th><th>Clave</th><th>Predeterminado</th><th>Extra</th></tr>";
        
        // Variables para verificar columnas necesarias
        $tiene_moneda = false;
        $tiene_decimales = false;
        
        foreach ($columnas as $columna) {
            echo "<tr>";
            echo "<td>{$columna['Field']}</td>";
            echo "<td>{$columna['Type']}</td>";
            echo "<td>{$columna['Null']}</td>";
            echo "<td>{$columna['Key']}</td>";
            echo "<td>{$columna['Default']}</td>";
            echo "<td>{$columna['Extra']}</td>";
            echo "</tr>";
            
            if ($columna['Field'] == 'moneda') {
                $tiene_moneda = true;
            }
            
            if ($columna['Field'] == 'con_decimales') {
                $tiene_decimales = true;
            }
        }
        
        echo "</table>";
        
        // Mostrar información sobre características disponibles
        echo "<h3>Características disponibles:</h3>";
        echo "<ul>";
        
        if ($tiene_moneda) {
            echo "<li class='success'>La tabla configuracion tiene la columna 'moneda', que permite personalizar el símbolo de moneda en los recibos.</li>";
        } else {
            echo "<li class='warning'>La columna 'moneda' no existe. El sistema usará '$' como símbolo por defecto.</li>";
        }
        
        if ($tiene_decimales) {
            echo "<li class='success'>La tabla configuracion tiene la columna 'con_decimales', que permite mostrar u ocultar decimales en los importes.</li>";
        } else {
            echo "<li class='warning'>La columna 'con_decimales' no existe. El sistema mostrará importes con decimales por defecto.</li>";
        }
        
        echo "</ul>";
        
        // Mostrar los datos actuales sin modificar
        $stmt = $db->query("SELECT * FROM configuracion LIMIT 1");
        $config = $stmt->fetch(PDO::FETCH_ASSOC);
        
        if ($config) {
            echo "<h3>Datos actuales de configuración:</h3>";
            echo "<table border='1' cellpadding='5' cellspacing='0'>";
            echo "<tr><th>Campo</th><th>Valor</th></tr>";
            
            foreach ($config as $campo => $valor) {
                echo "<tr>";
                echo "<td>{$campo}</td>";
                echo "<td>" . (is_null($valor) ? 'NULL' : htmlspecialchars($valor)) . "</td>";
                echo "</tr>";
            }
            
            echo "</table>";
        } else {
            echo "<p class='warning'>No hay datos en la tabla configuracion.</p>";
        }
        
        return true;
    } catch (Exception $e) {
        echo "<p class='error'>Error al verificar la tabla configuracion: " . $e->getMessage() . "</p>";
        return false;
    }
}

echo "<h1>Verificación de la tabla configuracion</h1>";
echo "<p>Esta herramienta verifica la estructura existente de la tabla configuracion sin modificarla.</p>";

// Añadir estilos
echo "<style>
    .success { color: green; }
    .warning { color: orange; }
    .error { color: red; }
</style>";

// Ejecutar verificación
verificarTablaConfiguracion($db);

echo "<p><a href='analizador-tablas.php'>Ver análisis completo de tablas</a></p>";
echo "<p><a href='index.php'>Volver al panel de administración</a></p>";
?>
