Skip to content

Gestión de Presupuestos en CRM - Arquitectura y Estructura General

Módulo: crm Tipo: Architecture Overview Estado: Implementado Fecha: 2026-02-02


Descripción General

El sistema de Gestión de Presupuestos permite crear, administrar y dar seguimiento a cotizaciones comerciales asociadas a registros del CRM. Este módulo es fundamental para el ciclo de ventas, ya que permite documentar ofertas económicas a clientes potenciales o existentes, realizar seguimiento de su estado (borrador/aprobado), y vincular los presupuestos con tercerizaciones a proveedores cuando corresponda.


Valor de Negocio

  • Centraliza la gestión de cotizaciones vinculadas a oportunidades de negocio
  • Permite seguimiento histórico de presupuestos por cliente/registro CRM
  • Facilita la aprobación formal de cotizaciones antes de su ejecución
  • Integra opciones de garantía, trabajos sin cargo y tercerizaciones
  • Soporta presupuestos simples (total manual) y detallados (con ítems de productos)
  • Permite asociar múltiples medios de pago a cada presupuesto (opcionales e informativos)

Arquitectura del Sistema

Diagrama Conceptual de Entidades

El sistema de presupuestos se compone de 6 entidades principales que interactúan entre sí:

┌─────────────────┐
│  Registro CRM   │
└────────┬────────┘
         │ tiene muchos

┌─────────────────────────────────────────────────────────────────┐
│                       PRESUPUESTO                                │
│  (fecha, validez, total, descuento, aprobado, garantía,         │
│   sin cargo, motivo, notas, pie de presupuesto)                 │
└───────┬──────────────────┬──────────────────┬───────────────────┘
        │                  │                  │
        │ tiene muchos     │ tiene muchos     │ tiene una (1:1)
        ▼                  ▼                  ▼
┌───────────────┐  ┌───────────────┐  ┌─────────────────────┐
│ Medio de Pago │  │    Ítem       │  │   Tercerización     │
│ (monto, notas,│  │  (cantidad,   │  │ (proveedor, total,  │
│  orden)       │  │   precio,     │  │  fecha solicitud,   │
└───────────────┘  │   descuento,  │  │  fecha entrega,     │
        │          │   total)      │  │  registrar en cta)  │
        │          └───────┬───────┘  └──────────┬──────────┘
        │                  │                     │
        ▼                  ▼                     ▼
┌───────────────┐  ┌───────────────┐     ┌───────────────┐
│ Catálogo de   │  │ Catálogo de   │     │ Catálogo de   │
│ Medios Pago   │  │  Productos    │     │  Proveedores  │
└───────────────┘  └───────────────┘     └───────────────┘
        ▲                  ▲                     ▲
        │                  │                     │
   (Existente)      Requiere Ventas       Requiere Compras

Multi-Tenancy

El módulo opera a nivel de EMPRESA + SUCURSAL, lo que significa que:

  • Los presupuestos se crean dentro del contexto de una sucursal específica
  • El acceso a presupuestos respeta las reglas de aislamiento de datos por tenant
  • Las relaciones con productos, proveedores y medios de pago deben existir en el mismo contexto de tenant
  • Los datos están completamente aislados entre diferentes tenants

Fases de Desarrollo

El proceso se implementa en 3 fases incrementales:

FaseNombreAlcanceDependencia
1Presupuesto Base + Medios de PagoCRUD presupuestos, asociación CRM, medios de pago, aprobaciónNinguna
2Ítems del PresupuestoABM de ítems, integración productos, cálculo automático totalesMódulo Ventas
3TercerizaciónRegistro servicios tercerizados, tracking fechas, integración CtaCteMódulo Compras

Entidades Principales

EntidadPropósitoFase
PresupuestoEntidad principal que almacena la cotización comercial1
Relación CRM-PresupuestoVincula registros de atención con presupuestos (relación M:N)1
Medio de Pago del PresupuestoAsignación de montos a diferentes formas de pago1
Ítem del PresupuestoDetalle de productos cotizados con cantidad, precio y descuento2
Tercerización del PresupuestoTrabajo delegado a proveedores externos3
Relación Prefactura-PresupuestoVincula presupuestos aprobados con prefacturas (1:1)Implementado

