<?php
/**
 * Teste para verificar se a finalização de viagens está funcionando corretamente
 * Testando se latitude_final, longitude_final e endereco_final estão sendo salvos
 */

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::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ]);
    
    echo "<h2>🧪 Teste de Finalização de Viagem</h2>";
    
    // 1. Verificar se há viagens em andamento
    $stmt = $pdo->query("SELECT * FROM viagens WHERE data_fim IS NULL ORDER BY id DESC LIMIT 5");
    $viagensAtivas = $stmt->fetchAll();
    
    if (empty($viagensAtivas)) {
        echo "<div style='background: #fff3cd; border: 1px solid #ffeaa7; color: #856404; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
        echo "⚠️ <strong>Nenhuma viagem ativa encontrada!</strong><br>";
        echo "Crie uma viagem primeiro para testar a finalização.";
        echo "</div>";
        
        // Criar viagem de teste
        echo "<h3>🚀 Criando viagem de teste...</h3>";
        $stmt = $pdo->prepare("
            INSERT INTO viagens (
                tecnico_id, veiculo_id, cliente, motivo, km_inicial, 
                data_inicio, latitude_inicial, longitude_inicial, endereco_inicial
            ) VALUES (?, ?, ?, ?, ?, NOW(), ?, ?, ?)
        ");
        
        $stmt->execute([
            '1', // João Silva
            1,   // Primeiro veículo
            'Cliente Teste',
            'Teste de finalização',
            100,
            -23.5505,   // São Paulo
            -46.6333,
            'Rua de Teste, 123 - São Paulo, SP'
        ]);
        
        $viagemId = $pdo->lastInsertId();
        echo "<p>✅ Viagem de teste criada com ID: <strong>$viagemId</strong></p>";
        
        // Buscar a viagem criada
        $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = ?");
        $stmt->execute([$viagemId]);
        $viagensAtivas = [$stmt->fetch()];
    }
    
    echo "<h3>📋 Viagens Ativas:</h3>";
    foreach ($viagensAtivas as $viagem) {
        echo "<div style='border: 1px solid #ddd; padding: 15px; margin: 10px 0; border-radius: 8px; background: #f8f9fa;'>";
        echo "<h4>🚗 Viagem ID: {$viagem['id']}</h4>";
        echo "<strong>Cliente:</strong> {$viagem['cliente']}<br>";
        echo "<strong>Técnico ID:</strong> {$viagem['tecnico_id']}<br>";
        echo "<strong>KM Inicial:</strong> {$viagem['km_inicial']}<br>";
        echo "<strong>Data Início:</strong> {$viagem['data_inicio']}<br>";
        
        if ($viagem['latitude_inicial'] && $viagem['longitude_inicial']) {
            echo "<strong>📍 Localização Inicial:</strong> {$viagem['latitude_inicial']}, {$viagem['longitude_inicial']}<br>";
        }
        
        if ($viagem['endereco_inicial']) {
            echo "<strong>📍 Endereço Inicial:</strong> {$viagem['endereco_inicial']}<br>";
        }
        
        echo "<br><button onclick='finalizarViagem({$viagem['id']})' style='background: #28a745; color: white; border: none; padding: 10px 20px; border-radius: 5px; cursor: pointer;'>🏁 Finalizar Esta Viagem</button>";
        echo "</div>";
    }
    
    // 2. Mostrar últimas viagens finalizadas para comparação
    echo "<h3>📊 Últimas 5 Viagens Finalizadas:</h3>";
    $stmt = $pdo->query("
        SELECT 
            v.*,
            m.nome as motorista_nome
        FROM viagens v
        LEFT JOIN motoristas m ON CAST(v.tecnico_id AS UNSIGNED) = m.id
        WHERE v.data_fim IS NOT NULL 
        ORDER BY v.data_fim DESC 
        LIMIT 5
    ");
    $viagensFinalizadas = $stmt->fetchAll();
    
    if (empty($viagensFinalizadas)) {
        echo "<p>📝 Nenhuma viagem finalizada encontrada ainda.</p>";
    } else {
        echo "<table style='width: 100%; border-collapse: collapse; margin: 10px 0;'>";
        echo "<tr style='background: #f8f9fa; border: 1px solid #ddd;'>";
        echo "<th style='padding: 8px; border: 1px solid #ddd;'>ID</th>";
        echo "<th style='padding: 8px; border: 1px solid #ddd;'>Cliente</th>";
        echo "<th style='padding: 8px; border: 1px solid #ddd;'>Motorista</th>";
        echo "<th style='padding: 8px; border: 1px solid #ddd;'>Data Fim</th>";
        echo "<th style='padding: 8px; border: 1px solid #ddd;'>Lat/Lng Final</th>";
        echo "<th style='padding: 8px; border: 1px solid #ddd;'>Endereço Final</th>";
        echo "</tr>";
        
        foreach ($viagensFinalizadas as $v) {
            $latLngFinal = ($v['latitude_final'] && $v['longitude_final']) 
                ? number_format($v['latitude_final'], 6) . ", " . number_format($v['longitude_final'], 6)
                : '❌ Sem coordenadas';
                
            $enderecoFinal = $v['endereco_final'] ?: '❌ Sem endereço';
            
            echo "<tr style='border: 1px solid #ddd;'>";
            echo "<td style='padding: 8px; border: 1px solid #ddd;'>{$v['id']}</td>";
            echo "<td style='padding: 8px; border: 1px solid #ddd;'>{$v['cliente']}</td>";
            echo "<td style='padding: 8px; border: 1px solid #ddd;'>{$v['motorista_nome']}</td>";
            echo "<td style='padding: 8px; border: 1px solid #ddd;'>{$v['data_fim']}</td>";
            echo "<td style='padding: 8px; border: 1px solid #ddd;'>$latLngFinal</td>";
            echo "<td style='padding: 8px; border: 1px solid #ddd;'>$enderecoFinal</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
} catch (Exception $e) {
    echo "<div style='background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; padding: 15px; border-radius: 5px;'>";
    echo "❌ <strong>Erro:</strong> " . $e->getMessage();
    echo "</div>";
}
?>

<script>
async function finalizarViagem(viagemId) {
    if (!confirm(`Tem certeza que deseja finalizar a viagem ${viagemId}?`)) {
        return;
    }
    
    try {
        // Simular dados de finalização
        const dados = {
            id: viagemId,
            tecnicoId: "1",
            veiculoId: 1,
            cliente: "Cliente Teste",
            motivo: "Teste de finalização",
            kmInicial: 100,
            kmFinal: 150,
            kmGpsFinal: 145,
            dataInicio: "2025-06-23 10:00:00",
            dataFim: new Date().toISOString().slice(0, 19).replace('T', ' '),
            latitudeInicial: -23.5505,
            longitudeInicial: -46.6333,
            latitudeFinal: -23.5615,    // Coordenada final simulada
            longitudeFinal: -46.6566,   // Coordenada final simulada  
            enderecoFinal: "Rua Final, 456 - São Paulo, SP", // Endereço final
            observacoes: "Viagem finalizada via teste - " + new Date().toLocaleString('pt-BR')
        };
        
        console.log('Enviando dados:', dados);
        
        const response = await fetch('https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php?acao=viagens', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(dados)
        });
        
        const result = await response.json();
        console.log('Resposta:', result);
        
        if (result.sucesso) {
            alert('✅ Viagem finalizada com sucesso! Recarregando página...');
            location.reload();
        } else {
            alert('❌ Erro ao finalizar viagem: ' + (result.mensagem || 'Erro desconhecido'));
        }
        
    } catch (error) {
        console.error('Erro:', error);
        alert('💥 Erro na requisição: ' + error.message);
    }
}
</script>

<style>
body {
    font-family: Arial, sans-serif;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    background: #f5f5f5;
}

h2, h3 {
    color: #333;
}

button:hover {
    background: #218838 !important;
}

table {
    background: white;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
</style> 
