Inventario y Operaciones
El módulo de Inventario es el corazón del sistema, diseñado para manejar múltiples depósitos, lotes y trazabilidad completa.
Modelos Principales
1. Activos (Assets)
Son los productos o servicios que la empresa comercializa o utiliza.
- Categorías: Agrupación lógica (Ej: Maquinaria, Repuestos).
- Estrategia de Salida: Puede configurarse como FIFO (Primero entra, primero sale), FEFO (Primero expira, primero sale) o LIFO.
- Stock Mín/Máx: Puntos de re-orden para automatizar compras.
2. Almacenes (Warehouses)
Ubicaciones físicas donde se guarda el stock.
- Soportan múltiples direcciones.
- WarehouseInsight: Análisis de IA sobre la salud del depósito.
3. Stock y Lotes (StockLots)
El sistema utiliza un doble nivel de stock para garantizar que nunca se sobrevenda:
- Stock Físico: La suma real de todos los artículos en los estantes. Se gestiona a través de Lotes (StockLot), cada uno con su fecha de vencimiento y costo.
- Stock Lógico (ATP): "Available To Promise" (Disponible para Comprometer). Es la cantidad que el sistema le permite vender a un cliente.
Fórmula ATP
ATP = Stock Físico - Comprometido - Bloqueado
- Comprometido (Committed): Mercadería vendida y cobrada pero aún en nuestro depósito (Acopios).
- Bloqueado (Blocked): Mercadería separada para control de calidad, en movimiento interno o reservada para picking.
Movimientos de Stock
Todos los cambios en el inventario quedan registrados en `StockMovement`. Tipos comunes:
- INBOUND: Entrada física de mercadería (por ejemplo reposición desde inventario con la mutación `replenishStock`).
- OUTBOUND: Salida manual genérica cuando aplica.
- ADJUSTMENT asociado a corrección sobre un lote existente (`adjustStockLot`):
- SET: el usuario define la cantidad final del lote (conteo físico o reconciliación).
- SUBTRACT: el usuario define cuántas unidades retira del lote (merma, daño, pérdida); la cantidad del lote baja en ese delta.
- SALE_OUTBOUND: Salida por venta.
- PURCHASE_INBOUND: Recepción de compra.
- TRANSFER: Movimiento entre depósitos (requiere aceptación con token QR).
Operaciones de stock
Resumen de las operaciones orientadas a GraphQL / producto:
| Operación | Cuándo usarla | Modelo de cantidad | Típico en StockMovement |
|---|---|---|---|
| `replenishStock` | Nueva recepción de mercadería para un artículo ya existente | Crea lote nuevo y suma unidades | `INBOUND` |
| `adjustStockLot` con `SET` | Conteo físico / corrección sobre un lote existente | Valor absoluto final del lote | `ADJUSTMENT` |
| `adjustStockLot` con `SUBTRACT` | Merma, daño, pérdida sobre un lote existente | Delta a restar del lote | `ADJUSTMENT` |
La operación `addStock` (alta / fusión desde el flujo de “agregar artículo”) es distinta: puede actualizar datos del catálogo del artículo si coincide SKU; no debe confundirse con reponer stock.
Diagrama de Relaciones (placeholder)
Aquí va un diagrama simplificado de entidades del inventario. Reemplaza esta imagen cuando tengas el diagrama final.
