<?php
/**
 * Script para corrigir datas de início real das rotas finalizadas
 * que não têm data_inicio_real mas têm data_fim_real
 */

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

echo "<h1>🔧 Corrigindo Datas de Início das Rotas</h1>";

try {
    // Conectar ao banco (usando as mesmas credenciais do sistema)
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "<p>✅ Conectado ao banco de dados</p>";
    
    // Buscar rotas que têm data_fim_real mas não têm data_inicio_real
    $sql = "SELECT id, titulo, data_prevista, hora_inicio_prevista, data_fim_real, data_inicio_real, status 
            FROM solicitacoes_rotas 
            WHERE data_fim_real IS NOT NULL 
            AND (data_inicio_real IS NULL OR data_inicio_real = '0000-00-00 00:00:00')
            AND status = 'concluida'";
    
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $rotas = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<p>📊 Encontradas " . count($rotas) . " rotas para corrigir:</p>";
    
    if (count($rotas) > 0) {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>ID</th><th>Título</th><th>Data Prevista</th><th>Hora Prevista</th><th>Data Fim Real</th><th>Status</th></tr>";
        
        foreach ($rotas as $rota) {
            echo "<tr>";
            echo "<td>{$rota['id']}</td>";
            echo "<td>{$rota['titulo']}</td>";
            echo "<td>{$rota['data_prevista']}</td>";
            echo "<td>{$rota['hora_inicio_prevista']}</td>";
            echo "<td>{$rota['data_fim_real']}</td>";
            echo "<td>{$rota['status']}</td>";
            echo "</tr>";
        }
        echo "</table>";
        
        // Corrigir as datas - usar data_prevista + hora_inicio_prevista como data_inicio_real
        $sqlUpdate = "UPDATE solicitacoes_rotas SET 
                     data_inicio_real = CONCAT(data_prevista, ' ', hora_inicio_prevista)
                     WHERE data_fim_real IS NOT NULL 
                     AND (data_inicio_real IS NULL OR data_inicio_real = '0000-00-00 00:00:00')
                     AND status = 'concluida'";
        
        $stmtUpdate = $pdo->prepare($sqlUpdate);
        $stmtUpdate->execute();
        
        $linhasAfetadas = $stmtUpdate->rowCount();
        echo "<p>✅ <strong>Corrigidas $linhasAfetadas rotas!</strong></p>";
        
        // Verificar se a correção funcionou
        $sqlVerificar = "SELECT id, titulo, data_inicio_real, data_fim_real 
                        FROM solicitacoes_rotas 
                        WHERE data_fim_real IS NOT NULL 
                        AND data_inicio_real IS NOT NULL 
                        AND data_inicio_real != '0000-00-00 00:00:00'
                        AND status = 'concluida'
                        ORDER BY id DESC 
                        LIMIT 5";
        
        $stmtVerificar = $pdo->prepare($sqlVerificar);
        $stmtVerificar->execute();
        $rotasCorrigidas = $stmtVerificar->fetchAll(PDO::FETCH_ASSOC);
        
        echo "<h3>📋 Últimas 5 rotas corrigidas:</h3>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>ID</th><th>Título</th><th>Data Início Real</th><th>Data Fim Real</th></tr>";
        
        foreach ($rotasCorrigidas as $rota) {
            echo "<tr>";
            echo "<td>{$rota['id']}</td>";
            echo "<td>{$rota['titulo']}</td>";
            echo "<td>{$rota['data_inicio_real']}</td>";
            echo "<td>{$rota['data_fim_real']}</td>";
            echo "</tr>";
        }
        echo "</table>";
        
    } else {
        echo "<p>✅ Todas as rotas já estão com as datas corretas!</p>";
    }
    
    // Testar cálculo de tempo real
    echo "<h3>🧮 Teste de Cálculo de Tempo Real:</h3>";
    
    $sqlTeste = "SELECT id, titulo, data_inicio_real, data_fim_real 
                 FROM solicitacoes_rotas 
                 WHERE data_inicio_real IS NOT NULL 
                 AND data_fim_real IS NOT NULL 
                 AND data_inicio_real != '0000-00-00 00:00:00'
                 AND data_fim_real != '0000-00-00 00:00:00'
                 AND status = 'concluida'
                 ORDER BY id DESC 
                 LIMIT 3";
    
    $stmtTeste = $pdo->prepare($sqlTeste);
    $stmtTeste->execute();
    $rotasTeste = $stmtTeste->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr><th>ID</th><th>Título</th><th>Início</th><th>Fim</th><th>Tempo Real (min)</th></tr>";
    
    foreach ($rotasTeste as $rota) {
        $inicio = new DateTime($rota['data_inicio_real']);
        $fim = new DateTime($rota['data_fim_real']);
        $diferenca = $inicio->diff($fim);
        $tempoMinutos = ($diferenca->h * 60) + $diferenca->i;
        
        echo "<tr>";
        echo "<td>{$rota['id']}</td>";
        echo "<td>{$rota['titulo']}</td>";
        echo "<td>{$rota['data_inicio_real']}</td>";
        echo "<td>{$rota['data_fim_real']}</td>";
        echo "<td><strong>$tempoMinutos min</strong></td>";
        echo "</tr>";
    }
    echo "</table>";
    
} catch (Exception $e) {
    echo "<p>❌ Erro: " . $e->getMessage() . "</p>";
}

echo "<p><a href='admin/dashboard.html'>← Voltar ao Dashboard</a></p>";
?>
