Skip to content

Ítems del Presupuesto

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


Descripción de la Fase

La Fase 2 implementa el sistema de ítems detallados dentro del presupuesto, permitiendo:

  • ABM de ítems del presupuesto
  • Integración con el catálogo de productos
  • Cálculo automático de totales por ítem
  • Recálculo automático del total del presupuesto
  • Marca especial para ítems de envío/flete

Dependencia del Módulo Ventas

Esta fase requiere que el módulo de Ventas esté habilitado para la empresa. Si Ventas no está habilitado, la sección de ítems no estará disponible en la interfaz.


Frontend (Perspectiva de Usuario)

Vistas

  • Sección de ítems dentro del presupuesto: Sección desplegable que muestra el listado de productos cotizados con posibilidad de agregar, modificar y eliminar

Componentes Esperados

  • Tabla de ítems con cantidad, precio, descuento y total
  • Formulario de ítem con autocomplete de productos
  • Autocomplete de productos con búsqueda en tiempo real
  • Indicador de ítem de envío/flete
  • Controles para reordenar ítems

Interacciones del Usuario

Gestión de ítems:

  1. Expandir sección de ítems del presupuesto
  2. Buscar producto mediante autocomplete
  3. Ingresar cantidad, precio unitario y descuento
  4. Ver cálculo automático del total del ítem
  5. Marcar ítem como "envío/flete" si corresponde
  6. Reorganizar orden de visualización de ítems
  7. Eliminar ítem del presupuesto

Estados de UI

Estados de carga:

  • Buscando productos: Indicador durante búsqueda en autocomplete
  • Calculando: Indicador mientras se recalculan totales

Estados de validación:

  • Error de producto: Producto no encontrado o inválido
  • Error de cantidad: Cantidad debe ser mayor a 0
  • Error de descuento: Descuento fuera de rango (0-100%)
  • Error de cálculo: Total del ítem no coincide con cálculo esperado

Estados de resultado:

  • Ítem agregado: Confirmación de nuevo ítem
  • Total actualizado: Indicador de recálculo del presupuesto

Backend (Perspectiva de Datos de Negocio)

Entidad de la Fase 2

Ítem del Presupuesto

DatoDescripciónObligatorioReglas
PresupuestoReferencia al presupuestoSiDebe existir
ProductoReferencia al productoSiDebe existir en catálogo
Descripción adicionalTexto complementarioNoMáximo 200 caracteres
CantidadUnidades del productoSiDebe ser mayor a 0
Precio unitarioPrecio por unidadSiDebe ser >= 0
DescuentoPorcentaje de descuentoNoEntre 0 y 100
TotalResultado calculadoSi= cantidad x precio x (1 - descuento/100)
Es envíoIndica si es ítem de fleteSiPor defecto No
Orden de visualizaciónPosición en la listaSiPor defecto 0

Integración con Productos

El sistema de ítems se integra con el catálogo de productos existente:

Datos del producto utilizados:

  • Identificador del producto
  • Denominación/nombre del producto
  • Precio de costo (como referencia para el precio unitario)
  • Código del producto (para búsqueda)

Funcionalidad de autocomplete:

  • Búsqueda por nombre del producto
  • Búsqueda por código del producto
  • Resultados en tiempo real mientras el usuario escribe
  • Selección de producto que completa automáticamente el nombre

Validaciones de Negocio Fase 2

  1. La cantidad debe ser mayor a 0
  2. El precio unitario debe ser mayor o igual a 0
  3. El descuento debe estar entre 0% y 100%
  4. El total del ítem debe coincidir con el cálculo: cantidad x precio x (1 - descuento/100)
  5. El producto referenciado debe existir en el catálogo

Reglas de Negocio Específicas

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

En la Fase 2, cuando el presupuesto TIENE ítems:

Cálculo del total del ítem:

total_ítem = cantidad x precio_unitario x (1 - descuento/100)

Cálculo del total del presupuesto:

total_presupuesto = suma(total_ítem) x (1 - descuento_general/100)

Recálculo automático:

  • Al agregar un ítem, el sistema recalcula el total del presupuesto
  • Al modificar un ítem, el sistema recalcula el total del presupuesto
  • Al eliminar un ítem, el sistema recalcula el total del presupuesto
  • El cálculo en el cliente es instantáneo para feedback inmediato
  • El servidor valida el cálculo al guardar

