/* * 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 implements TarifaMinimaDAO { @Autowired public TarifaMinimaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { setSessionFactory(factory); } @Override public List obtenerTodos() { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); return c.list(); } public List 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 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 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 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 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 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 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 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 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(); } }