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

require_once 'conexao.php';

echo "<!DOCTYPE html>
<html>
<head>
    <title>Verificar Viagens da Rota 33</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; }
        .success { color: green; }
        .error { color: red; }
        .warning { color: orange; }
        .info { color: blue; }
        table { border-collapse: collapse; width: 100%; margin: 20px 0; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
        th { background-color: #f2f2f2; }
        .btn { background-color: #4CAF50; color: white; padding: 10px 20px; text-decoration: none; border-radius: 4px; }
    </style>
</head>
<body>";

echo "<h1>🔍 Verificar Viagens da Rota 33</h1>";

try {
    $pdo = conectarBanco();
    
    // Verificar se a rota 33 existe
    $sqlRota = "SELECT * FROM solicitacoes_rotas WHERE id = 33";
    $stmtRota = $pdo->query($sqlRota);
    $rota = $stmtRota->fetch(PDO::FETCH_ASSOC);
    
    if (!$rota) {
        echo "<p class='error'>❌ Rota 33 não encontrada!</p>";
        exit;
    }
    
    echo "<h2>📋 Dados da Rota 33</h2>";
    echo "<table>";
    echo "<tr><th>Campo</th><th>Valor</th></tr>";
    echo "<tr><td>ID</td><td>{$rota['id']}</td></tr>";
    echo "<tr><td>Título</td><td>{$rota['titulo']}</td></tr>";
    echo "<tr><td>Status</td><td>{$rota['status']}</td></tr>";
    echo "<tr><td>KM Estimado</td><td>{$rota['km_estimado']}</td></tr>";
    echo "<tr><td>KM Real</td><td>{$rota['km_real']}</td></tr>";
    echo "<tr><td>Data Início Real</td><td>{$rota['data_inicio_real']}</td></tr>";
    echo "<tr><td>Data Fim Real</td><td>{$rota['data_fim_real']}</td></tr>";
    echo "</table>";
    
    // Verificar viagens da rota
    $sqlViagens = "SELECT * FROM viagens WHERE id IN (SELECT viagem_id FROM rota_viagens WHERE solicitacao_rota_id = 33)";
    $stmtViagens = $pdo->query($sqlViagens);
    $viagens = $stmtViagens->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<h2>🚗 Viagens da Rota 33</h2>";
    echo "<table>";
    echo "<tr><th>ID</th><th>Cliente</th><th>KM Inicial</th><th>KM Final</th><th>Data Início</th><th>Data Fim</th><th>Status</th></tr>";
    
    foreach ($viagens as $viagem) {
        $status = "❌ Não finalizada";
        if ($viagem['km_final'] && $viagem['data_fim']) {
            $status = "✅ Finalizada";
        }
        
        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['data_inicio']}</td>";
        echo "<td>{$viagem['data_fim']}</td>";
        echo "<td>$status</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // Verificar se há viagens não finalizadas
    $viagensNaoFinalizadas = array_filter($viagens, function($v) {
        return !$v['km_final'] || !$v['data_fim'];
    });
    
    if (!empty($viagensNaoFinalizadas)) {
        echo "<h2 class='warning'>⚠️ Viagens Não Finalizadas</h2>";
        echo "<p>As seguintes viagens não foram finalizadas corretamente:</p>";
        
        foreach ($viagensNaoFinalizadas as $viagem) {
            echo "<p>• Viagem ID {$viagem['id']}: {$viagem['cliente']}</p>";
        }
        
        // Botão para corrigir manualmente
        echo "<h3>🔧 Correção Manual</h3>";
        echo "<p>Se você souber o KM final da rota, pode corrigir manualmente:</p>";
        echo "<form method='POST'>";
        echo "<label>KM Final: <input type='number' name='km_final' required></label><br><br>";
        echo "<label>Observações: <textarea name='observacoes' rows='3' cols='50'></textarea></label><br><br>";
        echo "<input type='submit' value='Corrigir Viagens' class='btn'>";
        echo "</form>";
        
        // Processar correção manual
        if ($_POST && isset($_POST['km_final'])) {
            $kmFinal = (int)$_POST['km_final'];
            $observacoes = $_POST['observacoes'] ?? '';
            $dataFim = date('Y-m-d H:i:s');
            
            echo "<h3>🔄 Aplicando Correção...</h3>";
            
            // Atualizar rota
            $sqlUpdateRota = "UPDATE solicitacoes_rotas SET 
                             status = 'concluida',
                             km_real = ?,
                             data_fim_real = ?,
                             observacoes_finais = ?
                             WHERE id = 33";
            
            $stmtUpdateRota = $pdo->prepare($sqlUpdateRota);
            $successRota = $stmtUpdateRota->execute([$kmFinal, $dataFim, $observacoes]);
            
            // Atualizar viagens
            $sqlUpdateViagens = "UPDATE viagens SET 
                                km_final = ?,
                                data_fim = ?,
                                observacoes = CONCAT(COALESCE(observacoes, ''), ' | ', ?)
                                WHERE id IN (SELECT viagem_id FROM rota_viagens WHERE solicitacao_rota_id = 33)";
            
            $stmtUpdateViagens = $pdo->prepare($sqlUpdateViagens);
            $successViagens = $stmtUpdateViagens->execute([$kmFinal, $dataFim, $observacoes]);
            
            if ($successRota && $successViagens) {
                echo "<p class='success'>✅ Correção aplicada com sucesso!</p>";
                echo "<p>• Rota atualizada: KM Real = $kmFinal, Status = concluida</p>";
                echo "<p>• Viagens atualizadas: " . $stmtUpdateViagens->rowCount() . " registros</p>";
                
                // Recarregar página para mostrar dados atualizados
                echo "<script>setTimeout(function(){ location.reload(); }, 2000);</script>";
            } else {
                echo "<p class='error'>❌ Erro ao aplicar correção!</p>";
            }
        }
    } else {
        echo "<p class='success'>✅ Todas as viagens da rota 33 estão finalizadas corretamente!</p>";
    }
    
} catch (Exception $e) {
    echo "<p class='error'>❌ Erro: " . $e->getMessage() . "</p>";
}

echo "</body></html>";
?>