Relaciones de Negocio

  • Registro CRM tiene muchos Presupuestos (un cliente puede recibir múltiples cotizaciones)
  • Presupuesto tiene muchos Medios de Pago (distribución del pago en diferentes formas)
  • Presupuesto tiene muchos Ítems (detalle de productos cotizados - Fase 2)
  • Presupuesto tiene una Tercerización (relación 1:1, trabajo delegado a un proveedor - Fase 3)
  • Presupuesto se relaciona con Prefacturas (1:1 — ver Conversión a Prefa)
  • Ítem de Presupuesto referencia Producto del catálogo de productos
  • Tercerización referencia Proveedor del catálogo de proveedores
  • Medio de Pago Presupuesto referencia Medio de Pago del catálogo de formas de pago

Reglas de Negocio Transversales

RN-001: Gestión de Totales

Descripción: El total del presupuesto puede ingresarse de forma manual o calcularse automáticamente a partir de los ítems.

Condiciones y acciones:

  • Si el presupuesto NO tiene ítems: el usuario ingresa el total manualmente; el total se preserva al editar (no se resetea a 0)
  • Si el presupuesto TIENE ítems (Fase 2): el sistema calcula el total como la suma de los totales de cada ítem, aplicando luego el descuento general si existe
  • Los medios de pago son opcionales e informativos en todos los tipos de presupuesto (normal, garantía, sin cargo)
  • Si se asignan medios de pago, su suma no debe superar el total del presupuesto
  • El costo de tercerización es INDEPENDIENTE del total presupuestado (puede ser mayor, menor o igual)

RN-002: Proceso de Aprobación

Descripción: La aprobación es un proceso formal que bloquea el presupuesto para edición, con una excepción controlada cuando hay prefa vinculada sin factura.

Condiciones y acciones:

  • Al aprobar, el sistema registra automáticamente la fecha y hora de aprobación
  • Una vez aprobado, el presupuesto queda en modo de solo lectura
  • No se puede revertir una aprobación (acción irreversible)
  • Presupuestos aprobados no pueden ser eliminados
  • Presupuestos aprobados no pueden ser modificados, con la siguiente excepción:
    • Excepción: Si el presupuesto tiene una prefa vinculada (budget_prefa) y esa prefa no tiene factura asociada (id_factura IS NULL), el presupuesto puede modificarse
    • Si la prefa ya tiene factura → el presupuesto vuelve a ser inmutable
    • Si el presupuesto no tiene prefa vinculada → inmutable (comportamiento original)

RN-003: Presupuestos Sin Cargo

Descripción: Permite registrar trabajos que se realizan sin costo para el cliente.

Condiciones y acciones:

  • Si se marca "Sin cargo" = true, el total DEBE ser 0
  • El campo "Motivo sin cargo" se vuelve OBLIGATORIO
  • El presupuesto puede tener ítems (para listar lo que se entregó aunque sea sin cargo)
  • Los medios de pago son opcionales cuando es sin cargo (no se valida ni requiere cobertura)
  • Se debe poder desmarcar "Sin cargo" y el total vuelve a ser editable

RN-004: Presupuestos en Garantía

Descripción: Marca visual para identificar trabajos cubiertos por garantía.

Condiciones y acciones:

  • Es una marca informativa (indicador visual)
  • NO afecta el flujo de aprobación ni las validaciones de total
  • Se muestra como badge visual distintivo en listados y detalle
  • Puede combinarse con "Sin cargo" si el trabajo de garantía no tiene costo
  • No tiene implicaciones en los cálculos ni restricciones adicionales

RN-005: Validez del Presupuesto

Descripción: Período durante el cual la cotización mantiene sus condiciones.

Condiciones y acciones:

  • Se expresa en días desde la fecha de creación
  • Es un campo informativo, no calcula automáticamente fecha de vencimiento
  • El sistema NO bloquea ni alerta automáticamente por vencimiento
  • Puede dejarse vacío si no se requiere indicar validez
  • Si se especifica, debe ser un número mayor a 0

RN-006: Integración con CRM

Descripción: Los presupuestos siempre están asociados a un registro de CRM.

