package gcom.cadastro.localidade; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.ErroRepositorioException; import gcom.util.HibernateUtil; import gcom.util.Util; import java.util.Collection; import org.hibernate.Hibernate; import org.hibernate.HibernateException; import org.hibernate.Session; /** * <p> * Title: GCOM * </p> * <p> * Description: Sistema de Gest�o Comercial * </p> * <p> * Copyright: Copyright (c) 2005 * </p> * <p> * Company: COMPESA - Companhia Pernambucana de Saneamento * </p> * * @author Rossiter * @version 1.0 */ public class RepositorioSetorComercialHBM implements IRepositorioSetorComercial { private static IRepositorioSetorComercial instancia; /** * Constructor for the RepositorioSetorComercialHBM object */ public RepositorioSetorComercialHBM() { } /** * Retorna o valor de instancia * * @return O valor de instancia */ public static IRepositorioSetorComercial getInstancia() { if (instancia == null) { instancia = new RepositorioSetorComercialHBM(); } return instancia; } /** * Pesquisa uma cole��o de cliente imovel com uma query especifica * * @param filtroClienteImovel * parametros para a consulta * @return Description of the Return Value * @exception ErroRepositorioException * Description of the Exception */ public Collection pesquisarSetorComercial(int idLocalidade) throws ErroRepositorioException { //cria a cole��o de retorno Collection retorno = null; //Query String consulta; //obt�m a sess�o Session session = HibernateUtil.getSession(); try { //pesquisa a cole��o de atividades e atribui a vari�vel "retorno" consulta = "select new gcom.cadastro.localidade.SetorComercial(setorComercial.id, setorComercial.codigo," + "setorComercial.descricao) " + "from gcom.cadastro.localidade.SetorComercial as setorComercial " + "where setorComercial.localidade.id = " + idLocalidade + " and setorComercial.indicadorUso = 1"; retorno = session.createQuery(consulta).list(); //erro no hibernate } catch (HibernateException e) { //levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { //fecha a sess�o HibernateUtil.closeSession(session); } //retorna a cole��o de atividades pesquisada(s) return retorno; } /** * M�todo que retorna o maior c�digo do setor comercial de uma localidade * * @author Rafael Corr�a * @date 11/07/2006 * * @param idLocalidade * @return * @throws ControladorException */ public int pesquisarMaximoCodigoSetorComercial(Integer idLocalidade) throws ErroRepositorioException { int retorno = 0; Object maxCodigoSetorComercial; Session session = HibernateUtil.getSession(); String consulta; try { consulta = "SELECT max(sc.codigo) " + "FROM SetorComercial sc " + "INNER JOIN sc.localidade l " + "WHERE l.id = :idLocalidade "; maxCodigoSetorComercial = session.createQuery(consulta).setInteger( "idLocalidade", idLocalidade) .setMaxResults(1).uniqueResult(); if (maxCodigoSetorComercial != null){ retorno = (Integer)maxCodigoSetorComercial; } } catch (HibernateException e) { throw new ErroRepositorioException("Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * Pesquisa um setor comercial pelo c�digo e pelo id da localidade * * @author Rafael Corr�a * @date 01/08/2006 * * @return SetorComercial * @exception ErroRepositorioException * Erro no hibernate */ public Object[] pesquisarObjetoSetorComercialRelatorio(Integer codigoSetorComercial, Integer idLocalidade) throws ErroRepositorioException { // cria a vari�vel que vai armazenar a cole��o pesquisada Object[] retorno = null; // cria a sess�o com o hibernate Session session = HibernateUtil.getSession(); try { // cria o HQL para consulta String consulta = "select sc.stcm_cdsetorcomercial as codigo, " + "sc.stcm_nmsetorcomercial as descricao " + "from cadastro.localidade loc, " + "cadastro.setor_comercial sc " + "where sc.loca_id = loc.loca_id and" + " loc.loca_id = " + idLocalidade.toString() + " and sc.stcm_cdsetorcomercial = " + codigoSetorComercial.toString(); // pesquisa a cole��o de acordo com o par�metro informado Collection colecaoSetoresComerciais = session.createSQLQuery(consulta) .addScalar("codigo", Hibernate.INTEGER) .addScalar("descricao", Hibernate.STRING).list(); retorno = Util.retonarObjetoDeColecaoArray(colecaoSetoresComerciais); // erro no hibernate } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { // fecha a sess�o HibernateUtil.closeSession(session); } // retorna a cole��o pesquisada return retorno; } /** * Pesquisar os ids do Setor comercial pela localidade * * @author Ana Maria * @date 07/02/2007 * * @return Collection<Integer> * @throws ErroRepositorioException */ public Collection<Integer> pesquisarIdsSetorComercial(Integer idLocalidade) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = ""; try { consulta = " select stcm.id" + " from SetorComercial stcm" + " where stcm.localidade.id =:idLocalidade"; retorno = session.createQuery(consulta).setInteger( "idLocalidade", idLocalidade).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * Pesquisar os todos os ids de Setor comercial * * @author Vivianne Sousa * @date 14/05/2008 * * @return Collection<Integer> * @throws ErroRepositorioException */ public Collection<Integer> pesquisarIdsCodigosSetorComercial() throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = ""; try { consulta = " select stcm.id" + " from SetorComercial stcm"; retorno = session.createQuery(consulta).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * [UC0928]-Manter Situa��o Especial de Faturamento * [FS0003]-Verificar a exist�ncia do setor * * @author Marlon Patrick * @date 11/08/2009 * * @throws ErroRepositorioException */ public Integer verificarExistenciaSetorComercial(Integer idSetorComercial)throws ErroRepositorioException{ Integer retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "select count(setor.id) " + "from SetorComercial setor " + "where setor.id = :idSetor and (imovel.indicadorUso = :indicadorUso)"; retorno = (Integer) session.createQuery(consulta).setInteger( "idSetor", idSetorComercial).setShort("indicadorUso", ConstantesSistema.INDICADOR_USO_ATIVO).setMaxResults(1).uniqueResult(); } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { // fecha a sess�o HibernateUtil.closeSession(session); } return retorno; } }