# US-MGN-008-004-001: Reporte P&L por Proyecto/Departamento/Categoría

**RF Asociado:** [RF-MGN-008-005](../../02-modelado/requerimientos-funcionales/mgn-008/RF-MGN-008-005-reportes-analíticos-p&l-por-proyecto.md)
**Módulo:** MGN-008 - Contabilidad Analítica
**Epic:** Reportes Analíticos
**Prioridad:** P0
**Story Points:** 5
**Sprint:** Sprint 19
**Estado:** Ready for Development
**Fecha:** 2025-11-24

---

## User Story
**Como** gerente, **Quiero** ver reportes P&L segmentados por dimensiones analíticas, **Para** analizar rentabilidad por proyecto/departamento.

## Descripción Detallada
Reporte P&L analítico muestra:
- Ingresos por cuenta analítica
- Gastos por cuenta analítica
- Utilidad/Pérdida neta
- Filtros: Plan, Cuenta, Período

Formato:
```
Proyecto A:
  Ingresos: $50,000
  Gastos: $30,000
  Utilidad: $20,000 (40% margen)
```

## Criterios de Aceptación

### Escenario 1: Reporte por proyecto
**Dado que** Proyecto A tiene ingresos $50K, gastos $30K,
**Cuando** genero P&L por proyecto,
**Entonces** veo: Ingresos $50K, Gastos $30K, Utilidad $20K.

### Escenario 2: Filtrar por período
**Dado que** selecciono período Q1-2024,
**Cuando** genero reporte,
**Entonces** solo muestra transacciones de Q1-2024.

### Escenario 3: Comparar proyectos
**Dado que** genero reporte para todos los proyectos,
**Cuando** veo resultado,
**Entonces** tabla muestra todos los proyectos con sus P&L side-by-side.

### Escenario 4: Drill-down
**Dado que** veo Proyecto A con $30K gastos,
**Cuando** hago clic en "Gastos",
**Entonces** veo detalle de líneas contables que componen los $30K.

## Reglas de Negocio
- **RN-1:** Ingresos = cuentas 4.x.x (credit)
- **RN-2:** Gastos = cuentas 6.x.x (debit)
- **RN-3:** Utilidad = Ingresos - Gastos
- **RN-4:** Filtra por período y plan

## Tareas Técnicas

### Backend
- [ ] Endpoint: `GET /api/v1/analytics/reports/pl?plan_id&account_id&date_from&date_to`
- [ ] Service: `AnalyticalReportService.getPL(filters)`
- [ ] Query: Agregar ingresos/gastos por cuenta analítica
- [ ] Query: Calcular utilidad
- [ ] Unit tests

### Frontend
- [ ] Página: `AnalyticalPLReportPage.tsx`
- [ ] Filtros: Plan, Cuenta, Período
- [ ] Tabla: P&L con drill-down
- [ ] Gráfico: Barras de ingresos/gastos/utilidad
- [ ] Export Excel/PDF

### Database
- [ ] View: `analytics_pl_report` (optimización)

## Estimación Detallada
| Tarea | Horas |
|-------|-------|
| Backend | 2 |
| Frontend | 2.5 |
| Testing | 1.5 |
| **TOTAL** | **6 horas = 5 SP** |

## Definition of Done
- [ ] Reporte P&L funcional
- [ ] Filtros aplican correctamente
- [ ] Drill-down funciona
- [ ] Tests >80%
- [ ] QA/PO aprobado

## Referencias
- [RF-MGN-008-005](../../02-modelado/requerimientos-funcionales/mgn-008/RF-MGN-008-005-reportes-analíticos-p&l-por-proyecto.md)
