package gcom.gerencial.faturamento; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.cliente.EsferaPoder; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.ImovelPerfil; import gcom.faturamento.ResumoFaturamentoSituacaoEspecial; import gcom.gerencial.bean.InformarDadosGeracaoRelatorioConsultaHelper; import gcom.gerencial.faturamento.bean.ConsultarResumoSituacaoEspecialHelper; import gcom.gerencial.faturamento.bean.FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper; import gcom.gerencial.faturamento.bean.FiltrarResumoDadosCasHelper; import gcom.gerencial.faturamento.bean.ResumoFaturamentoGuiaPagamentoNovoHelper; import gcom.gerencial.faturamento.bean.ResumoFaturamentoHelper; import gcom.gerencial.faturamento.bean.ResumoFaturamentoPorAnoHelper; import gcom.gerencial.faturamento.bean.ResumoReFaturamentoNovoHelper; import gcom.util.ConstantesSistema; import gcom.util.ErroRepositorioException; import gcom.util.GeradorSqlRelatorio; import gcom.util.HibernateUtil; import gcom.util.Util; import java.math.BigDecimal; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.hibernate.Hibernate; import org.hibernate.HibernateException; import org.hibernate.SQLQuery; import org.hibernate.Session; import org.hibernate.StatelessSession; /** * < <Descri��o da Classe>> * * @author Administrador */ public class RepositorioGerencialFaturamentoHBM implements IRepositorioGerencialFaturamento { protected static IRepositorioGerencialFaturamento instancia; /** * Construtor da classe RepositorioMicromedicaoHBM */ protected RepositorioGerencialFaturamentoHBM() { } /** * Retorna o valor de instancia * * @return O valor de instancia */ public static IRepositorioGerencialFaturamento getInstancia() { if (instancia == null) { instancia = new RepositorioGerencialFaturamentoHBM(); } return instancia; } /** * * M�todo que consulta os ResumoFaturamentoSituacaoEspecialHelper * * @author Thiago Toscano * @date 15/05/2006 * * @return * @throws ErroRepositorioException */ public List getResumoFaturamentoSituacaoEspecialHelper(int idLocalidade) throws ErroRepositorioException { // cria a cole��o de retorno List retorno = null ; // obt�m a sess�o Session session = HibernateUtil.getSession(); try { // pesquisa a cole��o de atividades e atribui a vari�vel "retorno" String hql = " select " + "distinct(imovel.id) , " //0 + "gerenciaRegional.id, " //1 + "localidade.id, " //2 + "setorComercial.id, "//3 + "rota.id, " //4 + "quadra.id, " //5 + "setorComercial.codigo, "//6 + "quadra.numeroQuadra, " //7 + "imovelPerfil.id, " //8 + "ligacaoAguaSituacao.id, "//9 + "ligacaoEsgotoSituacao.id, " //10 + "faturamentoSituacaoTipo.id, " //11 + "faturamentoSituacaoMotivo.id, " //12 + "faturamentoSituacaoHistorico.anoMesFaturamentoSituacaoInicio, "//13 + "faturamentoSituacaoHistorico.anoMesFaturamentoSituacaoFim "//14 + " from " + " gcom.faturamento.FaturamentoSituacaoHistorico faturamentoSituacaoHistorico " + " inner join faturamentoSituacaoHistorico.faturamentoSituacaoTipo faturamentoSituacaoTipo " + " inner join faturamentoSituacaoHistorico.faturamentoSituacaoMotivo faturamentoSituacaoMotivo " + " inner join faturamentoSituacaoHistorico.imovel imovel " + " inner join imovel.localidade localidade " + " inner join localidade.gerenciaRegional gerenciaRegional " + " inner join imovel.setorComercial setorComercial " + " inner join imovel.quadra quadra " + " inner join quadra.rota rota " + " inner join imovel.ligacaoAguaSituacao ligacaoAguaSituacao " + " inner join imovel.ligacaoEsgotoSituacao ligacaoEsgotoSituacao " + " left join imovel.imovelPerfil imovelPerfil " + " where " + "faturamentoSituacaoHistorico.anoMesFaturamentoRetirada is null " + "and localidade.id="+idLocalidade+""; retorno = session.createQuery(hql).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; } public Collection pesquisarResumoFaturamentoSituacaoEspecialConsultaHelper(Integer[] idSituacaoTipo, Integer[] idSituacaoMotivo) throws ErroRepositorioException { List retorno = null ; Session session = HibernateUtil.getSession(); try { if (idSituacaoTipo != null && idSituacaoMotivo != null){ String hql = " select " + " new " + ResumoFaturamentoSituacaoEspecialConsultaFinalHelper.class.getName() + " ( " + " SUM(rfse.quantidadeImovel) " + " ) " + " from ResumoFaturamentoSituacaoEspecial rfse" + //" inner join rfse.gerenciaRegional gerenciaRegional " + //" inner join rfse.localidade as localidade " + " inner join rfse.faturamentoSituacaoTipo faturamentoTipo " + " inner join rfse.faturamentoSituacaoMotivo faturamentoMotivo " + " where faturamentoTipo.id in (:idSituacaoTipo) AND"+ " faturamentoMotivo.id in (:idSituacaoMotivo) "; retorno = session.createQuery(hql).setParameterList("idSituacaoTipo", idSituacaoTipo).setParameterList("idSituacaoMotivo", idSituacaoMotivo).list(); } else if (idSituacaoTipo != null) { String hql = " select " + " new " + ResumoFaturamentoSituacaoEspecialConsultaFinalHelper.class.getName() + " ( " + " SUM(rfse.quantidadeImovel) " + " ) " + " from ResumoFaturamentoSituacaoEspecial rfse" + //" inner join rfse.gerenciaRegional gerenciaRegional " + //" inner join rfse.localidade as localidade " + " inner join rfse.faturamentoSituacaoTipo faturamentoTipo " + //" inner join rfse.faturamentoSituacaoMotivo faturamentoMotivo " + " where faturamentoTipo.id in (:idSituacaoTipo)"; retorno = session.createQuery(hql).setParameterList("idSituacaoTipo", idSituacaoTipo).list(); } else if (idSituacaoMotivo != null){ String hql = " select " + " new " + ResumoFaturamentoSituacaoEspecialConsultaFinalHelper.class.getName() + " ( " + " SUM(rfse.quantidadeImovel) " + " ) " + " from ResumoFaturamentoSituacaoEspecial rfse" + //" inner join rfse.gerenciaRegional gerenciaRegional " + //" inner join rfse.localidade as localidade " + //" inner join rfse.faturamentoSituacaoTipo faturamentoTipo " + " inner join rfse.faturamentoSituacaoMotivo faturamentoMotivo " + " where faturamentoMotivo.id in (:idSituacaoMotivo)"; retorno = session.createQuery(hql).setParameterList("idSituacaoMotivo", idSituacaoMotivo).list(); } else { String hql = " select " + " new " + ResumoFaturamentoSituacaoEspecialConsultaFinalHelper.class.getName() + " ( " + " SUM(rfse.quantidadeImovel) " + " ) " + " from ResumoFaturamentoSituacaoEspecial rfse" ; //" inner join rfse.gerenciaRegional gerenciaRegional " + //" inner join rfse.localidade as localidade " + //" inner join rfse.faturamentoSituacaoTipo faturamentoTipo " + //" inner join rfse.faturamentoSituacaoMotivo faturamentoMotivo " ; retorno = session.createQuery(hql).list(); } } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /***************************************************************** * CRC66 * Alterado por: Ivan Sergio * Data: 22/08/2008 * Alteracao: Retirado os comentarios do idSituacaoTipo. *****************************************************************/ public Collection<Object[]> pesquisarResumoFaturamentoSituacaoEspecialConsultaMotivoHelper(ConsultarResumoSituacaoEspecialHelper helper) throws ErroRepositorioException { List<Object[]> retorno = null ; Session session = HibernateUtil.getSession(); try { String consulta = " SELECT " + " faturamentoMotivo.ftsm_id as idFaturamentoMotivo, faturamentoMotivo.ftsm_dsfatsitmotivo as descricaoFaturamentoMotivo, " + " MIN(rfse.rfse_amfatmtsitinicio) as anoMesInicio, MAX(rfse.rfse_amfaturamentosituacaofim) as anoMesFim, " + " SUM(rfse.rfse_qtimoveis) as qtd " + " FROM faturamento.res_fatur_sit_especial rfse " + " INNER JOIN cadastro.gerencia_regional gerenciaRegional " + " on gerenciaRegional.greg_id = rfse.greg_id " + " INNER JOIN cadastro.localidade localidade " + " on localidade.loca_id = rfse.loca_id " + " INNER JOIN cadastro.setor_comercial setorComercial " + " on setorComercial.stcm_id = rfse.stcm_id " + " INNER JOIN micromedicao.rota rota " + " on rota.rota_id = rfse.rota_id " + " INNER JOIN faturamento.fatur_situacao_tipo faturamentoTipo " + " on faturamentoTipo.ftst_id = rfse.ftst_id " + " INNER JOIN faturamento.fatur_situacao_motivo faturamentoMotivo " + " on faturamentoMotivo.ftsm_id = rfse.ftsm_id "; if (helper.getIdUnidadeNegocio() != null && !helper.getIdUnidadeNegocio().trim().equals("")) { consulta = consulta + " INNER JOIN cadastro.unidade_negocio unidadeNegocio " + " on unidadeNegocio.uneg_id = localidade.uneg_id "; } consulta = consulta + criarCondicionaisConsultarResumoFaturamentoSituacaoEspecial(helper, true); consulta = consulta + " GROUP BY faturamentoMotivo.ftsm_id, faturamentoMotivo.ftsm_dsfatsitmotivo " + " ORDER BY faturamentoMotivo.ftsm_id"; retorno = session.createSQLQuery(consulta) .addScalar("idFaturamentoMotivo", Hibernate.INTEGER) .addScalar("descricaoFaturamentoMotivo", Hibernate.STRING) .addScalar("anoMesInicio", Hibernate.INTEGER) .addScalar("anoMesFim", Hibernate.INTEGER) .addScalar("qtd", Hibernate.INTEGER).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } public Collection<Object[]> pesquisarResumoFaturamentoSituacaoEspecialConsultaSitTipoHelper(ConsultarResumoSituacaoEspecialHelper helper)throws ErroRepositorioException { List<Object[]> retorno = null ; Session session = HibernateUtil.getSession(); try { String consulta = " SELECT " + " faturamentoTipo.ftst_id as idFaturamentoTipo, faturamentoTipo.ftst_dsfaturamentosituacaotipo as descricaoFaturamentoTipo, " + " SUM(rfse.rfse_qtimoveis) as qtd " + " FROM faturamento.res_fatur_sit_especial rfse " + " INNER JOIN cadastro.gerencia_regional gerenciaRegional " + " on gerenciaRegional.greg_id = rfse.greg_id " + " INNER JOIN cadastro.localidade localidade " + " on localidade.loca_id = rfse.loca_id " + " INNER JOIN cadastro.setor_comercial setorComercial " + " on setorComercial.stcm_id = rfse.stcm_id " + " INNER JOIN micromedicao.rota rota " + " on rota.rota_id = rfse.rota_id " + " INNER JOIN faturamento.fatur_situacao_tipo faturamentoTipo " + " on faturamentoTipo.ftst_id = rfse.ftst_id " + " INNER JOIN faturamento.fatur_situacao_motivo faturamentoMotivo " + " on faturamentoMotivo.ftsm_id = rfse.ftsm_id "; if (helper.getIdUnidadeNegocio() != null && !helper.getIdUnidadeNegocio().trim().equals("")) { consulta = consulta + " INNER JOIN cadastro.unidade_negocio unidadeNegocio " + " on unidadeNegocio.uneg_id = localidade.uneg_id "; } consulta = consulta + criarCondicionaisConsultarResumoFaturamentoSituacaoEspecial(helper, true); consulta = consulta + " GROUP BY faturamentoTipo.ftst_id, faturamentoTipo.ftst_dsfaturamentosituacaotipo " + " ORDER BY faturamentoTipo.ftst_id"; retorno = session.createSQLQuery(consulta) .addScalar("idFaturamentoTipo", Hibernate.INTEGER) .addScalar("descricaoFaturamentoTipo", Hibernate.STRING) .addScalar("qtd", Hibernate.INTEGER).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } public Collection<Object[]> pesquisarResumoFaturamentoSituacaoEspecialConsultaSetorComercialHelper(ConsultarResumoSituacaoEspecialHelper helper) throws ErroRepositorioException { List<Object[]> retorno = null ; Session session = HibernateUtil.getSession(); try { String consulta = " SELECT " + " setorComercial.stcm_cdsetorcomercial as codigoSetorComercial, setorComercial.stcm_nmsetorcomercial as descricaoSetorComercial, " + " SUM(rfse.rfse_qtimoveis) as qtd " + " FROM faturamento.res_fatur_sit_especial rfse " + " INNER JOIN cadastro.gerencia_regional gerenciaRegional " + " on gerenciaRegional.greg_id = rfse.greg_id " + " INNER JOIN cadastro.localidade localidade " + " on localidade.loca_id = rfse.loca_id " + " INNER JOIN cadastro.setor_comercial setorComercial " + " on setorComercial.stcm_id = rfse.stcm_id " + " INNER JOIN micromedicao.rota rota " + " on rota.rota_id = rfse.rota_id " + " INNER JOIN faturamento.fatur_situacao_tipo faturamentoTipo " + " on faturamentoTipo.ftst_id = rfse.ftst_id " + " INNER JOIN faturamento.fatur_situacao_motivo faturamentoMotivo " + " on faturamentoMotivo.ftsm_id = rfse.ftsm_id "; if (helper.getIdUnidadeNegocio() != null && !helper.getIdUnidadeNegocio().trim().equals("")) { consulta = consulta + " INNER JOIN cadastro.unidade_negocio unidadeNegocio " + " on unidadeNegocio.uneg_id = localidade.uneg_id "; } consulta = consulta + criarCondicionaisConsultarResumoFaturamentoSituacaoEspecial(helper, true); consulta = consulta + " GROUP BY setorComercial.stcm_cdsetorcomercial, setorComercial.stcm_nmsetorcomercial " + " ORDER BY setorComercial.stcm_cdsetorcomercial"; retorno = session.createSQLQuery(consulta) .addScalar("codigoSetorComercial", Hibernate.INTEGER) .addScalar("descricaoSetorComercial", Hibernate.STRING) .addScalar("qtd", Hibernate.INTEGER).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } public Collection<Object[]> pesquisarResumoFaturamentoSituacaoEspecialConsultaLocalidadeHelper(ConsultarResumoSituacaoEspecialHelper helper) throws ErroRepositorioException { List<Object[]> retorno = null ; Session session = HibernateUtil.getSession(); try { String consulta = " SELECT " + " localidade.loca_id as idLocalidade, localidade.loca_nmlocalidade as nomeLocalidade, " + " SUM(rfse.rfse_qtimoveis) as qtd " + " FROM faturamento.res_fatur_sit_especial rfse " + " INNER JOIN cadastro.gerencia_regional gerenciaRegional " + " on gerenciaRegional.greg_id = rfse.greg_id " + " INNER JOIN cadastro.localidade localidade " + " on localidade.loca_id = rfse.loca_id " + " INNER JOIN cadastro.setor_comercial setorComercial " + " on setorComercial.stcm_id = rfse.stcm_id " + " INNER JOIN micromedicao.rota rota " + " on rota.rota_id = rfse.rota_id " + " INNER JOIN faturamento.fatur_situacao_tipo faturamentoTipo " + " on faturamentoTipo.ftst_id = rfse.ftst_id " + " INNER JOIN faturamento.fatur_situacao_motivo faturamentoMotivo " + " on faturamentoMotivo.ftsm_id = rfse.ftsm_id "; if (helper.getIdUnidadeNegocio() != null && !helper.getIdUnidadeNegocio().trim().equals("")) { consulta = consulta + " INNER JOIN cadastro.unidade_negocio unidadeNegocio " + " on unidadeNegocio.uneg_id = localidade.uneg_id "; } consulta = consulta + criarCondicionaisConsultarResumoFaturamentoSituacaoEspecial(helper, true); consulta = consulta + " GROUP BY localidade.loca_id, localidade.loca_nmlocalidade " + " ORDER BY localidade.loca_id"; retorno = session.createSQLQuery(consulta) .addScalar("idLocalidade", Hibernate.INTEGER) .addScalar("nomeLocalidade", Hibernate.STRING) .addScalar("qtd", Hibernate.INTEGER).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } public Collection<Object[]> pesquisarResumoFaturamentoSituacaoEspecialConsultaUnidadeNegocioHelper(ConsultarResumoSituacaoEspecialHelper helper)throws ErroRepositorioException { List<Object[]> retorno = null ; Session session = HibernateUtil.getSession(); try { String consulta = " SELECT " + " unidadeNegocio.uneg_id as idUnidadeNegocio, unidadeNegocio.uneg_nmabreviado as nomeAbreviadoUnidadeNegocio, " + " unidadeNegocio.uneg_nmunidadenegocio as nomeUnidadeNegocio, SUM(rfse.rfse_qtimoveis) as qtd " + " FROM faturamento.res_fatur_sit_especial rfse " + " INNER JOIN cadastro.gerencia_regional gerenciaRegional " + " on gerenciaRegional.greg_id = rfse.greg_id " + " INNER JOIN cadastro.localidade localidade " + " on localidade.loca_id = rfse.loca_id " + " INNER JOIN cadastro.unidade_negocio unidadeNegocio " + " on unidadeNegocio.uneg_id = localidade.uneg_id " + " INNER JOIN cadastro.setor_comercial setorComercial " + " on setorComercial.stcm_id = rfse.stcm_id " + " INNER JOIN micromedicao.rota rota " + " on rota.rota_id = rfse.rota_id " + " INNER JOIN faturamento.fatur_situacao_tipo faturamentoTipo " + " on faturamentoTipo.ftst_id = rfse.ftst_id " + " INNER JOIN faturamento.fatur_situacao_motivo faturamentoMotivo " + " on faturamentoMotivo.ftsm_id = rfse.ftsm_id "; consulta = consulta + criarCondicionaisConsultarResumoFaturamentoSituacaoEspecial(helper, true); consulta = consulta + " GROUP BY unidadeNegocio.uneg_id, unidadeNegocio.uneg_nmabreviado, unidadeNegocio.uneg_nmunidadenegocio " + " ORDER BY unidadeNegocio.uneg_id"; retorno = session.createSQLQuery(consulta) .addScalar("idUnidadeNegocio", Hibernate.INTEGER) .addScalar("nomeAbreviadoUnidadeNegocio", Hibernate.STRING) .addScalar("nomeUnidadeNegocio", Hibernate.STRING) .addScalar("qtd", Hibernate.INTEGER).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } public Collection<Object[]> pesquisarResumoFaturamentoSituacaoEspecialConsultaGerenciaRegionalHelper(ConsultarResumoSituacaoEspecialHelper helper)throws ErroRepositorioException { List<Object[]> retorno = null ; Session session = HibernateUtil.getSession(); try { String consulta = " SELECT " + " gerenciaRegional.greg_id as idGerenciaRegional, gerenciaRegional.greg_nmabreviado as nomeAbreviadoGerenciaRegional, " + " gerenciaRegional.greg_nmregional as nomeGerenciaRegional, SUM(rfse.rfse_qtimoveis) as qtd " + " FROM faturamento.res_fatur_sit_especial rfse " + " INNER JOIN cadastro.gerencia_regional gerenciaRegional " + " on gerenciaRegional.greg_id = rfse.greg_id " + " INNER JOIN cadastro.localidade localidade " + " on localidade.loca_id = rfse.loca_id " + " INNER JOIN cadastro.setor_comercial setorComercial " + " on setorComercial.stcm_id = rfse.stcm_id " + " INNER JOIN micromedicao.rota rota " + " on rota.rota_id = rfse.rota_id " + " INNER JOIN faturamento.fatur_situacao_tipo faturamentoTipo " + " on faturamentoTipo.ftst_id = rfse.ftst_id " + " INNER JOIN faturamento.fatur_situacao_motivo faturamentoMotivo " + " on faturamentoMotivo.ftsm_id = rfse.ftsm_id "; if (helper.getIdUnidadeNegocio() != null && !helper.getIdUnidadeNegocio().trim().equals("")) { consulta = consulta + " INNER JOIN cadastro.unidade_negocio unidadeNegocio " + " on unidadeNegocio.uneg_id = localidade.uneg_id "; } consulta = consulta + criarCondicionaisConsultarResumoFaturamentoSituacaoEspecial(helper, true); consulta = consulta + " GROUP BY gerenciaRegional.greg_id, gerenciaRegional.greg_nmabreviado, gerenciaRegional.greg_nmregional " + " ORDER BY gerenciaRegional.greg_id"; retorno = session.createSQLQuery(consulta) .addScalar("idGerenciaRegional", Hibernate.INTEGER) .addScalar("nomeAbreviadoGerenciaRegional", Hibernate.STRING) .addScalar("nomeGerenciaRegional", Hibernate.STRING) .addScalar("qtd", Hibernate.INTEGER).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } private String criarCondicionaisConsultarResumoFaturamentoSituacaoEspecial(ConsultarResumoSituacaoEspecialHelper helper, boolean pesquisaTipoMotivo) { String retorno = " WHERE 1=1 "; if (helper.getIdGerenciaRegional() != null && !helper.getIdGerenciaRegional().trim().equals("")) { retorno = retorno + " and gerenciaRegional.greg_id = " + helper.getIdGerenciaRegional(); } if (helper.getIdUnidadeNegocio() != null && !helper.getIdUnidadeNegocio().trim().equals("")) { retorno = retorno + " and unidadeNegocio.uneg_id = " + helper.getIdUnidadeNegocio(); } if (helper.getIdLocalidadeInicial() != null && !helper.getIdLocalidadeInicial().trim().equals("")) { retorno = retorno + " and localidade.loca_id >= " + helper.getIdLocalidadeInicial(); } if (helper.getIdLocalidadeFinal() != null && !helper.getIdLocalidadeFinal().trim().equals("")) { retorno = retorno + " and localidade.loca_id <= " + helper.getIdLocalidadeFinal(); } if (helper.getCodigoSetorComercialInicial() != null && !helper.getCodigoSetorComercialInicial().trim().equals("")) { retorno = retorno + " and setorComercial.stcm_cdsetorcomercial >= " + helper.getCodigoSetorComercialInicial(); } if (helper.getCodigoSetorComercialFinal() != null && !helper.getCodigoSetorComercialFinal().trim().equals("")) { retorno = retorno + " and setorComercial.stcm_cdsetorcomercial <= " + helper.getCodigoSetorComercialFinal(); } if (helper.getCodigoRotaInicial() != null && !helper.getCodigoRotaInicial().trim().equals("")) { retorno = retorno + " and rota.rota_cdrota >= " + helper.getCodigoRotaInicial(); } if (helper.getCodigoRotaFinal() != null && !helper.getCodigoRotaFinal().trim().equals("")) { retorno = retorno + " and rota.rota_cdrota <= " + helper.getCodigoRotaFinal(); } if (pesquisaTipoMotivo) { if (helper.getSituacaoTipo() != null) { Integer[] idsSituacaoTipo = helper.getSituacaoTipo(); String valoresIn = ""; for (int i = 0; i < idsSituacaoTipo.length; i++) { if (!idsSituacaoTipo[i].equals("")) { valoresIn = valoresIn + idsSituacaoTipo[i] + ","; } } if (!valoresIn.equals("")) { retorno = retorno + " and faturamentoTipo.ftst_id in (" + valoresIn; retorno = Util.removerUltimosCaracteres(retorno, 1); retorno = retorno + ") "; } } if (helper.getSituacaoMotivo() != null) { Integer[] idsSituacaoMotivo = helper.getSituacaoMotivo(); String valoresIn = ""; for (int i = 0; i < idsSituacaoMotivo.length; i++) { if (!idsSituacaoMotivo[i].equals("")) { valoresIn = valoresIn + idsSituacaoMotivo[i] + ","; } } if (!valoresIn.equals("")) { retorno = retorno + " and faturamentoMotivo.ftsm_id in (" + valoresIn; retorno = Util.removerUltimosCaracteres(retorno, 1); retorno = retorno + ") "; } } } return retorno; } public Collection<BigDecimal> pesquisarResumoFaturamentoSituacaoEspecialConsultaFatEstimadoHelper(ConsultarResumoSituacaoEspecialHelper helper, int anoMesReferencia) throws ErroRepositorioException { List<BigDecimal> retorno = null ; Session session = HibernateUtil.getSession(); try { String consulta = " SELECT " + " SUM(coalesce(rfsi.rfts_vlagua, 0) + coalesce(rfsi.rfts_vlesgoto, 0) + coalesce(rfsi.rfts_vldebitos, 0) - coalesce(rfsi.rfts_vlcreditos, 0)) as faturamentoEstimado " + " FROM faturamento.resumo_fatur_simulacao rfsi " + " INNER JOIN cadastro.gerencia_regional gerenciaRegional " + " on gerenciaRegional.greg_id = rfsi.greg_id " + " INNER JOIN cadastro.localidade localidade " + " on localidade.loca_id = rfsi.loca_id " + " INNER JOIN cadastro.setor_comercial setorComercial " + " on setorComercial.stcm_id = rfsi.stcm_id " + " INNER JOIN micromedicao.rota rota " + " on rota.rota_id = rfsi.rota_id "; if (helper.getIdUnidadeNegocio() != null && !helper.getIdUnidadeNegocio().trim().equals("")) { consulta = consulta + " INNER JOIN cadastro.unidade_negocio unidadeNegocio " + " on unidadeNegocio.greg_id = gerenciaRegional.greg_id "; } consulta = consulta + criarCondicionaisConsultarResumoFaturamentoSituacaoEspecial(helper, false) + " and rfsi.rfts_amreferencia = :anoMesReferencia "; retorno = session.createSQLQuery(consulta) .addScalar("faturamentoEstimado", Hibernate.BIG_DECIMAL) .setInteger("anoMesReferencia", anoMesReferencia).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } public Integer pesquisarResumoFaturamentoSituacaoEspecialConsultaQtLigacoes(ConsultarResumoSituacaoEspecialHelper helper, int anoMesReferencia) throws ErroRepositorioException { Integer retorno = null ; Session session = HibernateUtil.getSessionGerencial(); try { String consulta = " SELECT " + " SUM(rle.rele_qtligacoes) as totalLigacoes " + " FROM cadastro.un_res_lig_econ rle " + " INNER JOIN cadastro.g_gerencia_regional gerenciaRegional " + " on gerenciaRegional.greg_id = rle.greg_id " + " INNER JOIN cadastro.g_localidade localidade " + " on localidade.loca_id = rle.loca_id " + " INNER JOIN cadastro.g_setor_comercial setorComercial " + " on setorComercial.stcm_id = rle.stcm_id " + " INNER JOIN micromedicao.g_rota rota " + " on rota.rota_id = rle.rota_id "; if (helper.getIdUnidadeNegocio() != null && !helper.getIdUnidadeNegocio().trim().equals("")) { consulta = consulta + " INNER JOIN cadastro.g_unidade_negocio unidadeNegocio " + " on unidadeNegocio.greg_id = gerenciaRegional.greg_id "; } consulta = consulta + criarCondicionaisConsultarResumoFaturamentoSituacaoEspecial(helper, false) + " and rle.rele_amreferencia = :anoMesReferencia "; retorno = (Integer) session.createSQLQuery(consulta) .addScalar("totalLigacoes", Hibernate.INTEGER) .setInteger("anoMesReferencia", anoMesReferencia).uniqueResult(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * M�todo que insere o ResumoFaturamentoSituacaoEspecial em batch * * @author Thiago Toscano * @date 15/05/2006 * * @param listResumoFaturamentoSituacaoEspecialHelper * @throws ErroRepositorioException */ public void inserirResumoFaturamentoSituacaoEspecial(List<ResumoFaturamentoSituacaoEspecial> list) throws ErroRepositorioException { StatelessSession session = HibernateUtil.getStatelessSession(); if (list != null && !list.isEmpty()) { Iterator it = list.iterator(); //int i = 1; try { while (it.hasNext()) { Object obj = it.next(); session.insert(obj); /*if (i % 50 == 0 || !it.hasNext()) { // 20, same as the JDBC batch size // flush a batch of inserts and release memory: session.flush(); //session.clear(); } i++;*/ } } finally { HibernateUtil.closeSession(session); } } } /** * M�todo que exclui todos os ResumoFaturamentoSituacaoEspecial * * [CU0341] - Gerar Resumo de Situacao Especial de Faturamento * * @author Thiago Toscano * @date 15/05/2006 * * @throws ErroRepositorioException */ public void excluirTodosResumoFaturamentoSituacaoEspecial(int idLocalidade) throws ErroRepositorioException{ // obt�m a sess�o Session session = HibernateUtil.getSession(); try { // pesquisa a cole��o de atividades e atribui a vari�vel "retorno" session.createQuery("delete gcom.faturamento.ResumoFaturamentoSituacaoEspecial where loca_id="+idLocalidade).executeUpdate(); // 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); } } /** * Este caso de uso permite consultar o resumo da pend�ncia, com a op��o de impress�o da consulta. * Dependendo da op��o de totaliza��o sempre � gerado o relat�rio, sem a fera��o da consulta. * * [UC0305] Consultar An�lise do Faturamento * * consultarResumoAnaliseFaturamento * * @author Fernanda Paiva * @date 31/05/2006 * * @param informarDadosGeracaoRelatorioConsultaHelper * @return * @throws ErroRepositorioException */ public List consultarResumoAnaliseFaturamento(InformarDadosGeracaoRelatorioConsultaHelper informarDadosGeracaoRelatorioConsultaHelper) throws ErroRepositorioException{ // Cria a cole��o de retorno List retorno = new ArrayList(); // Obt�m a sess�o Session session = HibernateUtil.getSession(); // A query abaixo realiza uma consulta a tabela de ResumoAnaliseFaturamento try{ GeradorSqlRelatorio geradorSqlRelatorio = new GeradorSqlRelatorio(GeradorSqlRelatorio.ANALISE_FATURAMENTO,informarDadosGeracaoRelatorioConsultaHelper); // Aqui sera montanda a parte dos condicionais da query // estas condicionais ser�o usadas se necessarias, o q determina seus usos // s�o os parametros que veem carregados no objeto InformarDadosGeracaoRelatorioConsultaHelper // que � recebido do caso de uso [UC0304] Informar Dados para Gera��o de Relatorio ou COnsulta String condicionais = this.criarCondicionaisResumoAnaliseFaturamento(informarDadosGeracaoRelatorioConsultaHelper,"rfts"); boolean groupByNotUnion = false; String condicionalLigacao = " re.loca_id = localidade.loca_id and "; if(informarDadosGeracaoRelatorioConsultaHelper.getOpcaoTotalizacao() == ConstantesSistema.CODIGO_ESTADO_MUNICIPIO){ condicionalLigacao = condicionalLigacao + " muni.muni_id = localidade.muni_idprincipal and "; groupByNotUnion = true; } String sql = geradorSqlRelatorio.sqlNivelUm(geradorSqlRelatorio .getNomeCampoFixo(), geradorSqlRelatorio .getNomeTabelaFixo(), geradorSqlRelatorio .getNomeTabelaFixoTotal(), "'"+informarDadosGeracaoRelatorioConsultaHelper.getDescricaoOpcaoTotalizacao()+"'", "", condicionalLigacao, condicionais, false, groupByNotUnion); //Faz a pesquisa retorno = session.createSQLQuery(sql) .addScalar("somatorio1", Hibernate.INTEGER) .addScalar("somatorio2", Hibernate.INTEGER) .addScalar("somatorio3", Hibernate.INTEGER) .addScalar("somatorio4", Hibernate.BIG_DECIMAL) .addScalar("somatorio5", Hibernate.INTEGER) .addScalar("somatorio6", Hibernate.BIG_DECIMAL) .addScalar("somatorio7", Hibernate.BIG_DECIMAL) .addScalar("somatorio8", Hibernate.BIG_DECIMAL) .addScalar("somatorio9", Hibernate.BIG_DECIMAL).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 com os resultados da pesquisa return retorno; } /** * Este caso de uso permite consultar o resumo do an�lise do faturamento, com a op��o de impress�o da consulta. * Dependendo da op��o de totaliza��o sempre � gerado o relat�rio, sem a fera��o da consulta. * * [UC0305] Consultar An�lise Faturamento * * consultarResumoAnaliseFaturamento * * @author Fernanda Paiva * @date 31/05/2006 * * @param informarDadosGeracaoRelatorioConsultaHelper * @return * @throws ErroRepositorioException */ public String criarCondicionaisResumoAnaliseFaturamento(InformarDadosGeracaoRelatorioConsultaHelper informarDadosGeracaoRelatorioConsultaHelper, String nomeColunaTabela){ String sql = " "; //boolean existeWhere = false; // A partir daqui sera montanda a parte dos condicionais da query // estas condicionais ser�o usadas se necessarias, o q determina seus usos // s�o os parametros que veem carregados no objeto InformarDadosGeracaoRelatorioConsultaHelper // que � recebido do caso de uso [UC0304] Informar Dados para Gera��o de Relatorio ou COnsulta if(informarDadosGeracaoRelatorioConsultaHelper != null){ // Inicio Parametros simples if(informarDadosGeracaoRelatorioConsultaHelper.getAnoMesReferencia() != null && !informarDadosGeracaoRelatorioConsultaHelper.getAnoMesReferencia().toString().equals("")){ sql = sql + "re." +nomeColunaTabela +"_amreferencia = " + informarDadosGeracaoRelatorioConsultaHelper.getAnoMesReferencia() + " and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getTipoAnaliseFaturamento() == 1){ sql = sql + " re.rfts_icsimulacao = 2 and "; } if(informarDadosGeracaoRelatorioConsultaHelper.getTipoAnaliseFaturamento() == 2){ sql = sql + " re.rfts_icsimulacao = 1 and "; } if(informarDadosGeracaoRelatorioConsultaHelper.getFaturamentoGrupo() != null && informarDadosGeracaoRelatorioConsultaHelper.getFaturamentoGrupo().getId() != null){ sql = sql + " re.ftgr_id = " + informarDadosGeracaoRelatorioConsultaHelper.getFaturamentoGrupo().getId() + " and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getGerenciaRegional() != null && informarDadosGeracaoRelatorioConsultaHelper.getGerenciaRegional().getId() != null){ sql = sql + " re.greg_id = " + informarDadosGeracaoRelatorioConsultaHelper.getGerenciaRegional().getId() + " and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getUnidadeNegocio() != null && informarDadosGeracaoRelatorioConsultaHelper.getUnidadeNegocio().getId() != null){ sql = sql + " re.uneg_id = " + informarDadosGeracaoRelatorioConsultaHelper.getUnidadeNegocio().getId() + " and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getEloPolo() != null && informarDadosGeracaoRelatorioConsultaHelper.getEloPolo().getId() != null){ sql = sql + " eloPolo.loca_id = " + informarDadosGeracaoRelatorioConsultaHelper.getEloPolo().getId() + " and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getLocalidade() != null && informarDadosGeracaoRelatorioConsultaHelper.getLocalidade().getId() != null){ sql = sql + " re.loca_id = " + informarDadosGeracaoRelatorioConsultaHelper.getLocalidade().getId() + " and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getMunicipio() != null && informarDadosGeracaoRelatorioConsultaHelper.getMunicipio().getId() != null){ sql = sql + " localidade.muni_idprincipal = muni.muni_id and muni.muni_id = " + informarDadosGeracaoRelatorioConsultaHelper.getMunicipio().getId() + " and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getSetorComercial() != null && informarDadosGeracaoRelatorioConsultaHelper.getSetorComercial().getId() != null){ sql = sql + " re.stcm_id = " + informarDadosGeracaoRelatorioConsultaHelper.getSetorComercial().getId() + " and "; //existeWhere = true; } /** [RR2011071026] * Autor: Paulo Diniz * Data: 21/07/2011 * Resumo da An�lise do Faturamento */ ///COLOCAR CLAUSULA SQL PRA ROTA if((informarDadosGeracaoRelatorioConsultaHelper.getSetorComercial() == null || informarDadosGeracaoRelatorioConsultaHelper.getSetorComercial().getId() == null) && (informarDadosGeracaoRelatorioConsultaHelper.getLocalidade() == null || informarDadosGeracaoRelatorioConsultaHelper.getLocalidade().getId() == null) && informarDadosGeracaoRelatorioConsultaHelper.getRota() != null && informarDadosGeracaoRelatorioConsultaHelper.getRota().getId() != null){ sql = sql + " re.rota_id = " + informarDadosGeracaoRelatorioConsultaHelper.getRota().getId() + " and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getQuadra() != null && informarDadosGeracaoRelatorioConsultaHelper.getQuadra().getId() != null){ sql = sql + " re.qdra_id = " + informarDadosGeracaoRelatorioConsultaHelper.getQuadra().getId() + " and "; //existeWhere = true; } // Inicio de parametros por colec�o // sera lida a colecao e montado um IN() a partis dos id extraidos de cada objeto da colecao. if(informarDadosGeracaoRelatorioConsultaHelper.getColecaoImovelPerfil() != null && !informarDadosGeracaoRelatorioConsultaHelper.getColecaoImovelPerfil().isEmpty()){ Iterator iterator = informarDadosGeracaoRelatorioConsultaHelper.getColecaoImovelPerfil().iterator(); ImovelPerfil imovelPerfil = null; sql = sql + " re.iper_id in ("; while(iterator.hasNext()){ imovelPerfil = (ImovelPerfil)iterator.next(); sql = sql + imovelPerfil.getId() + ","; } sql = Util.removerUltimosCaracteres(sql, 1); sql = sql + ") and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getColecaoLigacaoAguaSituacao() != null && !informarDadosGeracaoRelatorioConsultaHelper.getColecaoLigacaoAguaSituacao().isEmpty()){ Iterator iterator = informarDadosGeracaoRelatorioConsultaHelper.getColecaoLigacaoAguaSituacao().iterator(); LigacaoAguaSituacao ligacaoAguaSituacao = null; sql = sql + " re.last_id in ("; while(iterator.hasNext()){ ligacaoAguaSituacao = (LigacaoAguaSituacao)iterator.next(); sql = sql + ligacaoAguaSituacao.getId() + ","; } sql = Util.removerUltimosCaracteres(sql, 1); sql = sql + ") and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getColecaoLigacaoEsgotoSituacao() != null && !informarDadosGeracaoRelatorioConsultaHelper.getColecaoLigacaoEsgotoSituacao().isEmpty()){ Iterator iterator = informarDadosGeracaoRelatorioConsultaHelper.getColecaoLigacaoEsgotoSituacao().iterator(); LigacaoEsgotoSituacao ligacaoEsgotoSituacao = null; sql = sql + " re.lest_id in ("; while(iterator.hasNext()){ ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao)iterator.next(); sql = sql + ligacaoEsgotoSituacao.getId() + ","; } sql = Util.removerUltimosCaracteres(sql, 1); sql = sql + ") and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getColecaoCategoria() != null && !informarDadosGeracaoRelatorioConsultaHelper.getColecaoCategoria().isEmpty()){ Iterator iterator = informarDadosGeracaoRelatorioConsultaHelper.getColecaoCategoria().iterator(); Categoria categoria = null; sql = sql + " re.catg_id in ("; while(iterator.hasNext()){ categoria = (Categoria)iterator.next(); sql = sql + categoria.getId() + ","; } sql = Util.removerUltimosCaracteres(sql, 1); sql = sql + ") and "; //existeWhere = true; } if(informarDadosGeracaoRelatorioConsultaHelper.getColecaoEsferaPoder() != null && !informarDadosGeracaoRelatorioConsultaHelper.getColecaoEsferaPoder().isEmpty()){ Iterator iterator = informarDadosGeracaoRelatorioConsultaHelper.getColecaoEsferaPoder().iterator(); EsferaPoder esferaPoder = null; sql = sql + " re.epod_id in ("; while(iterator.hasNext()){ esferaPoder = (EsferaPoder)iterator.next(); sql = sql + esferaPoder.getId()+ ","; } sql = Util.removerUltimosCaracteres(sql, 1); sql = sql + ") and "; //existeWhere = true; } } // if(existeWhere){ // sql = " where " + sql; // } // retira o " and " q fica sobrando no final da query sql = Util.removerUltimosCaracteres(sql, 4); return sql; } /** * M�todo que retona uma lista de objeto xxxxx que representa o resumo do * faturamento * * * @author Marcio Roberto * @date 12/05/2007 * * @return * @throws ErroRepositorioException */ /*** * Alterado por: Ivan S�rgio * Data: 04/09/2008 * Alteracao na query para melhoramento de performace. */ public List getResumoFaturamentoAguaEsgoto(int idSetor, int anoMes, int indice, int qtRegistros) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { /* String hql = "select " + " conta.id, "//0 + " imovel.id, "//1 + " conta.localidade.gerenciaRegional.id, "//2 + " conta.localidade.unidadeNegocio.id, "//3 + " conta.localidade.localidade.id, "//4 elo + " conta.localidade.id, "//5 localidade + " quadra.setorComercial.id, "//6 + " quadra.rota.id, "//7 + " quadra.id, "//8 + " imovel.setorComercial.codigo, "//9 + " quadra.numeroQuadra, "//10 + " imovel.imovelPerfil.id, "//11 + " conta.ligacaoAguaSituacao.id, "//12 + " conta.ligacaoEsgotoSituacao.id, "//13 + " case when ( " + " imovel.ligacaoAgua.ligacaoAguaPerfil.id is null ) then " + " 0 " + " else " + " imovel.ligacaoAgua.ligacaoAguaPerfil.id " + " end, "//14 + " case when ( " + " imovel.ligacaoEsgoto.ligacaoEsgotoPerfil.id is null ) then " + " 0 " + " else " + " imovel.ligacaoEsgoto.ligacaoEsgotoPerfil.id " + " end, "//15 + " conta.consumoAgua, "//16 + " conta.consumoEsgoto, "//17 + " conta.valorAgua, "//18 + " conta.valorEsgoto, "//19 + " conta.referencia, "//20 + " conta.debitoCreditoSituacaoAtual.id, "//21 + " rota.empresa.id, "//22 + " imovel.quantidadeEconomias, "//23 + " conta.consumoTarifa.id, "// 24 + " rota.faturamentoGrupo.id, "// 25 + " rota.codigo "//26 + " from " + " gcom.cadastro.sistemaparametro.SistemaParametro as sistemaParametro, " + " gcom.faturamento.conta.Conta as conta " + " inner join conta.imovel as imovel " + " inner join imovel.quadra as quadra " + " inner join quadra.rota as rota " + " inner join imovel.setorComercial as setorComercial " + " left join imovel.ligacaoAgua ligacaoAgua " + " left join imovel.ligacaoEsgoto ligacaoEsgoto " + " where " + " sistemaParametro.anoMesFaturamento = conta.referencia and " + " conta.referencia = :anoMesReferencia and " + " (conta.debitoCreditoSituacaoAtual.id = 0 or conta.debitoCreditoSituacaoAnterior.id = 0) and " + " quadra.setorComercial.id = :idSetor " + " order by " + " conta.id "; */ String hql = "select " + " cnta.id, " + " imo.id, " + " gere.id, " + " unNe.id, " + " elo.id, " + " loca.id, " + " seCo.id, " + " rot.id, " + " quad.id, " + " seCo.codigo, " + " quad.numeroQuadra, " + " imPe.id, " + " las.id, " + " les.id, " + " coalesce(lap.id, 0), " + " coalesce(lep.id, 0), " + " cnta.consumoAgua, " + " cnta.consumoEsgoto, " + " cnta.valorAgua, " + " cnta.valorEsgoto, " + " cnta.referencia, " + " cnta.debitoCreditoSituacaoAtual.id, " + " empr.id, " + " imo.quantidadeEconomias, " + " conTar.id, " + " fatGru.id, " + " rot.codigo " + "from " + " Conta cnta " + " inner join cnta.localidade loca " + " inner join loca.localidade elo " + " inner join loca.gerenciaRegional gere " + " inner join loca.unidadeNegocio unNe " + " with unNe.gerenciaRegional.id = gere.id " + " inner join cnta.quadraConta quad " + " inner join quad.setorComercial seCo " + " inner join quad.rota rot " + " with rot.setorComercial.id = seCo.id " + " inner join cnta.imovelPerfil imPe " + " inner join cnta.ligacaoAguaSituacao las " + " inner join cnta.ligacaoEsgotoSituacao les " + " inner join cnta.imovel imo " + " inner join rot.faturamentoGrupo fatGru " + " inner join rot.empresa empr " + " left join imo.ligacaoAgua liAg " + " left join liAg.ligacaoAguaPerfil lap " + " left join imo.ligacaoEsgoto liEs " + " left join liEs.ligacaoEsgotoPerfil lep " + " left join cnta.consumoTarifa conTar " + "where " + " cnta.referencia = :anoMesReferencia " + " and ( cnta.debitoCreditoSituacaoAtual = 0 or cnta.debitoCreditoSituacaoAnterior = 0 ) " + " and seCo.id = :idSetor " + "order by " + " cnta.id"; retorno = session.createQuery(hql) .setInteger("anoMesReferencia", anoMes) .setInteger("idSetor", idSetor).setFirstResult(indice).setMaxResults(qtRegistros).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * M�todo que retona uma lista de objeto xxxxx que representa o resumo do * faturamento (D�bitos Cobrados) * * * @author Marcio Roberto * @date 17/05/2007 * * @return * @throws ErroRepositorioException */ public List getPesquisaDebitoCobrado(int idConta, int idImovel, int mesAno) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { String sql = "select " //debito cobrado + " financiamentotipo.fntp_id as financiamentotipo, " //0 + " 1 as documentotipo, " //1 + " lancamentoitemcontabil.lict_id as lancamentoitemcontabil, " //2 + " sum(debitocobrado.dbcb_vlprestacao) as valordebitos, " //3 + " count(debitocobrado.dbcb_id) as qtddocumentos " //4 + " from " + " faturamento.debito_cobrado debitocobrado " + " inner join financeiro.lancamento_item_contabil lancamentoitemcontabil on debitocobrado.lict_id = lancamentoitemcontabil.lict_id " + " inner join faturamento.conta conta on debitocobrado.cnta_id = conta.cnta_id " + " inner join financeiro.financiamento_tipo financiamentotipo on debitocobrado.fntp_id = financiamentotipo.fntp_id " + " where " + " conta.cnta_id = :idConta " + " and (conta.dcst_idatual = 0 or conta.dcst_idanterior = 0) " + " and conta.cnta_vldebitos > 0 " + " group by financiamentotipo.fntp_id, 1, lancamentoitemcontabil.lict_id " // + " union select " // //guias pagamento // + " financiamentotipo.fntp_id as financiamentotipo, " // + " 7 as documentotipo, " // + " lancamentoitemcontabil.lict_id as lancamentoitemcontabil, " // + " sum(guiapagamento.gpag_vldebito) as valordebitos, " // + " count(guiapagamento.gpag_id) as qtddocumentos" // + " from " // + " faturamento.guia_pagamento as guiapagamento " // + " inner join financeiro.lancamento_item_contabil lancamentoitemcontabil on guiapagamento.lict_id = lancamentoitemcontabil.lict_id " // + " inner join cadastro.imovel imovel on guiapagamento.imov_id = imovel.imov_id " // + " inner join financeiro.financiamento_tipo financiamentotipo on guiapagamento.fntp_id = financiamentotipo.fntp_id " // + " where " // + " imovel.imov_id = :idImovel " // + " and (guiapagamento.dcst_idatual = 0 or guiapagamento.dcst_idanterior = 0) " // + " and guiapagamento.gpag_amreferenciacontabil = :mesAno " // + " group by financiamentotipo, documentotipo, lancamentoitemcontabil " + " order by financiamentotipo, documentotipo, lancamentoitemcontabil "; retorno = session.createSQLQuery(sql).addScalar("financiamentotipo",Hibernate.INTEGER) .addScalar("documentotipo",Hibernate.INTEGER) .addScalar("lancamentoitemcontabil",Hibernate.INTEGER) .addScalar("valordebitos",Hibernate.BIG_DECIMAL) .addScalar("qtddocumentos", Hibernate.INTEGER) .setInteger("idConta", idConta) // .setInteger("idImovel", idImovel) // .setInteger("mesAno", mesAno) .list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * M�todo que retona uma lista de objeto xxxxx que representa o resumo do * faturamento (Cr�ditos Realizados) * * * @author Marcio Roberto * @date 17/05/2007 * * @return * @throws ErroRepositorioException */ public List getPesquisaCreditoRealizado(int idSetor, int mesAno) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { /* String hql = " select " + " creditorealizado.creditoOrigem.id, " // 0 + " creditorealizado.lancamentoItemContabil.id, " //1 + " sum(creditorealizado.valorCredito) as valorcredito, " //2 + " count(creditorealizado.creditoOrigem.id), " //3 + " creditorealizado.creditoTipo.id " // 4 + " from " + " gcom.faturamento.credito.CreditoRealizado as creditorealizado " + " where creditorealizado.conta.id in(select conta.id " + " from gcom.faturamento.conta.Conta as conta " + " inner join conta.imovel as imovel " + " inner join imovel.quadra as quadra " + " where conta.referencia = :mesAno and " + " (conta.debitoCreditoSituacaoAtual.id = 0 or conta.debitoCreditoSituacaoAnterior.id = 0) and " + " quadra.setorComercial.id = :idSetor) " + " group by creditorealizado.creditoOrigem.id, creditorealizado.lancamentoItemContabil.id, creditorealizado.creditoTipo.id " + " order by creditorealizado.creditoOrigem.id, creditorealizado.lancamentoItemContabil.id, creditorealizado.creditoTipo.id "; */ /*** * Autor: Ivan S�rgio * Data: 11/09/2008 * Alteracao: Otimiza��o da consulta. Reduzio o tempo da consulta de +- 70s para 1s. */ /* - altera��o para corrigir o valor gerado dos cr�ditos no gerencial * comentada linha "with creditorealizado.quadra.id = quadra.id " em 22/08/2011*/ String hql = "select " + " creditorealizado.creditoOrigem.id, " + " creditorealizado.lancamentoItemContabil.id, " + " sum(creditorealizado.valorCredito) as valorcredito, " + " count(creditorealizado.creditoOrigem.id), " + " creditorealizado.creditoTipo.id " + "from " + " gcom.faturamento.conta.Conta conta " + " inner join conta.quadraConta quadra " + " inner join conta.creditoRealizados as creditorealizado " + //" with creditorealizado.quadra.id = quadra.id " + "where " + " conta.referencia = :mesAno " + " and (conta.debitoCreditoSituacaoAtual.id = 0 or conta.debitoCreditoSituacaoAnterior.id = 0) " + " and quadra.setorComercial.id = :idSetor " + "group by " + " creditorealizado.creditoOrigem.id, creditorealizado.lancamentoItemContabil.id, creditorealizado.creditoTipo.id " + "order by " + " creditorealizado.creditoOrigem.id, creditorealizado.lancamentoItemContabil.id, creditorealizado.creditoTipo.id"; retorno = session.createQuery(hql).setInteger("mesAno", mesAno) .setInteger("idSetor", idSetor).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * pesquisarEsferaPoderClienteResponsavelImovel * * @author Marcio Roberto * @date 05/06/2007 * * @param id do imovel a ser pesquisado * @return Esfera de poder do cliente responsavel pelo imovel * @exception ErroRepositorioException * */ public Integer pesquisarEsferaPoderClienteResponsavelImovel(Integer idImovel) throws ErroRepositorioException { Object retorno = null; Session session = HibernateUtil.getSession(); String consulta; try { consulta = "select " + " case when ep.id is not null then " + " ep.id " + " else " + " 0 " + " end " + "from " + " gcom.cadastro.imovel.Imovel i " + " inner join i.clienteImoveis ci " + " inner join ci.cliente c " + " inner join c.clienteTipo ct " + " inner join ct.esferaPoder ep " + " inner join ci.clienteRelacaoTipo crt " + "where " + " crt.id = :clienteResponsavel and ci.dataFimRelacao is null and i.id =:idImovel"; retorno = session.createQuery(consulta) .setInteger( "clienteResponsavel", ClienteRelacaoTipo.RESPONSAVEL) .setInteger( "idImovel", idImovel).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); } if ( retorno != null ){ return (Integer)retorno; } else { return 0; } } /** * pesquisarTipoClienteClienteResponsavelImovel * * @author Marcio Roberto * @date 05/06/2007 * * @param imovel a ser pesquisado * @return Tipo de cliente do cliente responsavel pelo imovel * @exception ErroRepositorioException * */ public Integer pesquisarTipoClienteClienteResponsavelImovel(Integer idImovel) throws ErroRepositorioException { Object retorno = null; Session session = HibernateUtil.getSession(); String consulta; try { consulta = "select " + " case when ct.id is not null then " + " ct.id " + " else " + " 0 " + " end " + "from " + " gcom.cadastro.imovel.Imovel i " + " inner join i.clienteImoveis ci " + " inner join ci.cliente c " + " inner join c.clienteTipo ct " + " inner join ci.clienteRelacaoTipo crt " + " where " + " crt.id = :clienteResponsavel and ci.dataFimRelacao is null and i.id =:idImovel"; retorno = session.createQuery(consulta) .setInteger( "clienteResponsavel", ClienteRelacaoTipo.RESPONSAVEL) .setInteger( "idImovel", idImovel).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); } if ( retorno != null ){ return (Integer)retorno; } else { return 0; } } /** * M�todo que retona uma lista de objeto xxxxx que representa o resumo do * Re-faturamento * * * @author Marcio Roberto * @date 12/05/2007 * * @return * @throws ErroRepositorioException */ public List getResumoReFaturamento(int idSetor, int anoMes, int indice, int qtRegistros) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { String hql = "select " + " conta.id, "//0 + " imovel.id, "//1 + " conta.localidade.gerenciaRegional.id, "//2 + " conta.localidade.unidadeNegocio.id, "//3 + " conta.localidade.localidade.id, "//4 elo + " conta.localidade.id, "//5 localidade + " quadra.setorComercial.id, "//6 + " quadra.rota.id, "//7 + " quadra.id, "//8 + " imovel.setorComercial.codigo, "//9 + " quadra.numeroQuadra, "//10 + " imovel.imovelPerfil.id, "//11 + " conta.ligacaoAguaSituacao.id, "//12 + " conta.ligacaoEsgotoSituacao.id, "//13 + " case when ( " + " imovel.ligacaoAgua.ligacaoAguaPerfil.id is null ) then " + " 0 " + " else " + " imovel.ligacaoAgua.ligacaoAguaPerfil.id " + " end, "//14 + " case when ( " + " imovel.ligacaoEsgoto.ligacaoEsgotoPerfil.id is null ) then " + " 0 " + " else " + " imovel.ligacaoEsgoto.ligacaoEsgotoPerfil.id " + " end, "//15 + " conta.consumoAgua, "//16 + " conta.consumoEsgoto, "//17 + " conta.valorAgua, "//18 + " conta.valorEsgoto, "//19 + " conta.referencia, "//20 + " conta.debitoCreditoSituacaoAtual.id, "//21 + " conta.referenciaContabil, "//22 + " conta.valorImposto, "//23 + " conta.valorCreditos, "//24 + " conta.debitos, "//25 + " conta.debitoCreditoSituacaoAnterior.id "//26 + " from " + " gcom.cadastro.sistemaparametro.SistemaParametro as sistemaParametro, " + " gcom.faturamento.conta.Conta as conta " + " inner join conta.imovel as imovel " + " inner join imovel.quadra as quadra " + " inner join quadra.rota as rota " + " inner join imovel.setorComercial as setorComercial " + " left join imovel.ligacaoAgua ligacaoAgua " + " left join imovel.ligacaoEsgoto ligacaoEsgoto " + " where " + " sistemaParametro.anoMesFaturamento = :anoMesReferencia and " //+ " conta.referenciaContabil = :anoMesReferencia and " + " (conta.debitoCreditoSituacaoAtual.id in (1,2,3,4) or conta.debitoCreditoSituacaoAnterior.id = 1) and " + " quadra.setorComercial.id = :idSetor " + " order by " + " conta.debitoCreditoSituacaoAtual.id "; retorno = session.createQuery(hql) .setInteger("anoMesReferencia", anoMes) .setInteger("idSetor", idSetor).setFirstResult(indice).setMaxResults(qtRegistros).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } // debito a cobrar, outros, impostos, creditos. /*** * Alterado por: Ivan S�rgio * Data: 04/09/2008 * Alteracao na query para melhoramento de performace; * Adicionado o campo imo.quantidadeEconomias; */ public List getContasResumoFaturamentoAguaEsgoto(int idSetor, int anoMes, int indice, int qtRegistros) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { /* String hql = "select " + " conta.id, "// 0 + " imovel.id, "// 1 + " conta.localidade.gerenciaRegional.id, "// 2 + " conta.localidade.unidadeNegocio.id, "// 3 + " conta.localidade.localidade.id, "// 4 elo + " conta.localidade.id, "// 5 localidade + " quadra.setorComercial.id, "// 6 + " quadra.rota.id, "// 7 + " quadra.id, "// 8 + " imovel.setorComercial.codigo, "// 9 + " quadra.numeroQuadra, "// 10 + " imovel.imovelPerfil.id, "// 11 + " conta.ligacaoAguaSituacao.id, "// 12 + " conta.ligacaoEsgotoSituacao.id, "// 13 + " case when ( " + " imovel.ligacaoAgua.ligacaoAguaPerfil.id is null ) then " + " 0 " + " else " + " imovel.ligacaoAgua.ligacaoAguaPerfil.id " + " end, "// 14 + " case when ( " + " imovel.ligacaoEsgoto.ligacaoEsgotoPerfil.id is null ) then " + " 0 " + " else " + " imovel.ligacaoEsgoto.ligacaoEsgotoPerfil.id " + " end, "// 15 + " conta.consumoAgua, "// 16 + " conta.consumoEsgoto, "// 17 + " conta.valorAgua, "// 18 + " conta.valorEsgoto, "// 19 + " conta.referencia, "// 20 + " conta.debitoCreditoSituacaoAtual.id, "// 21 + " rota.empresa.id, "// 22 + " conta.consumoTarifa.id, "// 23 + " rota.faturamentoGrupo.id, "// 24 + " rota.codigo "//25 + " from " + " gcom.cadastro.sistemaparametro.SistemaParametro as sistemaParametro, " + " gcom.faturamento.conta.Conta as conta " + " inner join conta.imovel as imovel " + " inner join imovel.quadra as quadra " + " inner join quadra.rota as rota " + " inner join imovel.setorComercial as setorComercial " + " left join imovel.ligacaoAgua ligacaoAgua " + " left join imovel.ligacaoEsgoto ligacaoEsgoto " + " where " + " sistemaParametro.anoMesFaturamento = conta.referencia and " + " conta.referencia = :anoMesReferencia and " + " (conta.debitoCreditoSituacaoAtual.id = 0 or conta.debitoCreditoSituacaoAnterior.id = 0) and " + " quadra.setorComercial.id = :idSetor " + " order by " + " conta.id, conta.localidade.gerenciaRegional.id, conta.localidade.unidadeNegocio.id, " + " conta.localidade.id, " + " quadra.setorComercial.id, quadra.id, quadra.numeroQuadra"; */ /* * Altera��o para corrigir a diferen�a do resumo do faturamento na base gerencial * Autor: Wellington Vernech Rocha * Data: 12/09/2011*/ String hql = "select " + " cnta.id, " + " imo.id, " + " gere.id, " + " unNe.id, " + " elo.id, " + " loca.id, " + " seCo.id, " + " rot.id, " + " quad.id, " + " seCo.codigo, " + " quad.numeroQuadra, " + " imPe.id, " + " las.id, " + " les.id, " + " coalesce(lap.id, 0), " + " coalesce(lep.id, 0), " + " cnta.consumoAgua, " + " cnta.consumoEsgoto, " + " cnta.valorAgua, " + " cnta.valorEsgoto, " + " cnta.referencia, " + " cnta.debitoCreditoSituacaoAtual.id, " + " empr.id, " + " conTar.id, " + " fatGru.id, " + " rot.codigo, " + " imo.quantidadeEconomias " + "from " + " Conta cnta " + " inner join cnta.localidade loca " + " inner join loca.localidade elo " + " inner join loca.gerenciaRegional gere " + " inner join loca.unidadeNegocio unNe " + // " with unNe.gerenciaRegional.id = gere.id " + " inner join cnta.quadraConta quad " + " inner join quad.setorComercial seCo " + " inner join quad.rota rot " + // " with rot.setorComercial.id = seCo.id " + " inner join cnta.imovelPerfil imPe " + " inner join cnta.ligacaoAguaSituacao las " + " inner join cnta.ligacaoEsgotoSituacao les " + " inner join cnta.imovel imo " + " inner join rot.faturamentoGrupo fatGru " + " inner join rot.empresa empr " + " left join imo.ligacaoAgua liAg " + " left join liAg.ligacaoAguaPerfil lap " + " left join imo.ligacaoEsgoto liEs " + " left join liEs.ligacaoEsgotoPerfil lep " + " left join cnta.consumoTarifa conTar " + "where " + " cnta.referencia = :anoMesReferencia " + " and ( cnta.debitoCreditoSituacaoAtual = 0 or cnta.debitoCreditoSituacaoAnterior = 0 ) " + " and seCo.id = :idSetor"; retorno = session.createQuery(hql).setInteger("anoMesReferencia", anoMes).setInteger("idSetor", idSetor).setFirstResult( indice).setMaxResults(qtRegistros).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } public List getImoveisResumoFaturamento(int idSetor, int anoMes, int indice, int qtRegistros) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { String hql = "select " + " sistemaParametro.anoMesFaturamento, "// 0 + " imovel.id, "// 1 + " imovel.localidade.gerenciaRegional.id, "// 2 + " imovel.localidade.unidadeNegocio.id, "// 3 + " imovel.localidade.localidade.id, "// 4 elo + " imovel.localidade.id, "// 5 localidade + " quadra.setorComercial.id, "// 6 + " quadra.rota.id, "// 7 + " quadra.id, "// 8 + " imovel.setorComercial.codigo, "// 9 + " quadra.numeroQuadra, "// 10 + " imovel.imovelPerfil.id, "// 11 + " imovel.ligacaoAguaSituacao.id, "// 12 + " imovel.ligacaoEsgotoSituacao.id, "// 13 + " case when ( " + " imovel.ligacaoAgua.ligacaoAguaPerfil.id is null ) then " + " 0 " + " else " + " imovel.ligacaoAgua.ligacaoAguaPerfil.id " + " end, "// 14 + " case when ( " + " imovel.ligacaoEsgoto.ligacaoEsgotoPerfil.id is null ) then " + " 0 " + " else " + " imovel.ligacaoEsgoto.ligacaoEsgotoPerfil.id " + " end "// 15 + " from " + " gcom.cadastro.sistemaparametro.SistemaParametro as sistemaParametro, " + " gcom.cadastro.imovel.Imovel as imovel " + " inner join imovel.quadra as quadra " + " inner join quadra.rota as rota " + " inner join imovel.setorComercial as setorComercial " + " left join imovel.ligacaoAgua ligacaoAgua " + " left join imovel.ligacaoEsgoto ligacaoEsgoto " + " where " + " sistemaParametro.anoMesFaturamento = :anoMesReferencia " + " quadra.setorComercial.id = :idSetor " + " order by " + " imovel.id, imovel.localidade.gerenciaRegional.id, imovel.localidade.unidadeNegocio.id, " + " imovel.localidade.id, " + " quadra.setorComercial.id, quadra.id, quadra.numeroQuadra"; retorno = session.createQuery(hql).setInteger("anoMesReferencia", anoMes).setInteger("idSetor", idSetor).setFirstResult( indice).setMaxResults(qtRegistros).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } public Collection<Integer> pesquisarIdsSetores() throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = ""; try { consulta = " select " + " quad.setorComercial.id as idSetor " + " from " + " Quadra quad " // where quad.setorComercial.localidade.id = 96 " + " group by quad.setorComercial.id "; retorno = session.createQuery(consulta).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * M�todo que retona uma lista de objeto xxxxx que representa o resumo do * faturamento (D�bitos a Cobrar) * * @author Marcio Roberto * @date 17/05/2007 * * @return * @throws ErroRepositorioException */ // int idSetor, int anoMes, int indice, int qtRegistros public List getPesquisaDebitoACobrar(int idSetor, int anoMes) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { String hql = " select " + " 1, " // 00 = FINANCIAMENTO TIPO + " 6, " // 01 = DOCUMENTO TIPO + " debitoacobrar.lancamentoItemContabil.id, " // 02 = LANCAMENTO ITEM CONTABIL + " loca.gerenciaRegional.id, " // 03 = GERENCIA REGIONAL + " loca.unidadeNegocio.id, " // 04 = UNIDADE NEGOCIO + " loca.localidade.id, " // elo // 05 = ELO + " loca.id, "// idlocalidade // 06 = LOCALIDADE + " debitoacobrar.quadra.setorComercial.id, " // 07 = SETOR COMERCIAL + " debitoacobrar.quadra.rota.id, " // 08 = ROTA + " debitoacobrar.quadra.id, " // 09 = QUADRA + " debitoacobrar.codigoSetorComercial, " // 10 = CODIGO SETOR COMERCIAL + " debitoacobrar.numeroQuadra, " // 11 = NUMERO QUADRA + " imov.imovelPerfil.id, " // 12 = PERFIL DO IMOVEL + " imov.ligacaoAguaSituacao.id, " // 13 = SITUACAO AGUA LIGACAO + " imov.ligacaoEsgotoSituacao.id, " // 14 = SITUACAO ESGOTO LIGACAO + " case when ( " // -------------------| + " imov.ligacaoAgua.ligacaoAguaPerfil.id is null ) then " // CHAVES DE QUEBRA | + " 0 " // -------------------| + " else " // + " imov.ligacaoAgua.ligacaoAguaPerfil.id " // + " end, " // // 15 + " case when ( " // + " imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id is null ) then " // + " 0 " // + " else " // + " imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id " // 16 + " end, "// // + " debitoacobrar.debitoCreditoSituacaoAtual.id, " // 17 + " debitoacobrar.quadra.rota.empresa.id, " // 18 = EMPRESA + " imov.consumoTarifa.id, " // 19 = CONSUMO TARIFA + " debitoacobrar.quadra.rota.faturamentoGrupo.id, " // 20 = GRUPO DE FATURAMENTO +" case when ( (debitoacobrar.debitoCreditoSituacaoAtual.id = 0 or debitoacobrar.debitoCreditoSituacaoAnterior.id = 0) " +" and (debitoacobrar.financiamentoTipo.id = 1) ) then " +" sum(debitoacobrar.valorDebito) end as valorIncluido , " // 21 = VALOR FINANCIAMENTO INCLUIDOS +" 0 , " // 22 = QUANTIDADE FINANCIAMENTO INCLUIDOS +" case when ( (debitoacobrar.debitoCreditoSituacaoAtual.id = 3) and (debitoacobrar.financiamentoTipo.id = 1) ) then " +" sum( ( debitoacobrar.valorDebito - (" + " trunc(( debitoacobrar.valorDebito / debitoacobrar.numeroPrestacaoDebito ),2) * " + " debitoacobrar.numeroPrestacaoCobradas" + " ))) end as valorCancelado , " +" 0, " // 24 = QUANTIDADE FINANCIAMENTOS CANCELADOS +" debitoacobrar.debitoTipo.id, " // 25 = DEBITO TIPO +" imov.id, " // 26 +" rota.codigo, "// 27 +" debitoacobrar.financiamentoTipo.id, "// 28 +" case when ( (debitoacobrar.debitoCreditoSituacaoAtual.id = 0 or debitoacobrar.debitoCreditoSituacaoAnterior.id = 0) " +" and (debitoacobrar.parcelamentoGrupo.id = 6) ) then " +" sum(debitoacobrar.valorDebito) end as valorJurosParcelamento , " // 29 VALOR JUROS PARCELAMENTO +" case when ( (debitoacobrar.debitoCreditoSituacaoAtual.id = 3) and (debitoacobrar.parcelamentoGrupo.id is not null) ) then " +" sum( ( debitoacobrar.valorDebito - (" +" trunc(( debitoacobrar.valorDebito / debitoacobrar.numeroPrestacaoDebito ),2) * " +" debitoacobrar.numeroPrestacaoCobradas" +" ))) end as valorParcelamentoCancelado " // 30 VALOR PARCELAMENTO CANCELADOS +" " +" from " +" gcom.faturamento.debito.DebitoACobrar debitoacobrar " +" inner join debitoacobrar.lancamentoItemContabil as lancamentoitemcontabil " +" inner join debitoacobrar.imovel as imov " +" inner join imov.localidade as loca " +" left join debitoacobrar.quadra.rota rota " +" left join imov.ligacaoAgua ligacaoAgua " +" left join imov.ligacaoEsgoto ligacaoEsgoto " +" where " +" debitoacobrar.anoMesReferenciaContabil = :anoMes and " +" debitoacobrar.quadra.setorComercial.id = :idSetor and " /** * Data:12/10/2011 * Autor Adriana Muniz * * Limitar que apenas imoveis n�o excluidos sejam retornados na consulta * */ +" imov.indicadorExclusao = 2 " +" " +" " +" group by " +" debitoacobrar.lancamentoItemContabil.id, loca.gerenciaRegional.id, loca.unidadeNegocio.id, " +" loca.localidade.id, loca.id, debitoacobrar.quadra.setorComercial.id, " +" debitoacobrar.quadra.rota.id, debitoacobrar.quadra.id, debitoacobrar.codigoSetorComercial, " +" debitoacobrar.numeroQuadra, imov.imovelPerfil.id, imov.ligacaoAguaSituacao.id, " +" imov.ligacaoEsgotoSituacao.id, imov.ligacaoAgua.ligacaoAguaPerfil.id, " +" imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id, debitoacobrar.debitoCreditoSituacaoAtual.id, " +" debitoacobrar.debitoCreditoSituacaoAnterior.id, debitoacobrar.quadra.rota.empresa.id, " +" imov.consumoTarifa.id, debitoacobrar.quadra.rota.faturamentoGrupo.id, " +" debitoacobrar.debitoTipo.id, imov.id, rota.codigo,debitoacobrar.financiamentoTipo.id,debitoacobrar.parcelamentoGrupo.id" +" order by " +" loca.gerenciaRegional.id, loca.unidadeNegocio.id, loca.localidade.id, " +" loca.id, debitoacobrar.quadra.setorComercial.id, " +" debitoacobrar.quadra.rota.id, debitoacobrar.quadra.id, debitoacobrar.codigoSetorComercial, " +" debitoacobrar.numeroQuadra, imov.imovelPerfil.id, imov.ligacaoAguaSituacao.id, " +" imov.ligacaoEsgotoSituacao.id, imov.ligacaoAgua.ligacaoAguaPerfil.id, " +" imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id, debitoacobrar.debitoCreditoSituacaoAtual.id, " +" debitoacobrar.quadra.rota.empresa.id, imov.consumoTarifa.id, debitoacobrar.quadra.rota.faturamentoGrupo.id, " +" debitoacobrar.debitoTipo.id,debitoacobrar.financiamentoTipo.id "; retorno = session.createQuery(hql).setInteger("anoMes",anoMes) .setInteger("idSetor", idSetor).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * * @author Roberto Barbalho * @date 28/08/2007 * * @return * @throws ErroRepositorioException */ public List getPesquisaImpostos(int idConta) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { String hql = " select " + " cid.impostoTipo.id, " + " cid.valorImposto " + " from " + " gcom.faturamento.conta.ContaImpostosDeduzidos cid " + " where cid.conta.id = :idConta "; retorno = session.createQuery(hql).setInteger("idConta", idConta).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * Seleciona o maior m�s/ano de refer�ncia da tabela un_resumo_faturamento * * [UC????] - Gerar Resumo Indicadores do Faturamento * * @author Rafael Corr�a * @date 25/03/2008 * * @return * @throws ErroRepositorioException */ public Integer pesquisarMaiorAnoMesResumoFaturamento() throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); String consulta; Integer retorno = null; try { // + " ch.percentualColeta " consulta = "SELECT max(resFat.referencia) " + " FROM " + " gcom.gerencial.faturamento.UnResumoFaturamento resFat "; retorno = (Integer) session.createQuery(consulta).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; } /** * Seleciona o maior m�s/ano de refer�ncia da tabela un_resumo_refaturamento * * [UC????] - Gerar Resumo Indicadores do Faturamento * * @author Rafael Corr�a * @date 25/03/2008 * * @return * @throws ErroRepositorioException */ public Integer pesquisarMaiorAnoMesResumoRefaturamento() throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); String consulta; Integer retorno = null; try { // + " ch.percentualColeta " consulta = "SELECT max(resRefat.anoMesReferencia) " + " FROM " + " gcom.gerencial.faturamento.UnResumoRefaturamento resRefat "; retorno = (Integer) session.createQuery(consulta).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; } /** * Seleciona o maior m�s/ano de refer�ncia da tabela un_resumo_indicadores_faturamento * * [UC????] - Gerar Resumo Indicadores do Faturamento * * @author Rafael Corr�a * @date 25/03/2008 * * @return * @throws ErroRepositorioException */ public Integer pesquisarMaiorAnoMesResumoIndicadoresFaturamento() throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); String consulta; Integer retorno = null; try { // + " ch.percentualColeta " consulta = "SELECT max(resIndFat.anoMesReferencia) " + " FROM " + " gcom.gerencial.faturamento.UnResumoIndicadoresFaturamento resIndFat "; retorno = (Integer) session.createQuery(consulta).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; } /** * Atualiza os dados na tabela un_resumo_indicadores_faturamento * * [UC????] - Gerar Resumo Indicadores do Faturamento * * @author Rafael Corr�a * @date 25/03/2008 * * @return * @throws ErroRepositorioException */ public void atualizarDadosResumoIndicadoresFaturamento( Integer anoMesReferenciaIndicador, Integer anoMesReferenciaTabelas) throws ErroRepositorioException { Connection con = null; Statement stmt = null; Session session = HibernateUtil.getSessionGerencial(); String consulta; try { con = session.connection(); stmt = con.createStatement(); consulta = "INSERT INTO faturamento.un_res_ind_fat " + " SELECT " + " refa_amreferencia, refa_anoreferencia, refa_mesreferencia, greg_id, uneg_id, " + " loca_id, loca_cdelo, stcm_id, qdra_id, rota_id, refa_cdsetorcomercial, refa_nnquadra, " + " iper_id, last_id, lest_id, catg_id, scat_id, epod_id, cltp_id, lapf_id, lepf_id, " + " crog_id, lict_id, dotp_id, fntp_id, dbtp_id, crti_id, " + " refa_qtcontasemitidas, rerf_qtcontasretificadas, rerf_qtcontascanceladas, rerf_qtcontasincluidas, " + " refa_qteconomiasfaturadas, refa_vofaturadoagua, rerf_vocanceladoagua, rerf_voincluidoagua, " + " refa_vofaturadoesgoto, rerf_vocanceladoesgoto, rerf_voincluidoesgoto, " + " refa_vlfaturadoagua, rerf_vlcanceladoagua, rerf_vlincluidoagua, " + " refa_vlfaturadoesgoto, rerf_vlcanceladoesgoto, rerf_vlincluidoesgoto, " + " refa_vldocumentosfaturadoscred, rerf_vlcanceladocredito, rerf_vlincluidocredito, " + " refa_vldocumentosfaturadosoutr, rerf_vlcanceladooutros, rerf_vlincluidooutros, " + " refa_vlacrescimoimpontualidade, refa_qtcontasemitidasma, rerf_qtcontasretificadasma, " + " rerf_qtcontascanceladasma, rerf_qtcontasincluidasma, refa_qteconomiasfaturadasma, " + " refa_vofaturadoaguama, rerf_vocanceladoaguama, rerf_voincluidoaguama, " + " refa_vofaturadoesgotoma, rerf_vocanceladoesgotoma, rerf_voincluidoesgotoma, " + " refa_vlfaturadoaguama, rerf_vlcanceladoaguama, rerf_vlincluidoaguama, " + " refa_vlfaturadoesgotoma, rerf_vlcanceladoesgotoma, rerf_vlincluidoesgotoma, " + " refa_vldocumentosfaturadoscredma, rerf_vlcanceladocreditoma, rerf_vlincluidocreditoma, " + " refa_vldocumentosfaturadosoutrma, rerf_vlcanceladooutrosma, rerf_vlincluidooutrosma, " + " refa_vlacrescimoimpontualidadema, refa_vlarrastos, refa_vlparcelamento, " + " rerf_qtguiascanceladas, " + Util.obterNextValSequence("faturamento.seq_un_res_ind_fat") + ", sysdate " + " FROM faturamento.vw_un_res_ind_fat "; if (anoMesReferenciaIndicador != null) { consulta = consulta + " WHERE refa_amreferencia > " + anoMesReferenciaIndicador + " and refa_amreferencia <= " + anoMesReferenciaTabelas; } else { consulta = consulta + " WHERE refa_amreferencia <= " + anoMesReferenciaTabelas; } // consulta += "\n limit 1"; System.out.println("inicio Batch atualizarDadosResumoIndicadoresFaturamento:" + new Date()); stmt.executeUpdate(consulta); System.out.println("fim Batch atualizarDadosResumoIndicadoresFaturamento:" + new Date()); } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } catch (SQLException e) { e.printStackTrace(); } finally { // fecha a sess�o HibernateUtil.closeSession(session); try { stmt.close(); con.close(); } catch (SQLException e) { System.out.println("Erro ao fechar conex�es"); } } } /** * M�todo que retona uma lista de objeto xxxxx que representa o resumo do * faturamento (Guia de Pagamento) * * @author Marcio Roberto * @date 05/09/2007 * * @return * @throws ErroRepositorioException */ public List getPesquisaGuiaPagamento(int idSetor, int anoMes) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { String hql = " select " + " 1, " // 00 = FINANCIAMENTO TIPO + " 7, " // 01 = DOCUMENTO TIPO + " guiaPagamento.lancamentoItemContabil.id, " // 02 = LANCAMENTO ITEM CONTABIL + " loca.gerenciaRegional.id, " // 03 = GERENCIA REGIONAL + " loca.unidadeNegocio.id, " // 04 = UNIDADE NEGOCIO + " loca.localidade.id, " // elo // 05 = ELO + " loca.id, "// idlocalidade // 06 = LOCALIDADE + " setor.id, " // 07 = SETOR COMERCIAL + " imov.quadra.rota.id, " // 08 = ROTA + " imov.quadra.id, " // 09 = QUADRA + " setor.codigo, " // 10 = CODIGO SETOR COMERCIAL + " imov.quadra.numeroQuadra, " // 11 = NUMERO QUADRA + " imov.imovelPerfil.id, " // 12 = PERFIL DO IMOVEL + " imov.ligacaoAguaSituacao.id, " // 13 = SITUACAO AGUA LIGACAO + " imov.ligacaoEsgotoSituacao.id, " // 14 = SITUACAO ESGOTO LIGACAO + " case when ( " // ------------------- + " imov.ligacaoAgua.ligacaoAguaPerfil.id is null ) then " // CHAVES DE QUEBRA! + " 0 " // ------------------- + " else " // + " imov.ligacaoAgua.ligacaoAguaPerfil.id " // + " end, " // // 15 = PERFIL LIGACAO AGUA + " case when ( " // + " imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id is null ) then " // + " 0 " // + " else " // + " imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id " // 16 = PERFIL LIGACAO ESGOTO + " end, "// // + " guiaPagamento.debitoCreditoSituacaoAtual.id, " // 17 + " imov.quadra.rota.empresa.id, " // 18 = EMPRESA + " imov.consumoTarifa.id, " // 19 = CONSUMO TARIFA + " imov.quadra.rota.faturamentoGrupo.id, " // 20 = GRUPO DE FATURAMENTO + " sum(guiaPagamento.valorDebito) as valordebitos, " // 21 = VALOR DEBITO GUIA + " count(guiaPagamento.id) as qtddocumentos, " // 22 = QUANTIDADE GUIA + " guiaPagamento.debitoTipo.id, " // 23 = DEBITO TIPO + " imov.id, " // 24 = IMOVEL +" rota.codigo " //25 = codigo rota +" " +" from " +" gcom.arrecadacao.pagamento.GuiaPagamento guiaPagamento " +" inner join guiaPagamento.lancamentoItemContabil as lancamentoitemcontabil " +" inner join guiaPagamento.imovel as imov " +" inner join imov.localidade as loca " +" inner join imov.setorComercial as setor " +" inner join imov.quadra.rota rota " +" left join imov.ligacaoAgua ligacaoAgua " +" left join imov.ligacaoEsgoto ligacaoEsgoto " +" " +" " +" where " +" guiaPagamento.anoMesReferenciaContabil = :anoMes and " +" imov.quadra.setorComercial.id = :idSetor and " +" (guiaPagamento.debitoCreditoSituacaoAtual.id = 0 or guiaPagamento.debitoCreditoSituacaoAnterior.id = 0) " +" " +" " +" group by " +" guiaPagamento.lancamentoItemContabil.id, loca.gerenciaRegional.id, loca.unidadeNegocio.id, " +" loca.localidade.id, loca.id, setor.id, imov.quadra.rota.id, " +" imov.quadra.id, setor.codigo, imov.quadra.numeroQuadra, imov.imovelPerfil.id, " +" imov.ligacaoAguaSituacao.id, imov.ligacaoEsgotoSituacao.id, " +" imov.ligacaoAgua.ligacaoAguaPerfil.id, imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id, " +" guiaPagamento.debitoCreditoSituacaoAtual.id, imov.quadra.rota.empresa.id, " +" imov.consumoTarifa.id, imov.quadra.rota.faturamentoGrupo.id, guiaPagamento.debitoTipo.id, imov.id, rota.codigo " +" " +" " +" order by " +" guiaPagamento.lancamentoItemContabil.id, loca.gerenciaRegional.id, loca.unidadeNegocio.id, " +" loca.localidade.id, loca.id, setor.id, imov.quadra.rota.id, " +" imov.quadra.id, setor.codigo, imov.quadra.numeroQuadra, imov.imovelPerfil.id, " +" imov.ligacaoAguaSituacao.id, imov.ligacaoEsgotoSituacao.id, " +" imov.ligacaoAgua.ligacaoAguaPerfil.id, imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id, " +" guiaPagamento.debitoCreditoSituacaoAtual.id, imov.quadra.rota.empresa.id, " +" imov.consumoTarifa.id, imov.quadra.rota.faturamentoGrupo.id, guiaPagamento.debitoTipo.id "; retorno = session.createQuery(hql).setInteger("anoMes",anoMes) .setInteger("idSetor", idSetor).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * M�todo que retona uma lista de objeto xxxxx que representa o resumo do * Refaturamento (Guia de Pagamento) * * @author Roberto Barbalho * @date 05/11/2007 * * @return * @throws ErroRepositorioException */ public List getPesquisaGuiaPagamentoRefaturamento(int idSetor, int anoMes) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { String hql = "select " + " imov.id, "//0 + " loca.gerenciaRegional.id, "//1 + " loca.unidadeNegocio.id, "//2 + " loca.localidade.id, " //3 + " loca.id, "//4 + " imov.quadra.setorComercial.id, "//5 + " imov.quadra.rota.id, "//6 + " imov.quadra.id, "//7 + " imov.quadra.setorComercial.codigo, "//8 + " imov.quadra.numeroQuadra, "//9 + " imov.imovelPerfil.id, "//10 + " imov.ligacaoAguaSituacao.id, "//11 + " imov.ligacaoEsgotoSituacao.id, "//12 + " case when ( " + " imov.ligacaoAgua.ligacaoAguaPerfil.id is null ) then " + " 0 " + " else " + " imov.ligacaoAgua.ligacaoAguaPerfil.id "//13 + " end, " + " case when ( " + " imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id is null ) then " + " 0 " + " else " + " imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id "//14 + " end, " + " guiaPagamento.debitoCreditoSituacaoAtual.id, "//15 + " sum(guiaPagamento.valorDebito) as valordebitos, "//16 + " count(guiaPagamento.id) as qtddocumentos, "//17 + " imov.id "//18 + " from " + " gcom.arrecadacao.pagamento.GuiaPagamento guiaPagamento " + " inner join guiaPagamento.imovel as imov " + " inner join imov.localidade as loca " + " left join imov.ligacaoAgua ligacaoAgua " + " left join imov.ligacaoEsgoto ligacaoEsgoto " + " where " + " guiaPagamento.anoMesReferenciaContabil = :anoMes and " + " imov.quadra.setorComercial.id = :idSetor and " + " (guiaPagamento.debitoCreditoSituacaoAtual.id = 3) " + " group by " + " loca.gerenciaRegional.id, loca.unidadeNegocio.id, " + " loca.localidade.id, loca.id, imov.quadra.setorComercial.id, imov.quadra.rota.id, " + " imov.quadra.id, imov.quadra.setorComercial.codigo, imov.quadra.numeroQuadra, imov.imovelPerfil.id, " + " imov.ligacaoAguaSituacao.id, imov.ligacaoEsgotoSituacao.id, " + " imov.ligacaoAgua.ligacaoAguaPerfil.id, imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id, " + " guiaPagamento.debitoCreditoSituacaoAtual.id, imov.id " + " order by " + " loca.gerenciaRegional.id, loca.unidadeNegocio.id, " + " loca.localidade.id, loca.id, imov.quadra.setorComercial.id, imov.quadra.rota.id, " + " imov.quadra.id, imov.quadra.setorComercial.codigo, imov.quadra.numeroQuadra, imov.imovelPerfil.id, " + " imov.ligacaoAguaSituacao.id, imov.ligacaoEsgotoSituacao.id, " + " imov.ligacaoAgua.ligacaoAguaPerfil.id, imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id, " + " guiaPagamento.debitoCreditoSituacaoAtual.id, imov.id "; retorno = session.createQuery(hql).setInteger("anoMes",anoMes) .setInteger("idSetor", idSetor).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * getValorResultadoRetificacao * * @author Roberto Barbalho * @date 22/11/2007 * * @param * @return * @throws ErroRepositorioException */ public List getValorAnteriorContaRetificada(int idImovel, int anoMesRef , int anoMes, int verif ) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { String sqlDataSistemaParametro = " select parm_amreferenciafaturamento as col_0 from cadastro.sistema_parametros"; Integer amFatur = (Integer) session.createSQLQuery(sqlDataSistemaParametro) .addScalar("col_0",Hibernate.INTEGER).setMaxResults(1).uniqueResult(); String sql = " select "; if (verif == 0) { //contas com dcst_idatual = 1 ou dcst_idanterior = 1 e com a conta com dcst_idatual = 4 respectiva sql = sql + " sum(c4.cnta_vlagua - c1.cnta_vlagua) as col_0, " //0 Agua + " sum(c4.cnta_vlesgoto - c1.cnta_vlesgoto) as col_1, " //1 Esgoto + " sum(c4.cnta_vldebitos - c1.cnta_vldebitos) as col_2, " //2 Debitos + " sum(c4.cnta_vlcreditos - c1.cnta_vlcreditos) as col_3, " //3 Creditos + " sum(c4.cnta_vlimpostos - c1.cnta_vlimpostos) as col_4, " //4 Impostos + " sum(c4.cnta_nnconsumoagua - c1.cnta_nnconsumoagua) as col_5, " //5 Volume Agua + " sum(c4.cnta_nnconsumoesgoto - c1.cnta_nnconsumoesgoto) as col_6 " //6 Volume Esgoto + " from faturamento.conta c1, faturamento.conta c4 " + " where c1.imov_id = c4.imov_id " //+ " and c1.cnta_amreferenciacontabil = c4.cnta_amreferenciacontabil " + " and c1.cnta_amreferenciaconta = c4.cnta_amreferenciaconta " + " and c4.dcst_idatual = 4 " + " and (c1.dcst_idatual = 1 or c1.dcst_idanterior = 1) " + " and c4.cnta_amreferenciacontabil = :anoMes " //ano mes do sistema parametro + " and c4.cnta_amreferenciaconta = :anoMesRef " //amreferenciaconta + " and c4.imov_id = :idImovel "; retorno = session.createSQLQuery(sql) .addScalar("col_0",Hibernate.BIG_DECIMAL) .addScalar("col_1",Hibernate.BIG_DECIMAL) .addScalar("col_2",Hibernate.BIG_DECIMAL) .addScalar("col_3",Hibernate.BIG_DECIMAL) .addScalar("col_4",Hibernate.BIG_DECIMAL) .addScalar("col_5",Hibernate.INTEGER) .addScalar("col_6",Hibernate.INTEGER) .setInteger("idImovel",idImovel ) .setInteger("anoMesRef", anoMesRef) .setInteger("anoMes",anoMes) .list(); System.out.println("AnoMes 0: "+amFatur+""); System.out.println("Imovel 0: "+idImovel+""); } if (verif == 1) { //contas com dcst_idatual = 4 sem a conta com dcst_idatual = 1 ou dcst_idanterior = 1 respectiva sql = sql + " sum(c4.cnta_vlagua) as col_0, " //0 Agua + " sum(c4.cnta_vlesgoto) as col_1, " //1 Esgoto + " sum(c4.cnta_vldebitos) as col_2, " //2 Debitos + " sum(c4.cnta_vlcreditos) as col_3, " //3 Creditos + " sum(c4.cnta_vlimpostos) as col_4, " //4 Impostos + " sum(c4.cnta_nnconsumoagua) as col_5, " //5 Volume Agua + " sum(c4.cnta_nnconsumoesgoto) as col_6 " //6 Volume Esgoto + " from faturamento.conta c4 " + " where c4.imov_id = :idImovel " + " and c4.cnta_amreferenciacontabil = :anoMes " + " and c4.cnta_amreferenciaconta = :anoMesRef " + " and (c4.dcst_idatual = 1 or c4.dcst_idanterior = 1)"; retorno = session.createSQLQuery(sql) .addScalar("col_0",Hibernate.BIG_DECIMAL) .addScalar("col_1",Hibernate.BIG_DECIMAL) .addScalar("col_2",Hibernate.BIG_DECIMAL) .addScalar("col_3",Hibernate.BIG_DECIMAL) .addScalar("col_4",Hibernate.BIG_DECIMAL) .addScalar("col_5",Hibernate.INTEGER) .addScalar("col_6",Hibernate.INTEGER) .setInteger("idImovel",idImovel ) .setInteger("anoMesRef", anoMesRef ) .setInteger("anoMes",anoMes) .list(); System.out.println("AnoMes 1: "+anoMes+""); System.out.println("Imovel 1: "+idImovel+""); } } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * [UC0571] - Gerar Resumo do Faturamento * * Pesquisamos as contas que ser�o usadas no resumo de contas * * @author Bruno Barros * @date 18/09/2008 * * @param idSetorComercial * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarContasResumoFaturamento(Integer idSetor) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; try { consulta = "select " + // 0 " gere.id, " + // 1 " unNe.id, " + // 2 " loca.localidade.id, " + // 3 " loca.id, " + // 4 " seCo.id, " + // 5 " cnta.codigoSetorComercial, " + // 6 " rot.id, " + // 7 " rot.codigo, " + // 8 " quad.id, " + // 9 " quad.numeroQuadra, " + // 10 " imPe.id, " + // 11 " las.id, " + // 12 " les.id, " + // 13 " lap.id, " + // 14 " lep.id, " + // 15 " conTar.id, " + // 16 " fatGru.id, " + // 17 " empr.id, " + // 18 " cnta.valorAgua, " + // 19 " cnta.valorEsgoto, " + // 20 " imo.quantidadeEconomias, " + // 21 " imo.id, " + // 22 " cnta.consumoAgua, " + // 23 " cnta.debitos, " + // 24 " cnta.valorImposto, " + // 25 " cnta.valorCreditos, " + // 26 " cnta.id, " + // 27 " cnta.consumoEsgoto " + "from " + " Conta cnta " + " left join cnta.localidade loca " + " left join loca.localidade elo " + " left join loca.gerenciaRegional gere " + " left join loca.unidadeNegocio unNe " + " left join cnta.quadraConta quad " + " left join quad.setorComercial seCo " + " left join quad.rota rot " + " left join cnta.imovelPerfil imPe " + " left join cnta.ligacaoAguaSituacao las " + " left join cnta.ligacaoEsgotoSituacao les " + " left join cnta.imovel imo " + " left join imo.ligacaoAgua liAg " + " left join liAg.ligacaoAguaPerfil lap " + " left join imo.ligacaoEsgoto liEs " + " left join liEs.ligacaoEsgotoPerfil lep " + " left join cnta.consumoTarifa conTar " + " left join rot.faturamentoGrupo fatGru " + " left join rot.empresa empr, " + " SistemaParametro sp " + "where " + " sp.anoMesFaturamento = cnta.referencia and " + " ( cnta.debitoCreditoSituacaoAtual = 0 or cnta.debitoCreditoSituacaoAnterior = 0 ) and " + " seCo.id = :idSetor"; retorno = session.createQuery(consulta).setInteger("idSetor", idSetor).list(); } 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; } /** * [UC0571] - Gerar Resumo do Faturamento * * Pesquisamos as guias que ser�o usadas no resumo de guias de pagamento * * @author Bruno Barros * @date 20/08/2008 * * @param idSetorComercial * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarGuiasResumoFaturamento(Integer idSetor) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; String filtrarPor = null; if ( idSetor == 99999 ){ filtrarPor = " imo is null "; } else { filtrarPor = " setCom.id = :idSetor "; } try { consulta = "select " + // 0 " geRe.id, " + // 1 " unNe.id, " + // 2 " elo.id, " + // 3 " loca.id, " + // 4 " setCom.id, " + // 5 " setCom.codigo, " + // 6 " rot.id, " + // 7 " rot.codigo, " + // 8 " qua.id, " + // 9 " qua.numeroQuadra, " + // 10 " case when ( imo is not null ) then imoPer.id else 5 end, " + // 11 " case when ( imo is not null ) then las.id else 1 end, " + // 12 " case when ( imo is not null ) then les.id else 1 end, " + // 13 " case when ( imo is not null ) then pla.id else 0 end, " + // 14 " case when ( imo is not null ) then ple.id else 0 end, " + // 15 " case when ( imo is not null ) then conTar.id else 0 end, " + // 16 " lic.id, " + // 17 " finTip.id, " + // 18 " debTip.id, " + // 19 " imo.id, " + // 20 " esfPod.id, " + // 21 " cliTip.id, " + // 22 " fatGru.id, " + // 23 " empr.id, " + // 24 " guia.valorDebito, " + //25 " guia.id " + "from " + " GuiaPagamento guia " + " left join guia.localidade loca " + " left join loca.gerenciaRegional geRe " + " left join loca.unidadeNegocio unNe " + " left join loca.localidade elo " + " left join guia.imovel imo " + " left join imo.setorComercial setCom " + " left join imo.quadra qua " + " left join qua.rota rot " + " left join imo.imovelPerfil imoPer " + " left join imo.ligacaoAguaSituacao las " + " left join imo.ligacaoEsgotoSituacao les " + " left join imo.ligacaoAgua la " + " left join la.ligacaoAguaPerfil pla " + " left join imo.ligacaoAgua le " + " left join la.ligacaoAguaPerfil ple " + " left join imo.consumoTarifa conTar " + " left join guia.lancamentoItemContabil lic " + " left join guia.financiamentoTipo finTip " + " left join guia.debitoTipo debTip " + " left join guia.cliente clie " + " left join clie.clienteTipo cliTip " + " left join cliTip.esferaPoder esfPod " + " left join rot.faturamentoGrupo fatGru " + " left join rot.empresa empr, " + " SistemaParametro sp " + "where " + " guia.anoMesReferenciaContabil = sp.anoMesFaturamento and " + " (guia.debitoCreditoSituacaoAtual.id = 0 or guia.debitoCreditoSituacaoAnterior.id = 0) and " + filtrarPor + "order by " + " guia.id "; if ( idSetor == 99999 ){ retorno = session.createQuery(consulta).list(); } else { retorno = session.createQuery(consulta).setInteger("idSetor", idSetor).list(); } } 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; } /** * [UC0571] - Gerar Resumo do Faturamento * * Pesquisamos os debitos cobrados a serem usados no resumo de financiamento * * @author Bruno Barros * @date 25/08/2008 * @alteracao: Ivan Sergio - 18/01/2011 - Ver alteracao do UC referente a data 03/01/2011 (Nelson C.) * * @param idSetorComercial * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarFinanciamento(Integer idSetor) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; try { consulta = "select " + // 0 " ger.id, " + // 1 " unNe.id, " + // 2 " elo.id, " + // 3 " loc.id, " + // 4 " setCom.id, " + // 5 " setCom.codigo, " + // 6 " rot.id, " + // 7 " rot.codigo, " + // 8 " qua.id, " + // 9 " qua.numeroQuadra, " + // 10 " imoPer.id, " + // 11 " las.id, " + // 12 " les.id, " + // 13 " lap.id, " + // 14 " lep.id, " + // 15 " conTar.id, " + // 16 " fatGru.id, " + // 17 " empLei.id, " + // 18 " lic.id, " + // 19 " debTip.id, " + // 20 " imo.id, " + // 21 " dac.valorDebito, " + // 22 " dac.debitoCreditoSituacaoAtual.id, " + // 23 " dac.debitoCreditoSituacaoAnterior.id, " + // 24 " dac.numeroPrestacaoDebito, " + // 25 " dac.numeroPrestacaoCobradas, " + // 26 " finTip.id, " + // 27 " dac.parcelamentoGrupo.id, " + // 28 " dac.id " + " from " + " DebitoACobrar dac " + " left join dac.localidade loc " + " left join loc.gerenciaRegional ger " + " left join loc.unidadeNegocio unNe " + " left join loc.localidade elo " + " left join dac.imovel imo " + " left join imo.setorComercial setCom " + " left join dac.quadra qua " + " left join qua.rota rot " + " left join imo.imovelPerfil imoPer " + " left join imo.ligacaoAguaSituacao las " + " left join imo.ligacaoEsgotoSituacao les " + " left join imo.ligacaoAgua la " + " left join la.ligacaoAguaPerfil lap " + " left join imo.ligacaoEsgoto le " + " left join le.ligacaoEsgotoPerfil lep " + " left join imo.consumoTarifa conTar " + " left join rot.faturamentoGrupo fatGru " + " left join rot.empresa empLei " + " left join dac.lancamentoItemContabil lic " + " left join dac.debitoTipo debTip " + " left join dac.financiamentoTipo finTip, " + " SistemaParametro sp " + "where " + " dac.anoMesReferenciaContabil = sp.anoMesFaturamento and " + " setCom.id = :idSetor"; retorno = session.createQuery(consulta).setInteger("idSetor", idSetor).list(); } 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; } /** * [UC0571] - Gerar Resumo do Faturamento * * Inserir os dados na tabela un_resumo_faturamento * * @author Bruno Barros * @date 27/08/2008 * * @param helper Helper de agrupamento dos dados * @throws ErroRepositorioException */ public void inserirResumoFaturamento( ResumoFaturamentoHelper helper ) throws ErroRepositorioException{ Connection con = null; Statement stmt = null; Session session = HibernateUtil.getSessionGerencial(); String insert; try { if (helper.getIdSubcategoria() == null){ helper.setIdSubcategoria(0); } con = session.connection(); stmt = con.createStatement(); insert = "INSERT INTO \n" + " faturamento.un_resumo_faturamento ( \n" + // ID " refa_id," + // 0 " refa_amreferencia,\n" + // 1 " greg_id,\n" + // 2 " uneg_id,\n" + // 3 " loca_id,\n" + // 4 " loca_cdelo,\n" + // 5 " stcm_id,\n" + // 6 " rota_id,\n" + // 7 " qdra_id,\n" + // 8 " refa_cdsetorcomercial,\n" + // 9 " refa_nnquadra,\n" + // 10 " iper_id,\n" + // 11 " last_id,\n" + // 12 " lest_id,\n" + // 13 " catg_id,\n" + // 14 " scat_id,\n" + // 15 " epod_id,\n" + // 16 " cltp_id,\n" + // 17 " lapf_id,\n" + // 18 " lepf_id,\n" + // 19 " refa_vofaturadoagua,\n" + // 20 " refa_vofaturadoesgoto,\n" + // 21 " refa_vlfaturadoagua,\n" + // 22 " refa_vlfaturadoesgoto,\n" + // 23 " refa_qtcontasemitidas,\n" + // 24 " crog_id,\n" + // 25 " lict_id,\n" + // 26 " dotp_id,\n" + // 27 " fntp_id,\n" + // 28 " refa_vldocsfaturadoscredito,\n" + // 29 " refa_qtdocsfaturadoscredito,\n" + // 30 " refa_vldocsfaturadosoutros,\n" + // 31 " refa_qtdocsfaturadosoutros,\n" + // 32 " empr_id,\n" + // 33 " refa_vlfinanincluido,\n" + // 34 " refa_vlfinancancelado,\n" + // 35 " refa_qteconomiasfaturadas,\n" + // 36 " dbtp_id,\n" + // 37 " crti_id,\n" + // 38 " refa_ichidrometro,\n" + // 39 " imtp_id,\n" + // 40 " refa_vlimposto,\n" + // 41 " cstf_id,\n" + // 42 " ftgr_id,\n" + // 43 " refa_cdrota,\n" + // 44 " REFA_VLJUROSPARCELAMENTO,\n" + // 45 " REFA_VLCREDITOSCOBINDEVCAN,\n" + // 46 " REFA_VLDESCINCONDCAN,\n" + // 47 " REFA_VLGUIADEVOLCANCEL,\n" + // 48 " REFA_VLPARCELAMENTOSCAN,\n" + // 49 " REFA_VLCREDITOSCOBINDEVINC,\n" + // 50 " REFA_VLDESCINCONDINC,\n" + // 51 " REFA_VLGUIADEVOLINCL )\n" + " VALUES (\n" + Util.obterNextValSequence("faturamento.seq_un_resumo_faturamento") +", " + // 0 helper.getAnoMesFaturamento() + ", \n" + // 1 helper.getIdGerenciaRegional() + ", \n" + // 2 helper.getIdUnidadeNegocio() + ", \n" + // 3 helper.getIdLocalidade() + ", \n" + // 4 helper.getCdElo() + ", \n" + // 5 helper.getIdSetorComercial() + ", \n" + // 6 helper.getIdRota() + ", \n" + // 7 helper.getIdQuadra() + ", \n" + // 8 helper.getCdSetorComercial() + ", \n" + // 9 helper.getNmQuadra() + ", \n" + // 10 helper.getIdPerfilImovel() + ", \n" + // 11 helper.getSituacaoLigacaoAgua() + ", \n" + // 12 helper.getSituacaoLigacaoEsgoto() + ", \n" + // 13 helper.getIdCategoria() + ", \n" + // 14 helper.getIdSubcategoria() + ", \n" + // 15 helper.getIdEsferaPoder() + ", \n" + // 16 helper.getIdTipoCliente() + ", \n" + // 17 helper.getIdPerfilLigacaoAgua() + ", \n" + // 18 helper.getIdPerfilLigacaoEsgoto() + ", \n" + // 19 helper.getVolumeAgua() + ", \n" + // 20 helper.getVolumeEsgoto() + ", \n" + // 21 helper.getValorAgua() + ", \n" + // 22 helper.getValorEsgoto() + ", \n" + // 23 helper.getQuantidadeContasEmitidas() + ", \n" + // 24 helper.getIdOrigemCredito() + ", \n" + // 25 helper.getIdItemLancamentoContabil() + ", \n" + // 26 helper.getIdTipoDocumento() + ", \n" + // 27 helper.getIdTipoFinanciamento() + ", \n" + // 28 helper.getValorCreditoRealizado() + ", \n" + // 29 helper.getQuantidadeDocumentosFaturadosCredito() + ", \n" + // 30 helper.getValorDocumentosFaturadosOutros() + ", \n" + // 31 helper.getQuantidadeDocumentosFaturadosOutros() + ", \n" + // 32 helper.getIdEmpresa() + ", \n" + // 33 helper.getValorFinanciadoIncluido() + ", \n" + // 34 helper.getValorFinanciadoCancelado() + ", \n" + // 35 helper.getQuantidadeEconomiasFaturadas() + ", \n" + // 36 helper.getIdTipoDebito() + ", \n" + // 37 helper.getIdTipoCredito() + ", \n" + // 38 helper.getIndHidrometro() + ", \n" + // 39 helper.getIdTipoImposto() + ", \n" + // 40 helper.getValorImposto() + ", \n" + // 41 helper.getIdTarifaConsumo() + ", \n" + // 42 helper.getIdGrupoFaturamento() + ", \n" + // 43 helper.getCdRota() + ", \n" + // 44 helper.getValorJurosParcelamento() + ", \n" + // 45 helper.getValorCreditosARealizarCobrancasIndevidasCancelados() + ", \n" + // 46 helper.getValorDescontosIncondicionaisCancelados() + ", \n" + // 47 helper.getValorGuiaDevolucaoCobradosIndevidamenteCancelados() + ", \n" + // 48 helper.getValorParcelamentosCancelados() + ", \n" + // 49 helper.getValorCreditosARealizarCobrancasIndevidasIncluidos() + ", \n" + // 50 helper.getValorDescontosIncondicionaisIncluidos() + ", \n" + // 51 helper.getValorGuiaDevolucaoCobradosIndevidamenteIncluidos() + ") \n"; stmt.executeUpdate(insert); } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } catch (SQLException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Insert"); } finally { // fecha a sess�o HibernateUtil.closeSession(session); try { stmt.close(); con.close(); } catch (SQLException e) { System.out.println("Erro ao fechar conex�es"); } } } /** * [UC0572] - Gerar Resumo do ReFaturamento * * Pesquisamos as contas que ser�o usadas no resumo de contas * * @author Bruno Barros * @date 24/11/2008 * * @param idSetorComercial * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarContasResumoReFaturamentoOlap(Integer idSetor) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; try { consulta = "select " + // 0 " gere.id, " + // 1 " unNe.id, " + // 2 " loca.localidade.id, " + // 3 " loca.id, " + // 4 " seCo.id, " + // 5 " cnta.codigoSetorComercial, " + // 6 " rot.id, " + // 7 " rot.codigo, " + // 8 " quad.id, " + // 9 " quad.numeroQuadra, " + // 10 " imPe.id, " + // 11 " las.id, " + // 12 " les.id, " + // 13 " lap.id, " + // 14 " lep.id, " + // 15 " conTar.id, " + // 16 " fatGru.id, " + // 17 " empr.id, " + // 18 " cnta.valorAgua, " + // 19 " cnta.valorEsgoto, " + // 20 " imo.quantidadeEconomias, " + // 21 " imo.id, " + // 22 " cnta.consumoAgua, " + // 23 " cnta.debitos, " + // 24 " cnta.valorImposto, " + // 25 " cnta.valorCreditos, " + // 26 " cnta.id, " + // 27 " cnta.consumoEsgoto, " + // 28 " cnta.debitoCreditoSituacaoAtual.id, " + // 29 " cnta.debitoCreditoSituacaoAnterior.id " + "from " + " Conta cnta " + " left join cnta.localidade loca " + " left join loca.localidade elo " + " left join loca.gerenciaRegional gere " + " left join loca.unidadeNegocio unNe " + " left join cnta.quadraConta quad " + " left join quad.setorComercial seCo " + " left join quad.rota rot " + " left join cnta.imovelPerfil imPe " + " left join cnta.ligacaoAguaSituacao las " + " left join cnta.ligacaoEsgotoSituacao les " + " left join cnta.imovel imo " + " left join imo.ligacaoAgua liAg " + " left join liAg.ligacaoAguaPerfil lap " + " left join imo.ligacaoEsgoto liEs " + " left join liEs.ligacaoEsgotoPerfil lep " + " left join cnta.consumoTarifa conTar " + " left join rot.faturamentoGrupo fatGru " + " SistemaParametro sp " + "where " + " sp.anoMesFaturamento = cnta.referencia and " + " ( cnta.debitoCreditoSituacaoAtual.id in( 1,2,3,4 ) or cnta.debitoCreditoSituacaoAnterior.id = 1 ) and " + " seCo.id = :idSetor"; retorno = session.createQuery(consulta).setInteger("idSetor", idSetor).list(); } 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; } /** * [UC0572] - Gerar Resumo do ReFaturamento * * Pesquisamos a conta com status de cancelada por retifica��o * * @author Bruno Barros * @date 24/11/2008 * * @param idImovel * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarContaCanceladaRetificacao(Integer idImovel) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; try { consulta = "select " + // 0 " cnta.valorAgua, " + // 1 " cnta.valorEsgoto, " + // 2 " cnta.debitos, " + // 3 " cnta.valorCreditos, " + // 4 " cnta.valorImposto, " + // 5 " cnta.consumoAgua, " + // 6 " cnta.consumoEsgoto, " + "from " + " Conta cnta " + " SistemaParametro sp " + "where " + " sp.anoMesFaturamento = cnta.referenciaContabil and " + " sp.anoMesFaturamento = cnta.referencia and " + " cnta.debitoCreditoSituacaoAtual.id = 4 and " + " cnta.imovel.id = :idImovel "; retorno = session.createQuery(consulta).setInteger("idImovel", idImovel).setMaxResults(1).list(); } 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; } /** * [UC0572] - Gerar Resumo do ReFaturamento * * Pesquisamos a conta com status de retificada * * @author Bruno Barros * @date 26/11/2008 * * @param idImovel * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarContaRetificada(Integer idImovel) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; try { consulta = "select " + " count(*)" + "from " + " Conta cnta " + " SistemaParametro sp " + "where " + " sp.anoMesFaturamento = cnta.referenciaContabil and " + " sp.anoMesFaturamento = cnta.referencia and " + " ( cnta.debitoCreditoSituacaoAtual.id = 1 or cnta.debitoCreditoSituacaoAnterior.id = 1 ) and " + " cnta.imovel.id = :idImovel "; retorno = session.createQuery(consulta).setInteger("idImovel", idImovel).setMaxResults(1).list(); } 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; } // public static void main(String[] args) { // String consulta = "INSERT INTO faturamento.un_resumo_indicadores_faturamento " // + " SELECT " // + " refa_amreferencia, refa_anoreferencia, refa_mesreferencia, greg_id, uneg_id, " // + " loca_id, loca_cdelo, stcm_id, qdra_id, rota_id, refa_cdsetorcomercial, refa_nnquadra, " // + " iper_id, last_id, lest_id, catg_id, scat_id, epod_id, cltp_id, lapf_id, lepf_id, " // + " crog_id, lict_id, dotp_id, fntp_id, dbtp_id, crti_id, " // + " refa_qtcontasemitidas, rerf_qtcontasretificadas, rerf_qtcontascanceladas, rerf_qtcontasincluidas, " // + " refa_qteconomiasfaturadas, refa_vofaturadoagua, rerf_vocanceladoagua, rerf_voincluidoagua, " // + " refa_vofaturadoesgoto, rerf_vocanceladoesgoto, rerf_voincluidoesgoto, " // + " refa_vlfaturadoagua, rerf_vlcanceladoagua, rerf_vlincluidoagua, " // + " refa_vlfaturadoesgoto, rerf_vlcanceladoesgoto, rerf_vlincluidoesgoto, " // + " refa_vldocumentosfaturadoscredito, rerf_vlcanceladocredito, rerf_vlincluidocredito, " // + " refa_vldocumentosfaturadosoutros, rerf_vlcanceladooutros, rerf_vlincluidooutros, " // + " refa_vlacrescimoimpontualidade, refa_qtcontasemitidasma, rerf_qtcontasretificadasma, " // + " rerf_qtcontascanceladasma, rerf_qtcontasincluidasma, refa_qteconomiasfaturadasma, " // + " refa_vofaturadoaguama, rerf_vocanceladoaguama, rerf_voincluidoaguama, " // + " refa_vofaturadoesgotoma, rerf_vocanceladoesgotoma, rerf_voincluidoesgotoma, " // + " refa_vlfaturadoaguama, rerf_vlcanceladoaguama, rerf_vlincluidoaguama, " // + " refa_vlfaturadoesgotoma, rerf_vlcanceladoesgotoma, rerf_vlincluidoesgotoma, " // + " refa_vldocumentosfaturadoscreditoma, rerf_vlcanceladocreditoma, rerf_vlincluidocreditoma, " // + " refa_vldocumentosfaturadosoutrosma, rerf_vlcanceladooutrosma, rerf_vlincluidooutrosma, " // + " refa_vlacrescimoimpontualidadema, refa_vlarrastos, refa_vlparcelamento, " // + " rerf_qtguiascanceladas, " // + " nextval('faturamento.sequence_un_resumo_indicadores_faturamento'), now() " // + " FROM faturamento.vw_un_resumo_indicadores_faturamento "; // // if (true) { // consulta = consulta // + " WHERE refa_amreferencia > 200930 and refa_amreferencia <= 2009320 "; // } else { // consulta = consulta // + " WHERE refa_amreferencia <= 2009320"; // } // // System.out.println(consulta); // // } public Map totalizadorRelatorioDemonstrativoSinteticoLigacoes(FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper filtro){ Map retorno = new HashMap(); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Municipio/ Localidade retorno.put("gerenciaRegionalID", "sum(0) "); retorno.put("gerenciaRegional", "sum(0) "); retorno.put("unidadeNegocioID", "sum(0) "); retorno.put("unidadeNegocio", "sum(0) "); retorno.put("localidadeID", "sum(0) "); retorno.put("localidade", "sum(0) "); retorno.put("municipioID", "sum(0) "); retorno.put("municipio", "sum(0) "); retorno.put("join", ""); retorno.put("where", ""); retorno.put("orderBy", ""); retorno.put("groupBy", ""); int opcaoTotalozacao = filtro.getOpcaoTotalizacao(); switch(opcaoTotalozacao){ //Estado por Gerencia Regional case 2: retorno.put("gerenciaRegionalID", "greg.greg_id "); retorno.put("gerenciaRegional", "greg.greg_nmregional "); retorno.put("join", "right join cadastro.g_gerencia_regional greg on (greg.greg_id = r.greg_id) "); retorno.put("join2", " "); retorno.put("where", "where greg.greg_id != 0 "); retorno.put("groupBy", "group by greg.greg_id, greg.greg_nmregional "); retorno.put("tipo", "totalizadorPorEstado"); retorno.put("orderBy", "order by greg.greg_id "); break; //Estado por Unidade de Negocio case 3: retorno.put("gerenciaRegionalID", "greg.greg_id "); retorno.put("gerenciaRegional", "greg.greg_nmregional "); retorno.put("unidadeNegocioID", "uneg.uneg_id "); retorno.put("unidadeNegocio", "uneg.uneg_nmunidadenegocio "); retorno.put("join", "right join cadastro.g_unidade_negocio uneg on (uneg.uneg_id = r.uneg_id) "); retorno.put("join2", "inner join cadastro.g_gerencia_regional greg on (greg.greg_id = uneg.greg_id) "); retorno.put("where", "where uneg.uneg_id != 0 "); retorno.put("tipo", "totalizadorPorEstado"); retorno.put("groupBy", "group by greg.greg_id, greg.greg_nmregional, " + "uneg.uneg_id, uneg.uneg_nmunidadenegocio "); retorno.put("orderBy", "order by greg.greg_id, uneg.uneg_id "); break; //Estado por Centro Custo/Localidade case 4: retorno.put("gerenciaRegionalID", "greg.greg_id "); retorno.put("gerenciaRegional", "greg.greg_nmregional "); retorno.put("unidadeNegocioID", "uneg.uneg_id "); retorno.put("unidadeNegocio", "uneg.uneg_nmunidadenegocio "); retorno.put("localidadeID", "loca.loca_cdcentrocusto "); retorno.put("join", "right join cadastro.g_localidade loca on (loca.loca_id = r.loca_id) "); retorno.put("join", "right join cadastro.g_localidade loca on (loca.loca_id = r.loca_id) "); retorno.put("join2","inner join cadastro.g_gerencia_regional greg on (greg.greg_id = loca.greg_id) " + "inner join cadastro.g_unidade_negocio uneg on (uneg.uneg_id = loca.uneg_id)" ); retorno.put("tipo", "totalizadorPorEstado"); retorno.put("where", "where loca.loca_cdcentrocusto is not null "); retorno.put("groupBy", "group by greg.greg_id, greg.greg_nmregional, " + "uneg.uneg_id, uneg.uneg_nmunidadenegocio, " + "loca.loca_cdcentrocusto "); retorno.put("orderBy", "order by greg.greg_id, uneg.uneg_id, loca.loca_cdcentrocusto "); break; //Estado por Localidade case 5: retorno.put("gerenciaRegionalID", "greg.greg_id "); retorno.put("gerenciaRegional", "greg.greg_nmregional "); retorno.put("unidadeNegocioID", "uneg.uneg_id "); retorno.put("unidadeNegocio", "uneg.uneg_nmunidadenegocio "); retorno.put("localidadeID", "loca.loca_id "); retorno.put("localidade", "loca.loca_nmlocalidade "); retorno.put("join", "right join cadastro.g_localidade loca on (loca.loca_id = r.loca_id) "); retorno.put("join2","inner join cadastro.g_gerencia_regional greg on (greg.greg_id = loca.greg_id) " + "inner join cadastro.g_unidade_negocio uneg on (uneg.uneg_id = loca.uneg_id)" ); retorno.put("tipo", "totalizadorPorEstado"); retorno.put("where", "where loca.loca_id != 0 "); retorno.put("groupBy", "group by greg.greg_id, greg.greg_nmregional, " + "uneg.uneg_id, uneg.uneg_nmunidadenegocio, " + "loca.loca_id, loca.loca_nmlocalidade "); retorno.put("orderBy", "order by greg.greg_id, uneg.uneg_id, loca.loca_id "); break; //Gerencia Regional case 6: retorno.put("gerenciaRegionalID", "greg.greg_id "); retorno.put("gerenciaRegional", "greg.greg_nmregional "); retorno.put("join", "inner join cadastro.g_gerencia_regional greg on (greg.greg_id = r.greg_id) "); retorno.put("where", "and greg.greg_id = " + filtro.getGerenciaRegional()); retorno.put("groupBy", "group by greg.greg_id, greg.greg_nmregional "); break; //Unidade de Negocio case 10: retorno.put("unidadeNegocioID", "uneg.uneg_id "); retorno.put("unidadeNegocio", "uneg.uneg_nmunidadenegocio "); retorno.put("join", "inner join cadastro.g_unidade_negocio uneg on (uneg.uneg_id = r.uneg_id) "); retorno.put("where", "and uneg.uneg_id = " + filtro.getUnidadeNegocio() + " "); retorno.put("groupBy", "group by uneg.uneg_id, uneg.uneg_nmunidadenegocio "); break; //Centro Custo/Localidade case 16: retorno.put("localidadeID", "localidade.loca_cdcentrocusto "); retorno.put("join", "inner join cadastro.g_localidade localidade on (localidade.loca_id = r.loca_id) "); retorno.put("where", "and localidade.loca_id = " + filtro.getLocalidade() + " "); retorno.put("groupBy", "group by localidade.loca_cdcentrocusto "); retorno.put("orderBy", "order by localidade.loca_cdcentrocusto "); break; //Localidade case 17: retorno.put("localidadeID", "loca.loca_id "); retorno.put("localidade", "loca.loca_nmlocalidade "); retorno.put("join", "inner join cadastro.g_localidade loca on (loca.loca_id = r.loca_id) "); retorno.put("where", "and loca.loca_id = " + filtro.getLocalidade() + " "); retorno.put("groupBy", "group by loca.loca_id, loca.loca_nmlocalidade "); break; //Municipio case 19: retorno.put("municipioID", "muni.muni_id "); retorno.put("municipio", "muni.muni_nmmunicipio "); retorno.put("join", "inner join cadastro.g_setor_comercial sc on (sc.stcm_id = r.stcm_id) " + "inner join cadastro.g_municipio muni on (sc.muni_id = muni.muni_id) "); retorno.put("where", "and sc.muni_id = " + filtro.getMunicipio()); retorno.put("groupBy", "group by muni.muni_id, muni.muni_nmmunicipio "); retorno.put("orderBy", "order by muni.muni_id, muni.muni_nmmunicipio "); break; } return retorno; } /** * [UC1003] - Emitir Relatorio Demonstrativo Sintetico das Ligacoes * * @author Daniel Alves * @date 12/04/2010 * * @param FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper * @throws ErroRepositorioException */ public Collection<Object> pesquisarResumoLigacaoEconomiaRelatorioDemonstrativo(FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); Collection retorno = null; String consulta = null; Map query = totalizadorRelatorioDemonstrativoSinteticoLigacoes(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Municipio/ Localidade String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String join = (String)query.get("join"); String join2 = (String)query.get("join2"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); String tipo = (String)query.get("tipo"); try { consulta = "SELECT " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) THEN rele_qtligacoes ELSE 0 END) AS a_movLig_existentes, " + "sum(CASE WHEN r.last_id in (3, 4) THEN rele_qtligacoes ELSE 0 END) AS a_movLig_funcionando, " + "sum(CASE WHEN r.last_id = 5 THEN rele_qtligacoes ELSE 0 END) AS a_movLig_cortadas, " + "sum(CASE WHEN r.last_id in (6,7,8) THEN rele_qtligacoes ELSE 0 END) AS a_movLig_suprimidas, " + "sum(CASE WHEN r.last_id = 5 THEN coalesce(rele_qtligacoescortesmes, 0) ELSE 0 END) AS a_movLig_corteMes, " + "sum(CASE WHEN r.last_id in (3, 4) THEN rele_qtligacoesnovasagua ELSE 0 END) AS a_movLig_ligacaoMes, " + "sum(CASE WHEN r.last_id in (3, 4) THEN coalesce(rele_qtligacoesreligadasmes, 0) ELSE 0 END) AS a_movLig_religacaoMes, " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) THEN rele_qteconomias ELSE 0 END) AS a_eco_existentes, " + "sum(CASE WHEN r.last_id in (3, 4) THEN rele_qteconomias ELSE 0 END) AS a_eco_funcionando, " + "sum(CASE WHEN r.last_id = 5 THEN rele_qteconomias ELSE 0 END) AS a_eco_cortadas, " + "sum(CASE WHEN r.last_id in (6, 7, 8) THEN rele_qteconomias ELSE 0 END) AS a_eco_suprimidas, " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) and r.catg_id = 1 THEN rele_qteconomias ELSE 0 END) AS a_eco_ecoExist_residencial, " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) and r.catg_id = 2 THEN rele_qteconomias ELSE 0 END) AS a_eco_ecoExist_comercial, " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) and r.catg_id = 4 THEN rele_qteconomias ELSE 0 END) AS a_eco_ecoExist_publica, " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) and r.catg_id = 3 THEN rele_qteconomias ELSE 0 END) AS a_eco_ecoExist_industrial, " + "sum(CASE WHEN r.last_id in (3, 4) and r.catg_id = 1 THEN rele_qteconomias ELSE 0 END) AS a_eco_ecoFunc_residencial, " + "sum(CASE WHEN r.last_id in (3, 4) and r.catg_id = 2 THEN rele_qteconomias ELSE 0 END) AS a_eco_ecoFunc_comercial, " + "sum(CASE WHEN r.last_id in (3, 4) and r.catg_id = 4 THEN rele_qteconomias ELSE 0 END) AS a_eco_ecoFunc_publica, " + "sum(CASE WHEN r.last_id in (3, 4) and r.catg_id = 3 THEN rele_qteconomias ELSE 0 END) AS a_eco_ecoFunc_industrial, " + "sum(CASE WHEN r.last_id in (3, 4) and r.rele_ichidrometro = 1 THEN rele_qtligacoes ELSE 0 END) AS a_hid_funcionando, " + "sum(CASE WHEN r.last_id = 5 and r.rele_ichidrometro = 1 THEN rele_qtligacoes ELSE 0 END) AS a_hid_cortados, " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) and r.lest_id = 3 THEN rele_qtligacoes ELSE 0 END) AS e_movLig_existente, " + "sum(CASE WHEN r.last_id in (3, 4) and r.lest_id = 3 THEN rele_qtligacoes ELSE 0 END) AS e_movLig_funcionando, " + "sum(CASE WHEN r.last_id = 5 and r.lest_id = 3 THEN rele_qtligacoes ELSE 0 END) AS e_movLig_cortadas, " + "sum(CASE WHEN r.last_id in (6, 7, 8) and r.lest_id = 3 THEN rele_qtligacoes ELSE 0 END) AS e_movLig_suprimidas, " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) and r.lest_id = 3 THEN rele_qteconomias ELSE 0 END) AS e_eco_existentes, " + "sum(CASE WHEN r.last_id in (3, 4) and r.lest_id = 3 THEN rele_qteconomias ELSE 0 END) AS e_eco_funcionando, " + "sum(CASE WHEN r.last_id = 5 and r.lest_id = 3 THEN rele_qteconomias ELSE 0 END) AS e_eco_cortadas, " + "sum(CASE WHEN r.last_id in (6, 7, 8) and r.lest_id = 3 THEN rele_qteconomias ELSE 0 END) AS e_eco_supridas, " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) and r.lest_id = 3 and r.catg_id = 1 THEN rele_qteconomias ELSE 0 END) AS e_eco_ecoExist_residencial, " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) and r.lest_id = 3 and r.catg_id = 2 THEN rele_qteconomias ELSE 0 END) AS e_eco_ecoExist_comercial, " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) and r.lest_id = 3 and r.catg_id = 4 THEN rele_qteconomias ELSE 0 END) AS e_eco_ecoExist_publica, " + "sum(CASE WHEN r.last_id in (3, 4, 5, 6, 7, 8) and r.lest_id = 3 and r.catg_id = 3 THEN rele_qteconomias ELSE 0 END) AS e_eco_ecoExist_industrial, " + "sum(CASE WHEN r.last_id in (3, 4) and r.lest_id = 3 and r.catg_id = 1 THEN rele_qteconomias ELSE 0 END) AS e_eco_ecoFunc_residencial, " + "sum(CASE WHEN r.last_id in (3, 4) and r.lest_id = 3 and r.catg_id = 2 THEN rele_qteconomias ELSE 0 END) AS e_eco_ecoFunc_comercial, " + "sum(CASE WHEN r.last_id in (3, 4) and r.lest_id = 3 and r.catg_id = 4 THEN rele_qteconomias ELSE 0 END) AS e_eco_ecoFunc_publica, " + "sum(CASE WHEN r.last_id in (3, 4) and r.lest_id = 3 and r.catg_id = 3 THEN rele_qteconomias ELSE 0 END) AS e_eco_ecoFunc_industrial, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from " + "cadastro.un_res_lig_econ r " + join; if(tipo != null && tipo.equals("totalizadorPorEstado")){ consulta += "and r.rele_amreferencia = :referencia " + join2; }else{ consulta += "where r.rele_amreferencia = :referencia "; } consulta += where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("a_movLig_existentes", Hibernate.LONG) .addScalar("a_movLig_funcionando", Hibernate.LONG) .addScalar("a_movLig_cortadas", Hibernate.LONG) .addScalar("a_movLig_suprimidas", Hibernate.LONG) .addScalar("a_movLig_corteMes", Hibernate.LONG) .addScalar("a_movLig_ligacaoMes", Hibernate.LONG) .addScalar("a_movLig_religacaoMes", Hibernate.LONG) .addScalar("a_eco_existentes", Hibernate.LONG) .addScalar("a_eco_funcionando", Hibernate.LONG) .addScalar("a_eco_cortadas", Hibernate.LONG) .addScalar("a_eco_suprimidas", Hibernate.LONG) .addScalar("a_eco_ecoExist_residencial", Hibernate.LONG) .addScalar("a_eco_ecoExist_comercial", Hibernate.LONG) .addScalar("a_eco_ecoExist_publica", Hibernate.LONG) .addScalar("a_eco_ecoExist_industrial", Hibernate.LONG) .addScalar("a_eco_ecoFunc_residencial", Hibernate.LONG) .addScalar("a_eco_ecoFunc_comercial", Hibernate.LONG) .addScalar("a_eco_ecoFunc_publica", Hibernate.LONG) .addScalar("a_eco_ecoFunc_industrial", Hibernate.LONG) .addScalar("a_hid_funcionando", Hibernate.LONG) .addScalar("a_hid_cortados", Hibernate.LONG) .addScalar("e_movLig_existente", Hibernate.LONG) .addScalar("e_movLig_funcionando", Hibernate.LONG) .addScalar("e_movLig_cortadas", Hibernate.LONG) .addScalar("e_movLig_suprimidas", Hibernate.LONG) .addScalar("e_eco_existentes", Hibernate.LONG) .addScalar("e_eco_funcionando", Hibernate.LONG) .addScalar("e_eco_cortadas", Hibernate.LONG) .addScalar("e_eco_supridas", Hibernate.LONG) .addScalar("e_eco_ecoExist_residencial", Hibernate.LONG) .addScalar("e_eco_ecoExist_comercial", Hibernate.LONG) .addScalar("e_eco_ecoExist_publica", Hibernate.LONG) .addScalar("e_eco_ecoExist_industrial", Hibernate.LONG) .addScalar("e_eco_ecoFunc_residencial", Hibernate.LONG) .addScalar("e_eco_ecoFunc_comercial", Hibernate.LONG) .addScalar("e_eco_ecoFunc_publica", Hibernate.LONG) .addScalar("e_eco_ecoFunc_industrial", Hibernate.LONG) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .setInteger("referencia",filtro.getAnoMesReferencia()).list(); } 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; } /** * [UC1003] - Emitir Relatorio Demonstrativo Sintetico das Ligacoes * * @author Daniel Alves * @date 12/04/2010 * * @param FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper * @throws ErroRepositorioException */ public Collection<Object> pesquisarResumoConsumoAguaRelatorioDemonstrativo(FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); Collection retorno = null; String consulta = null; Map query = totalizadorRelatorioDemonstrativoSinteticoLigacoes(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Municipio/ Localidade String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String join = (String)query.get("join"); String join2 = (String)query.get("join2"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); String tipo = (String)query.get("tipo"); try { consulta = "SELECT " + "sum(CASE WHEN r.reca_voconsumofaturado is not null THEN coalesce(r.reca_voconsumofaturado, 0) ELSE 0 END) AS a_cons_faturado, " + "sum(CASE WHEN r.reca_ichidrometro = 2 THEN coalesce(r.reca_voconsumofaturado, 0) ELSE 0 END) AS a_cons_estNHidrometrado, " + "sum(CASE WHEN r.reca_ichidrometro = 1 and r.cstp_id != 1 THEN coalesce(r.reca_voconsumofaturado, 0) ELSE 0 END) AS a_cons_estHidrometrado, " + "sum(CASE WHEN r.reca_ichidrometro = 1 and r.cstp_id = 1 THEN coalesce(r.reca_voconsumofaturado, 0) ELSE 0 END) AS a_cons_realHidrometrado, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from " + "micromedicao.un_resumo_consumo_agua r " + join; if(tipo != null && tipo.equals("totalizadorPorEstado")){ consulta += "and r.reca_amreferencia = :referencia " + join2; }else{ consulta += "where r.reca_amreferencia = :referencia "; } consulta += where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("a_cons_faturado", Hibernate.LONG) .addScalar("a_cons_estNHidrometrado", Hibernate.LONG) .addScalar("a_cons_estHidrometrado", Hibernate.LONG) .addScalar("a_cons_realHidrometrado", Hibernate.LONG) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .setInteger("referencia",filtro.getAnoMesReferencia()).list(); } 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; } /** * [UC1003] - Emitir Relatorio Demonstrativo Sintetico das Ligacoes * * @author Daniel Alves * @date 12/04/2010 * * @param FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper * @throws ErroRepositorioException */ public Collection<Object> pesquisaResumoLeituraAnormalidadeRelatorioDemonstrativo(FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); Collection retorno = null; String consulta = null; Map query = totalizadorRelatorioDemonstrativoSinteticoLigacoes(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Municipio/ Localidade String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String join = (String)query.get("join"); String join2 = (String)query.get("join2"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); String tipo = (String)query.get("tipo"); try { consulta = "SELECT " + "sum(CASE WHEN r.relt_qtleituras is not null THEN r.relt_qtleituras ELSE 0 END) AS a_hid_lidos, " + "sum(CASE WHEN r.ltan_idanormalidadeinformada = 30 THEN r.relt_qtleituras ELSE 0 END) AS a_hid_parados, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from " + "micromedicao.un_res_lt_anorm r " + join; if(tipo != null && tipo.equals("totalizadorPorEstado")){ consulta += "and r.relt_amreferencia = :referencia " + join2; }else{ consulta += "where r.relt_amreferencia = :referencia "; } consulta += where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("a_hid_lidos", Hibernate.LONG) .addScalar("a_hid_parados", Hibernate.LONG) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .setInteger("referencia",filtro.getAnoMesReferencia()).list(); } 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; } /** * [UC1003] - Emitir Relatorio Demonstrativo Sintetico das Ligacoes * * @author Daniel Alves * @date 12/04/2010 * * @param FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper * @throws ErroRepositorioException */ public Collection<Object> pesquisaResumoInstalacaoHidrometroRelatorioDemonstrativo(FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); Collection retorno = null; String consulta = null; Map query = totalizadorRelatorioDemonstrativoSinteticoLigacoes(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Municipio/ Localidade String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String join = (String)query.get("join"); String join2 = (String)query.get("join2"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); String tipo = (String)query.get("tipo"); try { consulta = "SELECT " + "sum(CASE WHEN r.reih_qthidr_instalado_ramal is not null THEN r.reih_qthidr_instalado_ramal ELSE 0 END) AS a_hid_instalados, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from " + "micromedicao.un_res_ins_hidr r " + join; if(tipo != null && tipo.equals("totalizadorPorEstado")){ consulta += "and r.reih_amreferencia = :referencia " + join2; }else{ consulta += "where r.reih_amreferencia = :referencia "; } consulta += where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("a_hid_instalados", Hibernate.LONG) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .setInteger("referencia",filtro.getAnoMesReferencia()).list(); } 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; } /** * Pesquisa todas as tabelas de resumo para o relatorio * * [UC1003] - Gerar Relatorio Demonstrativo Sintetico das Ligacoes * * @author Daniel Alves * @date 16/04/2010 * * @return anoMesReferencia * * @throws ErroRepositorioException */ public boolean existeDadosUnResumoParaRelatorioDemonstrativoSintLigacoes(int anoMesReferencia) throws ErroRepositorioException { boolean existeDados = true; Integer retorno = null; Session session = HibernateUtil.getSessionGerencial(); try{ String consulta = "SELECT count(*) " + "FROM UnResumoLigacaoEconomia resumo " + "WHERE resumo.referencia = :referencia "; retorno = (Integer) session.createQuery(consulta). setInteger("referencia", anoMesReferencia). setMaxResults(1). uniqueResult(); if(retorno == null || retorno == 0){ existeDados = false; } if(!existeDados){ consulta = "SELECT count(*) " + "FROM UnResumoConsumoAgua resumo " + "WHERE resumo.referencia = :referencia "; retorno = (Integer) session.createQuery(consulta). setInteger("referencia", anoMesReferencia). setMaxResults(1). uniqueResult(); if(retorno == null || retorno == 0){ existeDados = false; } if(!existeDados){ consulta = "SELECT count(*) " + "FROM UnResumoLeituraAnormalidade resumo " + "WHERE resumo.referencia = :referencia "; retorno = (Integer) session.createQuery(consulta). setInteger("referencia", anoMesReferencia). //setMaxResults(1). uniqueResult(); if(retorno == null || retorno == 0){ existeDados = false; } if(!existeDados){ consulta = "SELECT count(*) " + "FROM UnResumoInstalacaoHidrometro resumo " + "WHERE resumo.referencia = :referencia "; retorno = (Integer) session.createQuery(consulta). setInteger("referencia", anoMesReferencia). setMaxResults(1). uniqueResult(); if(retorno == null || retorno == 0){ existeDados = false; } } } } } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return existeDados; } /** * Gerar Resumo do Faturamento Por Ano * * Pesquisamos as contas que ser�o usadas no resumo de contas Por Ano * * @author Fernando Fontelles * @date 25/05/2010 * * @param idSetorComercial * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarContasResumoFaturamentoPorAno(Integer idSetor) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; try { consulta = "select " + // 0 " gere.id, " + // 1 " unNe.id, " + // 2 " loca.localidade.id, " + // 3 " loca.id, " + // 4 " seCo.id, " + // 5 " cnta.codigoSetorComercial, " + // 6 // " rot.id, " // + // 7 // " rot.codigo, " // + // 8 // " quad.id, " // + // // 9 // " quad.numeroQuadra, " // + // 6 " imPe.id, " + // 7 " las.id, " + // 8 " les.id, " + // 9 " lap.id, " + // 10 " lep.id, " + // 11 " conTar.id, " + // 12 " fatGru.id, " + // 17 //" empr.id, " //+ // 13 " cnta.valorAgua, " + // 14 " cnta.valorEsgoto, " + // 15 " imo.quantidadeEconomias, " + // 16 " imo.id, " + // 17 " cnta.consumoAgua, " + // 18 " cnta.debitos, " + // 19 " cnta.valorImposto, " + // 20 " cnta.valorCreditos, " + // 21 " cnta.id, " + // 22 " cnta.consumoEsgoto " + "from " + " Conta cnta " + " left join cnta.localidade loca " + " left join loca.localidade elo " + " left join loca.gerenciaRegional gere " + " left join loca.unidadeNegocio unNe " // + " left join cnta.quadraConta quad " // + " left join quad.setorComercial seCo " // + " left join quad.rota rot " + " left join cnta.imovelPerfil imPe " + " left join cnta.ligacaoAguaSituacao las " + " left join cnta.ligacaoEsgotoSituacao les " + " left join cnta.imovel imo " + " left join imo.ligacaoAgua liAg " + " left join imo.setorComercial seCo " + " left join liAg.ligacaoAguaPerfil lap " + " left join imo.ligacaoEsgoto liEs " + " left join liEs.ligacaoEsgotoPerfil lep " + " left join cnta.consumoTarifa conTar " + " left join cnta.faturamentoGrupo fatGru, " //+ " left join rot.faturamentoGrupo fatGru " //+ " left join rot.empresa empr, " + " SistemaParametro sp " + "where " + " sp.anoMesFaturamento = cnta.referencia and " + " ( cnta.debitoCreditoSituacaoAtual = 0 or cnta.debitoCreditoSituacaoAnterior = 0 ) and " + " seCo.id = :idSetor"; retorno = session.createQuery(consulta).setInteger("idSetor", idSetor).list(); } 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; } /** * Gerar Resumo do Faturamento Por Ano * * Inserir os dados na tabela un_resumo_faturamento_ref_2010 * * @author Fernando Fontelles Filho * @date 25/05/2010 * * @param helper Helper de agrupamento dos dados * @throws ErroRepositorioException */ public void inserirResumoFaturamentoPorAno( ResumoFaturamentoPorAnoHelper helper ) throws ErroRepositorioException{ Connection con = null; Statement stmt = null; Session session = HibernateUtil.getSessionGerencial(); String insert; try { con = session.connection(); stmt = con.createStatement(); insert = "INSERT INTO \n" + " faturamento.un_res_fat_ref_2010 ( \n" + // ID " refa_id, \n" + // 0 " refa_amreferencia, \n" + // 1 " greg_id,\n" + // 2 " uneg_id,\n" + // 3 " loca_id,\n" + // 4 " loca_cdelo,\n" + // 5 " stcm_id,\n" + // 6 // " rota_id,\n" + // // 7 // " qdra_id,\n" + // 6 " refa_cdsetorcomercial,\n" + // 9 // " refa_nnquadra,\n" + // 7 " iper_id,\n" + // 8 " last_id,\n" + // 9 " lest_id,\n" + // 10 " catg_id,\n" + // 11 " scat_id,\n" + // 12 " epod_id,\n" + // 13 " cltp_id,\n" + // 14 " lapf_id,\n" + // 15 " lepf_id,\n" + // 16 " refa_vofaturadoagua,\n" + // 17 " refa_vofaturadoesgoto,\n" + // 18 " refa_vlfaturadoagua,\n" + // 19 " refa_vlfaturadoesgoto,\n" + // 20 " refa_qtcontasemitidas,\n" + // 21 " crog_id,\n" + // 22 " lict_id,\n" + // 23 " dotp_id,\n" + // 24 " fntp_id,\n" + // 25 " refa_vldocumentosfaturadoscred,\n" + // 26 " refa_qtdocumentosfaturadoscredito,\n" + // 27 " refa_vldocumentosfaturadosoutr,\n" + // 28 " refa_qtdocumentosfaturadosoutros,\n" + // 32 // " empr_id,\n" + // 29 " refa_vlfinanincluido,\n" + // 30 " refa_vlfinancancelado,\n" + // 31 " refa_qteconomiasfaturadas,\n" + // 32 " dbtp_id,\n" + // 33 " crti_id,\n" + // 34 " refa_ichidrometro,\n" + // 35 " imtp_id,\n" + // 36 " refa_vlimposto,\n" + // 37 " cstf_id,\n" + // 38 " ftgr_id\n" + " ) " + // 43 // " refa_cdrota )\n" + " VALUES (\n" + Util.obterNextValSequence("faturamento.seq_un_res_fat_ref_2007") + ", " + // 0 helper.getAnoMesFaturamento() + ", \n" + // 1 helper.getIdGerenciaRegional() + ", \n" + // 2 helper.getIdUnidadeNegocio() + ", \n" + // 3 helper.getIdLocalidade() + ", \n" + // 4 helper.getCdElo() + ", \n" + // 5 helper.getIdSetorComercial() + ", \n" + // 6 // helper.getIdRota() + ", \n" + // // 7 // helper.getIdQuadra() + ", \n" + // 6 helper.getCdSetorComercial() + ", \n" + // 9 // helper.getNmQuadra() + ", \n" + // 7 helper.getIdPerfilImovel() + ", \n" + // 8 helper.getSituacaoLigacaoAgua() + ", \n" + // 9 helper.getSituacaoLigacaoEsgoto() + ", \n" + // 10 helper.getIdCategoria() + ", \n" + // 11 helper.getIdSubcategoria() + ", \n" + // 12 helper.getIdEsferaPoder() + ", \n" + // 13 helper.getIdTipoCliente() + ", \n" + // 14 helper.getIdPerfilLigacaoAgua() + ", \n" + // 15 helper.getIdPerfilLigacaoEsgoto() + ", \n" + // 16 helper.getVolumeAgua() + ", \n" + // 17 helper.getVolumeEsgoto() + ", \n" + // 18 helper.getValorAgua() + ", \n" + // 19 helper.getValorEsgoto() + ", \n" + // 20 helper.getQuantidadeContasEmitidas() + ", \n" + // 21 helper.getIdOrigemCredito() + ", \n" + // 22 helper.getIdItemLancamentoContabil() + ", \n" + // 23 helper.getIdTipoDocumento() + ", \n" + // 24 helper.getIdTipoFinanciamento() + ", \n" + // 25 helper.getValorCreditoRealizado() + ", \n" + // 26 helper.getQuantidadeDocumentosFaturadosCredito() + ", \n" + // 27 helper.getValorDocumentosFaturadosOutros() + ", \n" + // 28 helper.getQuantidadeDocumentosFaturadosOutros() + ", \n" + // 32 // helper.getIdEmpresa() + ", \n" + // 29 helper.getValorFinanciadoIncluido() + ", \n" + // 30 helper.getValorFinanciadoCancelado() + ", \n" + // 31 helper.getQuantidadeEconomiasFaturadas() + ", \n" + // 32 helper.getIdTipoDebito() + ", \n" + // 33 helper.getIdTipoCredito() + ", \n" + // 34 helper.getIndHidrometro() + ", \n" + // 35 helper.getIdTipoImposto() + ", \n" + // 36 helper.getValorImposto() + ", \n" + // 37 helper.getIdTarifaConsumo() + ", \n" + // 38 helper.getIdGrupoFaturamento() + ") \n" // 43 // helper.getCdRota() + ") \n" ; stmt.executeUpdate(insert); } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } catch (SQLException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Insert"); } finally { // fecha a sess�o HibernateUtil.closeSession(session); try { stmt.close(); con.close(); } catch (SQLException e) { System.out.println("Erro ao fechar conex�es"); } } } /** * Gerar Resumo do Faturamento Por Ano * * Pesquisamos as guias que ser�o usadas no resumo de guias de pagamento * * @author Fernando Fontelles * @date 25/05/2010 * * @param idSetorComercial * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarGuiasResumoFaturamentoPorAno(Integer idSetor) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; String filtrarPor = null; if ( idSetor == 99999 ){ filtrarPor = " imo is null "; } else { filtrarPor = " setCom.id = :idSetor "; } try { consulta = "select " + // 0 " geRe.id, " + // 1 " unNe.id, " + // 2 " elo.id, " + // 3 " loca.id, " + // 4 " setCom.id, " + // 5 " setCom.codigo, " + // 6 // " rot.id, " + // // 7 // " rot.codigo, " + // // 8 // " qua.id, " + // // 9 // " qua.numeroQuadra, " + // 6 " case when ( imo is not null ) then imoPer.id else 5 end, " + // 7 " case when ( imo is not null ) then las.id else 1 end, " + // 8 " case when ( imo is not null ) then les.id else 1 end, " + // 9 " case when ( imo is not null ) then pla.id else 0 end, " + // 10 " case when ( imo is not null ) then ple.id else 0 end, " + // 11 " case when ( imo is not null ) then conTar.id else 0 end, " + // 12 " lic.id, " + // 13 " finTip.id, " + // 14 " debTip.id, " + // 15 " imo.id, " + // 16 " esfPod.id, " + // 17 " cliTip.id, " + // 18 " 0, " + //faturamentoGrupo // // 23 // " empr.id, " + // 19 " guia.valorDebito " + "from " + " GuiaPagamento guia " + " left join guia.localidade loca " + " left join loca.gerenciaRegional geRe " + " left join loca.unidadeNegocio unNe " + " left join loca.localidade elo " + " left join guia.imovel imo " + " left join imo.setorComercial setCom " + // " left join imo.quadra qua " + // " left join qua.rota rot " + " left join imo.imovelPerfil imoPer " + " left join imo.ligacaoAguaSituacao las " + " left join imo.ligacaoEsgotoSituacao les " + " left join imo.ligacaoAgua la " + " left join la.ligacaoAguaPerfil pla " + " left join imo.ligacaoAgua le " + " left join la.ligacaoAguaPerfil ple " + " left join imo.consumoTarifa conTar " + " left join guia.lancamentoItemContabil lic " + " left join guia.financiamentoTipo finTip " + " left join guia.debitoTipo debTip " + " left join guia.cliente clie " + " left join clie.clienteTipo cliTip " + " left join cliTip.esferaPoder esfPod, " + // " left join rot.faturamentoGrupo fatGru " + // " left join rot.empresa empr, " + " SistemaParametro sp " + "where " + " guia.anoMesReferenciaContabil = sp.anoMesFaturamento and " + " (guia.debitoCreditoSituacaoAtual.id = 0 or guia.debitoCreditoSituacaoAnterior.id = 0) and " + filtrarPor + "order by " + " guia.id "; if ( idSetor == 99999 ){ retorno = session.createQuery(consulta).list(); } else { retorno = session.createQuery(consulta).setInteger("idSetor", idSetor).list(); } } 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; } /** * Gerar Resumo do Faturamento Por Ano * * Pesquisamos os debitos cobrados a serem usados no resumo de financiamento * * @author Fernando Fontelles * @date 26/05/2010 * * @param idSetorComercial * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarFinanciamentoPorAno(Integer idSetor) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; try { consulta = "select " + // 0 " ger.id, " + // 1 " unNe.id, " + // 2 " elo.id, " + // 3 " loc.id, " + // 4 " setCom.id, " + // 5 " setCom.codigo, " + // 6 // " rot.id, " + // // 7 // " rot.codigo, " + // // 8 // " qua.id, " + // // 9 // " qua.numeroQuadra, " + // 6 " imoPer.id, " + // 7 " las.id, " + // 8 " les.id, " + // 9 " lap.id, " + // 10 " lep.id, " + // 11 " conTar.id, " + // 12 " 0, " +//faturamentoGrupo // 17 // " empLei.id, " + // 13 " lic.id, " + // 14 " debTip.id, " + // 15 " imo.id, " + // 16 " dac.valorDebito, " + // 17 " dac.debitoCreditoSituacaoAtual.id, " + // 18 " dac.debitoCreditoSituacaoAnterior.id, " + // 19 " dac.numeroPrestacaoDebito, " + // 20 " dac.numeroPrestacaoCobradas " + "from " + " DebitoACobrar dac " + " left join dac.localidade loc " + " left join loc.gerenciaRegional ger " + " left join loc.unidadeNegocio unNe " + " left join loc.localidade elo " + " left join dac.imovel imo " + " left join imo.setorComercial setCom " + // " left join dac.quadra qua " + // " left join qua.rota rot " + " left join imo.imovelPerfil imoPer " + " left join imo.ligacaoAguaSituacao las " + " left join imo.ligacaoEsgotoSituacao les " + " left join imo.ligacaoAgua la " + " left join la.ligacaoAguaPerfil lap " + " left join imo.ligacaoEsgoto le " + " left join le.ligacaoEsgotoPerfil lep " + " left join imo.consumoTarifa conTar " + // " left join rot.faturamentoGrupo fatGru " + // " left join rot.empresa empLei " + " left join dac.lancamentoItemContabil lic " + " left join dac.debitoTipo debTip " + " left join dac.financiamentoTipo finTip, " + " SistemaParametro sp " + "where " + " dac.anoMesReferenciaContabil = sp.anoMesFaturamento and " + " finTip.id = 1 and " + " setCom.id = :idSetor"; retorno = session.createQuery(consulta).setInteger("idSetor", idSetor).list(); } 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; } /** * Pesquisa todas as tabelas de resumo para o "relatorio" * * [UC1017] - Gerar Resumo com Dados para o CAS * * @author Daniel Alves * @date 03/05/2010 * * @return anoMesReferencia * * @throws ErroRepositorioException */ public boolean existeDadosUnResumoParaResumoDadosCas(int anoMesReferencia) throws ErroRepositorioException { boolean existeDados = false; Integer retorno = null; Session session = HibernateUtil.getSessionGerencial(); try{ String consulta = "SELECT count(*) " + "FROM UnResumoLigacaoEconomia resumo " + "WHERE resumo.referencia = :referencia "; retorno = (Integer) session.createQuery(consulta). setInteger("referencia", anoMesReferencia). setMaxResults(1). uniqueResult(); if(retorno != null && retorno != 0){ existeDados = true; } if(!existeDados){ consulta = "SELECT count(*) " + "FROM UnResumoConsumoAgua resumo " + "WHERE resumo.referencia = :referencia "; retorno = (Integer) session.createQuery(consulta). setInteger("referencia", anoMesReferencia). setMaxResults(1). uniqueResult(); if(retorno != null && retorno != 0){ existeDados = true; } if(!existeDados){ consulta = "SELECT count(*) " + "FROM UnResumoColetaEsgoto resumo " + "WHERE resumo.referencia = :referencia "; retorno = (Integer) session.createQuery(consulta). setInteger("referencia", anoMesReferencia). setMaxResults(1). uniqueResult(); if(retorno != null && retorno != 0){ existeDados = true; } if(!existeDados){ consulta = "SELECT count(*) " + "FROM UnResumoFaturamento resumo " + "WHERE resumo.referencia = :referencia "; retorno = (Integer) session.createQuery(consulta). setInteger("referencia", anoMesReferencia). setMaxResults(1). uniqueResult(); if(retorno != null && retorno != 0){ existeDados = true; } if(!existeDados){ consulta = "SELECT count(*) " + "FROM UnResumoArrecadacao resumo " + "WHERE resumo.anoMesReferencia = :referencia "; retorno = (Integer) session.createQuery(consulta). setInteger("referencia", anoMesReferencia). setMaxResults(1). uniqueResult(); if(retorno != null && retorno != 0){ existeDados = true; } if(!existeDados){ consulta = "SELECT count(*) " + "from UnResumoPendencia resumo " + "WHERE resumo.anoMesReferencia = :referencia "; retorno = (Integer) session.createQuery(consulta). setInteger("referencia", anoMesReferencia). setMaxResults(1). uniqueResult(); if(retorno != null && retorno != 0){ existeDados = true; } } } } } } } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return existeDados; } /** * Cria filtro de acordo com a opcao de totaliza��o * * [UC1017] - Gerar Resumo com Dados para o CAS * * @author Daniel Alves * @date 04/05/2010 * * @return map */ public Map totalizadorResumoDadosCas(FiltrarResumoDadosCasHelper filtro){ Map retorno = new HashMap(); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Municipio/ Localidade retorno.put("gerenciaRegionalID", "sum(0) "); retorno.put("gerenciaRegional", "sum(0) "); retorno.put("unidadeNegocioID", "sum(0) "); retorno.put("unidadeNegocio", "sum(0) "); retorno.put("localidadeID", "sum(0) "); retorno.put("localidade", "sum(0) "); retorno.put("municipioID", "sum(0) "); retorno.put("municipio", "sum(0) "); retorno.put("join", ""); retorno.put("joinComercial",""); retorno.put("where", ""); retorno.put("orderBy", ""); retorno.put("groupBy", ""); int opcaoTotalozacao = filtro.getOpcaoTotalizacao(); switch(opcaoTotalozacao){ //Estado por Gerencia Regional case 2: retorno.put("gerenciaRegionalID", "greg.greg_id "); retorno.put("gerenciaRegional", "greg.greg_nmregional "); retorno.put("join", "right join cadastro.g_gerencia_regional greg on (greg.greg_id = r.greg_id) "); retorno.put("joinComercial", "right join cadastro.gerencia_regional greg on (greg.greg_id = r.greg_id) "); retorno.put("where", "and greg.greg_id != 0 "); retorno.put("tipo", "totalizadorPorEstado"); retorno.put("groupBy", "group by greg.greg_id, greg.greg_nmregional "); retorno.put("orderBy", "order by greg.greg_id "); break; //Estado por Unidade de Negocio case 3: retorno.put("unidadeNegocioID", "uneg.uneg_id "); retorno.put("unidadeNegocio", "uneg.uneg_nmunidadenegocio "); retorno.put("join", "right join cadastro.g_unidade_negocio uneg on (uneg.uneg_id = r.uneg_id) "); retorno.put("joinComercial", "right join cadastro.unidade_negocio uneg on (uneg.uneg_id = r.uneg_id) "); retorno.put("where", "and uneg.uneg_id != 0 "); retorno.put("tipo", "totalizadorPorEstado"); retorno.put("groupBy", "group by uneg.uneg_id, uneg.uneg_nmunidadenegocio "); retorno.put("orderBy", "order by uneg.uneg_id "); break; //Estado por Munic�pio case 4: retorno.put("municipioID", "muni.muni_id "); retorno.put("municipio", "muni.muni_nmmunicipio "); retorno.put("join", "right join cadastro.localidade loca on (loca.loca_id = r.loca_id) " + "right join cadastro.municipio muni on (loca.muni_idprincipal = muni.muni_id) "); retorno.put("joinComercial", "right join cadastro.localidade loc on (loc.loca_id = r.loca_id) " + "right join cadastro.municipio muni on (loc.muni_idprincipal = muni.muni_id) "); retorno.put("where", "and muni.muni_id != 0 "); retorno.put("tipo", "totalizadorPorEstado"); retorno.put("groupBy", "group by muni.muni_id, muni.muni_nmmunicipio "); retorno.put("orderBy", "order by muni.muni_id "); break; //Gerencia Regional case 6: retorno.put("gerenciaRegionalID", "greg.greg_id "); retorno.put("gerenciaRegional", "greg.greg_nmregional "); retorno.put("join", "inner join cadastro.g_gerencia_regional greg on (greg.greg_id = r.greg_id) "); retorno.put("joinComercial", "inner join cadastro.gerencia_regional greg on (greg.greg_id = r.greg_id) "); retorno.put("where", "and greg.greg_id = " + filtro.getGerenciaRegional()); retorno.put("groupBy", "group by greg.greg_id, greg.greg_nmregional "); break; //Unidade de Negocio case 10: retorno.put("unidadeNegocioID", "uneg.uneg_id "); retorno.put("unidadeNegocio", "uneg.uneg_nmunidadenegocio "); retorno.put("join", "inner join cadastro.g_unidade_negocio uneg on (uneg.uneg_id = r.uneg_id) "); retorno.put("joinComercial", "inner join cadastro.unidade_negocio uneg on (uneg.uneg_id = r.uneg_id) "); retorno.put("where", "and uneg.uneg_id = " + filtro.getUnidadeNegocio() + " "); retorno.put("groupBy", "group by uneg.uneg_id, uneg.uneg_nmunidadenegocio "); break; //Localidade case 17: retorno.put("localidadeID", "loca.loca_id "); retorno.put("localidade", "loca.loca_nmlocalidade "); retorno.put("join", "inner join cadastro.g_localidade loca on (loca.loca_id = r.loca_id) "); retorno.put("joinComercial", "inner join cadastro.localidade loca on (loca.loca_id = r.loca_id) "); retorno.put("where", "and loca.loca_id = " + filtro.getLocalidade() + " "); retorno.put("groupBy", "group by loca.loca_id, loca.loca_nmlocalidade "); break; //Municipio case 20: retorno.put("municipioID", "muni.muni_id "); retorno.put("municipio", "muni.muni_nmmunicipio "); retorno.put("join", "inner join cadastro.localidade loca on (loca.loca_id = r.loca_id) " + "inner join cadastro.municipio muni on (loca.muni_idprincipal = muni.muni_id) "); retorno.put("joinComercial", "inner join cadastro.localidade loc on (loc.loca_id = r.loca_id) " + "inner join cadastro.municipio muni on (loc.muni_idprincipal = muni.muni_id) "); retorno.put("where", "and muni.muni_id = " + filtro.getMunicipio()); retorno.put("groupBy", " group by muni.muni_id, muni.muni_nmmunicipio "); retorno.put("orderBy", "order by muni.muni_id, muni.muni_nmmunicipio "); break; } return retorno; } /** * Pesquisa o Resumo de Liga��es Economias para * o Resumo com Dados para o CAS * * [UC1017] - Gerar Resumo com Dados para o CAS * * @author Daniel Alves * @date 04/05/2010 * * @return Collection<Object> */ public Collection<Object> pesquisaResumoLigacaoEconomiaResumoDadosCas(FiltrarResumoDadosCasHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); Collection retorno = null; String consulta = null; Map query = totalizadorResumoDadosCas(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Localidade / Munic�pio String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String join = (String)query.get("join"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); String tipo = (String)query.get("tipo"); try { consulta = "select SUM(CASE WHEN last.last_icativaagua = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) AS AguaTotalLigacoesAtivas, " + "SUM(CASE WHEN last.last_icdesligadaagua = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) As AguaTotalLigacoesInativas, " + "SUM(CASE WHEN last.last_icativaagua = 1 or last.last_icdesligadaagua = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) AS AguaTotalLigacoesAtvInat, " + "SUM(CASE WHEN last.LAST_ID = 5 THEN r.RELE_QTLIGACOES ELSE 0 END) AS AguaTotalLigacoesCortadas, " + "SUM(CASE WHEN last.LAST_ICANALISEAGUA = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) AS AguaTotalLigacoesAnalise, " + "SUM(CASE WHEN r.last_id = 3 and last.LAST_ICATIVAAGUA = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) AS AguaTotalLigacoesRamaisLig, " + "sum(CASE WHEN r.RELE_ICHIDROMETRO = 1 and last.last_icativaagua = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) As AguaTotalLigacoesMedidas, " + "sum(CASE WHEN r.RELE_ICHIDROMETRO = 2 and last.last_icativaagua = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) As AguaTotalLigacoesNaoMedidas, " + "sum(CASE WHEN lest.LEST_ICATIVAESGOTO = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) As EsgotoTotalLigacoesAtivas, " + "sum(CASE WHEN lest.LEST_ICDesligadaEsgoto = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) As EsgotoTotalLigacoesInativas, " + "sum(CASE WHEN lest.LEST_ICATIVAESGOTO = 1 or lest.LEST_ICDesligadaEsgoto = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) As EsgotoTotalLigacoesAtivInat, " + "sum(CASE WHEN r.LEST_ID = 6 THEN r.RELE_QTLIGACOES ELSE 0 END) As EsgotoTotalLigacoesTamponato, " + "sum(CASE WHEN r.LEST_ID = 5 THEN r.RELE_QTLIGACOES ELSE 0 END) As EsgotoTotalLigacoesAnalise, " + "sum(CASE WHEN r.LEST_ID = 3 and lest.LEST_ICATIVAESGOTO = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) as EsgotoTotalLigacoesRamaisLig, " + "sum(CASE WHEN r.RELE_ICHIDROMETROPOCO = 1 and lest.LEST_ICATIVAESGOTO = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) As EsgotoTotalLigacoesMedidas, " + "sum(CASE WHEN r.RELE_ICHIDROMETROPOCO = 2 and lest.LEST_ICATIVAESGOTO = 1 THEN r.RELE_QTLIGACOES ELSE 0 END) As EsgotoTotalLigacoesNaoMedidas, " + "SUM(CASE WHEN r.last_id in (6, 7, 8) THEN r.RELE_QTLIGACOES ELSE 0 END) AS AguaTotalLigacoesSuprimidas, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from cadastro.un_res_lig_econ r " + "left join atendimentopublico.g_lig_esgoto_sit lest on (r.lest_id = lest.lest_id) " + "left join atendimentopublico.G_LIGACAO_AGUA_SITUACAO last on (r.last_id = last.last_id) " + join; if(tipo != null && tipo.equals("totalizadorPorEstado")){ consulta += "and r.rele_amreferencia = :referencia where 1 = 1 "; }else{ consulta += "where r.rele_amreferencia = :referencia "; } consulta += where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("AguaTotalLigacoesAtivas", Hibernate.LONG) .addScalar("AguaTotalLigacoesInativas", Hibernate.LONG) .addScalar("AguaTotalLigacoesAtvInat", Hibernate.LONG) .addScalar("AguaTotalLigacoesCortadas", Hibernate.LONG) .addScalar("AguaTotalLigacoesAnalise", Hibernate.LONG) .addScalar("AguaTotalLigacoesRamaisLig", Hibernate.LONG) .addScalar("AguaTotalLigacoesMedidas", Hibernate.LONG) .addScalar("AguaTotalLigacoesNaoMedidas", Hibernate.LONG) .addScalar("EsgotoTotalLigacoesAtivas", Hibernate.LONG) .addScalar("EsgotoTotalLigacoesInativas", Hibernate.LONG) .addScalar("EsgotoTotalLigacoesAtivInat", Hibernate.LONG) .addScalar("EsgotoTotalLigacoesTamponato", Hibernate.LONG) .addScalar("EsgotoTotalLigacoesAnalise", Hibernate.LONG) .addScalar("EsgotoTotalLigacoesRamaisLig", Hibernate.LONG) .addScalar("EsgotoTotalLigacoesMedidas", Hibernate.LONG) .addScalar("EsgotoTotalLigacoesNaoMedidas", Hibernate.LONG) .addScalar("AguaTotalLigacoesSuprimidas", Hibernate.LONG) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .setInteger("referencia",filtro.getAnoMesReferencia()).list(); } 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; } /** * Pesquisa o Resumo de Consumo Agua para * o Resumo com Dados para o CAS * * [UC1017] - Gerar Resumo com Dados para o CAS * * @author Daniel Alves * @date 04/05/2010 * * @return Collection<Object> */ public Collection<Object> pesquisaResumoConsumoAguaResumoDadosCas(FiltrarResumoDadosCasHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); Collection retorno = null; String consulta = null; Map query = totalizadorResumoDadosCas(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Localidade String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String join = (String)query.get("join"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); String tipo = (String)query.get("tipo"); try { consulta = "select sum(CASE WHEN r.RECA_QTECONOMIAS IS NOT NULL THEN r.RECA_QTECONOMIAS ELSE 0 END) AS numeroEconomiasAgua, " + "sum(CASE WHEN r.reca_voconsumofaturado IS NOT NULL THEN reca_voconsumofaturado ELSE 0 END) AS AguaTotalVolumeFaturado, " + "sum(CASE WHEN r.reca_icligacaofaturada = 1 THEN reca_qtligacoes ELSE 0 END) AS AguaTotalLigacoesFaturadas, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from MICROMEDICAO.UN_RESUMO_CONSUMO_AGUA r " + join; if(tipo != null && tipo.equals("totalizadorPorEstado")){ consulta += "and r.reca_amreferencia = :referencia where 1 = 1 "; }else{ consulta += "where r.reca_amreferencia = :referencia "; } consulta += where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("numeroEconomiasAgua", Hibernate.LONG) .addScalar("AguaTotalVolumeFaturado", Hibernate.BIG_DECIMAL) .addScalar("AguaTotalLigacoesFaturadas", Hibernate.LONG) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .setInteger("referencia",filtro.getAnoMesReferencia()).list(); } 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; } /** * Pesquisa o Resumo de Coleta Esgoto para * o Resumo com Dados para o CAS * * [UC1017] - Gerar Resumo com Dados para o CAS * * @author Daniel Alves * @date 04/05/2010 * * @return Collection<Object> */ public Collection<Object> pesquisaResumoColetaEsgotoResumoDadosCas(FiltrarResumoDadosCasHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); Collection retorno = null; String consulta = null; Map query = totalizadorResumoDadosCas(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Localidade String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String join = (String)query.get("join"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); String tipo = (String)query.get("tipo"); try { consulta = "select sum(CASE WHEN r.RECE_QTECONOMIAS IS NOT NULL THEN r.RECE_QTECONOMIAS ELSE 0 END) AS numeroEconomiasEsgoto, " + "sum(CASE WHEN r.rece_vofaturado IS NOT NULL THEN r.rece_vofaturado ELSE 0 END) AS EsgotoTotalVolumeFaturado, " + "sum(CASE WHEN r.rece_icfaturamento = 1 THEN rece_qtligacoes ELSE 0 END) AS EsgotoTotalLigacoesFaturadas, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from MICROMEDICAO.UN_RESUMO_COLETA_ESGOTO r " + join; if(tipo != null && tipo.equals("totalizadorPorEstado")){ consulta += "and r.rece_amreferencia = :referencia where 1 = 1 "; }else{ consulta += "where r.rece_amreferencia = :referencia "; } consulta += where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("numeroEconomiasEsgoto", Hibernate.LONG) .addScalar("EsgotoTotalVolumeFaturado", Hibernate.BIG_DECIMAL) .addScalar("EsgotoTotalLigacoesFaturadas", Hibernate.LONG) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .setInteger("referencia",filtro.getAnoMesReferencia()).list(); } 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; } /** * Pesquisa o Resumo Arrecadacao para * o Resumo com Dados para o CAS * * [UC1017] - Gerar Resumo com Dados para o CAS * * @author Daniel Alves * @date 04/05/2010 * * @return Collection<Object> */ public Collection<Object> pesquisaResumoArrecadacaoResumoDadosCas(FiltrarResumoDadosCasHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; Map query = totalizadorResumoDadosCas(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Localidade String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String joinComercial = (String)query.get("joinComercial"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); try { consulta = "select sum(CASE WHEN r.rarr_amreferencia = "+filtro.getAnoMesReferencia()+" and lctp_id = 51 THEN rarr_vlitemarrecadacao ELSE 0 END) As TotalArrecadacaoAtual, " + "sum(CASE WHEN r.rarr_amreferencia = "+filtro.getAnoMesReferenciaAnterior()+" and lctp_id = 51 THEN rarr_vlitemarrecadacao ELSE 0 END) As TotalArrecadacaoAnterior, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from arrecadacao.RESUMO_ARRECADACAO r " + joinComercial; consulta += " where 1 = 1 " + where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("TotalArrecadacaoAtual", Hibernate.BIG_DECIMAL) .addScalar("TotalArrecadacaoAnterior", Hibernate.BIG_DECIMAL) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .list(); } 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; } /** * Pesquisa o Resumo Faturamento para * o Resumo com Dados para o CAS * * [UC1017] - Gerar Resumo com Dados para o CAS * * @author Daniel Alves * @date 04/05/2010 * * @return Collection<Object> */ public Collection<Object> pesquisaResumoFaturamentoResumoDadosCas(FiltrarResumoDadosCasHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); Collection retorno = null; String consulta = null; Map query = totalizadorResumoDadosCas(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Localidade String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String join = (String)query.get("join"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); String tipo = (String)query.get("tipo"); try { consulta = "select sum(CASE WHEN REFA_QTCONTASEMITIDAS is not null THEN REFA_QTCONTASEMITIDAS ELSE 0 END) As contasEmitidas, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + "sum(CASE WHEN refa_vlfaturadoagua IS NOT NULL THEN refa_vlfaturadoagua ELSE 0 END) AS AguaTotalValorFaturado, " + "sum(CASE WHEN refa_vlfaturadoesgoto IS NOT NULL THEN refa_vlfaturadoesgoto ELSE 0 END) AS EsgotoTotalValorFaturado, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from FATURAMENTO.UN_RESUMO_FATURAMENTO r " + join; if(tipo != null && tipo.equals("totalizadorPorEstado")){ consulta += "and r.refa_amreferencia = :referencia where 1 = 1 "; }else{ consulta += "where r.refa_amreferencia = :referencia "; } consulta += where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("contasEmitidas", Hibernate.LONG) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("AguaTotalValorFaturado", Hibernate.BIG_DECIMAL) .addScalar("EsgotoTotalValorFaturado", Hibernate.BIG_DECIMAL) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .setInteger("referencia",filtro.getAnoMesReferencia()).list(); } 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; } /** * Pesquisa o Resumo de Pend�ncias para * o Resumo com Dados para o CAS * * [UC1017] - Gerar Resumo com Dados para o CAS * * @author Daniel Alves * @date 06/05/2010 * * @return Collection<Object> */ public Collection<Object> pesquisaResumoPendenciaResumoDadosCas(FiltrarResumoDadosCasHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); Collection retorno = null; String consulta = null; Map query = totalizadorResumoDadosCas(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Localidade String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String join = (String)query.get("join"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); String tipo = (String)query.get("tipo"); try { consulta = "SELECT SUM(case when dotp_id in (1,7) THEN (coalesce(RPEN_VLPENDENTE_AGUA, 0) + coalesce(RPEN_VLPENDENTE_ESGOTO, 0) + coalesce(RPEN_VLPENDENTE_DEBITOS, 0)) " + "- (coalesce(RPEN_VLPENDENTE_CREDITOS, 0) + coalesce(RPEN_VLPENDENTE_IMPOSTOS, 0)) ELSE 0 END )as valorPendencia, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from cobranca.UN_RESUMO_PENDENCIA r " + join; if(tipo != null && tipo.equals("totalizadorPorEstado")){ consulta += "and r.RPEN_ICVENCIDO = 1 " + "and r.RPEN_AMREFERENCIA = :referencia where 1 = 1 "; }else{ consulta += "where r.RPEN_ICVENCIDO = 1 " + "and r.RPEN_AMREFERENCIA = :referencia "; } consulta += where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("valorPendencia", Hibernate.BIG_DECIMAL) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .setInteger("referencia",filtro.getAnoMesReferencia()).list(); } 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; } /** * * UC0572 - Gerar Resumo ReFaturamento Novo * * Este metodo verifica a existencia do resumo refaturamento * * @author Fernando Fontelles * @date 29/06/2010 * */ public Integer verificarExistenciaResumoReFaturamento( int anoMes) throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); Integer retorno = null; String consulta = null; try{ consulta = "SELECT count(rerf_id) as quantidade " + " FROM faturamento.un_resumo_refaturamento " + " WHERE rerf_amreferencia =:anoMes "; retorno = (Integer)session.createSQLQuery(consulta) .addScalar("quantidade", Hibernate.INTEGER) .setInteger("anoMes", anoMes).setMaxResults(1).uniqueResult(); } catch (HibernateException e) { e.printStackTrace(); // 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; } /** * Pesquisa o Resumo Faturamento para * o Resumo com Dados para o CAS * * [UC1017] - Gerar Resumo com Dados para o CAS * * @author Daniel Alves * @date 06/07/2010 * * @return Collection<Object> */ public Collection<Object> pesquisaResumoFaturamentoResumoDadosCasComercial(FiltrarResumoDadosCasHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; Map query = totalizadorResumoDadosCas(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Localidade String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String joinComercial = (String)query.get("joinComercial"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); try { consulta = "select " + "sum(case when lctp_id = 12 and lcit_id in (6,76) and rfat_amreferencia = "+filtro.getAnoMesReferencia() +" then rfat_vlitemfaturamento ELSE 0 END) as totalFaturamentoLiquidoAtual, " + "sum(case when lctp_id = 12 and lcit_id in (6,76) and rfat_amreferencia = "+filtro.getAnoMesReferenciaAnterior() +" then rfat_vlitemfaturamento ELSE 0 END) as totalfaturamentoliquidoanterio, " + "sum(CASE WHEN rfat_vlitemfaturamento IS NOT NULL and lctp_id = 1 and lcit_id = 1 and rfat_amreferencia = "+filtro.getAnoMesReferencia() +" THEN rfat_vlitemfaturamento ELSE 0 END) AS AguaTotalValorFaturado, " + "sum(CASE WHEN rfat_vlitemfaturamento IS NOT NULL and lctp_id = 2 and lcit_id = 2 and rfat_amreferencia = "+filtro.getAnoMesReferencia() +" THEN rfat_vlitemfaturamento ELSE 0 END) AS EsgotoTotalValorFaturado, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from financeiro.resumo_faturamento r " + joinComercial; consulta += " where 1 = 1 " + where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("totalFaturamentoLiquidoAtual", Hibernate.BIG_DECIMAL) .addScalar("totalfaturamentoliquidoanterio", Hibernate.BIG_DECIMAL) .addScalar("AguaTotalValorFaturado", Hibernate.BIG_DECIMAL) .addScalar("EsgotoTotalValorFaturado", Hibernate.BIG_DECIMAL) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .list(); } 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; } /** * [UC0572] - Gerar Resumo ReFaturamento Novo * * Gera Resumo Refaturamento Contas * * @author Fernando Fontelles * @date 29/06/2010 * * @return * @throws ErroRepositorioException */ public List getResumoRefaturamentoContas(int idSetor, int anoMes, int indice, int qtRegistros) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { String hql = "select " + " conta.id, "//0 + " imovel.id, "//1 + " conta.localidade.gerenciaRegional.id, "//2 + " conta.localidade.unidadeNegocio.id, "//3 + " conta.localidade.localidade.id, "//4 elo + " conta.localidade.id, "//5 localidade + " imovel.setorComercial.id, "//6 + " imovel.setorComercial.codigo, "//7 + " imovel.imovelPerfil.id, "//8 + " conta.ligacaoAguaSituacao.id, "//9 + " conta.ligacaoEsgotoSituacao.id, "//10 + " case when ( " + " imovel.ligacaoAgua.ligacaoAguaPerfil.id is null ) then " + " 0 " + " else " + " imovel.ligacaoAgua.ligacaoAguaPerfil.id " + " end, "//11 + " case when ( " + " imovel.ligacaoEsgoto.ligacaoEsgotoPerfil.id is null ) then " + " 0 " + " else " + " imovel.ligacaoEsgoto.ligacaoEsgotoPerfil.id " + " end, "//12 + " imovel.consumoTarifa.id, "//13 + " conta.consumoAgua, "//14 + " conta.consumoEsgoto, "//15 + " conta.valorAgua, "//16 + " conta.valorEsgoto, "//17 + " conta.referencia, "//18 + " conta.debitoCreditoSituacaoAtual.id, "//19 + " conta.referenciaContabil, "//20 + " conta.valorImposto, "//21 + " conta.valorCreditos, "//22 + " conta.debitos, "//23 + " conta.debitoCreditoSituacaoAnterior.id, "//24 + " conta.documentoTipo.id" //25 + " from " + " gcom.cadastro.sistemaparametro.SistemaParametro as sistemaParametro, " + " gcom.faturamento.conta.Conta as conta " + " inner join conta.imovel as imovel " + " inner join imovel.setorComercial as setorComercial " + " left join imovel.ligacaoAgua ligacaoAgua " + " left join imovel.ligacaoEsgoto ligacaoEsgoto " + " where " + " sistemaParametro.anoMesFaturamento = :anoMesReferencia and " + " ((conta.referenciaContabil = :anoMesReferencia and conta.debitoCreditoSituacaoAtual.id in (1,2,3,4)) or " + " (conta.debitoCreditoSituacaoAnterior.id in (1,2) and conta.referenciaContabil >= :anoMesReferencia )) and " + " imovel.setorComercial.id = :idSetor " + " order by " + " conta.id "; retorno = session.createQuery(hql) .setInteger("anoMesReferencia", anoMes) .setInteger("idSetor", idSetor).setFirstResult(indice).setMaxResults(qtRegistros).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * M�todo que retona uma lista de objeto xxxxx que representa o resumo do * Refaturamento NOVO(Guia de Pagamento) * * @author Fernando Fontelles * @date 01/07/2010 * * @return * @throws ErroRepositorioException */ public List getPesquisaGuiaPagamentoRefaturamentoNovo(int idSetor, int anoMes) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { String hql = "select " + " imov.id, "//0 + " loca.gerenciaRegional.id, "//1 + " loca.unidadeNegocio.id, "//2 + " loca.localidade.id, " //3 Elo + " loca.id, "//4 + " imov.setorComercial.id, "//5 + " imov.setorComercial.codigo, "//6 + " imov.imovelPerfil.id, "//7 + " imov.ligacaoAguaSituacao.id, "//8 + " imov.ligacaoEsgotoSituacao.id, "//9 + " case when ( " + " imov.ligacaoAgua.ligacaoAguaPerfil.id is null ) then " + " 0 " + " else " + " imov.ligacaoAgua.ligacaoAguaPerfil.id "//10 + " end, " + " case when ( " + " imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id is null ) then " + " 0 " + " else " + " imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id "//11 + " end, " + " case when ( " //12 + " guiaPagamento.imovel.id is null ) then " + " 0 " + " else " + " imov.consumoTarifa.id " + " end, " + " guiaPagamento.lancamentoItemContabil.id, " //13 + " guiaPagamento.documentoTipo.id, " //14 // + " guiaPagamento.origem.id, " //14 - NULO + " guiaPagamento.financiamentoTipo.id, "//15 + " guiaPagamento.debitoTipo.id, "//16 + " guiaPagamento.debitoCreditoSituacaoAtual.id, "//17 + " guiaPagamento.valorDebito " //18 + " from " + " gcom.arrecadacao.pagamento.GuiaPagamento guiaPagamento " + " inner join guiaPagamento.imovel as imov " + " inner join imov.localidade as loca " + " left join imov.ligacaoAgua ligacaoAgua " + " left join imov.ligacaoEsgoto ligacaoEsgoto " + " where " + " guiaPagamento.anoMesReferenciaContabil = :anoMes and " + " imov.setorComercial.id = :idSetor and " + " (guiaPagamento.debitoCreditoSituacaoAtual.id = 3) " + " order by " + " guiaPagamento.id "; retorno = session.createQuery(hql).setInteger("anoMes",anoMes) .setInteger("idSetor", idSetor).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * Gerar Resumo do ReFaturamento Novo * * Inserir os dados na tabela un_resumo_refaturamento * * @author Fernando Fontelles Filho * @date 02/07/2010 * * @param helper Helper de agrupamento dos dados * @throws ErroRepositorioException */ public void inserirResumoReFaturamentoNovo( ResumoFaturamentoGuiaPagamentoNovoHelper helper ) throws ErroRepositorioException{ Connection con = null; Statement stmt = null; Session session = HibernateUtil.getSessionGerencial(); String insert; try { con = session.connection(); stmt = con.createStatement(); insert = "INSERT INTO \n" + " faturamento.un_resumo_refaturamento ( \n" + // ID " rerf_id, \n" + // Ultima Alteracao " rerf_tmultimaalteracao, \n" + // 0 " rerf_amreferencia, \n" + // 1 " greg_id,\n" + // 2 " uneg_id,\n" + // 3 // " loca_cdelo,\n" + // 4 " loca_id,\n" + // 5 " stcm_id,\n" + // 6 " rerf_cdsetorcomercial,\n" + // 7 " iper_id,\n" + // 8 " last_id,\n" + // 9 " lest_id,\n" + // 10 " catg_id,\n" + // 11 " scat_id,\n" + // 12 " epod_id,\n" + // 13 " cltp_id,\n" + // 14 " lapf_id,\n" + // 15 " lepf_id,\n" + // 16 " crog_id,\n" + // 17 " lict_id,\n" + // 18 " dotp_id,\n" + // 19 " cstf_id,\n" + // 20 " rerf_ichidrometro,\n" + // 21 " rerf_qtcontasretificadas, \n" + // 22 " rerf_qtcontascanceladas, \n" + // 23 " rerf_qtcontasincluidas, \n" + // 24 " rerf_vlcanceladoagua, \n" + // 25 " rerf_vlcanceladoesgoto, \n" + // 26 " rerf_vlcanceladooutros, \n" + // 27 " rerf_vlcanceladocredito, \n" + // 28 " rerf_vlimpostoscancelados, \n" + // 29 " rerf_vocanceladoagua, \n" + // 30 " rerf_vocanceladoesgoto, \n" + // 31 " rerf_vlincluidoagua,\n" + // 32 " rerf_vlincluidoesgoto, \n" + // 33 " rerf_vlincluidooutros, \n" + // 34 " rerf_vlincluidocredito, \n" + // 35 " rerf_vlimpostosincluidos, \n" + // 36 " rerf_voincluidoagua, \n" + //37 " rerf_voincluidoesgoto, \n" + //38 " rerf_vlguiascanceladas, \n" + //39 " rerf_qtguiascanceladas, \n " + //40 " fntp_id, \n" + //41 " dbtp_id, \n" + //42 " crtp_id, \n" + // 43 retirar " rerf_amreferenciaconta \n" + " ) " + " VALUES (\n" + //ID Util.obterNextValSequence("faturamento.seq_un_resumo_refaturamento") + ", " + // Ultima Alteracao Util.obterSQLDataAtual() + ", \n" + // 0 helper.getAnoMesReferencia() + ", \n" + // 1 helper.getIdGerenciaRegional() + ", \n" + // 2 helper.getIdUnidadeNegocio() + ", \n" + // 3 // helper.getIdElo + ", \n" + // 4 helper.getIdLocalidade() + ", \n" + // 5 helper.getIdSetorComercial() + ", \n" + // 6 helper.getCodigoSetorComercial() + ", \n" + // 7 helper.getIdPerfilImovel() + ", \n" + // 8 helper.getIdSituacaoLigacaoAgua() + ", \n" + // 9 helper.getIdSituacaoLigacaoEsgoto() + ", \n" + // 10 helper.getIdCategoria() + ", \n" + // 11 helper.getIdSubCategoria() + ", \n" + // 12 helper.getIdEsfera() + ", \n" + // 13 helper.getIdTipoClienteResponsavel() + ", \n" + // 14 helper.getIdPerfilLigacaoAgua() + ", \n" + // 15 helper.getIdPerfilLigacaoEsgoto() + ", \n" + // 16 helper.getCreditoOrigem() + ", \n" + // 17 helper.getLancamentoItemContabil() + ", \n" + // 18 helper.getIdDocumentoTipo() + ", \n" + // 19 helper.getConsumoTarifa() + ", \n" + // 20 helper.getIndicadorHidrometro() + ", \n" + // 21 helper.getQtdContasRetificadas() + ", \n" + // 22 helper.getQtdContasCanceladas() + ", \n" + // 23 helper.getQtdContasIncluidas() + ", \n" + // 24 helper.getVlCanceladoAgua() + ", \n" + // 25 helper.getVlCanceladoEsgoto() + ", \n" + // 26 helper.getVlCanceladoOutros() + ", \n" + // 27 helper.getVlCanceladoCredito() + ", \n" + // 28 helper.getVlImpostosCancelados() + ", \n" + // 29 helper.getVoCanceladoAgua() + ", \n" + // 30 helper.getVoCanceladoEsgoto() + ", \n" + // 31 helper.getVlIncluidoAgua() + ",\n" + // 32 helper.getVlIncluidoEsgoto() + ", \n" + // 33 helper.getVlIncluidoOutros() + ", \n" + // 34 helper.getVlIncluidoCredito() + ", \n" + // 35 helper.getVlImpostosIncluidos() + ", \n" + // 36 helper.getVoIncluidoAgua() + ", \n" + //37 helper.getVoIncluidoEsgoto() + ", \n" + //38 helper.getVlGuiasCanceladas() + ", \n" + //39 helper.getQtdGuiasCanceladas() + ", \n " + //40 helper.getIdFinanciamentoTipo() + ", \n" + //41 helper.getDebitoTipo() + ", \n" + //42 helper.getCreditoTipo() + ", \n" + //43 Ano Mes Referencia Conta null + " \n" + ") \n " ; stmt.executeUpdate(insert); } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } catch (SQLException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Insert"); } finally { // fecha a sess�o HibernateUtil.closeSession(session); try { stmt.close(); con.close(); } catch (SQLException e) { System.out.println("Erro ao fechar conex�es"); } } } /** * Gerar Resumo do ReFaturamento Novo * * Inserir os dados na tabela un_resumo_refaturamento * * @author Fernando Fontelles Filho * @date 02/07/2010 * * @param helper Helper de agrupamento dos dados * @throws ErroRepositorioException */ public void inserirResumoReFaturamentoNovo( ResumoReFaturamentoNovoHelper helper ) throws ErroRepositorioException{ Connection con = null; Statement stmt = null; Session session = HibernateUtil.getSessionGerencial(); String insert; try { con = session.connection(); stmt = con.createStatement(); insert = "INSERT INTO \n" + " faturamento.un_resumo_refaturamento ( \n" + // ID " rerf_id, \n" + // Ultima Alteracao " rerf_tmultimaalteracao, \n" + // 0 " rerf_amreferencia, \n" + // 1 " greg_id,\n" + // 2 " uneg_id,\n" + // 3 // " loca_cdelo,\n" + // 4 " loca_id,\n" + // 5 " stcm_id,\n" + // 6 " rerf_cdsetorcomercial,\n" + // 7 " iper_id,\n" + // 8 " last_id,\n" + // 9 " lest_id,\n" + // 10 " catg_id,\n" + // 11 " scat_id,\n" + // 12 " epod_id,\n" + // 13 " cltp_id,\n" + // 14 " lapf_id,\n" + // 15 " lepf_id,\n" + // 16 " crog_id,\n" + // 17 " lict_id,\n" + // 18 " dotp_id,\n" + // 19 " cstf_id,\n" + // 20 " rerf_ichidrometro,\n" + // 21 " rerf_qtcontasretificadas, \n" + // 22 " rerf_qtcontascanceladas, \n" + // 23 " rerf_qtcontasincluidas, \n" + // 24 " rerf_vlcanceladoagua, \n" + // 25 " rerf_vlcanceladoesgoto, \n" + // 26 " rerf_vlcanceladooutros, \n" + // 27 " rerf_vlcanceladocredito, \n" + // 28 " rerf_vlimpostoscancelados, \n" + // 29 " rerf_vocanceladoagua, \n" + // 30 " rerf_vocanceladoesgoto, \n" + // 31 " rerf_vlincluidoagua,\n" + // 32 " rerf_vlincluidoesgoto, \n" + // 33 " rerf_vlincluidooutros, \n" + // 34 " rerf_vlincluidocredito, \n" + // 35 " rerf_vlimpostosincluidos, \n" + // 36 " rerf_voincluidoagua, \n" + //37 " rerf_voincluidoesgoto, \n" + //38 " rerf_vlguiascanceladas, \n" + //39 " rerf_qtguiascanceladas, \n " + //40 " fntp_id, \n" + //41 " dbtp_id, \n" + //42 " crtp_id, \n" + // 43 " rerf_amreferenciaconta \n" + " ) " + " VALUES (\n" + //ID Util.obterNextValSequence("faturamento.seq_un_resumo_refaturamento") + ", " + // Ultima Alteracao Util.obterSQLDataAtual() + " , \n" + // 0 helper.getAnoMesReferencia() + ", \n" + // 1 helper.getIdGerenciaRegional() + ", \n" + // 2 helper.getIdUnidadeNegocio() + ", \n" + // 3 // helper.getIdElo + ", \n" + // 4 helper.getIdLocalidade() + ", \n" + // 5 helper.getIdSetorComercial() + ", \n" + // 6 helper.getCodigoSetorComercial() + ", \n" + // 7 helper.getIdPerfilImovel() + ", \n" + // 8 helper.getIdSituacaoLigacaoAgua() + ", \n" + // 9 helper.getIdSituacaoLigacaoEsgoto() + ", \n" + // 10 helper.getIdCategoria() + ", \n" + // 11 helper.getIdSubCategoria() + ", \n" + // 12 helper.getIdEsfera() + ", \n" + // 13 helper.getIdTipoClienteResponsavel() + ", \n" + // 14 helper.getIdPerfilLigacaoAgua() + ", \n" + // 15 helper.getIdPerfilLigacaoEsgoto() + ", \n" + // 16 helper.getCreditoOrigem() + ", \n" + // 17 helper.getLancamentoItemContabil() + ", \n" + // 18 helper.getDocumentoTipo() + ", \n" + // 19 helper.getConsumoTarifa() + ", \n" + // 20 helper.getHidrometro() + ", \n" + // 21 helper.getQtContasRetificadas() + ", \n" + // 22 helper.getQtContasCanceladas() + ", \n" + // 23 helper.getQtContasIncluidas() + ", \n" + // 24 helper.getVlCanceladoAgua() + ", \n" + // 25 helper.getVlCanceladoEsgoto() + ", \n" + // 26 helper.getVlCanceladoOutro() + ", \n" + // 27 helper.getVlCanceladoCreditos() + ", \n" + // 28 helper.getVlCanceladoImpostos() + ", \n" + // 29 helper.getVoCanceladoAgua() + ", \n" + // 30 helper.getVoCanceladoEsgoto() + ", \n" + // 31 helper.getVlIncluidoAgua() + ",\n" + // 32 helper.getVlIncluidoEsgoto() + ", \n" + // 33 helper.getVlIncluidoOutros() + ", \n" + // 34 helper.getVlIncluidoCreditos() + ", \n" + // 35 helper.getVlIncluidoImpostos() + ", \n" + // 36 helper.getVoIncludoAgua() + ", \n" + //37 helper.getVoIncluidoEsgoto() + ", \n" + //38 helper.getVlCanceladoGuias() + ", \n" + //39 helper.getQtGuiasCanceladas() + ", \n " + //40 Financiamento Tipo null + ", \n" + //41 Debito Tipo null + ", \n" + //42 Credito Tipo null + ", \n" + // 43 Ano Mes Referencia Conta helper.getAnoMesReferenciaConta() + " \n" + ") \n " ; stmt.executeUpdate(insert); } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } catch (SQLException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Insert"); } finally { // fecha a sess�o HibernateUtil.closeSession(session); try { stmt.close(); con.close(); } catch (SQLException e) { System.out.println("Erro ao fechar conex�es"); } } } /** * [UC0305] Consultar an�lise Faturamento * * @author Hugo Amorim * @date 06/08/2010 * */ public Collection consultarResumoAnaliseFaturamentoDetalhe(InformarDadosGeracaoRelatorioConsultaHelper informarDadosGeracaoRelatorioConsultaHelper) throws ErroRepositorioException{ // Cria a cole��o de retorno Collection retorno = null; // Obt�m a sess�o Session session = HibernateUtil.getSession(); String sql = null; String unionMunicipio = ""; if(informarDadosGeracaoRelatorioConsultaHelper.getOpcaoTotalizacao() == ConstantesSistema.CODIGO_ESTADO_MUNICIPIO || informarDadosGeracaoRelatorioConsultaHelper.getOpcaoTotalizacao() == ConstantesSistema.CODIGO_MUNICIPIO){ unionMunicipio = " INNER JOIN cadastro.localidade localidade ON re.loca_id = localidade.loca_id"; unionMunicipio += " INNER JOIN cadastro.municipio muni ON localidade.muni_idprincipal = muni.muni_id"; } try{ if(informarDadosGeracaoRelatorioConsultaHelper.getTipoDetalhe().equalsIgnoreCase("DEBITO")){ sql = "SELECT dbtp_dsdebitotipo as descricao, sum(rsdd_vldebito) as valor" +" FROM faturamento.res_fatu_simulacao_debi debi" +" INNER JOIN faturamento.debito_tipo dt on dt.dbtp_id = debi.dbtp_id" +" INNER JOIN faturamento.resumo_fatur_simulacao re on re.rfts_id = debi.rfts_id " + unionMunicipio +" WHERE "; } else if(informarDadosGeracaoRelatorioConsultaHelper.getTipoDetalhe().equalsIgnoreCase("CREDITO")){ sql = "SELECT crti_dscreditotipo as descricao, sum(rsdc_vlcredito) as valor" +" FROM faturamento.res_fatu_simulacao_cred cred" +" INNER JOIN faturamento.credito_tipo ct on ct.crti_id = cred.crti_id" +" INNER JOIN faturamento.resumo_fatur_simulacao re on re.rfts_id = cred.rfts_id " + unionMunicipio +" WHERE "; } // Aqui sera montanda a parte dos condicionais da query // estas condicionais ser�o usadas se necessarias, o q determina seus usos // s�o os parametros que veem carregados no objeto InformarDadosGeracaoRelatorioConsultaHelper // que � recebido do caso de uso [UC0304] Informar Dados para Gera��o de Relatorio ou COnsulta String condicionais = this.criarCondicionaisResumoAnaliseFaturamento(informarDadosGeracaoRelatorioConsultaHelper,"rfts"); if (informarDadosGeracaoRelatorioConsultaHelper.getTipoDetalhe().equalsIgnoreCase("DEBITO")){ sql = sql + condicionais + " GROUP BY dbtp_dsdebitotipo"; } else if (informarDadosGeracaoRelatorioConsultaHelper.getTipoDetalhe().equalsIgnoreCase("CREDITO")){ sql = sql + condicionais + " GROUP BY crti_dscreditotipo"; } //Faz a pesquisa retorno = session.createSQLQuery(sql) .addScalar("descricao", Hibernate.STRING) .addScalar("valor", Hibernate.BIG_DECIMAL) .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 com os resultados da pesquisa return retorno; } /** * [UC0305] Consultar an�lise Faturamento * -Pesquisa para gera��o relatorio. * @author Hugo Amorim * @date 06/08/2010 * */ public List consultarResumoAnaliseFaturamentoRelatorio(InformarDadosGeracaoRelatorioConsultaHelper informarDadosGeracaoRelatorioConsultaHelper) throws ErroRepositorioException{ // Cria a cole��o de retorno List retorno = new ArrayList(); // Obt�m a sess�o Session session = HibernateUtil.getSession(); // A query abaixo realiza uma consulta a tabela de ResumoAnaliseFaturamento try{ String select = "SELECT sum(re.rfts_qtcontas) as somatorio1, sum(re.rfts_qteconomia) as somatorio2, " + "sum(re.rfts_nnconsumoagua) as somatorio3, sum(re.rfts_vlagua) as somatorio4, " + "sum(re.rfts_nnconsumoesgoto) as somatorio5, sum(re.rfts_vlesgoto) as somatorio6, " + "sum(re.rfts_vlcreditos) as somatorio7, sum(re.rfts_vldebitos) as somatorio8, " + "sum(re.rfts_vlimpostos) as somatorio9 "; String condicionais = this.criarCondicionaisResumoAnaliseFaturamento( informarDadosGeracaoRelatorioConsultaHelper,"rfts"); select = this.criarConsultarResumoAnaliseFaturamentoRelatorio( select,condicionais,informarDadosGeracaoRelatorioConsultaHelper.getOpcaoTotalizacao().toString()); SQLQuery query = session.createSQLQuery(select); query.addScalar("somatorio1", Hibernate.INTEGER) .addScalar("somatorio2", Hibernate.INTEGER) .addScalar("somatorio3", Hibernate.INTEGER) .addScalar("somatorio4", Hibernate.BIG_DECIMAL) .addScalar("somatorio5", Hibernate.INTEGER) .addScalar("somatorio6", Hibernate.BIG_DECIMAL) .addScalar("somatorio7", Hibernate.BIG_DECIMAL) .addScalar("somatorio8", Hibernate.BIG_DECIMAL) .addScalar("somatorio9", Hibernate.BIG_DECIMAL) .addScalar("descricao", Hibernate.STRING); //Faz a pesquisa retorno = query.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 com os resultados da pesquisa return retorno; } private String criarConsultarResumoAnaliseFaturamentoRelatorio( String select, String condicionais, String opcaoTotalizacao) { String retorno = ""; if(opcaoTotalizacao.equals(ConstantesSistema.CODIGO_ESTADO+"")){ retorno = select + ", 'ESTADO' as descricao " +" FROM faturamento.resumo_fatur_simulacao re," +" cadastro.gerencia_regional gr" +" WHERE re.greg_id = gr.greg_id and "+condicionais +""; }else if(opcaoTotalizacao.equals(ConstantesSistema.CODIGO_ESTADO_GRUPO_FATURAMENTO+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_GRUPO_FATURAMENTO+"")){ retorno = select + ", ft.ftgr_dsabreviado as descricao " +" FROM faturamento.resumo_fatur_simulacao re," +" faturamento.faturamento_grupo ft" +" WHERE re.ftgr_id = ft.ftgr_id and "+condicionais +" GROUP BY ft.ftgr_dsabreviado " +" ORDER BY ft.ftgr_dsabreviado "; }else if(opcaoTotalizacao.equals(ConstantesSistema.CODIGO_ESTADO_GERENCIA_REGIONAL+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_GERENCIA_REGIONAL+"")){ retorno = select + ", gr.greg_nmregional as descricao " +" FROM faturamento.resumo_fatur_simulacao re," +" cadastro.gerencia_regional gr" +" WHERE re.greg_id = gr.greg_id and "+condicionais +" GROUP BY gr.greg_nmregional " +" ORDER BY gr.greg_nmregional "; }else if(opcaoTotalizacao.equals(ConstantesSistema.CODIGO_UNIDADE_NEGOCIO+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_ESTADO_UNIDADE_NEGOCIO+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_GERENCIA_REGIONAL_UNIDADE_NEGOCIO+"")){ retorno = select + ", un.uneg_nmunidadenegocio as descricao " +" FROM faturamento.resumo_fatur_simulacao re," +" cadastro.unidade_negocio un" +" WHERE re.uneg_id = un.uneg_id and "+condicionais +" GROUP BY un.uneg_nmunidadenegocio " +" ORDER BY un.uneg_nmunidadenegocio "; }else if(opcaoTotalizacao.equals(ConstantesSistema.CODIGO_LOCALIDADE+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_ESTADO_LOCALIDADE+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_GERENCIA_REGIONAL_LOCALIDADE+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_UNIDADE_NEGOCIO_LOCALIDADE+"")){ retorno = select + ", lo.loca_nmlocalidade as descricao " +" FROM faturamento.resumo_fatur_simulacao re," +" cadastro.localidade lo" +" WHERE re.loca_id = lo.loca_id and "+condicionais +" GROUP BY lo.loca_nmlocalidade " +" ORDER BY lo.loca_nmlocalidade "; }else if(opcaoTotalizacao.equals(ConstantesSistema.CODIGO_SETOR_COMERCIAL+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_UNIDADE_NEGOCIO_SETOR_COMERCIAL+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_LOCALIDADE_SETOR_COMERCIAL+"")){ retorno = select + ", sc.stcm_cdsetorcomercial as descricao " +" FROM faturamento.resumo_fatur_simulacao re," +" cadastro.setor_comercial sc" +" WHERE re.stcm_id = sc.stcm_id and "+condicionais +" GROUP BY sc.stcm_cdsetorcomercial " +" ORDER BY sc.stcm_cdsetorcomercial "; }else if(opcaoTotalizacao.equals(ConstantesSistema.CODIGO_QUADRA+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_LOCALIDADE_QUADRA+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_SETOR_COMERCIAL_QUADRA+"")){ retorno = select + ", q.qdra_nnquadra as descricao " +" FROM faturamento.resumo_fatur_simulacao re," +" cadastro.quadra q" +" WHERE re.qdra_id = q.qdra_id and "+condicionais +" GROUP BY q.qdra_nnquadra " +" ORDER BY q.qdra_nnquadra "; }else if(opcaoTotalizacao.equals(ConstantesSistema.CODIGO_MUNICIPIO+"") ||opcaoTotalizacao.equals(ConstantesSistema.CODIGO_ESTADO_MUNICIPIO+"")){ retorno = select + ", muni.muni_nmmunicipio as descricao " +" FROM faturamento.resumo_fatur_simulacao re," +" cadastro.localidade localidade," +" cadastro.municipio muni" +" WHERE re.loca_id = localidade.loca_id and " + " localidade.muni_idprincipal = muni.muni_id and"+condicionais +" GROUP BY muni.muni_nmmunicipio " +" ORDER BY muni.muni_nmmunicipio "; }else if(opcaoTotalizacao.equals(ConstantesSistema.CODIGO_SETOR_COMERCIAL_ROTA+"")){ retorno = select + ", rota.rota_cdrota as descricao " +" FROM faturamento.resumo_fatur_simulacao re," +" micromedicao.rota rota" +" WHERE re.rota_id = rota.rota_id and "+condicionais +" GROUP BY rota.rota_cdrota " +" ORDER BY rota.rota_cdrota "; } return retorno; } /** * Pesquisa o Resumo de Instalacao de Hidrometro para * o Resumo com Dados para o CAS * * [UC1017] - Gerar Resumo com Dados para o CAS * * @author Daniel Alves * @date 09/09/2010 * * @return Collection<Object> */ public Collection<Object> pesquisaResumoInstalacaoHidrometroResumoDadosCas(FiltrarResumoDadosCasHelper filtro)throws ErroRepositorioException { Session session = HibernateUtil.getSessionGerencial(); Collection retorno = null; String consulta = null; Map query = totalizadorResumoDadosCas(filtro); //colunaTotalizador: coluna para mostrar a descricao da totalizacao escolhida, //que pode ser: Gerencia Regional/ Unidade de Negocio/ Localidade String gerenciaRegionalID = (String)query.get("gerenciaRegionalID"); String gerenciaRegional = (String)query.get("gerenciaRegional"); String unidadeNegocioID = (String)query.get("unidadeNegocioID"); String unidadeNegocio = (String)query.get("unidadeNegocio"); String localidadeID = (String)query.get("localidadeID"); String localidade = (String)query.get("localidade"); String municipioID = (String)query.get("municipioID"); String municipio = (String)query.get("municipio"); String join = (String)query.get("join"); String where = (String)query.get("where"); String orderBy = (String)query.get("orderBy"); String groupBy = (String)query.get("groupBy"); String tipo = (String)query.get("tipo"); try { consulta = "select sum(CASE WHEN r.reih_qthidr_instalado_ramal IS NOT NULL THEN r.reih_qthidr_instalado_ramal ELSE 0 END) AS AguaHidrometrosInstalados, " + "sum(CASE WHEN r.reih_qthidr_instalado_poco IS NOT NULL THEN r.reih_qthidr_instalado_poco ELSE 0 END) AS EsgotoHidrometrosInstalados, " + "sum(CASE WHEN r.reih_qthidr_substituido_ramal IS NOT NULL THEN r.reih_qthidr_substituido_ramal ELSE 0 END) AS AguaHidrometrosSubstituidos, " + "sum(CASE WHEN r.reih_qthidr_substituido_poco IS NOT NULL THEN r.reih_qthidr_substituido_poco ELSE 0 END) AS EsgotoHidrometrosSubstituidos, " + gerenciaRegionalID + " AS gerenciaRegionalID, " + gerenciaRegional + " AS gerenciaRegional, " + unidadeNegocioID + " AS unidadeNegocioID, " + unidadeNegocio + " AS unidadeNegocio, " + localidadeID + " AS localidadeID, " + localidade + " AS localidade, " + municipioID + " AS municipioID, " + municipio + " AS municipio " + "from micromedicao.un_res_ins_hidr r " + join; if(tipo != null && tipo.equals("totalizadorPorEstado")){ consulta += "and r.reih_amreferencia = :referencia where 1 = 1 "; }else{ consulta += "where r.reih_amreferencia = :referencia "; } consulta += where + groupBy + orderBy; retorno = session.createSQLQuery(consulta) .addScalar("AguaHidrometrosInstalados", Hibernate.LONG) .addScalar("EsgotoHidrometrosInstalados", Hibernate.LONG) .addScalar("AguaHidrometrosSubstituidos", Hibernate.LONG) .addScalar("EsgotoHidrometrosSubstituidos", Hibernate.LONG) .addScalar("gerenciaRegionalID", Hibernate.STRING) .addScalar("gerenciaRegional", Hibernate.STRING) .addScalar("unidadeNegocioID", Hibernate.STRING) .addScalar("unidadeNegocio", Hibernate.STRING) .addScalar("localidadeID", Hibernate.STRING) .addScalar("localidade", Hibernate.STRING) .addScalar("municipioID", Hibernate.STRING) .addScalar("municipio", Hibernate.STRING) .setInteger("referencia",filtro.getAnoMesReferencia()).list(); } 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; } /** * [UC0571] Gerar Resumo Faturamento * [SB0016] � Preparar Dados do Resumo para Cr�ditos a Realizar * * @author Ivan Sergio * @data 18/01/2011 * * @param idSetor * @return * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarCreditoARealizar(Integer idSetor) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; try { consulta = "select " + " ger.id, " + // 0 " unNe.id, " + // 1 " elo.id, " + // 2 " loc.id, " + // 3 " setCom.id, " + // 4 " setCom.codigo, " + // 5 " rot.id, " + // 6 " rot.codigo, " + // 7 " qua.id, " + // 8 " qua.numeroQuadra, " + // 9 " imoPer.id, " + // 10 " las.id, " + // 11 " les.id, " + // 12 " lap.id, " + // 13 " lep.id, " + // 14 " conTar.id, " + // 15 " fatGru.id, " + // 16 " empLei.id, " + // 17 " car.creditoOrigem.id, " + // 18 " lic.id, " + // 19 " car.creditoTipo.id, " + // 20 " imo.id, " + // 21 " car.valorCredito, " + // 22 " car.debitoCreditoSituacaoAtual.id, " + // 23 " car.debitoCreditoSituacaoAnterior.id, " + // 24 " car.numeroPrestacaoCredito, " + // 25 " car.numeroPrestacaoRealizada, " + // 26 " car.valorResidualMesAnterior, " + // 27 " car.id "+ // 28 "from " + " CreditoARealizar car " + " left join car.localidade loc " + " left join loc.gerenciaRegional ger " + " left join loc.unidadeNegocio unNe " + " left join loc.localidade elo " + " left join car.imovel imo " + " left join imo.setorComercial setCom " + " left join car.quadra qua " + " left join qua.rota rot " + " left join imo.imovelPerfil imoPer " + " left join imo.ligacaoAguaSituacao las " + " left join imo.ligacaoEsgotoSituacao les " + " left join imo.ligacaoAgua la " + " left join la.ligacaoAguaPerfil lap " + " left join imo.ligacaoEsgoto le " + " left join le.ligacaoEsgotoPerfil lep " + " left join imo.consumoTarifa conTar " + " left join rot.faturamentoGrupo fatGru " + " left join rot.empresa empLei " + " left join car.lancamentoItemContabil lic, " + " SistemaParametro sp " + "where " + " car.anoMesReferenciaContabil = sp.anoMesFaturamento and " + " (car.debitoCreditoSituacaoAtual.id in (0, 3) or car.debitoCreditoSituacaoAnterior.id in (0, 3)) and " + " setCom.id = :idSetor"; retorno = session.createQuery(consulta).setInteger("idSetor", idSetor).list(); } 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; } /** * [UC0571] Gerar Resumo Faturamento * [SB0017] � Gerar Resumo Guia de Devolu��o. * * @author Ivan Sergio * @data 19/01/2011 * * @param idSetor * @return * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarGuiasDevolucao(Integer idSetor) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); Collection retorno = null; String consulta = null; String filtrarPor = null; if ( idSetor == 99999 ){ filtrarPor = " imo is null "; } else { filtrarPor = " setCom.id = :idSetor "; } try { consulta = "select " + " geRe.id, " + // 0 " unNe.id, " + // 1 " elo.id, " + // 2 " loca.id, " + // 3 " setCom.id, " + // 4 " setCom.codigo, " + // 5 " rot.id, " + // 6 " rot.codigo, " + // 7 " qua.id, " + // 8 " qua.numeroQuadra, " + // 9 " case when ( imo is not null ) then imoPer.id else 5 end, " + // 10 " case when ( imo is not null ) then las.id else 1 end, " + // 11 " case when ( imo is not null ) then les.id else 1 end, " + // 12 " case when ( imo is not null ) then pla.id else 0 end, " + // 13 " case when ( imo is not null ) then ple.id else 0 end, " + // 14 " case when ( imo is not null ) then conTar.id else 0 end, " + // 15 " lic.id, " + // 16 " debTip.id, " + // 17 " imo.id, " + // 18 " esfPod.id, " + // 19 " cliTip.id, " + // 20 " fatGru.id, " + // 21 " empr.id, " + // 22 " guia.valorDevolucao, " + // 23 " guia.debitoCreditoSituacaoAtual.id, " + // 24 " guia.debitoCreditoSituacaoAnterior.id " + // 25 "from " + " GuiaDevolucao guia " + " left join guia.localidade loca " + " left join loca.gerenciaRegional geRe " + " left join loca.unidadeNegocio unNe " + " left join loca.localidade elo " + " left join guia.imovel imo " + " left join imo.setorComercial setCom " + " left join imo.quadra qua " + " left join qua.rota rot " + " left join imo.imovelPerfil imoPer " + " left join imo.ligacaoAguaSituacao las " + " left join imo.ligacaoEsgotoSituacao les " + " left join imo.ligacaoAgua la " + " left join la.ligacaoAguaPerfil pla " + " left join imo.ligacaoAgua le " + " left join la.ligacaoAguaPerfil ple " + " left join imo.consumoTarifa conTar " + " left join guia.lancamentoItemContabil lic " + " left join guia.debitoTipo debTip " + " left join guia.cliente clie " + " left join clie.clienteTipo cliTip " + " left join cliTip.esferaPoder esfPod " + " left join rot.faturamentoGrupo fatGru " + " left join rot.empresa empr, " + " SistemaParametro sp " + "where " + " guia.anoMesReferenciaContabil = sp.anoMesFaturamento and " + " guia.conta.id is null and " + " guia.guiaPagamento.id is null and " + " guia.debitoACobrarGeral.id is null and " + " (guia.debitoCreditoSituacaoAtual.id in (0, 3) or guia.debitoCreditoSituacaoAnterior.id in (0, 3)) and " + filtrarPor + "order by " + " guia.id"; if ( idSetor == 99999 ){ retorno = session.createQuery(consulta).list(); } else { retorno = session.createQuery(consulta).setInteger("idSetor", idSetor).list(); } } 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; } //Por Tiago Moreno - 29/07/11 public Object[] getValorCreditoIncluidoCancelado(int idImovel,int anoMes, int anoMesRef) throws ErroRepositorioException { Object[] retorno = new Object[2]; Session session = HibernateUtil.getSession(); try { String sqlCancelamentos = " select sum(coalesce(crrz4.crrz_vlcredito,0) - coalesce(crrz1.crrz_vlcredito,0)) as col_0" + " from faturamento.conta cnta4" + " inner join faturamento.credito_realizado crrz4 on crrz4.cnta_id = cnta4.cnta_id " + " inner join faturamento.conta cnta1 on (cnta1.imov_id = cnta4.imov_id and cnta1.cnta_amreferenciaconta = cnta4.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1) )" + " left join faturamento.credito_realizado crrz1 on crrz1.cnta_id = cnta1.cnta_id and crrz1.crog_id = crrz4.crog_id and crrz1.lict_id= crrz4.lict_id" + " and crrz1.crti_id = crrz4.crti_id" + " and crrz4.crrz_amcobrancacredito = crrz1.crrz_amcobrancacredito" + " and crrz4.crrz_amreferenciacredito = crrz1.crrz_amreferenciacredito" + " where cnta4.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMes" + " and cnta4.dcst_idatual = 4 and crrz4.crog_id in (2,3,4,5) and cnta1.cnta_amreferenciaconta = :anoMesRef" + " and coalesce(crrz4.crrz_vlcredito,0) > coalesce(crrz1.crrz_vlcredito,0)"; BigDecimal retornoCancelamentos = (BigDecimal) session.createSQLQuery(sqlCancelamentos) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idImovel", idImovel) .setInteger("anoMes",anoMes).setInteger("anoMesRef",anoMesRef).setMaxResults(1).uniqueResult(); String sqlInclusao = " select sum(coalesce(crrz1.crrz_vlcredito,0) - coalesce(crrz4.crrz_vlcredito,0)) as col_0" + " from faturamento.conta cnta1" + " inner join faturamento.credito_realizado crrz1 on crrz1.cnta_id = cnta1.cnta_id" + " inner join faturamento.conta cnta4 on (cnta1.imov_id = cnta4.imov_id and cnta1.cnta_amreferenciaconta = cnta4.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1) )" + " left join faturamento.credito_realizado crrz4 on crrz4.cnta_id = cnta4.cnta_id and crrz1.crog_id = crrz4.crog_id and crrz1.lict_id= crrz4.lict_id" + " and crrz1.crti_id = crrz4.crti_id" + " and crrz4.crrz_amcobrancacredito = crrz1.crrz_amcobrancacredito" + " and crrz4.crrz_amreferenciacredito = crrz1.crrz_amreferenciacredito" + " where cnta1.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMes" + " and cnta4.dcst_idatual = 4 and crrz1.crog_id in (2,3,4,5) and cnta4.cnta_amreferenciaconta = :anoMesRef" + " and coalesce(crrz1.crrz_vlcredito,0) > coalesce(crrz4.crrz_vlcredito,0)"; BigDecimal retornoInclusoes = (BigDecimal) session.createSQLQuery(sqlInclusao) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idImovel", idImovel) .setInteger("anoMes",anoMes).setInteger("anoMesRef",anoMesRef).setMaxResults(1).uniqueResult(); if (retornoInclusoes == null) { retornoInclusoes = BigDecimal.ZERO; } if (retornoCancelamentos == null){ retornoCancelamentos = BigDecimal.ZERO; } retorno[0] = retornoCancelamentos ; retorno[1] = retornoInclusoes; return retorno; } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } } //Por Tiago Moreno - 29/07/11 public Object[] getValorDebitoIncluidoCancelado(int idImovel,int anoMes, int anoMesRef) throws ErroRepositorioException { Object[] retorno = new Object[2]; Session session = HibernateUtil.getSession(); try { String sqlCancelamentos = " select sum(coalesce(dbcb4.dbcb_vlprestacao,0) - coalesce(dbcb1.dbcb_vlprestacao,0)) as col_0" + " from faturamento.conta cnta4" + " inner join faturamento.debito_cobrado dbcb4 on dbcb4.cnta_id = cnta4.cnta_id " + " inner join faturamento.conta cnta1 on (cnta1.imov_id = cnta4.imov_id and cnta1.cnta_amreferenciaconta = cnta4.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1) )" + " left join faturamento.debito_cobrado dbcb1 on dbcb1.cnta_id = cnta1.cnta_id and dbcb1.fntp_id = dbcb4.fntp_id and dbcb1.lict_id= dbcb4.lict_id" + " and dbcb1.dbtp_id = dbcb4.dbtp_id" + " and dbcb4.dbcb_amcobrancadebito = dbcb1.dbcb_amcobrancadebito" + " and dbcb4.dbcb_amreferenciadebito = dbcb1.dbcb_amreferenciadebito" + " where cnta4.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMes" + " and cnta4.dcst_idatual = 4 and dbcb4.fntp_id < 10 and cnta1.cnta_amreferenciaconta = :anoMesRef" + " and coalesce(dbcb4.dbcb_vlprestacao,0) > coalesce(dbcb1.dbcb_vlprestacao,0)"; BigDecimal retornoCancelamentos = (BigDecimal) session.createSQLQuery(sqlCancelamentos) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idImovel", idImovel) .setInteger("anoMes",anoMes).setInteger("anoMesRef",anoMesRef).setMaxResults(1).uniqueResult(); String sqlInclusao = " select sum(coalesce(dbcb1.dbcb_vlprestacao,0) - coalesce(dbcb4.dbcb_vlprestacao,0)) as col_0" + " from faturamento.conta cnta1" + " inner join faturamento.debito_cobrado dbcb1 on dbcb1.cnta_id = cnta1.cnta_id" + " inner join faturamento.conta cnta4 on (cnta1.imov_id = cnta4.imov_id and cnta1.cnta_amreferenciaconta = cnta4.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1) )" + " left join faturamento.debito_cobrado dbcb4 on dbcb4.cnta_id = cnta4.cnta_id and dbcb1.fntp_id = dbcb4.fntp_id and dbcb1.lict_id= dbcb4.lict_id" + " and dbcb1.dbtp_id = dbcb4.dbtp_id" + " and dbcb4.dbcb_amcobrancadebito = dbcb1.dbcb_amcobrancadebito" + " and dbcb4.dbcb_amreferenciadebito = dbcb1.dbcb_amreferenciadebito" + " where cnta1.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMes" + " and cnta4.dcst_idatual = 4 and dbcb1.fntp_id < 10 and cnta4.cnta_amreferenciaconta = :anoMesRef" + " and coalesce(dbcb1.dbcb_vlprestacao,0) > coalesce(dbcb4.dbcb_vlprestacao,0)"; BigDecimal retornoInclusoes = (BigDecimal) session.createSQLQuery(sqlInclusao) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idImovel", idImovel) .setInteger("anoMes",anoMes).setInteger("anoMesRef",anoMesRef).setMaxResults(1).uniqueResult(); if (retornoInclusoes == null) { retornoInclusoes = BigDecimal.ZERO; } if (retornoCancelamentos == null){ retornoCancelamentos = BigDecimal.ZERO; } retorno[0] = retornoCancelamentos ; retorno[1] = retornoInclusoes; return retorno; } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } } /** * Por Tiago Moreno * 03/08/2011 */ public BigDecimal getValorCredito2ou3IncluidoCancelado(Integer idConta) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); try { String sql = " select sum(crrz_vlcredito) as col_0" + " from faturamento.credito_realizado crrz, faturamento.conta cnta" + " where cnta.cnta_id = crrz.cnta_id" + " and crrz.crog_id in (2,3,4,5) and cnta.cnta_id = :idConta "; BigDecimal retornoQuery = (BigDecimal) session.createSQLQuery(sql) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idConta", idConta).setMaxResults(1).uniqueResult(); if (retornoQuery == null){ retornoQuery = BigDecimal.ZERO; } return retornoQuery; } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } } /** * Por Tiago Moreno * 03/08/2011 */ public BigDecimal getValorDebito2ou3IncluidoCancelado(Integer idConta) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); try { String sql = " select sum(dbcb_vlprestacao) as col_0" + " from faturamento.debito_cobrado dbcb, faturamento.conta cnta" + " where dbcb.cnta_id = cnta.cnta_id" + " and dbcb.fntp_id < 10 and cnta.cnta_id = :idConta "; BigDecimal retornoQuery = (BigDecimal) session.createSQLQuery(sql) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idConta", idConta).setMaxResults(1).uniqueResult(); if (retornoQuery == null){ retornoQuery = BigDecimal.ZERO; } return retornoQuery; } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } } //Por Tiago Moreno - 09/08/11 public Object[] getValorCreditoIncluidoCanceladoCategoria(int idImovel,int anoMes, int anoMesRef, int idCategoria) throws ErroRepositorioException { Object[] retorno = new Object[2]; Session session = HibernateUtil.getSession(); try { String sqlCancelamentos = " select sum(coalesce(crtg4.crcg_vlcategoria,0) - coalesce(crtg1.crcg_vlcategoria,0)) as col_0" + " from faturamento.conta cnta4 " + " inner join faturamento.credito_realizado crrz4 on crrz4.cnta_id = cnta4.cnta_id " + " inner join faturamento.conta cnta1 on (cnta1.imov_id = cnta4.imov_id and cnta1.cnta_amreferenciaconta = cnta4.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1) )" + " left join faturamento.credito_realizado crrz1 on crrz1.cnta_id = cnta1.cnta_id and crrz1.crog_id = crrz4.crog_id and crrz1.lict_id= crrz4.lict_id" + " and crrz1.crti_id = crrz4.crti_id" + " and crrz4.crrz_amcobrancacredito = crrz1.crrz_amcobrancacredito" + " and crrz4.crrz_amreferenciacredito = crrz1.crrz_amreferenciacredito" + " left join faturamento.cred_realizado_catg crtg4 on crtg4.crrz_id = crrz4.crrz_id and crtg4.catg_id = :idCategoria " + " left join faturamento.cred_realizado_catg crtg1 on crtg1.crrz_id = crrz1.crrz_id and crtg1.catg_id = :idCategoria " + " where cnta4.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMes " + " and cnta4.dcst_idatual = 4 and crrz4.crog_id in (2,3,4,5) and cnta1.cnta_amreferenciaconta = :anoMesRef " + " and coalesce(crtg4.crcg_vlcategoria,0) > coalesce(crtg1.crcg_vlcategoria,0)"; BigDecimal retornoCancelamentos = (BigDecimal) session.createSQLQuery(sqlCancelamentos) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idImovel", idImovel) .setInteger("anoMes",anoMes).setInteger("anoMesRef",anoMesRef).setInteger("idCategoria", idCategoria).setMaxResults(1).uniqueResult(); String sqlInclusao = " select sum(coalesce(crtg1.crcg_vlcategoria,0) - coalesce(crtg4.crcg_vlcategoria,0)) as col_0" + " from faturamento.conta cnta1" + " inner join faturamento.credito_realizado crrz1 on crrz1.cnta_id = cnta1.cnta_id" + " inner join faturamento.conta cnta4 on (cnta1.imov_id = cnta4.imov_id and cnta1.cnta_amreferenciaconta = cnta4.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1) )" + " left join faturamento.credito_realizado crrz4 on crrz4.cnta_id = cnta4.cnta_id and crrz1.crog_id = crrz4.crog_id and crrz1.lict_id= crrz4.lict_id" + " and crrz1.crti_id = crrz4.crti_id" + " and crrz4.crrz_amcobrancacredito = crrz1.crrz_amcobrancacredito" + " and crrz4.crrz_amreferenciacredito = crrz1.crrz_amreferenciacredito" + " left join faturamento.cred_realizado_catg crtg4 on crtg4.crrz_id = crrz4.crrz_id and crtg4.catg_id = :idCategoria " + " left join faturamento.cred_realizado_catg crtg1 on crtg1.crrz_id = crrz1.crrz_id and crtg1.catg_id = :idCategoria " + " where cnta1.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMes" + " and cnta4.dcst_idatual = 4 and crrz1.crog_id in (2,3,4,5) and cnta4.cnta_amreferenciaconta = :anoMesRef" + " and coalesce(crtg1.crcg_vlcategoria,0) > coalesce(crtg4.crcg_vlcategoria,0)"; BigDecimal retornoInclusoes = (BigDecimal) session.createSQLQuery(sqlInclusao) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idImovel", idImovel) .setInteger("anoMes",anoMes).setInteger("anoMesRef",anoMesRef).setInteger("idCategoria", idCategoria).setMaxResults(1).uniqueResult(); if (retornoInclusoes == null) { retornoInclusoes = BigDecimal.ZERO; } if (retornoCancelamentos == null){ retornoCancelamentos = BigDecimal.ZERO; } retorno[0] = retornoCancelamentos ; retorno[1] = retornoInclusoes; return retorno; } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } } public Object[] getValorDebitoIncluidoCanceladoCategoria(int idImovel,int anoMes, int anoMesRef, int idCategoria) throws ErroRepositorioException { Object[] retorno = new Object[2]; Session session = HibernateUtil.getSession(); try { String sqlCancelamentos = " select sum(coalesce(dccg4.dccg_vlcategoria,0) - coalesce(dccg1.dccg_vlcategoria,0)) as col_0" + " from faturamento.conta cnta4" + " inner join faturamento.debito_cobrado dbcb4 on dbcb4.cnta_id = cnta4.cnta_id " + " inner join faturamento.conta cnta1 on (cnta1.imov_id = cnta4.imov_id and cnta1.cnta_amreferenciaconta = cnta4.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1) )" + " left join faturamento.debito_cobrado dbcb1 on dbcb1.cnta_id = cnta1.cnta_id and dbcb1.fntp_id = dbcb4.fntp_id and dbcb1.lict_id= dbcb4.lict_id" + " and dbcb1.dbtp_id = dbcb4.dbtp_id" + " and dbcb4.dbcb_amcobrancadebito = dbcb1.dbcb_amcobrancadebito" + " and dbcb4.dbcb_amreferenciadebito = dbcb1.dbcb_amreferenciadebito" + " left join faturamento.debito_cobrado_categoria dccg4 on dccg4.dbcb_id = dbcb4.dbcb_id and dccg4.catg_id = :idCategoria " + " left join faturamento.debito_cobrado_categoria dccg1 on dccg1.dbcb_id = dbcb1.dbcb_id and dccg1.catg_id = :idCategoria " + " where cnta4.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMes" + " and cnta4.dcst_idatual = 4 and dbcb4.fntp_id < 10 and cnta1.cnta_amreferenciaconta = :anoMesRef" + " and coalesce(dccg4.dccg_vlcategoria,0) > coalesce(dccg1.dccg_vlcategoria,0)"; BigDecimal retornoCancelamentos = (BigDecimal) session.createSQLQuery(sqlCancelamentos) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idImovel", idImovel) .setInteger("anoMes",anoMes).setInteger("anoMesRef",anoMesRef).setInteger("idCategoria", idCategoria).setMaxResults(1).uniqueResult(); String sqlInclusao = " select sum(coalesce(dccg1.dccg_vlcategoria,0) - coalesce(dccg4.dccg_vlcategoria,0)) as col_0" + " from faturamento.conta cnta1" + " inner join faturamento.debito_cobrado dbcb1 on dbcb1.cnta_id = cnta1.cnta_id" + " inner join faturamento.conta cnta4 on (cnta1.imov_id = cnta4.imov_id and cnta1.cnta_amreferenciaconta = cnta4.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1) )" + " left join faturamento.debito_cobrado dbcb4 on dbcb4.cnta_id = cnta4.cnta_id and dbcb1.fntp_id = dbcb4.fntp_id and dbcb1.lict_id= dbcb4.lict_id" + " and dbcb1.dbtp_id = dbcb4.dbtp_id" + " and dbcb4.dbcb_amcobrancadebito = dbcb1.dbcb_amcobrancadebito" + " and dbcb4.dbcb_amreferenciadebito = dbcb1.dbcb_amreferenciadebito" + " left join faturamento.debito_cobrado_categoria dccg4 on dccg4.dbcb_id = dbcb4.dbcb_id and dccg4.catg_id = :idCategoria " + " left join faturamento.debito_cobrado_categoria dccg1 on dccg1.dbcb_id = dbcb1.dbcb_id and dccg1.catg_id = :idCategoria " + " where cnta1.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMes" + " and cnta4.dcst_idatual = 4 and dbcb1.fntp_id < 10 and cnta4.cnta_amreferenciaconta = :anoMesRef" + " and coalesce(dccg1.dccg_vlcategoria,0) > coalesce(dccg4.dccg_vlcategoria,0)"; BigDecimal retornoInclusoes = (BigDecimal) session.createSQLQuery(sqlInclusao) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idImovel", idImovel) .setInteger("anoMes",anoMes).setInteger("anoMesRef",anoMesRef).setInteger("idCategoria", idCategoria).setMaxResults(1).uniqueResult(); if (retornoInclusoes == null) { retornoInclusoes = BigDecimal.ZERO; } if (retornoCancelamentos == null){ retornoCancelamentos = BigDecimal.ZERO; } retorno[0] = retornoCancelamentos ; retorno[1] = retornoInclusoes; return retorno; } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } } /** * Por Tiago Moreno * 03/08/2011 */ public BigDecimal getValorCredito2ou3IncluidoCanceladoCategoria(Integer idConta, int idCategoria) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); try { String sql = " select sum(crcg_vlcategoria) as col_0" + " from faturamento.cred_realizado_catg crcg, faturamento.credito_realizado crrz, faturamento.conta cnta" + " where crcg.crrz_id = crrz.crrz_id and cnta.cnta_id = crrz.cnta_id" + " and crrz.crog_id in (2,3,4,5) and cnta.cnta_id = :idConta and crcg.catg_id = :idCategoria "; BigDecimal retornoQuery = (BigDecimal) session.createSQLQuery(sql) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idConta", idConta).setInteger("idCategoria", idCategoria).setMaxResults(1).uniqueResult(); if (retornoQuery == null){ retornoQuery = BigDecimal.ZERO; } return retornoQuery; } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } } /** * Por Tiago Moreno * 03/08/2011 */ public BigDecimal getValorDebito2ou3IncluidoCanceladoCategoria(Integer idConta, int idCategoria) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); try { String sql = " select sum(dccg_vlcategoria) as col_0" + " from faturamento.debito_cobrado_categoria dccg, faturamento.debito_cobrado dbcb, faturamento.conta cnta" + " where dccg.dbcb_id = dbcb.dbcb_id and dbcb.cnta_id = cnta.cnta_id" + " and dbcb.fntp_id < 10 and cnta.cnta_id = :idConta and dccg.catg_id = :idCategoria "; BigDecimal retornoQuery = (BigDecimal) session.createSQLQuery(sql) .addScalar("col_0", Hibernate.BIG_DECIMAL) .setInteger("idConta", idConta).setInteger("idCategoria", idCategoria).setMaxResults(1).uniqueResult(); if (retornoQuery == null){ retornoQuery = BigDecimal.ZERO; } return retornoQuery; } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } } public List getValorAnteriorContaRetificadaCategoria(int idImovel, int anoMesRef , int anoMes, int verif, int idCategoria ) throws ErroRepositorioException { List retorno = null; Session session = HibernateUtil.getSession(); try { String sqlDataSistemaParametro = " select parm_amreferenciafaturamento as col_0 from cadastro.sistema_parametros"; Integer amFatur = (Integer) session.createSQLQuery(sqlDataSistemaParametro) .addScalar("col_0",Hibernate.INTEGER).setMaxResults(1).uniqueResult(); String sql = " select "; if (verif == 0) { //contas com dcst_idatual = 1 ou dcst_idanterior = 1 e com a conta com dcst_idatual = 4 respectiva sql = sql + " sum(cg4.ctcg_vlagua - cg1.ctcg_vlagua) as col_0, " //0 Agua + " sum(cg4.ctcg_vlesgoto - cg1.ctcg_vlesgoto) as col_1, " //1 Esgoto + " sum(cg4.ctcg_nnconsumoagua - cg1.ctcg_nnconsumoagua) as col_2, " //2 Volume Agua + " sum(cg4.ctcg_nnconsumoesgoto - cg1.ctcg_nnconsumoesgoto) as col_3 " //3 Volume Esgoto + " from faturamento.conta c1, faturamento.conta c4, faturamento.conta_categoria cg1, faturamento.conta_categoria cg4 " + " where c1.imov_id = c4.imov_id " + " and c1.cnta_amreferenciaconta = c4.cnta_amreferenciaconta " + " and c4.dcst_idatual = 4 " + " and (c1.dcst_idatual = 1 or c1.dcst_idanterior = 1) " + " and c4.cnta_amreferenciacontabil = :anoMes " //ano mes do sistema parametro + " and c4.cnta_amreferenciaconta = :anoMesRef " //amreferenciaconta + " and cg4.cnta_id = c4.cnta_id " + " and cg1.cnta_id = c1.cnta_id " + " and cg4.catg_id = :idCategoria " + " and c4.imov_id = :idImovel "; retorno = session.createSQLQuery(sql) .addScalar("col_0",Hibernate.BIG_DECIMAL) .addScalar("col_1",Hibernate.BIG_DECIMAL) .addScalar("col_2",Hibernate.INTEGER) .addScalar("col_3",Hibernate.INTEGER) .setInteger("idImovel",idImovel ) .setInteger("anoMesRef", anoMesRef) .setInteger("anoMes",anoMes) .setInteger("idCategoria",idCategoria) .list(); System.out.println("AnoMes 0: "+amFatur+""); System.out.println("Imovel 0: "+idImovel+""); } if (verif == 1) { //contas com dcst_idatual = 4 sem a conta com dcst_idatual = 1 ou dcst_idanterior = 1 respectiva sql = sql + " sum(cg4.ctcg_vlagua) as col_0, " //0 Agua + " sum(cg4.ctcg_vlesgoto) as col_1, " //1 Esgoto + " sum(cg4.ctcg_nnconsumoagua) as col_2, " //5 Volume Agua + " sum(cg4.ctcg_nnconsumoesgoto) as col_3 " //6 Volume Esgoto + " from faturamento.conta c4, faturamento.conta_categoria cg4 " + " where c4.imov_id = :idImovel " + " and c4.cnta_amreferenciacontabil = :anoMes " + " and c4.cnta_amreferenciaconta = :anoMesRef " + " and cg4.cnta_id = c4.cnta_id " + " and cg4.catg_id = :idCategoria " + " and (c4.dcst_idatual = 1 or c4.dcst_idanterior = 1)"; retorno = session.createSQLQuery(sql) .addScalar("col_0",Hibernate.BIG_DECIMAL) .addScalar("col_1",Hibernate.BIG_DECIMAL) .addScalar("col_2",Hibernate.BIG_DECIMAL) .addScalar("col_3",Hibernate.BIG_DECIMAL) .setInteger("idImovel",idImovel ) .setInteger("anoMesRef", anoMesRef ) .setInteger("anoMes",anoMes) .setInteger("idCategoria",idCategoria) .list(); System.out.println("AnoMes 1: "+anoMes+""); System.out.println("Imovel 1: "+idImovel+""); } } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } public Object[] getValorAguaEsgotoIncluidoCanceladoCategoria(int idImovel,int anoMesConta, int anoMesContabil, int idCategoria, int idSubcategoria) throws ErroRepositorioException { Object[] retorno = new Object[8]; Session session = HibernateUtil.getSession(); try { String sqlCancelamentosAgua = " select sum(coalesce(ctcg4.ctcg_vlagua,0) - coalesce(ctcg1.ctcg_vlagua,0)) as col_0," + " sum(coalesce(ctcg4.ctcg_nnconsumoagua,0) - coalesce(ctcg1.ctcg_nnconsumoagua,0)) as col_1" + " from faturamento.conta cnta4" + " inner join faturamento.conta_categoria ctcg4 on ctcg4.cnta_id = cnta4.cnta_id " + " inner join faturamento.conta cnta1 on (cnta1.imov_id = cnta4.imov_id and cnta1.cnta_amreferenciaconta = cnta4.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1) )" + " left join faturamento.conta_categoria ctcg1 on ctcg1.cnta_id = cnta1.cnta_id and ctcg1.catg_id = :idCategoria and ctcg1.scat_id = :idSubcategoria " + " where cnta4.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMesContabil" + " and ctcg4.catg_id = :idCategoria and ctcg4.scat_id = :idSubcategoria " + " and cnta4.dcst_idatual = 4 and cnta4.cnta_amreferenciaconta = :anoMesConta" + " and coalesce(ctcg4.ctcg_vlagua,0) > coalesce(ctcg1.ctcg_vlagua,0)"; Object[] retornoCancelamentosAgua = (Object[]) session.createSQLQuery(sqlCancelamentosAgua) .addScalar("col_0", Hibernate.BIG_DECIMAL) .addScalar("col_1", Hibernate.INTEGER) .setInteger("idImovel", idImovel) .setInteger("anoMesContabil",anoMesContabil) .setInteger("anoMesConta",anoMesConta) .setInteger("idCategoria", idCategoria) .setInteger("idSubcategoria", idSubcategoria) .setMaxResults(1).uniqueResult(); String sqlInclusoesAgua = " select sum(coalesce(ctcg1.ctcg_vlagua,0) - coalesce(ctcg4.ctcg_vlagua,0)) as col_0," + " sum(coalesce(ctcg1.ctcg_nnconsumoagua,0) - coalesce(ctcg4.ctcg_nnconsumoagua,0)) as col_1" + " from faturamento.conta cnta1" + " inner join faturamento.conta_categoria ctcg1 on ctcg1.cnta_id = cnta1.cnta_id " + " inner join faturamento.conta cnta4 on (cnta4.imov_id = cnta1.imov_id and cnta4.cnta_amreferenciaconta = cnta1.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1))" + " left join faturamento.conta_categoria ctcg4 on ctcg4.cnta_id = cnta4.cnta_id and ctcg4.catg_id = :idCategoria and ctcg4.scat_id = :idSubcategoria " + " where cnta1.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMesContabil" + " and ctcg1.catg_id = :idCategoria and ctcg1.scat_id = :idSubcategoria " + " and cnta4.dcst_idatual = 4 and cnta4.cnta_amreferenciaconta = :anoMesConta" + " and coalesce(ctcg1.ctcg_vlagua,0) > coalesce(ctcg4.ctcg_vlagua,0)"; Object[] retornoInclusoesAgua = (Object[]) session.createSQLQuery(sqlInclusoesAgua) .addScalar("col_0", Hibernate.BIG_DECIMAL) .addScalar("col_1", Hibernate.INTEGER) .setInteger("idImovel", idImovel) .setInteger("anoMesContabil",anoMesContabil) .setInteger("anoMesConta",anoMesConta) .setInteger("idCategoria", idCategoria) .setInteger("idSubcategoria", idSubcategoria) .setMaxResults(1).uniqueResult(); String sqlCancelamentosEsgoto = " select sum(coalesce(ctcg4.ctcg_vlesgoto,0) - coalesce(ctcg1.ctcg_vlesgoto,0)) as col_0," + " sum(coalesce(ctcg4.ctcg_nnconsumoesgoto,0) - coalesce(ctcg1.ctcg_nnconsumoesgoto,0)) as col_1" + " from faturamento.conta cnta4" + " inner join faturamento.conta_categoria ctcg4 on ctcg4.cnta_id = cnta4.cnta_id " + " inner join faturamento.conta cnta1 on (cnta1.imov_id = cnta4.imov_id and cnta1.cnta_amreferenciaconta = cnta4.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1) )" + " left join faturamento.conta_categoria ctcg1 on ctcg1.cnta_id = cnta1.cnta_id and ctcg1.catg_id = :idCategoria and ctcg1.scat_id = :idSubcategoria " + " where cnta4.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMesContabil" + " and ctcg4.catg_id = :idCategoria and ctcg4.scat_id = :idSubcategoria " + " and cnta4.dcst_idatual = 4 and cnta4.cnta_amreferenciaconta = :anoMesConta" + " and coalesce(ctcg4.ctcg_vlesgoto,0) > coalesce(ctcg1.ctcg_vlesgoto,0)"; Object[] retornoCancelamentosEsgoto = (Object[]) session.createSQLQuery(sqlCancelamentosEsgoto) .addScalar("col_0", Hibernate.BIG_DECIMAL) .addScalar("col_1", Hibernate.INTEGER) .setInteger("idImovel", idImovel) .setInteger("anoMesContabil",anoMesContabil) .setInteger("anoMesConta",anoMesConta) .setInteger("idCategoria", idCategoria) .setInteger("idSubcategoria", idSubcategoria) .setMaxResults(1).uniqueResult(); String sqlInclusoesEsgoto = " select sum(coalesce(ctcg1.ctcg_vlesgoto,0) - coalesce(ctcg4.ctcg_vlesgoto,0)) as col_0," + " sum(coalesce(ctcg1.ctcg_nnconsumoesgoto,0) - coalesce(ctcg4.ctcg_nnconsumoesgoto,0)) as col_1" + " from faturamento.conta cnta1" + " inner join faturamento.conta_categoria ctcg1 on ctcg1.cnta_id = cnta1.cnta_id " + " inner join faturamento.conta cnta4 on (cnta4.imov_id = cnta1.imov_id and cnta4.cnta_amreferenciaconta = cnta1.cnta_amreferenciaconta" + " and (cnta1.dcst_idatual = 1 or cnta1.dcst_idanterior = 1))" + " left join faturamento.conta_categoria ctcg4 on ctcg4.cnta_id = cnta4.cnta_id and ctcg4.catg_id = :idCategoria and ctcg4.scat_id = :idSubcategoria " + " where cnta1.imov_id = :idImovel and cnta4.cnta_amreferenciacontabil = :anoMesContabil" + " and ctcg1.catg_id = :idCategoria and ctcg1.scat_id = :idSubcategoria " + " and cnta4.dcst_idatual = 4 and cnta4.cnta_amreferenciaconta = :anoMesConta" + " and coalesce(ctcg1.ctcg_vlesgoto,0) > coalesce(ctcg4.ctcg_vlesgoto,0)"; Object[] retornoInclusoesEsgoto = (Object[]) session.createSQLQuery(sqlInclusoesEsgoto) .addScalar("col_0", Hibernate.BIG_DECIMAL) .addScalar("col_1", Hibernate.INTEGER) .setInteger("idImovel", idImovel) .setInteger("anoMesContabil",anoMesContabil) .setInteger("anoMesConta",anoMesConta) .setInteger("idCategoria", idCategoria) .setInteger("idSubcategoria", idSubcategoria) .setMaxResults(1).uniqueResult(); if (retornoCancelamentosAgua == null) { retornoCancelamentosAgua[0] = BigDecimal.ZERO; retornoCancelamentosAgua[1] = new Integer(0); } else { if (retornoCancelamentosAgua[0] == null){ retornoCancelamentosAgua[0] = BigDecimal.ZERO; } if (retornoCancelamentosAgua[1] == null) { retornoCancelamentosAgua[1] = new Integer(0); } } if (retornoInclusoesAgua == null) { retornoInclusoesAgua[0] = BigDecimal.ZERO; retornoInclusoesAgua[1] = new Integer(0); } else { if (retornoInclusoesAgua[0] == null){ retornoInclusoesAgua[0] = BigDecimal.ZERO; } if (retornoInclusoesAgua[1] == null) { retornoInclusoesAgua[1] = new Integer(0); } } if (retornoCancelamentosEsgoto == null){ retornoCancelamentosEsgoto[0] = BigDecimal.ZERO; retornoCancelamentosEsgoto[1] = new Integer(0); } else { if (retornoCancelamentosEsgoto[0] == null){ retornoCancelamentosEsgoto[0] = BigDecimal.ZERO; } if (retornoCancelamentosEsgoto[1] == null) { retornoCancelamentosEsgoto[1] = new Integer(0); } } if (retornoInclusoesEsgoto == null){ retornoInclusoesEsgoto[0] = BigDecimal.ZERO; retornoInclusoesEsgoto[1] = new Integer(0); } else { if (retornoInclusoesEsgoto[0] == null){ retornoInclusoesEsgoto[0] = BigDecimal.ZERO; } if (retornoInclusoesEsgoto[1] == null) { retornoInclusoesEsgoto[1] = new Integer(0); } } retorno[0] = retornoCancelamentosAgua[0]; retorno[1] = retornoCancelamentosAgua[1]; retorno[2] = retornoInclusoesAgua[0]; retorno[3] = retornoInclusoesAgua[1]; retorno[4] = retornoCancelamentosEsgoto[0]; retorno[5] = retornoCancelamentosEsgoto[1]; retorno[6] = retornoInclusoesEsgoto[0]; retorno[7] = retornoInclusoesEsgoto[1]; } catch (HibernateException e) { // levanta a exce��o para a pr�xima camada throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** - Nova pesquisa de Cr�ditos para gerar Resumo de Faturamento * do gerencial para corrigir problema de cr�ditos persistidos na categoria errada * * @author Wellington Rocha * @date 12/09/2011 */ public List pesquisarCreditosRealizadosResumoFaturamentoGerencial (int idConta)throws ErroRepositorioException{ List retorno = null; Session session = HibernateUtil.getSession(); try { String hql = "select " + " creditorealizado.creditoOrigem.id, " + " creditorealizado.lancamentoItemContabil.id, " + " sum(creditorealizado.valorCredito) as valorcredito, " + " count(creditorealizado.creditoOrigem.id), " + " creditorealizado.creditoTipo.id " + "from " + " gcom.faturamento.conta.Conta conta " + " inner join conta.quadraConta quadra " + " inner join conta.creditoRealizados as creditorealizado " + "where " + " conta.id = :idConta " + " group by " + " creditorealizado.creditoOrigem.id, creditorealizado.lancamentoItemContabil.id, creditorealizado.creditoTipo.id " + "order by " + " creditorealizado.creditoOrigem.id, creditorealizado.lancamentoItemContabil.id, creditorealizado.creditoTipo.id"; retorno = session.createQuery(hql).setInteger("idConta", idConta).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** - Pesquisa de Guias de pagamento para gerar resumo do faturamento, * excluindo as guias de entrada de parcelamento pagas. * * @author Wellington Rocha * @date 14/09/2011 */ public List pesquisarGuiaPagamentoResumoFaturamentoGerencial (int idSetor, int anoMes)throws ErroRepositorioException{ List retorno = null; Session session = HibernateUtil.getSession(); try { String hql = " select " + " 1, " // 00 = FINANCIAMENTO TIPO + " 7, " // 01 = DOCUMENTO TIPO + " guiaPagamento.lancamentoItemContabil.id, " // 02 = LANCAMENTO ITEM CONTABIL + " loca.gerenciaRegional.id, " // 03 = GERENCIA REGIONAL + " loca.unidadeNegocio.id, " // 04 = UNIDADE NEGOCIO + " loca.localidade.id, " // elo // 05 = ELO + " loca.id, "// idlocalidade // 06 = LOCALIDADE + " setor.id, " // 07 = SETOR COMERCIAL + " imov.quadra.rota.id, " // 08 = ROTA + " imov.quadra.id, " // 09 = QUADRA + " setor.codigo, " // 10 = CODIGO SETOR COMERCIAL + " imov.quadra.numeroQuadra, " // 11 = NUMERO QUADRA + " imov.imovelPerfil.id, " // 12 = PERFIL DO IMOVEL + " imov.ligacaoAguaSituacao.id, " // 13 = SITUACAO AGUA LIGACAO + " imov.ligacaoEsgotoSituacao.id, " // 14 = SITUACAO ESGOTO LIGACAO + " case when ( " // ------------------- + " imov.ligacaoAgua.ligacaoAguaPerfil.id is null ) then " // CHAVES DE QUEBRA! + " 0 " // ------------------- + " else " // + " imov.ligacaoAgua.ligacaoAguaPerfil.id " // + " end, " // // 15 = PERFIL LIGACAO AGUA + " case when ( " // + " imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id is null ) then " // + " 0 " // + " else " // + " imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id " // 16 = PERFIL LIGACAO ESGOTO + " end, "// // + " guiaPagamento.debitoCreditoSituacaoAtual.id, " // 17 + " imov.quadra.rota.empresa.id, " // 18 = EMPRESA + " imov.consumoTarifa.id, " // 19 = CONSUMO TARIFA + " imov.quadra.rota.faturamentoGrupo.id, " // 20 = GRUPO DE FATURAMENTO + " sum(guiaPagamento.valorDebito) as valordebitos, " // 21 = VALOR DEBITO GUIA + " count(guiaPagamento.id) as qtddocumentos, " // 22 = QUANTIDADE GUIA + " guiaPagamento.debitoTipo.id, " // 23 = DEBITO TIPO + " imov.id, " // 24 = IMOVEL +" rota.codigo " //25 = codigo rota +" " +" from " +" gcom.arrecadacao.pagamento.GuiaPagamento as guiaPagamento " +" inner join guiaPagamento.lancamentoItemContabil as lancamentoitemcontabil " +" inner join guiaPagamento.imovel as imov " +" inner join imov.localidade as loca " +" inner join imov.setorComercial as setor " +" inner join imov.quadra.rota rota " +" left join imov.ligacaoAgua ligacaoAgua " +" left join imov.ligacaoEsgoto ligacaoEsgoto " +" " +" " +" where " +" guiaPagamento.anoMesReferenciaContabil = :anoMes and " +" imov.quadra.setorComercial.id = :idSetor and " +" guiaPagamento.financiamentoTipo.id <> 9 and " +" (guiaPagamento.debitoCreditoSituacaoAtual.id = 0 or guiaPagamento.debitoCreditoSituacaoAnterior.id = 0) " +" " +" " +" group by " +" guiaPagamento.lancamentoItemContabil.id, loca.gerenciaRegional.id, loca.unidadeNegocio.id, " +" loca.localidade.id, loca.id, setor.id, imov.quadra.rota.id, " +" imov.quadra.id, setor.codigo, imov.quadra.numeroQuadra, imov.imovelPerfil.id, " +" imov.ligacaoAguaSituacao.id, imov.ligacaoEsgotoSituacao.id, " +" imov.ligacaoAgua.ligacaoAguaPerfil.id, imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id, " +" guiaPagamento.debitoCreditoSituacaoAtual.id, imov.quadra.rota.empresa.id, " +" imov.consumoTarifa.id, imov.quadra.rota.faturamentoGrupo.id, guiaPagamento.debitoTipo.id, imov.id, rota.codigo " +" " +" " +" order by " +" guiaPagamento.lancamentoItemContabil.id, loca.gerenciaRegional.id, loca.unidadeNegocio.id, " +" loca.localidade.id, loca.id, setor.id, imov.quadra.rota.id, " +" imov.quadra.id, setor.codigo, imov.quadra.numeroQuadra, imov.imovelPerfil.id, " +" imov.ligacaoAguaSituacao.id, imov.ligacaoEsgotoSituacao.id, " +" imov.ligacaoAgua.ligacaoAguaPerfil.id, imov.ligacaoEsgoto.ligacaoEsgotoPerfil.id, " +" guiaPagamento.debitoCreditoSituacaoAtual.id, imov.quadra.rota.empresa.id, " +" imov.consumoTarifa.id, imov.quadra.rota.faturamentoGrupo.id, guiaPagamento.debitoTipo.id "; retorno = session.createQuery(hql).setInteger("anoMes",anoMes) .setInteger("idSetor", idSetor).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } }