<?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 Final 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 FINAL ROTA #50</h1>";

try {
    $pdo = conectarBanco();
    
    // 1. Verificar viagens da rota 50
    echo "<h2>1. Verificar Viagens da Rota #50</h2>";
    
    $sql = "SELECT rv.viagem_id, v.cliente, v.km_gps_final, v.data_fim, v.trajeto
            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 finalizadas</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>Pontos GPS</th></tr>";
        
        $totalKmGps = 0;
        $totalPontos = 0;
        
        foreach ($viagens as $viagem) {
            $kmGpsMetros = $viagem['km_gps_final'] ?? 0;
            $kmGpsKm = $kmGpsMetros / 1000;
            $trajeto = $viagem['trajeto'] ? json_decode($viagem['trajeto'], true) : null;
            $pontos = $trajeto ? count($trajeto) : 0;
            
            $totalKmGps += $kmGpsMetros;
            $totalPontos += $pontos;
            
            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>$pontos</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><strong>$totalPontos</strong></td>";
        echo "</tr>";
        echo "</table>";
        
        // 2. Testar endpoint com timestamp
        echo "<h2>2. Testar Endpoint com Timestamp</h2>";
        
        $timestamp = time();
        $url = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php?acao=detalhes-rota-completa&id=50&_t=$timestamp";
        
        echo "<p><strong>URL:</strong> <code>$url</code></p>";
        
        $context = stream_context_create([
            'http' => [
                'timeout' => 30,
                'user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
                'header' => "Cache-Control: no-cache\r\nPragma: no-cache\r\n"
            ]
        ]);
        
        $response = file_get_contents($url, false, $context);
        
        if ($response !== false) {
            $data = json_decode($response, true);
            
            if ($data && $data['sucesso']) {
                $estatisticas = $data['dados']['estatisticas'];
                
                echo "<h3>📊 Resultado do Endpoint:</h3>";
                echo "<ul>";
                echo "<li><strong>KM Planejado:</strong> {$estatisticas['km_planejado']} km</li>";
                echo "<li><strong>KM Real:</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>";
                
                // 3. Comparar valores
                echo "<h2>3. Comparação de Valores</h2>";
                
                $kmGpsEndpoint = $estatisticas['km_gps'] ?? 0;
                $diferenca = abs($totalKmGps - $kmGpsEndpoint);
                
                echo "<ul>";
                echo "<li><strong>Soma das viagens:</strong> " . number_format($totalKmGps) . " metros</li>";
                echo "<li><strong>Endpoint API:</strong> " . number_format($kmGpsEndpoint) . " metros</li>";
                echo "<li><strong>Diferença:</strong> " . number_format($diferenca) . " metros</li>";
                echo "</ul>";
                
                if ($diferenca < 1) {
                    echo "<p class='success'>✅ VALORES IDÊNTICOS! A correção funcionou!</p>";
                } else {
                    echo "<p class='error'>❌ Valores diferentes! Ainda há problema.</p>";
                }
                
                // 4. Verificar se o valor está correto
                $kmGpsKm = $kmGpsEndpoint / 1000;
                
                if ($kmGpsKm > 1) {
                    echo "<p class='success'>✅ CORREÇÃO FUNCIONOU! KM GPS agora é " . number_format($kmGpsKm, 3) . " km</p>";
                    echo "<p class='success'>✅ Melhoria: " . number_format(($kmGpsKm / 0.007), 1) . "x maior que antes</p>";
                } else {
                    echo "<p class='error'>❌ Ainda está incorreto: " . number_format($kmGpsKm, 3) . " km</p>";
                }
                
            } else {
                echo "<p class='error'>❌ Erro no endpoint: " . ($data['mensagem'] ?? 'Erro desconhecido') . "</p>";
            }
        } else {
            echo "<p class='error'>❌ Erro ao acessar endpoint</p>";
        }
        
    } else {
        echo "<p class='error'>❌ Nenhuma viagem finalizada encontrada</p>";
    }
    
    // 5. Instruções para testar no dashboard
    echo "<h2>4. Testar no Dashboard</h2>";
    echo "<p><strong>Para testar no dashboard:</strong></p>";
    echo "<ol>";
    echo "<li><strong>Limpar cache do navegador:</strong> Ctrl+F5 ou Ctrl+Shift+R</li>";
    echo "<li><strong>Abrir dashboard em modo incógnito</strong></li>";
    echo "<li><strong>Procurar pela rota #50</strong></li>";
    echo "<li><strong>Clicar em 'Ver Detalhes'</strong></li>";
    echo "<li><strong>Verificar se 'Real (GPS)' mostra o valor correto</strong></li>";
    echo "</ol>";
    
    echo "<p><a href='https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/admin/dashboard.html' target='_blank' class='btn'>🔗 Abrir Dashboard</a></p>";
    
    // 6. Resumo final
    echo "<h2>5. Resumo Final</h2>";
    
    if (isset($kmGpsKm) && $kmGpsKm > 1) {
        echo "<div style='background: #d4edda; padding: 15px; border-radius: 5px; border-left: 4px solid #28a745;'>";
        echo "<h3>🎉 SUCESSO!</h3>";
        echo "<p><strong>A correção funcionou!</strong></p>";
        echo "<ul>";
        echo "<li><strong>Antes:</strong> 0.007 km (incorreto)</li>";
        echo "<li><strong>Depois:</strong> " . number_format($kmGpsKm, 3) . " km (correto)</li>";
        echo "<li><strong>Melhoria:</strong> " . number_format(($kmGpsKm / 0.007), 1) . "x maior</li>";
        echo "</ul>";
        echo "<p>Agora o dashboard deve mostrar o valor correto do GPS.</p>";
        echo "</div>";
    } else {
        echo "<div style='background: #f8d7da; padding: 15px; border-radius: 5px; border-left: 4px solid #dc3545;'>";
        echo "<h3>❌ PROBLEMA PERSISTE</h3>";
        echo "<p><strong>A correção não funcionou completamente.</strong></p>";
        echo "<p>Pode ser necessário:</p>";
        echo "<ul>";
        echo "<li>Limpar cache do navegador</li>";
        echo "<li>Verificar se há outras rotas com o mesmo problema</li>";
        echo "<li>Investigar se há outros endpoints afetados</li>";
        echo "</ul>";
        echo "</div>";
    }
    
    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>";
?>
