<?php
// Vista independiente para registrar reclamaciones 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=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    die("Error de conexión a la base de datos: " . $e->getMessage());
}

$nombreBusqueda = '';
$documentoBusqueda = '';
$clientesEncontrados = [];
$clienteSeleccionado = null;
$error = '';
$success = '';

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

// Procesar búsqueda
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_POST['buscar'])) {
        // Proceso de búsqueda
        $nombreBusqueda = trim($_POST['nombreBusqueda'] ?? '');
        $documentoBusqueda = trim($_POST['documentoBusqueda'] ?? '');
        
        try {
            // Si se ingresa documento, se busca por documento (ignorando validación de nombre)
            if (!empty($documentoBusqueda)) {
                $sql = "SELECT codprogramacion, documento, nombre, direccion, distrito, paquete, realiza_solicitud
                        FROM tclientes_import
                        WHERE documento LIKE ?
                        ORDER BY nombre ASC
                        LIMIT 50";
                $stmt = $pdo->prepare($sql);
                $stmt->execute(['%' . $documentoBusqueda . '%']);
                $clientesEncontrados = $stmt->fetchAll(PDO::FETCH_ASSOC);
            } else {
                // Validar que el nombre tenga al menos dos palabras (un espacio en blanco)
                if (empty($nombreBusqueda)) {
                    $error = "Por favor, ingrese un nombre o documento para buscar.";
                } elseif (strpos($nombreBusqueda, ' ') === false) {
                    $error = "Debe ingresar al menos dos palabras (nombre y apellido) para realizar la búsqueda.";
                } else {
                    // Buscar clientes por nombre (búsqueda parcial)
                    $palabras = explode(' ', $nombreBusqueda);
                    $palabras = array_filter($palabras); // Eliminar espacios vacíos
                    
                    if (count($palabras) < 2) {
                        $error = "Debe ingresar al menos dos palabras para realizar la búsqueda.";
                    } else {
                        // Construir la consulta con LIKE para cada palabra
                        $condiciones = [];
                        $params = [];
                        
                        foreach ($palabras as $palabra) {
                            $condiciones[] = "nombre LIKE ?";
                            $params[] = "%" . $palabra . "%";
                        }
                        
                        $sql = "SELECT codprogramacion, documento, nombre, direccion, distrito, paquete, realiza_solicitud 
                                FROM tclientes_import 
                                WHERE " . implode(" AND ", $condiciones) . "
                                ORDER BY nombre ASC
                                LIMIT 50";
                        
                        $stmt = $pdo->prepare($sql);
                        $stmt->execute($params);
                        $clientesEncontrados = $stmt->fetchAll(PDO::FETCH_ASSOC);
                    }
                }
            }

            // Verificar si cada cliente tiene encuestas asignadas
            if (!empty($clientesEncontrados)) {
                foreach ($clientesEncontrados as &$cliente) {
                    $sql_encuesta = "SELECT ce.codclienteencuesta, ce.codencuesta, e.encuesta 
                                    FROM tcliente_encuesta ce
                                    INNER JOIN tencuesta e ON ce.codencuesta = e.codencuesta
                                    WHERE ce.codprogramacion = ? AND ce.estado = 'enviado'
                                    LIMIT 1";
                    $stmt_encuesta = $pdo->prepare($sql_encuesta);
                    $stmt_encuesta->execute([$cliente['codprogramacion']]);
                    $encuesta = $stmt_encuesta->fetch(PDO::FETCH_ASSOC);
                    $cliente['tiene_encuesta'] = $encuesta ? true : false;
                    $cliente['encuesta_info'] = $encuesta;
                }
                unset($cliente);
            }
            
            if (empty($clientesEncontrados) && empty($error)) {
                $error = "No se encontraron clientes con los datos ingresados.";
            } elseif (!empty($clientesEncontrados)) {
                $success = "Se encontraron " . count($clientesEncontrados) . " cliente(s).";
            }
        } catch (Exception $e) {
            $error = "Error al consultar la información: " . $e->getMessage();
        }
    } elseif (isset($_POST['guardarReclamo'])) {
        // Proceso de guardar reclamo
        $codprogramacion = $_POST['codprogramacion'] ?? null;
        $reclamo = trim($_POST['reclamo'] ?? '');
        
        if (empty($codprogramacion)) {
            $error = "Error: No se especificó el cliente.";
        } elseif (empty($reclamo)) {
            $error = "Por favor, ingrese el texto del reclamo.";
        } else {
            try {
                // Obtener fecha actual de Lima, Perú
                $fechaActual = date('Y-m-d H:i:s');
                
                // Insertar el reclamo
                $stmt = $pdo->prepare("INSERT INTO treclamaciones (fecha, reclamo, codprogramacion) VALUES (?, ?, ?)");
                $stmt->execute([$fechaActual, $reclamo, $codprogramacion]);
                
                $success = "Reclamo guardado exitosamente.";
                
                // Limpiar variables para mostrar el formulario de búsqueda nuevamente
                $clienteSeleccionado = null;
                $nombreBusqueda = '';
                
            } catch (Exception $e) {
                $error = "Error al guardar el reclamo: " . $e->getMessage();
            }
        }
    } elseif (isset($_POST['seleccionarCliente'])) {
        // Seleccionar cliente para registrar reclamo
        $codprogramacion = $_POST['codprogramacion'] ?? null;
        
        if ($codprogramacion) {
            try {
                $stmt = $pdo->prepare("SELECT codprogramacion, documento, nombre, direccion, distrito, paquete, realiza_solicitud 
                                       FROM tclientes_import 
                                       WHERE codprogramacion = ?");
                $stmt->execute([$codprogramacion]);
                $clienteSeleccionado = $stmt->fetch(PDO::FETCH_ASSOC);
                
                if (!$clienteSeleccionado) {
                    $error = "Cliente no encontrado.";
                }
            } catch (Exception $e) {
                $error = "Error al obtener información del cliente: " . $e->getMessage();
            }
        }
    }
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Registro de Solicitudes - 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;
        }

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

        .search-header {
            background: linear-gradient(135deg,rgb(68, 187, 117) 0%,rgb(55, 128, 26) 100%);
            color: white;
            padding: 30px;
            text-align: center;
        }

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

        .search-header p {
            margin: 10px 0 0 0;
            opacity: 0.9;
        }

        .search-body {
            padding: 40px;
        }

        .form-control {
            border-radius: 12px;
            padding: 15px 20px;
            border: 2px solid #e9ecef;
            font-size: 1.1rem;
            transition: all 0.3s ease;
        }

        .form-control:focus {
            border-color: #dc3545;
            box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
        }

        .btn-primary {
            background: linear-gradient(135deg,rgb(25, 138, 31) 0%,rgb(86, 92, 8) 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(220, 53, 69, 0.3);
        }

        .btn-success {
            background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
            border: none;
            border-radius: 12px;
            padding: 12px 25px;
            font-weight: 600;
            transition: all 0.3s ease;
        }

        .btn-success:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 25px rgba(40, 167, 69, 0.3);
        }

        .results-container {
            margin-top: 30px;
        }

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

        .client-card {
            background: white;
            border-radius: 15px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
            margin-bottom: 15px;
            overflow: hidden;
            transition: all 0.3s ease;
        }

        .client-card:hover {
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
            transform: translateY(-2px);
        }

        .client-card-body {
            padding: 20px;
        }

        .reclamo-form {
            background: #f8f9fa;
            border-radius: 15px;
            padding: 25px;
            margin-top: 30px;
            border-left: 5px solid #28a745;
        }

        .table {
            margin: 0;
        }

        .table th {
            background: #f8f9fa;
            border-top: none;
            font-weight: 600;
            color: #495057;
            padding: 15px;
        }

        .table td {
            padding: 15px;
            vertical-align: middle;
        }

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

        .no-data {
            text-align: center;
            padding: 40px;
            color: #6c757d;
        }

        .no-data i {
            font-size: 3rem;
            margin-bottom: 15px;
            opacity: 0.5;
        }

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

        @media (max-width: 768px) {
            .search-body {
                padding: 20px;
            }
            
            .search-header {
                padding: 20px;
            }
            
            .search-header h1 {
                font-size: 1.5rem;
            }
        }
    </style>
