112 lines
4.4 KiB
Java
112 lines
4.4 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.RedondeoCtrlDAO;
|
|
import com.rjconsultores.ventaboletos.entidad.RedondeoCtrl;
|
|
import com.rjconsultores.ventaboletos.entidad.RedondeoMarca;
|
|
import java.math.BigDecimal;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import org.apache.log4j.Logger;
|
|
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;
|
|
|
|
/**
|
|
*
|
|
* @author Administrador
|
|
*/
|
|
@Repository("redondeoCtrlDAO")
|
|
public class RedondeoCtrlHibernateDAO extends GenericHibernateDAO<RedondeoCtrl, Integer>
|
|
implements RedondeoCtrlDAO {
|
|
|
|
private static Logger log = Logger.getLogger(RedondeoCtrlHibernateDAO.class);
|
|
|
|
@Autowired
|
|
public RedondeoCtrlHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
|
setSessionFactory(factory);
|
|
}
|
|
|
|
@Override
|
|
public List<RedondeoCtrl> obtenerTodos() {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<RedondeoCtrl> buscar(RedondeoCtrl redondeoCtrl) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
|
|
List<Short> lsShort = new ArrayList<Short>();
|
|
for (RedondeoMarca rm : redondeoCtrl.getRedondeoMarcaList()) {
|
|
lsShort.add(rm.getMarca().getMarcaId());
|
|
}
|
|
c.createCriteria("redondeoMarcaList").add(Restrictions.in("marca.marcaId", lsShort));
|
|
|
|
return c.list();
|
|
|
|
}
|
|
|
|
public List<RedondeoCtrl> buscarTraslapa(Short[] iDMarcas, BigDecimal valorinicial, BigDecimal valorfinal, Boolean indaplicadescuento,
|
|
Boolean indaplicapricing, Boolean indaplicaAtersp) {
|
|
|
|
String ids = "";
|
|
for (int i = 0; i < iDMarcas.length; i++) {
|
|
ids = ids.concat(iDMarcas[i].toString().concat(","));
|
|
}
|
|
ids = ids.substring(0, ids.length() - 1);
|
|
|
|
|
|
StringBuilder hql = new StringBuilder("select rc from RedondeoCtrl rc ");
|
|
hql.append(" join rc.redondeoList r ");
|
|
hql.append(" join rc.redondeoMarcaList rm ");
|
|
hql.append(" where rc.activo = 1 and r.activo = 1 and rm.activo = 1 ");
|
|
if (indaplicaAtersp) {
|
|
hql.append(" and rc.indaplicaArtesp = :aplicaArtesp ");
|
|
} else if (indaplicadescuento && !indaplicapricing) {
|
|
hql.append(" and rc.indaplicadescuento = :aplicaDescuento ");
|
|
} else if (!indaplicadescuento && indaplicapricing) {
|
|
hql.append(" and rc.indaplicapricing = :aplicaPricing ");
|
|
} else if (indaplicadescuento && indaplicapricing) {
|
|
hql.append(" and rc.indaplicadescuento = :aplicaDescuento or rc.indaplicapricing = :aplicaPricing ");
|
|
} else if (!indaplicadescuento && !indaplicapricing) {
|
|
hql.append(" and rc.indaplicadescuento = :aplicaDescuento and rc.indaplicapricing = :aplicaPricing ");
|
|
}
|
|
hql.append(" and rm.marca.marcaId in (" + ids + ") and ");
|
|
hql.append(" (((:vlrIni BETWEEN r.valorinicial AND r.valorfinal) ");
|
|
hql.append(" OR (:vlrFin BETWEEN r.valorinicial AND r.valorfinal)) ");
|
|
hql.append(" OR ((r.valorinicial BETWEEN :vlrIni AND :vlrFin) ");
|
|
hql.append(" OR (r.valorfinal BETWEEN :vlrIni AND :vlrFin))) ");
|
|
|
|
log.debug("Select: " + hql.toString());
|
|
Query sq = getSession().createQuery(hql.toString());
|
|
sq.setDouble("vlrIni", valorinicial.doubleValue());
|
|
sq.setDouble("vlrFin", valorfinal.doubleValue());
|
|
|
|
if (indaplicaAtersp) {
|
|
sq.setBoolean("aplicaArtesp", indaplicaAtersp);
|
|
} else if (indaplicadescuento && !indaplicapricing) {
|
|
sq.setBoolean("aplicaDescuento", indaplicadescuento);
|
|
} else if (!indaplicadescuento && indaplicapricing) {
|
|
sq.setBoolean("aplicaPricing", indaplicapricing);
|
|
} else {
|
|
sq.setBoolean("aplicaDescuento", indaplicadescuento);
|
|
sq.setBoolean("aplicaPricing", indaplicapricing);
|
|
}
|
|
|
|
|
|
return sq.list();
|
|
|
|
}
|
|
}
|