<?php
session_start();
include_once 'config/database.php';

// Configurar zona horaria de Lima, Perú
date_default_timezone_set('America/Lima');

$database = new Database();
$conn = $database->getConnection();

echo "<h2>DEBUG HORARIO - Información Completa</h2>";

if (!isset($_SESSION['user']['codempleado'])) {
    echo "<p style='color: red;'>Usuario no logueado</p>";
    exit();
}

$empleadoId = $_SESSION['user']['codempleado'];
echo "<p><strong>ID Empleado:</strong> " . $empleadoId . "</p>";

// Información de zona horaria
echo "<h3>Información de Zona Horaria</h3>";
echo "<p><strong>Zona horaria:</strong> " . date_default_timezone_get() . "</p>";
echo "<p><strong>Fecha completa:</strong> " . date('Y-m-d H:i:s') . "</p>";
echo "<p><strong>Día de la semana:</strong> " . date('N') . " (1=Lunes, 7=Domingo)</p>";
echo "<p><strong>Hora actual:</strong> " . date('H:i:s') . "</p>";

try {
    // Obtener información del empleado
    $stmt = $conn->prepare("
        SELECT e.*, th.tipohorario 
        FROM templeado e 
        LEFT JOIN tipohorario th ON e.codtipohorario = th.codtipohorario 
        WHERE e.codempleado = ?
    ");
    $stmt->execute([$empleadoId]);
    $empleadoInfo = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($empleadoInfo) {
        echo "<h3>Información del Empleado</h3>";
        echo "<p><strong>Nombre:</strong> " . $empleadoInfo['nombres'] . " " . $empleadoInfo['apellidoPaterno'] . "</p>";
        echo "<p><strong>Tipo de horario:</strong> " . $empleadoInfo['tipohorario'] . "</p>";
        echo "<p><strong>Código tipo horario:</strong> " . $empleadoInfo['codtipohorario'] . "</p>";
        
        $diaActual = date('N');
        echo "<h3>Consulta de Horarios</h3>";
        echo "<p><strong>Día actual:</strong> " . $diaActual . "</p>";
        
        // Verificar si el empleado tiene horario para hoy
        echo "<h3>Consulta SQL</h3>";
        echo "<p><strong>SQL:</strong> SELECT h.*, d.diasemana, d.coddiasemana FROM thorario h LEFT JOIN tdiasemana d ON h.coddiasemana = d.coddiasemana WHERE h.codtipohorario = ? AND d.coddiasemana = ?</p>";
        echo "<p><strong>Parámetros:</strong> codtipohorario = " . $empleadoInfo['codtipohorario'] . ", diaActual = " . $diaActual . "</p>";
        
        $stmt = $conn->prepare("
            SELECT h.*, d.diasemana, d.coddiasemana
            FROM thorario h
            LEFT JOIN tdiasemana d ON h.coddiasemana = d.coddiasemana
            WHERE h.codtipohorario = ? AND d.coddiasemana = ?
        ");
        $stmt->execute([$empleadoInfo['codtipohorario'], $diaActual]);
        $horarioActual = $stmt->fetch(PDO::FETCH_ASSOC);
        
        // Mostrar todos los horarios para este tipo de horario
        echo "<h3>Todos los horarios para este tipo de horario</h3>";
        $stmt2 = $conn->prepare("
            SELECT h.*, d.diasemana, d.coddiasemana
            FROM thorario h
            LEFT JOIN tdiasemana d ON h.coddiasemana = d.coddiasemana
            WHERE h.codtipohorario = ?
            ORDER BY d.coddiasemana
        ");
        $stmt2->execute([$empleadoInfo['codtipohorario']]);
        $todosHorarios = $stmt2->fetchAll(PDO::FETCH_ASSOC);
        
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr><th>Día</th><th>Código Día</th><th>Hora Inicio</th><th>Hora Fin</th><th>Es Hoy?</th></tr>";
        foreach ($todosHorarios as $horario) {
            $esHoy = $horario['coddiasemana'] == $diaActual ? "SÍ" : "NO";
            echo "<tr>";
            echo "<td>" . $horario['diasemana'] . "</td>";
            echo "<td>" . $horario['coddiasemana'] . "</td>";
            echo "<td>" . $horario['horainicio'] . "</td>";
            echo "<td>" . $horario['horafinal'] . "</td>";
            echo "<td style='background-color: " . ($esHoy == "SÍ" ? "yellow" : "white") . ";'>" . $esHoy . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        
        echo "<p><strong>Horario encontrado:</strong> " . ($horarioActual ? "SÍ" : "NO") . "</p>";
        
        if ($horarioActual) {
            echo "<h3>Detalles del Horario Encontrado</h3>";
            echo "<pre>" . print_r($horarioActual, true) . "</pre>";
            
            // Verificar si hay múltiples horarios para el mismo día
            echo "<h3>Verificación de Múltiples Horarios</h3>";
            $stmt3 = $conn->prepare("
                SELECT COUNT(*) as total
                FROM thorario h
                LEFT JOIN tdiasemana d ON h.coddiasemana = d.coddiasemana
                WHERE h.codtipohorario = ? AND d.coddiasemana = ?
            ");
            $stmt3->execute([$empleadoInfo['codtipohorario'], $diaActual]);
            $totalHorarios = $stmt3->fetchColumn();
            echo "<p><strong>Total de horarios para hoy:</strong> " . $totalHorarios . "</p>";
            
            if ($totalHorarios > 1) {
                echo "<p style='color: red;'><strong>¡PROBLEMA DETECTADO!</strong> Hay múltiples horarios para el mismo día. Esto puede causar inconsistencias.</p>";
                
                // Mostrar todos los horarios para hoy
                $stmt4 = $conn->prepare("
                    SELECT h.*, d.diasemana, d.coddiasemana
                    FROM thorario h
                    LEFT JOIN tdiasemana d ON h.coddiasemana = d.coddiasemana
                    WHERE h.codtipohorario = ? AND d.coddiasemana = ?
                    ORDER BY h.horainicio
                ");
                $stmt4->execute([$empleadoInfo['codtipohorario'], $diaActual]);
                $horariosHoy = $stmt4->fetchAll(PDO::FETCH_ASSOC);
                
                echo "<h4>Todos los horarios para hoy:</h4>";
                echo "<table border='1' style='border-collapse: collapse;'>";
                echo "<tr><th>Hora Inicio</th><th>Hora Fin</th><th>Día</th></tr>";
                foreach ($horariosHoy as $horario) {
                    echo "<tr>";
                    echo "<td>" . $horario['horainicio'] . "</td>";
                    echo "<td>" . $horario['horafinal'] . "</td>";
                    echo "<td>" . $horario['diasemana'] . "</td>";
                    echo "</tr>";
                }
                echo "</table>";
            }
            
            $horaInicio = $horarioActual['horainicio'];
            $horaFin = $horarioActual['horafinal'];
            $horaActual = date('H:i:s');
            
            echo "<h3>Comparación de Horas</h3>";
            echo "<p><strong>Hora actual:</strong> " . $horaActual . "</p>";
            echo "<p><strong>Hora inicio:</strong> " . $horaInicio . "</p>";
            echo "<p><strong>Hora fin:</strong> " . $horaFin . "</p>";
            
            // Comparación con strings
            echo "<h4>Comparación con Strings</h4>";
            echo "<p>Hora actual >= Hora inicio: " . ($horaActual >= $horaInicio ? "SÍ" : "NO") . "</p>";
            echo "<p>Hora actual <= Hora fin: " . ($horaActual <= $horaFin ? "SÍ" : "NO") . "</p>";
            echo "<p>Dentro del horario (string): " . (($horaActual >= $horaInicio && $horaActual <= $horaFin) ? "SÍ" : "NO") . "</p>";
            
            // Comparación con timestamps
            $timestampActual = strtotime($horaActual);
            $timestampInicio = strtotime($horaInicio);
            $timestampFin = strtotime($horaFin);
            
            echo "<h4>Comparación con Timestamps</h4>";
            echo "<p><strong>Timestamp actual:</strong> " . $timestampActual . " (" . date('H:i:s', $timestampActual) . ")</p>";
            echo "<p><strong>Timestamp inicio:</strong> " . $timestampInicio . " (" . date('H:i:s', $timestampInicio) . ")</p>";
            echo "<p><strong>Timestamp fin:</strong> " . $timestampFin . " (" . date('H:i:s', $timestampFin) . ")</p>";
            echo "<p>Timestamp actual >= Timestamp inicio: " . ($timestampActual >= $timestampInicio ? "SÍ" : "NO") . "</p>";
            echo "<p>Timestamp actual <= Timestamp fin: " . ($timestampActual <= $timestampFin ? "SÍ" : "NO") . "</p>";
            echo "<p>Dentro del horario (timestamp): " . (($timestampActual >= $timestampInicio && $timestampActual <= $timestampFin) ? "SÍ" : "NO") . "</p>";
            
        } else {
            echo "<h3>No se encontró horario para hoy</h3>";
            
            // Mostrar todos los horarios del empleado
            $stmt = $conn->prepare("
                SELECT h.*, d.diasemana, d.coddiasemana
                FROM thorario h
                LEFT JOIN tdiasemana d ON h.coddiasemana = d.coddiasemana
                WHERE h.codtipohorario = ?
                ORDER BY d.coddiasemana
            ");
            $stmt->execute([$empleadoInfo['codtipohorario']]);
            $todosHorarios = $stmt->fetchAll(PDO::FETCH_ASSOC);
            
            echo "<h4>Todos los horarios del empleado:</h4>";
            echo "<pre>" . print_r($todosHorarios, true) . "</pre>";
        }
        
    } else {
        echo "<p style='color: red;'>Empleado no encontrado</p>";
    }
    
} catch(PDOException $e) {
    echo "<p style='color: red;'>Error: " . $e->getMessage() . "</p>";
}
?>
