<?php
require_once 'conexao.php';

echo "<h2>🔧 Corrigindo KM das Viagens da Rota #46</h2>";

try {
    // Buscar viagens da rota #46
    $sqlViagens = "SELECT v.*, rv.solicitacao_rota_id 
                   FROM viagens v 
                   INNER JOIN rota_viagens rv ON v.id = rv.viagem_id 
                   WHERE rv.solicitacao_rota_id = 46";
    
    $stmt = $pdo->prepare($sqlViagens);
    $stmt->execute();
    $viagens = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<h3>Viagens encontradas:</h3>";
    echo "<table border='1' style='border-collapse: collapse;'>";
    echo "<tr><th>ID</th><th>Cliente</th><th>KM Inicial</th><th>KM Final</th><th>KM GPS</th><th>Status</th></tr>";
    
    foreach ($viagens as $viagem) {
        echo "<tr>";
        echo "<td>{$viagem['id']}</td>";
        echo "<td>{$viagem['cliente']}</td>";
        echo "<td>{$viagem['km_inicial']}</td>";
        echo "<td>{$viagem['km_final']}</td>";
        echo "<td>" . ($viagem['km_gps_final'] ?? 'NULL') . "</td>";
        echo "<td>Antes da correção</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // Calcular KM correto baseado na diferença
    $kmInicial = 10;
    $kmFinal = 11;
    $kmReal = $kmFinal - $kmInicial; // 1km
    
    echo "<h3>Corrigindo KM GPS:</h3>";
    echo "KM Inicial: $kmInicial<br>";
    echo "KM Final: $kmFinal<br>";
    echo "KM Real (diferença): $kmReal km<br>";
    
    // Atualizar KM GPS de todas as viagens da rota
    $sqlUpdate = "UPDATE viagens v 
                  INNER JOIN rota_viagens rv ON v.id = rv.viagem_id 
                                     SET v.km_gps_final = ? 
                   WHERE rv.solicitacao_rota_id = 46";
    
    $stmtUpdate = $pdo->prepare($sqlUpdate);
    $success = $stmtUpdate->execute([$kmReal]);
    
    if ($success) {
        echo "<h3 style='color: green;'>✅ KM GPS corrigido com sucesso!</h3>";
        echo "Linhas afetadas: " . $stmtUpdate->rowCount() . "<br>";
        
        // Verificar resultado
        $stmt = $pdo->prepare($sqlViagens);
        $stmt->execute();
        $viagensCorrigidas = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo "<h3>Viagens após correção:</h3>";
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr><th>ID</th><th>Cliente</th><th>KM Inicial</th><th>KM Final</th><th>KM GPS</th><th>Status</th></tr>";
        
        foreach ($viagensCorrigidas as $viagem) {
            echo "<tr>";
            echo "<td>{$viagem['id']}</td>";
            echo "<td>{$viagem['cliente']}</td>";
            echo "<td>{$viagem['km_inicial']}</td>";
            echo "<td>{$viagem['km_final']}</td>";
            echo "<td style='color: green; font-weight: bold;'>" . ($viagem['km_gps_final'] ?? 'NULL') . "</td>";
            echo "<td style='color: green;'>✅ Corrigido</td>";
            echo "</tr>";
        }
        echo "</table>";
        
        // Atualizar também a rota
        $sqlRota = "UPDATE solicitacoes_rotas SET km_real = ? WHERE id = 46";
        $stmtRota = $pdo->prepare($sqlRota);
        $successRota = $stmtRota->execute([$kmReal]);
        
        if ($successRota) {
            echo "<h3 style='color: green;'>✅ KM da rota também corrigido!</h3>";
        }
        
    } else {
        echo "<h3 style='color: red;'>❌ Erro ao corrigir KM GPS</h3>";
    }
    
} catch (Exception $e) {
    echo "<h3 style='color: red;'>❌ Erro: " . $e->getMessage() . "</h3>";
}
?>
