🏦 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

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:
- El cajero abre la sesión declarando el Fondo Inicial.
- Al cerrar, debe contar sus billetes físicos y tickets de tarjeta, e ingresarlos manualmente al sistema (
DeclaredCash, DeclaredCards).
- El Backend toma estos valores y los contrasta contra los cobros reales (Payments).
- El sistema calcula el
TotalDifference.
- 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í:
- Toma una "Fotografía" (
Snapshot) de los valores originales del aviso (texto original, fechas originales).
- Guarda la fotografía en la columna
OriginalValues del reclamo.
- Aplica los nuevos valores técnicos al aviso principal.
- 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.