<?php
/**
 * VERIFICAR ORIGEM DO KM GPS
 * Analisar se está vindo do trajeto ou linha reta
 */

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

// Conectar ao banco
$host = 'localhost';
$dbname = 'pinheir3_controle_frotasV1.1';
$username = 'pinheir3_admin';
$password = '080880Gelboy';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "<h1>🔍 VERIFICAR ORIGEM DO KM GPS</h1>";
    
    // Analisar viagem #41
    $stmt = $pdo->prepare("
        SELECT 
            id, cliente, 
            km_inicial, km_final, km_gps_final,
            latitude_inicial, longitude_inicial,
            latitude_final, longitude_final,
            trajeto,
            data_fim
        FROM viagens 
        WHERE id = 41
    ");
    $stmt->execute();
    $viagem = $stmt->fetch();
    
    if ($viagem) {
        echo "<h2>🎯 ANÁLISE DA VIAGEM #41:</h2>";
        echo "<div style='background: #f8f9fa; padding: 15px; border-radius: 5px; font-family: monospace;'>";
        
        echo "<strong>📋 DADOS BÁSICOS:</strong><br>";
        echo "Cliente: {$viagem['cliente']}<br>";
        echo "KM Inicial: {$viagem['km_inicial']}<br>";
        echo "KM Final: {$viagem['km_final']}<br>";
        echo "KM GPS Final: {$viagem['km_gps_final']}<br>";
        echo "Data Finalização: {$viagem['data_fim']}<br>";
        echo "<hr>";
        
        // Calcular distância linha reta
        if ($viagem['latitude_inicial'] && $viagem['longitude_inicial'] && 
            $viagem['latitude_final'] && $viagem['longitude_final']) {
            
            $lat1 = deg2rad($viagem['latitude_inicial']);
            $lon1 = deg2rad($viagem['longitude_inicial']);
            $lat2 = deg2rad($viagem['latitude_final']);
            $lon2 = deg2rad($viagem['longitude_final']);
            
            $dlat = $lat2 - $lat1;
            $dlon = $lon2 - $lon1;
            
            $a = sin($dlat/2) * sin($dlat/2) + cos($lat1) * cos($lat2) * sin($dlon/2) * sin($dlon/2);
            $c = 2 * atan2(sqrt($a), sqrt(1-$a));
            $distancia_linha_reta = 6371 * $c;
            
            echo "<strong>🗺️ ANÁLISE GPS:</strong><br>";
            echo "Latitude inicial: {$viagem['latitude_inicial']}<br>";
            echo "Longitude inicial: {$viagem['longitude_inicial']}<br>";
            echo "Latitude final: {$viagem['latitude_final']}<br>";
            echo "Longitude final: {$viagem['longitude_final']}<br>";
            echo "Distância linha reta: " . round($distancia_linha_reta, 2) . " km<br>";
            echo "KM GPS no banco: {$viagem['km_gps_final']}<br>";
            
            $diferenca_linha_reta = abs($viagem['km_gps_final'] - $distancia_linha_reta);
            echo "Diferença (GPS banco vs linha reta): " . round($diferenca_linha_reta, 2) . " km<br>";
            
            if ($diferenca_linha_reta < 0.3) {
                echo "<span style='color: red;'><strong>❌ PROBLEMA: KM GPS = linha reta!</strong></span><br>";
                echo "<span style='color: red;'>O app está enviando distância linha reta, não trajeto!</span><br>";
            } else {
                echo "<span style='color: green;'><strong>✅ OK: KM GPS é do trajeto completo</strong></span><br>";
            }
            echo "<hr>";
        }
        
        // Verificar trajeto
        echo "<strong>🛣️ ANÁLISE DO TRAJETO:</strong><br>";
        if ($viagem['trajeto']) {
            $trajeto = json_decode($viagem['trajeto'], true);
            if ($trajeto && is_array($trajeto)) {
                echo "Pontos no trajeto: " . count($trajeto) . "<br>";
                
                if (count($trajeto) > 1) {
                    // Calcular distância do trajeto
                    $distancia_trajeto = 0;
                    for ($i = 0; $i < count($trajeto) - 1; $i++) {
                        $p1 = $trajeto[$i];
                        $p2 = $trajeto[$i + 1];
                        
                        if (isset($p1['latitude']) && isset($p1['longitude']) && 
                            isset($p2['latitude']) && isset($p2['longitude'])) {
                            
                            $lat1 = deg2rad($p1['latitude']);
                            $lon1 = deg2rad($p1['longitude']);
                            $lat2 = deg2rad($p2['latitude']);
                            $lon2 = deg2rad($p2['longitude']);
                            
                            $dlat = $lat2 - $lat1;
                            $dlon = $lon2 - $lon1;
                            
                            $a = sin($dlat/2) * sin($dlat/2) + cos($lat1) * cos($lat2) * sin($dlon/2) * sin($dlon/2);
                            $c = 2 * atan2(sqrt($a), sqrt(1-$a));
                            $distancia_trajeto += 6371 * $c;
                        }
                    }
                    
                    echo "Distância do trajeto: " . round($distancia_trajeto, 2) . " km<br>";
                    echo "KM GPS no banco: {$viagem['km_gps_final']}<br>";
                    
                    $diferenca_trajeto = abs($viagem['km_gps_final'] - $distancia_trajeto);
                    echo "Diferença (GPS banco vs trajeto): " . round($diferenca_trajeto, 2) . " km<br>";
                    
                    if ($diferenca_trajeto < 0.3) {
                        echo "<span style='color: green;'><strong>✅ CORRETO: KM GPS vem do trajeto!</strong></span><br>";
                    } else {
                        echo "<span style='color: red;'><strong>❌ ERRO: KM GPS não bate com trajeto!</strong></span><br>";
                    }
                } else {
                    echo "<span style='color: orange;'>⚠️ Trajeto tem poucos pontos</span><br>";
                }
            } else {
                echo "<span style='color: red;'>❌ Trajeto inválido no banco</span><br>";
            }
        } else {
            echo "<span style='color: red;'>❌ Nenhum trajeto salvo no banco</span><br>";
        }
        
        echo "</div>";
        
        echo "<h2>🎯 CONCLUSÃO:</h2>";
        echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px;'>";
        echo "<p><strong>Se KM GPS = linha reta:</strong></p>";
        echo "<ul>";
        echo "<li>❌ App Android ainda não foi compilado com as correções</li>";
        echo "<li>❌ Repository ainda está enviando linha reta</li>";
        echo "<li>❌ Correções não estão ativas</li>";
        echo "</ul>";
        
        echo "<p><strong>Se KM GPS = trajeto:</strong></p>";
        echo "<ul>";
        echo "<li>✅ Correções funcionando</li>";
        echo "<li>✅ App enviando trajeto completo</li>";
        echo "<li>🔍 Problema pode ser na precisão do GPS</li>";
        echo "</ul>";
        echo "</div>";
        
    } else {
        echo "<div style='color: red;'>❌ Viagem #41 não encontrada!</div>";
    }
    
} catch (Exception $e) {
    echo "<h1 style='color: red;'>ERRO: " . $e->getMessage() . "</h1>";
}
?> 
