<?php
header('Content-Type: text/html; charset=utf-8');

echo "<h1>🔍 Verificar Banco - Viagem #1</h1>";

try {
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ]);
    
    echo "<h2>1️⃣ Verificação Direta no Banco</h2>";
    
    // Verificar viagem #1
    $stmt = $pdo->prepare("SELECT id, cliente, km_inicial, km_final, km_gps_final FROM viagens WHERE id = 1");
    $stmt->execute();
    $viagem = $stmt->fetch();
    
    if (!$viagem) {
        echo "<p style='color: red;'>❌ Viagem #1 não encontrada!</p>";
        exit;
    }
    
    echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px; border: 1px solid #c3e6cb;'>";
    echo "<h3>📊 Dados da Viagem #1 no Banco:</h3>";
    echo "<ul>";
    echo "<li><strong>ID:</strong> {$viagem['id']}</li>";
    echo "<li><strong>Cliente:</strong> {$viagem['cliente']}</li>";
    echo "<li><strong>KM Inicial:</strong> {$viagem['km_inicial']}</li>";
    echo "<li><strong>KM Final:</strong> {$viagem['km_final']}</li>";
    echo "<li><strong>KM Manual:</strong> " . ($viagem['km_final'] - $viagem['km_inicial']) . " km</li>";
    echo "<li><strong>KM GPS Final (banco):</strong> <span style='color: blue; font-weight: bold;'>{$viagem['km_gps_final']}</span></li>";
    echo "</ul>";
    echo "</div>";
    
    echo "<h2>2️⃣ Análise dos Valores</h2>";
    
    $kmManual = $viagem['km_final'] - $viagem['km_inicial'];
    $kmGpsBanco = $viagem['km_gps_final'];
    
    if ($kmGpsBanco > 0) {
        $kmGpsKm = $kmGpsBanco / 1000; // Converter metros para KM
        
        echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px; border: 1px solid #ffeaa7;'>";
        echo "<h3>📏 Conversão de Unidades:</h3>";
        echo "<ul>";
        echo "<li><strong>KM GPS no banco:</strong> {$kmGpsBanco} metros</li>";
        echo "<li><strong>KM GPS em quilômetros:</strong> " . number_format($kmGpsKm, 3) . " km</li>";
        echo "<li><strong>KM Manual:</strong> {$kmManual} km</li>";
        echo "<li><strong>Diferença:</strong> " . number_format(abs($kmManual - $kmGpsKm), 3) . " km</li>";
        echo "</ul>";
        echo "</div>";
        
        if (abs($kmManual - $kmGpsKm) < 0.1) {
            echo "<p style='color: green; font-weight: bold;'>✅ VALORES CORRETOS NO BANCO!</p>";
        } else {
            echo "<p style='color: red; font-weight: bold;'>❌ VALORES INCORRETOS NO BANCO!</p>";
        }
    } else {
        echo "<p style='color: red;'>❌ KM GPS Final é zero ou NULL!</p>";
    }
    
    echo "<h2>3️⃣ Verificar Outras Viagens</h2>";
    
    // Verificar outras viagens para comparação
    $stmt = $pdo->prepare("
        SELECT id, cliente, km_gps_final, 
               (km_final - km_inicial) as km_manual
        FROM viagens 
        WHERE id IN (1, 2, 3) 
        ORDER BY id
    ");
    $stmt->execute();
    $outrasViagens = $stmt->fetchAll();
    
    echo "<table border='1' style='border-collapse: collapse; margin: 10px 0; width: 100%;'>";
    echo "<tr style='background: #f8f9fa;'>";
    echo "<th>ID</th><th>Cliente</th><th>KM Manual</th><th>KM GPS Final (m)</th><th>KM GPS Final (km)</th><th>Status</th>";
    echo "</tr>";
    
    foreach ($outrasViagens as $v) {
        $kmGpsKm = $v['km_gps_final'] > 0 ? $v['km_gps_final'] / 1000 : 0;
        $status = abs($v['km_manual'] - $kmGpsKm) < 0.1 ? "✅ OK" : "❌ Diferente";
        
        echo "<tr>";
        echo "<td>{$v['id']}</td>";
        echo "<td>{$v['cliente']}</td>";
        echo "<td>{$v['km_manual']} km</td>";
        echo "<td>{$v['km_gps_final']} m</td>";
        echo "<td>" . number_format($kmGpsKm, 3) . " km</td>";
        echo "<td>{$status}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    echo "<h2>4️⃣ Teste de Atualização</h2>";
    
    // Forçar atualização do km_gps_final
    $kmManual = $viagem['km_final'] - $viagem['km_inicial'];
    $kmGpsCorrigido = $kmManual * 1000; // Converter para metros
    
    echo "<p><strong>Forçando atualização:</strong></p>";
    echo "<ul>";
    echo "<li><strong>KM Manual:</strong> {$kmManual} km</li>";
    echo "<li><strong>KM GPS a salvar:</strong> {$kmGpsCorrigido} metros</li>";
    echo "</ul>";
    
    $stmt = $pdo->prepare("UPDATE viagens SET km_gps_final = ? WHERE id = 1");
    $stmt->execute([$kmGpsCorrigido]);
    
    if ($stmt->rowCount() > 0) {
        echo "<p style='color: green;'>✅ Atualização forçada realizada!</p>";
        
        // Verificar novamente
        $stmt = $pdo->prepare("SELECT km_gps_final FROM viagens WHERE id = 1");
        $stmt->execute();
        $resultado = $stmt->fetch();
        
        echo "<p><strong>Valor após atualização:</strong> {$resultado['km_gps_final']} metros</strong></p>";
        echo "<p><strong>Em quilômetros:</strong> " . number_format($resultado['km_gps_final'] / 1000, 3) . " km</strong></p>";
    } else {
        echo "<p style='color: red;'>❌ Erro na atualização!</p>";
    }
    
    echo "<hr>";
    echo "<h2>🎯 INSTRUÇÕES PARA O USUÁRIO</h2>";
    echo "<div style='background: #d1ecf1; padding: 15px; border-radius: 5px; border: 1px solid #bee5eb;'>";
    echo "<h3>📋 Passos para resolver:</h3>";
    echo "<ol>";
    echo "<li><strong>Execute este script</strong> para verificar o banco</li>";
    echo "<li><strong>Se os valores estiverem corretos no banco</strong>, o problema é no dashboard</li>";
    echo "<li><strong>Limpe o cache do navegador</strong> (Ctrl+F5 ou Ctrl+Shift+R)</li>";
    echo "<li><strong>Recarregue o dashboard</strong> completamente</li>";
    echo "<li><strong>Se persistir</strong>, pode ser problema no JavaScript do dashboard</li>";
    echo "</ol>";
    echo "</div>";
    
} catch (PDOException $e) {
    echo "<p style='color: red;'>❌ Erro de banco: " . $e->getMessage() . "</p>";
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro geral: " . $e->getMessage() . "</p>";
}
?>
