Appearance
Disciplinas
Modulo: Membresias Tipo: Resource Estado: Implementado Fecha: 2026-01-27
Descripcion
Problema que resuelve
Las instituciones que gestionan membresias ofrecen diversas actividades, deportes o disciplinas a sus miembros. Sin un catalogo centralizado de disciplinas, resulta imposible:
- Asignar actividades a los miembros de forma estandarizada
- Controlar cuales disciplinas requieren ficha medica previa
- Vincular cada disciplina con un producto de facturacion para cobrar cuotas diferenciadas por actividad
- Mantener una oferta de actividades consistente y administrable
Solucion implementada
Se implemento un catalogo de disciplinas que permite:
- Administrar disciplinas: Crear, consultar, modificar y eliminar disciplinas disponibles en la institucion
- Vincular producto de facturacion: Cada disciplina tiene un producto asociado del catalogo, permitiendo facturacion diferenciada por actividad
- Control de ficha medica: Marcar cuales disciplinas requieren que el miembro presente ficha medica antes de practicarla
- Alternancia rapida de ficha medica: Activar o desactivar el requerimiento de ficha medica directamente desde la tabla sin abrir el formulario
Valor de negocio
- Estandarizacion: Catalogo unico de actividades disponibles para toda la institucion
- Control sanitario: Identificacion clara de cuales actividades requieren aptitud medica
- Facturacion diferenciada: Cada actividad puede tener un precio diferente a traves del producto asociado
- Eficiencia administrativa: Gestion rapida del requerimiento de ficha medica sin necesidad de editar cada registro completo
Contexto del sistema
Este recurso forma parte del modulo de Membresias y se relaciona con:
- Miembros: Un miembro puede tener asignadas multiples disciplinas
- Productos: Cada disciplina tiene un producto asociado para facturacion
- Disciplinas del Miembro: Recurso que gestiona la relacion entre miembros y disciplinas
Frontend (Perspectiva de Usuario)
Vistas
- Listado de disciplinas: Tabla con todas las disciplinas disponibles, mostrando codigo, nombre, producto asociado e indicador de ficha medica. Accesible desde Inicio > Bases > Disciplinas
Interacciones del usuario
- Consultar disciplinas: El usuario visualiza la tabla completa de disciplinas con sus datos principales
- Crear disciplina: El usuario abre el formulario, completa nombre, selecciona producto y opcionalmente marca requerimiento de ficha medica
- Editar disciplina: El usuario selecciona una disciplina existente, modifica los campos deseados y guarda los cambios
- Eliminar disciplina: El usuario solicita eliminar una disciplina; el sistema valida que no tenga dependencias activas antes de proceder
- Alternar ficha medica: El usuario activa o desactiva el requerimiento de ficha medica directamente desde la tabla mediante un interruptor
Estados de UI
- Estado inicial: Tabla cargada con todas las disciplinas disponibles
- Estado cargando: Indicador de carga mientras se obtienen los datos
- Estado exito: Notificacion de confirmacion al crear, editar o eliminar
- Estado error: Mensaje de error descriptivo cuando falla una operacion
- Estado vacio: Tabla sin registros cuando no hay disciplinas configuradas
Backend (Perspectiva de Datos de Negocio)
Entidades de negocio
Disciplina: Representa una actividad, deporte o disciplina que la institucion ofrece a sus miembros.
Datos necesarios
Cada disciplina debe almacenar:
| Dato | Descripcion | Restricciones |
|---|---|---|
| Codigo | Identificador unico de la disciplina | Generado automaticamente, solo lectura |
| Nombre | Denominacion de la disciplina (ej: "Natacion", "Tenis", "Gimnasia") | Requerido, maximo 50 caracteres |
| Producto asociado | Producto del catalogo vinculado para facturacion de la actividad | Requerido, debe existir en el catalogo de productos |
| Ficha medica | Indica si la disciplina requiere que el miembro presente ficha medica | Valor booleano (si/no) |
Relaciones de negocio
- Disciplina - Producto: Cada disciplina tiene exactamente un producto asociado del catalogo general de productos
- Disciplina - Miembros: Una disciplina puede estar asignada a multiples miembros (relacion gestionada por el recurso "Disciplinas del Miembro")
Validaciones de negocio
- Nombre requerido: El nombre de la disciplina no puede estar vacio y tiene un maximo de 50 caracteres
- Producto requerido: Toda disciplina debe tener un producto asociado valido del catalogo
- Validacion de dependencias: No se puede eliminar una disciplina que tenga miembros asignados
Reglas de negocio
RN-001: Requerimiento de ficha medica
Descripcion: Una disciplina puede requerir que los miembros presenten ficha medica antes de poder practicarla.
Condicion: Se configura el indicador de ficha medica en la disciplina.
Accion: El sistema registra si la disciplina requiere o no ficha medica. Este indicador se utiliza en la gestion de disciplinas del miembro para controlar la aptitud medica.
RN-002: Producto asociado obligatorio
Descripcion: Toda disciplina debe tener un producto del catalogo asociado para permitir la facturacion de la actividad.
Condicion: Al crear o modificar una disciplina.
Accion: El sistema valida que se haya seleccionado un producto existente y valido del catalogo de productos.
RN-003: Proteccion contra eliminacion con dependencias
Descripcion: No se puede eliminar una disciplina que este siendo utilizada por miembros.
Condicion: El usuario solicita eliminar una disciplina.
Accion: El sistema verifica si la disciplina tiene miembros asignados. Si tiene dependencias activas, la eliminacion es rechazada con un mensaje explicativo.
Casos de uso
Caso 1: Crear nueva disciplina
Actor: Usuario administrativo
Precondiciones:
- El usuario esta autenticado en el sistema
- Existen productos configurados en el catalogo
Flujo principal:
- El usuario accede al listado de disciplinas desde Inicio > Bases > Disciplinas
- El usuario selecciona "Nva. Disciplina"
- El sistema presenta el formulario de alta
- El usuario ingresa el nombre de la disciplina (ej: "Natacion")
- El usuario busca y selecciona un producto del catalogo
- Opcionalmente, el usuario marca el requerimiento de ficha medica
- El usuario confirma la creacion
- El sistema valida los datos y crea la disciplina
- El sistema muestra una notificacion: "Disciplina creada correctamente"
Postcondiciones:
- La disciplina queda registrada y disponible para asignar a miembros
Flujos alternativos:
- Error: nombre vacio: El sistema muestra "El nombre es requerido" y no permite guardar
- Error: producto no seleccionado: El sistema muestra "El producto es requerido" y no permite guardar
Caso 2: Alternar requerimiento de ficha medica
Actor: Usuario administrativo
Precondiciones:
- El usuario esta autenticado en el sistema
- Existe al menos una disciplina registrada
Flujo principal:
- El usuario visualiza el listado de disciplinas
- El usuario identifica la disciplina cuyo requerimiento de ficha medica desea cambiar
- El usuario acciona el interruptor de "Ficha Medica" en la tabla
- El sistema actualiza inmediatamente el valor (actualizacion optimista)
- Si la operacion falla, el sistema revierte al valor anterior automaticamente
Postcondiciones:
- El indicador de ficha medica de la disciplina queda actualizado
Flujos alternativos:
- Error de servidor: El sistema revierte el cambio visual y muestra un mensaje de error
Caso 3: Intentar eliminar disciplina con miembros asignados
Actor: Usuario administrativo
Precondiciones:
- Existe una disciplina con miembros asignados
Flujo principal:
- El usuario selecciona la opcion de eliminar en la disciplina
- El sistema verifica las dependencias
- El sistema rechaza la eliminacion indicando que la disciplina tiene miembros asignados
Postcondiciones:
- La disciplina permanece sin cambios en el sistema
Consideraciones
Seguridad
- El acceso a la gestion de disciplinas requiere autenticacion en el sistema
- Las operaciones de eliminacion son validadas contra dependencias antes de ejecutarse
Auditoria
- Las operaciones de creacion, modificacion y eliminacion de disciplinas deben registrarse en el sistema de auditoria
Rendimiento
- El catalogo de disciplinas es un conjunto reducido de datos (tipicamente menos de 30 registros) y debe responder de forma inmediata
- La alternancia de ficha medica utiliza actualizacion optimista para respuesta inmediata al usuario
Dependencias
Funcionalidades relacionadas
- Disciplinas del Miembro: Gestion de la relacion entre miembros y las disciplinas que practican
- Productos: Las disciplinas dependen del catalogo de productos para vincular el producto de facturacion
- Gestion de Miembros: Los miembros pueden tener asignadas multiples disciplinas
Criterios de aceptacion
La funcionalidad se considera completa cuando:
- [x] AC-001: El usuario puede consultar el listado completo de disciplinas con codigo, nombre, producto asociado e indicador de ficha medica
- [x] AC-002: El usuario puede crear una nueva disciplina con nombre, producto asociado y opcionalmente indicador de ficha medica
- [x] AC-003: El usuario puede editar todos los campos de una disciplina existente
- [x] AC-004: El usuario puede eliminar una disciplina que no tenga miembros asignados
- [x] AC-005: El sistema rechaza la eliminacion de una disciplina con miembros asignados
- [x] AC-006: El usuario puede alternar el requerimiento de ficha medica directamente desde la tabla con respuesta inmediata
- [x] AC-007: El sistema muestra notificaciones de exito y error para todas las operaciones
Notas adicionales
- El indicador de ficha medica es una propiedad de la disciplina, no del miembro. Esto significa que si una disciplina requiere ficha medica, todos los miembros que la practiquen deben presentarla
- La alternancia de ficha medica utiliza actualizacion optimista: el cambio se refleja inmediatamente en la interfaz y si falla en el servidor se revierte automaticamente
- A diferencia de las categorias de membresia, la eliminacion de disciplinas no requiere seleccionar un reemplazo; simplemente se valida que no tenga dependencias
Historial de cambios
| Fecha | Version | Autor | Descripcion |
|---|---|---|---|
| 2026-01-27 | 1.0 | Sistema | Creacion del documento de requisitos de negocio (funcionalidad ya implementada) |