# US-MGN-005-006-001: Valoración de Inventario FIFO **RF Asociado:** [RF-MGN-005-006](../../02-modelado/requerimientos-funcionales/mgn-005/RF-MGN-005-006-valoración-de-inventario-fifo,-promedio.md) **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 --- ## Referencias - [RF-MGN-005-006](../../02-modelado/requerimientos-funcionales/mgn-005/RF-MGN-005-006-valoración-de-inventario-fifo,-promedio.md) - [ET Backend](../../02-modelado/especificaciones-tecnicas/backend/mgn-005/ET-BACKEND-MGN-005-006-valoración-de-inventario-fifo-promedio.md) - [ET Frontend](../../02-modelado/especificaciones-tecnicas/frontend/mgn-005/ET-FRONTEND-MGN-005-006-valoración-de-inventario-fifo-promedio.md) - [Traceability](../../02-modelado/trazabilidad/TRACEABILITY-MGN-005.yaml) - [Schema](../../02-modelado/database-design/schemas/inventory-schema-ddl.sql)