Appearance
Í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:
- Expandir sección de ítems del presupuesto
- Buscar producto mediante autocomplete
- Ingresar cantidad, precio unitario y descuento
- Ver cálculo automático del total del ítem
- Marcar ítem como "envío/flete" si corresponde
- Reorganizar orden de visualización de ítems
- 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
| Dato | Descripción | Obligatorio | Reglas |
|---|---|---|---|
| Presupuesto | Referencia al presupuesto | Si | Debe existir |
| Producto | Referencia al producto | Si | Debe existir en catálogo |
| Descripción adicional | Texto complementario | No | Máximo 200 caracteres |
| Cantidad | Unidades del producto | Si | Debe ser mayor a 0 |
| Precio unitario | Precio por unidad | Si | Debe ser >= 0 |
| Descuento | Porcentaje de descuento | No | Entre 0 y 100 |
| Total | Resultado calculado | Si | = cantidad x precio x (1 - descuento/100) |
| Es envío | Indica si es ítem de flete | Si | Por defecto No |
| Orden de visualización | Posición en la lista | Si | Por 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
- La cantidad debe ser mayor a 0
- El precio unitario debe ser mayor o igual a 0
- El descuento debe estar entre 0% y 100%
- El total del ítem debe coincidir con el cálculo: cantidad x precio x (1 - descuento/100)
- 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:
- El usuario accede al detalle de un registro CRM
- El usuario selecciona la opción "Nuevo Presupuesto"
- El sistema muestra el formulario con la sección de ítems disponible
- El usuario expande la sección de ítems del presupuesto
- El usuario selecciona "Agregar ítem"
- El usuario busca un producto usando el autocomplete
- El sistema muestra resultados mientras el usuario escribe
- El usuario selecciona el producto deseado
- El usuario ingresa la cantidad
- El usuario ajusta el precio unitario si es diferente al precio base
- El usuario aplica descuento al ítem si corresponde
- El sistema calcula automáticamente el total del ítem
- El usuario repite pasos 5-12 para agregar más ítems
- El sistema recalcula el total del presupuesto automáticamente
- El usuario puede marcar ítems específicos como "envío" si corresponde
- El usuario configura los medios de pago
- El usuario guarda el presupuesto
- 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
Navegación
- Volver a Arquitectura General
- Anterior: Presupuesto Base y Medios de Pago (Fase 1)
- Siguiente: Tercerización (Fase 3)
Historial de cambios
| Fecha | Versión | Autor | Descripción |
|---|---|---|---|
| 2026-02-02 | 1.0 | Claude | Creación del documento |