Skip to content

Presupuesto Base y Medios de Pago

Módulo: crm Tipo: Resource Estado: Planificado Fecha: 2026-02-02


Descripción de la Fase

La Fase 1 implementa la funcionalidad base del sistema de presupuestos, incluyendo:

  • CRUD completo de presupuestos
  • Asociación con registros CRM
  • Gestión de medios de pago
  • Flujo de aprobación
  • Estados especiales: sin cargo y garantía
  • Descuento general del presupuesto

Esta fase es independiente y no requiere módulos adicionales (Ventas o Compras).


Frontend (Perspectiva de Usuario)

Vistas

  • Listado de presupuestos por registro CRM: Muestra todos los presupuestos asociados a un registro de atención específico, con indicadores visuales de estado (borrador, aprobado, garantía, sin cargo)
  • Formulario de creación/edición de presupuesto: Pantalla principal para capturar todos los datos del presupuesto
  • Modal de medios de pago: Interfaz para asignar montos a diferentes medios de pago disponibles

Componentes Esperados

  • Listado de presupuestos con filtros y ordenamiento
  • Formulario de presupuesto con validaciones en tiempo real
  • Selector de medios de pago con monto y notas
  • Botón de aprobación con confirmación
  • Badges visuales para estados (borrador, aprobado, garantía, sin cargo)

Interacciones del Usuario

Gestión básica:

  1. Acceder al listado de presupuestos desde un registro CRM
  2. Crear nuevo presupuesto con datos básicos (fecha, validez, total, notas)
  3. Modificar presupuesto existente (solo si no está aprobado)
  4. Eliminar presupuesto (solo si no está aprobado y tiene permiso)
  5. Aprobar presupuesto (cambia a estado de solo lectura)

Medios de pago: 6. Abrir modal de medios de pago 7. Seleccionar medio de pago de lista disponible 8. Asignar monto al medio de pago seleccionado 9. Agregar notas opcionales al medio de pago 10. Reorganizar orden de visualización de medios de pago 11. Eliminar medio de pago asignado

Características especiales:

  • Marcar presupuesto como "Garantía" (indicador visual)
  • Marcar presupuesto como "Sin cargo" (total se establece en 0)
  • Ingresar motivo obligatorio cuando es sin cargo
  • Aplicar descuento general al presupuesto
  • Editar pie de presupuesto para impresión

Permisos del Sistema

PermisoDescripciónAcciones permitidas
CRM_MOVIMIENTOS_PRESUPUESTOAcceso total a la creación de presupuestosCRUD completo

Estados de UI

Estado del presupuesto:

  • Borrador: Indicador neutro, permite todas las operaciones de edición
  • Aprobado: Badge destacado con fecha de aprobación, formulario en modo solo lectura
  • Garantía: Badge visual distintivo junto al estado principal
  • Sin cargo: Badge visual con motivo visible en tooltip o detalle

Estados de carga:

  • Cargando: Indicador de carga al obtener datos del presupuesto
  • Guardando: Indicador durante operaciones de guardado

Estados de validación:

  • Error de validación: Mensajes junto a campos con error
  • Advertencia de suma: Alerta cuando suma de medios de pago excede el total
  • Confirmación de aprobación: Diálogo de confirmación antes de aprobar

Estados de resultado:

  • Éxito: Notificación de operación completada
  • Error: Mensaje de error con descripción del problema
  • Listado vacío: Mensaje indicando que no hay presupuestos para el registro CRM

Backend (Perspectiva de Datos de Negocio)

Entidades de la Fase 1

Presupuesto

DatoDescripciónObligatorioReglas
Fecha y horaMomento de creación del presupuestoSiPor defecto fecha/hora actual
Usuario creadorQuien generó el presupuestoSiUsuario autenticado
ValidezCantidad de días de vigenciaNoDebe ser mayor a 0 si se especifica
Pie de presupuestoTexto para impresión del documentoNoTexto libre
Descuento generalPorcentaje de descuento aplicadoNoEntre 0 y 100
AprobadoIndica si el presupuesto fue aprobadoSiPor defecto No
Fecha de aprobaciónMomento de la aprobaciónCondicionalObligatorio si está aprobado
Notas internasObservaciones que no se imprimenNoTexto libre
Es garantíaMarca de trabajo en garantíaSiPor defecto No
Sin cargoIndica si es sin cargoSiPor defecto No
Motivo sin cargoRazón del trabajo sin cargoCondicionalObligatorio si es sin cargo
TotalMonto total del presupuestoSiDebe ser >= 0, debe ser 0 si es sin cargo
Fecha de creaciónTimestamp de creaciónSiAutomático
Fecha de modificaciónTimestamp de última modificaciónNoAutomático
Fecha de eliminaciónTimestamp de borrado lógicoNoSoft delete

Relación CRM-Presupuesto

