From eb8984ffea8882d084fd94c42beaaf2dc97c0be5 Mon Sep 17 00:00:00 2001 From: "eduardo.dicarde" Date: Tue, 14 Jul 2015 13:19:41 +0000 Subject: [PATCH] fixed BUG #6468 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@45989 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/hibernate/EmpresaHibernateDAO.java | 183 ++++++++++-------- 1 file changed, 105 insertions(+), 78 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/EmpresaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/EmpresaHibernateDAO.java index ba08a3197..c8b8e5ebd 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/EmpresaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/EmpresaHibernateDAO.java @@ -4,9 +4,13 @@ */ package com.rjconsultores.ventaboletos.dao.hibernate; +import java.sql.Connection; +import java.sql.SQLException; import java.util.ArrayList; import java.util.List; +import javax.sql.DataSource; + import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.Session; @@ -29,110 +33,109 @@ import com.rjconsultores.ventaboletos.entidad.PuntoVenta; */ @Repository("empresaDAO") public class EmpresaHibernateDAO extends GenericHibernateDAO - implements EmpresaDAO { + implements EmpresaDAO { - @Autowired - public EmpresaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { - setSessionFactory(factory); - } + @Autowired + private DataSource dataSource; - @Override - public List obtenerTodos() { - Criteria c = getSession().createCriteria(getPersistentClass()); - c.add(Restrictions.eq("activo", Boolean.TRUE)); - c.addOrder(Order.asc("nombempresa")); + @Autowired + public EmpresaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { + setSessionFactory(factory); + } - return c.list(); - } - - public List buscar(String nombempresa, Boolean indExterna, Short indTipo) { - Criteria c = getSession().createCriteria(getPersistentClass()); - c.add(Restrictions.eq("activo", Boolean.TRUE)); - c.add(Restrictions.eq("nombempresa", nombempresa)); - c.add(Restrictions.eq("indExterna", indExterna)); - c.add(Restrictions.eq("indTipo", indTipo)); + @Override + public List obtenerTodos() { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + c.addOrder(Order.asc("nombempresa")); - return c.list(); - } + return c.list(); + } - public List buscarTodosExceto(List empresa,Integer... idEmpresa) { - List empresaList = new ArrayList(); - for (Integer id : idEmpresa) { - for(Empresa e : empresa){ - e.getEmpresaId().equals(id); - } - } - - return empresaList; + public List buscar(String nombempresa, Boolean indExterna, Short indTipo) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + c.add(Restrictions.eq("nombempresa", nombempresa)); + c.add(Restrictions.eq("indExterna", indExterna)); + c.add(Restrictions.eq("indTipo", indTipo)); - } + return c.list(); + } - public List obtenerIndExternoFalse() { - Criteria c = getSession().createCriteria(getPersistentClass()); - c.add(Restrictions.eq("activo", Boolean.TRUE)); - c.add(Restrictions.eq("indExterna", Boolean.FALSE)); + public List buscarTodosExceto(List empresa, Integer... idEmpresa) { + List empresaList = new ArrayList(); + for (Integer id : idEmpresa) { + for (Empresa e : empresa) { + e.getEmpresaId().equals(id); + } + } - c.addOrder(Order.asc("nombempresa")); + return empresaList; - return c.list(); - } + } + public List obtenerIndExternoFalse() { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + c.add(Restrictions.eq("indExterna", Boolean.FALSE)); - public List obtenerIndTipo2() { - Criteria c = getSession().createCriteria(getPersistentClass()); - c.add(Restrictions.eq("activo", Boolean.TRUE)); - c.add(Restrictions.eq("indTipo", new Short("2"))); + c.addOrder(Order.asc("nombempresa")); - //Nao Buscar Empresa todas - c.add(Restrictions.ne("empresaId", -1)); + return c.list(); + } - c.addOrder(Order.asc("nombempresa")); + public List obtenerIndTipo2() { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + c.add(Restrictions.eq("indTipo", new Short("2"))); - return c.list(); - } - - - public List buscarNotInPuntoVtaComissao(PuntoVenta puntoVenta){ - StringBuilder sb = new StringBuilder(); - - sb.append(" select em "); - sb.append(" from Empresa em "); - sb.append(" where em.activo = 1 "); - sb.append(" and em.empresaId not in ( "); - sb.append(" select pc.empresaId.empresaId from PtovtaComissao pc "); - sb.append(" where pc.activo = 1 and pc.puntoventaId.puntoventaId = :puntoventaId "); - sb.append(" )"); - sb.append(" order by em.nombempresa"); - + // Nao Buscar Empresa todas + c.add(Restrictions.ne("empresaId", -1)); - Query query = getSession().createQuery(sb.toString()); - query.setParameter("puntoventaId", puntoVenta.getPuntoventaId()); + c.addOrder(Order.asc("nombempresa")); - List lsEmpresa = query.list(); - + return c.list(); + } - return lsEmpresa; - - } + public List buscarNotInPuntoVtaComissao(PuntoVenta puntoVenta) { + StringBuilder sb = new StringBuilder(); + + sb.append(" select em "); + sb.append(" from Empresa em "); + sb.append(" where em.activo = 1 "); + sb.append(" and em.empresaId not in ( "); + sb.append(" select pc.empresaId.empresaId from PtovtaComissao pc "); + sb.append(" where pc.activo = 1 and pc.puntoventaId.puntoventaId = :puntoventaId "); + sb.append(" )"); + sb.append(" order by em.nombempresa"); + + Query query = getSession().createQuery(sb.toString()); + query.setParameter("puntoventaId", puntoVenta.getPuntoventaId()); + + List lsEmpresa = query.list(); + + return lsEmpresa; + + } @Override public List buscaInscricoesEstaduais(Empresa empresa) { - - Criteria c = getSession().createCriteria(InscricaoEstadual.class); - c.add(Restrictions.eq("empresa", empresa)); - c.add(Restrictions.eq("activo", Boolean.TRUE)); - - return c.list(); + + Criteria c = getSession().createCriteria(InscricaoEstadual.class); + c.add(Restrictions.eq("empresa", empresa)); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + + return c.list(); } @Override - public void actualizaInscEstadual(InscricaoEstadual inscricaoEstadual) { - + public void actualizaInscEstadual(InscricaoEstadual inscricaoEstadual) { + Session session = getSessionFactory().getCurrentSession(); - session.saveOrUpdate(inscricaoEstadual); + session.saveOrUpdate(inscricaoEstadual); session.flush(); } - + @Override public List buscaLike(String nombempresa) { Criteria c = getSession().createCriteria(getPersistentClass()); @@ -143,4 +146,28 @@ public class EmpresaHibernateDAO extends GenericHibernateDAO return c.list(); } + + @Override + public Empresa suscribir(Empresa entity) throws RuntimeException { + super.suscribir(entity); + + gerarSeqNumFolioSistema(entity.getEmpresaId()); + + return entity; + } + + private void gerarSeqNumFolioSistema(Integer idEmpresa) throws RuntimeException { + try { + Connection conn = dataSource.getConnection(); + if (!conn.createStatement().executeQuery("select SEQUENCE_NAME from DBA_SEQUENCES where SEQUENCE_NAME like 'FOLIO_SISTEMA_" + idEmpresa + "_SEQ%'").next()) { + String[] sequences = { "", "AC", "AL", "AM", "AP", "BA", "CE", "DF", "ES", "GO", "MA", "MG", "MS", "MT", "PA", "PB", "PE", "PI", "PR", "RJ", "RN", "RO", "RR", "RS", "SC", "SE", "SP", "TO" }; + + for (String sequence : sequences) { + conn.createStatement().execute("CREATE SEQUENCE VTABOL.FOLIO_SISTEMA_" + (sequence == "" ? sequence : (sequence + "_") + idEmpresa + "_SEQ")); + } + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + } }