package gcom.atendimentopublico.ligacaoesgoto; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.ErroRepositorioException; import gcom.util.HibernateUtil; import java.math.BigDecimal; import java.util.Collection; import org.hibernate.HibernateException; import org.hibernate.Session; /** * Implementa��o do Reposit�rio de Liga��o de Esgoto * * @author Leonardo Regis * @date 08/09/2006 */ public class RepositorioLigacaoEsgotoHBM implements IRepositorioLigacaoEsgoto { private static IRepositorioLigacaoEsgoto instancia; /** * Construtor da classe RepositorioLigacaoEsgotoHBM */ private RepositorioLigacaoEsgotoHBM() { } /** * Retorna o valor de instancia * * @return instancia */ public static IRepositorioLigacaoEsgoto getInstancia() { if (instancia == null) { instancia = new RepositorioLigacaoEsgotoHBM(); } return instancia; } /** * [UC0464] Atualizar Volume M�nimo da Liga��o de Esgoto * * [SB0001] Atualizar Liga��o de Esgoto. * * @author Leonardo Regis * @date 22/09/2006 * * @param ligacaoEsgoto * @throws ErroRepositorioException */ public void atualizarVolumeMinimoLigacaoEsgoto(LigacaoEsgoto ligacaoEsgoto) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); String update; try { update = "update LigacaoEsgoto set "; if (ligacaoEsgoto.getConsumoMinimo() != null) { update = update + "consumoMinimo = :consumoMinimo, "; } else { update = update + "consumoMinimo = null, "; } update = update + "ultimaAlteracao = :dataCorrente " + "where id = :ligacaoEsgotoId"; if (ligacaoEsgoto.getConsumoMinimo() != null) { session.createQuery(update).setInteger("consumoMinimo", ligacaoEsgoto.getConsumoMinimo()).setTimestamp( "dataCorrente", ligacaoEsgoto.getUltimaAlteracao()) .setInteger("ligacaoEsgotoId", ligacaoEsgoto.getId()) .executeUpdate(); } else { session.createQuery(update).setTimestamp( "dataCorrente", ligacaoEsgoto.getUltimaAlteracao()) .setInteger("ligacaoEsgotoId", ligacaoEsgoto.getId()) .executeUpdate(); } } catch (HibernateException e) { e.printStackTrace(); throw new ErroRepositorioException("Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } } /** * [UC0488] Informar Retorno Ordem de Fiscaliza��o * * [SB0004] - Calcular Valor de �gua e/ou Esgoto * * * @author S�vio Luiz * @date 04/12/2006 * * @param idOS * @return OrdemServico * @throws ControladorException */ public BigDecimal recuperarPercentualEsgoto(Integer idLigacaoEsgoto) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); String consulta; BigDecimal retorno = null; try { consulta = "SELECT ligEsgoto.percentual " + "FROM LigacaoEsgoto ligEsgoto " + "WHERE ligEsgoto.id = :idLigacaoEsgoto"; retorno = (BigDecimal) session.createQuery(consulta).setInteger( "idLigacaoEsgoto", idLigacaoEsgoto).setMaxResults(1) .uniqueResult(); } catch (HibernateException e) { e.printStackTrace(); throw new ErroRepositorioException("Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * [UC0349] Emitir Documento de Cobran�a - Ordem de Fiscaliza��o * * @author S�vio Luiz * @date 21/12/2006 * * @param idOS * @return OrdemServico * @throws ControladorException */ public Integer recuperarConsumoMinimoEsgoto(Integer idImovel) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); String consulta; Integer retorno = null; try { consulta = "SELECT ligEsgoto.consumoMinimo " + "FROM LigacaoEsgoto ligEsgoto " + "WHERE ligEsgoto.id = :idImovel"; retorno = (Integer) session.createQuery(consulta).setInteger( "idImovel", idImovel).setMaxResults(1) .uniqueResult(); } catch (HibernateException e) { e.printStackTrace(); throw new ErroRepositorioException("Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * [UC0113] - Faturar Grupo de Faturamento * * [SB0001 - Determinar Faturamento para o Im�vel] * * @author Raphael Rossiter * @date 04/06/2008 * * @param idLigacaoEsgotoSituacao * @param idConsumoTipo * @return LigacaoEsgotoSituacaoConsumoTipo * @throws ErroRepositorioException */ public LigacaoEsgotoSituacaoConsumoTipo pesquisarLigacaoEsgotoSituacaoConsumoTipo(Integer idLigacaoEsgotoSituacao, Integer idConsumoTipo) throws ErroRepositorioException{ Session session = HibernateUtil.getSession(); LigacaoEsgotoSituacaoConsumoTipo retorno = null; try { String consulta = "SELECT lect " + "FROM LigacaoEsgotoSituacaoConsumoTipo lect " + "INNER JOIN lect.consumoTipo consumoTipo " + "INNER JOIN lect.ligacaoEsgotoSituacao lest " + "WHERE consumoTipo.id = :idConsumoTipo AND lest.id = :idLigacaoEsgotoSituacao "; retorno = (LigacaoEsgotoSituacaoConsumoTipo) session.createQuery(consulta) .setInteger("idConsumoTipo", idConsumoTipo) .setInteger("idLigacaoEsgotoSituacao", idLigacaoEsgotoSituacao) .setMaxResults(1).uniqueResult(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * @author Wellington Rocha * Data: 21/03/2012 * * Pesquisar todas as situa��es de liga��es de esgoto ativas * * Gera��o de Rotas para Recadastramento * * @return Collection * @throws ControladorException * */ public Collection pesquisarLigacaoEsgotoSituacao() throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try{ consulta = "select ligacaoEsgotoSituacao " + " from LigacaoEsgotoSituacao ligacaoEsgotoSituacao " + " where ligacaoEsgotoSituacao.indicadorUso = :indicadorUso "; retorno = (Collection) session.createQuery(consulta) .setInteger("indicadorUso", ConstantesSistema.SIM.intValue()) .list(); }catch(HibernateException e) { throw new ErroRepositorioException(e,"Erro no hibernate"); }finally { HibernateUtil.closeSession(session); } return retorno; } }