<?php
// Vista para llenar encuestas de clientes
// Conexión directa a la base de datos sin autenticación

// Configuración de base de datos (usando la misma configuración del sistema)
$host = "localhost";
$database = "servic27_bdventas";
$username = "servic27_usuario";
$password = "2RI+V@GGITx3";

try {
    $pdo = new PDO("mysql:host=$host;dbname=$database;charset=utf8mb4", $username, $password, 
                   array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"));
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // Asegurar charset UTF-8
    $pdo->exec("SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci");
    $pdo->exec("SET CHARACTER SET utf8mb4");
} catch(PDOException $e) {
    die("Error de conexión a la base de datos: " . $e->getMessage());
}

$codprogramacion = isset($_GET['codprogramacion']) ? intval($_GET['codprogramacion']) : 0;
$codencuesta = isset($_GET['codencuesta']) ? intval($_GET['codencuesta']) : 0;
$error = '';
$success = '';
$cliente = null;
$encuesta = null;
$preguntas = [];

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

// Validar parámetros
if (!$codprogramacion || !$codencuesta) {
    $error = "Parámetros inválidos. Por favor, regrese a la búsqueda de clientes.";
} else {
    // Obtener información del cliente
    try {
        $stmt = $pdo->prepare("SELECT codprogramacion, documento, nombre, direccion, distrito, paquete 
                               FROM tclientes_import 
                               WHERE codprogramacion = ?");
        $stmt->execute([$codprogramacion]);
        $cliente = $stmt->fetch(PDO::FETCH_ASSOC);
        
        if (!$cliente) {
            $error = "Cliente no encontrado.";
        }
    } catch (Exception $e) {
        $error = "Error al obtener información del cliente: " . $e->getMessage();
    }
    
    // Obtener información de la encuesta
    if ($cliente) {
        try {
            $stmt = $pdo->prepare("SELECT * FROM tencuesta WHERE codencuesta = ?");
            $stmt->execute([$codencuesta]);
            $encuesta = $stmt->fetch(PDO::FETCH_ASSOC);
            
            if (!$encuesta) {
                $error = "Encuesta no encontrada.";
            }
        } catch (Exception $e) {
            $error = "Error al obtener información de la encuesta: " . $e->getMessage();
        }
    }
    
    // Obtener preguntas de la encuesta con sus alternativas
    if ($encuesta) {
        try {
            $sql = "SELECT p.codpreguntas, p.pregunta, p.codtiporespuesta, tr.tiporespuesta, dep.orden
                    FROM tdet_encu_pregu dep
                    INNER JOIN tpreguntas p ON dep.codpreguntas = p.codpreguntas
                    LEFT JOIN tiporespuesta tr ON p.codtiporespuesta = tr.codtiporespuesta
                    WHERE dep.codencuesta = ?
                    ORDER BY dep.orden ASC";
            $stmt = $pdo->prepare($sql);
            $stmt->execute([$codencuesta]);
            $preguntas = $stmt->fetchAll(PDO::FETCH_ASSOC);
            
            // Para cada pregunta, obtener sus alternativas si las tiene
            foreach ($preguntas as &$pregunta) {
                $sql_alternativas = "SELECT a.codalternativas, a.alternativa, dpa.orden
                                    FROM tdetpreg_alterna dpa
                                    INNER JOIN talternativas a ON dpa.codalternativas = a.codalternativas
                                    WHERE dpa.codpreguntas = ?
                                    ORDER BY dpa.orden ASC";
                $stmt_alt = $pdo->prepare($sql_alternativas);
                $stmt_alt->execute([$pregunta['codpreguntas']]);
                $pregunta['alternativas'] = $stmt_alt->fetchAll(PDO::FETCH_ASSOC);
            }
            unset($pregunta);
        } catch (Exception $e) {
            $error = "Error al obtener las preguntas: " . $e->getMessage();
        }
    }
}

// Procesar guardado de respuestas
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['guardar_encuesta'])) {
    $codprogramacion_post = isset($_POST['codprogramacion']) ? intval($_POST['codprogramacion']) : 0;
    $codencuesta_post = isset($_POST['codencuesta']) ? intval($_POST['codencuesta']) : 0;
    $respuestas = isset($_POST['respuestas']) ? $_POST['respuestas'] : [];
    
    if (!$codprogramacion_post || !$codencuesta_post) {
        $error = "Error: Parámetros inválidos.";
    } elseif (empty($respuestas)) {
        $error = "Por favor, responda al menos una pregunta.";
    } else {
        try {
            $pdo->beginTransaction();
            
            // Obtener fecha actual
            $fechaActual = date('Y-m-d H:i:s');
            
            // Obtener todas las preguntas con sus alternativas para procesar las respuestas
            $sql_preguntas = "SELECT p.codpreguntas, p.pregunta, dep.orden
                             FROM tdet_encu_pregu dep
                             INNER JOIN tpreguntas p ON dep.codpreguntas = p.codpreguntas
                             WHERE dep.codencuesta = ?
                             ORDER BY dep.orden ASC";
            $stmt_preguntas = $pdo->prepare($sql_preguntas);
            $stmt_preguntas->execute([$codencuesta_post]);
            $preguntas_guardado = $stmt_preguntas->fetchAll(PDO::FETCH_ASSOC);
            
            // Para cada pregunta, obtener sus alternativas
            foreach ($preguntas_guardado as &$preg) {
                $sql_alt = "SELECT dpa.codpreg_alterna, a.codalternativas, a.alternativa
                           FROM tdetpreg_alterna dpa
                           INNER JOIN talternativas a ON dpa.codalternativas = a.codalternativas
                           WHERE dpa.codpreguntas = ?
                           ORDER BY dpa.orden ASC";
                $stmt_alt = $pdo->prepare($sql_alt);
                $stmt_alt->execute([$preg['codpreguntas']]);
                $preg['alternativas'] = $stmt_alt->fetchAll(PDO::FETCH_ASSOC);
            }
            unset($preg);
            
            // Procesar cada respuesta
            foreach ($respuestas as $codpreguntas => $respuesta_valor) {
                $codpreguntas = intval($codpreguntas);
                $codpreg_alterna = null;
                $texto_respuesta = '';
                
                // Buscar la pregunta correspondiente
                $pregunta_actual = null;
                foreach ($preguntas_guardado as $preg) {
                    if ($preg['codpreguntas'] == $codpreguntas) {
                        $pregunta_actual = $preg;
                        break;
                    }
                }
                
                if ($pregunta_actual) {
                    // Verificar si la respuesta es una alternativa (número) o texto libre
                    $es_alternativa = false;
                    if (is_numeric($respuesta_valor) && !empty($pregunta_actual['alternativas'])) {
                        // Verificar si el valor numérico corresponde a una alternativa válida
                        $codalternativas = intval($respuesta_valor);
                        
                        // Buscar la alternativa y obtener su texto y codpreg_alterna
                        foreach ($pregunta_actual['alternativas'] as $alt) {
                            if ($alt['codalternativas'] == $codalternativas) {
                                $codpreg_alterna = $alt['codpreg_alterna'];
                                $texto_respuesta = $alt['alternativa'];
                                $es_alternativa = true;
                                break;
                            }
                        }
                    }
                    
                    // Si no es una alternativa válida, tratar como texto libre
                    if (!$es_alternativa) {
                        // Es texto libre
                        $texto_respuesta = trim($respuesta_valor);
                        // Limitar a 250 caracteres según la estructura de la tabla
                        if (mb_strlen($texto_respuesta) > 250) {
                            $texto_respuesta = mb_substr($texto_respuesta, 0, 250);
                        }
                    }
                    
                    // Insertar la respuesta en la tabla trespuesta
                    if (!empty($texto_respuesta)) {
                        $stmt_respuesta = $pdo->prepare("INSERT INTO trespuesta 
                                                         (fecharespuesta, codpreg_alterna, codprogramacion, respuesta) 
                                                         VALUES (?, ?, ?, ?)");
                        $stmt_respuesta->execute([
                            $fechaActual,
                            $codpreg_alterna,
                            $codprogramacion_post,
                            $texto_respuesta
                        ]);
                    }
                }
            }
            
            // Actualizar estado de la encuesta del cliente a 'completado'
            $stmt = $pdo->prepare("UPDATE tcliente_encuesta 
                                   SET estado = 'completado' 
                                   WHERE codprogramacion = ? AND codencuesta = ?");
            $stmt->execute([$codprogramacion_post, $codencuesta_post]);
            
            $pdo->commit();
            $success = "Encuesta completada exitosamente. Gracias por su participación.";
            
            // Limpiar variables para mostrar mensaje de éxito
            $preguntas = [];
            
        } catch (Exception $e) {
            $pdo->rollBack();
            $error = "Error al guardar las respuestas: " . $e->getMessage();
        }
    }
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Llenar Encuesta - SIGVEM</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
    <style>
        body {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }

        .main-container {
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 20px 0;
        }

        .encuesta-container {
            background: white;
            border-radius: 20px;
            box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
            overflow: hidden;
            max-width: 900px;
            width: 100%;
        }

        .encuesta-header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 30px;
            text-align: center;
        }

        .encuesta-header h1 {
            margin: 0;
            font-size: 2rem;
            font-weight: 600;
        }

        .encuesta-body {
            padding: 40px;
        }

        .cliente-info {
            background: #f8f9fa;
            border-radius: 15px;
            padding: 25px;
            margin-bottom: 30px;
            border-left: 5px solid #667eea;
        }

        .pregunta-card {
            background: white;
            border-radius: 15px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
            margin-bottom: 25px;
            padding: 25px;
            border-left: 5px solid #28a745;
        }

        .pregunta-numero {
            display: inline-block;
            background: #28a745;
            color: white;
            width: 35px;
            height: 35px;
            border-radius: 50%;
            text-align: center;
            line-height: 35px;
            font-weight: bold;
            margin-right: 15px;
        }

        .form-control, .form-select {
            border-radius: 12px;
            padding: 12px 20px;
            border: 2px solid #e9ecef;
            transition: all 0.3s ease;
        }

        .form-control:focus, .form-select:focus {
            border-color: #667eea;
            box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25);
        }

        .btn-primary {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            border: none;
            border-radius: 12px;
            padding: 15px 30px;
            font-weight: 600;
            font-size: 1.1rem;
            transition: all 0.3s ease;
        }

        .btn-primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 25px rgba(102, 126, 234, 0.3);
        }

        .alert {
            border-radius: 12px;
            border: none;
            padding: 20px;
            margin-bottom: 25px;
        }

        textarea.form-control {
            min-height: 100px;
            resize: vertical;
        }

        .form-check {
            padding: 12px 15px;
            border: 1px solid #e9ecef;
            border-radius: 10px;
            margin-bottom: 10px;
            transition: all 0.3s ease;
            background: #f8f9fa;
        }

        .form-check:hover {
            background: #e9ecef;
            border-color: #667eea;
            transform: translateX(5px);
        }

        .form-check-input {
            width: 20px;
            height: 20px;
            margin-top: 3px;
            cursor: pointer;
        }

        .form-check-input:checked {
            background-color: #28a745;
            border-color: #28a745;
        }

        .form-check-label {
            margin-left: 10px;
            cursor: pointer;
            font-size: 1rem;
            color: #495057;
        }

        .form-check-input:checked ~ .form-check-label {
            color: #28a745;
            font-weight: 600;
        }

        @media (max-width: 768px) {
            .encuesta-body {
                padding: 20px;
            }
            
            .encuesta-header {
                padding: 20px;
            }
            
            .encuesta-header h1 {
                font-size: 1.5rem;
            }
        }
    </style>
