erp-core/docs/05-user-stories/mgn-008/US-MGN-008-005-001-crud-presupuestos-analiticos.md

2.5 KiB

US-MGN-008-005-001: CRUD Presupuestos Analíticos

RF Asociado: RF-MGN-008-001 Módulo: MGN-008 - Contabilidad Analítica Epic: Presupuestos Analíticos Prioridad: P1 Story Points: 3 Sprint: Sprint 19 Estado: Ready for Development Fecha: 2025-11-24


User Story

Como gerente, Quiero crear presupuestos para cuentas analíticas, Para controlar gastos/ingresos proyectados vs reales.

Descripción Detallada

Presupuesto analítico define montos proyectados por:

  • Cuenta analítica (ej: Proyecto A)
  • Período (mensual, trimestral, anual)
  • Tipo (ingresos, gastos)

Ejemplo:

  • Proyecto A, Q1-2024: Presupuesto Ingresos $100K, Gastos $60K

Criterios de Aceptación

Escenario 1: Crear presupuesto

Dado que Proyecto A existe, Cuando creo presupuesto: account_id=Proyecto-A, period=Q1-2024, budget_revenue=100K, budget_expense=60K, Entonces sistema crea presupuesto exitosamente.

Escenario 2: Presupuesto único por cuenta/período

Dado que ya existe presupuesto para Proyecto-A Q1-2024, Cuando intento crear otro, Entonces error 400 "Ya existe presupuesto para esta cuenta y período".

Escenario 3: Actualizar presupuesto

Dado que presupuesto existe, Cuando actualizo budget_expense=70K, Entonces sistema actualiza y registra en audit_log.

Reglas de Negocio

  • RN-1: Presupuesto único por cuenta + período.
  • RN-2: Puede ser por mes, trimestre o año.
  • RN-3: budget_revenue y budget_expense son opcionales (pueden ser 0).

Tareas Técnicas

Backend

  • Endpoint: POST/GET/PUT/DELETE /api/v1/analytics/budgets
  • Service: AnalyticalBudgetService (CRUD)
  • Validar unicidad cuenta+período
  • Unit tests

Frontend

  • Página: AnalyticalBudgetsPage.tsx
  • Formulario CRUD
  • Selector de período
  • Component tests

Database

  • Tabla: analytics.budgets (account_id, period_start, period_end, budget_revenue, budget_expense)
  • Constraint: unique(account_id, period_start, period_end)

Estimación Detallada

Tarea Horas
Backend 1.5
Frontend 1.5
Testing 1
TOTAL 4 horas = 3 SP

Definition of Done

  • CRUD completo
  • Validaciones aplicadas
  • Tests >80%
  • QA/PO aprobado

Referencias