DatoDescripciónObligatorioReglas
Identificador del registro CRMReferencia al registro de atenciónSiUUID válido existente
Identificador del presupuestoReferencia al presupuestoSiEntero válido existente

Nota: Esta relación permite que un registro CRM tenga múltiples presupuestos (seguimiento de cotizaciones en el tiempo).

Medio de Pago del Presupuesto

DatoDescripciónObligatorioReglas
PresupuestoReferencia al presupuestoSiDebe existir
Medio de pagoReferencia al medio de pagoSiDebe existir en catálogo
MontoCantidad asignada a este medioSiDebe ser mayor a 0
NotasObservaciones del medio de pagoNoTexto libre
Orden de visualizaciónPosición en la listaSiPor defecto 0

Validaciones de Negocio Fase 1

Presupuesto:

  1. El descuento debe estar entre 0% y 100%
  2. El total debe ser mayor o igual a 0
  3. La validez, si se especifica, debe ser mayor a 0 días
  4. Si es "sin cargo", el motivo es obligatorio
  5. Si es "sin cargo", el total debe ser 0
  6. Si está aprobado, la fecha de aprobación es obligatoria
  7. Si no está aprobado, la fecha de aprobación debe estar vacía

Medios de Pago:

  1. El monto de cada medio de pago debe ser mayor a 0
  2. La suma de todos los medios de pago no debe superar el total del presupuesto

Operaciones:

  1. No se puede modificar un presupuesto aprobado
  2. No se puede eliminar un presupuesto aprobado
  3. No se puede eliminar un presupuesto vinculado a prefacturas
  4. La aprobación es una acción irreversible

Reglas de Negocio Específicas

RN-001: Gestión de Totales (Sin Ítems)

En la Fase 1, el presupuesto NO tiene ítems, por lo tanto:

  • El usuario ingresa el total manualmente
  • El total puede modificarse libremente (mientras no esté aprobado)
  • La suma de los montos asignados a medios de pago NUNCA debe superar el total del presupuesto

RN-002: Proceso de Aprobación

  • Solo usuarios con permiso CRM_BUDGET_APPROVE pueden aprobar
  • 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 ni modificados

RN-003: Presupuestos Sin Cargo

  • Si se marca "Sin cargo" = true, el total DEBE ser 0
  • El campo "Motivo sin cargo" se vuelve OBLIGATORIO
  • Los medios de pago no aplican cuando es sin cargo (suma permitida = 0)
  • Se debe poder desmarcar "Sin cargo" y el total vuelve a ser editable

RN-004: Presupuestos en Garantía

  • Es una marca informativa (indicador visual)
  • NO afecta el flujo de aprobación ni las validaciones de total
  • Se muestra como badge visual distintivo
  • Puede combinarse con "Sin cargo"

RN-005: Validez del Presupuesto

  • Se expresa en días desde la fecha de creación
  • Es un campo informativo, no calcula fecha de vencimiento automáticamente
  • El sistema NO bloquea ni alerta automáticamente por vencimiento

RN-006: Integración con CRM

  • Un registro CRM puede tener MÚLTIPLES presupuestos asociados
  • Al eliminar un registro CRM, se eliminan sus presupuestos asociados (cascada)
  • Al eliminar un presupuesto, se mantiene el registro CRM intacto

Casos de Uso

Caso 1: Crear Presupuesto Simple

Actor: Usuario con permiso CRM_BUDGET_WRITE

Precondiciones:

  • El usuario está autenticado en el sistema
  • Existe un registro CRM al cual asociar el presupuesto
  • El usuario tiene acceso al módulo CRM
  • Existe al menos un medio de pago configurado en el sistema

Flujo principal:

  1. El usuario accede al detalle de un registro CRM
  2. El usuario selecciona la opción "Nuevo Presupuesto"
  3. El sistema muestra el formulario de presupuesto con fecha y hora actuales
  4. El usuario ingresa la validez en días (opcional)
  5. El usuario ingresa el total del presupuesto
  6. El usuario aplica un descuento general si corresponde
  7. El usuario abre el modal de medios de pago
  8. El usuario selecciona un medio de pago de la lista disponible
  9. El usuario ingresa el monto asignado a ese medio
  10. El usuario repite pasos 8-9 para adicionales medios de pago si es necesario
  11. El sistema valida que la suma de medios no supere el total
  12. El usuario cierra el modal de medios de pago
  13. El usuario ingresa notas internas si corresponde
  14. El usuario guarda el presupuesto
  15. El sistema valida los datos y guarda el presupuesto en estado borrador
  16. El sistema muestra mensaje de éxito y actualiza el listado

Postcondiciones:

  • El presupuesto queda guardado en estado borrador
  • El presupuesto está asociado al registro CRM
  • Los medios de pago quedan registrados con sus montos
  • El presupuesto aparece en el listado del registro CRM
  • Se registra auditoría de la creación

