<?php
session_start();
error_reporting(E_ALL & ~E_NOTICE); 
include_once "utils_database.php";
include_once "utils.php";
// Get user information if logged in
$vAreasUsuario = isset($_SESSION['usr']) ? getDatUser($_SESSION['usr'], 9) : '';
$vTipo = isset($_SESSION['usr']) ? getDatUser($_SESSION['usr'], 2) : '';
$vIdUsr = isset($_SESSION['usr']) ? getDatUser($_SESSION['usr'], 1) : '';
$vIdEvaluador = ($vTipo == 'E' ? $vIdUsr : "");
// Check if user is authenticated, if not redirect to login page
if (!isset($_SESSION['AccesoConcedido']) || !$_SESSION['AccesoConcedido']) {
    header("Location: login.php");
    exit;
}

// Variable para controlar si se ha procesado un reseteo
$resetProcesado = false;
$mensajeResultado = '';
$trabajoCodigo = '';
$evaluadorNum = '';

// Verificar si el formulario fue enviado correctamente
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['trabajo_codigo']) && isset($_POST['evaluador_num'])) {
    
    $trabajoCodigo = $_POST['trabajo_codigo'];
    $evaluadorNum = $_POST['evaluador_num'];
    
    // Si hay un parámetro de confirmación, procesar el reseteo
    if (isset($_POST['confirmar_reseteo']) && $_POST['confirmar_reseteo'] == 'true') {
        // Verificar permisos: solo usuarios de tipo A y S pueden realizar esta acción
        if ($vTipo != 'A' && $vTipo != 'S') {
            $resetProcesado = true;
            $mensajeResultado = "Error: No tiene permisos para realizar esta acción.";
            // No redireccionar, mostrar mensaje en la misma página
        }
        
        // Validar que el número de evaluador sea válido (1, 2 o 3)
        if (!in_array($evaluadorNum, array('1', '2', '3'))) {
            $resetProcesado = true;
            $mensajeResultado = "Error: El evaluador seleccionado no es válido.";
            // No redireccionar, mostrar mensaje en la misma página
        }
        
        // Obtener el ID del trabajo
        $idTrabajo = GetDato("ttrabajo", "codigo", $trabajoCodigo, "id");
        
        if (!$idTrabajo) {
            $resetProcesado = true;
            $mensajeResultado = "Error: No se encontró el trabajo especificado.";
            // No redireccionar, mostrar mensaje en la misma página
        }
        
        // Construir el comando SQL para resetear la evaluación específica
        $vSet = "calificacion" . $evaluadorNum . "_1=NULL, ";
        $vSet .= "calificacion" . $evaluadorNum . "_2=NULL, ";
        $vSet .= "calificacion" . $evaluadorNum . "_3=NULL, ";
        $vSet .= "calificacion" . $evaluadorNum . "_4=NULL, ";
        $vSet .= "calificacion" . $evaluadorNum . "_5=NULL, ";
        $vSet .= "calificacion" . $evaluadorNum . "_6=NULL, ";
        $vSet .= "calificacion" . $evaluadorNum . "_fecha=NULL, ";
        $vSet .= "cod_tipo_presentacion_recomendado" . $evaluadorNum . "=NULL";
        
        // También verificar si debemos actualizar el estado
        $otrosEvaluadores = false;
        for ($i = 1; $i <= 3; $i++) {
            if ($i != $evaluadorNum) {
                $eval = GetDato("ttrabajo", "id", $idTrabajo, "evaluador" . $i);
                $calificacion = GetDato("ttrabajo", "id", $idTrabajo, "calificacion" . $i . "_fecha");
                
                if ($eval !== NULL && $calificacion !== NULL) {
                    $otrosEvaluadores = true;
                    break;
                }
            }
        }
        
        // Si no hay otros evaluadores asignados con calificaciones, cambiar estado a 1
        if (!$otrosEvaluadores) {
            $vSet .= ", estado='1'";
        }
        
        // Ejecutar la actualización
        $resultado = UpdateRegEsp("ttrabajo", $vSet, "codigo='" . trim($trabajoCodigo) . "'");
        
        $resetProcesado = true;
        if ($resultado) {
            $mensajeResultado = "¡Reseteo completado con éxito! Se han eliminado las calificaciones del Evaluador " . $evaluadorNum . ".";
        } else {
            $mensajeResultado = "Error al resetear. No se pudo actualizar la base de datos.";
        }
    }
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Reseteo de Evaluación</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            line-height: 1.6;
            margin: 0;
            padding: 20px;
            background-color: #f4f4f4;
        }
        .container {
            max-width: 800px;
            margin: 0 auto;
            background: white;
            padding: 20px;
            border-radius: 5px;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
        }
        h1 {
            color: #333;
            border-bottom: 1px solid #eee;
            padding-bottom: 10px;
        }
        .mensaje {
            padding: 15px;
            margin-bottom: 20px;
            border-radius: 4px;
        }
        .mensaje-exito {
            background-color: #d4edda;
            color: #155724;
            border: 1px solid #c3e6cb;
        }
        .mensaje-error {
            background-color: #f8d7da;
            color: #721c24;
            border: 1px solid #f5c6cb;
        }
        .btn {
            display: inline-block;
            padding: 10px 20px;
            margin: 10px 0;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            text-decoration: none;
            font-size: 16px;
            font-weight: bold;
            text-align: center;
        }
        .btn-grande {
            padding: 15px 30px;
            font-size: 18px;
            width: 100%;
            margin: 20px 0;
        }
        .btn-continuar {
            background-color: #28a745;
            color: white;
        }
        .btn-continuar:hover {
            background-color: #218838;
        }
        .btn-volver {
            background-color: #6c757d;
            color: white;
        }
        .btn-volver:hover {
            background-color: #5a6268;
        }
        .confirmacion {
            background-color: #fff3cd;
            color: #856404;
            border: 1px solid #ffeeba;
            padding: 15px;
            margin-bottom: 20px;
            border-radius: 4px;
        }
        form {
            margin: 20px 0;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>Reseteo de Evaluación</h1>
        
        <?php if ($resetProcesado): ?>
            <!-- Mostrar resultado del reseteo -->
            <div class="mensaje <?php echo (strpos($mensajeResultado, 'Error') !== false) ? 'mensaje-error' : 'mensaje-exito'; ?>">
                <?php echo $mensajeResultado; ?>
            </div>
            
            <!-- Volver a la ficha del trabajo con el formato correcto de URL -->
            <?php 
            // Construir la URL con el tipo de usuario primero, luego el código del trabajo
            $tipoUsuario = ($vTipo == 'S' || $vTipo == 'A') ? $vTipo : "";
            ?>
            <a href="trabajo.php?opc=<?php echo $tipoUsuario . $trabajoCodigo; ?>&m=<?php echo md5($trabajoCodigo); ?>" class="btn btn-volver">Volver a la ficha del trabajo</a>
            
        <?php elseif ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['trabajo_codigo']) && isset($_POST['evaluador_num'])): ?>
            <!-- Confirmación antes de resetear -->
            <div class="confirmacion">
                <p><strong>Atención:</strong> Está a punto de resetear la calificación del Evaluador <?php echo $evaluadorNum; ?>.</p>
                <p>Esta acción eliminará todos los datos de evaluación y no se puede deshacer.</p>
            </div>
            
            <form method="post" action="reset_evaluation.php">
                <input type="hidden" name="trabajo_codigo" value="<?php echo $trabajoCodigo; ?>">
                <input type="hidden" name="evaluador_num" value="<?php echo $evaluadorNum; ?>">
                <input type="hidden" name="confirmar_reseteo" value="true">
                
                <button type="submit" class="btn btn-grande btn-continuar">CONTINUAR RESETEANDO</button>
            </form>
            
            <a href="javascript:history.back();" class="btn btn-volver">Volver atrás</a>
            
        <?php else: ?>
            <!-- Mostrar error si se accede directamente sin datos -->
            <div class="mensaje mensaje-error">
                Error: No se han proporcionado los datos necesarios para realizar el reseteo.
            </div>
            
            <a href="dashboard.php" class="btn btn-volver">Volver al panel principal</a>
        <?php endif; ?>
    </div>
</body>
</html>