Pre-launch · ERPlora is in active development. You're viewing a product preview.
Back to apps Customers, schedule and team

Staff

Your team: records, roles, weekly schedules, time off with approval and commission rates.

Free
Start free
Turn it on from your Hub

Apps are turned on from the Apps page of your Hub. Create your free account to get one.

This documentation is only available in Spanish.

Para qué sirve y para quién

Personal es la plantilla del negocio como recurso de trabajo: quién trabaja, qué rol de catálogo tiene («estilista», «camarero»), en qué horario trabaja cada semana, cuándo falta, cuánto cobra por hora y qué comisión lleva. Responde a «quién trabaja y atiende», no a «quién entra»:

  • Las cuentas de acceso, su papel de permisos (propietario, administrador, responsable, empleado) y el PIN son de la plataforma, no de Personal. Personal no crea cuentas ni da permisos.
  • La ficha de un profesional puede colgar de una cuenta del negocio («Usuario del Hub»), y esa unión es opcional en los dos sentidos: un profesional sin cuenta aparece solo en la agenda, y una cuenta sin ficha no atiende. Desactivar una cuenta no toca la ficha.
  • El rol de Personal es una etiqueta de catálogo y no concede permisos: los da el papel de la cuenta.

Quién la usa:

  • El propietario y el administrador lo hacen todo, también desactivar y dar de baja.
  • El responsable da de alta y edita fichas, roles, horarios y ajustes, ve la tarifa, la comisión y las notas de RRHH, registra ausencias y las aprueba, rechaza o cancela.
  • El empleado ve el directorio, los horarios y quién falta (nunca la tarifa ni el motivo de una ausencia ajena), ve su propia ficha y sus ausencias, pide sus ausencias y retira las que aún están pendientes.

Citas (cuando llegue) lee de aquí quién es reservable, su horario y sus ausencias aprobadas; el TPV y la cocina leen el directorio para nombrar a quien atiende; el cierre del día lee la comisión.

Referencia adoptada

  • Salón (Fresha, Vagaro, Mangomint, Square Appointments): el profesional como recurso de la agenda con su horario semanal y sus ausencias, reservable o no, y su comisión.
  • Odoo Empleados y Dynamics 365 Business Central: la baja guarda fecha y motivo en la ficha; el puesto de trabajo («Job Position») es una etiqueta que se crea, se renombra, se retira y no se repite.
  • Factorial, Personio, BambooHR, Deputy, Homebase y Square Team: el empleado pide su ausencia y el responsable la aprueba o la rechaza; pendiente → aprobada o rechazada, pendiente o aprobada → cancelada; rechazada y cancelada no vuelven atrás. Media jornada de mañana y otra de tarde el mismo día son compatibles.
  • Qué horario manda un día (Fresha «regular shifts» + excepciones): el horario con fechas gana al habitual, y un horario de un solo día es la forma de dar una excepción.

Antes de empezar

  1. Las cuentas de quien vaya a entrar al TPV se crean en el SaaS (miembros del negocio); solo hacen falta si quieres vincular su ficha.
  2. En Personal → Roles, crea los roles de catálogo del negocio (STAFF-F04). Un rol no es un permiso.
  3. En Personal → Personal, da de alta a cada profesional (STAFF-F01), márcalo Reservable si va a recibir citas y vincula su cuenta si la tiene (STAFF-F03). Para muchos a la vez, el asistente los da de alta de golpe (STAFF-F07).
  4. En Personal → Horarios, crea el horario semanal de cada profesional (STAFF-F13). Sin horario, Citas no restringe por horario: solo una ausencia aprobada impide la reserva (STAFF-F16).
  5. Las ausencias se piden o se registran en Ausencias (STAFF-F17, STAFF-F24) y solo cuentan para la agenda cuando están Aprobadas (STAFF-F18).
  6. La zona horaria del negocio decide qué es «hoy» para «Ausentes hoy», para el bloqueo de Desactivar y para el último día de una baja.
  7. Los Ajustes de Personal existen y se guardan (STAFF-F22), pero todavía ningún comportamiento los lee.

Pantallas

Personal se abre desde el menú Personal y tiene cuatro pestañas: Personal, Roles, Ausencias y Horarios, más Ajustes. Lo que una persona no puede hacer no aparece, y la app lo rechaza aunque lo intente por la API o por el asistente.

Personal

