Sistema de gestión de cobros, stock y caja para boliches y eventos. Este documento define, módulo por módulo, qué construye la primera versión — el alcance acordado antes de escribir código.
Cada módulo se desglosó decisión por decisión. Las reglas de negocio que siguen son las acordadas, no supuestos.
Desde que el cliente pide hasta que la venta queda registrada.
Se abre por un origen que el administrador predefine (mesa, barra, pista), vinculada al operador y a la caja.
Se agregan productos del catálogo con el precio vigente. Sin descuento manual del cajero.
Tarjeta vía Point Integrado (Mercado Pago) o efectivo. En el MVP se cobra el total, sin cuenta dividida.
Una vez cobrada no se edita, sin importar el medio de pago. La corrección se hace por anulación con motivo y operador.
Por turno y operador. El cajero cuenta el efectivo; un supervisor valida el cierre. Se compara esperado contra real y se registra el descuadre.
Parte del valor del servicio. Integración con AFIP / ARCA.
El administrador define su condición (Monotributo o Responsable Inscripto), punto de venta y certificado al configurar su cuenta.
Al aprobarse el cobro por Point, emite comprobante y solicita CAE sin intervención del cajero.
El administrador decide: facturar cada venta en efectivo en el momento, o dejarla pendiente para facturar después (una por una o agrupada al cierre).
Si AFIP no responde o no hay conexión, el cobro no se frena: la venta queda pendiente de CAE y reintenta al recuperar conexión.
El administrador ve todo lo pendiente de facturar (efectivo diferido + contingencia) y puede facturar en lote o individualmente.
El módulo más denso. Stock real de barra, no teórico.
Productos organizados por categoría (tragos, cervezas, etc.).
Un producto simple es su propio stock (una lata). Un producto con receta descuenta insumos (un fernet con coca resta ml de fernet y de coca). Los insumos son una entidad separada del catálogo de venta.
El stock existe por producto en cada lugar físico: depósito, barra 1, barra 2. Podés quedarte sin fernet en una barra habiendo en otra.
Se mueve stock entre ubicaciones (depósito→barra, barra→barra). Cada movimiento registra qué, cuánto, origen, destino, operador y motivo.
Integrado (caja = barra): cobrar descuenta el físico directo. Separado (caja ≠ barra): cobrar compromete stock, y la barra descuenta el físico al escanear el vale (QR o número). El admin configura el modo por lugar.
En modo separado el sistema muestra tres números en vivo: físico, comprometido y disponible. El disponible puede ser negativo (vendiste más de lo que tenés). Es válido, y el administrador lo ve al instante para decidir: reponer, mover, frenar o dejar correr.
Reposición, merma y recuento, sobre cualquier ubicación. Lo hacen administrador y supervisor, con registro. Alerta de stock bajo con umbral por producto.
Que no se acumule plata de más en una caja.
Un umbral de efectivo para todas las cajas. Solo el efectivo cuenta; la tarjeta no toca el cajón.
Al superar el umbral, la alerta llega a administrador, supervisor y al cajero de esa caja. El cajero avisa pero no puede retirar.
Por alerta o manual (por seguridad, sin alerta). Registra monto, quién retira, quién autoriza, hora y caja de origen.
El efectivo retirado se mueve a una tesorería / caja fuerte —una ubicación más— con el mismo patrón de movimiento trazado que el stock.
Un retiro con error no se borra: se corrige con un contra-movimiento que deja registro de quién y por qué. El historial nunca pierde información.
Se adapta a cómo opera cada lugar, no al revés.
El sistema define permisos atómicos (cobrar, despachar, retirar, ajustar stock…). El administrador arma roles combinándolos. En un lugar el que cobra también despacha; en otro, no.
Vienen roles armados (Cajero, Barra, Supervisor, Admin) que cubren la mayoría de los casos. Se usan tal cual o se editan.
Rol fijo, ineditable e indestructible. Es el único que gestiona roles, y siempre conserva acceso — nadie puede autoexcluirse por error al editar permisos.
Una persona puede acumular roles (supervisor + cajero en un evento chico).
| Acción | Cajero | Barra | Superv. | Admin |
|---|---|---|---|---|
| Cobrar | Sí | – | Sí | Sí |
| Despachar (escanear vale) | – | Sí | Sí | Sí |
| Contar caja | Sí | – | Sí | Sí |
| Validar cierre | – | – | Sí | Sí |
| Ajustar / mover stock | – | – | Sí | Sí |
| Retirar efectivo | – | – | Sí | Sí |
| Configurar / fiscal | – | – | – | Sí |
La capa física que conecta el software con el mundo real.
La tablet corre la app de comanda y crea la orden de pago vía la Point Integrado API. Mercado Pago enruta esa orden a la terminal Point Smart N950 asociada a la cuenta, que despierta con el monto y procesa el cobro. La app no vive dentro del Point ni le habla localmente: le habla a la nube de MP, y MP le habla al Point.
La impresora térmica imprime el ticket del cliente con el QR del vale. En modo separado ese QR es lo que la barra escanea para despachar. En el MVP la impresora solo imprime este ticket — no comanda de preparación ni comprobante fiscal.
El mismo modo que gobierna el stock decide la impresión. Separado (caja ≠ barra): el vale impreso es parte del flujo, el cliente lo necesita para retirar. Integrado (caja = barra): el ticket es opcional, el que cobra ya entrega.
El enrutamiento del cobro por la Point Integrado API (que la orden llegue a la terminal correcta y devuelva el resultado a tiempo) y la conexión de la impresora (Bluetooth, red o USB, a definir) son la parte más delicada del MVP a nivel técnico. Conviene validarlas con el hardware real desde el inicio, no dejarlas para el final.
Toda acción sensible (anulación, movimiento, retiro, ajuste) queda registrada con operador, motivo y hora. Nada se borra: se corrige con contra-asiento.
La operación no se frena si se cae la conexión o AFIP. Se registra y se sincroniza al recuperar. Crítico en boliches.
Mover stock entre barras y retirar efectivo a tesorería son el mismo concepto: un movimiento trazado entre ubicaciones.
Orígenes de comanda, modo del evento, umbrales, roles y facturación del efectivo: todo se adapta desde configuración.
Definir qué queda afuera es tan importante como qué entra. Esto no se construye en la primera versión.
