Skip to content

Opciones de Campo (FieldOptions)

Modulo: CRM Tipo: Resource Estado: Implementado Fecha: 2026-02-02


Descripcion

El recurso FieldOptions (Opciones de Campo) define los valores posibles para campos personalizados de tipo seleccion. Permite crear listas desplegables con opciones predefinidas, ordenadas y etiquetadas de manera amigable para el usuario.

Valor de negocio:

  • Estandariza las opciones disponibles para campos de seleccion
  • Permite ordenamiento logico de opciones
  • Facilita el mantenimiento de catalogos internos del CRM
  • Soporta eliminacion logica para mantener integridad historica
  • Separa el valor almacenado de la etiqueta visible

Ejemplos de uso:

  • Estados de llamada (Contactado, Sin contacto, Ocupado)
  • Tipos de consulta (Precio, Stock, Garantia)
  • Prioridades (Alta, Media, Baja)
  • Motivos de interes (Publicidad, Referido, Web)

Frontend (Perspectiva de Usuario)

Vistas

  1. Listado de Opciones por Campo

    • Muestra las opciones configuradas para un campo de seleccion
    • Indica valor, etiqueta y orden
    • Opciones activas e inactivas diferenciadas
  2. Formulario de Alta/Modificacion de Opcion

    • Ingreso de valor numerico
    • Ingreso de etiqueta descriptiva
    • Definicion de orden de visualizacion
  3. Selector en Formularios de Registro

    • Las opciones aparecen en el dropdown del campo
    • Se muestran ordenadas segun el campo orden
    • Solo se muestran opciones activas

Interacciones del Usuario

AccionDescripcion
Agregar opcionEl administrador agrega una nueva opcion al campo
Editar opcionEl administrador modifica etiqueta u orden
Eliminar opcionEl administrador elimina logicamente una opcion
Seleccionar opcionEl usuario operador elige una opcion en el registro
Reordenar opcionesEl administrador cambia el orden de visualizacion

Permisos

  • Visualizar opciones (usuarios del CRM)
  • Configurar opciones (administradores)
  • Eliminar opciones (administradores)

Estados de UI

EstadoDescripcion
Opcion activaDisponible para seleccion en formularios
Opcion inactivaNo aparece en selectores pero existe en historico
Cargando opcionesIndicador mientras se obtienen las opciones

Backend (Perspectiva de Datos de Negocio)

Entidad de Negocio: Opcion de Campo

Representa un valor posible para un campo personalizado de tipo seleccion.

Datos Necesarios

DatoDescripcionRequeridoRestricciones
IdentificadorCodigo numerico unico de la opcionAuto-
CampoCampo al que pertenece la opcionSiReferencia valida
ValorValor numerico almacenadoSiEntero
OrdenPosicion en la lista de opcionesNoEntero
EtiquetaTexto visible para el usuarioSi100 caracteres
Fecha eliminacionMarca de eliminacion logicaNoTimestamp

Relaciones de Negocio

RelacionDescripcion
CampoCada opcion pertenece a un campo especifico
Valores de registroLos registros almacenan el valor de la opcion seleccionada

Validaciones de Negocio

ValidacionDescripcion
Campo existenteEl campo referenciado debe existir
Valor numericoEl valor debe ser un numero entero
Etiqueta no vaciaLa etiqueta es obligatoria
Valor unico por campoNo pueden existir dos opciones con mismo valor en un campo

Reglas de Negocio

RN-OPT-001: Eliminacion Logica

  • Condicion: Al eliminar una opcion
  • Accion: El sistema marca la opcion con fecha de eliminacion
  • Nota: No se elimina fisicamente para mantener integridad de datos historicos

RN-OPT-002: Ordenamiento por Campo Orden

  • Condicion: Al listar opciones de un campo
  • Accion: Se ordenan por el campo 'orden' de menor a mayor
  • Nota: Opciones sin orden definido aparecen al final

RN-OPT-003: Solo Opciones Activas en Seleccion

  • Condicion: Al mostrar opciones en un dropdown
  • Accion: Solo se muestran opciones sin fecha de eliminacion
  • Nota: Las opciones eliminadas no aparecen en nuevas selecciones

RN-OPT-004: Valor Inmutable

  • Condicion: La opcion ya fue seleccionada en algun registro
  • Accion: El valor numerico no debe modificarse
  • Nota: Cambiar el valor romperia la asociacion con registros existentes

RN-OPT-005: Actualizacion Permitida

  • Condicion: Al actualizar una opcion
  • Accion: Se permite modificar etiqueta y orden
  • Nota: Estos cambios no afectan los registros existentes

RN-OPT-006: Gestion Transaccional

  • Condicion: Al crear/actualizar campo con opciones
  • Accion: Las operaciones de opciones se incluyen en la transaccion del campo
  • Nota: Si falla alguna opcion, se revierte toda la operacion

Casos de Uso

Caso 1: Agregar Opcion a Campo Existente

