Local, Management Software

Management Software

# Cbran Management — Documentación del Plugin

**Versión:** 9.0.13
**Autor:** Cbran.com

## 1. Resumen General

Cbran Management es un sistema de gestión integral para organizaciones que incluye:

– **Gestión de usuarios** con roles y permisos
– **Solicitudes (Requests)** con flujo de aprobación y asignación
– **Activos (Assets)** y categorías
– **Eventos** con calendario, itinerarios y asistentes
– **Finanzas** (depósitos, retiros, transacciones)
– **Formularios** personalizables y envíos
– **Notificaciones** por SMS y email
– **Tareas** y recordatorios

El plugin funciona tanto en el **panel de administración de WordPress** como en el **frontend** mediante shortcodes.

## 2. Roles y Permisos

### 2.1 Roles Disponibles

| Rol | Descripción | Acceso Principal |
|—–|————-|——————|
| **Super Admin** | Acceso total al sistema | Todas las pestañas, incluido Settings y Logs |
| **Manager** | Gestión operativa | Todas las pestañas excepto Settings |
| **Financial Controller** | Control financiero | Dashboard, Finances, Tasks |
| **Form Controller** | Gestión de formularios | Dashboard, Forms, Tasks |
| **User Controller** | Gestión de usuarios | Dashboard, Users, Tasks |
| **Event Controller** | Gestión de eventos | Dashboard, Events, Tasks |
| **User (Employee)** | Usuario estándar | Dashboard, My Requests, Assets, Tasks, Notifications |

### 2.2 Permisos por Rol

– **Super Admin**: Configuración global, logs, backup, roles.
– **Manager**: Crear/editar usuarios, departamentos, activos, eventos, solicitudes; aprobar/rechazar.
– **Financial Controller**: Ver y gestionar finanzas, depósitos, retiros.
– **Form Controller**: Crear/editar formularios, ver envíos.
– **User Controller**: Gestionar usuarios (crear, editar, asignar roles).
– **Event Controller**: Crear/editar eventos, plantillas de itinerario.
– **User**: Crear solicitudes, ver sus activos asignados, tareas propias, notificaciones.

## 3. Tabs y Secciones

### 3.1 Dashboard

**Acceso:** Todos los roles.

**Contenido según rol:**
– **Admin/Manager**: Estadísticas globales (usuarios, activos, departamentos, solicitudes por estado, finanzas, formularios, envíos). Accesos rápidos.
– **Otros roles**: Vista simplificada con resumen de tareas y acciones recientes.

### 3.2 Users (Usuarios)

**Acceso:** Super Admin, Manager, User Controller.

**Sub-tabs:**
– **User Management**: Lista de usuarios, búsqueda, filtros por rol y estado.
– **Add User**: Crear usuario con rol, departamento, teléfono, avatar.
– **User Roles**: Overview de roles, permisos, asignación masiva.

**Flujos:**
– Crear usuario → asignar rol → guardar.
– Editar usuario → cambiar rol/departamento → guardar.
– Roles: Overview, Manage Roles, User Assignment.

### 3.3 Departments (Departamentos)

**Acceso:** Super Admin, Manager.

**Sub-tabs:**
– **Departments**: Lista de departamentos.
– **Add Department**: Crear departamento (nombre, descripción).

**Lógica:** Los departamentos se usan para filtrar usuarios, eventos y solicitudes.

### 3.4 Assets (Activos)

**Acceso:** Todos (vista limitada según rol).

**Sub-tabs:**
– **My Assets**: Activos asignados al usuario actual.
– **Add Asset** (Admin/Manager): Crear activo con categoría, asignación, estado.
– **Asset Category** (Admin/Manager): Gestionar categorías de activos.

**Flujos:**
– Crear activo → categoría, asignar a usuario, descripción.
– Los usuarios ven solo sus activos asignados.

### 3.5 My Requests (Mis Solicitudes)

**Acceso:** Todos (con variaciones).

