3.7 KiB
US-MGN-005-006-001: Valoración de Inventario FIFO
RF Asociado: RF-MGN-005-006 Módulo: MGN-005 - Inventario Básico Epic: Valoración de Inventario Prioridad: P0 Story Points: 8 Sprint: Sprint 11 Estado: Ready for Development Fecha: 2025-11-24
User Story
Como usuario financiero, Quiero que el sistema calcule la valoración de inventario usando método FIFO (First In, First Out), Para cumplir con normas contables y conocer el valor del stock.
Descripción Detallada
El método FIFO valora el inventario asumiendo que las primeras unidades que entraron son las primeras en salir.
El sistema mantiene capas de valoración (stock_valuation_layers) con:
- Fecha de entrada
- Cantidad
- Costo unitario
- Valor total
Al consumir stock, se descuentan las capas más antiguas primero. El valor del stock final es la suma de las capas restantes.
Criterios de Aceptación
Escenario 1: Crear capa de valoración en entrada (Camino Feliz)
Dado que recibo 10 unidades de Producto A a $100 c/u, Cuando valido el movimiento de entrada, Entonces el sistema crea capa: qty=10, unit_cost=100, value=1000, date=hoy.
Escenario 2: Consumir stock FIFO
Dado que tengo capas: [Capa1: qty=10, cost=100, date=2024-01-01], [Capa2: qty=5, cost=110, date=2024-01-05], Cuando consumo 12 unidades, Entonces el sistema consume: 10 de Capa1 (costo=1000), 2 de Capa2 (costo=220), costo total=1220.
Escenario 3: Calcular valor de inventario
Dado que tras consumir quedan: [Capa2: qty=3, cost=110], Cuando consulto valoración, Entonces el sistema retorna valor_inventario=330 (3×110).
Reglas de Negocio
- RN-1: FIFO consume capas más antiguas primero.
- RN-2: Cada movimiento de entrada crea una nueva capa.
- RN-3: Cada movimiento de salida consume capas existentes.
- RN-4: Capas vacías (qty=0) se marcan como consumed.
Tareas Técnicas
Backend
- Service: ValuationService.createLayer(stockMove)
- Service: ValuationService.consumeLayers(stockMove)
- Service: ValuationService.calculateFIFOCost(product, quantity)
- Service: ValuationService.getInventoryValue(productId)
- Algoritmo FIFO consumption
- Unit tests (>80%)
- Integration tests
- Swagger docs
Frontend
- Componente: ValuationReport.tsx
- Tabla de capas de valoración
- Gráfico evolución de valor
- API client: valuationApi
- Component tests
- E2E test
Database
- Tabla: inventory.stock_valuation_layers
- Índices: idx_valuation_layers_product_date
- RLS policy: company_isolation
Estimación Detallada
| Tarea | Horas |
|---|---|
| Backend | 5 |
| Frontend | 3 |
| Testing | 3 |
| Code Review | 1 |
| TOTAL | 12 horas = 8 SP |
Definition of Done
- Código implementado según ET
- Tests pasando (>80%)
- Code review aprobado
- Algoritmo FIFO correctamente implementado
- QA validado
- PO aprobado