Actor: Administrador del sistema

Precondiciones:

  • El campo debe existir y ser de tipo seleccion
  • El usuario debe estar autenticado como administrador

Flujo principal:

  1. El administrador accede a la configuracion del campo
  2. El administrador presiona "Agregar Opcion"
  3. El administrador ingresa el valor numerico (ej: 4)
  4. El administrador ingresa la etiqueta (ej: "Consulta de Financiacion")
  5. El administrador ingresa el orden (ej: 4)
  6. El administrador presiona "Guardar"
  7. El sistema valida que el valor no exista
  8. El sistema crea la opcion
  9. El sistema muestra notificacion de exito

Postcondiciones:

  • La nueva opcion aparece en el dropdown del campo
  • Los usuarios pueden seleccionar la nueva opcion

Caso 2: Eliminar Opcion No Utilizada

Actor: Administrador del sistema

Precondiciones:

  • La opcion debe existir
  • El usuario debe estar autenticado como administrador

Flujo principal:

  1. El administrador accede a la configuracion del campo
  2. El administrador localiza la opcion a eliminar
  3. El administrador presiona "Eliminar"
  4. El sistema solicita confirmacion
  5. El administrador confirma la eliminacion
  6. El sistema marca la opcion con fecha de eliminacion
  7. El sistema muestra notificacion de exito

Postcondiciones:

  • La opcion ya no aparece en selectores
  • Los registros existentes que usaban la opcion mantienen su valor
  • La opcion permanece para consultas historicas

Caso 3: Reordenar Opciones

Actor: Administrador del sistema

Precondiciones:

  • El campo debe tener multiples opciones
  • El usuario debe estar autenticado como administrador

Flujo principal:

  1. El administrador accede a la configuracion del campo
  2. El administrador visualiza las opciones con sus ordenes actuales
  3. El administrador edita cada opcion y cambia el valor de orden
  4. El sistema actualiza el orden de cada opcion
  5. Las opciones se reorganizan segun el nuevo orden

Postcondiciones:

  • Los selectores muestran las opciones en el nuevo orden
  • Los valores almacenados no se modifican

Caso 4: Consultar Opciones de un Campo

Actor: Sistema (frontend)

Precondiciones:

  • El campo debe existir

Flujo principal:

  1. El frontend solicita las opciones del campo
  2. El sistema obtiene las opciones activas (sin deleted_at)
  3. El sistema ordena por campo 'orden'
  4. El sistema retorna la lista de opciones
  5. El frontend renderiza el dropdown con las opciones

Postcondiciones:

  • El dropdown muestra solo opciones activas
  • Las opciones aparecen ordenadas correctamente

Consideraciones

Seguridad

  • Solo administradores pueden gestionar opciones
  • Los usuarios regulares solo pueden seleccionar opciones en formularios
  • No se expone informacion sensible en las opciones

Auditoria

  • Se registra quien crea cada opcion
  • Se registra la fecha de eliminacion logica
  • Los cambios en etiquetas deben registrarse

Rendimiento

  • Las opciones se cargan junto con el campo
  • La cantidad de opciones por campo debe ser razonable (menos de 50)
  • Se recomienda cachear opciones en el frontend

Dependencias

Funcionalidades Relacionadas

  • Campos Personalizados: Las opciones pertenecen a campos de tipo seleccion
  • Registros CRM: Los registros almacenan el valor de la opcion seleccionada
  • Valores de Campo: Tabla que almacena los valores seleccionados

Prerequisitos

  • Campo personalizado de tipo 'select' creado
  • Permisos de administracion

Criterios de Aceptacion

  • [ ] AC-001: El administrador puede agregar opciones a un campo de seleccion
  • [ ] AC-002: Cada opcion tiene valor numerico, etiqueta y orden
  • [ ] AC-003: El sistema rechaza valores duplicados en el mismo campo
  • [ ] AC-004: Las opciones se ordenan segun el campo orden
  • [ ] AC-005: El administrador puede modificar etiqueta y orden de opciones existentes
  • [ ] AC-006: El administrador puede eliminar opciones (eliminacion logica)
  • [ ] AC-007: Las opciones eliminadas no aparecen en selectores
  • [ ] AC-008: Los registros historicos mantienen referencia a opciones eliminadas
  • [ ] AC-009: Solo opciones activas se muestran en formularios
  • [ ] AC-010: La creacion de opciones se incluye en transaccion del campo
  • [ ] AC-011: El valor numerico no puede modificarse una vez creado

Notas Adicionales

  • El valor numerico permite almacenamiento eficiente y reportes numericos
  • La etiqueta es lo que ve el usuario, independiente del valor almacenado
  • La eliminacion logica preserva la integridad de datos historicos
  • El ordenamiento permite control total sobre la presentacion
  • Las opciones se gestionan principalmente a traves del endpoint del campo padre
  • Los endpoints directos de opciones son para consultas especificas