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 é menor que a data inicio (considerando a hora), é porque é no dia seguinte. Ex.: Intervalo 23:00 e 00:00
|
|
fecFin.add(Calendar.DATE, 1);
|
|
}
|
|
|
|
c.add(Restrictions.ge("horafin",fecInicio.getTime()));
|
|
c.add(Restrictions.le("horainicio",fecFin.getTime()));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
}
|