# US-MGN-006-005-001: Dashboard de Compras **RF Asociado:** [RF-MGN-006-006](../../02-modelado/requerimientos-funcionales/mgn-006/RF-MGN-006-006-reportes-de-compras.md) **Módulo:** MGN-006 - Compras Básico **Epic:** Reportes de Compras **Prioridad:** P1 **Story Points:** 3 **Sprint:** Sprint 15 **Estado:** Ready for Development **Fecha:** 2025-11-24 --- ## User Story **Como** gerente de compras, **Quiero** visualizar dashboard con métricas clave de compras, **Para** monitorear KPIs y tomar decisiones informadas. --- ## Descripción Detallada Dashboard muestra: - Total de PO por estado (draft, purchase, done, cancelled) - Monto total de compras (mes actual, acumulado año) - Top 10 proveedores por volumen - PO próximas a vencer - Recepciones pendientes - Tasa de devoluciones Gráficos: barras, líneas, pie charts. --- ## Criterios de Aceptación ### Escenario 1: Visualizar dashboard con métricas (Camino Feliz) **Dado que** hay PO y recepciones en el sistema, **Cuando** accedo al dashboard, **Entonces** veo: total PO por estado, monto compras mes, top proveedores, gráficos. ### Escenario 2: Filtrar por rango de fechas **Dado que** selecciono rango 2024-01-01 a 2024-03-31, **Cuando** aplico filtro, **Entonces** dashboard muestra métricas solo de ese período. ### Escenario 3: Drill-down en métricas **Dado que** hago clic en "PO en estado draft (5)", **Cuando** sistema procesa, **Entonces** navego a lista de PO filtradas por estado draft. --- ## Reglas de Negocio - **RN-1:** Métricas en tiempo real. - **RN-2:** Filtros: fecha, proveedor, estado. - **RN-3:** Drill-down a detalle. --- ## Tareas Técnicas ### Backend - [ ] Endpoint: GET /api/v1/purchase/reports/dashboard - [ ] Service: PurchaseReportService.getDashboard(filters) - [ ] Queries agregadas optimizadas - [ ] Caché de métricas (5 min) - [ ] Unit tests - [ ] Integration tests - [ ] Swagger docs ### Frontend - [ ] Página: PurchaseDashboardPage.tsx - [ ] Componentes: MetricCard, Chart (recharts) - [ ] Filtros: fecha, proveedor - [ ] API client: purchaseReportApi.getDashboard() - [ ] Component tests - [ ] E2E test ### Database - [ ] Views materializadas para métricas - [ ] Índices optimizados --- ## Estimación Detallada | Tarea | Horas | |-------|-------| | Backend | 2 | | Frontend | 2.5 | | Testing | 1 | | Code Review | 0.5 | | **TOTAL** | **6 horas = 3 SP** | --- ## Definition of Done - [ ] Código implementado según ET - [ ] Tests pasando (>80%) - [ ] Code review aprobado - [ ] Métricas correctas - [ ] Gráficos funcionan - [ ] QA validado - [ ] PO aprobado --- ## Referencias - [RF-MGN-006-006](../../02-modelado/requerimientos-funcionales/mgn-006/RF-MGN-006-006-reportes-de-compras.md) - [Traceability](../../02-modelado/trazabilidad/TRACEABILITY-MGN-006.yaml)