**Sub-tabs:**
– **All**: Todas las solicitudes (filtradas por rol).
– **Add Request**: Crear nueva solicitud.
– **Pending**: Solicitudes pendientes.
– **In Progress**: En progreso.
– **On Hold**: En espera.
– **Completed**: Completadas.

**Estados:** `pending`, `in_progress`, `on_hold`, `completed`.

**Tipos de solicitud:** `one_time`, `recurring`.

**Solicitudes recurrentes (Recurring):**
– Tipo de solicitud con fecha inicio, fecha fin (opcional) y frecuencia (daily, weekly, monthly).
– Un cron job diario genera automáticamente solicitudes hijas según la frecuencia.
– Las hijas son `one_time` y se vinculan al padre con `_cbran_parent_request_id`.
– En la lista se pueden filtrar por tipo (One-time, Recurring).

**Flujos:**
1. Usuario crea solicitud → tipo (one-time o recurring), prioridad, descripción, adjuntos.
2. Admin/Manager asigna a usuario y aprueba/rechaza.
3. Asignado actualiza estado (in progress, on hold, completed).
4. Recordatorios configurables (1 día, 3 días, 1 semana antes del vencimiento).
5. Notificaciones: asignación, comentarios, aprobación, rechazo, vencimiento.

### 3.6 Finances (Finanzas)

**Acceso:** Super Admin, Manager, Financial Controller.

**Sub-tabs:**
– **Overview**: Resumen financiero, filtros por fecha, gráficos.
– **Deposits**: Registrar depósitos.
– **Withdraws**: Registrar retiros.

**Lógica:**
– Depósitos y retiros se vinculan a solicitudes completadas (purchase, rental, return, dispose, transfer).
– Tipos de transacción: one-time o recurring (con opciones de periodicidad).
– Transacciones con adjuntos y notas.

### 3.7 Notifications (Notificaciones)

**Acceso:** Todos.

**Contenido:**
– Centro de notificaciones (SMS y email) con icono de campana (`[cbran_notifications_icon]`).
– Preferencias por rol y tipo de evento (SMS, Email o Both por evento).
– Plantillas SMS y plantillas de email (subject + body) personalizables por rol y evento.
– **Send Test SMS**: botón para enviar SMS de prueba.
– **Oversight Notifications** (Admin/Manager): Super Admin puede recibir todas las notificaciones de todos los roles; Manager puede elegir de qué roles recibe (User, Form Controller, Event Controller, etc.).
– **Digest**: modo instant, daily o weekly. Si daily/weekly, las notificaciones se agrupan y se envían a la hora configurada en Settings → Notifications (digest time, digest week day).
– **Recordatorios personales**: en la vista de solicitud, “Remind me” con opciones 24h, 48h, 3 días, 1 semana. Se ejecutan diariamente a la hora del digest.

**Tipos de notificación (por categoría):**

| Categoría | Eventos |
|———–|———|
| **Solicitudes** | new_request, request_assigned, request_in_progress, request_on_hold, request_completed, request_declined, new_comment |
| **Formularios** | new_form_submission, form_assigned_to_you, form_submission_approved, form_submission_rejected, form_submission_received_confirmation |
| **Eventos** | new_event_created, event_updated, event_approved, event_rejected |
| **Finanzas** | new_transaction_pending, transaction_approved, transaction_rejected |

**Notificaciones programadas (Settings → Notifications):**
– **Due date alerts**: aviso X días antes del vencimiento de una solicitud.
– **Overdue alerts**: cuando una solicitud supera su fecha de vencimiento.
– **Event reminders**: recordatorio a asistentes el día anterior al evento.

**Eventos – notificaciones específicas:**
– **Event Attendees SMS**: al crear evento, opción de notificar a asistentes (SMS/email según preferencias del attendee).
– **Notify attendees on update**: checkbox al guardar evento para enviar notificación cuando hay cambios.
– **Itinerary**: “It’s your turn” (cuando empieza la sección del assignee), “Be ready, you’re next” (cuando la sección anterior está activa). Configurables por evento.

