Merge da implementação após validação do xuru. fixes bug#7679

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@59785 d1611594-4594-4d17-8e1d-87c2c4800839
master
gleimar 2016-08-30 18:00:26 +00:00
parent 1e91dff79a
commit a05746e000
1 changed files with 32 additions and 7 deletions

View File

@ -33,6 +33,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;
@ -593,9 +594,7 @@ public class CorridaServiceImpl implements CorridaService {
for (EsquemaTramo esquemaTramo : lsEsquemaTramo) { for (EsquemaTramo esquemaTramo : lsEsquemaTramo) {
CorridaTramo corridaTramo = new CorridaTramo(); CorridaTramo corridaTramo = new CorridaTramo();
if (esquemaTramo.getNumsecuencia() == 22) {
System.out.println("");
}
corridaTramo.setAutobus(null); corridaTramo.setAutobus(null);
corridaTramo.setConductor(null); corridaTramo.setConductor(null);
corridaTramo.setConductor1(null); corridaTramo.setConductor1(null);
@ -743,11 +742,15 @@ 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 ciudadOrigen = esquemaTramo.getTramo().getOrigem().getCiudad();
Estado estadoOrigen = ciudadOrigen.getEstado();
int tiempoOrigen = estadoOrigen.getTiempoHorHuso() == null ? 0 : estadoOrigen.getTiempoHorHuso(); int tiempoOrigen = estadoOrigen.getTiempoHorHuso() == null ? 0 : estadoOrigen.getTiempoHorHuso();
Date fecInicioHorVerano = estadoOrigen.getFecInicioHorVerano(); Date fecInicioHorVerano = estadoOrigen.getFecInicioHorVerano();
Date fecFinHorVerano = estadoOrigen.getFecFinoHorVerano(); Date fecFinHorVerano = estadoOrigen.getFecFinoHorVerano();
if ((fecInicioHorVerano != null) && (fecFinHorVerano != null)) { if ((fecInicioHorVerano != null) && (fecFinHorVerano != null)) {
if ((DateUtil.compareOnlyDate(fecInicioHorVerano, corridaTramo.getFechorsalida()) <= 0) && (DateUtil.compareOnlyDate(fecFinHorVerano, corridaTramo.getFechorsalida()) >= 0)) { if ((DateUtil.compareOnlyDate(fecInicioHorVerano, corridaTramo.getFechorsalida()) <= 0) && (DateUtil.compareOnlyDate(fecFinHorVerano, corridaTramo.getFechorsalida()) >= 0)) {
@ -755,11 +758,14 @@ public class CorridaServiceImpl implements CorridaService {
} }
} }
// 21688 // 21688
Estado estadoDestino = esquemaTramo.getTramo().getDestino().getCiudad().getEstado(); Ciudad ciudadDestino = esquemaTramo.getTramo().getDestino().getCiudad();
Estado estadoDestino = ciudadDestino.getEstado();
int tiempoDestino = 0; int tiempoDestino = 0;
if (!estadoDestino.equals(estadoOrigen)) { if (!estadoDestino.equals(estadoOrigen)) {
tiempoDestino = estadoDestino.getTiempoHorHuso() == null ? 0 : estadoDestino.getTiempoHorHuso(); tiempoDestino = estadoDestino.getTiempoHorHuso() == null ? 0 : estadoDestino.getTiempoHorHuso();
Date fecInicioHorVeranoDestino = estadoDestino.getFecInicioHorVerano(); Date fecInicioHorVeranoDestino = estadoDestino.getFecInicioHorVerano();
Date fecFinHorVeranDestino = estadoDestino.getFecFinoHorVerano(); Date fecFinHorVeranDestino = estadoDestino.getFecFinoHorVerano();
@ -770,11 +776,28 @@ public class CorridaServiceImpl implements CorridaService {
} }
} }
} else { } else {
tiempoDestino = tiempoOrigen; tiempoDestino =0;
tiempoOrigen=0;
} }
//Consideração do fuso por cidade.
//Nesse caso, é mandatório em relação ao estado.Ou seja, equanto que no fuso do estado,
//tem que haver mudança de estado, para a cidade não, pois pode-se considerar cada cidade
//como um único estado. Sendo assim, devendo ser considerado sempre quando preenchido
if ( (ciudadOrigen.getZonaHoraria() != null) && (ciudadOrigen.getZonaHoraria() != 0 )){
log.info("Fuso da cidade origem " + ciudadOrigen.getNombciudad() + " : " + ciudadOrigen.getZonaHoraria());
tiempoOrigen += ciudadOrigen.getZonaHoraria();
}
if ( (ciudadDestino.getZonaHoraria() != null) && (ciudadDestino.getZonaHoraria() != 0 )){
log.info("Fuso da cidade destino " + ciudadDestino.getNombciudad() + " : " + ciudadDestino.getZonaHoraria());
tiempoDestino += ciudadDestino.getZonaHoraria();
}
//Fim consideração fuso por cidade
Calendar horLlegada = null; Calendar horLlegada = null;
// Si los tiempos son distintos, hube cambio de huso horario/horario de verano
long elapsedMinutes = DateUtil.getElapsedMinutos(corridaTramo.getFechorsalida(), corridaTramo.getFechorllegada()); long elapsedMinutes = DateUtil.getElapsedMinutos(corridaTramo.getFechorsalida(), corridaTramo.getFechorllegada());
@ -782,6 +805,8 @@ public class CorridaServiceImpl implements CorridaService {
horLlegada.setTime(corridaTramo.getFechorsalidaH()); horLlegada.setTime(corridaTramo.getFechorsalidaH());
horLlegada.add(Calendar.MINUTE, (int) elapsedMinutes); horLlegada.add(Calendar.MINUTE, (int) elapsedMinutes);
// Si los tiempos son distintos, hube cambio de huso horario/horario de verano
if (tiempoOrigen != tiempoDestino) { if (tiempoOrigen != tiempoDestino) {
horLlegada.add(Calendar.HOUR, difHuso(tiempoOrigen, tiempoDestino)); horLlegada.add(Calendar.HOUR, difHuso(tiempoOrigen, tiempoDestino));