285 lines
7.1 KiB
Java
285 lines
7.1 KiB
Java
package com.rjconsultores.ventaboletos.dao.hibernate;
|
|
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
import org.hibernate.Criteria;
|
|
import org.hibernate.Query;
|
|
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;
|
|
|
|
import com.rjconsultores.ventaboletos.dao.VoucherDAO;
|
|
import com.rjconsultores.ventaboletos.entidad.Voucher;
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@Repository("voucherDAO")
|
|
public class VoucherHibernateDAO extends GenericHibernateDAO<Voucher, Long> implements VoucherDAO {
|
|
|
|
@Autowired
|
|
public VoucherHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
|
setSessionFactory(factory);
|
|
}
|
|
|
|
@Override
|
|
public List<Voucher> obtenerTodos() {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq(ACTIVO, Boolean.TRUE));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
@Override
|
|
public List<Voucher> buscarConsulta(Long voucherId,
|
|
String numContrato,
|
|
String nit,
|
|
String nomeTransportadora,
|
|
Date dataInicial,
|
|
Date dataFinal,
|
|
Integer origemId,
|
|
Integer destinoId) {
|
|
|
|
StringBuilder hql = new StringBuilder();
|
|
hql.append("SELECT v, ori.descParada AS descOrigem , des.descParada AS descDestino ");
|
|
hql.append("FROM Voucher v ");
|
|
|
|
setJoins( hql);
|
|
|
|
hql.append("WHERE v.activo = 1 ");
|
|
|
|
setClausulas(voucherId,
|
|
numContrato,
|
|
nit,
|
|
nomeTransportadora,
|
|
dataInicial,
|
|
dataFinal,
|
|
null,
|
|
origemId,
|
|
destinoId,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
hql);
|
|
|
|
hql.append("ORDER BY voucherId ");
|
|
|
|
Query query = getSession().createQuery(hql.toString());
|
|
|
|
setParametros(voucherId,
|
|
numContrato,
|
|
nit,
|
|
nomeTransportadora,
|
|
dataInicial,
|
|
dataFinal,
|
|
null,
|
|
origemId,
|
|
destinoId,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
query);
|
|
|
|
return query.list();
|
|
}
|
|
|
|
@Override
|
|
public List<Voucher> buscarListaVoucher(Long numInicial,
|
|
Long numFinal,
|
|
String numContrato,
|
|
Long transportadoraId,
|
|
Long grupoContratoId,
|
|
Integer status,
|
|
Integer origemId,
|
|
Integer destinoId) {
|
|
|
|
|
|
StringBuilder hql = new StringBuilder();
|
|
hql.append(" SELECT v ");
|
|
hql.append(" FROM Voucher v ");
|
|
hql.append(" JOIN v.contrato c ");
|
|
hql.append(" WHERE v.activo = 1 ");
|
|
|
|
|
|
setClausulas(null,
|
|
numContrato,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
status,
|
|
origemId,
|
|
destinoId,
|
|
transportadoraId,
|
|
grupoContratoId,
|
|
numInicial,
|
|
numFinal,
|
|
hql);
|
|
|
|
hql.append("ORDER BY v.voucherId ");
|
|
|
|
Query query = getSession().createQuery(hql.toString());
|
|
|
|
setParametros(null,
|
|
numContrato,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
status,
|
|
origemId,
|
|
destinoId,
|
|
transportadoraId,
|
|
grupoContratoId,
|
|
numInicial,
|
|
numFinal,
|
|
query);
|
|
|
|
return query.list();
|
|
}
|
|
|
|
private void setJoins(StringBuilder hql) {
|
|
hql.append("LEFT JOIN com.rjconsultores.ventaboletos.entidad.Parada ori ON v.origenId = ori.paradaId ");
|
|
hql.append("LEFT JOIN com.rjconsultores.ventaboletos.entidad.Parada des ON v.destinoId = des.paradaId ");
|
|
}
|
|
|
|
private void setClausulas(Long voucherId,
|
|
String numContrato,
|
|
String nit,
|
|
String nomeTransportadora,
|
|
Date dataInicial,
|
|
Date dataFinal,
|
|
Integer status,
|
|
Integer origemId,
|
|
Integer destinoId,
|
|
Long transportadoraId,
|
|
Long grupoContratoId,
|
|
Long numInicial,
|
|
Long numFinal,
|
|
StringBuilder hql) {
|
|
|
|
if(voucherId != null ){
|
|
hql.append(" AND v.voucherId = :voucherId ");
|
|
}
|
|
|
|
if(numInicial != null ){
|
|
hql.append(" AND v.voucherId >= :numInicial ");
|
|
}
|
|
|
|
if(numFinal != null ){
|
|
hql.append(" AND v.voucherId <= :numFinal ");
|
|
}
|
|
|
|
if(status != null ){
|
|
hql.append(" AND v.status = :status ");
|
|
}
|
|
|
|
if(numContrato != null ){
|
|
hql.append(" AND v.contrato.numContrato = :numContrato ");
|
|
}
|
|
|
|
if(nit != null ){
|
|
hql.append(" AND v.transportadora.nit = :nit ");
|
|
}
|
|
|
|
if(nomeTransportadora != null ){
|
|
hql.append(" AND v.transportadora.nomeTransportadora like :nomeTransportadora ");
|
|
}
|
|
|
|
if(transportadoraId != null ){
|
|
hql.append(" AND v.transportadora.transportadoraId = :transportadoraId ");
|
|
}
|
|
|
|
if(grupoContratoId != null ){
|
|
hql.append(" AND v.contrato.grupoContratoId = :grupoContratoId ");
|
|
}
|
|
|
|
if(dataInicial != null ){
|
|
hql.append(" AND v.dataValidade >= :dataInicial ");
|
|
}
|
|
|
|
if(dataFinal != null ){
|
|
hql.append(" AND v.dataValidade <= :dataFinal ");
|
|
}
|
|
|
|
if(origemId != null ){
|
|
hql.append(" AND v.origenId = :origemId ");
|
|
}
|
|
|
|
if(destinoId != null ){
|
|
hql.append(" AND v.destinoId = :destinoId ");
|
|
}
|
|
}
|
|
|
|
private void setParametros(Long voucherId,
|
|
String numContrato,
|
|
String nit,
|
|
String nomeTransportadora,
|
|
Date dataInicial,
|
|
Date dataFinal,
|
|
Integer status,
|
|
Integer origemId,
|
|
Integer destinoId,
|
|
Long transportadoraId,
|
|
Long grupoContratoId,
|
|
Long numInicial,
|
|
Long numFinal,
|
|
Query query) {
|
|
|
|
if(voucherId != null ){
|
|
query.setLong("voucherId", voucherId);
|
|
}
|
|
|
|
if(numInicial != null ){
|
|
query.setLong("numInicial", numInicial);
|
|
}
|
|
|
|
if(numFinal != null ){
|
|
query.setLong("numFinal", numFinal);
|
|
}
|
|
|
|
if(numContrato != null ){
|
|
query.setString("numContrato", numContrato);
|
|
}
|
|
|
|
if(nit != null ){
|
|
query.setString("nit", nit);
|
|
}
|
|
|
|
if(nomeTransportadora != null ){
|
|
query.setString("nomeTransportadora", nomeTransportadora);
|
|
}
|
|
|
|
if(transportadoraId != null ){
|
|
query.setLong("transportadoraId", transportadoraId);
|
|
}
|
|
|
|
if(grupoContratoId != null ){
|
|
query.setLong("grupoContratoId", grupoContratoId);
|
|
}
|
|
|
|
if(dataInicial != null ){
|
|
query.setDate("dataInicial", dataInicial);
|
|
}
|
|
|
|
if(dataFinal != null ){
|
|
query.setDate("dataFinal", dataFinal);
|
|
}
|
|
|
|
if(status != null ){
|
|
query.setInteger("status", status);
|
|
}
|
|
|
|
if(origemId != null ){
|
|
query.setInteger("origemId", origemId);
|
|
}
|
|
|
|
if(destinoId != null ){
|
|
query.setInteger("destinoId", destinoId);
|
|
}
|
|
}
|
|
}
|