96 lines
3.3 KiB
Java
96 lines
3.3 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.List;
|
|
|
|
import org.hibernate.Criteria;
|
|
import org.hibernate.Query;
|
|
import org.hibernate.SessionFactory;
|
|
import org.hibernate.criterion.Restrictions;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
import com.rjconsultores.ventaboletos.dao.TramoServicioDAO;
|
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
|
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
|
import com.rjconsultores.ventaboletos.entidad.TramoServicio;
|
|
import com.rjconsultores.ventaboletos.entidad.Via;
|
|
|
|
/**
|
|
*
|
|
* @author Rafius
|
|
*/
|
|
@Repository("tramoServicioDAO")
|
|
public class TramoServicioHibernateDAO extends GenericHibernateDAO<TramoServicio, Integer>
|
|
implements TramoServicioDAO {
|
|
|
|
@Autowired
|
|
public TramoServicioHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
|
setSessionFactory(factory);
|
|
}
|
|
|
|
public List<TramoServicio> buscarPorTramo(Tramo tramo) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
c.add(Restrictions.eq("tramo", tramo));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<TramoServicio> buscarPorTramo(Tramo tramo, ClaseServicio clase) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
c.add(Restrictions.eq("tramo", tramo));
|
|
c.add(Restrictions.eq("claseServicio", clase));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
@Override
|
|
public TramoServicio buscar(Parada origen, Parada destino, Via via, ClaseServicio clase) {
|
|
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
Criteria cTramo = c.createCriteria("tramo");
|
|
cTramo.add(Restrictions.eq("origem", origen));
|
|
cTramo.add(Restrictions.eq("destino", destino));
|
|
cTramo.add(Restrictions.eq("via", via));
|
|
cTramo.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
c.add(Restrictions.eq("claseServicio", clase));
|
|
|
|
return (TramoServicio) c.uniqueResult();
|
|
|
|
}
|
|
|
|
@Override
|
|
public boolean existenTiemposTramosEsquema(Integer esquemaCorridaId) {
|
|
|
|
Query query = getSession().createQuery("select count(*) from EsquemaTramo ct where ct.activo = 1 and ct.esquemaCorrida.esquemacorridaId = :esquemaCorrida");
|
|
query.setParameter("esquemaCorrida", esquemaCorridaId);
|
|
Long cantTramos = HibernateFix.count(query.uniqueResult());
|
|
|
|
StringBuilder sb = new StringBuilder("");
|
|
sb.append("select count(*) ");
|
|
sb.append("from ");
|
|
sb.append("esquema_corrida ec ");
|
|
sb.append("inner join esquema_tramo et on et.esquemacorrida_id = ec.esquemacorrida_id ");
|
|
sb.append("inner join tramo_servicio ts on ts.tramo_id = et.tramo_id and ts.CLASESERVICIO_ID = ec.CLASESERVICIO_ID ");
|
|
sb.append("where ");
|
|
sb.append("et.activo = 1 ");
|
|
sb.append("and ts.activo = 1 ");
|
|
sb.append("and ec.esquemacorrida_id = :esquemaCorrida");
|
|
|
|
Query query2 = getSession().createSQLQuery(sb.toString());
|
|
query2.setParameter("esquemaCorrida", esquemaCorridaId);
|
|
|
|
Long cantTramosTiempos = HibernateFix.count(query2.uniqueResult());
|
|
|
|
return cantTramos.equals(cantTramosTiempos);
|
|
}
|
|
}
|