Disponible entre dos fechas en rangos de fechas inicial y final

Encontrar si esta disponible entre dos fechas en rangos de fechas inicial y final con filtro adicional

En algunas ocasiones necesitamos hacer búsquedas en rangos de fechas (inicial y final) adicional de un filtro para determinar si hay disponibilidad de asignarlo en ese intervalo.

Tablero con los condiciones para determinar si esta disponible.

Esta disponible en las condiciones: a, m

Ejemplo

Formulario

Las reglas que usaremos para validar si esta disponible son

Controller

 if (!viajeServices.vehiculoDisponible(viaje)) {
                JsfUtil.warningMessage("El vehiculo no esta disponible en ese rango de fecha y hora"));
                return null;
            }

ViajesServices.java

  • Definimos el metodo vehiculoDisponible que recibe un entity de tipo viajes que contiene las fechas de inicio, fin y el entity vehiculo, para que realice la búsqueda.

  public Boolean vehiculoDisponible(Viaje viajes) {
        try {
            //Vehiculos en viajes

           return repository.isAvailableBetweenDateHour(eq("vehiculo.idvehiculo", viajes.getVehiculo().getIdvehiculo()),
                   "fechahorainicioreserva", viajes.getFechahorainicioreserva(), "fechahorafinreserva", viajes.getFechahorafinreserva());

        } catch (Exception e) {
            JsfUtil.errorDialog("vehiculoDisponible() ", e.getLocalizedMessage().toString());
        }
        return false;
    }

Last updated