<?php
require_once 'conexao.php';

echo "<h2>🔧 Corrigindo KM GPS para 164 metros</h2>";

try {
    // Buscar as viagens da rota #48
    $sqlViagens = "SELECT v.id, v.cliente, v.km_gps_final 
                   FROM viagens v 
                   INNER JOIN rota_viagens rv ON v.id = rv.viagem_id 
                   WHERE rv.solicitacao_rota_id = 48
                   ORDER BY v.id";
    
    $stmt = $pdo->prepare($sqlViagens);
    $stmt->execute();
    $viagens = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<h3>Viagens da Rota #48 (antes da correção):</h3>";
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr style='background-color: #f0f0f0;'>";
    echo "<th>ID</th><th>Cliente</th><th>KM GPS Atual (m)</th><th>KM GPS Atual (km)</th>";
    echo "</tr>";
    
    foreach ($viagens as $viagem) {
        $kmGpsAtual = floatval($viagem['km_gps_final'] ?: 0);
        $kmGpsKm = $kmGpsAtual / 1000;
        
        echo "<tr>";
        echo "<td>{$viagem['id']}</td>";
        echo "<td>{$viagem['cliente']}</td>";
        echo "<td><strong>$kmGpsAtual</strong></td>";
        echo "<td>" . number_format($kmGpsKm, 3) . "</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // Aplicar correção
    echo "<h3>🔧 Aplicando correção:</h3>";
    
    $kmGpsCorreto = 164; // 164 metros
    
    $sqlUpdate = "UPDATE viagens SET 
                  km_gps_final = ?,
                  observacoes = CONCAT(
                      COALESCE(observacoes, ''), 
                      ' | KM GPS corrigido em ', NOW(), ': ', ?, ' metros (era ', COALESCE(km_gps_final, 0), ' metros)'
                  )
                  WHERE id IN (
                      SELECT rv.viagem_id 
                      FROM rota_viagens rv 
                      WHERE rv.solicitacao_rota_id = 48
                  )";
    
    $stmtUpdate = $pdo->prepare($sqlUpdate);
    $success = $stmtUpdate->execute([$kmGpsCorreto, $kmGpsCorreto]);
    
    if ($success) {
        $linhasAfetadas = $stmtUpdate->rowCount();
        echo "<p style='color: green;'>✅ <strong>Correção aplicada!</strong> $linhasAfetadas viagens atualizadas.</p>";
        
        // Verificar resultado
        echo "<h3>📊 Resultado após correção:</h3>";
        
        $stmt = $pdo->prepare($sqlViagens);
        $stmt->execute();
        $viagensCorrigidas = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr style='background-color: #f0f0f0;'>";
        echo "<th>ID</th><th>Cliente</th><th>KM GPS Corrigido (m)</th><th>KM GPS Corrigido (km)</th>";
        echo "</tr>";
        
        foreach ($viagensCorrigidas as $viagem) {
            $kmGpsCorrigido = floatval($viagem['km_gps_final'] ?: 0);
            $kmGpsKm = $kmGpsCorrigido / 1000;
            
            $status = ($kmGpsCorrigido == 164) ? "✅" : "❌";
            $cor = ($kmGpsCorrigido == 164) ? "green" : "red";
            
            echo "<tr>";
            echo "<td>{$viagem['id']}</td>";
            echo "<td>{$viagem['cliente']}</td>";
            echo "<td style='color: $cor;'><strong>$status $kmGpsCorrigido</strong></td>";
            echo "<td>" . number_format($kmGpsKm, 3) . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        
        // Calcular diferenças
        echo "<h3>📈 Análise das Diferenças:</h3>";
        
        foreach ($viagensCorrigidas as $viagem) {
            $kmGpsCorrigido = floatval($viagem['km_gps_final'] ?: 0);
            $kmManual = 1; // 2 - 1 = 1 km
            
            $diferenca = abs($kmManual - ($kmGpsCorrigido / 1000));
            $percentual = ($diferenca / $kmManual) * 100;
            
            echo "<div style='background: #f8f9fa; padding: 10px; margin: 5px 0; border-radius: 5px;'>";
            echo "<p><strong>Viagem ID {$viagem['id']} - {$viagem['cliente']}:</strong></p>";
            echo "<ul>";
            echo "<li>KM Manual: 1.0 km</li>";
            echo "<li>KM GPS: " . number_format($kmGpsCorrigido / 1000, 3) . " km</li>";
            echo "<li>Diferença: " . number_format($diferenca, 3) . " km</li>";
            echo "<li>Divergência: " . number_format($percentual, 1) . "%</li>";
            echo "</ul>";
            echo "</div>";
        }
        
        echo "<h3>🎉 Correção Concluída!</h3>";
        echo "<p style='color: green;'>✅ Agora o KM GPS está correto: <strong>164 metros</strong></p>";
        echo "<p>📊 <strong>Próximo passo:</strong> Atualize o dashboard para ver os valores corretos.</p>";
        
    } else {
        echo "<p style='color: red;'>❌ Erro ao aplicar correção!</p>";
    }
    
} catch (Exception $e) {
    echo "<h3 style='color: red;'>❌ Erro: " . $e->getMessage() . "</h3>";
}
?>
