# Usuarios y permisos

# Roles y permisos

## ¿Qué es / para qué sirve?

Un **rol** es un conjunto de **permisos** que define qué puede hacer un usuario.
El sistema trae roles preconfigurados (Administrador, Cajero, Salonero), pero
**todo se controla con el nomenclador de permisos**: puedes agregar o quitar
permisos a cualquier rol según lo necesites.

## Paso a paso

1. Ve a **Gestión de Usuarios → Roles**.
2. Presiona **Agregar** (o edita un rol).
3. Escribe el **Nombre del Rol**.
4. Marca los **permisos** por grupo (Usuarios, Productos, Compras, Ventas,
   Reportes, etc.). Cada grupo tiene **Seleccionar Todo**.
5. Si es para el salón, marca **Personal de Servicio**.
6. Guarda y asígnalo a los usuarios que correspondan.

[CAPTURA: pantalla de rol con los grupos de permisos]

## Permisos típicos a controlar

- **Abrir / cerrar caja** (normalmente solo cajero/supervisor).
- **Cobrar** (ocultar el botón de pago para que el salonero solo tome pedidos).
- **Editar precio/descuento**, **anular factura**, **notas de crédito**.
- **Realizar Ventas a Crédito** (permiso `sell.credit_sale`): controla quién puede cerrar una
  venta como "a crédito" en el punto de venta, ya sea con el botón **A Crédito** o marcando
  el método de pago **CREDITO** en la ventana de cobro. Sin este permiso, ninguno de los dos
  aparece; los demás métodos de pago (Efectivo, Tarjeta, Transferencia, etc.) no se ven
  afectados. Los usuarios con el rol **Administrador** pueden vender a crédito siempre,
  aunque no marques este permiso en su rol.
- **Ver reportes** (cada reporte tiene su permiso).

## Los cambios de permisos quedan registrados

Cada vez que alguien guarda un rol, el sistema anota **qué permisos se agregaron y
cuáles se quitaron**, y **quién** hizo el cambio. Si guardas el rol sin tocar
ninguna casilla, no se registra nada.

Para verlo: **Reportes → Logs** (esta opción solo la ve el administrador) y busca
el registro del rol. El detalle muestra el nombre del permiso tal como aparece en
esta pantalla (por ejemplo *Editar Ventas POS*), no un código interno.

Sirve para responder la pregunta que siempre aparece cuando algo deja de
funcionar: *"¿quién le quitó ese permiso al rol y cuándo?"*.

## Aviso cuando alguien choca con un permiso

Si un empleado intenta entrar a una función que su rol no tiene habilitada:

1. El empleado ve una pantalla que le dice **cuál** es la función bloqueada.
2. Te llega un aviso a la **campana** del encabezado, con enlace directo a Roles.
3. Si el negocio tiene el correo configurado, también te llega por correo.

Solo lo reciben el **administrador del negocio** y el usuario de soporte. Si la
misma persona insiste en la misma pantalla, el aviso **no se repite**: durante una
hora se agrupa en uno solo y solo sube el contador de intentos.

Si el negocio trabaja con una **cuenta compartida** (por ejemplo `salonero`) y los
meseros se identifican con su **PIN de personal de servicio**, el aviso nombra a la
**persona del PIN**, no a la cuenta: *"Juan Pérez (con su PIN, en el equipo
salonero) no pudo entrar a Editar Ventas POS"*. Si el PIN ya caducó por
inactividad, aparece la cuenta compartida.

[CAPTURA: aviso de permiso en la campana del encabezado]

## Notas y avisos

> - Si un usuario "no ve" un botón o pantalla, casi siempre es por **permisos** de
>   su rol.
> - Cambiar permisos de un rol afecta a **todos** los usuarios con ese rol.
> - Un permiso muy usado es **Venta → Editar**: sin él, el usuario no puede abrir
>   una cuenta o mesa ya iniciada. Si lo desmarcas, el POS deja de dejar entrar a
>   las mesas ocupadas.
> - El aviso por correo solo sale si el negocio tiene el correo configurado. Si el
>   correo falla, el aviso de la campana llega igual.
> - PENDIENTE DE VERIFICAR: si tu negocio quiere que un cajero sin el permiso **Realizar
>   Ventas a Crédito** pueda pedirle a un supervisor que la autorice en el momento (sin tener
>   que editar el rol), esa opción no está disponible todavía -- consulta con soporte si la
>   necesitas.

# Crear usuarios

## ¿Qué es / para qué sirve?

Los **usuarios** son las personas que entran al sistema (cajeros, saloneros,
administradores). A cada uno le asignas un **rol** (que define sus permisos) y las
sucursales donde puede trabajar.

