diff --git a/Cash-Register.-.md b/Cash-Register.-.md new file mode 100644 index 0000000..dca74f2 --- /dev/null +++ b/Cash-Register.-.md @@ -0,0 +1,30 @@ +# 🏦 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: +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. \ No newline at end of file