2.4 KiB
2.4 KiB
US-MGN-008-002-002: Gestionar Jerarquía de Cuentas Analíticas
RF Asociado: RF-MGN-008-001 Módulo: MGN-008 - Contabilidad Analítica Epic: Cuentas Analíticas Prioridad: P1 Story Points: 2 Sprint: Sprint 18 Estado: Ready for Development Fecha: 2025-11-24
User Story
Como contador, Quiero organizar cuentas analíticas en jerarquías (padre-hijo), Para consolidar análisis por niveles.
Descripción Detallada
Jerarquía permite:
- Proyecto → Subproyectos → Tareas
- Departamento → Sub-departamentos
- Consolidación automática de cifras
Ejemplo:
Proyecto A (parent)
├── Subproy A.1 (child)
└── Subproy A.2 (child)
Criterios de Aceptación
Escenario 1: Crear cuenta con parent
Dado que cuenta "Proyecto A" existe, Cuando creo cuenta "Subproy A.1" con parent_id="Proyecto A", Entonces sistema crea jerarquía padre-hijo.
Escenario 2: No permitir ciclos
Dado que Cuenta A es hijo de B, Cuando intento hacer B hijo de A, Entonces error 400 "Ciclo detectado en jerarquía".
Escenario 3: Consolidar totales
Dado que Subproy A.1 tiene $1000, A.2 tiene $500, Cuando consulto Proyecto A, Entonces total consolidado = $1500.
Reglas de Negocio
- RN-1: parent_id debe ser del mismo plan.
- RN-2: No se permiten ciclos.
- RN-3: Consolidación automática en reportes.
Tareas Técnicas
Backend
- Validar parent_id mismo plan
- Validar no ciclos (recursión)
- Service:
AnalyticalAccountService.getHierarchy(accountId) - Service:
AnalyticalAccountService.getConsolidated(accountId)
Frontend
- Componente:
AccountHierarchyTree.tsx(árbol visual) - Drag & drop para reasignar padres
- Vista consolidada
Database
- Self-FK: parent_id → accounts.id
- Check constraint: parent_id != id
Estimación Detallada
| Tarea | Horas |
|---|---|
| Backend | 1 |
| Frontend | 1 |
| Testing | 0.5 |
| TOTAL | 2.5 horas = 2 SP |
Definition of Done
- Jerarquía funcional
- No ciclos validados
- Consolidación correcta
- QA/PO aprobado