DocumentaciónDepot POSCajas

Cajas

Última actualización: 2026-04-16

POS — Cajas Registradoras

¿Qué es?

El módulo de Cajas gestiona los turnos de apertura y cierre de cajas registradoras, los movimientos de efectivo (entradas y salidas), y el historial de cierres. También incluye la gestión de sesiones de efectivo de repartidores.

Se accede desde "Cajas" en el sidebar (ícono de edificio bancario), URL: .../cash-register. Solo visible si enableCashRegister = true en la configuración.

Requiere permiso cash_register:read.

---

Layout y pestañas

La pantalla tiene tres pestañas en la parte superior derecha:

PestañaContenido
Sucursales (cuadrícula)Tarjetas de cada caja registradora con su turno actual
Repartidores (bicicleta)Sesiones de efectivo de los repartidores
Historial (reloj)Registro de todos los turnos cerrados

El botón "Nueva caja" aparece solo en la pestaña de Sucursales, en el encabezado.

---

Pestaña: Sucursales (Cajas)

Lista de cajas

Cuadrícula responsiva (auto-fill de 280px mínimo por columna). Cada caja muestra una tarjeta con:

Si el turno está cerrado:

  • Nombre de la caja
  • Estado: "Sin turno activo"
  • Botón "Abrir turno"

Si el turno está abierto:

  • Nombre de la caja
  • Estado: "Turno abierto" con tiempo transcurrido
  • Balance inicial del turno
  • Saldo esperado actual (inicial + entradas - salidas)
  • Últimos movimientos del turno
  • Botón "Cerrar turno"
  • Botón "Agregar movimiento"

Crear una nueva caja

El botón "Nueva caja" del encabezado abre un diálogo con:

  • Campo de nombre (ej. "Caja 1", "Mostrador principal")
  • Si ya hay una caja seleccionada para editar, permite renombrarla

---

Abrir un turno

Al pulsar "Abrir turno" en una caja cerrada:

  • Se pide el balance inicial (cuánto efectivo hay físicamente al inicio)
  • Al confirmar, se crea un registro en cash_shifts con status = open, openingBalance = monto ingresado
  • El turno queda ligado a esa caja y a la sucursal activa

---

Movimientos de efectivo

Mientras el turno está abierto, el cajero puede registrar movimientos:

  • Entrada de efectivo: depósito o ingreso adicional (ej. cambio recibido de banco)
  • Salida de efectivo: retiro o gasto (ej. pago a proveedor, envío de efectivo)

Cada movimiento requiere:

  • Tipo (entrada/salida)
  • Monto
  • Descripción / concepto

Los movimientos se suman al saldo esperado para el cálculo de cierre.

---

Cerrar un turno

Al pulsar "Cerrar turno":

  1. Se muestra el resumen del turno:
  • Balance inicial
  • Total de ventas en efectivo del turno (suma de órdenes pagadas en efectivo durante el turno)
  • Entradas manuales
  • Salidas manuales
  • Saldo esperado = inicial + ventas en efectivo + entradas - salidas
  1. El cajero ingresa el efectivo contado (lo que hay físicamente en la caja)
  2. El sistema calcula la diferencia = contado - esperado
  3. Al confirmar, el turno queda en status = closed con los montos registrados

---

Pestaña: Repartidores (Sesiones de efectivo)

Muestra las sesiones de efectivo activas o históricas de los repartidores de la sucursal. Una sesión de repartidor acumula el efectivo que el repartidor recibe de órdenes con pago contra entrega (pay_on_delivery).

Para cada repartidor activo:

  • Nombre y foto
  • Estado de la sesión (abierta/cerrada)
  • Monto esperado (suma de órdenes contra entrega entregadas)
  • Botón para abrir nueva sesión (si no tiene una activa)
  • Botón para cerrar sesión y registrar el depósito

Cerrar sesión de repartidor

Al cerrar:

  1. Se ingresa el monto que el repartidor entrega físicamente
  2. El sistema calcula diferencia (faltante/sobrante)
  3. Se registra el depósito como movimiento de entrada en la caja registradora activa (driver_handover)

---

Pestaña: Historial

Lista cronológica de todos los turnos cerrados de la sucursal. Para cada turno:

  • Fecha de apertura y cierre
  • Nombre de la caja
  • Empleado que lo abrió
  • Balance inicial, saldo esperado, efectivo contado
  • Diferencia (en verde si positivo, rojo si negativo)
  • Botón "Ver detalle" para ver todos los movimientos del turno

Se puede filtrar por caja usando el selector de cajas disponible.

---

Vinculación con órdenes

Cuando se crea una orden:

  • El sistema detecta si hay un turno abierto en la sucursal activa
  • Si hay uno, la orden se liga a ese turno mediante cashShiftId
  • Al cerrar el turno, las ventas en efectivo de esas órdenes se incluyen en el cálculo del saldo esperado

---

Configuración relacionada

Desde /settings (Configuración POS):

  • enableCashRegister: activa/desactiva el módulo completo
  • requireOpenShiftToSell: si está activo, no se pueden crear órdenes sin un turno abierto en esa sucursal
  • requireCloseShiftOnLogout: muestra aviso al cambiar de empleado con turno sin cerrar
Depot — Empleados Digitales para tu PyME