## Paso a paso

1. Ve a **Gestión de Usuarios → Usuarios → Agregar**.
2. Completa **Nombre**, **Apellido** y **Correo Electrónico**.
3. En acceso, marca **Permitir Inicio de Sesión** y define **usuario** y
   **contraseña**.
4. Asigna el **Rol** (ej. Cajero, Salonero, Administrador).
5. Define el **Acceso a Ubicaciones** (todas o sucursales específicas).
6. Opcional: **PIN de Seguridad** (para personal de servicio), impresoras
   asignadas, **% de comisión** y **% máximo de descuento**.
7. Guarda.

[CAPTURA: formulario de usuario con rol y acceso a ubicaciones]

## Notas y avisos

> - El **rol** define lo que el usuario puede hacer (ver
>   [Roles y permisos](roles-y-permisos.md)).
> - El **PIN** se usa, por ejemplo, para acceder a mesas o autorizar acciones.

# Agentes de comisión de ventas

## ¿Qué es / para qué sirve?

Un **agente de comisión** es un vendedor que gana un **porcentaje** por las ventas
que genera. Aquí los registras con su **% de comisión** para que el sistema lo
calcule y lo muestre en los reportes de comisiones.

## Paso a paso

1. Ve a **Gestión de Usuarios → Agentes de Venta**.
2. Presiona **Agregar**.
3. Completa:
   - **Nombre** (obligatorio).
   - Opcionales: **Prefijo**, **Apellido**, **Email**, **Número de Contacto**,
     **Dirección**.
   - **% Comisión** (ej. 5 para 5%).
4. Guarda. Puedes **Editar** o **Eliminar** desde el listado.

[CAPTURA: cuadro "Agregar Agente de Venta" con Nombre y % Comisión]

## Notas y avisos

> - El **% de comisión** se aplica a las ventas asociadas al agente y se ve en el
>   **Reporte de Vendedor/Representante** (Manual de Reportes).
> - Asocia el agente a la venta para que su comisión se calcule.

PENDIENTE DE VERIFICAR: dónde exactamente se selecciona el agente de comisión al
registrar una venta en tu instalación.

# Quién puede abrir las mesas de otros

## ¿Qué es / para qué sirve?

Sirve para decidir **quién puede abrir una mesa que está atendiendo otra persona**.

Hasta ahora esto se resolvía con un solo interruptor para todo el negocio: o **todos**
podían entrar a cualquier mesa, o **nadie**. No había manera de darle el permiso al
cajero y quitárselo al salonero.

Con esta opción activada, la decisión pasa a ser **por rol**. Usted marca quién puede y
quién no, y el sistema aplica la misma regla en el salón, en el POS y en el listado de
pedidos.

Se agregan dos permisos, **separados a propósito**:

- **Abrir ventas de otros usuarios** — entrar a la mesa de otro y editar su pedido.
- **Reasignar el personal de servicio de una mesa** — pasarle la mesa a otro salonero,
  sin necesidad de entrar al pedido.

Están separados porque un cajero suele necesitar repartir mesas sin tener que meterse a
editar lo que otro tomó.

## Paso a paso

1. Entre a **Configuración → Configuración del negocio → POS**.
2. Busque la casilla **"Decidir por rol quién abre ventas de otros"** y márquela.
3. Guarde.
4. Vaya a **Usuarios → Roles** y edite cada rol que lo necesite.
5. En la sección de permisos del POS, marque **"Abrir ventas de otros usuarios"** y/o
   **"Reasignar el personal de servicio de una mesa"**, según lo que le toque a ese rol.
6. Guarde el rol.

[CAPTURA: la casilla "Decidir por rol quién abre ventas de otros" en Configuración del POS]

[CAPTURA: los dos permisos nuevos dentro de la edición de un rol]

## Notas y avisos

> **Marque primero los permisos, active la casilla después.** Mientras la casilla esté
> desmarcada, todo sigue funcionando como siempre. En el momento en que la marque, quien
> no tenga el permiso deja de poder abrir mesas ajenas — incluido el cajero, si se le
> olvidó marcárselo.

> **El administrador siempre puede.** No hace falta marcarle nada.

> **Esto aplica solo a las mesas.** Las ventas de mostrador y las de delivery no tienen
> este candado.

> **Si usa PIN de personal de servicio**, el sistema mira **quién puso el PIN**, no con
> qué usuario está abierta la tablet. Así una estación compartida entre varios saloneros
> funciona correctamente: cada uno entra a lo suyo.

> Si el PIN ya caducó por inactividad, el sistema le pedirá ponerlo otra vez antes de
> abrir la mesa. El tiempo de caducidad se configura aparte, en la misma pantalla del POS.