### 3.8 Events (Eventos)

**Acceso:** Super Admin, Manager, Event Controller (crear/editar); todos (ver calendario).

**Vistas principales (Calendar / List / Analytics):**
– **Calendar View**: Vista de calendario con eventos (Month, Week, Day, Agenda).
– **Event List**: Lista de eventos con búsqueda, filtros por tipo, estado de aprobación (Pending/Scheduled/Rejected) y tiempo (Upcoming/Past/All). Tarjetas clicables para ver detalles.
– **Analytics**: Métricas en tiempo real: Total Events, Upcoming, Today, Pending RSVPs.

**Sub-tabs adicionales:**
– **Add Event**: Crear evento (modal o página).
– **Feed**: Documentación y vista previa de los shortcodes públicos de eventos (`[cbran_events_feed]`, `[cbran_events_upcoming_feed]`, `[cbran_events_itinerary_feed]`).
– **Itinerary Templates**: Plantillas de itinerario reutilizables.
– **Event Types**: Gestión de tipos de evento personalizados (general, meeting, etc.).

**Estados del evento:**
– **Status** (operativo, en Additional Settings): `upcoming`, `pending`, `ongoing`, `completed`, `cancelled`; además puede mostrarse la insignia `date_updated` cuando cambian las fechas. Con fechas e itinerario el sistema sugiere un estado; **Pending** y **Cancelled** son manuales y no muestran sugerencia automática. Botón “Apply suggestion” para aplicar la sugerencia cuando exista.
– **Approval**: `pending`, `approved`, `rejected` — flujo de aprobación por Admin/Manager.

**Estructura de evento:**
– Título, tipo, prioridad, fechas, ubicación (física/online).
– Departamento, Assigned To.
– **Attendees & Assignment**: Asistentes con teléfono, email, preferencias SMS/email.
– Los attendees pueden ser **usuarios de WordPress** (vinculados por `user_id`) o **contactos externos** (solo nombre, teléfono, email sin cuenta en el sistema).
– Al asignar una sección del itinerario se puede elegir un usuario de la lista o escribir un nombre manualmente (contacto externo).
– Las notificaciones (SMS/email) funcionan para ambos tipos; solo se requiere teléfono y/o email con la preferencia habilitada.
– **Event Itinerary**: Secciones de tiempo con asignación.
– Cada sección: hora inicio/fin, etiqueta, assignee. Estados: **Not started**, **In progress**, **Completed**.
– **Add field**: Modal para añadir campos a cada sección (notas, enlaces, documentos, imágenes). Opción “Show in Share link” para mostrar en la vista pública.
– Botones **Start** (iniciar sección), **Complete** (marcar como completada, incluyendo la última), **Reset** (volver a Not started).
– Secciones expandibles en Share link: notas, enlaces, documentos, imágenes (configurables por sección).
– Notificaciones por sección:
– **”It’s your turn”**: cuando empieza la sección del assignee.
– **”Be ready, you’re next”**: cuando la sección anterior está activa.
– Iconos visuales (teléfono/email) junto al assignee si tiene notificaciones habilitadas.

**Modal Event Details (admin):**
– Al hacer clic en un evento en el calendario o en la lista se abre el modal con los detalles.
– **Public visibility**:
– **Show in public feed**: controla si el evento puede salir en los feeds **del día** (`[cbran_events_feed]` y `[cbran_events_itinerary_feed]`) cuando la fecha cae en “hoy”. Por defecto activado.
– **Show in upcoming events feed**: controla si el evento puede salir en `[cbran_events_upcoming_feed]` mientras no haya terminado. Por defecto activado; independiente del feed del día.
– **Itinerary in feed**: cómo se renderiza el itinerario en `[cbran_events_itinerary_feed]` (día) y, al expandir, en `[cbran_events_upcoming_feed]` (solo lectura). En la página del itinerario del día, `scope=”full”` / `full=”1″` fuerza itinerario completo para todos los eventos de esa página.
– Si el evento está guardado y tiene Share URL, aparece la fila **Share link (public view)** con el enlace y botones **Copy**, **Share**, **Print**.
– **Print** abre el Share link en una nueva ventana con `?print=1` para imprimir solo el resumen del evento.

