erp-construccion/docs/02-definicion-modulos/MAI-008-estimaciones-facturacion/requerimientos/RF-EST-002-estimaciones-subcontratistas.md

6.9 KiB
Raw Permalink Blame History

RF-EST-002: Estimaciones hacia Subcontratistas

ID: RF-EST-002
Módulo: MAI-008
Prioridad: Alta
Story Points: 13 SP


📋 Descripción

Sistema para generar y gestionar estimaciones de pago a subcontratistas y proveedores basadas en avances físicos de subcontratos, con control de anticipos, retenciones y calendario de pagos.


🎯 Objetivos

  1. Generar estimaciones desde avances de subcontratos verificados
  2. Calcular automáticamente amortizaciones y retenciones según subcontrato
  3. Workflow de autorización adaptado a subcontratistas
  4. Control de calendario de pagos programados
  5. Portal para que subcontratistas vean estatus

📐 Reglas de Negocio

RN-SUB-001: Cálculo de Monto Bruto

// Por porcentaje de avance
monto_bruto = monto_subcontrato × (porcentaje_avance / 100)

// O por partidas
monto_bruto = Σ(partidas_ejecutadas × precio_unitario)

Validaciones:

  • Avance físico verificado por residente
  • No exceder monto total del subcontrato
  • Validar contra calendario de obra pactado

RN-SUB-002: Amortización de Anticipo

// Típico: Anticipo 10-20%
anticipo_inicial = monto_subcontrato × (porcentaje_anticipo / 100)

// Amortización proporcional al avance
amortizacion = min(
  saldo_anticipo,
  (porcentaje_avance / 100) × anticipo_inicial
)

Ejemplo:

  • Subcontrato plomería: $2,000,000
  • Anticipo 10%: $200,000
  • Avance 30%: Amortiza 30% × $200,000 = $60,000

RN-SUB-003: Retenciones

base_retenciones = monto_bruto - amortizacion

retenciones = {
  fondo_garantia: base_retenciones × 0.10,  // 10% típico
  fianza_cumplimiento: base_retenciones × (tasa_fianza / 100) || 0,
  otras: monto_especificado || 0
}

total_retenciones = Σ(retenciones)

Reglas:

  • Retención típica: 10% (más alta que a cliente)
  • Se liberan al finiquitar y cumplir garantías
  • Retención máxima: Configurable por subcontrato

RN-SUB-004: Numeración

EST-[PROYECTO]-[SUBCONTRATO]-[AÑO]-[CONSECUTIVO]

Ejemplo:
- EST-PRJ001-SUB-PLOM-2025-001
- EST-PRJ001-SUB-PLOM-2025-002

RN-SUB-005: Calendario de Pagos

// Fecha programada según términos
fecha_pago_programada = fecha_autorizacion + dias_pago_contrato

// Ejemplo: Pago a 30 días
fecha_autorizacion = 2025-11-20
fecha_pago_programada = 2025-12-20

Alertas:

  • 5 días antes: Alerta a finanzas
  • Día de vencimiento: Notificación urgente
  • Pasado vencimiento: Alerta a director + subcontratista

🏛️ Estructura de Datos

Estimación a Subcontratista

interface EstimacionSubcontratista {
  id: string;
  numero: string;
  
  // Relaciones
  proyectoId: string;
  subcontratoId: string;
  subcontratistaId: string;
  
  // Periodo y avance
  periodoInicio: Date;
  periodoFin: Date;
  numeroEstimacion: number;
  porcentajeAvanceFisico: number;
  porcentajeAvanceAcumulado: number;
  
  // Montos
  montoBruto: number;
  amortizacionAnticipo: number;
  totalRetenciones: number;
  montoNeto: number;
  
  // Retenciones específicas
  retencionFondoGarantia: number;
  retencionFianza: number;
  
  // Estado y pagos
  status: EstimationStatus;
  fechaProgramadaPago: Date;
  fechaPagoReal: Date;
  referenciaPago: string;
  
