diff --git a/src/com/rjconsultores/ventaboletos/dao/TramoServicioDAO.java b/src/com/rjconsultores/ventaboletos/dao/TramoServicioDAO.java index cdbf6f572..9b0990169 100644 --- a/src/com/rjconsultores/ventaboletos/dao/TramoServicioDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/TramoServicioDAO.java @@ -34,4 +34,12 @@ public interface TramoServicioDAO extends GenericDAO { * @return */ public TramoServicio buscar(Parada origen,Parada destino,Via via,ClaseServicio clase); + + /** + * Indica si existen tiempos para los trechos del esquemaCorrida. O sea, debe de haber para cada tramo del esquema un tramoServicio válido + * + * @param esquemaCorridaId + * @return + */ + public boolean existenTiemposTramosEsquema(Integer esquemaCorridaId); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/HibernateFix.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/HibernateFix.java index db9064261..503160679 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/HibernateFix.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/HibernateFix.java @@ -1,5 +1,6 @@ package com.rjconsultores.ventaboletos.dao.hibernate; +import java.math.BigDecimal; import java.util.List; public class HibernateFix { @@ -24,6 +25,8 @@ public class HibernateFix { if (resultado instanceof Integer) { cant = Long.valueOf(((Integer) resultado).longValue()); + } else if (resultado instanceof BigDecimal){ + cant= ((BigDecimal)resultado).longValue(); } else { cant = (Long) resultado; } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/TramoServicioHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/TramoServicioHibernateDAO.java index 17dba46ca..5221a2358 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/TramoServicioHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/TramoServicioHibernateDAO.java @@ -7,7 +7,7 @@ package com.rjconsultores.ventaboletos.dao.hibernate; import java.util.List; import org.hibernate.Criteria; -import org.hibernate.FetchMode; +import org.hibernate.Query; import org.hibernate.SessionFactory; import org.hibernate.criterion.Restrictions; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +16,7 @@ import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.TramoServicioDAO; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; +import com.rjconsultores.ventaboletos.entidad.EsquemaTramo; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.Tramo; import com.rjconsultores.ventaboletos.entidad.TramoServicio; @@ -62,8 +63,34 @@ public class TramoServicioHibernateDAO extends GenericHibernateDAO esquemaList = new ArrayList(); for (EsquemaTramo ec : this.esquemaTramoList) { - if (ec.getActivo() == Boolean.TRUE) { + if (ec.getActivo()) { esquemaList.add(ec); } } @@ -376,7 +376,7 @@ public class EsquemaCorrida implements Serializable { public List getEsquemaAsientoList() { List esquemaList = new ArrayList(); for (EsquemaAsiento ec : this.esquemaAsientoList) { - if (ec.getActivo() == Boolean.TRUE) { + if (ec.getActivo()) { esquemaList.add(ec); } } diff --git a/src/com/rjconsultores/ventaboletos/service/TramoServicioService.java b/src/com/rjconsultores/ventaboletos/service/TramoServicioService.java index ec774ff2b..1da68c4de 100644 --- a/src/com/rjconsultores/ventaboletos/service/TramoServicioService.java +++ b/src/com/rjconsultores/ventaboletos/service/TramoServicioService.java @@ -8,6 +8,7 @@ import java.math.BigDecimal; import java.util.Date; import java.util.List; +import com.rjconsultores.ventaboletos.dao.TramoServicioDAO; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.Tramo; @@ -51,4 +52,12 @@ public interface TramoServicioService extends GenericService + * Genera una corrida para el esquemaCorrida informado en la fecha informada.
* * Cuando la corrida no es generada :
* - corrida ya existe : eso es checado por el numCorrida e dataGeneracion
@@ -376,22 +376,29 @@ public class CorridaServiceImpl implements CorridaService { Corrida corrida = null; if (!vigenciaValida(esquemaCorrida, dataGeracao)) { - log.debug("vigencia invalida=" + dataGeracao); + log.info("vigencia invalida=" + dataGeracao); return null; } if (!((esquemaCorrida.getStatusCorrida() != null) && (esquemaCorrida.getStatusCorrida().equals("A")))) { - log.debug("status corrida invalido=" + esquemaCorrida.getStatusCorrida()); + log.info("status corrida invalido=" + esquemaCorrida.getStatusCorrida()); return null; } if (!temCorridaDiaSemana(diaSemana, esquemaCorrida, isFeriado)) { - log.debug("dia semana no valido=" + diaSemana); + log.info("dia semana no valido=" + diaSemana); return null; } + + if (!tramoServicioService.existenTiemposTramosEsquema(esquemaCorrida.getEsquemacorridaId())){ + log.info("nao foi cadastrado o tempo de todos os trechos do esquema corrida=" + esquemaCorrida.getEsquemacorridaId()); + + return null; + + } try { Ruta ruta = esquemaCorrida.getRuta(); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/TramoServicioServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/TramoServicioServiceImpl.java index 318aec010..9c14c22a9 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/TramoServicioServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/TramoServicioServiceImpl.java @@ -120,4 +120,9 @@ public class TramoServicioServiceImpl implements TramoServicioService { return false; } + + @Override + public boolean existenTiemposTramosEsquema(Integer esquemaCorridaId) { + return tramoServicioDAO.existenTiemposTramosEsquema(esquemaCorridaId); + } }