**Vista pública (Share link):**
– URL: `[página con cbran_event_view]?eid=TOKEN`. Sin login: ver detalles, itinerario, asistentes.
– Con login (author/admin/manager/assignee): botones **Copy**, **Share**, **Print** para copiar enlace, compartir (Web Share API) o imprimir solo el contenido del evento.
– **Print**: imprime únicamente el resumen del evento (no header/footer de la página). Si el popup está bloqueado, usa fallback CSS.
– Assignees pueden iniciar, completar y resetear secciones del itinerario.

### 3.9 Tasks (Tareas)

**Acceso:** Todos.

**Contenido:** Tareas asignadas al usuario, vinculadas a solicitudes y eventos. Lista con filtros y acciones.

### 3.10 Forms (Formularios)

**Acceso:** Super Admin, Manager, Form Controller (crear/editar); todos (ver envíos según permisos).

**Sub-tabs:**
– **Forms**: Lista de formularios.
– **Submissions**: Envíos recibidos con estado (pending, approved, rejected).
– **Add Form** (Admin/Manager/Form Controller): Crear formulario con campos personalizados.

**Flujos:**
– Crear formulario → campos (texto, email, teléfono, select, checkbox, etc.) → publicar.
– Shortcode `[cbran_form id=”X”]` para mostrar en frontend.
– Envíos → aprobar/rechazar (Admin/Manager).

### 3.11 Settings (Configuración)

**Acceso:** Solo Super Admin.

**Sub-tabs:**
– **General**: Admin email, Google Maps API key, sidebar/header en frontend.
– **Organization**: Nombre, logo, teléfono, email.
– **Notifications**: Due date alerts, overdue alerts, event reminders, plantillas SMS.
– **Finances**: Configuración financiera.
– **Search**: Estilo del formulario de búsqueda.
– **Shortcode**: Roles que pueden ver `[cbran_management_view]` en frontend.
– **Backup & Restore**: Exportar/importar configuración.
– **Logs** (solo Super Admin): Registros del sistema, limpiar, exportar.

### 3.12 Profile (Perfil)

**Acceso:** Todos (propio perfil).

**Contenido:** Editar nombre, email, teléfono, avatar. Ver rol asignado.

## 4. Shortcodes y Frontend

### 4.1 Shortcodes Disponibles

| Shortcode | Uso | Descripción |
|———–|—–|————-|
| `[cbran_management_view]` | Página principal | Muestra la interfaz completa del plugin (tabs, sidebar). Requiere login según roles en Settings → Shortcode. |
| `[cbran_form id=”X”]` | Página de formulario | Muestra un formulario por ID. Puede ser público o requerir login. |
| `[cbran_search_form]` | Cualquier página | Formulario de búsqueda (activos, usuarios, solicitudes, etc.). |
| `[cbran_event_view]` | Página de evento | Vista de evento por `?eid=TOKEN`. Público (sin login) para enlaces compartidos. |
| `[cbran_events_feed]` | Página pública | Lista del día de eventos aprobados con “mostrar en feed público” activo; enlaces al mismo share URL. Opcional: `title=”Encabezado”`. |
| `[cbran_events_itinerary_feed]` | Página pública | Itinerario del día. Por evento: en el modal → Public visibility → “Itinerary in feed” (solo públicas, solo completadas entre públicas, o itinerario completo). `scope=”full”` / `full=”1″` fuerza itinerario completo para todos en esa página. Opcional: `title=”Encabezado”`. |
| `[cbran_events_upcoming_feed]` | Página pública | Lista de eventos **aún no terminados** (fin ≥ ahora, zona del sitio), **aprobados** y no **cancelados**, con **“Show in upcoming events feed”** activo en el modal (por defecto sí). Orden por fecha de inicio. Incluye enlace al share URL e itinerario **solo lectura** al expandir “Event day & itinerary”. Opcional: `title=”Encabezado”` y `limit=”30″` (máx. 100). Actualización en vivo como el feed del día. |
| `[cbran_notifications_icon]` | Header/widget | Icono de campana con dropdown de notificaciones. Solo usuarios logueados. |

