Banner Arquitectura
Protocolo Senior

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

01

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.

02

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).

03

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).