AdmMono/src/com/rjconsultores/ventaboletos/dao/hibernate/PuntoVentaHibernateDAO.java

191 lines
6.0 KiB
Java

/*
* 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<PuntoVenta, Integer>
implements PuntoVentaDAO {
@Autowired
private PtovtaTipoEstoqueDAO ptovtaTipoEstoqueDAO;
@Autowired
public PuntoVentaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@Override
public List<PuntoVenta> obtenerTodos() {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.addOrder(Order.asc("nombpuntoventa"));
return c.list();
}
// public List<PuntoVenta> 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<PuntoVenta> 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<PuntoVenta> 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<PuntoVenta> 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<PuntoVenta> buscaPuntoVentaParada(Parada parada) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.addOrder(Order.asc("nombpuntoventa"));
return c.list();
}
@Override
public List<PuntoVenta> 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<PuntoVenta> buscarPuntosVentaMovimentacionBilhetes(List<Empresa> 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<PuntoVenta> puntosVenta = c.list();
// List<PuntoVenta> puntosVenta = geraListaDummy();
return puntosVenta;
}
public List<PuntoVenta> buscarPuntoVentaPorTipoEstoque(PtovtaTipoEstoque tipoEstoque) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("ptovtaTipoEstoque", tipoEstoque));
List<PuntoVenta> puntosVenta = c.list();
return puntosVenta;
}
private List<PuntoVenta> 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<PuntoVenta> 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<PuntoVenta> puntosVenta = new ArrayList<PuntoVenta>();
// puntosVenta.add(pv6);
// puntosVenta.add(pv1);
// puntosVenta.add(pv2);
// puntosVenta.add(pv3);
// puntosVenta.add(pv4);
// puntosVenta.add(pv5);
return puntosVenta;
}
}