fixes bug # 7679

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@59136 d1611594-4594-4d17-8e1d-87c2c4800839
master
edgar 2016-08-12 20:37:45 +00:00
parent 8aeb0d9cb3
commit f2a902765b
1 changed files with 23 additions and 24 deletions

View File

@ -8,6 +8,7 @@ import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
@ -33,6 +34,7 @@ import com.rjconsultores.ventaboletos.dao.CorridaDAO;
import com.rjconsultores.ventaboletos.dao.EsquemaCorridaDAO; import com.rjconsultores.ventaboletos.dao.EsquemaCorridaDAO;
import com.rjconsultores.ventaboletos.dao.TramoTiempoDAO; import com.rjconsultores.ventaboletos.dao.TramoTiempoDAO;
import com.rjconsultores.ventaboletos.entidad.AsientoExclusivo; import com.rjconsultores.ventaboletos.entidad.AsientoExclusivo;
import com.rjconsultores.ventaboletos.entidad.Ciudad;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Constante;
import com.rjconsultores.ventaboletos.entidad.Corrida; import com.rjconsultores.ventaboletos.entidad.Corrida;
@ -410,7 +412,6 @@ public class CorridaServiceImpl implements CorridaService {
* @return - La corrida generada o null si no fue generada. * @return - La corrida generada o null si no fue generada.
*/ */
private Corrida generarCorrida(EsquemaCorrida esquemaCorrida, Date dataGeracao, boolean isPisoExtra, Boolean isFeriado) { private Corrida generarCorrida(EsquemaCorrida esquemaCorrida, Date dataGeracao, boolean isPisoExtra, Boolean isFeriado) {
GregorianCalendar calendario = new GregorianCalendar(); GregorianCalendar calendario = new GregorianCalendar();
calendario.setTime(dataGeracao); calendario.setTime(dataGeracao);
@ -743,34 +744,33 @@ public class CorridaServiceImpl implements CorridaService {
private Date calcularHusoHorVeranoLlegada(EsquemaTramo esquemaTramo, CorridaTramo corridaTramo) { private Date calcularHusoHorVeranoLlegada(EsquemaTramo esquemaTramo, CorridaTramo corridaTramo) {
Estado estadoOrigen = esquemaTramo.getTramo().getOrigem().getCiudad().getEstado(); Ciudad ciudadOrigem = esquemaTramo.getTramo().getOrigem().getCiudad();
int tiempoOrigen = estadoOrigen.getTiempoHorHuso() == null ? 0 : estadoOrigen.getTiempoHorHuso(); int tiempoOrigen = ciudadOrigem.getZonaHoraria() != null ? ciudadOrigem.getZonaHoraria()
: ciudadOrigem.getEstado().getTiempoHorHuso() != null ? ciudadOrigem.getEstado().getTiempoHorHuso() : 0;
Date fecInicioHorVerano = estadoOrigen.getFecInicioHorVerano(); Date fecInicioHorVerano = ciudadOrigem.getEstado().getFecInicioHorVerano();
Date fecFinHorVerano = estadoOrigen.getFecFinoHorVerano(); Date fecFinHorVerano = ciudadOrigem.getEstado().getFecFinoHorVerano();
if ((fecInicioHorVerano != null) && (fecFinHorVerano != null)) { if (fecInicioHorVerano != null
if ((DateUtil.compareOnlyDate(fecInicioHorVerano, corridaTramo.getFechorsalida()) <= 0) && (DateUtil.compareOnlyDate(fecFinHorVerano, corridaTramo.getFechorsalida()) >= 0)) { && fecFinHorVerano != null
tiempoOrigen += estadoOrigen.getTiempoHorVerano(); && DateUtil.compareOnlyDate(fecInicioHorVerano, corridaTramo.getFechorsalida()) <= 0
} && DateUtil.compareOnlyDate(fecFinHorVerano, corridaTramo.getFechorsalida()) >= 0) {
tiempoOrigen += ciudadOrigem.getEstado().getTiempoHorVerano();
} }
// 21688 // 21688
Estado estadoDestino = esquemaTramo.getTramo().getDestino().getCiudad().getEstado(); Ciudad ciudadDestino = esquemaTramo.getTramo().getDestino().getCiudad();
int tiempoDestino = 0; int tiempoDestino = ciudadDestino.getZonaHoraria() != null ? ciudadDestino.getZonaHoraria()
: ciudadDestino.getEstado().getTiempoHorHuso() != null ? ciudadDestino.getEstado().getTiempoHorHuso() : 0;
if (!estadoDestino.equals(estadoOrigen)) { Date fecInicioHorVeranoDestino = ciudadDestino.getEstado().getFecInicioHorVerano();
tiempoDestino = estadoDestino.getTiempoHorHuso() == null ? 0 : estadoDestino.getTiempoHorHuso(); Date fecFinHorVeranDestino = ciudadDestino.getEstado().getFecFinoHorVerano();
Date fecInicioHorVeranoDestino = estadoDestino.getFecInicioHorVerano(); if (fecInicioHorVeranoDestino != null
Date fecFinHorVeranDestino = estadoDestino.getFecFinoHorVerano(); && fecFinHorVeranDestino != null
&& DateUtil.compareOnlyDate(fecInicioHorVeranoDestino, corridaTramo.getFechorllegada()) <= 0
if ((fecInicioHorVeranoDestino != null) && (fecFinHorVeranDestino != null)) { && DateUtil.compareOnlyDate(fecFinHorVeranDestino, corridaTramo.getFechorllegada()) >= 0) {
if ((DateUtil.compareOnlyDate(fecInicioHorVeranoDestino, corridaTramo.getFechorllegada()) <= 0) && (DateUtil.compareOnlyDate(fecFinHorVeranDestino, corridaTramo.getFechorllegada()) >= 0)) { tiempoDestino += ciudadDestino.getEstado().getTiempoHorVerano();
tiempoDestino += estadoDestino.getTiempoHorVerano();
}
}
} else {
tiempoDestino = tiempoOrigen;
} }
Calendar horLlegada = null; Calendar horLlegada = null;
@ -784,7 +784,6 @@ public class CorridaServiceImpl implements CorridaService {
horLlegada.add(Calendar.MINUTE, (int) elapsedMinutes); horLlegada.add(Calendar.MINUTE, (int) elapsedMinutes);
if (tiempoOrigen != tiempoDestino) { if (tiempoOrigen != tiempoDestino) {
horLlegada.add(Calendar.HOUR, difHuso(tiempoOrigen, tiempoDestino)); horLlegada.add(Calendar.HOUR, difHuso(tiempoOrigen, tiempoDestino));
} }
return (horLlegada == null) ? null : horLlegada.getTime(); return (horLlegada == null) ? null : horLlegada.getTime();