</head>
<body>
    <div class="main-container">
        <div class="search-container">
            <div class="search-header">
                <i class="fas fa-exclamation-triangle fa-3x mb-3"></i>
                <h1>Registro de Solicitudes</h1>
                <p>Sistema de Gestión de Solicitudes y Encuestas </p>
            </div>
            
            <div class="search-body">
                <?php if (!$clienteSeleccionado): ?>
                <!-- Formulario de Búsqueda -->
                <form method="POST" id="searchForm">
                    <input type="hidden" name="buscar" value="1">
                    <div class="row mb-4">
                        <div class="col-md-8 mb-3 mb-md-0">
                            <label class="form-label fw-bold">
                                <i class="fas fa-user me-2"></i>Buscar Cliente por Nombre
                            </label>
                            <input type="text" class="form-control" name="nombreBusqueda" 
                                   placeholder="Ingrese nombre y apellido (mínimo dos palabras)"
                                   value="<?php echo htmlspecialchars($nombreBusqueda); ?>">
                            <div class="form-text">
                                <i class="fas fa-info-circle me-1"></i>
                                Puede buscar por nombre (mínimo dos palabras) o por documento.
                            </div>
                        </div>
                        <div class="col-md-4">
                            <label class="form-label fw-bold">
                                <i class="fas fa-id-card me-2"></i>Documento
                            </label>
                            <input type="text" class="form-control" name="documentoBusqueda" 
                                   placeholder="DNI / Documento"
                                   value="<?php echo htmlspecialchars($documentoBusqueda); ?>">
                            <div class="form-text">
                                <i class="fas fa-info-circle me-1"></i>
                                Si ingresa documento, no es necesario el nombre.
                            </div>
                        </div>
                    </div>
                    
                    <div class="text-center">
                        <button type="submit" class="btn btn-primary btn-lg">
                            <i class="fas fa-search me-2"></i>Buscar Cliente
                        </button>
                    </div>
                </form>
                <?php endif; ?>

                <?php if ($error): ?>
                    <div class="alert alert-danger">
                        <i class="fas fa-exclamation-triangle me-2"></i>
                        <?php echo htmlspecialchars($error); ?>
                    </div>
                <?php endif; ?>

                <?php if ($success && !$clienteSeleccionado): ?>
                    <div class="alert alert-success">
                        <i class="fas fa-check-circle me-2"></i>
                        <?php echo htmlspecialchars($success); ?>
                    </div>
                <?php endif; ?>

                <!-- Resultados de Búsqueda -->
                <?php if (!empty($clientesEncontrados) && !$clienteSeleccionado): ?>
                    <div class="results-container">
                        <h5 class="mb-4">
                            <i class="fas fa-list me-2"></i>Clientes Encontrados
                        </h5>
                        
                        <div class="table-responsive">
                            <table class="table table-hover">
                                <thead>
                                    <tr>
                                        <th>Acción</th>
                                        <th>Documento</th>
                                        <th>Nombre</th>
                                        
                                        <th>Distrito</th>
                                        
                                        <th>Encuesta</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach ($clientesEncontrados as $cliente): ?>
                                        <tr>
                                            <td>
                                                <?php if (isset($cliente['realiza_solicitud']) && strtoupper(trim($cliente['realiza_solicitud'])) !== 'NO'): ?>
                                                    <form method="POST" style="display: inline;">
                                                        <input type="hidden" name="seleccionarCliente" value="1">
                                                        <input type="hidden" name="codprogramacion" value="<?php echo $cliente['codprogramacion']; ?>">
                                                        <button type="submit" class="btn btn-success btn-sm">
                                                            <i class="fas fa-plus-circle me-1"></i>Registrar Solicitudes
                                                        </button>
                                                    </form>
                                                <?php else: ?>
                                                    <span class="text-muted">No disponible</span>
                                                <?php endif; ?>
                                            </td>
                                            <td><?php echo htmlspecialchars($cliente['documento'] ?: '-'); ?></td>
                                            <td><?php echo htmlspecialchars($cliente['nombre']); ?></td>
                                            
                                            <td><?php echo htmlspecialchars($cliente['distrito'] ?: '-'); ?></td>
                                            
                                            <td>
                                                <?php if (isset($cliente['tiene_encuesta']) && $cliente['tiene_encuesta']): ?>
                                                    <div class="alert alert-info mb-0 p-2" style="font-size: 0.85rem;">
                                                        <i class="fas fa-clipboard-list me-1"></i>
                                                        
                                                        <?php echo htmlspecialchars($cliente['encuesta_info']['encuesta']); ?>
                                                    </div>
                                                    <a href="llenar_encuesta.php?codprogramacion=<?php echo $cliente['codprogramacion']; ?>&codencuesta=<?php echo $cliente['encuesta_info']['codencuesta']; ?>" 
                                                       class="btn btn-primary btn-sm mt-2 w-100">
                                                        <i class="fas fa-edit me-1"></i>Llenar Encuesta
                                                    </a>
                                                <?php else: ?>
                                                    <span class="text-muted">-</span>
                                                <?php endif; ?>
                                            </td>
                                        </tr>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>
                        </div>
                    </div>
                <?php endif; ?>

                <!-- Formulario de Reclamo -->
                <?php if ($clienteSeleccionado): ?>
                    <div class="results-container">
                        <!-- Información del Cliente Seleccionado -->
                        <div class="client-info">
                            <h4 class="mb-3">
                                <i class="fas fa-user me-2"></i>Cliente Seleccionado
                            </h4>
                            <div class="row">
                                <div class="col-md-6">
                                    <p><strong>Documento:</strong> <?php echo htmlspecialchars($clienteSeleccionado['documento'] ?: '-'); ?></p>
                                    <p><strong>Nombre:</strong> <?php echo htmlspecialchars($clienteSeleccionado['nombre']); ?></p>
                                    
                                </div>
                                <div class="col-md-6">
                                    <p><strong>Distrito:</strong> <?php echo htmlspecialchars($clienteSeleccionado['distrito'] ?: '-'); ?></p>
                                    
                                </div>
                            </div>
                        </div>

                        <!-- Formulario para Registrar Reclamo -->
                        <div class="reclamo-form">
                            <h4 class="mb-3">
                                <i class="fas fa-edit me-2"></i>Registrar Solicitudes
                            </h4>
                            
                            <?php if ($success && $clienteSeleccionado): ?>
                                <div class="alert alert-success">
                                    <i class="fas fa-check-circle me-2"></i>
                                    <?php echo htmlspecialchars($success); ?>
                                </div>
                            <?php endif; ?>
                            
                            <form method="POST" id="reclamoForm">
                                <input type="hidden" name="guardarReclamo" value="1">
                                <input type="hidden" name="codprogramacion" value="<?php echo $clienteSeleccionado['codprogramacion']; ?>">
                                
                                <div class="mb-3">
                                    <label class="form-label fw-bold">
                                        <i class="fas fa-comment-alt me-2"></i>Descripción de la Solicitud 
                                    </label>
                                    <textarea class="form-control" name="reclamo" 
                                              placeholder="Ingrese el detalle de la solicitud del cliente..."
                                              required></textarea>
                                </div>
                                
                                <div class="d-flex justify-content-between">
                                    <a href="solicitudes.php" class="btn btn-secondary">
                                        <i class="fas fa-arrow-left me-2"></i>Volver a Búsqueda
                                    </a>
                                    <button type="submit" class="btn btn-success">
                                        <i class="fas fa-save me-2"></i>Registrar Solicitud
                                    </button>
                                </div>
                            </form>
                        </div>
                    </div>
                <?php endif; ?>

                <!-- Botón para nueva búsqueda -->
                <?php if (!empty($clientesEncontrados) && !$clienteSeleccionado): ?>
                    <div class="text-center mt-4">
                        <a href="solicitudes.php" class="btn btn-outline-primary">
                            <i class="fas fa-search me-2"></i>Nueva Búsqueda
                        </a>
                    </div>
                <?php endif; ?>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        // Validar que el nombre tenga al menos dos palabras solo si no se ingresa documento
        document.getElementById('searchForm')?.addEventListener('submit', function(e) {
            const nombreInput = this.querySelector('input[name="nombreBusqueda"]');
            const documentoInput = this.querySelector('input[name="documentoBusqueda"]');
            const nombre = nombreInput.value.trim();
            const documento = documentoInput.value.trim();

            // Si hay documento, no se valida el nombre
            if (documento.length > 0) {
                return true;
            }
            
            // Verificar que tenga al menos un espacio (dos palabras)
            if (nombre.indexOf(' ') === -1) {
                e.preventDefault();
                alert('Debe ingresar al menos dos palabras (nombre y apellido) para realizar la búsqueda o indicar un documento.');
                nombreInput.focus();
                return false;
            }
            
            // Verificar que tenga al menos dos palabras válidas
            const palabras = nombre.split(' ').filter(p => p.length > 0);
            if (palabras.length < 2) {
                e.preventDefault();
                alert('Debe ingresar al menos dos palabras para realizar la búsqueda o indicar un documento.');
                nombreInput.focus();
                return false;
            }
        });
    </script>
</body>
</html>

