erp-construccion/docs/02-definicion-modulos/MAI-008-estimaciones-facturacion/_MAP.md

7.6 KiB
Raw Blame History

_MAP: MAI-008 - Estimaciones y Facturación

Épica: MAI-008 Nombre: Estimaciones y Facturación Fase: 1 - Alcance Inicial Presupuesto: $25,000 MXN Story Points: 45 SP Estado: 📝 A crear Sprint: Sprint 5-6 (Semanas 9-12) Última actualización: 2025-11-17 Prioridad: P1


📋 Propósito

Gestión completa de estimaciones de obra hacia clientes (INFONAVIT/fideicomiso) y hacia subcontratistas/proveedores:

  • Estimaciones de obra ejecutada (volúmenes, importes)
  • Control de anticipos, amortizaciones y retenciones
  • Estimaciones a subcontratistas vinculadas a avances
  • Generación de reportes y documentos para revisión/firma
  • Control de estatus y pagos

Integración clave: Se vincula estrechamente con Control de Obra (MAI-005), Presupuestos (MAI-003), Contratos (MAI-012) y Finanzas (MAE-014).


📁 Contenido

Requerimientos Funcionales (Estimados: 5)

ID Título Estado
RF-EST-001 Estimaciones hacia cliente (INFONAVIT/fideicomiso) 📝 A crear
RF-EST-002 Estimaciones hacia subcontratistas y proveedores 📝 A crear
RF-EST-003 Control de anticipos, amortizaciones y retenciones 📝 A crear
RF-EST-004 Generación de documentos y exportables (PDF/Excel) 📝 A crear
RF-EST-005 Workflow de autorización y estatus de estimaciones 📝 A crear

Especificaciones Técnicas (Estimadas: 5)

ID Título RF Estado
ET-EST-001 Modelo de datos de estimaciones RF-EST-001 📝 A crear
ET-EST-002 Cálculo de volúmenes y montos RF-EST-001, RF-EST-002 📝 A crear
ET-EST-003 Sistema de anticipos y retenciones RF-EST-003 📝 A crear
ET-EST-004 Generación de reportes PDF/Excel RF-EST-004 📝 A crear
ET-EST-005 Workflow de estados (borrador → autorizada → pagada) RF-EST-005 📝 A crear

Historias de Usuario (Estimadas: 9)

ID Título SP Estado
US-EST-001 Crear estimación hacia cliente desde avances 5 📝 A crear
US-EST-002 Crear estimación a subcontratista 5 📝 A crear
US-EST-003 Aplicar anticipos y amortizaciones 5 📝 A crear
US-EST-004 Aplicar retenciones y garantías 3 📝 A crear
US-EST-005 Generar reporte de estimación en PDF 5 📝 A crear
US-EST-006 Exportar estimación a Excel 3 📝 A crear
US-EST-007 Workflow de autorización de estimación 5 📝 A crear
US-EST-008 Registrar pago de estimación 5 📝 A crear
US-EST-009 Dashboard de estimaciones y pagos 5 📝 A crear

Total Story Points: 45 SP

Implementación

📊 Inventarios de trazabilidad:

Pruebas

📋 Documentación de testing:


🔗 Referencias

  • README: README.md - Descripción detallada de la épica
  • Fase 1: ../README.md - Información de la fase completa
  • Módulo relacionado MVP: Módulo 7 - Estimaciones y Facturación (MVP-APP.md)

📊 Métricas

Métrica Valor
Presupuesto estimado $25,000 MXN
Story Points estimados 45 SP
Duración estimada 9 días
Reutilización GAMILIT 5% (funcionalidad nueva)
RF a implementar 5/5
ET a implementar 5/5
US a completar 9/9

🎯 Módulos Afectados