Comportamiento de Ítems con Presupuestos Sin Cargo

  • Un presupuesto marcado como "Sin cargo" puede tener ítems
  • Los ítems sirven para documentar lo que se entrega aunque no se cobre
  • El total del presupuesto permanece en 0 independientemente de los ítems

Ítems de Envío/Flete

  • Un ítem puede marcarse como "Es envío" para identificar gastos de flete
  • Esta marca es informativa y no afecta los cálculos
  • Permite identificar fácilmente los costos de logística en el presupuesto

Casos de Uso

Caso 2: Crear Presupuesto con Ítems

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 módulo de Ventas está habilitado para la empresa
  • Existen productos configurados en el catálogo

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 con la sección de ítems disponible
  4. El usuario expande la sección de ítems del presupuesto
  5. El usuario selecciona "Agregar ítem"
  6. El usuario busca un producto usando el autocomplete
  7. El sistema muestra resultados mientras el usuario escribe
  8. El usuario selecciona el producto deseado
  9. El usuario ingresa la cantidad
  10. El usuario ajusta el precio unitario si es diferente al precio base
  11. El usuario aplica descuento al ítem si corresponde
  12. El sistema calcula automáticamente el total del ítem
  13. El usuario repite pasos 5-12 para agregar más ítems
  14. El sistema recalcula el total del presupuesto automáticamente
  15. El usuario puede marcar ítems específicos como "envío" si corresponde
  16. El usuario configura los medios de pago
  17. El usuario guarda el presupuesto
  18. El sistema valida todos los datos y guarda

Postcondiciones:

  • El presupuesto queda guardado con todos sus ítems
  • El total del presupuesto refleja la suma de los ítems
  • Cada ítem tiene su cálculo de total verificado
  • Los ítems mantienen el orden de visualización establecido

Flujos alternativos:

  • Producto no encontrado: Si el autocomplete no retorna resultados, el usuario puede buscar con otros términos o verificar el catálogo de productos
  • Error en cálculo de ítem: Si el total del ítem no coincide con el cálculo esperado, el sistema rechaza el guardado y solicita corrección
  • Eliminar ítem: El usuario puede eliminar un ítem antes de guardar, el sistema recalcula el total
  • Reordenar ítems: El usuario puede cambiar el orden de visualización arrastrando los ítems

Consideraciones Técnicas Fase 2

Performance

Expectativas de tiempo de respuesta:

  • Búsqueda en autocomplete: < 500ms
  • Cálculo automático de totales: instantáneo (en cliente)
  • Guardado de presupuesto con ítems: < 3 segundos

Optimizaciones:

  • El autocomplete debe limitar resultados para respuesta rápida
  • El cálculo de totales se realiza en cliente para feedback inmediato
  • El servidor valida los cálculos al guardar (no confía en el cliente)

Validación de Producto

  • Antes de guardar, el sistema verifica que el producto referenciado exista
  • Si el producto fue eliminado del catálogo, se muestra error de validación
  • El precio unitario puede diferir del precio base del producto (personalización)

Testing

Escenarios críticos a validar:

  • Cálculo correcto de total de ítem (cantidad x precio x (1 - descuento/100))
  • Recálculo de total del presupuesto al agregar/modificar/eliminar ítems
  • Aplicación correcta del descuento general sobre suma de ítems
  • Comportamiento del autocomplete de productos
  • Validación de producto existente al guardar
  • Presupuesto sin cargo con ítems (total = 0 independiente de ítems)

Criterios de Aceptación Fase 2

  • [ ] AC-011: El usuario puede agregar ítems al presupuesto seleccionando productos del catálogo
  • [ ] AC-012: El autocomplete de productos funciona correctamente mostrando resultados en tiempo real
  • [ ] AC-013: El sistema calcula automáticamente el total de cada ítem (cantidad x precio x (1 - descuento/100))
  • [ ] AC-014: El sistema recalcula el total del presupuesto cuando se agregan, modifican o eliminan ítems
  • [ ] AC-015: El usuario puede marcar ítems específicos como "envío/flete"
  • [ ] AC-016: El usuario puede reordenar los ítems del presupuesto
  • [ ] AC-017: La sección de ítems solo está disponible si el módulo de Ventas está habilitado
  • [ ] AC-018: Existen pruebas unitarias y de integración que validan las funcionalidades de Fase 2


Historial de cambios

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