  // Workflow
  verificadoPorResidente: boolean;
  verificadorId: string;
  autorizadoPorFinanzas: boolean;
  autorizadorId: string;
  
  observaciones: string;
  documentos: string[];
}

🔄 Estados del Workflow

Borrador → Enviada por Subcontratista
  → Verificada por Residente
  → Revisada por Ingeniero
  → Autorizada por Finanzas
  → Programada para Pago
  → Pagada

Diferencias vs estimación a cliente:

  • Requiere verificación física por residente
  • Finanzas programa fecha de pago
  • Subcontratista puede ver estatus en portal

📊 Casos de Uso

CU-001: Subcontratista Genera Estimación

Actor: Subcontratista (Usuario Externo)

Flujo:

  1. Subcontratista accede a portal con credenciales
  2. Selecciona su subcontrato activo
  3. Indica avance físico alcanzado (%)
  4. Carga evidencias (fotos, reportes)
  5. Sistema calcula monto neto preliminar
  6. Subcontratista envía a revisión
  7. Sistema notifica a residente

CU-002: Residente Verifica Avance

Actor: Residente de Obra

Flujo:

  1. Residente recibe notificación de estimación pendiente
  2. Accede a detalle de estimación
  3. Revisa evidencias cargadas
  4. Verifica avance físico en campo
  5. Confirma o ajusta porcentaje de avance
  6. Sistema recalcula montos si hubo ajuste
  7. Residente autoriza y envía a ingeniero

CU-003: Programar Pago

Actor: Finanzas

Flujo:

  1. Finanzas revisa estimaciones autorizadas
  2. Valida disponibilidad de flujo de caja
  3. Programa fecha de pago
  4. Sistema genera orden de pago
  5. Registra en calendario de flujo de caja
  6. Notifica a subcontratista fecha programada

🧮 Ejemplo Completo

Contexto

  • Subcontrato: Instalaciones eléctricas
  • Monto: $3,000,000 MXN
  • Anticipo: 15% = $450,000 (ya pagado)
  • Retención: 10% fondo garantía
  • Plazo de pago: 30 días

Estimación 1 - Avance 25%

Monto bruto:
  $3,000,000 × 25% = $750,000

Amortización anticipo:
  25% × $450,000 = $112,500
  Saldo anticipo: $450,000 - $112,500 = $337,500

Base retenciones:
  $750,000 - $112,500 = $637,500

Retención 10%:
  $637,500 × 10% = $63,750
  Acumulado retenciones: $63,750

Monto neto a pagar:
  $750,000 - $112,500 - $63,750 = $573,750

Fecha autorización: 2025-11-20
Fecha programada pago: 2025-12-20 (30 días)

Estimación 2 - Avance adicional 30% (55% acumulado)

Monto bruto nuevo trabajo:
  $3,000,000 × 30% = $900,000

Amortización:
  30% × $450,000 = $135,000
  Saldo anticipo: $337,500 - $135,000 = $202,500

Base retenciones:
  $900,000 - $135,000 = $765,000

Retención 10%:
  $765,000 × 10% = $76,500
  Acumulado retenciones: $63,750 + $76,500 = $140,250

Monto neto:
  $900,000 - $135,000 - $76,500 = $688,500

Criterios de Aceptación

  1. Portal de subcontratistas:

    • Pueden ver sus subcontratos activos
    • Generar estimaciones
    • Ver estatus en tiempo real
    • Descargar documentos
  2. Verificación física:

    • Residente debe aprobar avance antes de pago
    • Sistema bloquea pago sin verificación
  3. Calendario de pagos:

    • Fecha programada calculada automáticamente
    • Alertas 5 días antes
    • Dashboard de pagos comprometidos
  4. Retenciones acumuladas:

    • Por subcontrato, ver total retenido
    • Proyección de liberación
    • Reporte de retenciones
  5. Trazabilidad:

    • Evidencias fotográficas vinculadas
    • Historial de ajustes de avance
    • Registro de verificaciones

🔗 Referencias


Generado: 2025-11-20
Estado: Completo