<?php
/**
 * 🔍 TESTE DASHBOARD VIAGEM #278
 * Script para testar como o dashboard recebe os dados da viagem #278
 */
header('Content-Type: text/html; charset=utf-8');

echo "<h1>🔍 TESTE DASHBOARD VIAGEM #278</h1>";

try {
    require_once 'conexao.php';
    $pdo = conectarBanco();
    
    echo "<h2>📊 1. Dados da Viagem #278 no Banco</h2>";
    $sql = "SELECT id, cliente, km_gps_final, km_gps_real FROM viagens WHERE id = 278";
    $stmt = $pdo->query($sql);
    $viagem = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($viagem) {
        echo "<p>✅ Viagem #278 encontrada!</p>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>Campo</th><th>Valor</th></tr>";
        echo "<tr><td>ID</td><td>{$viagem['id']}</td></tr>";
        echo "<tr><td>Cliente</td><td>{$viagem['cliente']}</td></tr>";
        echo "<tr><td>KM GPS Final</td><td>{$viagem['km_gps_final']}</td></tr>";
        echo "<tr><td>KM GPS Real</td><td>{$viagem['km_gps_real']}</td></tr>";
        echo "</table>";
    } else {
        echo "<p>❌ Viagem #278 não encontrada!</p>";
        exit;
    }
    
    echo "<h2>📡 2. Testando API do Dashboard (?acao=viagens)</h2>";
    
    // Simular a consulta SQL que o dashboard faz
    $sql = "SELECT v.id, v.cliente, v.km_gps_final, 
                   COALESCE(v.km_gps_real, v.km_gps_final) as km_gps_real
            FROM viagens v 
            LEFT JOIN rota_viagens rv ON v.id = rv.viagem_id 
            WHERE rv.viagem_id IS NULL 
            AND v.id = 278";
    $stmt = $pdo->query($sql);
    $viagemIndividual = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($viagemIndividual) {
        echo "<p>✅ Viagem #278 aparece como viagem individual</p>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>Campo</th><th>Valor</th></tr>";
        foreach ($viagemIndividual as $campo => $valor) {
            echo "<tr><td>{$campo}</td><td>{$valor}</td></tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Viagem #278 NÃO aparece como viagem individual</p>";
    }
    
    echo "<h2>🗺️ 3. Testando API do Dashboard (?acao=viagens - Rotas)</h2>";
    
    // Simular a consulta SQL que o dashboard faz para rotas
    $sql = "SELECT sr.id as rota_id, sr.titulo, sr.status,
                   SUM(v.km_gps_final) as km_gps_final_total,
                   SUM(COALESCE(v.km_gps_real, v.km_gps_final)) as km_gps_real_total
            FROM solicitacoes_rotas sr
            INNER JOIN rota_viagens rv ON sr.id = rv.solicitacao_rota_id
            INNER JOIN viagens v ON rv.viagem_id = v.id
            WHERE sr.id = 80
            GROUP BY sr.id";
    $stmt = $pdo->query($sql);
    $rotaAgregada = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($rotaAgregada) {
        echo "<p>✅ Rota #80 aparece como rota agregada</p>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>Campo</th><th>Valor</th></tr>";
        foreach ($rotaAgregada as $campo => $valor) {
            echo "<tr><td>{$campo}</td><td>{$valor}</td></tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Rota #80 NÃO aparece como rota agregada</p>";
    }
    
    echo "<h2>🧮 4. Simulando JavaScript do Dashboard</h2>";
    
    // Simular o que o JavaScript do dashboard faria
    if ($rotaAgregada) {
        $kmGpsReal = floatval($rotaAgregada['km_gps_real_total']);
        $kmGpsFinal = floatval($rotaAgregada['km_gps_final_total']);
        
        echo "<p>📊 Valores recebidos pela API:</p>";
        echo "<ul>";
        echo "<li><strong>km_gps_real_total:</strong> {$kmGpsReal}</li>";
        echo "<li><strong>km_gps_final_total:</strong> {$kmGpsFinal}</li>";
        echo "</ul>";
        
        // Simular a função calcularKmGps do dashboard
        $kmGpsDisplay = '0 km';
        if ($kmGpsReal > 0) {
            if ($kmGpsReal < 100) {
                $kmGpsDisplay = number_format($kmGpsReal, 3) . ' km';
            } else {
                $kmGpsDisplay = number_format($kmGpsReal / 1000, 3) . ' km';
            }
        } elseif ($kmGpsFinal > 0) {
            if ($kmGpsFinal < 100) {
                $kmGpsDisplay = number_format($kmGpsFinal, 3) . ' km';
            } else {
                $kmGpsDisplay = number_format($kmGpsFinal / 1000, 3) . ' km';
            }
        }
        
        echo "<p>🎯 <strong>Dashboard deve mostrar:</strong> {$kmGpsDisplay}</p>";
    }
    
    echo "<h2>🔧 5. Verificando Cache do Navegador</h2>";
    echo "<p>⚠️ <strong>Possível problema:</strong> Cache do navegador!</p>";
    echo "<p>O dashboard pode estar usando dados em cache. Tente:</p>";
    echo "<ul>";
    echo "<li><strong>Ctrl+F5</strong> (recarregar sem cache)</li>";
    echo "<li><strong>Ctrl+Shift+R</strong> (recarregar forçado)</li>";
    echo "<li><strong>F12 → Network → Disable cache</strong></li>";
    echo "</ul>";
    
} catch (Exception $e) {
    echo "<p>❌ Erro: " . $e->getMessage() . "</p>";
}

echo "<hr>";
echo "<p><strong>🔧 Próximos passos:</strong></p>";
echo "<ol>";
echo "<li>Recarregue o dashboard com Ctrl+F5</li>";
echo "<li>Verifique se a rota #80 mostra 4.670 km</li>";
echo "<li>Se não funcionar, limpe o cache do navegador</li>";
echo "</ol>";
?>
