AdmMono/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaMinimaHibernateDAO.java

207 lines
6.5 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.TarifaMinimaDAO;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Marca;
import com.rjconsultores.ventaboletos.entidad.Moneda;
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.Plaza;
import com.rjconsultores.ventaboletos.entidad.TarifaMinima;
import java.math.BigDecimal;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Disjunction;
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 rodrigo
*/
@Repository("tarifaMinimaDAO")
public class TarifaMinimaHibernateDAO extends GenericHibernateDAO<TarifaMinima, Integer>
implements TarifaMinimaDAO {
@Autowired
public TarifaMinimaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@Override
public List<TarifaMinima> obtenerTodos() {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
return c.list();
}
public List<TarifaMinima> pesquisar(Marca marca, Parada origem, Parada destino,
ClaseServicio claseServicio, Moneda moneda) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
if (marca != null) {
c.add(Restrictions.eq("marca", marca));
}
if (origem != null) {
c.add(Restrictions.eq("origem", origem));
}
if (destino != null) {
c.add(Restrictions.eq("destino", destino));
}
if (claseServicio != null) {
c.add(Restrictions.eq("claseServicio", claseServicio));
}
if (moneda != null) {
c.add(Restrictions.eq("moneda", moneda));
}
return c.list();
}
public List<TarifaMinima> pesquisarPlaza(Marca marca, Parada origem, Parada destino,
ClaseServicio claseServicio, Plaza plaza) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
if (marca != null) {
c.add(Restrictions.eq("marca", marca));
}
if (origem != null) {
c.add(Restrictions.eq("origem", origem));
}
if (destino != null) {
c.add(Restrictions.eq("destino", destino));
}
if (claseServicio != null) {
c.add(Restrictions.eq("claseServicio", claseServicio));
}
if (plaza != null) {
c.add(Restrictions.eq("plaza", plaza));
}
return c.list();
}
public List<TarifaMinima> buscarPorPlaza(Plaza plaza) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.eq("plaza", plaza));
return c.list();
}
public List<TarifaMinima> pesquisar(BigDecimal valor, Moneda moneda,
Plaza plaza, Marca marca, Parada origem, Parada destino,
ClaseServicio claseServicio) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.eq("importetarifa", valor));
c.add(Restrictions.eq("moneda", moneda));
c.add(Restrictions.eq("marca", marca));
c.add(Restrictions.eq("origem", origem));
c.add(Restrictions.eq("destino", destino));
c.add(Restrictions.eq("claseServicio", claseServicio));
c.add(Restrictions.eq("plaza", plaza));
return c.list();
}
public List<TarifaMinima> pesquisar(Moneda moneda,
Plaza plaza, Marca marca, Parada origem, Parada destino,
ClaseServicio claseServicio, OrgaoConcedente orgaoConcedente) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
// c.add(Restrictions.eq("importetarifa", valor));
c.add(Restrictions.eq("moneda", moneda));
c.add(Restrictions.eq("marca", marca));
c.add(Restrictions.eq("origem", origem));
c.add(Restrictions.eq("destino", destino));
c.add(Restrictions.eq("claseServicio", claseServicio));
c.add(Restrictions.eq("plaza", plaza));
c.add(Restrictions.eq("orgaoConcedente", orgaoConcedente));
return c.list();
}
public List<TarifaMinima> pesquisarOrigemDestinoTodos(Marca marca, Parada origem, Parada destino, ClaseServicio claseServicio, Moneda moneda) {
Criteria criterioBusca = getSession().createCriteria(getPersistentClass());
Disjunction disjunctionOrigem = Restrictions.disjunction();
Criterion cOrigem = Restrictions.eq("origem", origem);
Criterion cOrigemTodos = Restrictions.eq("origem.paradaId", Parada.ID_PARADA_TODOS);
disjunctionOrigem.add(cOrigem);
disjunctionOrigem.add(cOrigemTodos);
criterioBusca.add(disjunctionOrigem);
Disjunction disjunctionDestino = Restrictions.disjunction();
Criterion cDestino = Restrictions.eq("destino", destino);
Criterion cDestinoTodos = Restrictions.eq("destino.paradaId", Parada.ID_PARADA_TODOS);
disjunctionDestino.add(cDestino);
disjunctionDestino.add(cDestinoTodos);
criterioBusca.add(disjunctionDestino);
criterioBusca.add(Restrictions.eq("activo", Boolean.TRUE));
criterioBusca.add(Restrictions.eq("moneda", moneda));
criterioBusca.add(Restrictions.or(Restrictions.eq("marca", marca), Restrictions.eq("marca.marcaId", (short) -1)));
criterioBusca.add(Restrictions.or(Restrictions.eq("claseServicio", claseServicio), Restrictions.eq("claseServicio.claseservicioId", -1)));
return criterioBusca.list();
}
public List<TarifaMinima> buscarPorMarcaMoneda(Marca marca, Moneda moneda) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.eq("marca", marca));
c.add(Restrictions.eq("moneda", moneda));
return c.list();
}
public List<TarifaMinima> buscarPorClaseServicioMoneda(
ClaseServicio claseServicio, Moneda moneda) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.eq("claseServicio", claseServicio));
c.add(Restrictions.eq("moneda", moneda));
return c.list();
}
public List<TarifaMinima> buscarPorPlazaMoneda(Plaza plaza, Moneda moneda) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.eq("plaza", plaza));
c.add(Restrictions.eq("moneda", moneda));
return c.list();
}
}