1061 lines
34 KiB
YAML
1061 lines
34 KiB
YAML
# ============================================================================
|
|
# MATRIZ DE TRAZABILIDAD - MAE-010 Tesorería
|
|
# ============================================================================
|
|
# Proyecto: ERP Suite - Construcción
|
|
# Módulo: MAE-010 - Gestión de Tesorería
|
|
# Versión: 1.0.0
|
|
# Última actualización: 2025-12-06
|
|
# ============================================================================
|
|
|
|
metadata:
|
|
module_id: MAE-010
|
|
module_name: Gestión de Tesorería
|
|
vertical: Construcción
|
|
phase: Fase Core Business
|
|
version: 1.0.0
|
|
status: in_design
|
|
last_updated: 2025-12-06
|
|
owner: Equipo Construcción
|
|
|
|
# Métricas de reutilización
|
|
reuse_metrics:
|
|
core_reuse_percentage: 70
|
|
custom_development_percentage: 30
|
|
estimated_effort_reduction: 65
|
|
core_components_used: 12
|
|
custom_components: 5
|
|
|
|
# Dependencias del Core
|
|
core_dependencies:
|
|
- MGN-001 # Gestión de Usuarios
|
|
- MGN-002 # Control de Acceso (RBAC)
|
|
- MGN-003 # Multi-Tenancy
|
|
- MGN-004 # Multi-Empresa
|
|
- MGN-005 # Catálogos
|
|
- MGN-006 # Configuración
|
|
- MGN-007 # Auditoría
|
|
- MGN-008 # Notificaciones
|
|
- MGN-009 # Reportes
|
|
- MGN-010 # Financiero (Core)
|
|
|
|
# ============================================================================
|
|
# REQUERIMIENTOS FUNCIONALES
|
|
# ============================================================================
|
|
|
|
functional_requirements:
|
|
|
|
# --------------------------------------------------------------------------
|
|
# RF-001: Gestión de Bancos
|
|
# --------------------------------------------------------------------------
|
|
- id: RF-MAE-010-001
|
|
name: Gestión de Bancos
|
|
description: Administración completa de cuentas bancarias y entidades financieras
|
|
priority: CRITICAL
|
|
status: pending
|
|
complexity: HIGH
|
|
|
|
business_rules:
|
|
- id: BR-001-001
|
|
description: Cada cuenta bancaria debe estar asociada a una empresa y proyecto
|
|
validation: Validación obligatoria de empresa y proyecto al crear cuenta
|
|
|
|
- id: BR-001-002
|
|
description: Control de saldos en tiempo real por cuenta bancaria
|
|
validation: Actualización automática de saldos con cada transacción
|
|
|
|
- id: BR-001-003
|
|
description: Límites de saldo mínimo y máximo configurables
|
|
validation: Alertas automáticas al exceder límites configurados
|
|
|
|
- id: BR-001-004
|
|
description: Soporte para múltiples monedas por cuenta
|
|
validation: Conversión automática según tipo de cambio del día
|
|
|
|
- id: BR-001-005
|
|
description: Control de cuentas activas/inactivas con bloqueo de transacciones
|
|
validation: Validación de estado antes de permitir movimientos
|
|
|
|
user_stories:
|
|
- id: US-001-001
|
|
title: Registrar nueva cuenta bancaria
|
|
as_a: Gerente Financiero
|
|
i_want: Registrar una nueva cuenta bancaria
|
|
so_that: Pueda gestionar los fondos del proyecto
|
|
acceptance_criteria:
|
|
- Formulario con datos de banco y cuenta
|
|
- Asociación obligatoria a empresa y proyecto
|
|
- Configuración de moneda y saldos iniciales
|
|
- Definición de límites de operación
|
|
- Validación de número de cuenta único
|
|
priority: HIGH
|
|
story_points: 5
|
|
|
|
- id: US-001-002
|
|
title: Consultar saldos bancarios
|
|
as_a: Tesorero
|
|
i_want: Consultar saldos actuales de todas las cuentas
|
|
so_that: Pueda conocer la disponibilidad de efectivo
|
|
acceptance_criteria:
|
|
- Dashboard con saldos por cuenta
|
|
- Filtros por empresa, proyecto y banco
|
|
- Visualización en múltiples monedas
|
|
- Indicadores de alertas por límites
|
|
- Exportación de reportes de saldos
|
|
priority: HIGH
|
|
story_points: 8
|
|
|
|
- id: US-001-003
|
|
title: Configurar límites de cuentas
|
|
as_a: Director Financiero
|
|
i_want: Configurar límites mínimos y máximos por cuenta
|
|
so_that: Pueda controlar el flujo de efectivo automáticamente
|
|
acceptance_criteria:
|
|
- Definición de saldo mínimo requerido
|
|
- Definición de saldo máximo permitido
|
|
- Configuración de alertas por umbrales
|
|
- Notificaciones automáticas a responsables
|
|
- Histórico de cambios en límites
|
|
priority: MEDIUM
|
|
story_points: 5
|
|
|
|
technical_requirements:
|
|
- id: TR-001-001
|
|
description: API REST para gestión CRUD de cuentas bancarias
|
|
component: backend
|
|
technology: NestJS
|
|
core_reuse: true
|
|
core_module: MGN-010
|
|
|
|
- id: TR-001-002
|
|
description: Modelo de datos extendido para cuentas por proyecto
|
|
component: database
|
|
technology: PostgreSQL
|
|
core_reuse: true
|
|
customization: Campos adicionales para proyecto y límites
|
|
|
|
- id: TR-001-003
|
|
description: Servicio de cálculo de saldos en tiempo real
|
|
component: backend
|
|
technology: NestJS + Redis
|
|
core_reuse: true
|
|
core_module: MGN-010
|
|
|
|
- id: TR-001-004
|
|
description: UI para gestión de cuentas bancarias
|
|
component: frontend
|
|
technology: Angular
|
|
core_reuse: true
|
|
customization: Campos específicos de construcción
|
|
|
|
- id: TR-001-005
|
|
description: Sistema de alertas por límites de saldo
|
|
component: backend
|
|
technology: NestJS
|
|
core_reuse: true
|
|
core_module: MGN-008
|
|
|
|
test_cases:
|
|
- id: TC-001-001
|
|
description: Crear cuenta bancaria con datos válidos
|
|
type: functional
|
|
priority: HIGH
|
|
|
|
- id: TC-001-002
|
|
description: Validar unicidad de número de cuenta
|
|
type: functional
|
|
priority: HIGH
|
|
|
|
- id: TC-001-003
|
|
description: Verificar actualización de saldos en tiempo real
|
|
type: functional
|
|
priority: CRITICAL
|
|
|
|
- id: TC-001-004
|
|
description: Probar alertas por límites de saldo
|
|
type: functional
|
|
priority: MEDIUM
|
|
|
|
- id: TC-001-005
|
|
description: Validar conversión de monedas
|
|
type: functional
|
|
priority: HIGH
|
|
|
|
dependencies:
|
|
core_modules:
|
|
- MGN-003 # Multi-Tenancy
|
|
- MGN-004 # Multi-Empresa
|
|
- MGN-005 # Catálogos (bancos, monedas)
|
|
- MGN-008 # Notificaciones
|
|
- MGN-010 # Financiero Core
|
|
custom_modules: []
|
|
external_services:
|
|
- name: Servicio de Tipos de Cambio
|
|
type: API externa
|
|
required: true
|
|
|
|
# --------------------------------------------------------------------------
|
|
# RF-002: Flujo de Efectivo
|
|
# --------------------------------------------------------------------------
|
|
- id: RF-MAE-010-002
|
|
name: Flujo de Efectivo
|
|
description: Proyección y control del flujo de efectivo por proyecto
|
|
priority: CRITICAL
|
|
status: pending
|
|
complexity: VERY_HIGH
|
|
|
|
business_rules:
|
|
- id: BR-002-001
|
|
description: Proyección de flujo basada en estimaciones de obra
|
|
validation: Integración con cronograma y presupuesto de proyecto
|
|
|
|
- id: BR-002-002
|
|
description: Actualización automática con ingresos y egresos reales
|
|
validation: Sincronización con módulos de facturación y pagos
|
|
|
|
- id: BR-002-003
|
|
description: Análisis de variaciones entre flujo proyectado y real
|
|
validation: Cálculo automático de desviaciones y alertas
|
|
|
|
- id: BR-002-004
|
|
description: Proyección multi-período (semanal, mensual, trimestral)
|
|
validation: Configuración flexible de períodos de análisis
|
|
|
|
- id: BR-002-005
|
|
description: Control de flujo negativo con alertas tempranas
|
|
validation: Notificaciones 15 días antes de flujo negativo proyectado
|
|
|
|
user_stories:
|
|
- id: US-002-001
|
|
title: Proyectar flujo de efectivo
|
|
as_a: Gerente de Proyecto
|
|
i_want: Proyectar el flujo de efectivo de mi obra
|
|
so_that: Pueda anticipar necesidades de financiamiento
|
|
acceptance_criteria:
|
|
- Integración con presupuesto del proyecto
|
|
- Definición de ingresos esperados por estimación
|
|
- Programación de egresos por partida
|
|
- Visualización en línea de tiempo
|
|
- Escenarios optimista/realista/pesimista
|
|
priority: CRITICAL
|
|
story_points: 13
|
|
|
|
- id: US-002-002
|
|
title: Monitorear flujo real vs proyectado
|
|
as_a: Director Financiero
|
|
i_want: Comparar el flujo real contra el proyectado
|
|
so_that: Pueda identificar desviaciones y tomar acciones
|
|
acceptance_criteria:
|
|
- Dashboard comparativo real vs proyectado
|
|
- Indicadores de variación por período
|
|
- Análisis de causas de desviación
|
|
- Alertas automáticas por desviaciones >15%
|
|
- Reportes de tendencias
|
|
priority: HIGH
|
|
story_points: 13
|
|
|
|
- id: US-002-003
|
|
title: Simular escenarios de flujo
|
|
as_a: Tesorero
|
|
i_want: Simular diferentes escenarios de flujo de efectivo
|
|
so_that: Pueda planificar estrategias financieras
|
|
acceptance_criteria:
|
|
- Creación de escenarios personalizados
|
|
- Ajuste de variables clave (pagos, cobros, plazos)
|
|
- Comparación entre escenarios
|
|
- Análisis de sensibilidad
|
|
- Exportación de simulaciones
|
|
priority: MEDIUM
|
|
story_points: 8
|
|
|
|
technical_requirements:
|
|
- id: TR-002-001
|
|
description: Motor de proyección de flujo de efectivo
|
|
component: backend
|
|
technology: NestJS
|
|
core_reuse: false
|
|
custom_development: true
|
|
|
|
- id: TR-002-002
|
|
description: Integración con módulo de presupuestos
|
|
component: backend
|
|
technology: NestJS
|
|
core_reuse: true
|
|
core_module: MGN-010
|
|
|
|
- id: TR-002-003
|
|
description: Servicio de análisis de variaciones
|
|
component: backend
|
|
technology: NestJS + Python (Analytics)
|
|
core_reuse: false
|
|
custom_development: true
|
|
|
|
- id: TR-002-004
|
|
description: UI de visualización de flujo de efectivo
|
|
component: frontend
|
|
technology: Angular + Chart.js
|
|
core_reuse: false
|
|
custom_development: true
|
|
|
|
- id: TR-002-005
|
|
description: Sistema de alertas por flujo negativo
|
|
component: backend
|
|
technology: NestJS
|
|
core_reuse: true
|
|
core_module: MGN-008
|
|
|
|
test_cases:
|
|
- id: TC-002-001
|
|
description: Proyectar flujo basado en presupuesto
|
|
type: functional
|
|
priority: CRITICAL
|
|
|
|
- id: TC-002-002
|
|
description: Actualizar flujo con transacciones reales
|
|
type: functional
|
|
priority: CRITICAL
|
|
|
|
- id: TC-002-003
|
|
description: Calcular variaciones real vs proyectado
|
|
type: functional
|
|
priority: HIGH
|
|
|
|
- id: TC-002-004
|
|
description: Generar alertas por flujo negativo
|
|
type: functional
|
|
priority: HIGH
|
|
|
|
- id: TC-002-005
|
|
description: Simular escenarios con diferentes variables
|
|
type: functional
|
|
priority: MEDIUM
|
|
|
|
dependencies:
|
|
core_modules:
|
|
- MGN-008 # Notificaciones
|
|
- MGN-009 # Reportes
|
|
- MGN-010 # Financiero Core
|
|
custom_modules:
|
|
- MAE-007 # Presupuestos
|
|
- MAE-008 # Estimaciones
|
|
external_services: []
|
|
|
|
# --------------------------------------------------------------------------
|
|
# RF-003: Conciliaciones Bancarias
|
|
# --------------------------------------------------------------------------
|
|
- id: RF-MAE-010-003
|
|
name: Conciliaciones Bancarias
|
|
description: Proceso de conciliación automática y manual de movimientos bancarios
|
|
priority: HIGH
|
|
status: pending
|
|
complexity: HIGH
|
|
|
|
business_rules:
|
|
- id: BR-003-001
|
|
description: Conciliación automática por importe y fecha
|
|
validation: Matching automático con tolerancia configurable
|
|
|
|
- id: BR-003-002
|
|
description: Gestión de partidas en tránsito
|
|
validation: Identificación y seguimiento de movimientos pendientes
|
|
|
|
- id: BR-003-003
|
|
description: Control de diferencias por investigar
|
|
validation: Registro y seguimiento de discrepancias
|
|
|
|
- id: BR-003-004
|
|
description: Cierre mensual obligatorio de conciliaciones
|
|
validation: Bloqueo de período anterior al aprobar conciliación
|
|
|
|
- id: BR-003-005
|
|
description: Importación de estados de cuenta bancarios
|
|
validation: Soporte para formatos XML, CSV, PDF
|
|
|
|
user_stories:
|
|
- id: US-003-001
|
|
title: Importar estado de cuenta bancario
|
|
as_a: Contador
|
|
i_want: Importar el estado de cuenta del banco
|
|
so_that: Pueda iniciar el proceso de conciliación
|
|
acceptance_criteria:
|
|
- Importación desde XML, CSV o PDF
|
|
- Mapeo automático de campos
|
|
- Validación de formato y datos
|
|
- Vista previa antes de confirmar
|
|
- Registro de archivo importado
|
|
priority: HIGH
|
|
story_points: 8
|
|
|
|
- id: US-003-002
|
|
title: Conciliar automáticamente movimientos
|
|
as_a: Contador
|
|
i_want: Ejecutar conciliación automática
|
|
so_that: Ahorre tiempo en el proceso de conciliación
|
|
acceptance_criteria:
|
|
- Matching por importe exacto y fecha ±3 días
|
|
- Matching por referencia bancaria
|
|
- Tolerancia configurable de diferencias
|
|
- Reporte de movimientos conciliados
|
|
- Lista de partidas sin conciliar
|
|
priority: HIGH
|
|
story_points: 13
|
|
|
|
- id: US-003-003
|
|
title: Conciliar manualmente movimientos
|
|
as_a: Contador
|
|
i_want: Conciliar manualmente movimientos no automáticos
|
|
so_that: Pueda completar la conciliación del período
|
|
acceptance_criteria:
|
|
- Vista lado a lado: banco vs sistema
|
|
- Selección manual de movimientos a conciliar
|
|
- Registro de notas y observaciones
|
|
- Creación de ajustes contables
|
|
- Confirmación de conciliación
|
|
priority: HIGH
|
|
story_points: 8
|
|
|
|
- id: US-003-004
|
|
title: Cerrar período de conciliación
|
|
as_a: Gerente Financiero
|
|
i_want: Cerrar y aprobar la conciliación mensual
|
|
so_that: Pueda garantizar la integridad de la información
|
|
acceptance_criteria:
|
|
- Validación de conciliación completa
|
|
- Reporte de diferencias pendientes
|
|
- Workflow de aprobación
|
|
- Bloqueo de período conciliado
|
|
- Generación de reporte final
|
|
priority: MEDIUM
|
|
story_points: 5
|
|
|
|
technical_requirements:
|
|
- id: TR-003-001
|
|
description: Servicio de importación de estados de cuenta
|
|
component: backend
|
|
technology: NestJS
|
|
core_reuse: true
|
|
core_module: MGN-010
|
|
|
|
- id: TR-003-002
|
|
description: Motor de conciliación automática
|
|
component: backend
|
|
technology: NestJS + Algoritmos de matching
|
|
core_reuse: true
|
|
core_module: MGN-010
|
|
customization: Reglas específicas de construcción
|
|
|
|
- id: TR-003-003
|
|
description: API para conciliación manual
|
|
component: backend
|
|
technology: NestJS
|
|
core_reuse: true
|
|
core_module: MGN-010
|
|
|
|
- id: TR-003-004
|
|
description: UI de conciliación bancaria
|
|
component: frontend
|
|
technology: Angular
|
|
core_reuse: true
|
|
customization: Vista específica para proyectos
|
|
|
|
- id: TR-003-005
|
|
description: Servicio de cierre y aprobación de conciliaciones
|
|
component: backend
|
|
technology: NestJS
|
|
core_reuse: true
|
|
core_module: MGN-010
|
|
|
|
test_cases:
|
|
- id: TC-003-001
|
|
description: Importar estado de cuenta en formato XML
|
|
type: functional
|
|
priority: HIGH
|
|
|
|
- id: TC-003-002
|
|
description: Conciliar automáticamente por importe exacto
|
|
type: functional
|
|
priority: CRITICAL
|
|
|
|
- id: TC-003-003
|
|
description: Conciliar manualmente con diferencias
|
|
type: functional
|
|
priority: HIGH
|
|
|
|
- id: TC-003-004
|
|
description: Cerrar período con validaciones
|
|
type: functional
|
|
priority: HIGH
|
|
|
|
- id: TC-003-005
|
|
description: Verificar bloqueo de período cerrado
|
|
type: functional
|
|
priority: MEDIUM
|
|
|
|
dependencies:
|
|
core_modules:
|
|
- MGN-007 # Auditoría
|
|
- MGN-010 # Financiero Core
|
|
custom_modules: []
|
|
external_services:
|
|
- name: Parser de documentos PDF
|
|
type: Librería externa
|
|
required: true
|
|
|
|
# --------------------------------------------------------------------------
|
|
# RF-004: Pagos Programados
|
|
# --------------------------------------------------------------------------
|
|
- id: RF-MAE-010-004
|
|
name: Pagos Programados
|
|
description: Gestión y automatización de pagos recurrentes y programados
|
|
priority: HIGH
|
|
status: pending
|
|
complexity: MEDIUM
|
|
|
|
business_rules:
|
|
- id: BR-004-001
|
|
description: Programación de pagos recurrentes (semanales, mensuales)
|
|
validation: Configuración de frecuencia y fechas de ejecución
|
|
|
|
- id: BR-004-002
|
|
description: Aprobación multi-nivel según monto del pago
|
|
validation: Workflow de aprobación configurable por rangos
|
|
|
|
- id: BR-004-003
|
|
description: Generación automática de órdenes de pago
|
|
validation: Creación de documentos según calendario
|
|
|
|
- id: BR-004-004
|
|
description: Control de disponibilidad de fondos antes de ejecutar
|
|
validation: Validación de saldo disponible al momento del pago
|
|
|
|
- id: BR-004-005
|
|
description: Notificaciones previas a ejecución de pagos
|
|
validation: Alertas 24 horas antes del pago programado
|
|
|
|
user_stories:
|
|
- id: US-004-001
|
|
title: Programar pagos recurrentes
|
|
as_a: Tesorero
|
|
i_want: Programar pagos recurrentes
|
|
so_that: Automatice los pagos regulares a proveedores
|
|
acceptance_criteria:
|
|
- Selección de proveedor y concepto
|
|
- Definición de monto y moneda
|
|
- Configuración de frecuencia (semanal/mensual)
|
|
- Definición de cuenta bancaria origen
|
|
- Fecha de inicio y fin de programación
|
|
priority: HIGH
|
|
story_points: 8
|
|
|
|
- id: US-004-002
|
|
title: Aprobar pagos programados
|
|
as_a: Gerente Financiero
|
|
i_want: Aprobar o rechazar pagos programados
|
|
so_that: Pueda mantener control sobre los egresos
|
|
acceptance_criteria:
|
|
- Bandeja de pagos pendientes de aprobación
|
|
- Visualización de detalles del pago
|
|
- Verificación de disponibilidad de fondos
|
|
- Opción de aprobar/rechazar con comentarios
|
|
- Notificación al solicitante
|
|
priority: HIGH
|
|
story_points: 5
|
|
|
|
- id: US-004-003
|
|
title: Ejecutar pagos automáticamente
|
|
as_a: Sistema
|
|
i_want: Ejecutar pagos programados automáticamente
|
|
so_that: Se procesen los pagos en las fechas configuradas
|
|
acceptance_criteria:
|
|
- Job programado que revisa pagos del día
|
|
- Validación de aprobaciones requeridas
|
|
- Verificación de saldo disponible
|
|
- Generación de orden de pago
|
|
- Notificación de ejecución exitosa
|
|
priority: HIGH
|
|
story_points: 8
|
|
|
|
- id: US-004-004
|
|
title: Consultar calendario de pagos
|
|
as_a: Director Financiero
|
|
i_want: Consultar el calendario de pagos programados
|
|
so_that: Pueda planificar la disponibilidad de efectivo
|
|
acceptance_criteria:
|
|
- Vista de calendario mensual
|
|
- Lista de pagos por fecha
|
|
- Filtros por proyecto, proveedor, estado
|
|
- Exportación a Excel
|
|
- Indicadores de alertas por fondos insuficientes
|
|
priority: MEDIUM
|
|
story_points: 5
|
|
|
|
technical_requirements:
|
|
- id: TR-004-001
|
|
description: API para gestión de pagos programados
|
|
component: backend
|
|
technology: NestJS
|
|
core_reuse: true
|
|
core_module: MGN-010
|
|
|
|
- id: TR-004-002
|
|
description: Scheduler para ejecución automática de pagos
|
|
component: backend
|
|
technology: NestJS + Bull Queue
|
|
core_reuse: true
|
|
core_module: MGN-010
|
|
|
|
- id: TR-004-003
|
|
description: Workflow de aprobación de pagos
|
|
component: backend
|
|
technology: NestJS
|
|
core_reuse: true
|
|
core_module: MGN-002
|
|
|
|
- id: TR-004-004
|
|
description: UI de calendario y gestión de pagos
|
|
component: frontend
|
|
technology: Angular + FullCalendar
|
|
core_reuse: true
|
|
customization: Vista específica de construcción
|
|
|
|
- id: TR-004-005
|
|
description: Sistema de notificaciones de pagos
|
|
component: backend
|
|
technology: NestJS
|
|
core_reuse: true
|
|
core_module: MGN-008
|
|
|
|
test_cases:
|
|
- id: TC-004-001
|
|
description: Crear pago programado recurrente
|
|
type: functional
|
|
priority: HIGH
|
|
|
|
- id: TC-004-002
|
|
description: Aprobar pago con workflow multi-nivel
|
|
type: functional
|
|
priority: HIGH
|
|
|
|
- id: TC-004-003
|
|
description: Ejecutar pago automáticamente en fecha programada
|
|
type: functional
|
|
priority: CRITICAL
|
|
|
|
- id: TC-004-004
|
|
description: Validar fondos insuficientes al ejecutar
|
|
type: functional
|
|
priority: HIGH
|
|
|
|
- id: TC-004-005
|
|
description: Generar notificaciones previas a ejecución
|
|
type: functional
|
|
priority: MEDIUM
|
|
|
|
dependencies:
|
|
core_modules:
|
|
- MGN-002 # RBAC (aprobaciones)
|
|
- MGN-008 # Notificaciones
|
|
- MGN-010 # Financiero Core
|
|
custom_modules:
|
|
- MAE-009 # Proveedores
|
|
external_services: []
|
|
|
|
# ============================================================================
|
|
# MATRIZ DE TRAZABILIDAD
|
|
# ============================================================================
|
|
|
|
traceability_matrix:
|
|
|
|
# RF-001: Gestión de Bancos
|
|
- requirement_id: RF-MAE-010-001
|
|
requirement_name: Gestión de Bancos
|
|
business_rules: [BR-001-001, BR-001-002, BR-001-003, BR-001-004, BR-001-005]
|
|
user_stories: [US-001-001, US-001-002, US-001-003]
|
|
technical_requirements: [TR-001-001, TR-001-002, TR-001-003, TR-001-004, TR-001-005]
|
|
test_cases: [TC-001-001, TC-001-002, TC-001-003, TC-001-004, TC-001-005]
|
|
implementation_status: pending
|
|
test_coverage: 0
|
|
|
|
# RF-002: Flujo de Efectivo
|
|
- requirement_id: RF-MAE-010-002
|
|
requirement_name: Flujo de Efectivo
|
|
business_rules: [BR-002-001, BR-002-002, BR-002-003, BR-002-004, BR-002-005]
|
|
user_stories: [US-002-001, US-002-002, US-002-003]
|
|
technical_requirements: [TR-002-001, TR-002-002, TR-002-003, TR-002-004, TR-002-005]
|
|
test_cases: [TC-002-001, TC-002-002, TC-002-003, TC-002-004, TC-002-005]
|
|
implementation_status: pending
|
|
test_coverage: 0
|
|
|
|
# RF-003: Conciliaciones Bancarias
|
|
- requirement_id: RF-MAE-010-003
|
|
requirement_name: Conciliaciones Bancarias
|
|
business_rules: [BR-003-001, BR-003-002, BR-003-003, BR-003-004, BR-003-005]
|
|
user_stories: [US-003-001, US-003-002, US-003-003, US-003-004]
|
|
technical_requirements: [TR-003-001, TR-003-002, TR-003-003, TR-003-004, TR-003-005]
|
|
test_cases: [TC-003-001, TC-003-002, TC-003-003, TC-003-004, TC-003-005]
|
|
implementation_status: pending
|
|
test_coverage: 0
|
|
|
|
# RF-004: Pagos Programados
|
|
- requirement_id: RF-MAE-010-004
|
|
requirement_name: Pagos Programados
|
|
business_rules: [BR-004-001, BR-004-002, BR-004-003, BR-004-004, BR-004-005]
|
|
user_stories: [US-004-001, US-004-002, US-004-003, US-004-004]
|
|
technical_requirements: [TR-004-001, TR-004-002, TR-004-003, TR-004-004, TR-004-005]
|
|
test_cases: [TC-004-001, TC-004-002, TC-004-003, TC-004-004, TC-004-005]
|
|
implementation_status: pending
|
|
test_coverage: 0
|
|
|
|
# ============================================================================
|
|
# COMPONENTES REUTILIZADOS DEL CORE
|
|
# ============================================================================
|
|
|
|
core_components_reused:
|
|
|
|
# Módulo Financiero Core
|
|
- component_id: MGN-010-ACCOUNTS
|
|
component_name: Gestión de Cuentas Bancarias
|
|
core_module: MGN-010
|
|
reuse_percentage: 80
|
|
customization_needed:
|
|
- Asociación a proyectos de construcción
|
|
- Límites de saldo por proyecto
|
|
- Campos específicos de construcción
|
|
|
|
- component_id: MGN-010-TRANSACTIONS
|
|
component_name: Registro de Transacciones Bancarias
|
|
core_module: MGN-010
|
|
reuse_percentage: 90
|
|
customization_needed:
|
|
- Clasificación por tipo de gasto de obra
|
|
|
|
- component_id: MGN-010-RECONCILIATION
|
|
component_name: Motor de Conciliación Bancaria
|
|
core_module: MGN-010
|
|
reuse_percentage: 85
|
|
customization_needed:
|
|
- Reglas de matching específicas
|
|
- Integración con estimaciones
|
|
|
|
- component_id: MGN-010-PAYMENTS
|
|
component_name: Gestión de Pagos
|
|
core_module: MGN-010
|
|
reuse_percentage: 75
|
|
customization_needed:
|
|
- Workflow de aprobación por proyecto
|
|
- Integración con retenciones de obra
|
|
|
|
# Módulo de Notificaciones
|
|
- component_id: MGN-008-ALERTS
|
|
component_name: Sistema de Alertas
|
|
core_module: MGN-008
|
|
reuse_percentage: 100
|
|
customization_needed: []
|
|
|
|
# Módulo de Reportes
|
|
- component_id: MGN-009-FINANCIAL-REPORTS
|
|
component_name: Reportes Financieros
|
|
core_module: MGN-009
|
|
reuse_percentage: 70
|
|
customization_needed:
|
|
- Reportes específicos de flujo de obra
|
|
- Dashboards de tesorería por proyecto
|
|
|
|
# Módulo de Catálogos
|
|
- component_id: MGN-005-BANKS
|
|
component_name: Catálogo de Bancos
|
|
core_module: MGN-005
|
|
reuse_percentage: 100
|
|
customization_needed: []
|
|
|
|
- component_id: MGN-005-CURRENCIES
|
|
component_name: Catálogo de Monedas
|
|
core_module: MGN-005
|
|
reuse_percentage: 100
|
|
customization_needed: []
|
|
|
|
# Módulo de Auditoría
|
|
- component_id: MGN-007-AUDIT-LOG
|
|
component_name: Registro de Auditoría
|
|
core_module: MGN-007
|
|
reuse_percentage: 100
|
|
customization_needed: []
|
|
|
|
# Módulo RBAC
|
|
- component_id: MGN-002-WORKFLOWS
|
|
component_name: Workflows de Aprobación
|
|
core_module: MGN-002
|
|
reuse_percentage: 90
|
|
customization_needed:
|
|
- Niveles de aprobación por monto en construcción
|
|
|
|
# Módulo Multi-Tenancy
|
|
- component_id: MGN-003-TENANT-ISOLATION
|
|
component_name: Aislamiento de Datos
|
|
core_module: MGN-003
|
|
reuse_percentage: 100
|
|
customization_needed: []
|
|
|
|
# Módulo Multi-Empresa
|
|
- component_id: MGN-004-COMPANY-CONTEXT
|
|
component_name: Contexto de Empresa
|
|
core_module: MGN-004
|
|
reuse_percentage: 100
|
|
customization_needed: []
|
|
|
|
# ============================================================================
|
|
# COMPONENTES CUSTOM
|
|
# ============================================================================
|
|
|
|
custom_components:
|
|
|
|
- component_id: MAE-010-CASHFLOW-ENGINE
|
|
component_name: Motor de Proyección de Flujo de Efectivo
|
|
description: Componente específico para proyectar flujo basado en cronograma de obra
|
|
complexity: VERY_HIGH
|
|
estimated_effort: 21 story_points
|
|
technologies:
|
|
- NestJS
|
|
- Python (Analytics)
|
|
- PostgreSQL
|
|
integration_points:
|
|
- MAE-007 # Presupuestos
|
|
- MAE-008 # Estimaciones
|
|
- MAE-003 # Cronograma
|
|
|
|
- component_id: MAE-010-CASHFLOW-UI
|
|
component_name: UI de Visualización de Flujo de Efectivo
|
|
description: Interfaz especializada para análisis de flujo de construcción
|
|
complexity: HIGH
|
|
estimated_effort: 13 story_points
|
|
technologies:
|
|
- Angular
|
|
- Chart.js
|
|
- D3.js
|
|
integration_points:
|
|
- MAE-010-CASHFLOW-ENGINE
|
|
|
|
- component_id: MAE-010-VARIANCE-ANALYSIS
|
|
component_name: Análisis de Variaciones
|
|
description: Componente para análisis de desviaciones real vs proyectado
|
|
complexity: MEDIUM
|
|
estimated_effort: 8 story_points
|
|
technologies:
|
|
- NestJS
|
|
- Python (Pandas)
|
|
integration_points:
|
|
- MAE-010-CASHFLOW-ENGINE
|
|
|
|
- component_id: MAE-010-SCENARIO-SIMULATOR
|
|
component_name: Simulador de Escenarios
|
|
description: Herramienta para simular diferentes escenarios de flujo
|
|
complexity: MEDIUM
|
|
estimated_effort: 8 story_points
|
|
technologies:
|
|
- NestJS
|
|
- Angular
|
|
integration_points:
|
|
- MAE-010-CASHFLOW-ENGINE
|
|
|
|
- component_id: MAE-010-PROJECT-ACCOUNTS
|
|
component_name: Extensión de Cuentas por Proyecto
|
|
description: Lógica específica para manejo de cuentas por proyecto
|
|
complexity: LOW
|
|
estimated_effort: 5 story_points
|
|
technologies:
|
|
- NestJS
|
|
- PostgreSQL
|
|
integration_points:
|
|
- MGN-010 # Financiero Core
|
|
- MAE-001 # Proyectos
|
|
|
|
# ============================================================================
|
|
# PLAN DE IMPLEMENTACIÓN
|
|
# ============================================================================
|
|
|
|
implementation_plan:
|
|
|
|
phases:
|
|
- phase: 1
|
|
name: Configuración Base
|
|
duration_weeks: 2
|
|
requirements:
|
|
- RF-MAE-010-001 # Gestión de Bancos
|
|
components:
|
|
- MAE-010-PROJECT-ACCOUNTS
|
|
- MGN-010-ACCOUNTS (extensión)
|
|
story_points: 18
|
|
|
|
- phase: 2
|
|
name: Pagos y Transacciones
|
|
duration_weeks: 2
|
|
requirements:
|
|
- RF-MAE-010-004 # Pagos Programados
|
|
components:
|
|
- MGN-010-PAYMENTS (extensión)
|
|
- MGN-002-WORKFLOWS (configuración)
|
|
story_points: 21
|
|
|
|
- phase: 3
|
|
name: Conciliación Bancaria
|
|
duration_weeks: 2
|
|
requirements:
|
|
- RF-MAE-010-003 # Conciliaciones Bancarias
|
|
components:
|
|
- MGN-010-RECONCILIATION (extensión)
|
|
story_points: 21
|
|
|
|
- phase: 4
|
|
name: Flujo de Efectivo
|
|
duration_weeks: 4
|
|
requirements:
|
|
- RF-MAE-010-002 # Flujo de Efectivo
|
|
components:
|
|
- MAE-010-CASHFLOW-ENGINE
|
|
- MAE-010-CASHFLOW-UI
|
|
- MAE-010-VARIANCE-ANALYSIS
|
|
- MAE-010-SCENARIO-SIMULATOR
|
|
story_points: 34
|
|
|
|
total_duration_weeks: 10
|
|
total_story_points: 94
|
|
estimated_team_size: 4
|
|
|
|
milestones:
|
|
- milestone: M1
|
|
name: Gestión Básica de Tesorería
|
|
week: 4
|
|
deliverables:
|
|
- Gestión de cuentas bancarias por proyecto
|
|
- Pagos programados funcionales
|
|
- Integraciones con Core completadas
|
|
|
|
- milestone: M2
|
|
name: Conciliación y Control
|
|
week: 6
|
|
deliverables:
|
|
- Conciliación bancaria automática y manual
|
|
- Cierre de períodos
|
|
- Reportes de conciliación
|
|
|
|
- milestone: M3
|
|
name: Análisis de Flujo de Efectivo
|
|
week: 10
|
|
deliverables:
|
|
- Proyección de flujo por proyecto
|
|
- Análisis de variaciones
|
|
- Simulador de escenarios
|
|
- Dashboard completo de tesorería
|
|
|
|
# ============================================================================
|
|
# RIESGOS Y MITIGACIONES
|
|
# ============================================================================
|
|
|
|
risks:
|
|
- id: RISK-001
|
|
description: Complejidad del motor de proyección de flujo
|
|
probability: MEDIUM
|
|
impact: HIGH
|
|
mitigation: |
|
|
- Validar algoritmos con casos reales antes de implementar
|
|
- Considerar solución en fases incrementales
|
|
- Consultar con expertos en construcción
|
|
|
|
- id: RISK-002
|
|
description: Integración con múltiples módulos (presupuesto, estimaciones)
|
|
probability: MEDIUM
|
|
impact: MEDIUM
|
|
mitigation: |
|
|
- Definir contratos de integración claros
|
|
- Implementar mocks para desarrollo paralelo
|
|
- Pruebas de integración continuas
|
|
|
|
- id: RISK-003
|
|
description: Precisión de las proyecciones de flujo
|
|
probability: HIGH
|
|
impact: HIGH
|
|
mitigation: |
|
|
- Calibración con datos históricos
|
|
- Ajustes manuales permitidos
|
|
- Múltiples escenarios (optimista/realista/pesimista)
|
|
|
|
- id: RISK-004
|
|
description: Importación de estados de cuenta en múltiples formatos
|
|
probability: LOW
|
|
impact: MEDIUM
|
|
mitigation: |
|
|
- Comenzar con formatos más comunes (XML, CSV)
|
|
- Validación exhaustiva de parsers
|
|
- Manual de formatos soportados
|
|
|
|
# ============================================================================
|
|
# MÉTRICAS DE ÉXITO
|
|
# ============================================================================
|
|
|
|
success_metrics:
|
|
|
|
technical:
|
|
- metric: Cobertura de pruebas
|
|
target: ">= 80%"
|
|
|
|
- metric: Tiempo de respuesta API
|
|
target: "< 200ms (p95)"
|
|
|
|
- metric: Disponibilidad del servicio
|
|
target: ">= 99.5%"
|
|
|
|
- metric: Tasa de conciliación automática
|
|
target: ">= 85%"
|
|
|
|
business:
|
|
- metric: Precisión de proyección de flujo
|
|
target: "Desviación < 10% vs real"
|
|
|
|
- metric: Tiempo de cierre de conciliación
|
|
target: "< 2 horas por período"
|
|
|
|
- metric: Adopción por usuarios
|
|
target: ">= 90% tesoreros activos"
|
|
|
|
- metric: Reducción de errores manuales
|
|
target: ">= 70%"
|
|
|
|
reuse:
|
|
- metric: Porcentaje de código reutilizado
|
|
target: ">= 70%"
|
|
|
|
- metric: Componentes del core utilizados
|
|
target: ">= 10"
|
|
|
|
- metric: Reducción de tiempo de desarrollo
|
|
target: ">= 60%"
|
|
|
|
# ============================================================================
|
|
# APROBACIONES Y CONTROL DE VERSIONES
|
|
# ============================================================================
|
|
|
|
approvals:
|
|
- role: Product Owner
|
|
name: Pendiente
|
|
date: null
|
|
status: pending
|
|
|
|
- role: Arquitecto de Software
|
|
name: Pendiente
|
|
date: null
|
|
status: pending
|
|
|
|
- role: Tech Lead
|
|
name: Pendiente
|
|
date: null
|
|
status: pending
|
|
|
|
version_history:
|
|
- version: 1.0.0
|
|
date: 2025-12-06
|
|
author: Sistema
|
|
changes:
|
|
- Creación inicial del documento
|
|
- Definición de 4 requerimientos funcionales
|
|
- Especificación de componentes reutilizados (70%)
|
|
- Plan de implementación en 4 fases
|