'Visa', 'sentri' => 'Sentri/Global', 'pasaporte' => 'Pasaporte', 'adelanto_cita' => 'Adelanto Cita', 'doble_nacionalidad' => 'Doble Nacionalidad', ]; $estadoSolicitudLabels = [ 'nueva' => 'Nueva', 'contactada' => 'Contactada', 'convertida' => 'Convertida', 'descartada' => 'Descartada', ]; $estadoBadgeClass = [ 'nueva' => 'primary', 'contactada' => 'warning', 'convertida' => 'success', 'descartada' => 'danger', ]; // Filters & Pagination $fEstado = trim($_GET['estado'] ?? ''); $page = max(1, (int)($_GET['page'] ?? 1)); $perPage = 15; $offset = ($page - 1) * $perPage; // Validate filter $validEstados = array_keys($estadoSolicitudLabels); if ($fEstado !== '' && !in_array($fEstado, $validEstados, true)) $fEstado = ''; // Build WHERE clause $conditions = []; $params = []; if ($fEstado !== '') { $conditions[] = 's.estado = ?'; $params[] = $fEstado; } $where = ''; if (!empty($conditions)) { $where = 'WHERE ' . implode(' AND ', $conditions); } // Count total $countSql = "SELECT COUNT(*) FROM solicitudes s $where"; $countStmt = $db->prepare($countSql); $countStmt->execute($params); $totalSolicitudes = $countStmt->fetchColumn(); $totalPages = max(1, (int)ceil($totalSolicitudes / $perPage)); // Ensure page is within range if ($page > $totalPages) $page = $totalPages; // Count new requests for header badge $stmtNew = $db->prepare("SELECT COUNT(*) FROM solicitudes WHERE estado = 'nueva'"); $stmtNew->execute(); $countNuevas = (int)$stmtNew->fetchColumn(); // Fetch solicitudes $sql = "SELECT s.* FROM solicitudes s $where ORDER BY s.created_at DESC LIMIT $perPage OFFSET $offset"; $stmt = $db->prepare($sql); $stmt->execute($params); $solicitudes = $stmt->fetchAll(); // Check if any filters are active $hasFilters = ($fEstado !== ''); ?>
Solicitudes recibidas desde el sitio web
= $hasFilters ? 'No se encontraron solicitudes con ese filtro.' : 'No hay solicitudes registradas aún.' ?>
Ver todas| Nombre | Servicio | Teléfono | Estado | Fecha | Acción | |
|---|---|---|---|---|---|---|
| = htmlspecialchars($s['nombre']) ?> = htmlspecialchars($s['nombre']) ?> | = htmlspecialchars($servicioLabels[$s['servicio']] ?? $s['servicio']) ?> | = htmlspecialchars($s['telefono'] ?: '-') ?> | = htmlspecialchars($s['email'] ?: '-') ?> | = htmlspecialchars($estadoSolicitudLabels[$s['estado']] ?? $s['estado']) ?> | = date('d/m/Y H:i', strtotime($s['created_at'])) ?> | Ver |