Base de Datos

  • Schema: estimations
  • Tablas principales:
    • estimations - Estimaciones (hacia cliente y hacia subcontratistas)
    • estimation_items - Detalle de partidas por estimación
    • estimation_payments - Pagos de estimaciones
    • retentions - Retenciones por estimación
    • advances - Anticipos y amortizaciones
  • ENUMs:
    • estimation_type (to_client, to_subcontractor)
    • estimation_status (draft, submitted, reviewed, authorized, paid, rejected)
    • retention_type (performance_bond, warranty, tax, other)

Backend

  • Módulo: estimations
  • Path: apps/backend/src/modules/estimations/
  • Services: EstimationService, EstimationCalculator, RetentionService, AdvanceService
  • Controllers: EstimationController, EstimationReportController
  • Middlewares: EstimationAuthGuard, ProjectAccessGuard

Frontend

  • Features: estimations, estimation-reports
  • Path: apps/frontend/src/features/estimations/
  • Componentes:
    • EstimationList
    • EstimationForm (create/edit)
    • EstimationDetail
    • AdvancesManager
    • RetentionsManager
    • EstimationWorkflow
    • EstimationReportViewer
    • EstimationDashboard
  • Stores: estimationStore, advanceStore, retentionStore

🔄 Flujo de Trabajo de Estimaciones

Hacia Cliente (INFONAVIT/Fideicomiso)

  1. Captura de avances → Control de Obra registra avances físicos
  2. Generación de estimación → Se crea borrador desde avances acumulados
  3. Revisión interna → Ingeniero revisa volúmenes y montos
  4. Aplicación de retenciones → Se aplican retenciones (5%, fondo de garantía, etc.)
  5. Amortización de anticipos → Se amortiza anticipo si aplica
  6. Autorización → Director/Finanzas autoriza
  7. Envío a cliente → Se genera PDF/Excel y se envía
  8. Pago → Se registra pago recibido

Hacia Subcontratista/Proveedor

  1. Avance de subcontrato → Residente verifica avance en campo
  2. Generación de estimación → Subcontratista genera o se crea desde avances
  3. Revisión → Residente/Ingeniero verifica volúmenes
  4. Retenciones → Se aplica retención (10% típico)
  5. Autorización → Finanzas autoriza pago
  6. Programación de pago → Se agenda pago según calendario
  7. Pago → Se ejecuta pago

💡 Casos de Uso Clave

Estimación a INFONAVIT

Contexto: Constructora con contrato de 100 viviendas a $500K c/u = $50M

  • Anticipo: 20% = $10M (recibido al inicio)
  • Amortización: 25% por estimación
  • Retención: 5% fondo de garantía

Flujo:

  1. Se completan 25 viviendas (25% avance)
  2. Monto bruto estimación: 25 × $500K = $12.5M
  3. Menos amortización anticipo (25% × $10M): -$2.5M
  4. Menos retención 5%: -$0.625M
  5. Pago neto: $9.375M

Estimación a Subcontratista de Plomería

Contexto: Subcontrato de plomería por $2M en 100 viviendas

  • Anticipo: 10% = $200K (ya pagado)
  • Retención: 10%

Flujo:

  1. Subcontratista completa 30 viviendas (30% avance)
  2. Monto bruto: 30% × $2M = $600K
  3. Menos amortización anticipo (30% × $200K): -$60K
  4. Menos retención 10%: -$60K
  5. Pago neto: $480K

🚨 Puntos Críticos

  1. Cálculo preciso: Errores en cálculo de amortizaciones/retenciones → problemas de flujo de caja
  2. Trazabilidad: Cada estimación debe estar respaldada por avances verificados
  3. Workflow estricto: No se puede pagar sin autorización
  4. Integración con finanzas: Módulo MAE-014 consumirá estos datos para cuentas por cobrar/pagar
  5. Reportes auditables: INFONAVIT y auditores piden trazabilidad completa

🎯 Siguiente Paso

Crear documentación de requerimientos y especificaciones técnicas del módulo.


Generado: 2025-11-17 Mantenedores: @tech-lead @backend-team @frontend-team @database-team Estado: 📝 A crear