diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java index 12b5645ee..33c4b6935 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java @@ -49,6 +49,7 @@ import com.rjconsultores.ventaboletos.entidad.Moneda; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.ReservaEspecialCliente; import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.entidad.RutaCombinacion; import com.rjconsultores.ventaboletos.entidad.RutaSecuencia; import com.rjconsultores.ventaboletos.entidad.Tarifa; import com.rjconsultores.ventaboletos.entidad.Tramo; @@ -1045,13 +1046,26 @@ public class CorridaServiceImpl implements CorridaService { String unoNumeOperacion= null ; Tramo tramo = null; Date fecViaje = corrida.getFechorsalida(); - for (CorridaTramo corridaTramo : corrida.getCorridaTramoList()) { - if(corridaTramo.getOrigem()!=null && corridaTramo.getOrigem().getParadaId().intValue()==unoTerminalOrigenId.intValue() - && corridaTramo.getDestino()!=null && corridaTramo.getDestino().getParadaId().intValue()==unoTerminalDestinoId.intValue()) - tramo = corridaTramo.getTramo(); - fecViaje = corridaTramo.getFechorsalidaH(); - break; + Ruta ruta = rutaService.obtenerID(corrida.getRuta().getRutaId()); + for(RutaCombinacion rutaCombinacion :ruta.getRutaCombinacionList()) { + if((rutaCombinacion.getTramo().getOrigem().getParadaId().intValue()==unoTerminalOrigenId.intValue()) + && (rutaCombinacion.getTramo().getDestino().getParadaId().intValue()==unoTerminalDestinoId.intValue()) ) { + tramo = rutaCombinacion.getTramo(); + break; + } } + + for (CorridaTramo corridaTramo : corrida.getCorridaTramoList()) { + //(Se origem corridatramo = origem cadastrada && destino corridatramo = destino cadastrado) + // ou (se origem corridatramo = destino do cadastrado), tendo em vista que corridatramo são a sequencias e não as combinações + if(((corridaTramo.getOrigem()!=null && corridaTramo.getOrigem().getParadaId().intValue()==unoTerminalOrigenId.intValue()) + && (corridaTramo.getDestino()!=null && corridaTramo.getDestino().getParadaId().intValue()==unoTerminalDestinoId.intValue())) + || (corridaTramo.getOrigem()!=null && corridaTramo.getOrigem().getParadaId().intValue()==unoTerminalDestinoId.intValue())){ + fecViaje = corridaTramo.getFechorsalidaH(); + break; + } + } + if(tramo==null) { log.error("Reserva não será realizada. Não foi encontrado trecho com Origem:" + unoTerminalOrigenId + " Destino:" +unoTerminalDestinoId + " para a corrida:" + corrida.getId().getCorridaId()); continue; @@ -1067,7 +1081,6 @@ public class CorridaServiceImpl implements CorridaService { continue; } Float valorTarifa= tarifa!=null ? tarifa.getPrecio().floatValue() : null ; - //Long tempoReserva = reservaEspecialCliente.getTempoConfirmacao().getTime(); Long tempoReserva = null; Cliente cliente = clienteService.obtenerID(reservaEspecialCliente.getClienteId().intValue()); boletoService.criaBoletoReserva(unoAsientoSelec, unaCorridaId, unaFecCorrida, unoTerminalOrigenId,