/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.rjconsultores.ventaboletos.dao.hibernate; import java.util.List; import org.hibernate.Criteria; import org.hibernate.FetchMode; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Order; 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.PtovtaTipoEstoqueDAO; import com.rjconsultores.ventaboletos.dao.PuntoVentaDAO; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.PtovtaTipoEstoque; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.Usuario; /** * * @author Administrador */ @Repository("puntoVentaDAO") public class PuntoVentaHibernateDAO extends GenericHibernateDAO implements PuntoVentaDAO { @Autowired private PtovtaTipoEstoqueDAO ptovtaTipoEstoqueDAO; @Autowired public PuntoVentaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { setSessionFactory(factory); } @Override public List obtenerTodos() { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.addOrder(Order.asc("nombpuntoventa")); return c.list(); } // public List buscaLike(String strEstacion) { // Criteria c = getSession().createCriteria(getPersistentClass()); // c.add(Restrictions.eq("activo", Boolean.TRUE)); // c.add(Restrictions.like("nombpuntoventa", strEstacion, MatchMode.START)); // // return c.list(); // } public List buscaLike(String strEstacion) { Criteria c = getSession().createCriteria(getPersistentClass()); Criterion cr1 = Restrictions.like("nombpuntoventa", strEstacion, MatchMode.START); Criterion crActivo = Restrictions.eq("activo", Boolean.TRUE); PtovtaTipoEstoque supr = ptovtaTipoEstoqueDAO.buscarTipoSuprimento(); PtovtaTipoEstoque cont = ptovtaTipoEstoqueDAO.buscarTipoContabilidade(); Criterion suprCont = Restrictions.in("ptovtaTipoEstoque", new PtovtaTipoEstoque[] { supr, cont }); Criterion pt2 = Restrictions.or(crActivo, suprCont); c.add(Restrictions.and(cr1, pt2)); return c.list(); } public List busca(String nomPuntoVenta, String numPuntoVenta) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("nombpuntoventa", nomPuntoVenta)); c.add(Restrictions.eq("numPuntoVenta", numPuntoVenta)); return c.list(); } public List buscaPuntoVenta(String numPuntoVenta) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("numPuntoVenta", numPuntoVenta)); return c.list(); } public List buscaPuntoVentaParada(Parada parada) { Criteria c = getSession().createCriteria(getPersistentClass()); c.addOrder(Order.asc("nombpuntoventa")); return c.list(); } @Override public List buscarPuntoVentaSubordinados(PuntoVenta puntoVenta) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("puntoVentaPadre", puntoVenta)); return c.list(); } @Override public List buscarPuntosVentaMovimentacionBilhetes(List empresas) { Criteria c = getSession().createCriteria(getPersistentClass()); Criterion crtPtovta = Restrictions.and(Restrictions.eq("activo", Boolean.TRUE), Restrictions.in("empresa", empresas)); PtovtaTipoEstoque supr = ptovtaTipoEstoqueDAO.buscarTipoSuprimento(); PtovtaTipoEstoque cont = ptovtaTipoEstoqueDAO.buscarTipoContabilidade(); Criterion suprCont = Restrictions.in("ptovtaTipoEstoque", new PtovtaTipoEstoque[] { supr, cont }); c.add(Restrictions.or(suprCont, crtPtovta)); c.addOrder(Order.asc("nombpuntoventa")); List puntosVenta = c.list(); // List puntosVenta = geraListaDummy(); return puntosVenta; } public List buscarPuntoVentaPorTipoEstoque(PtovtaTipoEstoque tipoEstoque) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("ptovtaTipoEstoque", tipoEstoque)); List puntosVenta = c.list(); return puntosVenta; } private List geraListaDummy() { Criteria c = getSession().createCriteria(getPersistentClass()); PtovtaTipoEstoque supr = ptovtaTipoEstoqueDAO.buscarTipoSuprimento(); PtovtaTipoEstoque cont = ptovtaTipoEstoqueDAO.buscarTipoContabilidade(); Criterion suprCont = Restrictions.in("ptovtaTipoEstoque", new PtovtaTipoEstoque[] { supr, cont }); Criterion crtPtovta = Restrictions.in("puntoventaId", new Integer[] { 1, 2, 3, 786, 1321, 1722 }); c.add(Restrictions.or(suprCont, crtPtovta)); List puntosVenta = c.list(); // PuntoVenta pv1 = new PuntoVenta(Integer.valueOf(1)); // pv1.setNombpuntoventa("pv1"); // // PuntoVenta pv2 = new PuntoVenta(Integer.valueOf(2)); // pv2.setNombpuntoventa("pv2"); // // PuntoVenta pv3 = new PuntoVenta(Integer.valueOf(3)); // pv3.setNombpuntoventa("pv3"); // // PuntoVenta pv4 = new PuntoVenta(Integer.valueOf(786)); // pv4.setNombpuntoventa("pv4"); // // PuntoVenta pv5 = new PuntoVenta(Integer.valueOf(1321)); // pv5.setNombpuntoventa("pv5"); // // PuntoVenta pv6 = new PuntoVenta(Integer.valueOf(1722)); // pv6.setNombpuntoventa("SUPRIMENTO"); // // List puntosVenta = new ArrayList(); // puntosVenta.add(pv6); // puntosVenta.add(pv1); // puntosVenta.add(pv2); // puntosVenta.add(pv3); // puntosVenta.add(pv4); // puntosVenta.add(pv5); return puntosVenta; } }