Y al guardar una nueva tarifa quiero ver si hay solapamiento.
La tarifa nueva no tiene obligatoriamente fecha fin, pero si de inicio.
Si la fecha fin es null es que no puede haber nada en histórico después del a fecha inicio de la nueva tarifa.
He hecho el siguiente código pero no se si se me escapa alguna caso.
Código Java:
Ver original
public boolean solapaTarifaConHistorico(Tarifa tarifa) { if (CollectionUtils.isNotEmpty(tarifasHistoricas)) { for (Tarifa historica : tarifasHistoricas) { if (tarifa.getFechaFin() == null) { if (tarifa.getFechaInicio().after(historica.getFechaInicio()) || tarifa.getFechaInicio().before(historica.getFechaFin())) { return true; } } else { if (historica.getFechaInicio().after(tarifa.getFechaInicio()) && !tarifa.getFechaInicio().after(tarifa.getFechaFin())) { return true; } if (historica.getFechaFin().before(tarifa.getFechaFin()) && !tarifa.getFechaFin().before(tarifa.getFechaInicio())) { return true; } } } } return false; }
Si alguien le puede echar un ojo y ver si esta correcto.
Muchas gracias.