<?php
require_once 'conexao.php';

// Configurar headers para evitar cache
header('Content-Type: text/html; charset=utf-8');
header('Cache-Control: no-cache, no-store, must-revalidate');

echo "<!DOCTYPE html>";
echo "<html>";
echo "<head>";
echo "<meta charset='utf-8'>";
echo "<title>Teste Correção Rota #50</title>";
echo "<style>";
echo "body { font-family: Arial, sans-serif; margin: 20px; background-color: #f5f5f5; }";
echo ".container { max-width: 1000px; margin: 0 auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }";
echo ".success { color: #28a745; font-weight: bold; }";
echo ".error { color: #dc3545; font-weight: bold; }";
echo ".warning { color: #ffc107; font-weight: bold; }";
echo ".info { color: #17a2b8; font-weight: bold; }";
echo "h1 { color: #333; border-bottom: 2px solid #007bff; padding-bottom: 10px; }";
echo "h2 { color: #555; margin-top: 30px; }";
echo "ul { background: #f8f9fa; padding: 15px; border-radius: 5px; }";
echo "li { margin: 5px 0; }";
echo ".btn { background: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer; text-decoration: none; display: inline-block; margin: 10px 5px; }";
echo ".btn:hover { background: #0056b3; }";
echo "table { width: 100%; border-collapse: collapse; margin: 20px 0; }";
echo "th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }";
echo "th { background-color: #f2f2f2; }";
echo "</style>";
echo "</head>";
echo "<body>";

echo "<div class='container'>";
echo "<h1>🧪 TESTE CORREÇÃO ROTA #50</h1>";

