- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8 - Cambios en backend y frontend Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
194 lines
4.2 KiB
Markdown
194 lines
4.2 KiB
Markdown
---
|
|
id: EPIC-MCH-009
|
|
type: Epic
|
|
title: "MCH-009: Prediccion de Inventario"
|
|
code: MCH-009
|
|
status: Completado
|
|
phase: 2
|
|
priority: P1
|
|
created_at: 2026-01-10
|
|
updated_at: 2026-01-10
|
|
simco_version: "3.8.0"
|
|
dependencies:
|
|
blocks: ["MCH-012"]
|
|
depends_on: ["MCH-003", "MCH-004", "MCH-007"]
|
|
---
|
|
|
|
# MCH-009: Prediccion de Inventario
|
|
|
|
## Metadata
|
|
- **Codigo:** MCH-009
|
|
- **Fase:** 2 - Inteligencia
|
|
- **Prioridad:** P1
|
|
- **Estado:** Completado
|
|
- **Fecha completado:** 2026-01-10
|
|
|
|
## Descripcion
|
|
|
|
Sistema de prediccion de inventario basado en historico de ventas: alertas de stock bajo, sugerencias de reabastecimiento, prediccion de demanda, y deteccion de productos de lento movimiento.
|
|
|
|
## Objetivos
|
|
|
|
1. Alertas de stock bajo
|
|
2. Prediccion de demanda semanal
|
|
3. Sugerencias de pedido a proveedor
|
|
4. Deteccion de productos sin movimiento
|
|
5. Dias de inventario estimados
|
|
|
|
## Alcance
|
|
|
|
### Incluido
|
|
- Alerta cuando stock < min_stock
|
|
- Prediccion basada en promedio movil
|
|
- Calculo de punto de reorden
|
|
- Lista de sugerencias de compra
|
|
- Productos sin venta en X dias
|
|
|
|
### Excluido
|
|
- ML avanzado (LSTM, Prophet)
|
|
- Integracion automatica con proveedores
|
|
- Pedidos automaticos
|
|
|
|
## Algoritmos
|
|
|
|
### Prediccion de Demanda
|
|
```
|
|
Promedio Movil Ponderado (4 semanas)
|
|
- Semana -1: peso 0.4
|
|
- Semana -2: peso 0.3
|
|
- Semana -3: peso 0.2
|
|
- Semana -4: peso 0.1
|
|
|
|
Demanda_estimada = Σ(ventas_semana * peso)
|
|
```
|
|
|
|
### Punto de Reorden
|
|
```
|
|
Punto_reorden = (Demanda_diaria * Lead_time) + Stock_seguridad
|
|
|
|
Donde:
|
|
- Demanda_diaria = Demanda_semanal / 7
|
|
- Lead_time = dias para recibir pedido (default: 3)
|
|
- Stock_seguridad = Demanda_diaria * 2
|
|
```
|
|
|
|
### Dias de Inventario
|
|
```
|
|
Dias_inventario = Stock_actual / Demanda_diaria
|
|
```
|
|
|
|
## Endpoints API
|
|
|
|
| Metodo | Endpoint | Descripcion |
|
|
|--------|----------|-------------|
|
|
| GET | /inventory/low-stock | Productos bajo minimo |
|
|
| GET | /inventory/predictions | Predicciones de demanda |
|
|
| GET | /inventory/reorder-suggestions | Sugerencias de pedido |
|
|
| GET | /inventory/slow-moving | Productos sin movimiento |
|
|
| GET | /inventory/days-on-hand | Dias de inventario |
|
|
| GET | /inventory/analytics | Dashboard completo |
|
|
|
|
## Modelo de Datos
|
|
|
|
### Tablas Adicionales
|
|
|
|
**inventory_predictions** (cache)
|
|
- id, product_id, period_start, period_end
|
|
- predicted_demand, confidence
|
|
- calculated_at
|
|
|
|
**reorder_suggestions**
|
|
- id, tenant_id, product_id
|
|
- current_stock, suggested_quantity
|
|
- priority, status, created_at
|
|
|
|
## Flujos de Usuario
|
|
|
|
### Alerta de Stock Bajo
|
|
```
|
|
1. Sistema detecta stock < min_stock
|
|
2. Genera notificacion push
|
|
3. Muestra en dashboard
|
|
4. Dueno revisa y decide
|
|
```
|
|
|
|
### Ver Sugerencias de Pedido
|
|
```
|
|
1. Dueno abre "Sugerencias de compra"
|
|
2. Ve lista ordenada por prioridad
|
|
3. Cada item muestra:
|
|
- Producto
|
|
- Stock actual
|
|
- Cantidad sugerida
|
|
- Proveedor (si conocido)
|
|
4. Puede marcar como "Pedido"
|
|
```
|
|
|
|
### Reporte Semanal
|
|
```
|
|
1. Lunes a las 8am
|
|
2. Sistema genera reporte:
|
|
- Top 10 productos por venta
|
|
- Productos a reordenar
|
|
- Productos sin movimiento
|
|
3. Envia via WhatsApp al dueno
|
|
```
|
|
|
|
## UI Components
|
|
|
|
### InventoryDashboard
|
|
- Grafica de stock vs demanda
|
|
- Lista de alertas
|
|
- Indicadores clave
|
|
|
|
### ReorderList
|
|
- Tabla de sugerencias
|
|
- Filtros por categoria
|
|
- Accion: marcar como pedido
|
|
|
|
## Entregables
|
|
|
|
| Entregable | Estado | Archivo |
|
|
|------------|--------|---------|
|
|
| predictions.service | Pendiente | `services/predictions.service.ts` |
|
|
| inventory.analytics | Pendiente | `modules/inventory/analytics/` |
|
|
| Dashboard FE | Pendiente | `components/inventory/` |
|
|
| Cron jobs | Pendiente | `jobs/inventory.jobs.ts` |
|
|
|
|
## Dependencias
|
|
|
|
### Depende de
|
|
- MCH-003 (Productos)
|
|
- MCH-004 (POS) - historial de ventas
|
|
- MCH-007 (Inventory module base)
|
|
|
|
### Bloquea a
|
|
- MCH-012 (Chat LLM puede consultar predicciones)
|
|
|
|
## Criterios de Aceptacion
|
|
|
|
- [x] Alertas de stock bajo funcionan
|
|
- [x] Predicciones tienen precision >70%
|
|
- [x] Sugerencias de reorden son utiles
|
|
- [x] Productos sin movimiento se detectan
|
|
- [x] Dashboard muestra info clara
|
|
|
|
## Configuracion por Tenant
|
|
|
|
```typescript
|
|
{
|
|
predictions: {
|
|
enabled: true,
|
|
low_stock_threshold: 5,
|
|
lead_time_days: 3,
|
|
safety_stock_days: 2,
|
|
slow_moving_days: 30,
|
|
weekly_report_enabled: true
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
**Ultima actualizacion:** 2026-01-10
|