Diagrama ingresos
graph TB
%% === INTERFAZ DE USUARIO ===
subgraph "🖥️ INTERFAZ DE USUARIO"
UI["**Vista Ingresos**
📊 Lista paginada
🔍 Búsqueda
📈 Gráficas"]
FORM["**Formulario**
📝 Crear/Editar
🏷️ Productos múltiples
💰 Cálculos automáticos"]
MODAL["**Modales**
📄 Comprobantes
📋 Detalles
🗑️ Confirmaciones"]
end
%% === CONTROLADOR PRINCIPAL ===
subgraph "🎮 CONTROLADOR"
CTRL["`**clientesIngresos**
🏗️ Inyección de Servicios
📊 Index (Cache optimizado)
⚡ API Endpoints`"]
end
%% === SERVICIOS DE NEGOCIO ===
subgraph "⚙️ SERVICIOS DE NEGOCIO"
CREATE_SRV["`**CrearIngresoService**
✅ Validación completa
🏷️ Manejo de productos
📦 Actualización inventario
💰 Registro disponibilidad
📊 Auditoría automática`"]
UPDATE_SRV["`**UpdateIngresosService**
🔄 Actualización inteligente
➕ Nuevos productos
❌ Eliminación productos
💰 Recálculo disponibilidad`"]
DELETE_SRV["`**EliminarIngresoService**
🗑️ Eliminación segura
↩️ Reversión inventario
💰 Ajuste disponibilidad
📊 Auditoría eliminación`"]
AUDIT_SRV["`**AuditoriaService**
📝 Registro completo
👤 Usuario y timestamp
🔍 Trazabilidad total`"]
SUPPORT_SRV["`**SoporteService**
📎 Gestión archivos
🔒 Validación tipos
💾 Almacenamiento seguro`"]
end
%% === MODELOS DE DATOS ===
subgraph "🗃️ MODELOS DE DATOS"
INGRESO_MODEL["`**Ingresos**
🆔 Consecutivo único
📅 Fecha y tipo
💰 Montos y cálculos
👤 Usuario asociado`"]
PRODUCTO_MODEL["`**Productos**
🏷️ Código único
💰 Precios base
📊 Información detallada`"]
INVENTARIO_MODEL["`**Inventario**
📦 Stock actual
➡️ Entradas/Salidas
📊 Control FIFO`"]
LOTE_MODEL["`**Lotes**
🏷️ Consecutivo lote
📅 Fecha creación
💰 Precio base
📦 Cantidad disponible`"]
DISPONIBILIDAD_MODEL["`**DisponibilidadDinero**
💰 Movimientos dinero
📅 Fecha registro
🏷️ Referencia ingreso
💳 Medio de pago`"]
CUENTA_MODEL["`**CuentaPorPagar**
📊 Total venta
💰 Abonos realizados
⏰ Fecha vencimiento
📈 Estado cuenta`"]
HISTORIAL_MODEL["`**HistorialInventario**
📊 Movimientos stock
👤 Responsable cambio
📅 Fecha modificación
📝 Observaciones`"]
SOPORTE_MODEL["`**Soporte**
📎 Archivos adjuntos
🔒 Validaciones
📋 Descripción`"]
end
%% === FLUJOS PRINCIPALES ===
%% Flujo de Creación
UI -->|"📝 Crear Ingreso"| FORM
FORM -->|"📤 Submit Form"| CTRL
CTRL -->|"🏗️ Procesar"| CREATE_SRV
CREATE_SRV -->|"💾 Crear registro"| INGRESO_MODEL
CREATE_SRV -->|"📦 Actualizar stock"| INVENTARIO_MODEL
CREATE_SRV -->|"🏷️ Afectar lotes"| LOTE_MODEL
CREATE_SRV -->|"💰 Registrar dinero"| DISPONIBILIDAD_MODEL
CREATE_SRV -->|"📊 Crear cuenta"| CUENTA_MODEL
CREATE_SRV -->|"📝 Registrar cambio"| HISTORIAL_MODEL
CREATE_SRV -->|"📊 Auditar"| AUDIT_SRV
CREATE_SRV -->|"📎 Procesar archivo"| SUPPORT_SRV
%% Flujo de Actualización
CTRL -->|"🔄 Actualizar"| UPDATE_SRV
UPDATE_SRV -->|"🗑️ Eliminar productos"| DELETE_SRV
UPDATE_SRV -->|"💰 Recalcular"| DISPONIBILIDAD_MODEL
UPDATE_SRV -->|"📊 Actualizar cuenta"| CUENTA_MODEL
%% Flujo de Eliminación
CTRL -->|"🗑️ Eliminar"| DELETE_SRV
DELETE_SRV -->|"↩️ Restaurar stock"| INVENTARIO_MODEL
DELETE_SRV -->|"🏷️ Devolver lotes"| LOTE_MODEL
DELETE_SRV -->|"💰 Ajustar dinero"| DISPONIBILIDAD_MODEL
%% Relaciones entre modelos
INGRESO_MODEL -.->|"🏷️ Código"| PRODUCTO_MODEL
INVENTARIO_MODEL -.->|"📦 Stock"| LOTE_MODEL
CUENTA_MODEL -.->|"🔗 Referencia"| INGRESO_MODEL
HISTORIAL_MODEL -.->|"📊 Seguimiento"| INVENTARIO_MODEL
SOPORTE_MODEL -.->|"📎 Evidencia"| INGRESO_MODEL
%% Flujo de consulta
UI -->|"📊 Ver lista"| CTRL
CTRL -->|"💾 Cache + Query"| INGRESO_MODEL
CTRL -->|"📈 Datos gráficas"| UI
%% APIs especializadas
CTRL -->|"📊 API Período"| UI
CTRL -->|"📈 API Concepto"| UI
CTRL -->|"🔍 API Búsqueda"| UI
%% === CARACTERÍSTICAS ESPECIALES ===
subgraph "🔥 CARACTERÍSTICAS AVANZADAS"
CACHE["`**Sistema Cache**
⚡ Consultas optimizadas
🕐 TTL inteligente
🔄 Invalidación automática`"]
TRANSACTION["`**Transacciones**
🔒 ACID completo
↩️ Rollback automático
🛡️ Consistencia datos`"]
VALIDATION["`**Validaciones**
✅ Datos entrada
🔍 Reglas negocio
⚠️ Manejo errores`"]
OPTIMIZATION["`**Optimizaciones**
📊 Consultas N+1 eliminadas
🚀 Eager loading
💾 Pre-carga datos`"]
end
%% Conexiones características
CTRL -.->|"⚡ Usa"| CACHE
CREATE_SRV -.->|"🔒 Usa"| TRANSACTION
UPDATE_SRV -.->|"✅ Usa"| VALIDATION
DELETE_SRV -.->|"🚀 Usa"| OPTIMIZATION
%% === TIPOS DE INGRESOS ===
subgraph "💰 TIPOS DE INGRESOS"
CONTADO["`**Venta Contado**
💰 Pago inmediato
📦 Afecta inventario
💸 Registro disponibilidad`"]
CREDITO["`**Venta Crédito**
📊 Crea cuenta por pagar
💰 Abono inicial opcional
⏰ Fecha vencimiento`"]
OTROS["`**Otros Ingresos**
💰 No afecta inventario
📊 Registro directo
💸 Disponibilidad inmediata`"]
end
CREATE_SRV -.->|"💰 Procesa"| CONTADO
CREATE_SRV -.->|"📊 Procesa"| CREDITO
CREATE_SRV -.->|"💸 Procesa"| OTROS
%% Estilos
classDef serviceClass fill:#e1f5fe,stroke:#01579b,stroke-width:2px
classDef modelClass fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
classDef uiClass fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
classDef featureClass fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef typeClass fill:#fce4ec,stroke:#880e4f,stroke-width:2px
class CREATE_SRV,UPDATE_SRV,DELETE_SRV,AUDIT_SRV,SUPPORT_SRV serviceClass
class INGRESO_MODEL,PRODUCTO_MODEL,INVENTARIO_MODEL,LOTE_MODEL,DISPONIBILIDAD_MODEL,CUENTA_MODEL,HISTORIAL_MODEL,SOPORTE_MODEL modelClass
class UI,FORM,MODAL uiClass
class CACHE,TRANSACTION,VALIDATION,OPTIMIZATION featureClass
class CONTADO,CREDITO,OTROS typeClass