From b66af469bded05a5e749f33b41a9d39863bcf9c2 Mon Sep 17 00:00:00 2001 From: edgar Date: Tue, 16 Aug 2016 14:26:43 +0000 Subject: [PATCH] fixes bug #7679 - revert git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@59164 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../service/impl/CorridaServiceImpl.java | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java index 3b63dfd52..42d7f432a 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java @@ -8,7 +8,6 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; @@ -34,7 +33,6 @@ import com.rjconsultores.ventaboletos.dao.CorridaDAO; import com.rjconsultores.ventaboletos.dao.EsquemaCorridaDAO; import com.rjconsultores.ventaboletos.dao.TramoTiempoDAO; import com.rjconsultores.ventaboletos.entidad.AsientoExclusivo; -import com.rjconsultores.ventaboletos.entidad.Ciudad; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Corrida; @@ -412,6 +410,7 @@ public class CorridaServiceImpl implements CorridaService { * @return - La corrida generada o null si no fue generada. */ private Corrida generarCorrida(EsquemaCorrida esquemaCorrida, Date dataGeracao, boolean isPisoExtra, Boolean isFeriado) { + GregorianCalendar calendario = new GregorianCalendar(); calendario.setTime(dataGeracao); @@ -744,33 +743,34 @@ public class CorridaServiceImpl implements CorridaService { private Date calcularHusoHorVeranoLlegada(EsquemaTramo esquemaTramo, CorridaTramo corridaTramo) { - Ciudad ciudadOrigem = esquemaTramo.getTramo().getOrigem().getCiudad(); - int tiempoOrigen = ciudadOrigem.getZonaHoraria() != null ? ciudadOrigem.getZonaHoraria() - : ciudadOrigem.getEstado().getTiempoHorHuso() != null ? ciudadOrigem.getEstado().getTiempoHorHuso() : 0; + Estado estadoOrigen = esquemaTramo.getTramo().getOrigem().getCiudad().getEstado(); + int tiempoOrigen = estadoOrigen.getTiempoHorHuso() == null ? 0 : estadoOrigen.getTiempoHorHuso(); - Date fecInicioHorVerano = ciudadOrigem.getEstado().getFecInicioHorVerano(); - Date fecFinHorVerano = ciudadOrigem.getEstado().getFecFinoHorVerano(); + Date fecInicioHorVerano = estadoOrigen.getFecInicioHorVerano(); + Date fecFinHorVerano = estadoOrigen.getFecFinoHorVerano(); - if (fecInicioHorVerano != null - && fecFinHorVerano != null - && DateUtil.compareOnlyDate(fecInicioHorVerano, corridaTramo.getFechorsalida()) <= 0 - && DateUtil.compareOnlyDate(fecFinHorVerano, corridaTramo.getFechorsalida()) >= 0) { - tiempoOrigen += ciudadOrigem.getEstado().getTiempoHorVerano(); + if ((fecInicioHorVerano != null) && (fecFinHorVerano != null)) { + if ((DateUtil.compareOnlyDate(fecInicioHorVerano, corridaTramo.getFechorsalida()) <= 0) && (DateUtil.compareOnlyDate(fecFinHorVerano, corridaTramo.getFechorsalida()) >= 0)) { + tiempoOrigen += estadoOrigen.getTiempoHorVerano(); + } } - // 21688 - Ciudad ciudadDestino = esquemaTramo.getTramo().getDestino().getCiudad(); - int tiempoDestino = ciudadDestino.getZonaHoraria() != null ? ciudadDestino.getZonaHoraria() - : ciudadDestino.getEstado().getTiempoHorHuso() != null ? ciudadDestino.getEstado().getTiempoHorHuso() : 0; + Estado estadoDestino = esquemaTramo.getTramo().getDestino().getCiudad().getEstado(); + int tiempoDestino = 0; - Date fecInicioHorVeranoDestino = ciudadDestino.getEstado().getFecInicioHorVerano(); - Date fecFinHorVeranDestino = ciudadDestino.getEstado().getFecFinoHorVerano(); + if (!estadoDestino.equals(estadoOrigen)) { + tiempoDestino = estadoDestino.getTiempoHorHuso() == null ? 0 : estadoDestino.getTiempoHorHuso(); - if (fecInicioHorVeranoDestino != null - && fecFinHorVeranDestino != null - && DateUtil.compareOnlyDate(fecInicioHorVeranoDestino, corridaTramo.getFechorllegada()) <= 0 - && DateUtil.compareOnlyDate(fecFinHorVeranDestino, corridaTramo.getFechorllegada()) >= 0) { - tiempoDestino += ciudadDestino.getEstado().getTiempoHorVerano(); + Date fecInicioHorVeranoDestino = estadoDestino.getFecInicioHorVerano(); + Date fecFinHorVeranDestino = estadoDestino.getFecFinoHorVerano(); + + if ((fecInicioHorVeranoDestino != null) && (fecFinHorVeranDestino != null)) { + if ((DateUtil.compareOnlyDate(fecInicioHorVeranoDestino, corridaTramo.getFechorllegada()) <= 0) && (DateUtil.compareOnlyDate(fecFinHorVeranDestino, corridaTramo.getFechorllegada()) >= 0)) { + tiempoDestino += estadoDestino.getTiempoHorVerano(); + } + } + } else { + tiempoDestino = tiempoOrigen; } Calendar horLlegada = null; @@ -784,6 +784,7 @@ public class CorridaServiceImpl implements CorridaService { horLlegada.add(Calendar.MINUTE, (int) elapsedMinutes); if (tiempoOrigen != tiempoDestino) { horLlegada.add(Calendar.HOUR, difHuso(tiempoOrigen, tiempoDestino)); + } return (horLlegada == null) ? null : horLlegada.getTime();