<?php
/**
 * DEBUG FINALIZAÇÃO DE VIAGEM
 * Verificar exatamente o que está sendo alterado na finalização
 */

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>🔍 DEBUG FINALIZAÇÃO DE VIAGEM</h1>";
    
    // Buscar viagem ativa para testar
    $stmt = $pdo->query("
        SELECT id, cliente, endereco_inicial, cliente_id, tecnico_id, data_inicio
        FROM viagens 
        WHERE data_fim IS NULL 
        ORDER BY data_inicio DESC 
        LIMIT 1
    ");
    $viagemAtiva = $stmt->fetch();
    
    if (!$viagemAtiva) {
        echo "<div style='background: red; color: white; padding: 15px;'>";
        echo "<h2>❌ NENHUMA VIAGEM ATIVA ENCONTRADA</h2>";
        echo "<p>Crie uma viagem para testar.</p>";
        echo "</div>";
        exit;
    }
    
    echo "<h2>📋 VIAGEM ATIVA ENCONTRADA:</h2>";
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr><th>Campo</th><th>Valor ANTES</th></tr>";
    echo "<tr><td>ID</td><td><strong>{$viagemAtiva['id']}</strong></td></tr>";
    echo "<tr><td>Cliente</td><td>{$viagemAtiva['cliente']}</td></tr>";
    echo "<tr><td>Endereço Inicial</td><td>" . ($viagemAtiva['endereco_inicial'] ?: '<span style="color:red">VAZIO</span>') . "</td></tr>";
    echo "<tr><td>Cliente ID</td><td>" . ($viagemAtiva['cliente_id'] ?: '<span style="color:red">NULL</span>') . "</td></tr>";
    echo "<tr><td>Técnico ID</td><td>{$viagemAtiva['tecnico_id']}</td></tr>";
    echo "<tr><td>Data Início</td><td>{$viagemAtiva['data_inicio']}</td></tr>";
    echo "</table>";
    
    echo "<h2>⚠️ PROBLEMA IDENTIFICADO:</h2>";
    echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px;'>";
    echo "<h3>🚨 O SQL DE UPDATE ESTÁ INCOMPLETO!</h3>";
    echo "<p>O código atual só atualiza estes campos:</p>";
    echo "<ul>";
    echo "<li>data_fim</li>";
    echo "<li>latitude_final</li>";
    echo "<li>longitude_final</li>";
    echo "<li>km_gps_final</li>";
    echo "<li>km_final</li>";
    echo "<li>observacoes</li>";
    echo "<li>endereco_final</li>";
    echo "</ul>";
    echo "<p><strong style='color: red;'>❌ NÃO ESTÁ PRESERVANDO:</strong></p>";
    echo "<ul>";
    echo "<li><strong>endereco_inicial</strong> - sendo sobrescrito com NULL</li>";
    echo "<li><strong>cliente_id</strong> - sendo sobrescrito com NULL</li>";
    echo "<li>Outros campos importantes</li>";
    echo "</ul>";
    echo "</div>";
    
    echo "<h2>🔧 SOLUÇÃO:</h2>";
    echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
    echo "<h3>✅ CORRIGIR O SQL DE UPDATE</h3>";
    echo "<p>O UPDATE deve ser modificado para <strong>PRESERVAR</strong> os dados existentes e só atualizar os campos de finalização.</p>";
    echo "<p><strong>Problema atual:</strong> O UPDATE está usando SET em todos os campos, o que pode sobrescrever com NULL.</p>";
    echo "<p><strong>Solução:</strong> Usar COALESCE ou só atualizar campos específicos de finalização.</p>";
    echo "</div>";
    
    echo "<h2>📝 SQL ATUAL (PROBLEMÁTICO):</h2>";
    echo "<div style='background: #f8d7da; padding: 15px; border-radius: 5px; font-family: monospace;'>";
    echo "UPDATE viagens SET<br>";
    echo "&nbsp;&nbsp;data_fim = NOW(),<br>";
    echo "&nbsp;&nbsp;latitude_final = ?,<br>";
    echo "&nbsp;&nbsp;longitude_final = ?,<br>";
    echo "&nbsp;&nbsp;km_gps_final = ?,<br>";
    echo "&nbsp;&nbsp;km_final = ?,<br>";
    echo "&nbsp;&nbsp;observacoes = ?,<br>";
    echo "&nbsp;&nbsp;endereco_final = ?<br>";
    echo "WHERE id = ? AND data_fim IS NULL";
    echo "</div>";
    
    echo "<h2>✅ SQL CORRIGIDO (PRESERVA DADOS):</h2>";
    echo "<div style='background: #d4edda; padding: 15px; border-radius: 5px; font-family: monospace;'>";
    echo "UPDATE viagens SET<br>";
    echo "&nbsp;&nbsp;data_fim = NOW(),<br>";
    echo "&nbsp;&nbsp;latitude_final = COALESCE(?, latitude_final),<br>";
    echo "&nbsp;&nbsp;longitude_final = COALESCE(?, longitude_final),<br>";
    echo "&nbsp;&nbsp;km_gps_final = COALESCE(?, km_gps_final),<br>";
    echo "&nbsp;&nbsp;km_final = COALESCE(?, km_final),<br>";
    echo "&nbsp;&nbsp;observacoes = COALESCE(?, observacoes),<br>";
    echo "&nbsp;&nbsp;endereco_final = COALESCE(?, endereco_final)<br>";
    echo "WHERE id = ? AND data_fim IS NULL";
    echo "</div>";
    
    echo "<p><strong>📌 COALESCE(?, campo):</strong> Se o valor enviado for NULL, mantém o valor atual do campo.</p>";
    
    echo "<h2>🚀 PRÓXIMOS PASSOS:</h2>";
    echo "<ol>";
    echo "<li><strong>Corrigir a API</strong> - Modificar o SQL de UPDATE</li>";
    echo "<li><strong>Testar novamente</strong> - Verificar se preserva os dados</li>";
    echo "<li><strong>Validar resultado</strong> - Confirmar que não apaga mais nada</li>";
    echo "</ol>";
    
} catch (Exception $e) {
    echo "<h1 style='color: red;'>ERRO: " . $e->getMessage() . "</h1>";
}
?> 