</head>
<body>
    <div class="main-container">
        <div class="encuesta-container">
            <div class="encuesta-header">
                <i class="fas fa-clipboard-list fa-3x mb-3"></i>
                <h1>Encuesta</h1>
                <p>Sistema de Gestión de Solicitudes y Encuestas</p>
            </div>
            
            <div class="encuesta-body">
                <?php if ($error): ?>
                    <div class="alert alert-danger">
                        <i class="fas fa-exclamation-triangle me-2"></i>
                        <?php echo htmlspecialchars($error); ?>
                    </div>
                    <div class="text-center">
                        <a href="solicitudes.php" class="btn btn-primary">
                            <i class="fas fa-arrow-left me-2"></i>Volver a Búsqueda
                        </a>
                    </div>
                <?php elseif ($success): ?>
                    <div class="alert alert-success">
                        <i class="fas fa-check-circle me-2"></i>
                        <?php echo htmlspecialchars($success); ?>
                    </div>
                    <div class="text-center">
                        <a href="solicitudes.php" class="btn btn-primary">
                            <i class="fas fa-arrow-left me-2"></i>Volver a Búsqueda
                        </a>
                    </div>
                <?php elseif ($cliente && $encuesta): ?>
                    <!-- Información del Cliente -->
                    <div class="cliente-info">
                        <h4 class="mb-3">
                            <i class="fas fa-user me-2"></i>Cliente
                        </h4>
                        <div class="row">
                            <div class="col-md-6">
                                <p><strong>Documento:</strong> <?php echo htmlspecialchars($cliente['documento'] ?: '-'); ?></p>
                                <p><strong>Nombre:</strong> <?php echo htmlspecialchars($cliente['nombre']); ?></p>
                                <p><strong>Dirección:</strong> <?php echo htmlspecialchars($cliente['direccion'] ?: '-'); ?></p>
                            </div>
                            <div class="col-md-6">
                                <p><strong>Distrito:</strong> <?php echo htmlspecialchars($cliente['distrito'] ?: '-'); ?></p>
                                
                            </div>
                        </div>
                    </div>

                    <!-- Información de la Encuesta -->
                    <div class="alert alert-info">
                        <h5 class="mb-0">
                            <i class="fas fa-clipboard-list me-2"></i>
                            <?php echo htmlspecialchars($encuesta['encuesta']); ?>
                        </h5>
                    </div>

                    <?php if (empty($preguntas)): ?>
                        <div class="alert alert-warning">
                            <i class="fas fa-info-circle me-2"></i>
                            Esta encuesta no tiene preguntas configuradas.
                        </div>
                    <?php else: ?>
                        <!-- Formulario de Preguntas -->
                        <form method="POST" id="encuestaForm" accept-charset="UTF-8">
                            <input type="hidden" name="guardar_encuesta" value="1">
                            <input type="hidden" name="codprogramacion" value="<?php echo $codprogramacion; ?>">
                            <input type="hidden" name="codencuesta" value="<?php echo $codencuesta; ?>">
                            
                            <?php foreach ($preguntas as $index => $pregunta): ?>
                                <div class="pregunta-card">
                                    <div class="mb-3">
                                        <span class="pregunta-numero"><?php echo $index + 1; ?></span>
                                        <strong style="font-size: 1.1rem;">
                                            <?php echo htmlspecialchars($pregunta['pregunta']); ?>
                                        </strong>
                                    </div>
                                    
                                    <?php if (!empty($pregunta['alternativas'])): ?>
                                        <!-- Pregunta con alternativas (radio buttons) -->
                                        <div class="mb-3">
                                            <div class="form-group">
                                                <?php foreach ($pregunta['alternativas'] as $alternativa): ?>
                                                    <div class="form-check mb-2">
                                                        <input class="form-check-input" 
                                                               type="radio" 
                                                               name="respuestas[<?php echo $pregunta['codpreguntas']; ?>]" 
                                                               id="pregunta_<?php echo $pregunta['codpreguntas']; ?>_alt_<?php echo $alternativa['codalternativas']; ?>"
                                                               value="<?php echo $alternativa['codalternativas']; ?>"
                                                               required>
                                                        <label class="form-check-label" 
                                                               for="pregunta_<?php echo $pregunta['codpreguntas']; ?>_alt_<?php echo $alternativa['codalternativas']; ?>">
                                                            <?php echo htmlspecialchars($alternativa['alternativa']); ?>
                                                        </label>
                                                    </div>
                                                <?php endforeach; ?>
                                            </div>
                                        </div>
                                    <?php else: ?>
                                        <!-- Pregunta sin alternativas (texto libre) -->
                                        <div class="mb-3">
                                            <textarea class="form-control" 
                                                      name="respuestas[<?php echo $pregunta['codpreguntas']; ?>]" 
                                                      placeholder="Escriba su respuesta aquí..."
                                                      required></textarea>
                                        </div>
                                    <?php endif; ?>
                                </div>
                            <?php endforeach; ?>
                            
                            <div class="d-flex justify-content-between mt-4">
                                <a href="solicitudes.php" class="btn btn-secondary">
                                    <i class="fas fa-arrow-left me-2"></i>Cancelar
                                </a>
                                <button type="submit" class="btn btn-primary">
                                    <i class="fas fa-save me-2"></i>Enviar Encuesta
                                </button>
                            </div>
                        </form>
                    <?php endif; ?>
                <?php endif; ?>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

