erp-core/docs/05-user-stories/mgn-008/US-MGN-008-001-002-configurar-dimensiones-multi-nivel.md

3.3 KiB
Raw Blame History

US-MGN-008-001-002: Configurar Dimensiones Multi-nivel

RF Asociado: RF-MGN-008-001 Módulo: MGN-008 - Contabilidad Analítica Epic: Cuentas Analíticas Prioridad: P1 Story Points: 5 Sprint: Sprint 18 Estado: Ready for Development Fecha: 2025-11-24


User Story

Como contador, Quiero configurar distribuciones analíticas con múltiples dimensiones simultáneas, Para analizar transacciones por proyecto × departamento × categoría en paralelo.


Descripción Detallada

Permite asignar múltiples planes analíticos a una misma transacción:

  • Proyecto: "Desarrollo App Mobile"
  • Departamento: "IT"
  • Categoría: "Desarrollo"

Cada asiento contable puede tener distribución en N dimensiones simultáneas.


Criterios de Aceptación

Escenario 1: Asignar múltiples dimensiones a transacción

Dado que asiento contable tiene línea con amount=1000, Cuando asigno distribución: plan_proyectos=Proj-A (100%), plan_departamentos=IT (100%), Entonces sistema crea 2 líneas analíticas independientes.

Escenario 2: Validar porcentajes suman 100% por plan

Dado que línea tiene plan_proyectos con Proj-A (60%), Proj-B (30%), Cuando intento guardar, Entonces sistema retorna error 400 "Distribución del plan Proyectos debe sumar 100% (actualmente 90%)".

Escenario 3: Distribución automática por defecto

Dado que cuenta contable tiene configuración: "plan_departamentos=IT por defecto", Cuando creo asiento en esa cuenta sin especificar dimensión, Entonces sistema aplica IT automáticamente.

Escenario 4: Reporte multi-dimensional

Dado que transacciones tienen 2 dimensiones (Proyecto × Departamento), Cuando genero reporte P&L por Proyecto × Departamento, Entonces veo matriz: proyectos en filas, departamentos en columnas.


Reglas de Negocio

  • RN-1: Una transacción puede tener N planes analíticos.
  • RN-2: Cada plan debe sumar 100% de distribución.
  • RN-3: Planes son independientes entre sí.
  • RN-4: Configuración por defecto en cuenta contable.

Tareas Técnicas

Backend

  • Service: AnalyticalDistributionService.validate(lines, amount)
  • Service: AnalyticalDistributionService.apply DefaultDistribution(account)
  • Validar suma 100% por plan
  • Unit tests (>80%)
  • Integration tests

Frontend

  • Componente: MultiDimensionalDistributionForm.tsx
  • Tabla: Plan × Cuenta × Percentage
  • Validación en tiempo real
  • Component tests

Database

  • Tabla: analytics.distribution_lines (plan_id, account_id, percentage)
  • Check constraint: percentage <= 100

Estimación Detallada

Tarea Horas
Backend 2.5
Frontend 2.5
Testing 1.5
TOTAL 6.5 horas = 5 SP

Definition of Done

  • Multi-dimensión funcional
  • Validaciones correctas
  • Tests pasando (>80%)
  • QA validado
  • PO aprobado

Referencias