96 lines
3.1 KiB
Java
96 lines
3.1 KiB
Java
/*
|
||
* To change this template, choose Tools | Templates
|
||
* and open the template in the editor.
|
||
*/
|
||
package com.rjconsultores.ventaboletos.dao.hibernate;
|
||
|
||
import com.rjconsultores.ventaboletos.dao.TramoTiempoDAO;
|
||
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
||
import com.rjconsultores.ventaboletos.entidad.TramoTiempo;
|
||
import com.rjconsultores.ventaboletos.entidad.Via;
|
||
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
|
||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||
|
||
import java.util.Calendar;
|
||
import java.util.Date;
|
||
import java.util.List;
|
||
import org.hibernate.Criteria;
|
||
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;
|
||
|
||
/**
|
||
*
|
||
* @author Administrador
|
||
*/
|
||
@Repository("tramoTiempoDAO")
|
||
public class TramoTiempoHibernateDAO extends GenericHibernateDAO<TramoTiempo, Integer> implements TramoTiempoDAO {
|
||
|
||
@Autowired
|
||
public TramoTiempoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
||
setSessionFactory(factory);
|
||
}
|
||
|
||
@Override
|
||
public List<TramoTiempo> obtenerTodos() {
|
||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
public List<TramoTiempo> 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<TramoTiempo> 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 List<TramoTiempo> buscar(Tramo tramo, ClaseServicio clase, Date horaIni, Date horaFin) {
|
||
|
||
Criteria c = this.makeCriteria();
|
||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||
c.add(Restrictions.eq("tramo", tramo));
|
||
c.add(Restrictions.eq("claseServicio", clase));
|
||
|
||
Calendar tmpIni = Calendar.getInstance();
|
||
tmpIni.setTime(horaIni);
|
||
|
||
Calendar tmpFin = Calendar.getInstance();
|
||
tmpFin.setTime(horaFin);
|
||
|
||
Calendar fecInicio = DateUtil.getFecInicio();
|
||
fecInicio.set(Calendar.HOUR_OF_DAY, tmpIni.get(Calendar.HOUR_OF_DAY));
|
||
fecInicio.set(Calendar.MINUTE, tmpIni.get(Calendar.MINUTE));
|
||
|
||
Calendar fecFin = DateUtil.getFecInicio();
|
||
fecFin.set(Calendar.HOUR_OF_DAY, tmpFin.get(Calendar.HOUR_OF_DAY));
|
||
fecFin.set(Calendar.MINUTE, tmpFin.get(Calendar.MINUTE));
|
||
|
||
if (fecFin.compareTo(fecInicio) < 0){// se a data fin <20> menor que a data inicio (considerando a hora), <20> porque <20> no dia seguinte. Ex.: Intervalo 23:00 <20> 00:00
|
||
fecFin.add(Calendar.DATE, 1);
|
||
}
|
||
|
||
c.add(Restrictions.ge("horafin",fecInicio.getTime()));
|
||
c.add(Restrictions.le("horainicio",fecFin.getTime()));
|
||
|
||
return c.list();
|
||
}
|
||
|
||
}
|