Skip to content

Gestion de Miembros

Esta sección documenta el ABM (Alta, Baja, Modificación) completo de miembros del sistema de membresías, incluyendo la gestión de sus relaciones con disciplinas y productos.

Descripción General

El módulo de gestión de miembros es el core del sistema de membresías. Permite:

  • Alta de miembros: Registro completo con datos básicos, comerciales y de membresía
  • Gestión de estado: Activación, desactivación y reactivación de miembros
  • Relaciones: Asignación de disciplinas y productos con ajustes de precio
  • Operaciones masivas: Asignación y eliminación masiva de productos a múltiples miembros
  • Consultas avanzadas: Filtrado complejo por estado, categoría, disciplina, producto con búsqueda global

Componentes Documentados

ABM de Miembros

  • Gestión de Miembros: CRUD completo de miembros
    • Listado con paginación server-side y filtros combinados
    • Crear miembro con validación Zod
    • Editar completo (PUT) y parcial (PATCH)
    • Ver detalle con scope 'max' (incluye categoría, disciplinas, productos, grupo familiar)
    • Dar de baja con motivo y fecha
    • Reactivar miembro con eventos de dominio

Disciplinas del Miembro

  • Disciplinas del Miembro: Gestión de disciplinas asignadas
    • Listar disciplinas del miembro
    • Asignar disciplina con marca de principal
    • Editar relación miembro-disciplina
    • Eliminar disciplina con confirmación
    • Validación de duplicados

Productos del Miembro

  • Productos del Miembro: Gestión de productos y asignación masiva
    • Listar productos con ajustes de precio
    • Asignar producto con ajuste (signo, tipo P/F, valor)
    • Editar ajuste de precio
    • Eliminar producto con confirmación
    • Asignación masiva: Mismo producto a múltiples miembros
    • Eliminación masiva: Producto de múltiples miembros
    • Reporte de resultados (exitosos/omitidos con razones)

Reglas de Negocio Principales

RN-001: Estados de Miembro

Un miembro puede tener tres estados:

  • Activo: Miembro vigente con todos los derechos
  • Inactivo: Dado de baja (con fecha y motivo)
  • No socio: Cliente sin membresía activa

RN-002: Baja con Grupo Familiar

Si el miembro pertenece a un grupo familiar y es el titular, al darse de baja:

  • Opcionalmente se designa nuevo titular
  • Automáticamente se elimina del grupo familiar (evento de dominio)

RN-003: Reactivación

La reactivación de un miembro:

  • Limpia fecha_baja y motivo_baja
  • Dispara evento MiembroReactivacionEvent
  • No restaura automáticamente el grupo familiar previo

RN-004: Ajustes de Precio en Productos

Los productos asignados a miembros pueden tener ajustes:

  • Signo: Incremento (+) o Descuento (-)
  • Tipo: Porcentual (P) o Fijo (F)
  • Valor: Monto o porcentaje del ajuste

RN-005: Asignación Masiva

La asignación masiva de productos:

  • Aplica el mismo producto con el mismo ajuste a todos los miembros seleccionados
  • Omite miembros que ya tienen el producto asignado
  • Retorna reporte detallado con exitosos y omitidos

RN-006: Disciplina Principal

Un miembro puede tener múltiples disciplinas, pero solo una marcada como principal.

Flujos de Usuario Comunes

1. Alta de Nuevo Miembro

  1. Acceder a "Bases > Miembros > Nuevo"
  2. Completar datos básicos (nombre, identificación, contacto)
  3. Completar datos comerciales (localidad, condición IVA)
  4. Completar datos de membresía (categoría, sexo, fecha nacimiento)
  5. Opcional: Crear grupo familiar, asignar disciplinas, asignar productos
  6. Guardar

2. Dar de Baja un Miembro

  1. Desde listado de miembros, seleccionar "Dar de baja"
  2. Ingresar fecha de baja y motivo
  3. Si es titular de grupo familiar: Opcionalmente designar nuevo titular
  4. Confirmar
  5. Sistema elimina automáticamente del grupo familiar

