- En el WS personalizado para DreamFit, al realizar la baja de un servicio no se traspasaba correctamente el motivo de la baja indicado.
- En el caso del WS específico para DreamFit, si en la contratación se indica un precio forzado (diferente de cero) para el contrato o alguno de sus periodos, se calculará el descuento sobre el precio normal que significaría este precio forzado y este datos se incluirá como información de descuento realizado sobre el pago (tabla DescuentosPago). En caso de que el precio forzado sea 0, tal como hasta ahora, se considerará que se realiza una venta sin cargo, por lo que no se generará pago.
- WebService DreamFit: Al obtener datos del contrato actual de la persona y/o sus familiares, también se tendrán en cuenta los contratos correspondientes a servicios con el flag EsAbonado.
- Al realizar una contratación de servicio simple con precios forzados, si el usuario para el que se realiza el contato ya tenía un contrato previo y el titular del contrato global no era él mismo, se producía un error que provocaba que la venta del contrato se realizara usando lo definido en las reglas de Deporwin y no los precios forzados indicados.
- En WebService personalizado de DreamFit se añade la posibilidad de, al contratar un servicio, indicar que periodos se van a vender en la contratación e incluso indicar qué importe se aplicará a cada una de las cuotas de esos periodos (o la calculada por el sistema si no se indica).
- Solventado problema al obtener las reservas de recursos para un titular. Se estaban devolviendo las reservas de ese titular y todas las reservas que tuviesen integrantes, en lugar de solo aquellas en las que el titular fuese integrante.
- En WebService de DreamFit se ha añadido al método ObtenerDisponibilidadClasesPuntuales información de los monitores de las clases.
- GET /productos.svc/productos ahora permite ordenación
- GET /general.svc/centros ahora permite ordenación
- GET /general.svc/centros ahora devuelve el país, provincia y población de los centros (si está informada)
- POST /recursos.svc/reservas ahora permite bloquear una plaza sin asignarla a una persona ni generar pagos.
Para funcionar de esta manera, se tiene que especificar el parámetro TipoTitular=3 (ninguno). Estas reservas no tienen pagos asociados, ni se aplican restricciones personales, ni requieren transacción.
- Desde el anterior DSuite se añadió la posibilidad de filtrar y obtener un recurso según si era un técnico o un espacio mediante el parámetro/propiedad "TipoRecurso". Para evitar confusiones con el IdTipoRecurso (una manera de clasificarlos), se ha decidido cambiarlo de forma que ahora:
- Al recibir datos de un recurso, la propiedad EsRecursoHumano indica con true si es un recurso humano (Técnico, terapeuta, entrenador, monitor, médico...) o false si es un espacio (Instalación, campo, pista, sala...).
- Al solicitar recursos se dispone del filtro RecursoHumano de forma que, si no se especifica se obtienen tanto técnicos como espacios, True obtiene solo técnicos y False solo espacios.
- Nuevo método GET /economico.svc/movimientos para obtener los movimientos económicos de una persona
- PUT /actividades.svc/clases/{codigo}/asistencias ahora requiere autenticarse con TokenLoginPersona.
Ahora guarda de manera independiente el estado de asistencia informado por el monitor y el del usuario. Prevalece siempre el del monitor; el del usuario se almacena a modo informativo.
Cada cambio en el "EstadoAsistencia" de una persona queda registrado en su historial. Si el que cambia el estado es el monitor, también queda registrado en su historial.
- GET /actividades.svc/clases/{codigo}/asistencias ahora devuelve el estado de asistencia informado por usuario por separado del informado por el monitor.
- PUT/DELETE /recursos.svc/reservas/{Id}/asistencia ahora guarda de manera independiente el estado de asistencia informado por el monitor y el del usuario. Prevalece siempre el del monitor; el del usuario se almacena a modo informativo.
Cada cambio en este valor queda registrado en su historial. Si el que cambia el estado es el monitor, también queda registrado en su historial.
- Los métodos que devolvían personas devolvían tipos de documento de identidad vacíos si estos eran "personalizados". Ahora se devuelve su abreviatura.
- Nuevo método GET /economico.svc/monederovirtual/{idPersona}/movimientos para obtener los movimientos del monedero virtual
- Nuevo método GET /personas.svc/personas/{id}/logros para obtener los logros de una persona.
- Nuevo método GET /gamificacion.svc/logrospersona/{id}/beneficios para obtener los beneficios conseguidos por un logro de una persona.
- GET /economico.svc/movimientos ahora permite la ordenación de los datos por uno o varios datos.
- Nuevo método POST /personas.svc/personas/{id}/perfiles para asignar un perfil a una persona.
- GET /competiciones.svc/partidos ahora devuelve el IdReserva del recurso donde se disputará el partido/entrenamiento
- GET /economico.svc/monederovirtual/{idPersona}/movimientos y GET /economico.svc/movimientos ahora permiten solicitar como dato opcional la lista de formas de pago implicadas en esos movimientos.
- GET /actividades.svc/actividades/{id} y GET /actividades.svc/actividades ahora devuelven las descripciones traducibles y la ampliada.
- PUT /economico.svc/transacciones/{Id} ahora permite especificar detalles de la tarjeta bancaria, que se almacenarán en la línea de transacción y en los pagos.
Además también se soporta el cambio dinámico de forma de pago si se paga con tarjeta bancaria y el tipo+modalidad externo coincide con alguno de los de la tabla de equivalencias de formas de pago con tarjetas.
- Obtener asistencias de una clase sin asistencias solicitando además el dato adicional "PersonaNombreApellidos" daba un error.
- Nuevo método ConfirmarAsistenciaReservaRecurso
PUT /recursos.svc/reservas/{Id}/asistencia
- Nuevo método CancelarAsistenciaReservaRecurso
DELETE /recursos.svc/reservas/{Id}/asistencia
- Modificación método InsertarDocumento para permitir vincular un documento a una reserva de recurso.
POST /general.svc/documentos
- Método para obtener reservas de recursos ahora también indica si la asistencia está confirmada o no.
GET /recursos.svc/reservas
- Cuando se obtienen las modalidades de pago de una unidad de venta de una reserva de recurso ahora se indica el identificador de la forma de pago a la que pertenece.
GET /recursos.svc/reservas/ventapredeterminada
- Al obtener formas de pago, se devuelve un nuevo tipo de forma de pago para indicar que sirve para pagar bonos.
GET /economico.svc/formaspago
- Al obtener una reserva de una clase ahora también se devuelve el IdElemento que se reservó (únicamente si se reservó)
- Nuevo método para obtener la venta predeterminada de una reserva ya existente. Útil para calcular la venta necesaria para una reserva con la venta aplazada.
GET /recursos.svc/reservas/{Id}/ventapredeterminada
- Nuevo método para generar la venta de una reserva que tuviera la venta aplazada.
POST /recursos.svc/reservas/{Id}/venta
- Incluye modificaciones en la gestión de transacciones para soportar tener 2 transacciones diferentes para una reserva: la de la reserva (con venta aplazada) y la de la venta.
Si la transacción correspondiente a una reserva con venta aplazada no se confirma, se anula la reserva.
Si la transacción de una venta de una reserva caduca antes de confirmarla, se anula la venta, pero la reserva se deja en disco y con venta aplazada.
- Nuevo método para obtener un listado de todos los productos
GET /productos.svc/productos
- NOTA: como se ha introducido el nuevo "espacio de nombres" "productos.svc", es necesario modificar manualmente el web.config de los clientes para añadirlo.
- Nuevo método para obtener familias de productos
GET /productos.svc/familiasproductos
- Nuevo método para obtener las subfamilias de producto. Permite el filtrado por IdFamilia
GET /productos.svc/subfamiliasproductos
- Nuevo método para obtener los centros donde está disponible un producto.
GET /productos.svc/productos/{id}/centros
- Nuevo método para vender productos.
POST /productos.svc/ventas
- Se ha añadido un parámetro para "simular" la venta y así poder conocer el detalle de los precios y descuentos que se aplican sin tener que realizar la venta en disco.
- Nuevo método para obtener los centros. Se permite filtrar para obtener solo aquellos que estén dentro del rango de categorías especificado.
GET /general.svc/centros
- Nuevo método para obtener el precio de una clase con elementos
GET /actividades.svc/clases/{codigo}/elementos/{id}/precio
- Nuevo método para obtener los tipos de centro. Incluye un nuevo campo para indicar la categoría del centro.
GET /general.svc/tiposcentros
- Al obtener datos de personas ahora también se devuelve el IdCentro de la persona (si tiene alguno).
- DeporNetWS - Obtención de precios de productos y venta de productos se hace en base a:
1. Al almacén principal del IdCentro especificado
2. A uno de los almacenes si el IdCentro no tiene almacén principal definido
3. Al almacén predeterminado del webservice si no se especifica IdCentro.
- Incluye cambio en Ventajet en la función para obtener una lista de conceptos incluyendo precio ya que antes no se tenía en cuenta si había un precio definido para un almacén concreto.
- Mejorada la actualización del checksum de los ArchivosOrigenes (GET /actividades.svc/actividades/{id}/fotografia y GET /productos.svc/productos/{id}/fotografia)
- Nuevo método GET /productos.svc/productos/{id}/fotografia.
Al obtener fotografía de un producto se intenta buscar en ArchivosOrigenes y si no se encuentra se busca en la ruta de ImagenesConceptos. Si no existe el ArchivosOrigen se autoactualiza con una copia en JPEG de la imagen que hubiera en ImagenesConceptos.
- En GET /competiciones.svc/campeonatos se se filtraba por Categoría y/o Deporte solo se devolcían los campeonatos que tenían esa Categoría/Deporte. Ahora también se devuelven los campeonatos sin Categoría/Deporte informados.
- Nuevo método para modificar una reserva de recurso
PUT /recursos.svc/reservas/{id}
- GET /recursos.svc/reservas ahora permite filtrar por reservas realizadas en uno o varios recursos mediante el parámetro IdsRecursos
- En las llamadas para generar un TokenLoginDesarrollador que devuelven 403, se ha añadido información al log para saber si es debido al Usuario o a la Contraseña proporcionadas.
- Las reservas de recursos no tenían descripción en la reserva. Ahora tienen la misma que las realizadas desde Reserwin (el nombre del titular)
- Fallaba la modificación de las asistencias a una clase
PUT /actividades.svc/clases/{codigo}/asistencias
- No se devolvía el estado de una asistencia si el estado era "NoEspecificado"
GET /actividades.svc/clases/{codigo}/asistencias
- En el login de persona ahora se gestionan mejor las cadenas de login directo (TokenExterno) generadas sin seguir al 100% la especificación. Ahora se admiten claves duplicadas (siempre que tengan el mismo valor)
POST /autenticacion.svc/tokenloginpersona con un TokenExterno
- Ahora ya no se registran en el log los valores de las contraseñas de las llamadas recibidas.
- Nuevo método para modificar la asistencia a una clase.
PUT /actividades.svc/clases/{codigo}/asistencias
- Modificación GET /recursos.svc/recursos para poder filtrar por TipoRecurso y al devolver el recurso también se devuelve este tipo.
De esta manera se puede filtrar/diferenciar entre recursos correspondientes a espacios (instalaciones, pista, campo, sala...) o a técnicos (entrenadores, terapeutas...).
- Nueva funcionalidad para la reserva de elementos concretos de una clase (si la clase lo permite)
Se devuelve la propiedad "AdmiteReservaElementos" obtener la disponibilidad para saber si una clase tiene elementos:
GET /actividades.svc/clases/disponibilidad
Para reservar un elemento:
POST /actividades.svc/clases/reservas especificando IdElemento
Para ver los elementos de una clase y su representación:
GET /actividades.svc/clases/{codigo}/elementos
- Si se cerraba una transacción con una forma de pago pendiente (p.e. "Pago en recepción") se producía una anulación del pago original (cesta), y se volvía a generar otro pago con la forma de pago pendiente.
Este comportamiento no es incorrecto, pero en el caso de reservas multiiintegrante con varios conceptos (p.e. reserva y luz) podía suponer un problema porque se generaba un volumen de pagos elevado. Con esta mejora no se crearán nuevos pagos ni anulaciones.
- Las personas creadas/modificadas mediante el WebService no guardaban:
- Usuario, fecha y hora de creación y modificación.
- No tenían marcado el flag AltaPorInternet=True
- No se guardaba ninguna línea en el historial para indicar la acción de creación/modificación.
- Las funciones ObtenerFormasPago y CerrarTransaccion ahora soportan un nuevo tipo de forma de pago "PendienteCobro" (pago en recepción).
Para activar esta forma de pago es necesario:
- Tener una forma de pago "Cobrado por defecto=Falso"
- Activar esta forma de pago en la caja correspondiente a DeporNetWS.
- Eliminación parámetro no usado "IdFormaPago" en función "ReservarRecurso"
- La función de obtención de formas de pago ya no retorna formas de pago cuyo tipo sea desconocido.
- [GET] recursos.svc/recursos no obtenía correctamente los recursos con horario semanal definido (no absoluto) según las fechas de inicio y fin horario que se especificaban.
- En WebService de DreamFit resueltos bugs en contratación:
- Cuando se producían errores en el proceso se perdían contratos anteriores
- Al abortarse el proceso de contratación no se eliminaban los datos y la ficha de persona