### 4.2 Feeds públicos del día

(`[cbran_events_feed]` y `[cbran_events_itinerary_feed]`)

– Mismas reglas para ambos: eventos **de hoy** (zona horaria del sitio), **aprobados**, no **cancelados**, con **Mostrar en feed público** activado en el modal (por defecto sí; eventos antiguos sin meta cuentan como visibles).
– **`[cbran_events_feed]`**: lista resumida (título, horario, ubicación, enlace a detalle).
– **`[cbran_events_itinerary_feed]`**: por cada evento, el **Event Itinerary** con filas expandibles y **actualización en vivo** (igual que `[cbran_event_view]`). **Por evento** (predeterminado): en el modal del evento, **Public visibility → Itinerary in feed** se elige entre (1) solo secciones públicas, (2) solo completadas entre las públicas, (3) itinerario completo. **`scope=”full”`** o **`full=”1″`** en el shortcode ignora esas opciones y fuerza itinerario completo para todos los eventos de esa página. Quien tenga permiso puede Iniciar / Completar / Resetear si está logueado.

### 4.3 Feed de próximos eventos (`[cbran_events_upcoming_feed]`)

– **Independiente del feed del día**: usa el interruptor **Public visibility → Show in upcoming events feed** (no el de “Show in public feed”). Si falta meta, se considera **activado** (compatibilidad con eventos antiguos).
– **Criterio temporal**: el evento sigue apareciendo hasta que su **fecha/hora de fin** (o fin del día si es “all day”) haya pasado en la zona horaria del sitio. No se listan eventos ya terminados.
– **Contenido de cada tarjeta**: mismo resumen que el listado del día (título, horario, ubicación, **View details** → share URL). El itinerario público va dentro de un desplegable **“Event day & itinerary (view only)”**; las filas expandibles del itinerario son **solo lectura** (sin Iniciar / Completar).
– **Qué itinerario se muestra**: las mismas reglas que **Itinerary in feed** del modal (públicas / solo completadas / completo). **No** aplica `scope=”full”` de página como en `[cbran_events_itinerary_feed]`; ese atributo solo afecta al shortcode de itinerario del día.
– **Atributos**: `title=”Encabezado”` (opcional); `limit=”N”` con N entre 1 y 100 (por defecto 30).
– **Admin**: en **Events → Feed** hay instrucciones, copiar shortcode y vista previa.

### 4.4 Vista Pública de Eventos (Share link)

– URL: `[página con cbran_event_view]?eid=TOKEN`
– **Sin login**: ver detalles, itinerario, asistentes. Solo lectura.
– **Con login** (author, admin/manager, assignee de sección): puede iniciar, completar y resetear secciones; ver botones Copy, Share, Print.
– **Copy**: copia el enlace al portapapeles.
– **Share**: usa Web Share API (móvil) o copia como fallback.
– **Print**: abre ventana con solo el contenido del evento e imprime. Parámetro `?print=1` en la URL dispara impresión automática.

## 5. Notificaciones Programadas

Configuradas en **Settings → Notifications**:

– **Due date alerts**: Aviso X días antes del vencimiento de una solicitud.
– **Overdue alerts**: Notificación cuando una solicitud supera su fecha de vencimiento.
– **Event reminders**: Recordatorio a asistentes el día anterior al evento.
– **Digest time / Digest week day**: Hora y día para envío de digest (daily/weekly) y recordatorios personales (“Remind me”).

## 6. Accesibilidad

