<?php
/**
 * 🧪 TESTE JAVASCRIPT DASHBOARD
 * Script para testar se o JavaScript do dashboard está funcionando corretamente
 */
header('Content-Type: text/html; charset=utf-8');
require_once 'funcoes-url.php';

echo "<h1>🧪 TESTE JAVASCRIPT DASHBOARD</h1>";

// Buscar dados da viagem #278
try {
    $pdo = new PDO("mysql:host=localhost;dbname=pinheir3_controle_frotasV1.1;charset=utf8", "pinheir3_controle_frotas", "Pinheiro@2024");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $sql = "SELECT id, cliente_nome, km_inicial, km_final, km_manual, 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 não encontrada!</p>";
        exit;
    }
} catch (Exception $e) {
    echo "<p>❌ Erro no banco: " . $e->getMessage() . "</p>";
    exit;
}
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Teste JavaScript Dashboard</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; }
        .test-section { margin: 20px 0; padding: 15px; border: 1px solid #ccc; }
        .result { margin: 10px 0; padding: 10px; background: #f0f0f0; }
        .success { background: #d4edda; color: #155724; }
        .error { background: #f8d7da; color: #721c24; }
        .info { background: #d1ecf1; color: #0c5460; }
        table { border-collapse: collapse; width: 100%; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
        th { background-color: #f2f2f2; }
    </style>
</head>
<body>

<div class="test-section">
    <h2>📊 Dados da Viagem #278</h2>
    <table>
        <tr><th>Campo</th><th>Valor</th></tr>
        <tr><td>ID</td><td><?php echo $viagem['id']; ?></td></tr>
        <tr><td>Cliente</td><td><?php echo $viagem['cliente_nome']; ?></td></tr>
        <tr><td>KM Inicial</td><td><?php echo $viagem['km_inicial']; ?></td></tr>
        <tr><td>KM Final</td><td><?php echo $viagem['km_final']; ?></td></tr>
        <tr><td>KM Manual</td><td><?php echo $viagem['km_manual']; ?></td></tr>
        <tr><td>KM GPS Final</td><td><?php echo $viagem['km_gps_final']; ?></td></tr>
        <tr><td>KM GPS Real</td><td><?php echo $viagem['km_gps_real']; ?></td></tr>
    </table>
</div>

<div class="test-section">
    <h2>🧮 Teste da Função calcularKmGps</h2>
    <div id="test-results"></div>
</div>

<div class="test-section">
    <h2>🔍 Console de Debug</h2>
    <div id="console-output" style="background: #000; color: #0f0; padding: 10px; height: 200px; overflow-y: scroll; font-family: monospace;"></div>
</div>

<script>
// Simular dados da viagem como vem da API
const viagem = {
    id: <?php echo $viagem['id']; ?>,
    cliente_nome: "<?php echo $viagem['cliente_nome']; ?>",
    km_inicial: <?php echo $viagem['km_inicial']; ?>,
    km_final: <?php echo $viagem['km_final']; ?>,
    km_manual: <?php echo $viagem['km_manual']; ?>,
    km_gps_final: <?php echo $viagem['km_gps_final']; ?>,
    km_gps_real: <?php echo $viagem['km_gps_real']; ?>
};

// Função para log no console visual
function log(message) {
    const console = document.getElementById('console-output');
    const timestamp = new Date().toLocaleTimeString();
    console.innerHTML += `[${timestamp}] ${message}\n`;
    console.scrollTop = console.scrollHeight;
}

// Função calcularKmGps do dashboard (cópia exata)
function calcularKmGps(viagem) {
    log('🔍 [calcularKmGps] Iniciando cálculo...');
    log(`🔍 [calcularKmGps] Viagem: ${JSON.stringify(viagem)}`);
    log(`🔍 [calcularKmGps] km_gps_final: ${viagem.km_gps_final}`);
    log(`🔍 [calcularKmGps] km_gps_real: ${viagem.km_gps_real}`);
    
    // 🔧 CORREÇÃO: Usar km_gps_real primeiro (mais preciso), depois km_gps_final
    if (viagem.km_gps_real && viagem.km_gps_real > 0) {
        const kmGpsValue = parseFloat(viagem.km_gps_real);
        
        // 🔧 CORREÇÃO: Se o valor for pequeno (< 100), tratar como KM, senão como METROS
        let kmGpsKm;
        if (kmGpsValue < 100) {
            // Valor pequeno = já está em KM
            kmGpsKm = kmGpsValue;
            log(`✅ [calcularKmGps] Usando km_gps_real como KM: ${kmGpsValue} km`);
        } else {
            // Valor grande = está em METROS, converter para KM
            kmGpsKm = kmGpsValue / 1000;
            log(`✅ [calcularKmGps] Usando km_gps_real como METROS: ${kmGpsValue} metros = ${kmGpsKm} km`);
        }
        
        // 🔧 CORREÇÃO: Mostrar 3 casas decimais para maior precisão
        const result = `${kmGpsKm.toFixed(3)} km`;
        log(`✅ [calcularKmGps] Resultado final: ${result}`);
        return result;
    }
    
    // Fallback para km_gps_final
    if (viagem.km_gps_final && viagem.km_gps_final > 0) {
        const kmGpsValue = parseFloat(viagem.km_gps_final);
        
        // 🔧 CORREÇÃO: Se o valor for pequeno (< 100), tratar como KM, senão como METROS
        let kmGpsKm;
        if (kmGpsValue < 100) {
            // Valor pequeno = já está em KM
            kmGpsKm = kmGpsValue;
            log(`✅ [calcularKmGps] Usando km_gps_final como KM: ${kmGpsValue} km`);
        } else {
            // Valor grande = está em METROS, converter para KM
            kmGpsKm = kmGpsValue / 1000;
            log(`✅ [calcularKmGps] Usando km_gps_final como METROS: ${kmGpsValue} metros = ${kmGpsKm} km`);
        }
        
        // 🔧 CORREÇÃO: Mostrar 3 casas decimais para maior precisão
        const result = `${kmGpsKm.toFixed(3)} km`;
        log(`✅ [calcularKmGps] Resultado final (fallback): ${result}`);
        return result;
    }
    
    log(`⚠️ [calcularKmGps] Nenhum valor GPS válido encontrado`);
    return "0.000 km";
}

// Executar teste
function executarTeste() {
    log('🧪 Iniciando teste da função calcularKmGps...');
    
    const resultado = calcularKmGps(viagem);
    
    const resultsDiv = document.getElementById('test-results');
    resultsDiv.innerHTML = `
        <div class="result info">
            <h3>📊 Dados de Entrada:</h3>
            <ul>
                <li>km_gps_final: ${viagem.km_gps_final}</li>
                <li>km_gps_real: ${viagem.km_gps_real}</li>
            </ul>
        </div>
        <div class="result success">
            <h3>✅ Resultado da Função:</h3>
            <p><strong>${resultado}</strong></p>
        </div>
        <div class="result info">
            <h3>🎯 Valor Esperado:</h3>
            <p><strong>${parseFloat(viagem.km_gps_real).toFixed(3)} km</strong></p>
        </div>
    `;
    
    log('✅ Teste concluído!');
}

// Executar quando a página carregar
window.onload = function() {
    log('🚀 Página carregada, iniciando teste...');
    setTimeout(executarTeste, 1000);
};
</script>

</body>
</html>
