498 lines
18 KiB
Java
498 lines
18 KiB
Java
/*
|
||
* To change this template, choose Tools | Templates
|
||
* and open the template in the editor.
|
||
*/
|
||
package com.rjconsultores.ventaboletos.dao.hibernate;
|
||
|
||
import java.util.ArrayList;
|
||
import java.util.Arrays;
|
||
import java.util.List;
|
||
|
||
import org.hibernate.Criteria;
|
||
import org.hibernate.Query;
|
||
import org.hibernate.SQLQuery;
|
||
import org.hibernate.SessionFactory;
|
||
import org.hibernate.criterion.MatchMode;
|
||
import org.hibernate.criterion.Order;
|
||
import org.hibernate.criterion.Projections;
|
||
import org.hibernate.criterion.Restrictions;
|
||
import org.hibernate.criterion.SimpleExpression;
|
||
import org.hibernate.transform.AliasToBeanResultTransformer;
|
||
import org.hibernate.type.LongType;
|
||
import org.hibernate.type.StringType;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.beans.factory.annotation.Qualifier;
|
||
import org.springframework.stereotype.Repository;
|
||
|
||
import com.rjconsultores.ventaboletos.dao.RutaDAO;
|
||
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
|
||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||
import com.rjconsultores.ventaboletos.entidad.Ruta;
|
||
import com.rjconsultores.ventaboletos.entidad.RutaSecuencia;
|
||
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
||
import com.rjconsultores.ventaboletos.vo.ruta.RutaVO;
|
||
|
||
/**
|
||
*
|
||
* @author Rafius
|
||
*/
|
||
@SuppressWarnings("unchecked")
|
||
@Repository("rutaDAO")
|
||
public class RutaHibernateDAO extends GenericHibernateDAO<Ruta, Integer> implements RutaDAO {
|
||
|
||
@Autowired
|
||
public RutaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
||
setSessionFactory(factory);
|
||
}
|
||
|
||
@Override
|
||
public List<Ruta> obtenerTodos() {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
c.addOrder(Order.asc("descruta"));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
public List<Ruta> buscarPorTramo(Tramo tramo) {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
|
||
Criteria cTipoPuntoVenta = c.createCriteria("rutaCombinacionList");
|
||
cTipoPuntoVenta.add(Restrictions.eq("tramo", tramo));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
@Override
|
||
public List<Ruta> buscarPorRutaPorEmpresas(List<Empresa> lsEmpresas) {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
c.add(Restrictions.eq("indRutaCancelada", false));
|
||
Criteria cEmpresa = c.createCriteria("lsRutaEmpresa");
|
||
cEmpresa.add(Restrictions.in("empresa", lsEmpresas));
|
||
cEmpresa.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
|
||
c.addOrder(Order.asc("descruta"));
|
||
|
||
List<Ruta> l = c.list();
|
||
for (Ruta r : l) {
|
||
r.getLsRutaEmpresa();
|
||
}
|
||
return l;
|
||
}
|
||
|
||
public List<Ruta> buscarPorClaseServicio(ClaseServicio claseServicio) {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
|
||
c.add(Restrictions.eq("claseServicio", claseServicio));
|
||
|
||
c.addOrder(Order.asc("descruta"));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
public List<Ruta> buscarPorClaseServicioEmpresa(ClaseServicio claseServicio, Empresa empresa) {
|
||
StringBuffer hql = new StringBuffer();
|
||
hql.append("SELECT DISTINCT r ");
|
||
hql.append("FROM Ruta r INNER JOIN r.lsRutaEmpresa re ");
|
||
hql.append("WHERE r.claseServicio.claseservicioId = :idClaseServicio ");
|
||
hql.append("AND re.empresa.empresaId = :idEmpresa ");
|
||
hql.append("AND r.activo = 1 ");
|
||
hql.append("ORDER BY r.descruta");
|
||
|
||
Query sq = getSession().createQuery(hql.toString());
|
||
sq.setParameter("idClaseServicio", claseServicio.getClaseservicioId());
|
||
sq.setParameter("idEmpresa", empresa.getEmpresaId());
|
||
|
||
List<Ruta> lsRuta = sq.list();
|
||
return lsRuta;
|
||
}
|
||
|
||
public List<Ruta> buscar(String nomeRuta, ClaseServicio claseServicio,
|
||
Boolean nomeObrigatorio) {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
// c.add(Restrictions.eq("descruta", nomeRuta));
|
||
c.add(Restrictions.eq("claseServicio", claseServicio));
|
||
c.add(Restrictions.eq("indNombreObligatorio", nomeObrigatorio));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
public List<Ruta> obtenerPorEmpresa(Empresa empresa) {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
c.add(Restrictions.ne("rutaId", -1));
|
||
|
||
if (empresa.getEmpresaId() != -1) {
|
||
c.createCriteria("lsRutaEmpresa").add(Restrictions.eq("empresa", empresa)).add(Restrictions.eq("activo", Boolean.TRUE));
|
||
}
|
||
c.addOrder(Order.asc("descruta"));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
@Override
|
||
public Parada buscarOrigen(Ruta ruta) {
|
||
Criteria c = this.getSession().createCriteria(RutaSecuencia.class);
|
||
c.add(Restrictions.eq("activo", true));
|
||
c.add(Restrictions.eq("ruta", ruta));
|
||
c.addOrder(Order.asc("numsecuencia"));
|
||
c.createAlias("tramo", "tramo")
|
||
.setProjection(Projections.property("tramo.origem"));
|
||
c.setMaxResults(1);
|
||
|
||
return (Parada) c.uniqueResult();
|
||
|
||
}
|
||
|
||
@Override
|
||
public Parada buscarDestino(Ruta ruta) {
|
||
Criteria c = this.getSession().createCriteria(RutaSecuencia.class);
|
||
c.add(Restrictions.eq("activo", true));
|
||
c.add(Restrictions.eq("ruta", ruta));
|
||
c.addOrder(Order.desc("numsecuencia"));
|
||
c.createAlias("tramo", "tramo")
|
||
.setProjection(Projections.property("tramo.destino"));
|
||
c.setMaxResults(1);
|
||
|
||
return (Parada) c.uniqueResult();
|
||
}
|
||
|
||
public List<Ruta> buscarTodosExceto(Integer... idRuta) {
|
||
Criteria c = this.makeCriteria();
|
||
for (Integer id : idRuta) {
|
||
c.add(Restrictions.ne("rutaId", id));
|
||
}
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
c.addOrder(Order.asc("descruta"));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
public List<Ruta> buscarTodosEstos(Integer[] idRutas) {
|
||
Criteria c = this.makeCriteria();
|
||
c.add(Restrictions.in("rutaId", idRutas));
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
c.addOrder(Order.asc("descruta"));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
public List<Ruta> buscarNumRuta(String numRuta) {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", true));
|
||
c.add(Restrictions.eq("numRuta", numRuta));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
public List<Ruta> buscaRuta(String palavraPesquisaRuta) {
|
||
return buscaRuta(palavraPesquisaRuta, null);
|
||
}
|
||
|
||
@Override
|
||
public List<Ruta> buscaRuta(String palavraPesquisaRuta, OrgaoConcedente orgao) {
|
||
StringBuilder hql = new StringBuilder();
|
||
hql.append(" FROM Ruta r");
|
||
hql.append(" WHERE (lower(descruta) like :palavraPesquisaRuta ");
|
||
hql.append(" OR lower(prefixo) like :palavraPesquisaRuta ");
|
||
hql.append(" OR lower(str(numRuta)) like :palavraPesquisaRuta) and r.activo = 1 ");
|
||
if (orgao != null) {
|
||
hql.append(" AND r.orgaoConcedente.orgaoConcedenteId = :orgaoId ");
|
||
}
|
||
|
||
Query sq = getSession().createQuery(hql.toString());
|
||
sq.setParameter("palavraPesquisaRuta", palavraPesquisaRuta.toLowerCase() + '%');
|
||
if (orgao != null) {
|
||
sq.setParameter("orgaoId", orgao.getOrgaoConcedenteId());
|
||
}
|
||
|
||
return sq.list();
|
||
}
|
||
|
||
@Override
|
||
public List<RutaVO> buscaRutaPorNumeroSemDadoRepetido(String palavraPesquisaRuta) {
|
||
StringBuilder sql = new StringBuilder();
|
||
sql.append(" SELECT MAX(R.RUTA_ID) rutaId, ");
|
||
sql.append(" R.NUMRUTA numRuta, MAX(R.PREFIXO) prefixo, ");
|
||
sql.append(" MAX(R.DESCRUTA) descruta, ");
|
||
sql.append(" MAX(ORGAO.DESCORGAO) orgaoConcedente ");
|
||
sql.append(" FROM RUTA R ");
|
||
sql.append(" INNER JOIN ORGAO_CONCEDENTE ORGAO ON R.ORGAOCONCEDENTE_ID = ORGAO.ORGAOCONCEDENTE_ID ");
|
||
sql.append(" WHERE (LOWER(R.DESCRUTA) LIKE :palavraPesquisaRuta ");
|
||
sql.append(" OR LOWER(R.PREFIXO) LIKE :palavraPesquisaRuta ");
|
||
sql.append(" OR LOWER(R.NUMRUTA) LIKE :palavraPesquisaRuta) ");
|
||
sql.append(" GROUP BY R.NUMRUTA ");
|
||
|
||
SQLQuery qry = getSession().createSQLQuery(sql.toString())
|
||
.addScalar("rutaId", LongType.INSTANCE)
|
||
.addScalar("numRuta", StringType.INSTANCE)
|
||
.addScalar("prefixo", StringType.INSTANCE)
|
||
.addScalar("descruta", StringType.INSTANCE)
|
||
.addScalar("orgaoConcedente", StringType.INSTANCE);
|
||
qry.setParameter("palavraPesquisaRuta", palavraPesquisaRuta.toLowerCase() + '%');
|
||
|
||
qry.setResultTransformer(new AliasToBeanResultTransformer(RutaVO.class));
|
||
return qry.list();
|
||
}
|
||
|
||
public List<Ruta> buscaRutasFromOrgao(OrgaoConcedente orgao) { // busca rutas e ped<65>gios
|
||
StringBuffer hql = new StringBuffer();
|
||
hql.append("select distinct r FROM Ruta r left join r.rutaSecuenciaList rSeqList ");
|
||
hql.append(" left join rSeqList.lsRutaCase casRutaList ");
|
||
hql.append(" WHERE r.orgaoConcedente.orgaoConcedenteId = :orgaoId and r.activo = 1 and r.indRutaCancelada = 0 ");
|
||
hql.append(" order by r.descruta ");
|
||
|
||
Query sq = getSession().createQuery(hql.toString());
|
||
sq.setParameter("orgaoId", orgao.getOrgaoConcedenteId());
|
||
|
||
List<Ruta> lsRuta = sq.list();
|
||
return lsRuta;
|
||
}
|
||
|
||
public List<Ruta> buscaSomenteRutasFromOrgao(OrgaoConcedente orgao) {
|
||
StringBuffer hql = new StringBuffer();
|
||
hql.append("select distinct r FROM Ruta r ");
|
||
hql.append(" WHERE r.orgaoConcedente.orgaoConcedenteId = :orgaoId and r.activo = 1 and r.indRutaCancelada = 0 ");
|
||
hql.append(" order by r.descruta ");
|
||
|
||
Query sq = getSession().createQuery(hql.toString());
|
||
sq.setParameter("orgaoId", orgao.getOrgaoConcedenteId());
|
||
|
||
List<Ruta> lsRuta = sq.list();
|
||
return lsRuta;
|
||
}
|
||
|
||
@Override
|
||
public List<Ruta> buscarRutasPorEmpresaOrgaoConcedente(Empresa empresa, OrgaoConcedente orgao) {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
c.add(Restrictions.ne("rutaId", -1));
|
||
|
||
if (empresa != null && empresa.getEmpresaId() != -1) {
|
||
c.createCriteria("lsRutaEmpresa").add(Restrictions.eq("empresa", empresa));
|
||
}
|
||
|
||
if (orgao != null && orgao.getOrgaoConcedenteId() != -1) {
|
||
c.add(Restrictions.eq("orgaoConcedente", orgao));
|
||
}
|
||
|
||
c.addOrder(Order.asc("descruta"));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
|
||
@Override
|
||
public List<Ruta> buscarRutasPorEmpresaOrgaoConcedenteParadaIds(Empresa empresa, OrgaoConcedente orgao, Integer[] lsParadaIds) {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
c.add(Restrictions.ne("rutaId", -1));
|
||
|
||
if (empresa != null && empresa.getEmpresaId() != -1) {
|
||
c.createCriteria("lsRutaEmpresa").add(Restrictions.eq("empresa", empresa));
|
||
}
|
||
|
||
if (orgao != null && orgao.getOrgaoConcedenteId() != -1) {
|
||
c.add(Restrictions.eq("orgaoConcedente", orgao));
|
||
}
|
||
Criteria rutaCombinacionList = c.createCriteria("rutaCombinacionList");
|
||
rutaCombinacionList.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
Criteria tramo = rutaCombinacionList.createCriteria("tramo");
|
||
tramo.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
Criteria parada = tramo.createCriteria("origem");
|
||
parada.add(Restrictions.in("paradaId", lsParadaIds));
|
||
|
||
c.addOrder(Order.asc("descruta"));
|
||
c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
|
||
|
||
return c.list();
|
||
}
|
||
|
||
@Override
|
||
public void updateAsientosVendibles(Ruta ruta, Tramo viejoTramo, Tramo nuevoTramo) {
|
||
|
||
try {
|
||
getSession().flush();
|
||
|
||
List<String> qryList = new ArrayList<String>();
|
||
StringBuilder qry = new StringBuilder(" update RUTA_COMBINACION set TRAMO_ID = :nuevoTramo, ");
|
||
qry.append(" FECMODIF = SYSDATE, USUARIO_ID = :usuario where TRAMO_ID = :viejoTramo and RUTA_ID = :ruta ");
|
||
qry.append(" AND ACTIVO = 1 ");
|
||
qryList.add(qry.toString());
|
||
|
||
qry = new StringBuilder(" update RUTA_SECUENCIA set TRAMO_ID = :nuevoTramo, ");
|
||
qry.append(" FECMODIF = SYSDATE, USUARIO_ID = :usuario where TRAMO_ID = :viejoTramo and RUTA_ID = :ruta ");
|
||
qry.append(" AND ACTIVO = 1 ");
|
||
qryList.add(qry.toString());
|
||
|
||
for (String strQuery : qryList) {
|
||
Query query = getSession().createSQLQuery(strQuery);
|
||
query.setInteger("viejoTramo", viejoTramo.getTramoId());
|
||
query.setInteger("nuevoTramo", nuevoTramo.getTramoId());
|
||
query.setInteger("usuario", nuevoTramo.getUsuarioId());
|
||
query.setInteger("ruta", ruta.getRutaId());
|
||
query.executeUpdate();
|
||
}
|
||
|
||
try {
|
||
// Pode cair na exception caso ja possua tarifa criada para o tramo, e nao <20> necessaria criar novamente
|
||
|
||
qryList = new ArrayList<String>();
|
||
qry = new StringBuilder(" update TARIFA set TRAMO_ID = :nuevoTramo, ");
|
||
qry.append(" FECMODIF = SYSDATE, USUARIO_ID = :usuario, ORIGEN_ID =:origen, DESTINO_ID = :destino ");
|
||
qry.append(" where TRAMO_ID = :viejoTramo and RUTA_ID = :ruta ");
|
||
qry.append(" AND ACTIVO = 1 ");
|
||
qryList.add(qry.toString());
|
||
|
||
qry = new StringBuilder(" update TARIFA_OFICIAL set TRAMO_ID = :nuevoTramo, ");
|
||
qry.append(" FECMODIF = SYSDATE, USUARIO_ID = :usuario, ORIGEN_ID =:origen, DESTINO_ID = :destino ");
|
||
qry.append(" where TRAMO_ID = :viejoTramo and RUTA_ID = :ruta ");
|
||
qry.append(" AND ACTIVO = 1 ");
|
||
qryList.add(qry.toString());
|
||
|
||
for (String strQuery : qryList) {
|
||
Query query = getSession().createSQLQuery(strQuery);
|
||
query.setInteger("viejoTramo", viejoTramo.getTramoId());
|
||
query.setInteger("nuevoTramo", nuevoTramo.getTramoId());
|
||
query.setInteger("origen", nuevoTramo.getOrigem().getParadaId());
|
||
query.setInteger("destino", nuevoTramo.getDestino().getParadaId());
|
||
query.setInteger("usuario", nuevoTramo.getUsuarioId());
|
||
query.setInteger("ruta", ruta.getRutaId());
|
||
query.executeUpdate();
|
||
}
|
||
|
||
} catch (Exception e) {
|
||
}
|
||
|
||
qry = new StringBuilder(" update CORRIDA_TRAMO set TRAMO_ID = :nuevoTramo, ");
|
||
qry.append(" FECMODIF = SYSDATE, USUARIO_ID = :usuario, ORIGEN_ID =:origen, DESTINO_ID = :destino ");
|
||
qry.append(" where TRAMO_ID = :viejoTramo and ");
|
||
qry.append(" CORRIDA_ID in (select CORRIDA_ID from CORRIDA_CTRL where RUTA_ID = :ruta ) ");
|
||
qry.append(" AND ACTIVO = 1 ");
|
||
|
||
Query query = getSession().createSQLQuery(qry.toString());
|
||
query.setInteger("viejoTramo", viejoTramo.getTramoId());
|
||
query.setInteger("nuevoTramo", nuevoTramo.getTramoId());
|
||
query.setInteger("origen", nuevoTramo.getOrigem().getParadaId());
|
||
query.setInteger("destino", nuevoTramo.getDestino().getParadaId());
|
||
query.setInteger("usuario", nuevoTramo.getUsuarioId());
|
||
query.setInteger("ruta", ruta.getRutaId());
|
||
query.executeUpdate();
|
||
|
||
qry = new StringBuilder(" update CORRIDA set FECMODIF = SYSDATE, USUARIO_ID = :usuario, ");
|
||
qry.append(" ORIGEN_ID = (case when ORIGEN_ID = :viejaOrigen then :nuevaOrigen else ORIGEN_ID end ), ");
|
||
qry.append(" DESTINO_ID = (case when DESTINO_ID = :viejoDestino then :nuevoDestino else DESTINO_ID end ) ");
|
||
qry.append(" where RUTA_ID = :ruta ");
|
||
|
||
query = getSession().createSQLQuery(qry.toString());
|
||
query.setInteger("viejaOrigen", viejoTramo.getOrigem().getParadaId());
|
||
query.setInteger("nuevaOrigen", nuevoTramo.getOrigem().getParadaId());
|
||
query.setInteger("viejoDestino", viejoTramo.getOrigem().getParadaId());
|
||
query.setInteger("nuevoDestino", nuevoTramo.getDestino().getParadaId());
|
||
query.setInteger("usuario", nuevoTramo.getUsuarioId());
|
||
query.setInteger("ruta", ruta.getRutaId());
|
||
query.executeUpdate();
|
||
|
||
} catch (final Exception ex) {
|
||
throw new RuntimeException("", ex);
|
||
}
|
||
|
||
}
|
||
|
||
@Override
|
||
public List<Ruta> buscarRutasVendaEmbarcada(List<Integer> empresasIds, Integer rutaId, String numeroLinha, String descRuta, ClaseServicio classe) {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
c.add(Restrictions.ne("rutaId", -1));
|
||
|
||
if(empresasIds != null && !empresasIds.isEmpty()) {
|
||
c.createCriteria("lsRutaEmpresa").add(Restrictions.in("empresa.empresaId", empresasIds));
|
||
}
|
||
|
||
if(rutaId != null) {
|
||
c.add(Restrictions.eq("rutaId", rutaId));
|
||
}
|
||
|
||
if(numeroLinha != null) {
|
||
List<String> numRutas = Arrays.asList(numeroLinha.split(","));
|
||
c.add(Restrictions.in("numRuta", numRutas));
|
||
}
|
||
|
||
if(descRuta != null && !descRuta.isEmpty()) {
|
||
c.add(Restrictions.ilike("descruta", "%" + descRuta.trim().concat("%")));
|
||
}
|
||
|
||
if (classe != null && classe.getClaseservicioId() != -1) {
|
||
c.add(Restrictions.eq("claseServicio", classe));
|
||
}
|
||
|
||
c.add(Restrictions.eq("indRutaCancelada", Boolean.FALSE));
|
||
|
||
c.add(Restrictions.eq("indVendaEmbarcada", Boolean.TRUE));
|
||
|
||
c.addOrder(Order.asc("descruta"));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
@Override
|
||
public List<Ruta> buscaLikeComboBox(String stringConsulta) {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
final SimpleExpression validaNumRuta = Restrictions.like("numRuta", stringConsulta, MatchMode.START);
|
||
final SimpleExpression validaDescruta = Restrictions.like("descruta", stringConsulta, MatchMode.ANYWHERE);
|
||
|
||
// c.createAlias("claseServicio", "claseServicio");
|
||
|
||
c.add(Restrictions.or(validaNumRuta, validaDescruta));
|
||
// c.setProjection(Projections.projectionList()
|
||
// .add(Projections.groupProperty("numRuta"))
|
||
// .add(Projections.property("descruta"))
|
||
// .add(Projections.property("claseServicio.descclase")));
|
||
|
||
c.addOrder(Order.asc("numRuta"));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
@Override
|
||
public List<Ruta> buscarPorIds(Integer[] rutaIds) {
|
||
Criteria c = this.makeCriteria();
|
||
c.add(Restrictions.in("rutaId", rutaIds));
|
||
return c.list();
|
||
}
|
||
|
||
@Override
|
||
public List<Ruta> buscarPorOrgaoEcasetaPeaje(OrgaoConcedente orgao, Integer[] listCasetaPeaje,Empresa empresa){
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
c.add(Restrictions.eq("indRutaCancelada", Boolean.FALSE));
|
||
Criteria criteriaRutaSecuencia = c.createCriteria("rutaSecuenciaList","secuencia");
|
||
criteriaRutaSecuencia.add(Restrictions.eq("secuencia.activo", Boolean.TRUE));
|
||
Criteria criteriaRutaCaseta = criteriaRutaSecuencia.createCriteria("lsRutaCase");
|
||
criteriaRutaCaseta.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
Criteria criteriaCasetaPeaje=criteriaRutaCaseta.createCriteria("casetaPeaje");
|
||
criteriaCasetaPeaje.add(Restrictions.in("casetaPeajeId", listCasetaPeaje));
|
||
if(orgao!=null) {
|
||
Criteria crietriaOrgaoConcendente = c.createCriteria("orgaoConcedente");
|
||
crietriaOrgaoConcendente.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
crietriaOrgaoConcendente.add(Restrictions.eq("orgaoConcedenteId", orgao.getOrgaoConcedenteId()));
|
||
}
|
||
if (empresa != null && empresa.getEmpresaId() != -1) {
|
||
c.createCriteria("lsRutaEmpresa").add(Restrictions.eq("empresa", empresa));
|
||
}
|
||
c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
|
||
return c.list();
|
||
|
||
|
||
}
|
||
|
||
}
|