– **Labels en formularios**: Los campos de búsqueda y filtros (Events List, Calendar) tienen etiquetas asociadas (`<label for=”…”>`) con clase `sr-only` para lectores de pantalla.
– **aria-label**: Botones de acción (Copy, Share, Print, Delete, etc.) incluyen `aria-label` descriptivo.

## 7. Integraciones

– **WPBakery**: Bloques/componentes para el plugin.
– **Woodmart**: Estilos y menús integrados.
– **WooCommerce**: Enlaces desde productos/pedidos.
– **WordPress Menu**: Enlaces a tabs del plugin en menús.
– **Menu Editor**: Meta box para añadir ítems de Cbran al menú.

## 8. Flujos Principales

### 8.1 Flujo de Solicitud

1. Usuario crea solicitud (My Requests → Add Request).
2. Admin/Manager recibe notificación, asigna y aprueba/rechaza.
3. Asignado trabaja, actualiza estado (in progress, on hold).
4. Asignado marca como completed.
5. Si tiene coste, se refleja en Finances.

### 8.2 Flujo de Evento con Itinerario

1. Admin/Manager/Event Controller crea evento con attendees e itinerario.
2. Asigna personas a cada sección del itinerario.
3. Activa notificaciones “It’s your turn” y/o “Be ready, you’re next”.
4. Comparte enlace público (`?eid=TOKEN`). Usuarios con acceso pueden copiar, compartir o imprimir el evento.
5. Durante el evento, assignee hace clic en “Start” en su sección.
6. Assignee hace clic en “Complete” al terminar (incluyendo la última sección).
7. Opcional: “Reset” para volver una sección a Not started.
8. Se envían notificaciones según configuración.

### 8.3 Flujo de Formulario

1. Admin/Manager/Form Controller crea formulario.
2. Crea página con `[cbran_form id=”X”]`.
3. Usuario/envío llega a Forms → Submissions.
4. Admin/Manager aprueba o rechaza.

## 9. Guía por Rol (Resumen)

### Super Admin
– Configuración global, backup, logs.
– Gestión completa de usuarios, roles, departamentos.
– Acceso total a todas las secciones.

### Manager
– Gestión operativa sin acceso a Settings.
– Aprobar solicitudes, gestionar eventos, activos, finanzas.
– Crear y editar usuarios, formularios.

### Financial Controller
– Dashboard, Finances (overview, deposits, withdraws), Tasks.

### Form Controller
– Dashboard, Forms (lista, envíos, crear formularios), Tasks.

### User Controller
– Dashboard, Users (gestión, añadir, roles), Tasks.

### Event Controller
– Dashboard, Events (calendario, crear evento, plantillas), Tasks.

### User (Employee)
– Dashboard, My Requests (crear y ver propias), Assets (mis asignados), Tasks, Notifications.

## 10. Glosario

– **Request**: Solicitud de trabajo/activo (purchase, rental, return, dispose, transfer). Puede ser one-time o recurring.
– **Asset**: Recurso/activo asignable (equipo, vehículo, etc.).
– **Assignee**: Persona asignada a una solicitud o sección de itinerario.
– **Attendee**: Asistente a un evento con datos de contacto y preferencias de notificación. Puede ser un **usuario de WordPress** (vinculado por user_id) o un **contacto externo** (nombre, teléfono, email sin cuenta en el sistema). Las notificaciones se envían a ambos tipos.
– **Itinerary section**: Bloque de tiempo dentro de un evento con assignee y estado (not started, in progress, completed). Puede incluir notas, enlaces, documentos e imágenes visibles en el Share link.
– **Share link**: Enlace público para ver un evento sin login. Los botones Copy/Share/Print solo aparecen para author, admin/manager o assignee.
– **Recurring request**: Solicitud tipo plantilla que genera automáticamente solicitudes hijas según frecuencia (daily, weekly, monthly). Las hijas son one-time y se gestionan de forma independiente.

*Documento generado para Cbran Management. Actualizar según nuevas versiones del plugin.*