Condiciones y acciones:

  • Un registro CRM puede tener MÚLTIPLES presupuestos asociados
  • Esto permite seguimiento de cotizaciones en el tiempo (versiones, actualizaciones)
  • Al cancelar un registro CRM, sus presupuestos asociados deben cancelarse también (pendiente de implementación — fase posterior)
  • Al eliminar un presupuesto, se mantiene el registro CRM intacto
  • Los registros CRM no se eliminan físicamente; la baja se realiza mediante cancelación con motivo (cancel_reason_id)
  • Se puede consultar el historial de presupuestos de un registro CRM

Dependencias del Módulo

Módulos Relacionados

MóduloRelaciónObligatorio
CRMRegistros de CRM son la entidad padre de los presupuestosSi
VentasCatálogo de productos para selección en ítemsSolo Fase 2
ComprasCatálogo de proveedores para tercerizaciónSolo Fase 3
Cuenta CorrienteRegistro de movimientos cuando se marca "Registrar en cuenta corriente"Opcional en Fase 3
ConfiguraciónCatálogo de medios de pago disponiblesSi

Servicios Externos

Impresión de presupuestos:

  • Generación de PDF del presupuesto
  • Inclusión del pie de presupuesto configurado

Prefacturas:

  • Conversión de presupuesto aprobado a prefa tipo PRESUPUESTO CRM (implementado)
  • Vinculación 1:1 vía tabla budget_prefa
  • Ver: Conversión a Prefa

Consideraciones Técnicas Generales

Multi-Tenancy

  • Todos los datos operan bajo el contexto de EMPRESA + SUCURSAL
  • El acceso respeta el aislamiento de datos por tenant
  • Las referencias a catálogos (productos, proveedores, medios de pago) deben existir en el mismo tenant

Seguridad

Datos sensibles a proteger:

  • Totales y montos de presupuestos (información comercial confidencial)
  • Costos de tercerización (márgenes de negocio)
  • Historial de presupuestos por cliente

Protección de datos:

  • Los presupuestos aprobados son inmutables
  • El borrado es lógico (soft delete), no físico
  • Los vínculos con prefacturas protegen contra eliminación

Auditoría

Operaciones a registrar en todas las fases:

  • Creación de presupuesto (usuario, fecha, datos)
  • Modificación de presupuesto (usuario, fecha, campos modificados)
  • Aprobación de presupuesto (usuario, fecha)
  • Eliminación de presupuesto (usuario, fecha)
  • Adición/modificación/eliminación de medios de pago
  • Adición/modificación/eliminación de ítems (Fase 2)
  • Establecimiento/modificación/eliminación de tercerización (Fase 3)

Módulos Opcionales

Dependencia de Módulos

La disponibilidad de las secciones de Ítems (Fase 2) y Tercerización (Fase 3) depende de que los módulos correspondientes (Ventas y Compras respectivamente) estén habilitados para la empresa.

El sistema debe detectar dinámicamente esta configuración y mostrar/ocultar las secciones correspondientes en la interfaz de usuario.


Documentación Específica por Fase

Para información detallada de cada fase, consultar:

Integración con Otros Módulos


Criterios de Aceptación Generales

Estos criterios aplican a todas las fases:

  • [ ] AC-024: La documentación técnica está completa y actualizada
  • [x] AC-025: Se pueden generar PDF de presupuestos con el pie configurado
  • [x] AC-026: El sistema respeta multi-tenancy (empresa + sucursal)
  • [ ] AC-027: Code review aprobado por equipo técnico
  • [ ] AC-028: QA aprobado con pruebas funcionales completas

Integración con Prefacturas

La conversión de presupuesto aprobado a comprobante pendiente a facturar está implementada.

Ver proceso completo: Conversión de Presupuesto CRM a Prefa


Historial de cambios

FechaVersiónAutorDescripción
2026-02-021.0ClaudeCreación del documento de arquitectura
2026-02-021.1ClaudeReorganización en estructura modular
2026-02-231.2ClaudeActualización de links: tercerización reorganizada en subdirectorio
2026-03-101.3ClaudeEstado actualizado a Implementado; AC-025 y AC-026 marcados cumplidos
2026-03-131.4ClaudeRN-002: excepción controlada para aprobados con prefa sin factura; integración con prefacturas implementada