# US-MGN-008-002-002: Gestionar Jerarquía de Cuentas Analíticas **RF Asociado:** [RF-MGN-008-001](../../02-modelado/requerimientos-funcionales/mgn-008/RF-MGN-008-001-gestión-de-cuentas-analíticas.md) **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 ## Referencias - [RF-MGN-008-001](../../02-modelado/requerimientos-funcionales/mgn-008/RF-MGN-008-001-gestión-de-cuentas-analíticas.md)