207 lines
7.3 KiB
Java
207 lines
7.3 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", (short) -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();
|
|
}
|
|
}
|