<?php
// Script para verificar se a rota 19 foi finalizada
require_once 'config/database.php';

header('Content-Type: application/json');

try {
    $pdo = conectarBanco();
    
    echo "=== VERIFICAÇÃO FINALIZAÇÃO ROTA 19 ===\n\n";
    
    // 1. Verificar dados atuais da rota 19
    echo "1. DADOS ATUAIS DA ROTA 19:\n";
    $stmt = $pdo->prepare("
        SELECT 
            id,
            titulo,
            status,
            data_inicio_real,
            data_fim_real,
            motorista_id,
            observacoes_finais
        FROM solicitacoes_rotas 
        WHERE id = 19
    ");
    $stmt->execute();
    $rota = $stmt->fetch();
    
    if ($rota) {
        echo "- ID: {$rota['id']}\n";
        echo "- Título: '{$rota['titulo']}'\n";
        echo "- Status atual: '{$rota['status']}'\n";
        echo "- Data início real: '{$rota['data_inicio_real']}'\n";
        echo "- Data fim real: '{$rota['data_fim_real']}'\n";
        echo "- Motorista ID: {$rota['motorista_id']}\n";
        echo "- Observações finais: '{$rota['observacoes_finais']}'\n";
    }
    
    // 2. Verificar viagens da rota 19
    echo "\n2. VIAGENS DA ROTA 19:\n";
    $stmt = $pdo->prepare("
        SELECT 
            v.id,
            v.cliente,
            v.data_inicio,
            v.data_fim,
            v.km_gps_final,
            rv.ordem_execucao
        FROM viagens v
        INNER JOIN rota_viagens rv ON v.id = rv.viagem_id
        WHERE rv.solicitacao_rota_id = 19
        ORDER BY rv.ordem_execucao
    ");
    $stmt->execute();
    $viagens = $stmt->fetchAll();
    
    foreach ($viagens as $viagem) {
        $status = $viagem['data_fim'] ? 'concluida' : 'em_andamento';
        echo "- ID: {$viagem['id']}, Cliente: '{$viagem['cliente']}', Status: {$status}, KM: {$viagem['km_gps_final']}, Ordem: {$viagem['ordem_execucao']}\n";
    }
    
    // 3. Verificar se todas as viagens foram finalizadas
    echo "\n3. VERIFICANDO FINALIZAÇÃO:\n";
    $todasFinalizadas = true;
    foreach ($viagens as $viagem) {
        if (empty($viagem['data_fim'])) {
            $todasFinalizadas = false;
            echo "- Viagem ID {$viagem['id']} NÃO foi finalizada\n";
        } else {
            echo "- Viagem ID {$viagem['id']} foi finalizada em: {$viagem['data_fim']}\n";
        }
    }
    
    if ($todasFinalizadas) {
        echo "✅ Todas as viagens foram finalizadas!\n";
        
        // 4. Atualizar status da rota para concluída
        echo "\n4. ATUALIZANDO STATUS DA ROTA:\n";
        
        // Pegar a data_fim da última viagem como data_fim_real da rota
        $stmt = $pdo->prepare("
            SELECT MAX(v.data_fim) as data_fim_mais_recente
            FROM viagens v
            INNER JOIN rota_viagens rv ON v.id = rv.viagem_id
            WHERE rv.solicitacao_rota_id = 19
        ");
        $stmt->execute();
        $dataFim = $stmt->fetch();
        
        $stmt = $pdo->prepare("
            UPDATE solicitacoes_rotas 
            SET 
                status = 'concluida',
                data_fim_real = ?
            WHERE id = 19
        ");
        $stmt->execute([$dataFim['data_fim_mais_recente']]);
        
        echo "✅ Rota 19 atualizada para 'concluida'\n";
        echo "✅ Data fim real definida como: {$dataFim['data_fim_mais_recente']}\n";
        
    } else {
        echo "❌ Nem todas as viagens foram finalizadas!\n";
        echo "⚠️ A rota não pode ser marcada como concluída\n";
    }
    
    // 5. Verificar resultado final
    echo "\n5. RESULTADO FINAL:\n";
    $stmt = $pdo->prepare("
        SELECT 
            id,
            titulo,
            status,
            data_inicio_real,
            data_fim_real
        FROM solicitacoes_rotas 
        WHERE id = 19
    ");
    $stmt->execute();
    $rotaFinal = $stmt->fetch();
    
    echo "- ID: {$rotaFinal['id']}\n";
    echo "- Título: '{$rotaFinal['titulo']}'\n";
    echo "- Status final: '{$rotaFinal['status']}'\n";
    echo "- Data início: '{$rotaFinal['data_inicio_real']}'\n";
    echo "- Data fim: '{$rotaFinal['data_fim_real']}'\n";
    
    echo "\n=== FIM DA VERIFICAÇÃO ===\n";
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "\n";
}
?>