3. Asignación Masiva de Productos

  1. Acceder a "Utilidades > Asignación de Productos"
  2. Seleccionar múltiples miembros (checkboxes)
  3. Seleccionar producto
  4. Configurar ajuste de precio (opcional)
  5. Ejecutar asignación
  6. Ver reporte de resultados

Vistas Frontend

  • /bases/miembros - Listado de miembros
  • /bases/miembros/nuevo - Crear miembro
  • /bases/miembros/:id/editar - Editar miembro
  • /utilidades/asignacion-productos - Asignación masiva de productos

Modales

  • BajaMiembroModal - Dar de baja miembro
  • AltaMiembroModal - Reactivar miembro
  • MiembroDisciplinaListModal - Listar disciplinas del miembro
  • AddMiembroDisciplinaModal - Asignar disciplina
  • EditMiembroDisciplinaModal - Editar disciplina
  • ConfirmDeleteMiembroDisciplinaModal - Eliminar disciplina
  • MiembroProductoListModal - Listar productos del miembro
  • AddMiembroProductoModal - Asignar producto
  • EditMiembroProductoModal - Editar producto
  • ConfirmDeleteMiembroProductoModal - Eliminar producto

Endpoints API

Miembros

  • GET /mod-membresia/miembros - Listar con filtros y paginación
  • GET /mod-membresia/miembros/{id} - Ver detalle
  • POST /mod-membresia/miembros - Crear
  • PUT /mod-membresia/miembros/{id} - Actualizar completo
  • PATCH /mod-membresia/miembros/{id} - Actualizar parcial
  • DELETE /mod-membresia/miembros/{id} - Dar de baja
  • POST /mod-membresia/miembros/{id}/reactivar - Reactivar

Disciplinas del Miembro

  • GET /mod-membresia/miembros/{id}/disciplinas - Listar
  • POST /mod-membresia/miembros/{id}/disciplinas - Asignar
  • PUT /mod-membresia/miembros/{id}/disciplinas/{disciplinaId} - Actualizar
  • DELETE /mod-membresia/miembros/{id}/disciplinas/{disciplinaId} - Eliminar

Productos del Miembro

  • GET /mod-membresia/miembros/{id}/productos - Listar
  • POST /mod-membresia/miembros/{id}/productos - Asignar
  • PUT /mod-membresia/miembros/{id}/productos/{productoId} - Actualizar
  • DELETE /mod-membresia/miembros/{id}/productos/{productoId} - Eliminar

Operaciones Masivas

  • POST /mod-membresia/bulk/miembros-productos - Asignar producto a múltiples
  • DELETE /mod-membresia/bulk/miembros-productos - Eliminar producto de múltiples

Eventos de Dominio

  • MiembroBajaEvent - Disparado al dar de baja un miembro

    • Listener: RemoveMiembroFromGrupoListener (elimina del grupo familiar)
  • MiembroReactivacionEvent - Disparado al reactivar un miembro

    • Listener: ActualizarSistemasExternosListener (notifica sistemas externos)

Dependencias

Funcionalidades Relacionadas

  • Grupos Familiares: Al dar de baja o reactivar, se actualiza el grupo familiar
  • Categorías de Membresía: Cada miembro debe tener una categoría asignada
  • Disciplinas (Catálogo): Las disciplinas asignadas provienen del catálogo base
  • Productos (Ventas): Los productos asignados provienen del módulo de Ventas
  • Facturación por Lotes: Utiliza los datos de miembros, productos y disciplinas

Módulos Externos

  • Ventas: Productos asignados a miembros
  • CtaCte: Datos comerciales del cliente (condición IVA, vendedor)

Estadísticas

  • 3 documentos de requisitos de negocio
  • 45 criterios de aceptación (todos implementados)
  • 17 reglas de negocio
  • 10 casos de uso detallados
  • 11 endpoints API
  • 11 modales de interfaz

Estado

Implementado - Todas las funcionalidades están en producción


Última actualización: 2026-01-27