Appearance
Categorias de Membresia
Modulo: Membresias Tipo: Resource Estado: Implementado Fecha: 2026-01-27
Descripcion
Problema que resuelve
Las instituciones que gestionan membresias (clubes, gimnasios, asociaciones) necesitan clasificar a sus miembros en diferentes categorias segun criterios como edad, tipo de actividad o plan contratado. Sin un sistema de categorias, la administracion se vuelve caótica: no es posible segmentar miembros para facturacion diferenciada, no se puede automatizar el cambio de categoria cuando un miembro alcanza cierta edad, y la asignacion individual de categorias a grandes volumenes de miembros resulta impracticable.
Solucion implementada
Se implemento un sistema completo de gestion de categorias de membresia que permite:
- Administrar categorias: Crear, consultar, modificar y eliminar categorias de membresia con sus datos asociados
- Asociar producto de facturacion: Cada categoria tiene un producto vinculado que determina el monto a facturar a los miembros de esa categoria
- Cambio automatico por edad: Configurar rangos de edad para que el sistema pueda migrar automaticamente miembros de una categoria a otra cuando alcanzan cierta edad
- Categoria por defecto: Marcar una categoria como predeterminada para nuevos miembros
- Asignacion masiva: Asignar una categoria a multiples miembros en una sola operacion
Valor de negocio
- Segmentacion: Permite clasificar miembros para facturacion diferenciada y gestion administrativa
- Automatizacion: El cambio automatico por edad elimina la necesidad de reclasificar manualmente a cada miembro
- Eficiencia operativa: La asignacion masiva reduce drasticamente el tiempo de gestion cuando se necesita reclasificar grandes grupos
- Consistencia de facturacion: El producto asociado garantiza que todos los miembros de una categoria se facturen al mismo valor
Contexto del sistema
Este recurso forma parte del modulo de Membresias y se relaciona con:
- Miembros: Cada miembro tiene asignada una categoria de membresia
- Productos: Cada categoria tiene un producto asociado que determina el monto de facturacion
- Grupos Familiares: Las categorias pueden variar entre miembros de un mismo grupo familiar
- Facturacion por Lotes: El proceso de facturacion masiva utiliza la categoria del miembro para determinar el producto y monto a facturar
Frontend (Perspectiva de Usuario)
Vistas
- Listado de categorias: Tabla con todas las categorias existentes, mostrando codigo, nombre, producto asociado y marca de defecto. Accesible desde el menu Inicio > Bases > Categorias
- Formulario de alta/edicion: Modal para crear o modificar una categoria, con dos secciones: datos basicos y configuracion de cambio automatico por edad
- Modal de eliminacion: Dialogo de confirmacion que solicita una categoria de reemplazo antes de eliminar
- Vista de asignacion masiva: Pantalla dedicada con tabla de miembros seleccionables, filtro por categoria y accion de asignacion. Accesible desde Inicio > Utilidades > Asignacion de Categorias
Interacciones del usuario
- Consultar categorias: El usuario visualiza la tabla completa de categorias con sus datos principales
- Crear categoria: El usuario abre el formulario, completa los datos obligatorios (nombre, producto) y opcionalmente configura el cambio automatico por edad
- Editar categoria: El usuario selecciona una categoria existente, modifica los campos deseados y guarda los cambios
- Eliminar categoria: El usuario solicita eliminar una categoria; el sistema presenta un dialogo que solicita seleccionar una categoria de reemplazo para los miembros afectados
- Alternar categoria por defecto: El usuario activa o desactiva la marca "por defecto" directamente desde la tabla mediante un interruptor
- Asignacion masiva: El usuario navega a la vista de asignacion, selecciona miembros de la tabla (con opcion de filtrar por categoria actual), presiona "Asignar Categoria" y selecciona la categoria destino en un modal de confirmacion
Estados de UI
- Estado inicial: Tabla cargada con todas las categorias disponibles
- Estado cargando: Indicador de carga mientras se obtienen los datos
- Estado exito: Notificacion de confirmacion al crear, editar, eliminar o asignar masivamente
- Estado error: Mensaje de error descriptivo cuando falla una operacion (ej: "Error al guardar la categoria")
- Estado vacio: Tabla sin registros cuando no hay categorias configuradas
- Asignacion masiva - resultado: Notificacion detallada con cantidad de miembros asignados exitosamente y cantidad omitidos (ya tenian la categoria)
Backend (Perspectiva de Datos de Negocio)
Entidades de negocio
Categoria de Membresia: Representa una clasificacion o tipo de membresia que agrupa a los miembros de la institucion.
Datos necesarios
Cada categoria de membresia debe almacenar:
| Dato | Descripcion | Restricciones |
|---|---|---|
| Codigo | Identificador unico de la categoria | Generado automaticamente, solo lectura |
| Nombre | Denominacion de la categoria (ej: "Socio Pleno", "Cadete", "Jubilado") | Requerido, maximo 50 caracteres |
| Producto asociado | Producto del catalogo vinculado para facturacion | Requerido, debe existir en el catalogo de productos |
| Categoria por defecto | Indica si esta categoria se asigna automaticamente a nuevos miembros | Valor booleano (si/no) |
| Edad desde | Limite inferior del rango de edad para cambio automatico | Opcional, entre 0 y 120 |
| Edad hasta | Limite superior del rango de edad para cambio automatico | Opcional, entre 0 y 120, debe ser mayor que "edad desde" |
| Categoria de cambio automatico | Categoria destino cuando el miembro alcanza el rango de edad configurado | Opcional, debe ser una categoria existente diferente a la actual |
Relaciones de negocio
- Categoria - Producto: Cada categoria tiene exactamente un producto asociado del catalogo general de productos
- Categoria - Miembros: Una categoria puede tener multiples miembros asignados
- Categoria - Categoria (cambio automatico): Una categoria puede referenciar a otra categoria como destino del cambio automatico por edad
Validaciones de negocio
- Nombre requerido: El nombre de la categoria no puede estar vacio y tiene un maximo de 50 caracteres
- Producto requerido: Toda categoria debe tener un producto asociado valido
- Consistencia del cambio automatico: Si se configura el cambio automatico, los tres campos (categoria destino, edad desde, edad hasta) deben estar completos o todos vacios
- Rango de edad valido: La edad desde debe ser menor que la edad hasta
- Categoria destino diferente: La categoria de cambio automatico no puede ser la misma categoria que se esta configurando
- Eliminacion con reemplazo: Al eliminar una categoria, se debe indicar una categoria alternativa para reasignar los miembros existentes
Reglas de negocio
RN-001: Categoria por defecto
Descripcion: Una categoria puede marcarse como "por defecto" para que se asigne automaticamente a nuevos miembros.
Condicion: El usuario activa la marca de defecto en una categoria.
Accion: La categoria se marca como predeterminada. Pueden existir multiples categorias marcadas como defecto; el sistema utiliza esta marca como indicador configurable.
RN-002: Cambio automatico por edad
Descripcion: Una categoria puede configurarse para que los miembros sean automaticamente migrados a otra categoria cuando alcanzan un rango de edad determinado.
Condicion: La categoria tiene configurados los campos de edad desde, edad hasta y categoria destino.
Accion:
- Los tres campos (edad desde, edad hasta y categoria destino) deben estar todos completos o todos vacios
- La edad desde debe ser estrictamente menor que la edad hasta
- La categoria destino debe ser diferente a la categoria actual
- El rango de edad debe estar entre 0 y 120 anos
RN-003: Eliminacion con reasignacion obligatoria
Descripcion: No se puede eliminar una categoria sin antes reasignar a los miembros que la tienen asignada.
Condicion: El usuario solicita eliminar una categoria.
Accion:
- El sistema solicita al usuario que seleccione una categoria alternativa de reemplazo
- La categoria de reemplazo no puede ser la misma que se esta eliminando
- Todos los miembros de la categoria eliminada son reasignados a la categoria de reemplazo
- La eliminacion y la reasignacion se ejecutan como una operacion atomica
RN-004: Asignacion masiva de categoria
Descripcion: Se permite asignar una categoria a multiples miembros en una sola operacion.
Condicion: El usuario selecciona uno o mas miembros y elige una categoria destino.
Accion:
- El sistema procesa cada miembro seleccionado
- Los miembros que ya tienen la categoria seleccionada son omitidos (no se duplica la asignacion)
- El sistema reporta al usuario: cantidad total procesada, cantidad asignada exitosamente y cantidad omitida
- Los detalles de cada miembro procesado (exito u omision con razon) estan disponibles en el resultado
RN-005: Producto asociado obligatorio
Descripcion: Toda categoria de membresia debe tener un producto del catalogo asociado.
Condicion: Al crear o modificar una categoria.
Accion: El sistema valida que se haya seleccionado un producto existente y valido del catalogo de productos.
Casos de uso
Caso 1: Crear nueva categoria de membresia
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 categorias desde Inicio > Bases > Categorias
- El usuario selecciona "Nva. Categoria"
- El sistema presenta el formulario con las secciones de datos basicos y cambio automatico
- El usuario completa el nombre de la categoria (ej: "Socio Cadete")
- El usuario busca y selecciona un producto del catalogo
- Opcionalmente, el usuario marca la categoria como "por defecto"
- Opcionalmente, el usuario expande la seccion de cambio automatico y configura:
- Selecciona la categoria destino (ej: "Socio Pleno")
- Ingresa edad desde (ej: 13)
- Ingresa edad hasta (ej: 17)
- El usuario confirma la creacion
- El sistema valida los datos y crea la categoria
- El sistema muestra una notificacion de exito
Postcondiciones:
- La categoria queda registrada y disponible para asignar a miembros
- Si se configuro cambio automatico, queda vinculada con la categoria destino
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
- Error: cambio automatico incompleto: Si el usuario completa solo algunos campos del cambio automatico, el sistema muestra "Para configurar cambio automatico debe completar: categoria destino, edad desde y edad hasta"
- Error: rango de edad invalido: Si edad desde es mayor o igual a edad hasta, el sistema muestra "La edad desde debe ser menor a la edad hasta"
Caso 2: Eliminar categoria con reasignacion
Actor: Usuario administrativo
Precondiciones:
- El usuario esta autenticado en el sistema
- Existe la categoria a eliminar
- Existe al menos una categoria alternativa
Flujo principal:
- El usuario accede al listado de categorias
- El usuario selecciona la opcion de eliminar en la categoria deseada
- El sistema presenta un dialogo de confirmacion que indica: "Esta seguro que desea eliminar la categoria [Nombre]?" con una advertencia: "Los socios asociados a esta categoria seran reasignados a la categoria de reemplazo seleccionada"
- El usuario selecciona una categoria de reemplazo del selector (que excluye la categoria que se esta eliminando)
- El usuario confirma la eliminacion
- El sistema reasigna todos los miembros a la categoria de reemplazo y elimina la categoria
- El sistema muestra una notificacion de exito
Postcondiciones:
- La categoria queda eliminada del sistema
- Todos los miembros que pertenecian a esa categoria ahora pertenecen a la categoria de reemplazo
Flujos alternativos:
- Cancelacion: El usuario cierra el dialogo sin confirmar y la categoria permanece sin cambios
- Unica categoria: Si solo existe una categoria en el sistema, el boton de eliminar esta deshabilitado
Caso 3: Asignacion masiva de categoria a miembros
Actor: Usuario administrativo
Precondiciones:
- El usuario esta autenticado en el sistema
- Existen categorias y miembros registrados
Flujo principal:
- El usuario accede a la vista de asignacion desde Inicio > Utilidades > Asignacion de Categorias
- El sistema muestra la tabla de miembros activos con casillas de seleccion
- Opcionalmente, el usuario filtra la tabla por categoria actual usando el selector de categorias
- El usuario selecciona los miembros deseados marcando sus casillas
- El sistema muestra el contador de "Miembros seleccionados: N"
- El usuario presiona "Asignar Categoria"
- El sistema presenta un modal donde el usuario selecciona la categoria destino
- El usuario confirma la asignacion
- El sistema procesa la asignacion y reporta: "Categoria asignada a X miembro(s)"
- Si hubo miembros omitidos: "N miembro(s) ya tenian la categoria seleccionada"
- La seleccion se limpia automaticamente y la tabla se refresca
Postcondiciones:
- Los miembros seleccionados tienen asignada la nueva categoria
- Los miembros que ya tenian la categoria no fueron modificados
Flujos alternativos:
- Sin seleccion: El boton "Asignar Categoria" permanece deshabilitado si no hay miembros seleccionados
- Error de proceso: El sistema muestra un mensaje de error y los miembros no son modificados
- Cambio de filtro: Al cambiar el filtro de categoria, la seleccion de miembros se limpia automaticamente
Consideraciones
Seguridad
- El acceso a la gestion de categorias requiere autenticacion en el sistema
- Las operaciones de eliminacion y asignacion masiva son operaciones sensibles que requieren confirmacion explicita del usuario
Auditoria
- Las operaciones de creacion, modificacion y eliminacion de categorias deben registrarse en el sistema de auditoria
- La asignacion masiva debe registrar la cantidad de miembros procesados y el usuario que ejecuto la operacion
Rendimiento
- La asignacion masiva debe procesar multiples miembros en una unica transaccion para garantizar atomicidad
- El listado de categorias es un conjunto reducido de datos (tipicamente menos de 20 registros) y debe responder de forma inmediata
Dependencias
Funcionalidades relacionadas
- Gestion de Miembros: Los miembros tienen una categoria asignada; al crear un miembro se selecciona su categoria
- Productos: Las categorias dependen del catalogo de productos para vincular el producto de facturacion
- Facturacion por Lotes: El proceso de facturacion masiva utiliza la categoria del miembro para determinar el monto a facturar
- Grupos Familiares: Miembros de un mismo grupo pueden tener diferentes categorias
Criterios de aceptacion
La funcionalidad se considera completa cuando:
- [x] AC-001: El usuario puede consultar el listado completo de categorias con codigo, nombre, producto asociado y marca de defecto
- [x] AC-002: El usuario puede crear una nueva categoria con nombre, producto asociado y opcionalmente marca de defecto
- [x] AC-003: El usuario puede configurar cambio automatico por edad especificando categoria destino, edad desde y edad hasta
- [x] AC-004: El sistema valida que los tres campos de cambio automatico esten todos completos o todos vacios
- [x] AC-005: El sistema valida que la edad desde sea menor que la edad hasta
- [x] AC-006: El usuario puede editar todos los campos de una categoria existente
- [x] AC-007: Al eliminar una categoria, el sistema solicita una categoria de reemplazo y reasigna los miembros
- [x] AC-008: El usuario puede alternar la marca "por defecto" directamente desde la tabla
- [x] AC-009: El usuario puede asignar masivamente una categoria a multiples miembros seleccionados
- [x] AC-010: La asignacion masiva reporta cantidad de miembros asignados exitosamente y cantidad omitidos
- [x] AC-011: El filtro por categoria en la vista de asignacion masiva limpia la seleccion al cambiar
- [x] AC-012: El sistema muestra notificaciones de exito y error para todas las operaciones
Notas adicionales
- La eliminacion de una categoria requiere seleccionar una categoria de reemplazo, lo cual garantiza que nunca queden miembros sin categoria asignada
- El cambio automatico por edad es una configuracion declarativa en la categoria; el proceso que efectivamente ejecuta la migracion de miembros se maneja en otra funcionalidad del modulo
- La asignacion masiva reemplaza la categoria actual del miembro por la nueva categoria seleccionada; no se acumulan multiples categorias por miembro
Historial de cambios
| Fecha | Version | Autor | Descripcion |
|---|---|---|---|
| 2026-01-27 | 1.0 | Sistema | Creacion del documento de requisitos de negocio (funcionalidad ya implementada) |