Blindaje Maestro de Procesos
La Biblia de Reglas de Negocio inalterables y arquitectura de Verdad Absoluta.
Motor de Reglas
rules_engine.py centraliza toda la lógica de cálculo.
Ningún endpoint realiza cálculos propios; solo delegan en el motor purificado.
Inmutabilidad
Protección de históricos. Si un día está CERRADO o el inventario de rascas está atribuido, el sistema bloquea cualquier modificación accidental desde escáneres.
Trazabilidad OCR
Los cierres de devolución solo inyectan CANTIDAD. El sistema recalcula el NETO basándose en precios reales, protegiendo la integridad financiera ante errores en tickets.
Ecosistema de Verdad Absoluta
Entrada: Escáner y Scraper
Los datos entran vía OCR ( tickets) o Portal ONCE. El sistema limpia y normaliza el texto ANTES de enviarlo al motor de reglas.
Procesamiento: Motor Senior
backend/services/rules_engine.py
aplica (V22.2.0):
• Saneamiento Forense: OCR Intocable. Herramientas DEV de purga y Reindexación matemática pura.
• Caja Fuerte Fluida: El cajón no se "reinicia". Flujo infinito dinámico desde la fecha Génesis (21 ABR).
• Inventario Anidado: Desbloqueo y mapeo 1:N de las tablas internas ASP.NET.
• Residual Domingo & T+1: Atribución paramétrica cruzando stock de fin de semana.
• Panel Mensual: Reset a 0 el día 1 de cada mes (Tránsito a Venta Real).
Persistencia y Salida
Los datos se graban en ventas_once. El panel de 7 días y el
Dashboard consumen esta tabla maestra garantizando consistencia matemática 1:1.
Arquitectura de Base de Datos
diario_ventas
Origen
TPV
ventas_once
Maestra
Global
configuracion_rascas
Biblia
Precios/Cobros
diario_liquidacion_cabecera
Liquidaciones
Diarias
Cualquier modificación manual en estas tablas debe ser evitada. El sistema inyecta datos mediante procedimientos almacenados y lógica purificada de Python para asegurar la integridad total.
Reglas de Oro del Sistema
Cero Cálculos en Endpoints: Todas las operaciones matemáticas residen en el motor de reglas centralizado.
Pasivos TPV Estrictos: Los cupones BON, DOM, ORD, VIE y EXT vendidos por TPV se clasifican siempre como pasivos y se atribuyen a su fecha de juego correspondiente en `ventas_once`.
Sincronización Atómica: La creación de un Cierre de Caja inyecta datos en tiempo real en la tabla maestra `ventas_once`.
Inversión de Carga 06:30 AM (y reintentos 30m): Primero se descarga la Liquidación y luego el Inventario para garantizar la consistencia de cierres y bloquear fallos del portal.
Zero-Trust Data (V22): Si algo descuadra, NO inventamos +5€; usamos la Herramienta para Purgar y Re-Indexar mágicamente la BD.
Caja Fluida (V22): Eliminación del ancla a las liquidaciones para evitar reseteos espasmódicos (Modelo Continuo Infinito).