diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ParadaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ParadaHibernateDAO.java index fecf4f40b..4e42ecf1d 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ParadaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ParadaHibernateDAO.java @@ -4,6 +4,7 @@ */ package com.rjconsultores.ventaboletos.dao.hibernate; +import java.util.Date; import java.util.List; import org.hibernate.Criteria; @@ -28,7 +29,7 @@ import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.RegionMetropolitana; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.TipoParada; -import com.rjconsultores.ventaboletos.vo.parada.ParadaVO; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; /** * @@ -185,12 +186,41 @@ public class ParadaHibernateDAO extends GenericHibernateDAO imp public List buscarDestinosPorOrigem(Integer origenId){ StringBuilder sb = new StringBuilder(); - sb.append("select distinct p.PARADA_ID as paradaId, p.CVEPARADA as cveparada, p.DESCPARADA as descparada from RUTA_COMBINACION rc ") - .append("inner join ruta r on rc.RUTA_ID=r.RUTA_ID ") - .append("inner join ESQUEMA_CORRIDA ec on r.RUTA_ID=ec.RUTA_ID ") - .append("inner join corrida c on ec.NUMCORRIDA=c.CORRIDA_ID ") - .append("inner join parada p on p.parada_id=c.DESTINO_ID ") - .append("where rc.ACTIVO = 1 and r.activo=1 and ec.activo=1 and c.activo=1 and p.activo = 1 and c.ORIGEN_ID=:origenId"); + sb.append("SELECT *"); + sb.append("FROM"); + sb.append(" (SELECT DISTINCT pd.parada_id AS paradaId,"); + sb.append(" pd.cveparada AS cveparada,"); + sb.append(" pd.tipoparada_id AS potipoparada_id, "); + sb.append(" pd.descparada AS descparada "); + sb.append(" FROM ruta_combinacion rc"); + sb.append(" INNER JOIN tramo t ON t.tramo_id = rc.tramo_id"); + sb.append(" INNER JOIN parada po ON po.parada_id = t.origen_id"); + sb.append(" INNER JOIN parada pd ON pd.parada_id = t.destino_id"); + sb.append(" INNER JOIN ruta r ON r.ruta_id = rc.ruta_id"); + sb.append(" INNER JOIN corrida c ON c.ruta_id = r.ruta_id"); + sb.append(" WHERE rc.activo = 1"); + sb.append(" AND r.activo = 1"); + sb.append(" AND c.activo = 1"); + sb.append(" AND po.activo = 1"); + sb.append(" AND pd.activo = 1"); + sb.append(" AND c.feccorrida BETWEEN :dataInicioHoje and :dataFim and po.parada_id =:origenId "); + sb.append(" UNION SELECT DISTINCT pd.parada_id AS paradaId,"); + sb.append(" pd.cveparada AS cveparada,"); + sb.append(" pd.tipoparada_id AS potipoparada_id,"); + sb.append(" pd.descparada AS descparada "); + sb.append(" FROM conexion c"); + sb.append(" INNER JOIN parada po ON po.parada_id = c.origen_id"); + sb.append(" INNER JOIN parada pd ON pd.parada_id = c.destino_id"); + sb.append(" INNER JOIN corrida co ON co.origen_id = c.origen_id"); + sb.append(" INNER JOIN corrida_tramo ct ON co.corrida_id = ct.corrida_id"); + sb.append(" WHERE 1 = 1"); + sb.append(" AND c.activo = 1"); + sb.append(" AND co.activo = 1"); + sb.append(" AND co.activo = 1"); + sb.append(" AND po.activo = 1"); + sb.append(" AND pd.activo = 1"); + sb.append(" AND co.feccorrida BETWEEN :dataInicioHoje and :dataFim and po.parada_id =:origenId ) a "); + sb.append(" ORDER BY a.descparada"); Query qry = getSession().createSQLQuery(sb.toString()) .addScalar("paradaId", IntegerType.INSTANCE) @@ -199,6 +229,8 @@ public class ParadaHibernateDAO extends GenericHibernateDAO imp .setResultTransformer(new AliasToBeanResultTransformer(Parada.class)); qry.setInteger("origenId", origenId); + qry.setDate("dataInicioHoje", new Date()); + qry.setDate("dataFim", DateUtil.somarDias(new Date(), 7)); List list = qry.list();