try {
    $pdo = conectarBanco();
    
    // 1. Testar o endpoint corrigido
    echo "<h2>1. Testando Endpoint Corrigido</h2>";
    
    $url = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php?acao=detalhes-rota-completa&id=50";
    
    echo "<p><strong>URL:</strong> <code>$url</code></p>";
    
    $response = file_get_contents($url);
    $data = json_decode($response, true);
    
    if ($data && $data['sucesso']) {
        echo "<p class='success'>✅ Endpoint funcionando!</p>";
        
        $estatisticas = $data['dados']['estatisticas'];
        
        echo "<h3>📊 Estatísticas da Rota #50:</h3>";
        echo "<ul>";
        echo "<li><strong>KM Planejado:</strong> {$estatisticas['km_planejado']} km</li>";
        echo "<li><strong>KM Real (Odômetro):</strong> {$estatisticas['km_real']} km</li>";
        echo "<li><strong>KM GPS (Metros):</strong> " . number_format($estatisticas['km_gps']) . " metros</li>";
        echo "<li><strong>KM GPS (KM):</strong> " . number_format($estatisticas['km_gps'] / 1000, 3) . " km</li>";
        echo "<li><strong>Diferença:</strong> {$estatisticas['diferenca_km']} km</li>";
        echo "<li><strong>Variação:</strong> {$estatisticas['percentual_diferenca']}%</li>";
        echo "</ul>";
        
        // 2. Verificar se o valor está correto
        echo "<h2>2. Verificação do Valor</h2>";
        
        $kmGpsMetros = $estatisticas['km_gps'];
        $kmGpsKm = $kmGpsMetros / 1000;
        
        if ($kmGpsKm > 1) {
            echo "<p class='success'>✅ CORREÇÃO FUNCIONOU! KM GPS agora é " . number_format($kmGpsKm, 3) . " km</p>";
        } else {
            echo "<p class='error'>❌ Ainda está incorreto: " . number_format($kmGpsKm, 3) . " km</p>";
        }
        
        // 3. Comparar com o valor anterior
        echo "<h2>3. Comparação com Valor Anterior</h2>";
        echo "<ul>";
        echo "<li><strong>Antes (incorreto):</strong> 0.007 km</li>";
        echo "<li><strong>Depois (corrigido):</strong> " . number_format($kmGpsKm, 3) . " km</li>";
        echo "<li><strong>Melhoria:</strong> " . number_format(($kmGpsKm / 0.007), 1) . "x maior</li>";
        echo "</ul>";
        
    } else {
        echo "<p class='error'>❌ Erro no endpoint: " . ($data['mensagem'] ?? 'Erro desconhecido') . "</p>";
    }
    
    // 4. Verificar viagens da rota
    echo "<h2>4. Verificar Viagens da Rota</h2>";
    
    $sql = "SELECT rv.viagem_id, v.cliente, v.km_gps_final, v.data_fim
            FROM rota_viagens rv 
            INNER JOIN viagens v ON rv.viagem_id = v.id 
            WHERE rv.solicitacao_rota_id = 50 
            AND v.data_fim IS NOT NULL 
            ORDER BY rv.ordem_execucao";
    
    $stmt = $pdo->query($sql);
    $viagens = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if ($viagens) {
        echo "<p class='success'>✅ Encontradas " . count($viagens) . " viagens</p>";
        
        echo "<table>";
        echo "<tr><th>Viagem ID</th><th>Cliente</th><th>KM GPS Final (metros)</th><th>KM GPS Final (km)</th><th>Data Fim</th></tr>";
        
        $totalKmGps = 0;
        foreach ($viagens as $viagem) {
            $kmGpsMetros = $viagem['km_gps_final'] ?? 0;
            $kmGpsKm = $kmGpsMetros / 1000;
            $totalKmGps += $kmGpsMetros;
            
            echo "<tr>";
            echo "<td>{$viagem['viagem_id']}</td>";
            echo "<td>{$viagem['cliente']}</td>";
            echo "<td>" . number_format($kmGpsMetros) . "</td>";
            echo "<td>" . number_format($kmGpsKm, 3) . "</td>";
            echo "<td>{$viagem['data_fim']}</td>";
            echo "</tr>";
        }
        
        echo "<tr style='background-color: #e8f5e8; font-weight: bold;'>";
        echo "<td colspan='2'><strong>TOTAL</strong></td>";
        echo "<td><strong>" . number_format($totalKmGps) . "</strong></td>";
        echo "<td><strong>" . number_format($totalKmGps / 1000, 3) . "</strong></td>";
        echo "<td></td>";
        echo "</tr>";
        echo "</table>";
        
        // 5. Verificar se a soma bate com o endpoint
        echo "<h2>5. Verificação da Soma</h2>";
        
        $kmGpsEndpoint = $estatisticas['km_gps'] ?? 0;
        $diferenca = abs($totalKmGps - $kmGpsEndpoint);
        
        if ($diferenca < 1) {
            echo "<p class='success'>✅ Soma correta! Endpoint: " . number_format($kmGpsEndpoint) . " metros = Soma: " . number_format($totalKmGps) . " metros</p>";
        } else {
            echo "<p class='error'>❌ Diferença na soma! Endpoint: " . number_format($kmGpsEndpoint) . " vs Soma: " . number_format($totalKmGps) . " (diferença: " . number_format($diferenca) . " metros)</p>";
        }
        
    } else {
        echo "<p class='error'>❌ Nenhuma viagem encontrada</p>";
    }
    
    // 6. Testar no dashboard
    echo "<h2>6. Teste no Dashboard</h2>";
    echo "<p>Agora você pode testar no dashboard:</p>";
    echo "<p><a href='https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/admin/dashboard.html' target='_blank' class='btn'>🔗 Abrir Dashboard</a></p>";
    echo "<p><strong>Instruções:</strong></p>";
    echo "<ol>";
    echo "<li>Abra o dashboard</li>";
    echo "<li>Procure pela rota #50</li>";
    echo "<li>Clique em 'Ver Detalhes'</li>";
    echo "<li>Verifique se o 'Real (GPS)' agora mostra o valor correto</li>";
    echo "</ol>";
    
    echo "<p><a href='javascript:history.back()' class='btn'>Voltar</a></p>";
    
} catch (Exception $e) {
    echo "<p class='error'>❌ Erro: " . htmlspecialchars($e->getMessage()) . "</p>";
    echo "<p><a href='javascript:history.back()' class='btn'>Voltar</a></p>";
}

echo "</div>";
echo "</body>";
echo "</html>";
?>
