Appearance
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 ComprasMulti-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:
| Fase | Nombre | Alcance | Dependencia |
|---|---|---|---|
| 1 | Presupuesto Base + Medios de Pago | CRUD presupuestos, asociación CRM, medios de pago, aprobación | Ninguna |
| 2 | Ítems del Presupuesto | ABM de ítems, integración productos, cálculo automático totales | Módulo Ventas |
| 3 | Tercerización | Registro servicios tercerizados, tracking fechas, integración CtaCte | Módulo Compras |
Entidades Principales
| Entidad | Propósito | Fase |
|---|---|---|
| Presupuesto | Entidad principal que almacena la cotización comercial | 1 |
| Relación CRM-Presupuesto | Vincula registros de atención con presupuestos (relación M:N) | 1 |
| Medio de Pago del Presupuesto | Asignación de montos a diferentes formas de pago | 1 |
| Ítem del Presupuesto | Detalle de productos cotizados con cantidad, precio y descuento | 2 |
| Tercerización del Presupuesto | Trabajo delegado a proveedores externos | 3 |
| Relación Prefactura-Presupuesto | Vincula 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)
- Excepción: Si el presupuesto tiene una prefa vinculada (
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ódulo | Relación | Obligatorio |
|---|---|---|
| CRM | Registros de CRM son la entidad padre de los presupuestos | Si |
| Ventas | Catálogo de productos para selección en ítems | Solo Fase 2 |
| Compras | Catálogo de proveedores para tercerización | Solo Fase 3 |
| Cuenta Corriente | Registro de movimientos cuando se marca "Registrar en cuenta corriente" | Opcional en Fase 3 |
| Configuración | Catálogo de medios de pago disponibles | Si |
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:
- Presupuesto Base y Medios de Pago - Fase 1: CRUD presupuestos, medios de pago, aprobación
- Ítems del Presupuesto - Fase 2: ABM de ítems, integración con productos
- Tercerización - Fase 3: Servicios tercerizados, integración con proveedores
Integración con Otros Módulos
- Aprobación a Procesos de Ventas - Entry point que conecta presupuestos aprobados con el ciclo de ventas
- Conversión a Prefa - Proceso de generación de comprobante pendiente desde presupuesto CRM
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
| Fecha | Versión | Autor | Descripción |
|---|---|---|---|
| 2026-02-02 | 1.0 | Claude | Creación del documento de arquitectura |
| 2026-02-02 | 1.1 | Claude | Reorganización en estructura modular |
| 2026-02-23 | 1.2 | Claude | Actualización de links: tercerización reorganizada en subdirectorio |
| 2026-03-10 | 1.3 | Claude | Estado actualizado a Implementado; AC-025 y AC-026 marcados cumplidos |
| 2026-03-13 | 1.4 | Claude | RN-002: excepción controlada para aprobados con prefa sin factura; integración con prefacturas implementada |