<?php
// diag_alertas.php
// Script de diagnóstico para el sistema de alertas
// Subir a la carpeta /vistas/ junto con los demás archivos

error_reporting(E_ALL);
ini_set('display_errors', 1);

echo "<h1>Diagnóstico de Alertas de Inventario</h1>";

// 1. Verificar archivo de conexión
$conexionFile = "../config/Conexion.php";
if (file_exists($conexionFile)) {
    echo "<p style='color:green'>[OK] Archivo de conexión encontrado en: $conexionFile</p>";
    require_once $conexionFile;
} else {
    echo "<p style='color:red'>[ERROR] No se encuentra ../config/Conexion.php. La ruta relativa puede estar mal.</p>";
    exit;
}

// 2. Probar conexión a DB
global $conexion;
if ($conexion) {
    echo "<p style='color:green'>[OK] Conexión a Base de Datos exitosa.</p>";
} else {
    echo "<p style='color:red'>[ERROR] Falló la conexión a la Base de Datos.</p>";
    exit;
}

// 3. Verificar Tablas
$tablas = ['inv_productos', 'inv_categorias', 'inv_proveedores'];
foreach ($tablas as $tabla) {
    $sql = "SHOW TABLES LIKE '$tabla'";
    $query = $conexion->query($sql);
    if ($query->num_rows > 0) {
        echo "<p style='color:green'>[OK] Tabla '$tabla' existe.</p>";
    } else {
        echo "<p style='color:red'>[CRITICO] Tabla '$tabla' NO EXISTE. Debe ejecutar el SQL.</p>";
    }
}

// 4. Verificar Datos de Alertas (Simulación)
echo "<h2>Simulación de Alertas</h2>";

// Stock Bajo
$sqlStock = "SELECT * FROM inv_productos WHERE stock_actual <= stock_minimo AND estado = 1";
$queryStock = $conexion->query($sqlStock);
if ($queryStock) {
    $count = $queryStock->num_rows;
    echo "<p>Productos con Stock Bajo encontrados: <strong>$count</strong></p>";
    if ($count > 0) {
        while ($row = $queryStock->fetch_assoc()) {
            echo "<li>" . $row['nombre'] . " (Stock: " . $row['stock_actual'] . ", Min: " . $row['stock_minimo'] . ")</li>";
        }
    }
} else {
    echo "<p style='color:red'>[ERROR] Consulta de Stock Bajo falló: " . $conexion->error . "</p>";
}

// Vencimiento
$sqlVencer = "SELECT *, DATEDIFF(fecha_vencimiento, CURDATE()) as dias FROM inv_productos 
              WHERE fecha_vencimiento IS NOT NULL 
              AND fecha_vencimiento >= CURDATE() 
              AND DATEDIFF(fecha_vencimiento, CURDATE()) <= 60 
              AND estado = 1";
$queryVencer = $conexion->query($sqlVencer);
if ($queryVencer) {
    $count = $queryVencer->num_rows;
    echo "<p>Productos por Vencer encontrados: <strong>$count</strong></p>";
    if ($count > 0) {
        while ($row = $queryVencer->fetch_assoc()) {
            echo "<li>" . $row['nombre'] . " (Vence: " . $row['fecha_vencimiento'] . ", Días: " . $row['dias'] . ")</li>";
        }
    }
} else {
    echo "<p style='color:red'>[ERROR] Consulta de Vencimiento falló: " . $conexion->error . "</p>";
}

echo "<hr>";
echo "<p>Si ve errores en ROJO, por favor tome captura y envíemela.</p>";
?>