Funcionalidad de Cobros de Gestión
Descripción
Esta funcionalidad permite a los organizadores configurar quién paga las tarifas de gestión asociadas a sus eventos. Los organizadores pueden tener configuradas tarifas con diferentes tipos (monto fijo, porcentaje, o combinado) y esta funcionalidad permite decidir si el participante o el organizador absorbe estos costos.Características Implementadas
1. Base de Datos
- Nuevos campos en la tabla
eventos:management_fees_config: JSON para configuración adicionalparticipant_pays_fees: Boolean (true si el participante paga)organizer_pays_fees: Boolean (true si el organizador paga)
2. Modelo Evento
- Agregados los nuevos campos al
$fillabley$casts - Método
getOrganizerTariffConfig()para obtener la configuración de tarifas del organizador
3. Controlador
ManagementFeesControllercon métodos:index(): Muestra la configuración actualupdate(): Actualiza la configuración- Validación de permisos de acceso
4. Vistas
- Vista principal en
resources/views/eventos/config/management_fees/index.blade.php - Muestra la configuración de tarifas del organizador
- Formulario para configurar quién paga las tarifas
- Integración con el sistema de navegación existente
5. Rutas
GET events/config/management-fees/{id}: Ver configuraciónPUT events/config/management-fees/{id}/update: Actualizar configuración
Cómo Usar
Para Organizadores
-
Acceder a la configuración:
- Ir a la edición de un evento
- En el menú lateral, expandir la sección “Configuración”
- Hacer clic en “Cobros de Gestión” (debajo de “Impuestos”)
-
Ver configuración del organizador:
- La vista muestra automáticamente las tarifas configuradas para el organizador
- Incluye tipo, monto, porcentaje, período y estado
-
Configurar quién paga:
- Seleccionar entre “Participante” o “Organizador”
- Agregar configuración adicional si es necesario
- Guardar los cambios
Para Desarrolladores
Acceder a la configuración programáticamente:
Aplicar la lógica de cobros:
Estructura de Archivos
Validaciones
- Solo organizadores y administradores pueden acceder
- Validación de que al menos una opción esté seleccionada
- Validación de tipos de datos para los campos booleanos
Notas Técnicas
- Los campos son mutuamente excluyentes (solo uno puede ser true)
- La configuración se guarda en formato JSON para flexibilidad
- Integración completa con el sistema de navegación existente
- Compatible con el sistema de tarifas existente
- Acceso desde el menú lateral de configuración de eventos