Tabla con buscador «Buscar miembro…» (nombre, apellidos, email, teléfono, nº de empleado o rol), columnas Nombre, Rol, Email, Estado y, solo para quien puede ver la compensación, Tarifa/h; Teléfono existe pero sale oculto. Se ordena por cualquier columna y se filtra por Nombre, Apellidos, Email, Teléfono, Rol, Estado (Activo, De baja, Inactivo), Reservable, fecha de alta, color y usuario; 50 por página. Las fichas dadas de baja no salen.

El botón + abre Nuevo; una fila abre Editar · {nombre}. Formulario: Nombre, Apellidos, Email, Teléfono, Nº de empleado, Rol («Sin rol»), Usuario del Hub («Sin acceso al Hub»), Estado (solo al editar: Activo, Inactivo, De baja), Reservable, Margen entre citas (min), Fecha de alta, Color, Especialidades, Bio y, para quien puede ver la compensación, Tarifa por hora y Comisión (%). Acciones de fila para el propietario y el administrador: Desactivar y Dar de baja, las dos con confirmación.

Roles

Tabla con buscador «Buscar rol…» y columnas Rol, Descripción, Miembros (cuántas personas Activas lo llevan). + abre Nuevo (Nombre del rol, Descripción, Color); una fila abre Editar, donde además se retira el rol (deja de ofrecerse) o se vuelve a activar.

Ausencias

Tabla con buscador por nombre y columnas Miembro, Tipo, Desde, Hasta, Estado, con filtros por miembro, tipo, estado y fechas. Acciones de fila: Aprobar, Rechazar y Cancelar, donde valen. + abre el formulario: Miembro (solo para quien gestiona ausencias; el empleado la pide para sí), Tipo (Vacaciones, Baja por enfermedad, Asuntos propios, Formación u Otros), Desde, Hasta, Día completo (si se apaga, Desde (hora) y Hasta (hora)) y Motivo. El motivo y las notas solo los ven quien tiene permiso y la propia persona.

Horarios

Selector Miembro y la tabla de sus horarios: Horario, Por defecto, Desde, Hasta, Activo, Horas (la semana resumida). Acciones de fila: Editar, Activar / desactivar y Eliminar (con confirmación). + abre Nuevo: Horario (nombre; vacío, «Horario habitual»), Vigente desde, Vigente hasta, Por defecto y una fila por día de la semana con Inicio, Fin, Inicio descanso, Fin descanso (o «No trabaja»).

Ajustes de Personal

«Inicio de jornada (HH:MM)», «Fin de jornada (HH:MM)», «Duración del descanso (minutos)», «Antelación mínima de reserva (horas)», «Horas máximas por día», «Umbral de horas extra (horas/semana)», «Mostrar fotos del personal», «Mostrar biografía del personal», «Permitir elegir profesional», «Avisar de nueva cita», «Avisar de cancelación» y Guardar. Mientras el negocio no ha guardado nunca, salen los valores propuestos.

Paneles del inicio

Plantilla activa, Ausentes hoy, Ausencias de hoy, Ausencias pendientes y Empleados por rol, con los datos de STAFF-F20 y STAFF-F23.

Estados de cada pantalla

Estado Qué ve la persona
Cargando «Cargando…» mientras llega el primer resultado.
Vacío «Sin miembros del staff.», «Sin roles definidos.», «Sin solicitudes de ausencia.» o «Este miembro aún no tiene horarios.»; con búsqueda o filtro, «Sin resultados».
Error El aviso de la tabla con «Reintentar». Un rechazo de un formulario sale dentro del formulario, sin perder lo tecleado; el de una acción de fila, encima de la tabla.
Reconectando Lo pintado se queda; una franja avisa «Reconectando…».
App inactiva «Esta app no está activa en este negocio».
Sin permiso No aparece lo que no puede hacer; si llega por otra puerta, «No tienes permiso».

Flujos

ID Flujo Estado
STAFF-F01 Dar de alta a un profesional hecho
STAFF-F02 Editar la ficha de un profesional hecho
STAFF-F03 Vincular la ficha con una cuenta del negocio hecho
STAFF-F04 Crear, editar y retirar un rol hecho
STAFF-F05 Desactivar a un profesional hecho
STAFF-F06 Dar de baja a un profesional hecho
STAFF-F07 Dar de alta a varios profesionales de golpe hecho (asistente y API; sin pantalla)
STAFF-F08 Ver mi propia ficha y mis ausencias hecho
STAFF-F09 Dar el equipo a otras apps hecho (sin pantalla)
STAFF-F13 Crear el horario semanal de un profesional hecho
STAFF-F14 Editar un horario hecho
STAFF-F15 Activar, desactivar o eliminar un horario hecho
STAFF-F16 Saber cuándo puede trabajar un profesional hecho (sin pantalla)
STAFF-F17 Registrar una ausencia hecho
STAFF-F18 Aprobar o rechazar una ausencia hecho
STAFF-F19 Cancelar una ausencia hecho
STAFF-F20 Ver quién falta hoy hecho (pantalla Ausencias); panel del inicio pendiente
STAFF-F21 Dar la tarifa y la comisión de cada profesional hecho
STAFF-F22 Cambiar los ajustes de Personal hecho
STAFF-F23 Ver las cifras de la plantilla y por rol hecho (columna «Miembros» de Roles); paneles del inicio pendientes
STAFF-F24 Pedir mi propia ausencia hecho

