<?php
require_once 'conexao.php';

echo "<h1>🔧 CORRIGINDO GPS - VIAGEM 239</h1>\n";

try {
    $pdo = conectarBanco();
    
    // 1. Verificar dados da viagem 239
    echo "<h2>1. Dados Atuais da Viagem 239</h2>\n";
    $sql = "SELECT * FROM viagens WHERE id = 239";
    $stmt = $pdo->query($sql);
    $viagem = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($viagem) {
        echo "<p><strong>✅ Viagem encontrada:</strong></p>\n";
        echo "<ul>\n";
        echo "<li><strong>ID:</strong> {$viagem['id']}</li>\n";
        echo "<li><strong>Cliente:</strong> {$viagem['cliente']}</li>\n";
        echo "<li><strong>KM Inicial:</strong> {$viagem['km_inicial']}</li>\n";
        echo "<li><strong>KM Final:</strong> {$viagem['km_final']}</li>\n";
        echo "<li><strong>KM GPS Atual:</strong> " . ($viagem['km_gps_final'] ?? 'NULL') . " metros</li>\n";
        echo "<li><strong>Trajeto:</strong> " . ($viagem['trajeto'] ? count(json_decode($viagem['trajeto'], true)) : 0) . " pontos</li>\n";
        echo "</ul>\n";
        
        // 2. Calcular diferença real
        $kmInicial = $viagem['km_inicial'] ?? 0;
        $kmFinal = $viagem['km_final'] ?? 0;
        $diferencaReal = $kmFinal - $kmInicial;
        
        echo "<h2>2. Cálculo da Diferença Real</h2>\n";
        echo "<p><strong>KM Final:</strong> $kmFinal</p>\n";
        echo "<p><strong>KM Inicial:</strong> $kmInicial</p>\n";
        echo "<p><strong>Diferença Real:</strong> $diferencaReal km</p>\n";
        echo "<p><strong>Diferença em Metros:</strong> " . ($diferencaReal * 1000) . " metros</p>\n";
        
        // 3. Corrigir valor GPS
        $novoValorGps = $diferencaReal * 1000; // Converter km para metros
        
        echo "<h2>3. Correção do Valor GPS</h2>\n";
        echo "<p><strong>Valor GPS Atual:</strong> " . ($viagem['km_gps_final'] ?? 'NULL') . " metros</p>\n";
        echo "<p><strong>Novo Valor GPS:</strong> $novoValorGps metros</p>\n";
        
        // 4. Atualizar no banco
        $sqlUpdate = "UPDATE viagens SET km_gps_final = ? WHERE id = 239";
        $stmtUpdate = $pdo->prepare($sqlUpdate);
        $success = $stmtUpdate->execute([$novoValorGps]);
        
        if ($success) {
            echo "<p><strong>✅ SUCESSO!</strong> Valor GPS corrigido!</p>\n";
            echo "<p>• <strong>Antes:</strong> " . ($viagem['km_gps_final'] ?? 'NULL') . " metros</p>\n";
            echo "<p>• <strong>Depois:</strong> $novoValorGps metros</p>\n";
            echo "<p>• <strong>Diferença:</strong> " . ($novoValorGps - ($viagem['km_gps_final'] ?? 0)) . " metros</p>\n";
        } else {
            echo "<p><strong>❌ Erro ao atualizar!</strong></p>\n";
        }
        
        // 5. Verificar se a correção funcionou
        echo "<h2>4. Verificação da Correção</h2>\n";
        $sqlVerificar = "SELECT km_gps_final FROM viagens WHERE id = 239";
        $stmtVerificar = $pdo->query($sqlVerificar);
        $resultado = $stmtVerificar->fetch(PDO::FETCH_ASSOC);
        
        if ($resultado) {
            $valorAtual = $resultado['km_gps_final'];
            echo "<p><strong>Valor GPS Atual no Banco:</strong> $valorAtual metros</p>\n";
            echo "<p><strong>Valor GPS em KM:</strong> " . ($valorAtual / 1000) . " km</p>\n";
            
            if ($valorAtual == $novoValorGps) {
                echo "<p><strong>✅ CORREÇÃO CONFIRMADA!</strong></p>\n";
            } else {
                echo "<p><strong>❌ CORREÇÃO FALHOU!</strong></p>\n";
            }
        }
        
    } else {
        echo "<p><strong>❌ Viagem 239 não encontrada!</strong></p>\n";
    }
    
} catch (Exception $e) {
    echo "<p><strong>❌ Erro:</strong> " . $e->getMessage() . "</p>\n";
}
?>