Flujos alternativos:

  • Error de validación: Si algún campo no cumple las reglas (ej: descuento > 100), el sistema muestra mensajes de error junto a los campos afectados y no permite guardar hasta corregir
  • Suma de medios excede total: El sistema muestra advertencia y no permite guardar hasta ajustar los montos
  • Presupuesto sin cargo: Si el usuario marca "Sin cargo", el total se establece en 0 y se solicita el motivo obligatoriamente
  • Cancelación: Si el usuario cancela, se descarta la información ingresada y vuelve al registro CRM

Caso 4: Aprobar Presupuesto

Actor: Usuario con permiso CRM_BUDGET_APPROVE

Precondiciones:

  • Existe un presupuesto en estado borrador
  • El usuario tiene permiso de aprobación
  • El presupuesto tiene todos los datos requeridos completos

Flujo principal:

  1. El usuario accede al listado de presupuestos de un registro CRM
  2. El usuario identifica el presupuesto a aprobar (estado: borrador)
  3. El usuario selecciona la acción "Aprobar"
  4. El sistema muestra diálogo de confirmación indicando que la acción es irreversible
  5. El usuario confirma la aprobación
  6. El sistema registra la fecha y hora de aprobación
  7. El sistema cambia el estado del presupuesto a "Aprobado"
  8. El sistema muestra mensaje de éxito
  9. El presupuesto se muestra ahora en modo solo lectura

Postcondiciones:

  • El presupuesto queda marcado como aprobado con fecha de aprobación
  • El presupuesto no puede ser modificado ni eliminado
  • El badge de "Aprobado" se muestra en el listado y detalle
  • Se registra auditoría de la aprobación
  • El presupuesto puede ser vinculado a prefacturas

Flujos alternativos:

  • Usuario cancela confirmación: Si el usuario cancela en el diálogo, el presupuesto permanece como borrador
  • Error al aprobar: Si ocurre un error, el sistema muestra mensaje y el presupuesto permanece como borrador
  • Presupuesto ya aprobado: Si otro usuario aprobó mientras tanto, el sistema informa que ya está aprobado

Consideraciones Técnicas Fase 1

Performance

Expectativas de tiempo de respuesta:

  • Listado de presupuestos: < 2 segundos
  • Guardado de presupuesto: < 3 segundos

Índices recomendados:

  • Búsqueda por registro CRM
  • Filtrado por estado (aprobado/borrador)
  • Ordenamiento por fecha

Seguridad

  • Solo usuarios con CRM_BUDGET_VIEW pueden ver presupuestos
  • Solo usuarios con CRM_BUDGET_WRITE pueden crear/modificar
  • Solo usuarios con CRM_BUDGET_APPROVE pueden aprobar
  • Solo usuarios con CRM_BUDGET_DELETE pueden eliminar
  • Un usuario solo puede ver presupuestos de los registros CRM a los que tiene acceso
  • Los presupuestos aprobados son inmutables
  • El borrado es lógico (soft delete), no físico

Auditoría

Operaciones a registrar:

  • 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

Información relevante:

  • Identificador del registro afectado
  • Usuario que realizó la operación
  • Fecha y hora de la operación
  • Tipo de operación (INSERT, UPDATE, DELETE)
  • Valores anteriores y nuevos (para modificaciones)

Testing

Escenarios críticos a validar:

  • Creación de presupuesto con todos los campos
  • Validación de suma de medios de pago vs total
  • Flujo completo de aprobación
  • Protección de presupuestos aprobados
  • Manejo de presupuestos sin cargo
  • Eliminación con y sin permisos

Criterios de Aceptación Fase 1

  • [ ] AC-001: El usuario puede crear un nuevo presupuesto asociado a un registro CRM con fecha, validez, descuento y total
  • [ ] AC-002: El usuario puede agregar múltiples medios de pago a un presupuesto, cada uno con su monto y notas
  • [ ] AC-003: El sistema valida que la suma de medios de pago no supere el total del presupuesto
  • [ ] AC-004: El usuario puede marcar un presupuesto como "Sin cargo" y debe ingresar motivo obligatoriamente
  • [ ] AC-005: El usuario puede marcar un presupuesto como "Garantía" como indicador visual
  • [ ] AC-006: El usuario con permiso CRM_BUDGET_APPROVE puede aprobar presupuestos, quedando en modo solo lectura
  • [ ] AC-007: Un presupuesto aprobado no puede ser modificado ni eliminado
  • [ ] AC-008: El sistema registra auditoría de todas las operaciones (crear, modificar, aprobar, eliminar)
  • [ ] AC-009: La eliminación de presupuestos es lógica (soft delete) y solo para presupuestos no aprobados
  • [ ] AC-010: Existen pruebas unitarias y de integración que validan las funcionalidades de Fase 1


Historial de cambios

FechaVersiónAutorDescripción
2026-02-021.0ClaudeCreación del documento