Los servicios que hace cada profesional (STAFF-F10, F11 y F12 del producto actual) no están en esta app: ver «Cambios frente al producto actual».

STAFF-F01 Dar de alta a un profesional

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable, asistente Pantalla: Personal Pasos: 1. En Personal, pulsa +: se abre Nuevo (sin Estado: la persona nace Activa). 2. Escribe Nombre y Apellidos (obligatorios, hasta 100 caracteres). Si quieres, Email, Teléfono, Nº de empleado, Rol, Usuario del Hub (STAFF-F03), Fecha de alta, Color (#RRGGBB), Especialidades, Bio, Margen entre citas y, con permiso de compensación, Tarifa por hora y Comisión (%). Reservable viene encendido. 3. Pulsa Guardar: la persona sale en la tabla como Activa. Entra: el formulario; los roles activos (STAFF-F04), por id o por su nombre. La tarifa se guarda en céntimos enteros; la comisión es un porcentaje de 0 a 100 con dos decimales. Por la API o el asistente también se pueden dar el estado inicial y las notas de RRHH. Sale: la ficha; Personal avisa de que hay una ficha nueva (staff.member.created). Si falla: debajo de cada campo y sin guardar nada: nombre o apellidos vacíos, un email que no lo es, un color que no es #RRGGBB, una tarifa negativa, una comisión fuera de 0–100, «Ese rol no está disponible: no existe en este negocio, o se ha eliminado o retirado.», «Ese usuario del Hub no tiene acceso a este negocio.» o la cuenta ya vinculada a otra ficha (STAFF-F03). Quien no puede ver la compensación no puede enviarla: «Se necesita el permiso…». Dos fichas con el mismo nombre, email o nº de empleado se aceptan. Implicados: ninguno

STAFF-F02 Editar la ficha de un profesional

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable, asistente Pantalla: Personal Pasos: 1. Pulsa la fila: se abre Editar · {nombre} (el asistente la nombra por su nombre). 2. Cambia lo que haga falta. Estado ofrece Activo, Inactivo y De baja (la baja definitiva es STAFF-F06). «Sin rol» quita el rol, «Sin acceso al Hub» desvincula la cuenta, y la Fecha de alta se puede borrar. 3. Guarda: solo cambia lo enviado. Entra: la ficha (y, con permiso, su tarifa, comisión y notas). Sale: la ficha cambiada (staff.member.updated). Guardar sin cambiar nada no avisa. Poner Inactivo aquí no apaga Reservable, como hoy; volver a Activo tampoco lo enciende. Si falla: los mismos rechazos que al dar de alta; «Ese miembro del personal no existe en este negocio.» si ya no está (también si se dio de baja); poner Inactivo con ausencias pendientes o aprobadas sin terminar: «Ese miembro tiene ausencias pendientes o aprobadas que aún no han terminado. Resuélvelas primero.». Implicados: ninguno

STAFF-F03 Vincular la ficha con una cuenta del negocio

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable Pantalla: Personal Pasos: 1. En el formulario, abre «Usuario del Hub»: salen «Sin acceso al Hub» y las cuentas con acceso a este negocio. 2. Elige la cuenta de esa persona, o «Sin acceso al Hub» para desvincular, y guarda. Entra: las cuentas activas con acceso a este negocio, solo su identificador y su nombre (staff.account.list; las lee quien puede dar de alta o editar fichas). Sale: el vínculo. Con él, la persona ve su propia ficha (STAFF-F08), pide sus ausencias (STAFF-F24) y sus ventas de mostrador cuentan para su comisión (STAFF-F21). No cambia ningún permiso. Dar de baja la ficha libera la cuenta. Si falla: «Ese usuario del Hub ya está vinculado a {nombre}. Un usuario del Hub solo puede pertenecer a un miembro del equipo: desvincúlalo allí primero o elige otro usuario.» (staff.user_already_linked), también si dos personas lo vinculan a la vez; «Ese usuario del Hub no tiene acceso a este negocio.». Implicados: ninguno

STAFF-F04 Crear, editar y retirar un rol

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable Pantalla: Roles Pasos: 1. En Roles, pulsa +, escribe el Nombre (obligatorio, hasta 100) y, si quieres, Descripción y Color, y guarda: el rol sale con 0 miembros y ya se puede elegir en una ficha. 2. Para cambiarlo, pulsa su fila, cambia el nombre, la descripción, el color o el orden, o apaga Activo para retirarlo, y guarda. Entra: lo tecleado. Sale: el rol (staff.role.created o staff.role.updated). Un rol retirado deja de ofrecerse en las fichas; las que ya lo llevan lo conservan. «Miembros» cuenta solo personas Activas. Un rol no concede permisos. Si falla: «Ya existe un rol con ese nombre.» (sin distinguir mayúsculas, staff.role_name_taken); «Ese rol no existe en este negocio.». Implicados: ninguno

STAFF-F05 Desactivar a un profesional

Estado: hecho (servidor y pantalla) Actor: propietario, administrador Pantalla: Personal Pasos: 1. En la fila, pulsa Desactivar y confirma «¿Sacar a {nombre} de la agenda? Deja de ser reservable; no se borra nada.». 2. La fila pasa a Inactivo y deja de ser reservable. Entra: la ficha y sus ausencias pendientes o aprobadas que no han terminado (con el «hoy» del negocio). Sale: estado Inactivo y Reservable apagado (staff.member.deactivated). No toca horarios, ausencias, cuenta ni citas. Para volver: STAFF-F02. Si falla: «Ese miembro tiene ausencias pendientes o aprobadas que aún no han terminado. Resuélvelas primero.» (staff.active_time_off; se rechazan o se cancelan en STAFF-F18 y STAFF-F19); «Ese miembro del personal ya está inactivo.»; «Ese miembro del personal no existe en este negocio.». Implicados: ninguno

STAFF-F06 Dar de baja a un profesional

Estado: hecho (servidor y pantalla) Actor: propietario, administrador Pantalla: Personal Pasos: 1. En la fila, pulsa Dar de baja: el diálogo pide «Último día (hoy si se deja vacío)» y «Motivo (opcional)», hasta 500 caracteres. 2. Confirma: la persona desaparece de la tabla y del directorio. Entra: la fecha (vacía, hoy en el día del negocio) y el motivo. Sale: la ficha Dada de baja, sin Reservable, con su fecha y su motivo, y su cuenta liberada (staff.member.terminated; el aviso no lleva el motivo). Es definitiva: no se edita ni se reabre. Sus horarios dejan de contar y sus ausencias dejan de salir en las listas y en las cifras. Se puede dar de baja a quien está Inactivo o tiene ausencias. Si falla: «Ese miembro del personal no existe en este negocio.» si ya estaba dado de baja. Implicados: ninguno

STAFF-F07 Dar de alta a varios profesionales de golpe

Estado: hecho (asistente y API; sin pantalla) Actor: asistente, API Pantalla: asistente Pasos: 1. Quien puede dar de alta pide al asistente que dé de alta a varias personas (hasta 100 de una vez) con su nombre y, si quiere, email, teléfono, rol, fecha de alta, tarifa, reservable, bio y especialidades. 2. Se crea una ficha Activa por cada fila válida. 3. La respuesta dice qué fichas se crearon y qué filas se omitieron con su motivo. Entra: las filas del lote; los roles activos del negocio. Sale: una ficha por fila válida y un aviso staff.member.created por cada una (ninguno si no entra ninguna). Si falla: una fila con el nombre en blanco, un email que no lo es, una fecha mal escrita, una tarifa negativa o un rol que no es del negocio se omite con su motivo (name_required, invalid_email, invalid_hire_date, negative_hourly_rate, role_not_found) y las demás entran. Más de 100 filas se rechaza entero. Implicados: ninguno

STAFF-F08 Ver mi propia ficha y mis ausencias

Estado: hecho (servidor y pantalla) Actor: empleado (y cualquier persona con ficha vinculada), asistente Pantalla: Personal (vista propia) y Ausencias Pasos: 1. Una persona con su cuenta vinculada a su ficha (STAFF-F03) abre lo suyo. 2. Ve su ficha con su propia tarifa y comisión (sin las notas de RRHH), y sus ausencias con su motivo y sus notas. Entra: la cuenta con la que entra (no se puede falsear). Sale: nada cambia. Sin ficha vinculada, la respuesta viene vacía. Si falla: sin ficha o sin ausencias, vacío. Implicados: ninguno

STAFF-F09 Dar el equipo a otras apps

Estado: hecho (sin pantalla) Actor: sistema Pantalla: ninguna Pasos: 1. Una app que necesita nombrar al equipo (el TPV en «Atiende», la cocina, Citas) pide el directorio, con su permiso de ver el equipo. 2. Recibe, por persona: nombre, email, teléfono, nº de empleado, rol, cuenta, estado, reservable, fecha de alta y color; nunca la tarifa ni la comisión. Hasta 100 por página; se filtra, entre otros, por usuario (para pasar de una cuenta a su ficha). Entra: nada; es una lectura. Sale: el directorio de fichas que no están dadas de baja (también las Inactivas y De baja). Si falla: cada app lo trata a su manera. Implicados: ninguno

STAFF-F13 Crear el horario semanal de un profesional

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable, asistente Pantalla: Horarios Pasos: 1. Elige a la persona y pulsa +: se abre Nuevo con una semana propuesta (lunes a viernes de 09:00 a 18:00). 2. Pon el nombre (vacío, «Horario habitual»), la vigencia si solo vale en unas fechas, «Por defecto» si es el habitual y, día a día, Inicio, Fin y, si hay pausa, Inicio y Fin de descanso. 3. Pulsa Crear horario. Entra: la persona (por id o por nombre) y la semana. Un día es un tramo con un descanso opcional. Sale: el horario (staff.schedule.created). Si es «Por defecto», los demás de esa persona dejan de serlo. Qué horario manda un día: de los activos y vigentes ese día gana el que no es «Por defecto»; entre varios, el de «Vigente desde» más reciente y luego el más nuevo; si ninguno vale, ese día no tiene horario y Citas no restringe por horario. Si falla: debajo de cada campo: «Un horario necesita al menos un día de trabajo con horas.», «La hora de inicio tiene que ser anterior a la de fin.», «El descanso necesita inicio y fin (o ninguno).», «El descanso debe caer dentro del intervalo de trabajo.», «Cada día de la semana solo puede aparecer una vez.», «La vigencia del horario termina antes de empezar.»; «Ese miembro del personal no existe en este negocio.». Un turno que cruza la medianoche no se admite. Implicados: ninguno

STAFF-F14 Editar un horario

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable Pantalla: Horarios Pasos: 1. Pulsa la fila del horario: se abre Editar · {nombre} con su semana. 2. Cambia el nombre, la vigencia, «Por defecto» o los días; un día que desmarcas queda «No trabaja». Guarda: se sustituye la semana entera; lo demás que no envíes se queda como estaba y una fecha vacía quita esa vigencia. Entra: el horario y su semana completa. Sale: el horario cambiado (staff.schedule.updated), con la misma regla de «Por defecto» y de qué horario manda que al crearlo. Si falla: los mismos rechazos que al crear, o «Ese horario no existe en este negocio.». Implicados: ninguno

STAFF-F15 Activar, desactivar o eliminar un horario

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable Pantalla: Horarios Pasos: 1. Activar / desactivar cambia al momento: un horario inactivo no manda ningún día. 2. Eliminar pide confirmar «¿Eliminar el horario «{nombre}»? Sus horas dejan de contar para la disponibilidad.» y lo borra con sus horas. Entra: el horario. Sale: staff.schedule.updated o staff.schedule.deleted. Eliminar el «Por defecto» no hace «Por defecto» a otro. Si falla: «Ese horario no existe en este negocio.». Implicados: ninguno

STAFF-F16 Saber cuándo puede trabajar un profesional

Estado: hecho (sin pantalla) Actor: sistema (Citas), asistente Pantalla: ninguna Pasos: 1. Quien reserva pregunta por una persona (por id o por nombre) y un rango de días (hasta 731; un solo día vale). 2. Personal elige, para cada día, el horario que manda (STAFF-F13) y lo parte por el descanso. 3. Contesta, por día: qué horario manda (ninguno = «sin horario»), sus tramos, las ausencias aprobadas que lo cubren (de día entero o con sus horas, sin el tipo ni el motivo) y lo que queda libre: los tramos menos esas ausencias. Entra: la persona y las fechas, en días del negocio. Sale: solo lectura. Una ausencia pendiente, rechazada o cancelada no cuenta. Si falla: «Ese miembro del personal no existe en este negocio.» (también si se dio de baja); un rango al revés o de más de 731 días se rechaza en el campo. Implicados: ninguno

STAFF-F17 Registrar una ausencia

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable, asistente Pantalla: Ausencias Pasos: 1. En Ausencias, pulsa +, elige el Miembro, el Tipo (viene Vacaciones), Desde y Hasta, «Día completo» (o sus horas) y, si quieres, el Motivo. 2. Pulsa Guardar: la ausencia sale como Pendiente. Entra: la persona (cualquier ficha no dada de baja, también una Inactiva; por id o por nombre) y la ausencia, con motivo y notas opcionales. Con horas, valen las mismas cada día del rango. Sale: la ausencia Pendiente (staff.time_off.created; el aviso no lleva el motivo). Todavía no cambia la agenda: solo cuenta al aprobarla (STAFF-F18). No avisa a la persona. Si falla: debajo de cada campo: «La fecha de fin no puede ser anterior a la de inicio.», «Una ausencia de medio día necesita hora de inicio y de fin.», «La hora de inicio tiene que ser anterior a la de fin.»; «Ese miembro ya tiene una ausencia pendiente o aprobada en esas fechas.» (staff.overlapping_time_off): se solapan si comparten algún día y, cuando las dos son de horas, también alguna hora (una de mañana y otra de tarde del mismo día no chocan); las rechazadas y canceladas no cuentan. «Ese miembro del personal no existe en este negocio.». Implicados: ninguno

STAFF-F18 Aprobar o rechazar una ausencia

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable Pantalla: Ausencias Pasos: 1. Localiza la ausencia Pendiente (el filtro de Estado ayuda). 2. Pulsa Aprobar o Rechazar: la fila pasa a Aprobada o Rechazada. Entra: la ausencia y las otras aprobadas de la misma persona. Sale: el estado nuevo y, al aprobar, quién aprobó y cuándo (staff.time_off.approved o staff.time_off.rejected). Aprobada resta esas horas de la disponibilidad (STAFF-F16) y cuenta en «Ausentes hoy»; Rechazada no cambia nada. No avisa a la persona ni mira sus citas. Si falla: «Ese miembro ya tiene una ausencia aprobada en esas fechas.» (al aprobar); «Esa solicitud de ausencia no puede pasar a ese estado desde el actual.» (staff.invalid_transition); «Esa solicitud de ausencia no existe en este negocio.». Implicados: ninguno

STAFF-F19 Cancelar una ausencia

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable; el empleado, solo la suya pendiente Pantalla: Ausencias Pasos: 1. En la fila de una ausencia Pendiente o Aprobada, pulsa Cancelar y confirma. 2. La fila pasa a Cancelada; si estaba aprobada, sus horas vuelven a estar disponibles. Entra: la ausencia. Sale: el estado Cancelada (staff.time_off.cancelled), que es final; conserva quién la aprobó. Si falla: «Esa solicitud de ausencia no puede pasar a ese estado desde el actual.»; un empleado que intenta cancelar una ajena o una suya que ya no está pendiente (también si se la aprueban mientras la cancela): «Solo puedes cancelar tus propias solicitudes pendientes.». Implicados: ninguno

STAFF-F20 Ver quién falta hoy

Estado: hecho (pantalla Ausencias); panel del inicio pendiente Actor: todos Pantalla: Ausencias y paneles del inicio Pasos: 1. «Ausencias de hoy» lista a quien tiene una ausencia aprobada que cubre hoy (en el día del negocio), de día entero primero y luego por nombre; «Ausentes hoy» los cuenta. 2. Para el detalle, Ausencias con sus filtros. Entra: las ausencias aprobadas y las fichas. Sale: solo lectura; sin el motivo. Si falla: sin ausencias, vacío. Implicados: ninguno

STAFF-F21 Dar la tarifa y la comisión de cada profesional

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable; sistema (el cierre del día) Pantalla: Personal (columna Tarifa/h y formulario) Pasos: 1. Quien puede ver la compensación ve la tarifa, la comisión y las notas de RRHH de cada ficha. 2. La hoja de comisiones da, por cada persona que puede cobrar comisión (Activa o De baja; no las Inactivas ni las dadas de baja), su ficha, su cuenta (vacía si no tiene), nombre, rol y comisión, también las de comisión 0. 3. El importe de un día (vendido × comisión ÷ 100) lo compone quien cierra el día con las ventas por profesional: una persona puede salir en las ventas bajo su ficha (venta de una cita) o bajo su cuenta (venta de mostrador), y las dos se suman antes de aplicar la comisión. Entra: la tarifa y la comisión de cada ficha; no lee ventas. Sale: solo lectura. Si falla: sin permiso de compensación, «Se necesita el permiso…». Implicados: ninguno

STAFF-F22 Cambiar los ajustes de Personal

Estado: hecho (servidor y pantalla) Actor: propietario, administrador, responsable Pantalla: Ajustes de Personal Pasos: 1. Abre Ajustes: salen los guardados o, si nunca se guardaron, los propuestos (jornada de 09:00 a 18:00, descanso de 60 minutos, antelación de 1 hora, 12 horas máximas por día, umbral de 40 horas semanales y los cinco interruptores encendidos). 2. Cambia lo que quieras: jornada en HH:MM (un fin antes del inicio es un turno de noche), descanso de 0 a 480 minutos, antelación de 0 a 168 horas, de 1 a 24 horas por día, umbral de 1 a 168 horas por semana, y los interruptores. 3. Pulsa Guardar. Entra: lo enviado; lo demás se queda como estaba. Sale: los ajustes del negocio (staff.settings.updated), con las horas siempre en HH:MM. Hoy ningún comportamiento los lee (como en el producto actual). Si falla: un valor fuera de su rango sale debajo de su campo y no se guarda nada. Implicados: ninguno

STAFF-F23 Ver las cifras de la plantilla y por rol

Estado: hecho (columna «Miembros» de Roles); paneles del inicio pendientes Actor: todos Pantalla: paneles del inicio y Roles Pasos: 1. Las cifras dan cuántas fichas hay, cuántas personas están Activas, De baja e Inactivas, cuántas faltan hoy (personas distintas con una ausencia aprobada que cubre hoy) y cuántas solicitudes esperan respuesta. 2. «Miembros» de Roles da cuántas personas Activas lleva cada rol (el panel «Empleados por rol»). Entra: las fichas, los roles y las ausencias. Sale: solo lectura. Las fichas dadas de baja y sus ausencias no cuentan. Si falla: sin datos, ceros. Implicados: ninguno

STAFF-F24 Pedir mi propia ausencia

Estado: hecho (servidor y pantalla) Actor: empleado (y cualquier persona con ficha vinculada), asistente Pantalla: Ausencias Pasos: 1. En Ausencias, pulsa +: el formulario no pide Miembro, la ausencia es tuya. 2. Elige el Tipo, las fechas, «Día completo» (o sus horas) y, si quieres, el Motivo, y guarda. 3. Sale como Pendiente hasta que un responsable la apruebe o la rechace (STAFF-F18); mientras esté pendiente puedes retirarla (STAFF-F19). Entra: tu ficha, por tu cuenta vinculada (STAFF-F03). Sale: la ausencia Pendiente, con el mismo aviso que STAFF-F17 (staff.time_off.created). Si falla: los mismos rechazos que STAFF-F17; sin ficha vinculada: «Tu usuario no está vinculado a ningún miembro del personal: pide a un responsable que lo vincule.» (staff.no_member_record). Implicados: ninguno

Servicios: lo que entra y lo que sale

Todo se puede pedir por las pantallas, el asistente (por voz o por texto, con la sesión de quien habla) y la API, con las mismas reglas y los mismos permisos. Una persona se nombra por su id o por su nombre; si el nombre vale para varias, se dice cuáles y se pide que elija (staff.ambiguous_member).

Lo que ofrece: consultas (leen, no cambian nada; todas menos las cuentas se pueden seguir en vivo)

Qué da Quién puede Flujos Servicio
El directorio, con búsqueda, filtros y orden por cualquier columna, en páginas (hasta 100) ver F09 staff.member.list
La ficha de una persona (sin compensación) ver F02 staff.member.detail
Mi ficha, con mi tarifa y mi comisión ver F08 staff.member.mine
Tarifa, comisión y notas de RRHH, con los filtros, el orden y las páginas del directorio (la columna Tarifa/h lee las mismas filas) ver la compensación F21 staff.member.compensation
La hoja de comisiones, con las dos identidades de cada persona ver la compensación F21 staff.commission.summary
Las cifras: fichas, activos, de baja, inactivos, ausentes hoy y solicitudes pendientes ver F23 staff.member.stats
Los roles con sus miembros activos, con filtros y orden ver F04, F23 staff.role.list
Los horarios de una persona con su semana ver F13–F15 staff.schedule.list
Un horario con su semana ver F14 staff.schedule.detail
La disponibilidad de una persona por días ver F16 staff.availability.for_member
Las ausencias, sin motivo, con filtros y orden ver ausencias F17–F19 staff.time_off.list
Una ausencia con su motivo, sus notas y quién la aprobó ver el detalle de ausencias F18 staff.time_off.detail
Quién falta hoy ver ausencias F20 staff.time_off.today
Mis ausencias, con su motivo y sus notas ver ausencias F08 staff.time_off.mine
Los ajustes ver F22 staff.settings.get
Las cuentas activas con acceso al negocio, para «Usuario del Hub» (id y nombre, con búsqueda o por usuario: la cuenta de una ficha que ya no tiene acceso no sale y la pantalla dice «Sin acceso a este negocio») dar de alta o editar F03 staff.account.list

Lo que ofrece: acciones (cambian datos)

Qué hace Quién puede Flujos Servicio
Da de alta una ficha dar de alta F01, F03 staff.member.create
Da de alta hasta 100 fichas de golpe dar de alta F07 staff.member.bulk_create
Cambia una ficha (solo lo enviado) editar F02, F03 staff.member.update
Desactiva una ficha desactivar y dar de baja F05 staff.member.deactivate
Da de baja una ficha, con fecha y motivo desactivar y dar de baja F06 staff.member.terminate
Crea un rol ajustes F04 staff.role.create
Cambia o retira un rol ajustes F04 staff.role.update
Crea un horario con su semana ajustes F13 staff.schedule.create
Cambia un horario y sustituye su semana ajustes F14 staff.schedule.update
Activa o desactiva un horario ajustes F15 staff.schedule.set_active
Elimina un horario ajustes F15 staff.schedule.delete
Registra una ausencia de cualquiera gestionar ausencias F17 staff.time_off.create
Pide una ausencia propia pedir ausencias F24 staff.time_off.request
Aprueba una ausencia gestionar ausencias F18 staff.time_off.approve
Rechaza una ausencia gestionar ausencias F18 staff.time_off.reject
Cancela una ausencia (la propia pendiente, o cualquiera con gestionar ausencias) pedir ausencias F19 staff.time_off.cancel
Guarda los ajustes (solo lo enviado) ajustes F22 staff.settings.update

Lo que avisa

Aviso Cuándo Qué lleva Servicio
Ficha nueva Alta (una por ficha en el alta de golpe) Cuál (id) staff.member.created
Ficha cambiada Edición con algún cambio Cuál (id) staff.member.updated
Ficha desactivada Desactivar Cuál (id) staff.member.deactivated
Ficha dada de baja Dar de baja Cuál (id), sin el motivo staff.member.terminated
Rol nuevo Crear un rol Cuál (id) staff.role.created
Rol cambiado Editar o retirar un rol con algún cambio Cuál (id) staff.role.updated
Horario nuevo Crear un horario El horario (id) y la persona (member_id) staff.schedule.created
Horario cambiado Editarlo, o activarlo o desactivarlo con cambio El horario y la persona staff.schedule.updated
Horario eliminado Eliminarlo El horario y la persona staff.schedule.deleted
Ausencia nueva Registrarla o pedirla La ausencia (id) y la persona (member_id), sin el motivo staff.time_off.created
Ausencia aprobada Aprobar La ausencia y la persona staff.time_off.approved
Ausencia rechazada Rechazar La ausencia y la persona staff.time_off.rejected
Ausencia cancelada Cancelar La ausencia y la persona staff.time_off.cancelled
Ajustes cambiados Guardar con algún cambio (o el primer guardado) Nada staff.settings.updated

A qué reacciona y lo que necesita de otras apps

Nada: Personal no depende de ninguna app. De la plataforma usa las cuentas del negocio (para vincular una ficha) y la zona horaria del negocio (para el «hoy»).

Quién puede qué

Permiso Propietario Administrador Responsable Empleado Servicio
Ver el equipo, roles, horarios, disponibilidad, cifras y ajustes sí sí sí sí staff.view
Ver tarifa, comisión y notas de RRHH sí sí sí no staff.view_compensation
Dar de alta fichas sí sí sí no staff.add_member
Editar fichas sí sí sí no staff.change_member
Desactivar y dar de baja sí sí no no staff.delete_member
Ver ausencias (sin motivo) sí sí sí sí staff.view_time_off
Ver el motivo y las notas de cualquier ausencia sí sí sí no staff.view_time_off_detail
Registrar ausencias de cualquiera, aprobarlas, rechazarlas y cancelarlas sí sí sí no staff.manage_time_off
Roles, horarios y ajustes sí sí sí no staff.manage_settings
Pedir ausencias propias y retirar las propias pendientes sí sí sí sí staff.request_time_off

El cajero del producto actual ya no existe como papel: lo que veía (el directorio) lo ve el empleado.