1
Cash Register
dmolinari edited this page 2026-02-25 20:56:14 -03:00

🏦 Flujo de Caja, Arqueo Ciego y Auditoría

La tesorería del sistema está diseñada bajo el principio de "Zero Trust" (Cero Confianza) en el punto de venta, requiriendo validación centralizada.

🙈 El Arqueo Ciego

Arquitectura Cierre Caja


Cuando un cajero termina su turno, no puede ver un reporte de "Cuánto debería tener en la caja". El flujo es el siguiente:

  1. El cajero abre la sesión declarando el Fondo Inicial.
  2. Al cerrar, debe contar sus billetes físicos y tickets de tarjeta, e ingresarlos manualmente al sistema (DeclaredCash, DeclaredCards).
  3. El Backend toma estos valores y los contrasta contra los cobros reales (Payments).
  4. El sistema calcula el TotalDifference.
  5. La sesión queda bloqueada en estado PendingValidation.

⚖️ Liquidación y Validación

La caja no se considera legalmente cerrada hasta que un Administrador o Tesorero revisa el "Acta de Cierre" impresa, la compara con el dinero recibido en mano, ingresa sus notas y liquida la sesión (Closed).


🕵️ Sistema de Reclamos y Ajuste Técnico

Si un cliente presenta una queja (ej: un error de tipeo en el diario impreso), el cajero abre una incidencia (Claim).

Resolución Transaccional: Cuando un moderador resuelve el problema (ej: otorgando 2 días gratis extra), el sistema protege los datos así:

  1. Toma una "Fotografía" (Snapshot) de los valores originales del aviso (texto original, fechas originales).
  2. Guarda la fotografía en la columna OriginalValues del reclamo.
  3. Aplica los nuevos valores técnicos al aviso principal.
  4. Genera un log inmutable en la tabla AuditLogs.

Esto garantiza que siempre se sepa qué modificó el moderador y cómo estaba el aviso originalmente.