Actualizar las fechas en rango de dos fechas y validar los disponibles excluyendo el entity actual

Actualizar las fechas en rango de dos fechas y validar los disponibles excluyendo el entity actual

Cuando implementamos los filtros en rangos de dos fechas, a veces necesitamos editar las fechas/hora de inicio o fin, y necesitamos evaluar que estén disponibles para asignar un vehículo, pero nos encontramos en la situación que debemos excluir el Entity actual de la búsqueda debió a que nos indicaría que el ya existe, y deseamos es modificar la fecha u hora.

  • Para ello agregamos al filtro ne("viajes.idviaje",viaje.getIdviaje());, de esta manera realiza la búsqueda entre los demás registros e ignora el mismo para permitir su edición.

Bson filter= Filters.and(eq("vehiculo.idvehiculo",viaje.getVehiculo().getIdvehiculo()),eq("activo","si"),ne("idviaje",viaje.getIdviaje()));

    return repository.isAvailableBetweenDateHour(filter,
                   "fechahorainicioreserva", viaje.getFechahorainicioreserva(), "fechahorafinreserva", viaje.getFechahorafinreserva());

Crear Formulario para editar solo las fechas

Vista:

  • Se crean dos objetos de tipo fecha para almacenar el valor de la fecha/hora de inicio y de fin.

  • Controller

Declara los atributos y definir los métodos set/get

init()

  • Agregar la validación para viewfecha

  • Obtener los valores de la fecha/hora de inicio y fin actuales

edit()

handleSelected

  • Maneja eventos del calendar y valida las fechas/horas

completeVehiculo(String query)

  • Se utiliza para generar el List<Vehiculo> que sera mostrado en el autocomplete en base la disponibilidad o no en el rango de fechas.

isVehiculoActivoDisponible(Vehiculo vehiculo)

  • Verifica si el vehículo esta disponible

isVehiculoActivoDisponibleExcluyendoMismoViaje(Vehiculo vehiculo)

  • Verifica si esta disponible excluyendo el mismo viaje , se usa cuando se va a editar un viaje y debe mostrar el vehiculo que estaba asignado.

ViajeServices.java

  • En el método agregamos el filtro por idvehiculo, activo y que no sea el viaje actual, para que lo excluya de la búsqueda.

vehiculoDisponibleExcluyendoMismoViaje()

  • Filtra los registros de viajes excluyendo el mismo viaje, util para ediciòn

viajesVehiculoChoques()

  • Devuelva la lista de Viajes con que choca ese vehiculo

isValidDate(Viaje viaje)

  • Valida que los rangos de fechas sean correctos

Pagina

Last updated

Was this helpful?