# US-MGN-005-007-002: Reporte de Movimientos de Stock **RF Asociado:** [RF-MGN-005-003](../../02-modelado/requerimientos-funcionales/mgn-005/RF-MGN-005-003-movimientos-de-stock.md) **Módulo:** MGN-005 - Inventario Básico **Epic:** Reportes de Inventario **Prioridad:** P0 **Story Points:** 2 **Sprint:** Sprint 12 **Estado:** Ready for Development **Fecha:** 2025-11-24 --- ## User Story **Como** usuario de inventario, **Quiero** visualizar historial de movimientos de stock con filtros, **Para** auditar y analizar el flujo de productos. --- ## Descripción Detallada El reporte muestra todos los movimientos de stock con: - Fecha - Producto - Ubicación origen → destino - Cantidad - Tipo de movimiento (entrada, salida, transferencia) - Referencia (picking, ajuste, etc.) - Estado Filtros por fecha, producto, ubicación, tipo. --- ## Criterios de Aceptación ### Escenario 1: Listar movimientos con filtros (Camino Feliz) **Dado que** hay movimientos validados, **Cuando** filtro por producto_id=1 y rango de fechas, **Entonces** el sistema muestra movimientos ordenados por fecha desc. ### Escenario 2: Filtrar por tipo de movimiento **Dado que** filtro por tipo="entrada", **Cuando** genero reporte, **Entonces** el sistema muestra solo movimientos de entrada (supplier → internal). ### Escenario 3: Exportar reporte **Dado que** visualizo movimientos, **Cuando** exporto a Excel, **Entonces** el sistema descarga archivo con todos los movimientos filtrados. --- ## Reglas de Negocio - **RN-1:** Reporte incluye solo movimientos validados (state=done). - **RN-2:** Ordenado por fecha descendente por defecto. - **RN-3:** Exportable a Excel, PDF. --- ## Tareas Técnicas ### Backend - [ ] Endpoint: GET /api/v1/inventory/reports/stock-moves - [ ] Service: ReportService.getStockMovesReport(filters) - [ ] DTO: StockMoveReportFiltersDto - [ ] Export service - [ ] Unit tests - [ ] Integration tests - [ ] Swagger docs ### Frontend - [ ] Componente: StockMovesReportPage.tsx - [ ] Filtros: fecha, producto, ubicación, tipo - [ ] Tabla paginada - [ ] Botón exportar - [ ] API client: reportApi.getStockMoves() - [ ] Component tests - [ ] E2E test ### Database - [ ] View: vw_stock_moves_report - [ ] Índices: idx_stock_moves_date --- ## Estimación Detallada | Tarea | Horas | |-------|-------| | Backend | 1.5 | | Frontend | 1.5 | | Testing | 0.5 | | Code Review | 0.5 | | **TOTAL** | **4 horas = 2 SP** | --- ## Definition of Done - [ ] Código implementado según ET - [ ] Tests pasando (>80%) - [ ] Code review aprobado - [ ] Exportación funciona - [ ] QA validado - [ ] PO aprobado --- ## Referencias - [RF-MGN-005-003](../../02-modelado/requerimientos-funcionales/mgn-005/RF-MGN-005-003-movimientos-de-stock.md) - [Traceability](../../02-modelado/trazabilidad/TRACEABILITY-MGN-005.yaml) - [Schema](../../02-modelado/database-design/schemas/inventory-schema-ddl.sql)