package gcom.gerencial;
import gcom.gerencial.bean.FiltrarRelatorioOrcamentoSINPHelper;
import gcom.gerencial.bean.FiltrarRelatorioQuadroMetasAcumuladoHelper;
import gcom.gerencial.bean.FiltrarRelatorioQuadroMetasExercicioHelper;
import gcom.gerencial.bean.InformarDadosGeracaoRelatorioConsultaHelper;
import gcom.util.ConstantesSistema;
import gcom.util.ErroRepositorioException;
import gcom.util.GeradorSqlRelatorio;
import gcom.util.HibernateUtil;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.Session;
/**
*
*
* @author Raphael Rossiter
* @created 20/05/2006
*/
public class RepositorioGerencialHBM implements IRepositorioGerencial {
/**
* Constantes do Relatorio de Quadro de Metas Aculumado
*/
// Ligacoes Cadastradas
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_SUBCATEGORIA_101 = 0;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_SUBCATEGORIA_102 = 1;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_SUBCATEGORIA_103 = 2;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_SUBCATEGORIA_200 = 3;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_SUBCATEGORIA_300 = 4;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_SUBCATEGORIA_400 = 5;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_SUBCATEGORIA_116 = 6;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_SUBCATEGORIA_115 = 7;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS = 8;
// Ligacoes Cortadas
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_SUBCATEGORIA_101 = 9;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_SUBCATEGORIA_102 = 10;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_SUBCATEGORIA_103 = 11;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_SUBCATEGORIA_200 = 12;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_SUBCATEGORIA_300 = 13;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_SUBCATEGORIA_400 = 14;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_SUBCATEGORIA_116 = 15;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_SUBCATEGORIA_115 = 16;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS = 17;
// Ligacoes Suprimidas
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_SUBCATEGORIA_101 = 18;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_SUBCATEGORIA_102 = 19;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_SUBCATEGORIA_103 = 20;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_SUBCATEGORIA_200 = 21;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_SUBCATEGORIA_300 = 22;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_SUBCATEGORIA_400 = 23;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_SUBCATEGORIA_116 = 24;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_SUBCATEGORIA_115 = 25;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS = 26;
// Ligacoes Ativas
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_SUBCATEGORIA_101 = 27;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_SUBCATEGORIA_102 = 28;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_SUBCATEGORIA_103 = 29;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_SUBCATEGORIA_200 = 30;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_SUBCATEGORIA_300 = 31;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_SUBCATEGORIA_400 = 32;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_SUBCATEGORIA_116 = 33;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_SUBCATEGORIA_115 = 34;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS = 35;
// Ligacoes Ativas com d�bitos a mais de 3 meses
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_SUBCATEGORIA_101 = 36;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_SUBCATEGORIA_102 = 37;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_SUBCATEGORIA_103 = 38;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_SUBCATEGORIA_200 = 39;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_SUBCATEGORIA_300 = 40;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_SUBCATEGORIA_400 = 41;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_SUBCATEGORIA_116 = 42;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_SUBCATEGORIA_115 = 43;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M = 44;
// Ligacoes Consumo Medido
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_SUBCATEGORIA_101 = 45;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_SUBCATEGORIA_102 = 46;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_SUBCATEGORIA_103 = 47;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_SUBCATEGORIA_200 = 48;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_SUBCATEGORIA_300 = 49;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_SUBCATEGORIA_400 = 50;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_SUBCATEGORIA_116 = 51;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_SUBCATEGORIA_115 = 52;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO = 53;
// Ligacoes Consumo 5m3
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_SUBCATEGORIA_101 = 54;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_SUBCATEGORIA_102 = 55;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_SUBCATEGORIA_103 = 56;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_SUBCATEGORIA_200 = 57;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_SUBCATEGORIA_300 = 58;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_SUBCATEGORIA_400 = 59;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_SUBCATEGORIA_116 = 60;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_SUBCATEGORIA_115 = 61;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3 = 62;
// Ligacoes Consumo N�o Medido
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_SUBCATEGORIA_101 = 63;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_SUBCATEGORIA_102 = 64;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_SUBCATEGORIA_103 = 65;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_SUBCATEGORIA_200 = 66;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_SUBCATEGORIA_300 = 67;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_SUBCATEGORIA_400 = 68;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_SUBCATEGORIA_116 = 69;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_SUBCATEGORIA_115 = 70;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO = 71;
// Ligacoes Consumo Media
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_SUBCATEGORIA_101 = 72;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_SUBCATEGORIA_102 = 73;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_SUBCATEGORIA_103 = 74;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_SUBCATEGORIA_200 = 75;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_SUBCATEGORIA_300 = 76;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_SUBCATEGORIA_400 = 77;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_SUBCATEGORIA_116 = 78;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_SUBCATEGORIA_115 = 79;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA = 80;
// Ligacoes Quantidade Economias
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_SUBCATEGORIA_101 = 81;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_SUBCATEGORIA_102 = 82;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_SUBCATEGORIA_103 = 83;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_SUBCATEGORIA_200 = 84;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_SUBCATEGORIA_300 = 85;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_SUBCATEGORIA_400 = 86;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_SUBCATEGORIA_116 = 87;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_SUBCATEGORIA_115 = 88;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS = 89;
public final static Integer INDEX_ID_GERENCIA = 90;
public final static Integer INDEX_ID_UNIDADE_NEGOCIO = 91;
public final static Integer INDEX_ID_LOCALIDADE = 92;
public final static Integer INDEX_CODIGO_CENTRO_CUSTO = 93;
public final static Integer TOTALIZACAO_ESTADO = 1;
public final static Integer TOTALIZACAO_ESTADO_GERENCIA_REGIONAL = 2;
public final static Integer TOTALIZACAO_ESTADO_UNIDADE_NEGOCIO = 3;
public final static Integer TOTALIZACAO_ESTADO_LOCALIDADE = 5;
public final static Integer TOTALIZACAO_GERENCIA_REGIONAL = 6;
public final static Integer TOTALIZACAO_UNIDADE_NEGOCIO = 10;
public final static Integer TOTALIZACAO_LOCALIDADE = 16;
// Constantes do quadro de metas acumulado por exercicio
// Ligacoes Cadastradas
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_DEZEMBRO = 0;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_JANEIRO = 1;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_FEVEREIRO = 2;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_MARCO = 3;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_ABRIL = 4;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_MAIO = 5;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_JUNHO = 6;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_JULHO = 7;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_AGOSTO = 8;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_SETEMBRO = 9;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_OUTUBRO = 10;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CADASTRADAS_NOVEMBRO = 11;
// Ligacoes Cortadas
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_DEZEMBRO = 12;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_JANEIRO = 13;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_FEVEREIRO = 14;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_MARCO = 15;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_ABRIL = 16;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_MAIO = 17;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_JUNHO = 18;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_JULHO = 19;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_AGOSTO = 20;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_SETEMBRO = 21;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_OUTUBRO = 22;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CORTADAS_NOVEMBRO = 23;
// Ligacoes Suprimidas
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_DEZEMBRO = 24;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_JANEIRO = 25;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_FEVEREIRO = 26;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_MARCO = 27;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_ABRIL = 28;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_MAIO = 29;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_JUNHO = 30;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_JULHO = 31;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_AGOSTO = 32;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_SETEMBRO = 33;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_OUTUBRO = 34;
public final static Integer INDEX_QUANTIDADE_LIGACOES_SUPRIMIDAS_NOVEMBRO = 35;
// Ligacoes Ativas
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEZEMBRO = 36;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_JANEIRO = 37;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_FEVEREIRO = 38;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_MARCO = 39;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_ABRIL = 40;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_MAIO = 41;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_JUNHO = 42;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_JULHO = 43;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_AGOSTO = 44;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_SETEMBRO = 45;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_OUTUBRO = 46;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_NOVEMBRO = 47;
// Ligacoes Ativas com d�bitos a mais de 3 meses
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_DEZEMBRO = 48;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_JANEIRO = 49;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_FEVEREIRO = 50;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_MARCO = 51;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_ABRIL = 52;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_MAIO = 53;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_JUNHO = 54;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_JULHO = 55;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_AGOSTO = 56;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_SETEMBRO = 57;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_OUTUBRO = 58;
public final static Integer INDEX_QUANTIDADE_LIGACOES_ATIVAS_DEBITOS_3M_NOVEMBRO = 59;
// Ligacoes Consumo Medido
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_DEZEMBRO = 60;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_JANEIRO = 61;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_FEVEREIRO = 62;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_MARCO = 63;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_ABRIL = 64;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_MAIO = 65;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_JUNHO = 66;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_JULHO = 67;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_AGOSTO = 68;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_SETEMBRO = 69;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_OUTUBRO = 70;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIDO_NOVEMBRO = 71;
// Ligacoes Consumo 5m3
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_DEZEMBRO = 72;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_JANEIRO = 73;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_FEVEREIRO = 74;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_MARCO = 75;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_ABRIL = 76;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_MAIO = 77;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_JUNHO = 78;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_JULHO = 79;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_AGOSTO = 80;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_SETEMBRO = 81;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_OUTUBRO = 82;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_5M3_NOVEMBRO = 83;
// Ligacoes Consumo N�o Medido
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_DEZEMBRO = 84;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_JANEIRO = 85;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_FEVEREIRO = 86;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_MARCO = 87;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_ABRIL = 88;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_MAIO = 89;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_JUNHO = 90;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_JULHO = 91;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_AGOSTO = 92;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_SETEMBRO = 93;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_OUTUBRO = 94;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_NAO_MEDIDO_NOVEMBRO = 95;
// Ligacoes Consumo Media
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_DEZEMBRO = 96;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_JANEIRO = 97;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_FEVEREIRO = 98;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_MARCO = 99;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_ABRIL = 100;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_MAIO = 101;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_JUNHO = 102;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_JULHO = 103;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_AGOSTO = 104;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_SETEMBRO = 105;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_OUTUBRO = 106;
public final static Integer INDEX_QUANTIDADE_LIGACOES_CONSUMO_MEDIA_NOVEMBRO = 107;
// Ligacoes Quantidade Economias
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_DEZEMBRO = 108;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_JANEIRO = 109;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_FEVEREIRO = 110;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_MARCO = 111;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_ABRIL = 112;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_MAIO = 113;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_JUNHO = 114;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_JULHO = 115;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_AGOSTO = 116;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_SETEMBRO = 117;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_OUTUBRO = 118;
public final static Integer INDEX_QUANTIDADE_ECONOMIAS_NOVEMBRO = 119;
public final static Integer INDEX_ID_GERENCIA_EXERCICIO = 120;
public final static Integer INDEX_ID_UNIDADE_NEGOCIO_EXERCICIO = 121;
public final static Integer INDEX_ID_LOCALIDADE_EXERCICIO = 122;
public final static Integer INDEX_CODIGO_CENTRO_CUSTO_EXERCICIO = 123;
private static IRepositorioGerencial instancia;
/**
* Construtor da classe RepositorioMicromedicaoHBM
*/
private RepositorioGerencialHBM() {
}
/**
* Retorna o valor de instancia
*
* @return O valor de instancia
*/
public static IRepositorioGerencial getInstancia() {
if (instancia == null) {
instancia = new RepositorioGerencialHBM();
}
return instancia;
}
/**
* <Breve descri��o sobre o caso de uso>
*
* <Identificador e nome do caso de uso>
*
* @author Pedro Alexandre
* @date 09/06/2006
*
* @param informarDadosGeracaoRelatorioConsultaHelper
* @return
* @throws ErroRepositorioException
*/
public List consultarComparativoResumosFaturamentoArrecadacaoPendencia(InformarDadosGeracaoRelatorioConsultaHelper informarDadosGeracaoRelatorioConsultaHelper) throws ErroRepositorioException{
//Integer anoMesReferencia = informarDadosGeracaoRelatorioConsultaHelper.getAnoMesReferencia();
List retorno = new ArrayList();
Session session = HibernateUtil.getSession();
try{/*
String sqlTabelaEstrutura = "select "+
"'ESTADO'as estado, "+
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, "+
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, "+
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, "+
"f.stcm_id as stcm_id, lpad(f.stcm_cdsetorcomercial,3,0)||' - '||stcm_nmsetorcomercial as setor, "+
"g.qdra_id as qdra_id, lpad(g.qdra_nnquadra,3,0) as quadra "+
"into TEMP table estrutura "+
"from cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e, cadastro.setor_comercial f, cadastro.quadra g "+
"where c.loca_cdelo = d.loca_id "+
"and c.greg_id = e.greg_id "+
"and d.loca_id = f.loca_id "+
"and f.stcm_id = g.stcm_id "+
"group by ,e.greg_id,LPAD(E.GREG_ID,3,0)||' - '||E.GREG_NMABREVIADO||' - '||E.GREG_NMREGIONAL,d.loca_id,LPAD(D.LOCA_ID,3,0)||' - '||D.LOCA_NMLOCALIDADE,c.loca_id,LPAD(C.LOCA_ID,3,0)||' - '||C.LOCA_NMLOCALIDADE,f.stcm_id,LPAD(F.STCM_CDSETORCOMERCIAL,3,0)||' - '||STCM_NMSETORCOMERCIAL,g.qdra_id,lpad(g.qdra_nnquadra,3,0) "+
"union "+
"select "+
"'ESTADO'as estado, "+
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, "+
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, "+
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, "+
"f.stcm_id as stcm_id, lpad(f.stcm_cdsetorcomercial,3,0)||' - '||stcm_nmsetorcomercial as setor, "+
"null,'TOTAL' as quadra "+
"from cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e, cadastro.setor_comercial f "+
"where c.loca_cdelo = d.loca_id "+
"and c.greg_id = e.greg_id "+
"and d.loca_id = f.loca_id "+
"union "+
"select "+
"'ESTADO'as estado, "+
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, "+
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, "+
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, "+
"null,'TOTAL' as setor, "+
"null,'TOTAL' as quadra "+
"from cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e "+
"where c.loca_cdelo = d.loca_id "+
"and c.greg_id = e.greg_id "+
"union "+
"select "+
"'ESTADO'as estado, "+
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, "+
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, "+
"null,'TOTAL' as localidade, "+
"null,'TOTAL' as setor, "+
"null,'TOTAL' as quadra "+
"from cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e "+
"where c.loca_cdelo = d.loca_id "+
"and c.greg_id = e.greg_id "+
"union "+
"select "+
"'ESTADO'as estado, "+
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, "+
"null,'TOTAL' as elo, "+
"null,'TOTAL' as localidade, "+
"null,'TOTAL' as setor, "+
"null,'TOTAL' as quadra "+
"from cadastro.gerencia_regional e "+
"union "+
"select "+
"'ESTADO'as estado, "+
"null,'TOTAL' as gerencia, "+
"null,'TOTAL' as elo, "+
"null,'TOTAL' as localidade, "+
"null,'TOTAL' as setor, "+
"null,'TOTAL' as quadra "+
"from cadastro.gerencia_regional e "+
"order by 1,2,3,4,5,6,7,8,9,10,11";
session.createSQLQuery(sqlTabelaEstrutura).executeUpdate();
String sqlTabelaFaturamento = "select " +
"'ESTADO'as estado, " +
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, " +
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, " +
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, " +
"f.stcm_id as stcm_id, lpad(f.stcm_cdsetorcomercial,3,0)||' - '||stcm_nmsetorcomercial as setor, " +
"g.qdra_id as qdra_id, lpad(g.qdra_nnquadra,3,0) as quadra, " +
"sum(a.rfts_qtcontas) as FatContas, sum(a.rfts_vlagua + a.rfts_vlesgoto + a.rfts_vldebitos - a.rfts_vlcreditos) as FatValor " +
"into TEMP table faturamento " +
"from faturamento.resumo_faturamento_simulacao a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e, cadastro.setor_comercial f, cadastro.quadra g " +
"where a.loca_id = c.loca_id " +
"and c.loca_cdelo = d.loca_id " +
"and a.greg_id = e.greg_id " +
"and a.stcm_id = f.stcm_id " +
"and a.qdra_id = g.qdra_id " +
"and a.rfts_amreferencia="+anoMesReferencia+" "+
"group by 1,2,3,4,5,6,7,8,9,10,11 " +
"union " +
"select " +
"'ESTADO'as estado, " +
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, " +
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, " +
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, " +
"f.stcm_id as stcm_id, lpad(f.stcm_cdsetorcomercial,3,0)||' - '||stcm_nmsetorcomercial as setor, " +
"null,'TOTAL' as quadra, " +
"sum(a.rfts_qtcontas) as FatContas, sum(a.rfts_vlagua + a.rfts_vlesgoto + a.rfts_vldebitos - a.rfts_vlcreditos) as FatValor " +
"from faturamento.resumo_faturamento_simulacao a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e, cadastro.setor_comercial f " +
"where a.loca_id = c.loca_id " +
"and c.loca_cdelo = d.loca_id " +
"and a.greg_id = e.greg_id " +
"and a.stcm_id = f.stcm_id " +
"and a.rfts_amreferencia ="+anoMesReferencia+ " "+
"group by 1,2,3,4,5,6,7,8,9 " +
"union " +
"select " +
"'ESTADO'as estado, " +
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, " +
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, " +
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, " +
"null,'LOCAL' as setor, " +
"null,'LOCAL' as quadra, " +
"sum(a.rfts_qtcontas) as FatContas, sum(a.rfts_vlagua + a.rfts_vlesgoto + a.rfts_vldebitos - a.rfts_vlcreditos) as FatValor " +
"from faturamento.resumo_faturamento_simulacao a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e " +
"where a.loca_id = c.loca_id " +
"and c.loca_cdelo = d.loca_id " +
"and a.greg_id = e.greg_id " +
"and a.rfts_amreferencia ="+anoMesReferencia+" "+
"group by 1,2,3,4,5,6,7 " +
"union " +
"select " +
"'ESTADO'as estado, " +
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, " +
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, " +
"null,'LOCAL' as localidade, " +
"null,'LOCAL' as setor, " +
"null,'LOCAL' as quadra, " +
"sum(a.rfts_qtcontas) as FatContas, sum(a.rfts_vlagua + a.rfts_vlesgoto + a.rfts_vldebitos - a.rfts_vlcreditos) as FatValor " +
"from faturamento.resumo_faturamento_simulacao a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e " +
"where a.loca_id = c.loca_id " +
"and c.loca_cdelo = d.loca_id " +
"and a.greg_id = e.greg_id " +
"and a.rfts_amreferencia ="+anoMesReferencia+ " "+
"group by 1,2,3,4,5 " +
"union " +
"select " +
"'ESTADO'as estado, " +
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, " +
"null,'LOCAL' as elo, " +
"null,'LOCAL' as localidade, " +
"null,'LOCAL' as setor, " +
"null,'LOCAL' as quadra, " +
"sum(a.rfts_qtcontas) as FatContas, sum(a.rfts_vlagua + a.rfts_vlesgoto + a.rfts_vldebitos - a.rfts_vlcreditos) as FatValor " +
"from faturamento.resumo_faturamento_simulacao a, cadastro.gerencia_regional e " +
"where a.greg_id = e.greg_id " +
"and a.rfts_amreferencia = "+anoMesReferencia+ " "+
"group by 1,2,3 " +
"union " +
"select " +
"'ESTADO'as estado, " +
"null,'TOTAL' as gerencia, " +
"null,'TOTAL' as elo, " +
"null,'TOTAL' as localidade, " +
"null,'TOTAL' as setor, " +
"null,'TOTAL' as quadra, " +
"sum(a.rfts_qtcontas) as FatContas, sum(a.rfts_vlagua + a.rfts_vlesgoto + a.rfts_vldebitos - a.rfts_vlcreditos) as FatValor " +
"from faturamento.resumo_faturamento_simulacao a, cadastro.gerencia_regional e " +
"where a.greg_id = e.greg_id " +
"and a.rfts_amreferencia = "+anoMesReferencia+ " "+
"group by 1 " +
"order by 1,2,3,4,5,6,7,8,9,10,11 ";
session.createSQLQuery(sqlTabelaFaturamento).executeUpdate();
String sqlTabelaArrecadacao = "select " +
"'ESTADO' as estado," +
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, " +
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, " +
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, " +
"f.stcm_id as stcm_id, lpad(f.stcm_cdsetorcomercial,3,0)||' - '||stcm_nmsetorcomercial as setor, " +
"g.qdra_id as qdra_id, lpad(g.qdra_nnquadra,3,0) as quadra, " +
"sum(a.ardd_qtpagamentos) as ArrContas, sum(a.ardd_vlpagamentos) as ArrValor " +
"into TEMP table arrecadacao " +
"from arrecadacao.arrecadacao_dados_diarios a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e, cadastro.setor_comercial f, cadastro.quadra g " +
"where a.loca_id = c.loca_id " +
"and c.loca_cdelo = d.loca_id " +
"and a.greg_id = e.greg_id " +
"and a.stcm_id = f.stcm_id " +
"and a.qdra_id = g.qdra_id " +
"and a.ardd_amreferenciaarrecadacao = "+anoMesReferencia+ " and a.dotp_id = 1 " +
"group by 1,2,3,4,5,6,7,8,9,10,11 " +
"union " +
"select " +
"'ESTADO'as estado, " +
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, " +
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, " +
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, " +
"f.stcm_id as stcm_id, lpad(f.stcm_cdsetorcomercial,3,0)||' - '||stcm_nmsetorcomercial as setor, " +
"null,'TOTAL' as quadra, " +
"sum(a.ardd_qtpagamentos) as ArrContas, sum(a.ardd_vlpagamentos) as ArrValor " +
"from arrecadacao.arrecadacao_dados_diarios a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e, cadastro.setor_comercial f " +
"where a.loca_id = c.loca_id " +
"and c.loca_cdelo = d.loca_id " +
"and a.greg_id = e.greg_id " +
"and a.stcm_id = f.stcm_id " +
"and a.ardd_amreferenciaarrecadacao = "+anoMesReferencia+ " and a.dotp_id = 1 " +
"group by 1,2,3,4,5,6,7,8,9 " +
"union " +
"select " +
"'ESTADO'as estado, " +
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, " +
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, " +
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, " +
"null,'TOTAL' as setor, " +
"null,'TOTAL' as quadra, " +
"sum(a.ardd_qtpagamentos) as ArrContas, sum(a.ardd_vlpagamentos) as ArrValor " +
"from arrecadacao.arrecadacao_dados_diarios a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e " +
"where a.loca_id = c.loca_id " +
"and c.loca_cdelo = d.loca_id " +
"and a.greg_id = e.greg_id " +
"and a.ardd_amreferenciaarrecadacao = "+anoMesReferencia+ " and a.dotp_id = 1 " +
"group by 1,2,3,4,5,6,7 " +
"union " +
"select " +
"'ESTADO'as estado, " +
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, " +
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, " +
"null,'TOTAL' as localidade, " +
"null,'TOTAL' as setor, " +
"null,'TOTAL' as quadra, " +
"sum(a.ardd_qtpagamentos) as ArrContas, sum(a.ardd_vlpagamentos) as ArrValor " +
"from arrecadacao.arrecadacao_dados_diarios a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e " +
"where a.loca_id = c.loca_id " +
"and c.loca_cdelo = d.loca_id " +
"and a.greg_id = e.greg_id " +
"and a.ardd_amreferenciaarrecadacao = "+anoMesReferencia+ " and a.dotp_id = 1 " +
"group by 1,2,3,4,5 " +
"union " +
"select " +
"'ESTADO'as estado, " +
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, " +
"null,'TOTAL' as elo, " +
"null,'TOTAL' as localidade, " +
"null,'TOTAL' as setor, " +
"null,'TOTAL' as quadra, " +
"sum(a.ardd_qtpagamentos) as ArrContas, sum(a.ardd_vlpagamentos) as ArrValor " +
"from arrecadacao.arrecadacao_dados_diarios a, cadastro.gerencia_regional e " +
"where a.greg_id = e.greg_id " +
"and a.ardd_amreferenciaarrecadacao = "+anoMesReferencia+ " and a.dotp_id = 1 " +
"group by 1,2,3 " +
"union " +
"select " +
"'ESTADO'as estado, " +
"null,'TOTAL' as gerencia, " +
"null,'TOTAL' as elo, " +
"null,'TOTAL' as localidade, " +
"null,'TOTAL' as setor, " +
"null,'TOTAL' as quadra, " +
"sum(a.ardd_qtpagamentos) as ArrContas, sum(a.ardd_vlpagamentos) as ArrValor " +
"from arrecadacao.arrecadacao_dados_diarios a, cadastro.gerencia_regional e " +
"where a.greg_id = e.greg_id " +
"and a.ardd_amreferenciaarrecadacao = "+anoMesReferencia+ " and a.dotp_id = 1 " +
"group by 1 " +
"order by 1,2,3,4,5,6,7,8,9,10,11 ";
session.createSQLQuery(sqlTabelaArrecadacao).executeUpdate();
String sqlTabelaPendencia = "select "+
"'ESTADO'as estado, "+
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, "+
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, "+
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, "+
"f.stcm_id as stcm_id, lpad(f.stcm_cdsetorcomercial,3,0)||' - '||stcm_nmsetorcomercial as setor, "+
"g.qdra_id as qdra_id, lpad(g.qdra_nnquadra,3,0) as quadra, "+
"sum(a.rpen_qtdocumentos) as PenContas, sum(a.rpen_vldebito) as PenValor "+
"into TEMP table pendencia "+
"from cobranca.resumo_pendencia a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e, cadastro.setor_comercial f, cadastro.quadra g "+
"where a.loca_id = c.loca_id "+
"and c.loca_cdelo = d.loca_id "+
"and a.greg_id = e.greg_id "+
"and a.stcm_id = f.stcm_id "+
"and a.qdra_id = g.qdra_id "+
"and a.rpen_amreferencia = "+anoMesReferencia+ " and a.dotp_id = 1 "+
"group by 1,2,3,4,5,6,7,8,9,10,11 "+
"union "+
"select "+
"'ESTADO'as estado, "+
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, "+
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, "+
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, "+
"f.stcm_id as stcm_id, lpad(f.stcm_cdsetorcomercial,3,0)||' - '||stcm_nmsetorcomercial as setor, "+
"null,'TOTAL' as quadra, "+
"sum(a.rpen_qtdocumentos) as PenContas, sum(a.rpen_vldebito) as PenValor "+
"from cobranca.resumo_pendencia a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e, cadastro.setor_comercial f "+
"where a.loca_id = c.loca_id "+
"and c.loca_cdelo = d.loca_id "+
"and a.greg_id = e.greg_id "+
"and a.stcm_id = f.stcm_id "+
"and a.rpen_amreferencia = "+anoMesReferencia+ " and a.dotp_id = 1 "+
"group by 1,2,3,4,5,6,7,8,9 "+
"union "+
"select "+
"'ESTADO'as estado, "+
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, "+
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, "+
"c.loca_id as loca_id, lpad(c.loca_id,3,0)||' - '||c.loca_nmlocalidade as localidade, "+
"null,'TOTAL' as setor, "+
"null,'TOTAL' as quadra, "+
"sum(a.rpen_qtdocumentos) as PenContas, sum(a.rpen_vldebito) as PenValor "+
"from cobranca.resumo_pendencia a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e "+
"where a.loca_id = c.loca_id "+
"and c.loca_cdelo = d.loca_id "+
"and a.greg_id = e.greg_id "+
"and a.rpen_amreferencia = "+anoMesReferencia+ " and a.dotp_id = 1 "+
"group by 1,2,3,4,5,6,7 "+
"union "+
"select "+
"'ESTADO'as estado, "+
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, "+
"d.loca_id as elo_id, lpad(d.loca_id,3,0)||' - '||d.loca_nmlocalidade as elo, "+
"null,'TOTAL' as localidade, "+
"null,'TOTAL' as setor, "+
"null,'TOTAL' as quadra, "+
"sum(a.rpen_qtdocumentos) as PenContas, sum(a.rpen_vldebito) as PenValor "+
"from cobranca.resumo_pendencia a, cadastro.localidade c, cadastro.localidade d, cadastro.gerencia_regional e "+
"where a.loca_id = c.loca_id "+
"and c.loca_cdelo = d.loca_id "+
"and a.greg_id = e.greg_id "+
"and a.rpen_amreferencia = "+anoMesReferencia+ " and a.dotp_id = 1 "+
"group by 1,2,3,4,5 "+
"union "+
"select "+
"'ESTADO'as estado, "+
"e.greg_id as greg_id, lpad(e.greg_id,3,0)||' - '||e.greg_nmabreviado||' - '||e.greg_nmregional as gerencia, "+
"null,'LOCAL' as elo, "+
"null,'LOCAL' as localidade, "+
"null,'LOCAL' as setor, "+
"null,'LOCAL' as quadra, "+
"sum(a.rpen_qtdocumentos) as PenContas, sum(a.rpen_vldebito) as PenValor "+
"from cobranca.resumo_pendencia a, cadastro.gerencia_regional e "+
"where a.greg_id = e.greg_id "+
"and a.rpen_amreferencia = "+anoMesReferencia+ " and a.dotp_id = 1 "+
"group by 1,2,3 "+
"union "+
"select "+
"'ESTADO'as estado, "+
"null,'LOCAL' as gerencia, "+
"null,'LOCAL' as elo, "+
"null,'LOCAL' as localidade, "+
"null,'LOCAL' as setor, "+
"null,'LOCAL' as quadra, "+
"sum(a.rpen_qtdocumentos) as PenContas, sum(a.rpen_vldebito) as PenValor "+
"from cobranca.resumo_pendencia a, cadastro.gerencia_regional e "+
"where a.greg_id = e.greg_id "+
"and a.rpen_amreferencia ="+anoMesReferencia+ " and a.dotp_id = 1 "+
"group by 1 "+
"order by 1,2,3,4,5,6,7,8,9,10,11 ";
session.createSQLQuery(sqlTabelaPendencia).executeUpdate();
String resultadoSemPercentuais = "select a.estado, "+
"a.greg_id, "+
"a.gerencia, "+
"a.elo_id, "+
"a.elo, "+
"a.loca_id, "+
"a.localidade, "+
"a.stcm_id, "+
"a.setor, "+
"a.qdra_id, "+
"a.quadra, "+
"b.fatcontas, b.fatvalor, c.arrcontas, c.arrvalor, d.pencontas, d.penvalor "+
"into temp resultado "+
"from estrutura a "+
"left join faturamento b on a.estado = b.estado "+
"and a.gerencia = b.gerencia "+
"and a.elo = b.elo "+
"and a.localidade = b.localidade "+
"and a.setor = b.setor "+
"and a.quadra = b.quadra "+
"left join arrecadacao c on a.estado = c.estado "+
"and a.gerencia = c.gerencia "+
"and a.elo = c.elo "+
"and a.localidade = c.localidade "+
"and a.setor = c.setor "+
"and a.quadra = c.quadra "+
"left join pendencia d on a.estado = d.estado "+
"and a.gerencia = d.gerencia "+
"and a.elo = d.elo "+
"and a.localidade = d.localidade "+
"and a.setor = d.setor "+
"and a.quadra = d.quadra ";
session.createSQLQuery(resultadoSemPercentuais).executeUpdate();
*/
String resultadoComPercentuais = "select a.estado, "+
"a.greg_id, "+
"a.gerencia, "+
"a.elo_id, "+
"a.elo, "+
"a.loca_id, "+
"a.localidade, "+
"a.stcm_id, "+
"a.setor, "+
"a.qdra_id, "+
"a.quadra, "+
"a.fatcontas, a.fatvalor, a.arrcontas, a.arrvalor,(a.arrcontas/a.fatcontas)* 100 , (a.arrvalor/a.fatvalor) * 100, a.pencontas, a.penvalor, "+
"(a.pencontas/a.fatcontas), (a.penvalor/a.fatvalor) "+
"into temp resultadocompercentual "+
"from resultado a "+
"where (a.fatcontas is not null "+
"and a.fatcontas > 0) "+
"and (a.fatvalor is not null "+
"and a.fatvalor > 0) "+
"union "+
"select a.estado, "+
"a.greg_id, "+
"a.gerencia, "+
"a.elo_id, "+
"a.elo, "+
"a.loca_id, "+
"a.localidade, "+
"a.stcm_id, "+
"a.setor, "+
"a.qdra_id, "+
"a.quadra, "+
"a.fatcontas, a.fatvalor, a.arrcontas, a.arrvalor,0 , 0, a.pencontas, a.penvalor, "+
"0, 0 "+
"from resultado a "+
"where (a.fatcontas is null "+
"or a.fatcontas = 0) "+
"or (a.fatvalor is null "+
"or a.fatvalor = 0) "+
"order by 1,2,3,4,5,6,7,8,9,10,11";
session.createSQLQuery(resultadoComPercentuais).executeUpdate();
//OP��ES DE TOTALIZADOR
String sqlConsultar = "select fatcontas,fatvalor,arrcontas,arrvalor,percontas,pervalor,pencontas,penvalor,nvezesfatcontas,nvezesfatvalor from resultadocompercentual ";
switch (informarDadosGeracaoRelatorioConsultaHelper.getOpcaoTotalizacao().intValue()) {
case ConstantesSistema.CODIGO_GRUPO_FATURAMENTO:
sqlConsultar = sqlConsultar + "where " ;
break;
case ConstantesSistema.CODIGO_GERENCIA_REGIONAL:
sqlConsultar = sqlConsultar + "where greg_id="+informarDadosGeracaoRelatorioConsultaHelper.getGerenciaRegional()+"and elo_id is null" ;
break;
case ConstantesSistema.CODIGO_ELO_POLO:
sqlConsultar = sqlConsultar + "where " ;
break;
case ConstantesSistema.CODIGO_LOCALIDADE:
sqlConsultar = sqlConsultar + "where " ;
break;
case ConstantesSistema.CODIGO_SETOR_COMERCIAL:
sqlConsultar = sqlConsultar + "where " ;
break;
case ConstantesSistema.CODIGO_QUADRA:
sqlConsultar = sqlConsultar + "where " ;
break;
case ConstantesSistema.CODIGO_ESTADO:
sqlConsultar = sqlConsultar + "where greg_id is null" ;
break;
}
retorno = session.createSQLQuery(resultadoComPercentuais)
.addScalar("fatcontas", Hibernate.INTEGER)
.addScalar("fatvalor", Hibernate.BIG_DECIMAL)
.addScalar("arrcontas", Hibernate.INTEGER)
.addScalar("arrvalor", Hibernate.BIG_DECIMAL)
.addScalar("percontas", Hibernate.DOUBLE)
.addScalar("pervalor", Hibernate.DOUBLE)
.addScalar("pencontas", Hibernate.INTEGER)
.addScalar("penvalor", Hibernate.BIG_DECIMAL)
.addScalar("nvezesfatcontas", Hibernate.DOUBLE)
.addScalar("nvezesfatvalor", Hibernate.DOUBLE).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;
}
/**
* Pesquisa o valor e a quantidade de contas do resumo da faturamento
*
* [UC0350] - Consultar Comparativo entre os Resumos do Faturamento, Arrecada��o e da Pend�ncia.
*
* @author Pedro Alexandre
* @date 09/06/2006
*
* @param informarDadosGeracaoRelatorioConsultaHelper
* @return
* @throws ErroRepositorioException
*/
public List consultarResumoFaturamento(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{
//Gera o sql para acumular o valor e a quantidade das contas
GeradorSqlRelatorio geradorSqlRelatorio = new GeradorSqlRelatorio(GeradorSqlRelatorio.RESUMO_FATURAMENTO,informarDadosGeracaoRelatorioConsultaHelper);
//Concatena o sql gerado
String sql = geradorSqlRelatorio.sqlNivelUm(geradorSqlRelatorio
.getNomeCampoFixo(), geradorSqlRelatorio
.getNomeTabelaFixo(), geradorSqlRelatorio
.getNomeTabelaFixoTotal(), "'"+informarDadosGeracaoRelatorioConsultaHelper.getDescricaoOpcaoTotalizacao()+"'",
"",
"",
"", false, false);
//Faz a pesquisa
retorno = session.createSQLQuery(sql)
.addScalar("fatcontas", Hibernate.INTEGER)
.addScalar("fatvalor", 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;
}
/**
* Pesquisa o valor e a quantidade de contas do resumo da arrecada��o
*
* [UC0350] - Consultar Comparativo entre os Resumos do Faturamento, Arrecada��o e da Pend�ncia.
*
* @author Pedro Alexandre
* @date 09/06/2006
*
* @param informarDadosGeracaoRelatorioConsultaHelper
* @return
* @throws ErroRepositorioException
*/
public List consultarResumoArrecadacao(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{
//Gera o sql para acumular o valor e a quantidade das contas
GeradorSqlRelatorio geradorSqlRelatorio = new GeradorSqlRelatorio(GeradorSqlRelatorio.RESUMO_ARRECADACAO,informarDadosGeracaoRelatorioConsultaHelper);
//Concatena o sql gerado
String sql = geradorSqlRelatorio.sqlNivelUm(geradorSqlRelatorio
.getNomeCampoFixo(), geradorSqlRelatorio
.getNomeTabelaFixo(), geradorSqlRelatorio
.getNomeTabelaFixoTotal(), "'"+informarDadosGeracaoRelatorioConsultaHelper.getDescricaoOpcaoTotalizacao()+"'",
"",
"",
"", false, false);
//Faz a pesquisa
retorno = session.createSQLQuery(sql)
.addScalar("arrcontas", Hibernate.INTEGER)
.addScalar("arrvalor", 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;
}
/**
* Pesquisa o valor e a quantidade de contas do resumo da pend�ncia.
*
* [UC0350] - Consultar Comparativo entre os Resumos do Faturamento, Arrecada��o e da Pend�ncia.
*
* @author Pedro Alexandre
* @date 09/06/2006
*
* @param informarDadosGeracaoRelatorioConsultaHelper
* @return
* @throws ErroRepositorioException
*/
public List consultarComparativoResumoPendencia(InformarDadosGeracaoRelatorioConsultaHelper informarDadosGeracaoRelatorioConsultaHelper) throws ErroRepositorioException{
// Cria a cole��o de retorno
List retorno = new ArrayList();
// Obt�m a sess�o
Session session = HibernateUtil.getSessionGerencial();
// A query abaixo realiza uma consulta a tabela de ResumoAnaliseFaturamento
try{
//Gera o sql para acumular o valor e a quantidade das contas
GeradorSqlRelatorio geradorSqlRelatorio = new GeradorSqlRelatorio(GeradorSqlRelatorio.RESUMO_PENDENCIA,informarDadosGeracaoRelatorioConsultaHelper);
//Concatena o sql gerado
String sql = geradorSqlRelatorio.sqlNivelUm(geradorSqlRelatorio
.getNomeCampoFixo(), geradorSqlRelatorio
.getNomeTabelaFixo(), geradorSqlRelatorio
.getNomeTabelaFixoTotal(), "'"+informarDadosGeracaoRelatorioConsultaHelper.getDescricaoOpcaoTotalizacao()+"'",
"",
"",
"", false, false);
//Faz a pesquisa
retorno = session.createSQLQuery(sql)
.addScalar("pencontas", Hibernate.INTEGER)
.addScalar("penvalor", 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;
}
/**
* Pesquisa os valores necessarios na tabela un_resumo_ligacao_economia.
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Rafael Pinto
* @date 20/11/2006
*
* @param FiltrarRelatorioOrcamentoSINPHelper
* @return Collection<Object[35]>
*
* Object[0] - aguaTotalLigacoesCadastradas
* Object[1] - esgotoTotalLigacoesCadastradas
* Object[2] - esgotoTotalLigacoesCadastradasConvencional
* Object[3] - aguaTotalLigacoesAtivas
* Object[4] - esgotoTotalLigCadasCond
* Object[5] - aguaTotalLigacoesMedidas
* Object[6] - esgotoTotalLigacoesAtivasConvencional
* Object[7] - aguaTotalLigacoesComHidrometro
* Object[8] - esgotoTotalLigacoesAtivasCondominial
* Object[9] - aguaTotalLigacoesResidencialCadastradas
* Object[10] - esgotoTotalLigacoesResidencialCadastradas
* Object[11] - aguaTotalLigacoesDesligadas
* Object[12] - aguaTotalEconomiasCadastradas
* Object[13] - esgotoTotalEconomiasCadastradasConverncional
* Object[14] - aguaTotalEconomiasAtivas
* Object[15] - aguaTotalEconomiasCadastradasCondominial
* Object[16] - aguaTotalEconomiasAtivasMedidas
* Object[17] - esgotoTotalEconomiasAtivasConvencional
* Object[18] - aguaTotalEconomiasResidencialCadastradas
* Object[19] - esgotoTotalEconomiasAtivasCondominial
* Object[20] - aguaTotalEconomiasResidencialAtivasMicromedidas
* Object[21] - esgotoTotalEconomiasResidencialCadastradas
* Object[22] - aguaTotalEconomiasResidencialAtivas
* Object[23] - esgotoTotalEconomiasResidencialAtivas
* Object[24] - aguaTotalEconomiasComercialAtivas
* Object[25] - esgotoTotalEconomiasComercialAtivas
* Object[26] - aguaTotalEconomiasIndustrialAtivas
* Object[27] - esgotoTotalEconomiasIndustrialAtivas
* Object[28] - aguaTotalEconomiasPublicoAtivas
* Object[29] - esgotoTotalEconomiasPublicoAtivas
* Object[30] - aguaTotalEconomiasRuralAtivas
* Object[31] - aguaTotalLigacoesSuprimidas
* Object[32] - campoSelecionado pode ser (loca_id,uneg_id,greg_id)
*
* @throws ErroRepositorioException
*/
public Object[] pesquisarRelatorioOrcamentoSINPResumoLigacaoEconomia(FiltrarRelatorioOrcamentoSINPHelper filtrarRelatorioOrcamentoSINPHelper)
throws ErroRepositorioException {
Object[] retorno = null;
int anoMes = filtrarRelatorioOrcamentoSINPHelper.getAnoMesReferencia();
Integer localidade = filtrarRelatorioOrcamentoSINPHelper.getLocalidade();
Integer unidade = filtrarRelatorioOrcamentoSINPHelper.getUnidadeNegocio();
Integer gerencia = filtrarRelatorioOrcamentoSINPHelper.getGerenciaRegional();
Integer municipio = filtrarRelatorioOrcamentoSINPHelper.getMunicipio();
Integer opcaoTotalizacao = filtrarRelatorioOrcamentoSINPHelper.getOpcaoTotalizacao();
String joinLocalidadeMunicipio = " left join cadastro.g_localidade loc on ( rle.loca_id = loc.loca_id ) " +
" left join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
if(opcaoTotalizacao == 26 || opcaoTotalizacao == 19){
joinLocalidadeMunicipio = " inner join cadastro.g_localidade loc on ( rle.loca_id = loc.loca_id ) " +
" inner join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
}
String groupBy = filtrarRelatorioOrcamentoSINPHelper.getGroupBy();
String campoSelecionado = null;
Session session = HibernateUtil.getSessionGerencial();
try{
String sql =
"SELECT " +
" SUM(CASE WHEN las.last_iccadastradaagua = 1 THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesCadastradas, " +
" SUM(CASE WHEN les.lest_iccadastradaesgoto = 1 THEN rele_qtligacoes ELSE 0 END) AS esgotoTotalLigacoesCadastradas, " +
" SUM(CASE WHEN lepf_id <> 2 AND les.lest_iccadastradaesgoto = 1 THEN rele_qtligacoes ELSE 0 END) AS esgotototalligacoescadastrada2, " +
" SUM(CASE WHEN las.last_icativaagua = 1 THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesAtivas, " +
" SUM(CASE WHEN lepf_id = 2 AND les.lest_iccadastradaesgoto = 1 THEN rele_qtligacoes ELSE 0 END) AS esgotoTotalLigCadasCond, " +
" SUM(CASE WHEN rele_ichidrometro=1 AND las.last_icativaagua = 1 THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesMedidas, " +
" SUM(CASE WHEN lepf_id <> 2 and les.lest_icativaesgoto = 1 THEN rele_qtligacoes ELSE 0 END) AS esgotototalligacoesativasconve, " +
" SUM(CASE WHEN rele_ichidrometro=1 THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesComHidrometro, " +
" SUM(CASE WHEN lepf_id = 2 AND les.lest_icativaesgoto = 1 THEN rele_qtligacoes ELSE 0 END) AS esgotototalligacoesativascondo, " +
" SUM(CASE WHEN rle.catg_id = 1 AND las.last_iccadastradaagua = 1 THEN rele_qtligacoes ELSE 0 END) AS aguatotalligacoesresidencialca, " +
" SUM(CASE WHEN rle.catg_id = 1 AND les.lest_iccadastradaesgoto = 1 THEN rele_qtligacoes ELSE 0 END) AS esgotototalligacoesresidencial, " +
" SUM(CASE WHEN las.last_icdesligadaagua = 1 THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesDesligadas, " +
" SUM(CASE WHEN las.last_iccadastradaagua = 1 THEN rele_qteconomias ELSE 0 END) AS aguaTotalEconomiasCadastradas, " +
" SUM(CASE WHEN lepf_id <> 2 AND les.lest_iccadastradaesgoto = 1 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiascadastrad2, " +
" SUM(CASE WHEN las.last_icativaagua = 1 THEN rele_qteconomias ELSE 0 END) AS aguaTotalEconomiasAtivas, " +
" SUM(CASE WHEN lepf_id = 2 and les.lest_iccadastradaesgoto = 1 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiascadastrada, " +
" SUM(CASE WHEN rele_ichidrometro=1 and las.last_icativaagua = 1 THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiasativasmedida, " +
" SUM(CASE WHEN lepf_id <> 2 AND rle.lest_id = 3 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasativasconv, " +
" SUM(CASE WHEN lepf_id = 2 AND rle.lest_id = 3 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasativascond, " +
" SUM(CASE WHEN rle.catg_id=1 AND sub.scat_icrural = 2 AND las.last_iccadastradaagua = 1 THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiasresidencialc, " +
" SUM(CASE WHEN lepf_id = 2 AND rle.lest_id = 3 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasativascond, " +
" SUM(CASE WHEN rele_ichidrometro = 1 AND rle.catg_id=1 and sub.scat_icrural = 2 and las.last_icativaagua = 1 THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiasresidencial2, " +
" SUM(CASE WHEN rle.catg_id=1 and sub.scat_icrural = 2 and les.lest_iccadastradaesgoto = 1 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasresidenci2, " +
" SUM(CASE WHEN rle.catg_id=1 and sub.scat_icrural = 2 and las.last_icativaagua = 1 THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiasresidenciala, " +
" SUM(CASE WHEN rle.catg_id=1 and sub.scat_icrural = 2 and les.lest_icativaesgoto = 1 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasresidencia, " +
" SUM(CASE WHEN rle.catg_id=2 and las.last_icativaagua = 1 THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiascomercialati, " +
" SUM(CASE WHEN rle.catg_id=2 and les.lest_icativaesgoto = 1 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiascomerciala, " +
" SUM(CASE WHEN rle.catg_id=3 and las.last_icativaagua = 1 THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiasindustrialat, " +
" SUM(CASE WHEN rle.lest_id = 3 AND rle.catg_id=3 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasindustrial, " +
" SUM(CASE WHEN rle.catg_id=4 and las.last_icativaagua = 1 THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiaspublicoativa, " +
" SUM(CASE WHEN rle.catg_id=4 and les.lest_icativaesgoto = 1 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiaspublicoati, " +
" SUM(CASE WHEN rle.catg_id=1 and las.last_icativaagua = 1 and sub.scat_icrural = 1 THEN rele_qteconomias ELSE 0 END) AS aguaTotalEconomiasRuralAtivas, " +
" SUM(CASE WHEN rle.last_id in (6,7,8) THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesSuprimidas, " +
" SUM(CASE WHEN rle.catg_id=1 and les.lest_icativaesgoto = 1 and sub.scat_icrural = 1 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasruralativa, " +
" SUM( rle.rele_qtligacoesnovasagua ) AS aguaTotalLigacoesNovas, " +
" SUM( rle.rele_qtligacoesnovasesgoto ) AS esgotoTotalLigacoesNovas " +
"FROM " +
" cadastro.un_res_lig_econ rle " +
joinLocalidadeMunicipio +
" left join atendimentopublico.g_ligacao_agua_situacao las on ( rle.last_id = las.last_id ) " +
" left join atendimentopublico.g_lig_esgoto_sit les on ( rle.lest_id = les.lest_id ) " +
" left join cadastro.g_subcategoria sub on ( rle.scat_id = sub.scat_id ) " +
"WHERE rele_amreferencia = :anoMes ";
// Localidade
if (localidade != null) {
sql += " AND rle.loca_id = " + localidade;
campoSelecionado = "rle.loca_id";
}
// Unidade de Negocio
if (unidade != null) {
sql += " AND rle.uneg_id = " + unidade;
campoSelecionado = "rle.uneg_id";
}
// Gerencia Regional
if (gerencia != null) {
sql += " AND rle.greg_id = " + gerencia;
campoSelecionado = "rle.greg_id";
}
//Caso a pesquisa seja agrupada por munic�pio
if(municipio != null){
sql += " AND muni.muni_id = " + municipio;
campoSelecionado = " muni.muni_id";
}
if(!groupBy.equals("")){
sql += " GROUP BY "+campoSelecionado
+ " ORDER BY "+campoSelecionado;
}
//Faz a pesquisa
retorno = (Object[]) session.createSQLQuery(sql).
addScalar("aguaTotalLigacoesCadastradas", Hibernate.INTEGER).
addScalar("esgotoTotalLigacoesCadastradas", Hibernate.INTEGER).
addScalar("esgotototalligacoescadastrada2", Hibernate.INTEGER).
addScalar("aguaTotalLigacoesAtivas", Hibernate.INTEGER).
addScalar("esgotoTotalLigCadasCond", Hibernate.INTEGER).
addScalar("aguaTotalLigacoesMedidas", Hibernate.INTEGER).
addScalar("esgotototalligacoesativasconve", Hibernate.INTEGER).
addScalar("aguaTotalLigacoesComHidrometro", Hibernate.INTEGER).
addScalar("esgotototalligacoesativascondo", Hibernate.INTEGER).
addScalar("aguatotalligacoesresidencialca", Hibernate.INTEGER).
addScalar("esgotototalligacoesresidencial", Hibernate.INTEGER).
addScalar("aguaTotalLigacoesDesligadas", Hibernate.INTEGER).
addScalar("aguaTotalEconomiasCadastradas", Hibernate.INTEGER).
addScalar("esgotototaleconomiascadastrad2", Hibernate.INTEGER).
addScalar("aguaTotalEconomiasAtivas", Hibernate.INTEGER).
addScalar("esgotototaleconomiascadastrada", Hibernate.INTEGER).
addScalar("aguatotaleconomiasativasmedida", Hibernate.INTEGER).
addScalar("esgotototaleconomiasativasconv", Hibernate.INTEGER).
addScalar("aguatotaleconomiasresidencialc", Hibernate.INTEGER).
addScalar("esgotototaleconomiasativascond", Hibernate.INTEGER).
addScalar("aguatotaleconomiasresidencial2", Hibernate.INTEGER).
addScalar("esgotototaleconomiasresidenci2", Hibernate.INTEGER).
addScalar("aguatotaleconomiasresidenciala", Hibernate.INTEGER).
addScalar("esgotototaleconomiasresidencia", Hibernate.INTEGER).
addScalar("aguatotaleconomiascomercialati", Hibernate.INTEGER).
addScalar("esgotototaleconomiascomerciala", Hibernate.INTEGER).
addScalar("aguatotaleconomiasindustrialat", Hibernate.INTEGER).
addScalar("esgotototaleconomiasindustrial", Hibernate.INTEGER).
addScalar("aguatotaleconomiaspublicoativa", Hibernate.INTEGER).
addScalar("esgotototaleconomiaspublicoati", Hibernate.INTEGER).
addScalar("aguaTotalEconomiasRuralAtivas", Hibernate.INTEGER).
addScalar("aguaTotalLigacoesSuprimidas", Hibernate.INTEGER).
addScalar("esgotototaleconomiasruralativa", Hibernate.INTEGER).
addScalar("aguaTotalLigacoesNovas", Hibernate.INTEGER).
addScalar("esgotoTotalLigacoesNovas", Hibernate.INTEGER).
setInteger("anoMes",anoMes).
uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa os valores necessarios na tabela un_resumo_faturamento
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Rafael Pinto
* @date 20/11/2006
*
* @param FiltrarRelatorioOrcamentoSINPHelper
* @return Object[29]
*
* Object[0] - aguaTotalVolumeFaturadoMedido
* Object[1] - esgotoTotalVolumeFaturadoResidencial
* Object[2] - esgotoTotalVolumeFaturadoComercial
* Object[3] - aguaTotalVolumeFaturadoEstimado
* Object[4] - esgotoTotalVolumeFaturadoIndustrial
* Object[5] - esgotoTotalVolumeFaturadoPublico
* Object[6] - aguaTotalVolumeFaturadoResidencial
* Object[7] - esgotoTotalVolumeFaturadoGeral
* Object[8] - aguaTotalVolumeFaturadoComercial
* Object[9] - aguaTotalVolumeFaturadoIndustrial
* Object[10] - aguaTotalVolumeFaturadoPublico
* Object[11] - aguaTotalVolumeFaturadoRural
* Object[12] - aguaTotalVolumeFaturadoGeral
* Object[13] - aguaTotalFaturadoResidencial
* Object[14] - esgotoTotalFaturadoResidencial
* Object[15] - aguaTotalFaturadoComercial
* Object[16] - esgotoTotalFaturadoComercial
* Object[17] - aguaTotalFaturadoIndustrial
* Object[18] - esgotoTotalFaturadoIndustrial
* Object[19] - aguaTotalFaturadoPublico
* Object[20] - esgotoTotalFaturadoPublico
* Object[21] - aguaTotalFaturadoDireto
* Object[22] - esgotoTotalFaturadoDireto
* Object[23] - aguaTotalFaturadoIndireto
* Object[24] - esgotoTotalFaturadoIndireto
* Object[25] - devolucao
* Object[26] - campoSelecionado pode ser (loca_id,uneg_id,greg_id)
*
* @throws ErroRepositorioException
*/
public Object[] pesquisarRelatorioOrcamentoSINPResumoFaturamento(
FiltrarRelatorioOrcamentoSINPHelper filtrarRelatorioOrcamentoSINPHelper)
throws ErroRepositorioException {
Object[] retorno = null;
int anoMes = filtrarRelatorioOrcamentoSINPHelper.getAnoMesReferencia();
Integer localidade = filtrarRelatorioOrcamentoSINPHelper.getLocalidade();
Integer unidade = filtrarRelatorioOrcamentoSINPHelper.getUnidadeNegocio();
Integer gerencia = filtrarRelatorioOrcamentoSINPHelper.getGerenciaRegional();
Integer municipio = filtrarRelatorioOrcamentoSINPHelper.getMunicipio();
boolean possuiCampo = false;
if(localidade != null || unidade != null || gerencia != null || municipio != null){
possuiCampo = true;
}
Integer opcaoTotalizacao = filtrarRelatorioOrcamentoSINPHelper.getOpcaoTotalizacao();
String joinMunicipio = " left join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
if(opcaoTotalizacao == 26 || opcaoTotalizacao == 19){
joinMunicipio = " inner join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
}
Session session = HibernateUtil.getSessionGerencial();
String groupBy = filtrarRelatorioOrcamentoSINPHelper.getGroupBy();
String campoSelecionado = null;
try{
String sql = "SELECT "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 1 THEN rfat.refa_vofaturadoagua ELSE 0 END) AS aguaTotalVolumeFaturadoMedido,"
+ "SUM(CASE WHEN rfat.catg_id = 1 THEN rfat.refa_vofaturadoesgoto ELSE 0 END) AS esgotototalvolumefaturadoresid,"
+ "SUM(CASE WHEN rfat.catg_id = 2 THEN rfat.refa_vofaturadoesgoto ELSE 0 END) AS esgotototalvolumefaturadocomer,"
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 2 THEN rfat.refa_vofaturadoagua ELSE 0 END) AS aguatotalvolumefaturadoestimad,"
+ "SUM(CASE WHEN rfat.catg_id = 3 THEN rfat.refa_vofaturadoesgoto ELSE 0 END) AS esgotototalvolumefaturadoindus,"
+ "SUM(CASE WHEN rfat.catg_id = 4 THEN rfat.refa_vofaturadoesgoto ELSE 0 END) AS esgotototalvolumefaturadopubli,"
+ "SUM(CASE WHEN rfat.catg_id = 1 AND scat_id not in (13,62,63,64,70,71,77,78) THEN rfat.refa_vofaturadoagua ELSE 0 END) AS aguatotalvolumefaturadoresiden,"
+ "SUM(COALESCE(rfat.refa_vofaturadoesgoto,0)) AS esgotoTotalVolumeFaturadoGeral,"
+ "SUM(CASE WHEN rfat.catg_id = 2 THEN rfat.refa_vofaturadoagua ELSE 0 END) AS aguatotalvolumefaturadocomerci,"
+ "SUM(CASE WHEN rfat.catg_id = 3 THEN rfat.refa_vofaturadoagua ELSE 0 END) AS aguatotalvolumefaturadoindustr,"
+ "SUM(CASE WHEN rfat.catg_id = 4 THEN rfat.refa_vofaturadoagua ELSE 0 END) AS aguaTotalVolumeFaturadoPublico,"
+ "SUM(CASE WHEN rfat.catg_id = 1 AND scat_id in (13,62,63,64,70,71,77,78) THEN rfat.refa_vofaturadoagua ELSE 0 END) AS aguaTotalVolumeFaturadoRural,"
+ "SUM(COALESCE(rfat.refa_vofaturadoagua,0)) AS aguaTotalVolumeFaturadoGeral,"
+ "SUM(CASE WHEN rfat.catg_id = 1 THEN rfat.refa_vlfaturadoagua ELSE 0 END) AS aguaTotalFaturadoResidencial,"
+ "SUM(CASE WHEN rfat.catg_id = 1 THEN rfat.refa_vlfaturadoesgoto ELSE 0 END) AS esgotoTotalFaturadoResidencial,"
+ "SUM(CASE WHEN rfat.catg_id = 2 THEN rfat.refa_vlfaturadoagua ELSE 0 END) AS aguaTotalFaturadoComercial,"
+ "SUM(CASE WHEN rfat.catg_id = 2 THEN rfat.refa_vlfaturadoesgoto ELSE 0 END) AS esgotoTotalFaturadoComercial,"
+ "SUM(CASE WHEN rfat.catg_id = 3 THEN rfat.refa_vlfaturadoagua ELSE 0 END) AS aguaTotalFaturadoIndustrial,"
+ "SUM(CASE WHEN rfat.catg_id = 3 THEN rfat.refa_vlfaturadoesgoto ELSE 0 END) AS esgotoTotalFaturadoIndustrial,"
+ "SUM(CASE WHEN rfat.catg_id = 4 THEN rfat.refa_vlfaturadoagua ELSE 0 END) AS aguaTotalFaturadoPublico,"
+ "SUM(CASE WHEN rfat.catg_id = 4 THEN rfat.refa_vlfaturadoesgoto ELSE 0 END) AS esgotoTotalFaturadoPublico,"
+ "SUM(COALESCE(rfat.refa_vlfaturadoagua,0)) AS aguaTotalFaturadoDireto,"
+ "SUM(COALESCE(rfat.refa_vlfaturadoesgoto,0)) AS esgotoTotalFaturadoDireto,"
+ "SUM(CASE WHEN rfat.fntp_id = 1 AND rfat.lict_id in (1,2,3,4,5,6,10,12) THEN rfat.refa_vldocsfaturadosoutros ELSE 0 END) AS aguaTotalFaturadoIndireto , "
+ "SUM(CASE WHEN rfat.fntp_id = 1 AND rfat.lict_id in (7,8,9,11) THEN rfat.refa_vldocsfaturadosoutros ELSE 0 END) AS esgotoTotalFaturadoIndireto, "
+ "SUM(COALESCE(rfat.refa_vldocsfaturadoscredito,0)) AS devolucao, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 1 THEN rfat.refa_qtcontasemitidas ELSE 0 END) as totalligacoesfaturadasmedidasa, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 1 and rfat.refa_vlfaturadoesgoto>0 THEN rfat.refa_qtcontasemitidas ELSE 0 END) as totalligacoesfaturadasmedidase, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 2 THEN rfat.refa_qtcontasemitidas ELSE 0 END) as totalligacoesfaturadasnaomedid, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 2 and rfat.refa_vlfaturadoesgoto>0 THEN rfat.refa_qtcontasemitidas ELSE 0 END) as totalligacoesfaturadasnaomedi2, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 1 THEN rfat.refa_qteconomiasfaturadas ELSE 0 END) as totaleconomiasfaturadasmedidas, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 1 and rfat.refa_vlfaturadoesgoto>0 THEN rfat.refa_qteconomiasfaturadas ELSE 0 END) as totaleconomiasfaturadasmedida2, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 2 THEN rfat.refa_qteconomiasfaturadas ELSE 0 END) as totaleconomiasfaturadasnaomedi, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 2 and rfat.refa_vlfaturadoesgoto>0 THEN rfat.refa_qteconomiasfaturadas ELSE 0 END) as totaleconomiasfaturadasnaomed2, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 1 THEN rfat.refa_vlfaturadoagua ELSE 0 END) as TotalFaturamentoMedidoAgua, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 1 THEN rfat.refa_vlfaturadoesgoto ELSE 0 END) as TotalFaturamentoMedidoEsgoto, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 2 THEN rfat.refa_vlfaturadoagua ELSE 0 END) as TotalFaturamentoNaoMedidoAgua, "
+ "SUM(CASE WHEN rfat.refa_ichidrometro = 2 THEN rfat.refa_vlfaturadoesgoto ELSE 0 END) as totalfaturamentonaomedidoesgot "
+ (possuiCampo ? groupBy + " AS idCampoSelecionado" : "")
+ " FROM faturamento.un_resumo_faturamento rfat INNER JOIN cadastro.g_localidade loc on (rfat.loca_id = loc.loca_id) "
+ joinMunicipio
+ "WHERE rfat.refa_amreferencia = :anoMes";
// Localidade
if (localidade != null) {
sql += " AND loc.loca_id = " + localidade;
campoSelecionado = "loc.loca_id";
}
// Unidade de Negocio
if (unidade != null) {
sql += " AND rfat.uneg_id = " + unidade;
campoSelecionado = "rfat.uneg_id";
}
// Gerencia Regional
if (gerencia != null) {
sql += " AND rfat.greg_id = " + gerencia;
campoSelecionado = "rfat.greg_id";
}
//Munic�pio
if(municipio != null){
sql += " AND loc.muni_idprincipal = " + municipio;
campoSelecionado = "loc.muni_idprincipal";
}
if(!groupBy.equals("")){
sql += " GROUP BY "+groupBy.substring(1)
+ " ORDER BY "+groupBy.substring(1);
}
if(campoSelecionado != null){
//Faz a pesquisa
retorno = (Object[]) session.createSQLQuery(sql).
addScalar("aguaTotalVolumeFaturadoMedido", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadoresid", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadocomer", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadoestimad", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadoindus", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadopubli", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadoresiden", Hibernate.INTEGER).
addScalar("esgotoTotalVolumeFaturadoGeral", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadocomerci", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadoindustr", Hibernate.INTEGER).
addScalar("aguaTotalVolumeFaturadoPublico", Hibernate.INTEGER).
addScalar("aguaTotalVolumeFaturadoRural", Hibernate.INTEGER).
addScalar("aguaTotalVolumeFaturadoGeral", Hibernate.INTEGER).
addScalar("aguaTotalFaturadoResidencial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoResidencial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoComercial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoComercial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoIndustrial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoIndustrial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoPublico", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoPublico", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoDireto", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoDireto", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoIndireto", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoIndireto", Hibernate.BIG_DECIMAL).
addScalar("devolucao", Hibernate.BIG_DECIMAL).
addScalar("totalligacoesfaturadasmedidasa", Hibernate.INTEGER).
addScalar("totalligacoesfaturadasmedidase", Hibernate.INTEGER).
addScalar("totalligacoesfaturadasnaomedid", Hibernate.INTEGER).
addScalar("totalligacoesfaturadasnaomedi2", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasmedidas", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasmedida2", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasnaomedi", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasnaomed2", Hibernate.INTEGER).
addScalar("TotalFaturamentoMedidoAgua", Hibernate.BIG_DECIMAL).
addScalar("TotalFaturamentoMedidoEsgoto", Hibernate.BIG_DECIMAL).
addScalar("TotalFaturamentoNaoMedidoAgua", Hibernate.BIG_DECIMAL).
addScalar("totalfaturamentonaomedidoesgot", Hibernate.BIG_DECIMAL).
addScalar("idCampoSelecionado", Hibernate.INTEGER).
setInteger("anoMes",anoMes).
setMaxResults(1).
uniqueResult();
}else{
//Faz a pesquisa
retorno = (Object[]) session.createSQLQuery(sql).
addScalar("aguaTotalVolumeFaturadoMedido", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadoresid", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadocomer", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadoestimad", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadoindus", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadopubli", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadoresiden", Hibernate.INTEGER).
addScalar("esgotoTotalVolumeFaturadoGeral", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadocomerci", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadoindustr", Hibernate.INTEGER).
addScalar("aguaTotalVolumeFaturadoPublico", Hibernate.INTEGER).
addScalar("aguaTotalVolumeFaturadoRural", Hibernate.INTEGER).
addScalar("aguaTotalVolumeFaturadoGeral", Hibernate.INTEGER).
addScalar("aguaTotalFaturadoResidencial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoResidencial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoComercial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoComercial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoIndustrial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoIndustrial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoPublico", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoPublico", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoDireto", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoDireto", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoIndireto", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoIndireto", Hibernate.BIG_DECIMAL).
addScalar("devolucao", Hibernate.BIG_DECIMAL).
addScalar("totalligacoesfaturadasmedidasa", Hibernate.INTEGER).
addScalar("totalligacoesfaturadasmedidase", Hibernate.INTEGER).
addScalar("totalligacoesfaturadasnaomedid", Hibernate.INTEGER).
addScalar("totalligacoesfaturadasnaomedi2", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasmedidas", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasmedida2", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasnaomedi", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasnaomed2", Hibernate.INTEGER).
addScalar("TotalFaturamentoMedidoAgua", Hibernate.BIG_DECIMAL).
addScalar("TotalFaturamentoMedidoEsgoto", Hibernate.BIG_DECIMAL).
addScalar("TotalFaturamentoNaoMedidoAgua", Hibernate.BIG_DECIMAL).
addScalar("totalfaturamentonaomedidoesgot", Hibernate.BIG_DECIMAL).
setInteger("anoMes",anoMes).
setMaxResults(1).
uniqueResult();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa o total das liga�oes tabela un_resumo_ligacao_economia
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Rafael Pinto
* @date 20/11/2006
*
* @param FiltrarRelatorioOrcamentoSINPHelper
* @return Object[2]
*
* Object[0] - quantidadeLigacoesAgua
* Object[1] - quantidadeLigacoesEsgoto
*
* @throws ErroRepositorioException
*/
public Object[] pesquisarRelatorioOrcamentoSINPTotalLigacoesResumoLigacaoEconomia(
FiltrarRelatorioOrcamentoSINPHelper filtrarRelatorioOrcamentoSINPHelper)
throws ErroRepositorioException {
Object[] retorno = null;
int anoMesAnterior = filtrarRelatorioOrcamentoSINPHelper.getAnoMesReferenciaAnterior();
Integer localidade = filtrarRelatorioOrcamentoSINPHelper.getLocalidade();
Integer unidade = filtrarRelatorioOrcamentoSINPHelper.getUnidadeNegocio();
Integer gerencia = filtrarRelatorioOrcamentoSINPHelper.getGerenciaRegional();
Collection<Integer> idsLocalidadesMunicipio = filtrarRelatorioOrcamentoSINPHelper.getChavesLocalidadesMunicipio();
Session session = HibernateUtil.getSessionGerencial();
try{
String sql = "SELECT "
+ "SUM(CASE WHEN las.last_iccadastradaagua = 1 THEN rele_qtligacoes ELSE 0 END) AS quantidadeLigacoesAgua, "
+ "SUM(CASE WHEN les.lest_iccadastradaesgoto = 1 THEN rele_qtligacoes ELSE 0 END) AS quantidadeLigacoesEsgoto "
+ "FROM cadastro.un_res_lig_econ rle "
+ " left join atendimentopublico.g_ligacao_agua_situacao las on ( rle.last_id = las.last_id ) "
+ " left join atendimentopublico.g_lig_esgoto_sit les on ( rle.lest_id = les.lest_id ) "
+ "WHERE rele_amreferencia = :anoMesAnterior";
// Localidade
if (localidade != null) {
sql += " AND loca_id = " + localidade;
}
// Localidades do Munic�pio
if (idsLocalidadesMunicipio != null) {
sql += " AND loca_id in " + idsLocalidadesMunicipio;
sql = sql.replace("[","(");
sql = sql.replace("]",")");
}
// Unidade de Negocio
if (unidade != null) {
sql += " AND uneg_id = " + unidade;
}
// Gerencia Regional
if (gerencia != null) {
sql += " AND greg_id = " + gerencia;
}
//Faz a pesquisa
retorno = (Object[])session.createSQLQuery(sql).
addScalar("quantidadeLigacoesAgua", Hibernate.INTEGER).
addScalar("quantidadeLigacoesEsgoto", Hibernate.INTEGER).
setInteger("anoMesAnterior",anoMesAnterior).
uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa o total dos consumos tabela un_resumo_consumo_agua
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Rafael Pinto
* @date 20/11/2006
*
* @param FiltrarRelatorioOrcamentoSINPHelper
* @return Object[2]
*
* Object[0] - volumeFaturadoMicroMedido
* Object[1] - volumeFaturadoEconomiasResidenciasAtivasMicroMedido
*
* @throws ErroRepositorioException
*/
public Object[] pesquisarRelatorioOrcamentoSINPTotalComumoResumoConsumoAgua(
FiltrarRelatorioOrcamentoSINPHelper filtrarRelatorioOrcamentoSINPHelper)
throws ErroRepositorioException {
Object[] retorno = null;
int anoMes = filtrarRelatorioOrcamentoSINPHelper.getAnoMesReferencia();
Integer localidade = filtrarRelatorioOrcamentoSINPHelper.getLocalidade();
Integer unidade = filtrarRelatorioOrcamentoSINPHelper.getUnidadeNegocio();
Integer gerencia = filtrarRelatorioOrcamentoSINPHelper.getGerenciaRegional();
Integer municipio = filtrarRelatorioOrcamentoSINPHelper.getMunicipio();
Integer opcaoTotalizacao = filtrarRelatorioOrcamentoSINPHelper.getOpcaoTotalizacao();
String joinMunicipio = " left join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
if(opcaoTotalizacao == 26 || opcaoTotalizacao == 19){
joinMunicipio = " inner join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
}
Session session = HibernateUtil.getSessionGerencial();
try{
String sql = "SELECT "
+ "SUM(COALESCE(reca_consumoagua,0)) AS volumeFaturadoMicroMedido, "
+ "SUM(CASE WHEN catg_id = 1 THEN reca_consumoagua ELSE 0 END) AS volumefaturadoeconomiasresiden "
+ "FROM micromedicao.un_resumo_consumo_agua cagua INNER JOIN cadastro.g_localidade loc on (cagua.loca_id = loc.loca_id) "
+ joinMunicipio
+ "WHERE reca_amreferencia = :anoMes "
+ "AND cstp_id NOT IN(5,7)";
// Localidade
if (localidade != null) {
sql += " AND loc.loca_id = " + localidade;
}
// Unidade de Negocio
if (unidade != null) {
sql += " AND cagua.uneg_id = " + unidade;
}
// Gerencia Regional
if (gerencia != null) {
sql += " AND cagua.greg_id = " + gerencia;
}
if(municipio != null){
sql += " AND loc.muni_idprincipal = " + municipio;
}
//Faz a pesquisa
retorno = (Object[])session.createSQLQuery(sql).
addScalar("volumeFaturadoMicroMedido", Hibernate.INTEGER).
addScalar("volumefaturadoeconomiasresiden", Hibernate.INTEGER).
setInteger("anoMes",anoMes).
uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa o total dos consumos tabela un_resumo_arrecadacao
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Rafael Pinto, Hugo Leonardo
* @date 20/11/2006, 06/10/2010
*
* @param FiltrarRelatorioOrcamentoSINPHelper
* @return BigDecimal
*
* @throws ErroRepositorioException
*/
public BigDecimal pesquisarRelatorioOrcamentoSINPTotalArrecadacaoResumoArrecadacao(
FiltrarRelatorioOrcamentoSINPHelper filtrarRelatorioOrcamentoSINPHelper,
boolean ehAnterior) throws ErroRepositorioException {
BigDecimal retorno = null;
Integer localidade = filtrarRelatorioOrcamentoSINPHelper.getLocalidade();
Integer unidade = filtrarRelatorioOrcamentoSINPHelper.getUnidadeNegocio();
Integer gerencia = filtrarRelatorioOrcamentoSINPHelper.getGerenciaRegional();
Integer municipio = filtrarRelatorioOrcamentoSINPHelper.getMunicipio();
Integer opcaoTotalizacao = filtrarRelatorioOrcamentoSINPHelper.getOpcaoTotalizacao();
String joinMunicipio = " left join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
if(opcaoTotalizacao == 26 || opcaoTotalizacao == 19){
joinMunicipio = " inner join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
}
Session session = HibernateUtil.getSessionGerencial();
int anoMes = filtrarRelatorioOrcamentoSINPHelper.getAnoMesReferencia();
String and = "AND rear_amreferenciadocumento >= :anoMes ";
if(ehAnterior){
and = "AND (rear_amreferenciadocumento < :anoMes OR rear_amreferenciadocumento is null ) ";
}
try{
String sql = "SELECT "
+ "SUM( "
+ "COALESCE(rear_vlagua,0) +"
+ "COALESCE(rear_vlesgoto,0) +"
+ "COALESCE(rear_vlnaoidentificado,0) +"
+ "COALESCE(rear_vldocsrecebidosoutros,0) - "
+ "(COALESCE(rear_vldocsrecebidoscredito,0) + "
+ "COALESCE(rear_vlimpostos,0) + "
+ "COALESCE(rear_vldevolucoesclassificadas,0) + "
+ "COALESCE(rear_vldevolucoesnaoclassif,0)) "
+ ") AS totalArrecadacao "
+ "FROM arrecadacao.un_resumo_arrecadacao arr INNER JOIN cadastro.g_localidade loc on (arr.loca_id = loc.loca_id) "
+ joinMunicipio
+ "WHERE rear_amreferencia = :anoMes "
+ and;
// Localidade
if (localidade != null) {
sql += " AND loc.loca_id = " + localidade;
}
// Unidade de Negocio
if (unidade != null) {
sql += " AND arr.uneg_id = " + unidade;
}
// Gerencia Regional
if (gerencia != null) {
sql += " AND arr.greg_id = " + gerencia;
}
if(municipio != null){
sql += " AND loc.muni_idprincipal = " + municipio;
}
//Faz a pesquisa
retorno = (BigDecimal) session.createSQLQuery(sql).
addScalar("totalArrecadacao", Hibernate.BIG_DECIMAL).
setInteger("anoMes",anoMes).
uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa o total de contas a receber consumos tabela un_resumo_pendencia
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Rafael Pinto
* @date 30/11/2006
*
* @param FiltrarRelatorioOrcamentoSINPHelper
* @return BigDecimal
*
* @throws ErroRepositorioException
*/
public Object[] pesquisarRelatorioOrcamentoSINPTotalContasResumoPendencia(
FiltrarRelatorioOrcamentoSINPHelper filtrarRelatorioOrcamentoSINPHelper)
throws ErroRepositorioException {
Object[] retorno = null;
Integer localidade = filtrarRelatorioOrcamentoSINPHelper.getLocalidade();
Integer unidade = filtrarRelatorioOrcamentoSINPHelper.getUnidadeNegocio();
Integer gerencia = filtrarRelatorioOrcamentoSINPHelper.getGerenciaRegional();
Integer municipio = filtrarRelatorioOrcamentoSINPHelper.getMunicipio();
Integer opcaoTotalizacao = filtrarRelatorioOrcamentoSINPHelper.getOpcaoTotalizacao();
String joinMunicipio = " left join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
if(opcaoTotalizacao == 26 || opcaoTotalizacao == 19){
joinMunicipio = " inner join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
}
int anoMes = filtrarRelatorioOrcamentoSINPHelper.getAnoMesReferencia();
Session session = HibernateUtil.getSessionGerencial();
try{
String sql = "SELECT "
+ "SUM( "
+ "(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) ) "
+ ") AS total, "
+ "SUM(CASE WHEN catg_id <> 4 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 particular, "
+ "SUM(CASE WHEN catg_id = 4 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 publico "
+ "FROM cobranca.un_resumo_pendencia pend INNER JOIN cadastro.g_localidade loc on (pend.loca_id = loc.loca_id) "
+ joinMunicipio
+ "WHERE rpen_amreferencia = :anoMes "
+ "AND rpen_icvencido = 1 ";
// Localidade
if (localidade != null) {
sql += " AND loc.loca_id = " + localidade;
}
// Unidade de Negocio
if (unidade != null) {
sql += " AND pend.uneg_id = " + unidade;
}
// Gerencia Regional
if (gerencia != null) {
sql += " AND pend.greg_id = " + gerencia;
}
if(municipio != null){
sql += " AND loc.muni_idprincipal = " + municipio;
}
//Faz a pesquisa
retorno = (Object[]) session.createSQLQuery(sql).
addScalar("total", Hibernate.BIG_DECIMAL).
addScalar("particular", Hibernate.BIG_DECIMAL).
addScalar("publico", Hibernate.BIG_DECIMAL).
setInteger("anoMes",anoMes).
uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa todas as localidades da tabela g_localidade
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Rafael Pinto
* @date 21/11/2006
*
* @return Collection<Integer>
*
* @throws ErroRepositorioException
*/
public Collection<Integer> pesquisarLocalidades(Integer idUnidade)
throws ErroRepositorioException {
Collection<Integer> retorno = null;
Session session = HibernateUtil.getSessionGerencial();
try{
String consulta = "SELECT localidade.id "
+ "FROM GLocalidade as localidade "
+ "WHERE localidade.gerUnidadeNegocio.id = :idUnidade "
+ "AND localidade.indicadorUso = :indicadorUso "
+ "ORDER BY localidade.codigoCentroCusto";
retorno = session.createQuery(consulta).
setInteger("idUnidade",idUnidade).
setInteger("indicadorUso",ConstantesSistema.INDICADOR_USO_ATIVO).
list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa todas as unidades da tabela g_unidade_negocio
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Rafael Pinto
* @date 21/11/2006
*
* @return Collection<Integer>
*
* @throws ErroRepositorioException
*/
public Collection<Integer> pesquisarUnidadesNegocios(Integer idGerencia)
throws ErroRepositorioException {
Collection<Integer> retorno = null;
Session session = HibernateUtil.getSessionGerencial();
try{
String consulta = "SELECT unidade.id "
+ "FROM GUnidadeNegocio unidade "
+ "WHERE unidade.gerGerenciaRegional.id = :idGerencia "
+ "ORDER BY unidade.id";
retorno = session.createQuery(consulta)
.setInteger("idGerencia",idGerencia)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa todas as unidades da tabela g_gerencia_regional
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Rafael Pinto
* @date 21/11/2006
*
* @return Collection<Integer>
*
* @throws ErroRepositorioException
*/
public Collection<Integer> pesquisarGerenciasRegionais()
throws ErroRepositorioException {
Collection<Integer> retorno = null;
Session session = HibernateUtil.getSessionGerencial();
try{
String consulta = "SELECT gerencia.id "
+ "FROM GGerenciaRegional gerencia "
+ "ORDER BY gerencia.id";
retorno = session.createQuery(consulta).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa todas os munic�pios associados � localidade da tabela g_municipio
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Diogo Peixoto
* @date 02/05/2011
*
* @return Collection<Integer>
*
* @throws ErroRepositorioException
*/
public Collection<Integer> pesquisarMunicipiosAssociadosLocalidade()throws ErroRepositorioException {
Collection<Integer> retorno = null;
Session session = HibernateUtil.getSessionGerencial();
try{
String consulta = "SELECT DISTINCT(muni.id) "
+ "FROM GLocalidade as localidade "
+ "INNER JOIN localidade.gerMunicipio as muni "
+ "ORDER BY muni.id";
retorno = session.createQuery(consulta).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* [UC0733] Gerar Quadro de metas Acumulado
*
* @author Bruno Barros
* @param filtrarRelatorioQuadroMetasAcumuladoHelper
* @return
*/
public List pesquisarRelatorioQuadroMetasAcumulado(
FiltrarRelatorioQuadroMetasAcumuladoHelper filtrarRelatorioQuadroMetasAcumuladoHelper)
throws ErroRepositorioException{
List retorno = null;
Session session = HibernateUtil.getSessionGerencial();
Integer qtdGrupos = 0;
String select = "";
String where = "";
String groupby = "group by \n";
String orderby = "order by \n";
// op��es de totaliza��o
if ( filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_GERENCIA_REGIONAL ||
filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_UNIDADE_NEGOCIO ||
filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_LOCALIDADE ||
filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_GERENCIA_REGIONAL ||
filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_UNIDADE_NEGOCIO ||
filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_LOCALIDADE ){
select += " ,r.gerGerenciaRegional.id \n";
groupby += " r.gerGerenciaRegional.id \n";
orderby += " r.gerGerenciaRegional.id \n";
qtdGrupos++;
}
if ( filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_UNIDADE_NEGOCIO ||
filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_LOCALIDADE ||
filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_UNIDADE_NEGOCIO ||
filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_LOCALIDADE ){
select += " ,r.gerUnidadeNegocio.id \n";
groupby += " " + ( qtdGrupos > 0 ? "," : "" ) + "r.gerUnidadeNegocio.id \n";
orderby += " " + ( qtdGrupos > 0 ? "," : "" ) + "r.gerUnidadeNegocio.id \n";
qtdGrupos++;
}
if ( filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_LOCALIDADE ||
filtrarRelatorioQuadroMetasAcumuladoHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_LOCALIDADE ){
select += " ,r.gerLocalidade.id, r.gerLocalidade.codigoCentroCusto \n";
groupby += " " + ( qtdGrupos > 0 ? "," : "" ) + "r.gerLocalidade.id, r.gerLocalidade.codigoCentroCusto \n";
orderby += " " + ( qtdGrupos > 0 ? "," : "" ) + "r.gerLocalidade.id \n, r.gerLocalidade.codigoCentroCusto";
qtdGrupos++;
}
if ( qtdGrupos == 0 ){
select = "";
groupby += " r.anoMesReferencia";
orderby = "";
}
// Montamos a clausula where
if ( filtrarRelatorioQuadroMetasAcumuladoHelper.getGerenciaRegional() != null &&
!filtrarRelatorioQuadroMetasAcumuladoHelper.getGerenciaRegional().equals( 0 ) ){
where += " and r.gerGerenciaRegional.id = " + filtrarRelatorioQuadroMetasAcumuladoHelper.getGerenciaRegional();
}
if ( filtrarRelatorioQuadroMetasAcumuladoHelper.getUnidadeNegocio() != null &&
!filtrarRelatorioQuadroMetasAcumuladoHelper.getUnidadeNegocio().equals( 0 ) ){
where += " and r.gerUnidadeNegocio.id = " + filtrarRelatorioQuadroMetasAcumuladoHelper.getUnidadeNegocio();
}
if ( filtrarRelatorioQuadroMetasAcumuladoHelper.getLocalidade() != null &&
!filtrarRelatorioQuadroMetasAcumuladoHelper.getLocalidade().equals( 0 ) ){
where += " and r.gerLocalidade.id = " + filtrarRelatorioQuadroMetasAcumuladoHelper.getLocalidade();
}
try{
String consulta =
" select \n" +
// INDICE 0 - Ligacoes Cadastradas, Grupo Subcategoria 101
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 101 ) then \n" +
" r.quantidadeLigacoesCadastradas \n" +
" else 0 end ), \n" +
// INDICE 1 - Ligacoes Cadastradas, Grupo Subcategoria 102
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 102 ) then \n" +
" r.quantidadeLigacoesCadastradas \n" +
" else 0 end ), \n" +
// INDICE 2 - Ligacoes Cadastradas, Grupo Subcategoria 103
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 103 ) then \n" +
" r.quantidadeLigacoesCadastradas \n" +
" else 0 end ), \n" +
// INDICE 3 - Ligacoes Cadastradas, Grupo Subcategoria 200
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 200 ) then \n" +
" r.quantidadeLigacoesCadastradas \n" +
" else 0 end ), \n" +
// INDICE 4 - Ligacoes Cadastradas, Grupo Subcategoria 300
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 300 ) then \n" +
" r.quantidadeLigacoesCadastradas \n" +
" else 0 end ), \n" +
// INDICE 5 - Ligacoes Cadastradas, Grupo Subcategoria 400
" sum(0), \n" +
// " case when ( r.codigoGrupoSubcategoria = 400 ) then \n" +
// " r.quantidadeLigacoesCadastradas \n" +
// " else 0 end ), \n" +
// INDICE 6 - Ligacoes Cadastradas, Grupo Subcategoria 116
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 116 ) then \n" +
" r.quantidadeLigacoesCadastradas \n" +
" else 0 end ), \n" +
// INDICE 7 - Ligacoes Cadastradas, Grupo Subcategoria 115
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 115 ) then \n" +
" r.quantidadeLigacoesCadastradas \n" +
" else 0 end ), \n" +
// INDICE 8 - Ligacoes Cadastradas
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria <> 400 ) then \n" +
" r.quantidadeLigacoesCadastradas \n" +
" else 0 end ), \n" +
// INDICE 9 - Ligacoes Cortadas, Grupo Subcategoria 101
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 101 ) then \n" +
" r.quantidadeLigacoesCortadas \n" +
" else 0 end ), \n" +
// INDICE 10 - Ligacoes Cortadas, Grupo Subcategoria 102
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 102 ) then \n" +
" r.quantidadeLigacoesCortadas \n" +
" else 0 end ), \n" +
// INDICE 11 - Ligacoes Cortadas, Grupo Subcategoria 103
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 103 ) then \n" +
" r.quantidadeLigacoesCortadas \n" +
" else 0 end ), \n" +
// INDICE 12 - Ligacoes Cortadas, Grupo Subcategoria 200
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 200 ) then \n" +
" r.quantidadeLigacoesCortadas \n" +
" else 0 end ), \n" +
// INDICE 13 - Ligacoes Cortadas, Grupo Subcategoria 300
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 300 ) then \n" +
" r.quantidadeLigacoesCortadas \n" +
" else 0 end ), \n" +
// INDICE 14 - Ligacoes Cortadas, Grupo Subcategoria 400
" sum(0), \n" +
// " case when ( r.codigoGrupoSubcategoria = 400 ) then \n" +
// " r.quantidadeLigacoesCortadas \n" +
// " else 0 end ), \n" +
// INDICE 15 - Ligacoes Cortadas, Grupo Subcategoria 116
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 116 ) then \n" +
" r.quantidadeLigacoesCortadas \n" +
" else 0 end ), \n" +
// INDICE 16 - Ligacoes Cortadas, Grupo Subcategoria 115
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 115 ) then \n" +
" r.quantidadeLigacoesCortadas \n" +
" else 0 end ), \n" +
// INDICE 17 - Ligacoes Cortadas
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria <> 400 ) then \n" +
" r.quantidadeLigacoesCortadas \n" +
" else 0 end ), \n" +
// INDICE 18 - Ligacoes Suprimidas, Grupo Subcategoria 101
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 101 ) then \n" +
" r.quantidadeLigacoesSuprimidas \n" +
" else 0 end ), \n" +
// INDICE 19 - Ligacoes Suprimidas, Grupo Subcategoria 102
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 102 ) then \n" +
" r.quantidadeLigacoesSuprimidas \n" +
" else 0 end ), \n" +
// INDICE 20 - Ligacoes Suprimidas, Grupo Subcategoria 103
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 103 ) then \n" +
" r.quantidadeLigacoesSuprimidas \n" +
" else 0 end ), \n" +
// INDICE 21 - Ligacoes Suprimidas, Grupo Subcategoria 200
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 200 ) then \n" +
" r.quantidadeLigacoesSuprimidas \n" +
" else 0 end ), \n" +
// INDICE 22 - Ligacoes Suprimidas, Grupo Subcategoria 300
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 300 ) then \n" +
" r.quantidadeLigacoesSuprimidas \n" +
" else 0 end ), \n" +
// INDICE 23 - Ligacoes Suprimidas, Grupo Subcategoria 400
" sum(0), \n" +
// " case when ( r.codigoGrupoSubcategoria = 400 ) then \n" +
// " r.quantidadeLigacoesSuprimidas \n" +
// " else 0 end ), \n" +
// INDICE 24 - Ligacoes Suprimidas, Grupo Subcategoria 116
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 116 ) then \n" +
" r.quantidadeLigacoesSuprimidas \n" +
" else 0 end ), \n" +
// INDICE 25 - Ligacoes Suprimidas, Grupo Subcategoria 115
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 115 ) then \n" +
" r.quantidadeLigacoesSuprimidas \n" +
" else 0 end ), \n" +
// INDICE 26 - Ligacoes Suprimidas
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria <> 400 ) then \n" +
" r.quantidadeLigacoesSuprimidas \n" +
" else 0 end ), \n" +
// INDICE 27 - Ligacoes Ativas, Grupo Subcategoria 101
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 101 ) then \n" +
" r.quantidadeLigacoesAtivas \n" +
" else 0 end ), \n" +
// INDICE 28 - Ligacoes Ativas, Grupo Subcategoria 102
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 102 ) then \n" +
" r.quantidadeLigacoesAtivas \n" +
" else 0 end ), \n" +
// INDICE 29 - Ligacoes Ativas, Grupo Subcategoria 103
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 103 ) then \n" +
" r.quantidadeLigacoesAtivas \n" +
" else 0 end ), \n" +
// INDICE 30 - Ligacoes Ativas, Grupo Subcategoria 200
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 200 ) then \n" +
" r.quantidadeLigacoesAtivas \n" +
" else 0 end ), \n" +
// INDICE 31 - Ligacoes Ativas, Grupo Subcategoria 300
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 300 ) then \n" +
" r.quantidadeLigacoesAtivas \n" +
" else 0 end ), \n" +
// INDICE 32 - Ligacoes Ativas, Grupo Subcategoria 400
" sum(0), \n" +
// " case when ( r.codigoGrupoSubcategoria = 400 ) then \n" +
// " r.quantidadeLigacoesAtivas \n" +
// " else 0 end ), \n" +
// INDICE 33 - Ligacoes Ativas, Grupo Subcategoria 116
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 116 ) then \n" +
" r.quantidadeLigacoesAtivas \n" +
" else 0 end ), \n" +
// INDICE 34 - Ligacoes Ativas, Grupo Subcategoria 115
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 115 ) then \n" +
" r.quantidadeLigacoesAtivas \n" +
" else 0 end ), \n" +
// INDICE 35 - Ligacoes Ativas
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria <> 400 ) then \n" +
" r.quantidadeLigacoesAtivas \n" +
" else 0 end ), \n" +
// INDICE 36 - Ligacoes Ativas debito 3m, Grupo Subcategoria 101
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 101 ) then \n" +
" r.quantidadeLigacoesAtivasDebito3m \n" +
" else 0 end ), \n" +
// INDICE 37 - Ligacoes Ativas debito 3m, Grupo Subcategoria 102
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 102 ) then \n" +
" r.quantidadeLigacoesAtivasDebito3m \n" +
" else 0 end ), \n" +
// INDICE 38 - Ligacoes Ativas debito 3m, Grupo Subcategoria 103
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 103 ) then \n" +
" r.quantidadeLigacoesAtivasDebito3m \n" +
" else 0 end ), \n" +
// INDICE 39 - Ligacoes Ativas debito 3m, Grupo Subcategoria 200
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 200 ) then \n" +
" r.quantidadeLigacoesAtivasDebito3m \n" +
" else 0 end ), \n" +
// INDICE 40 - Ligacoes Ativas debito 3m, Grupo Subcategoria 300
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 300 ) then \n" +
" r.quantidadeLigacoesAtivasDebito3m \n" +
" else 0 end ), \n" +
// INDICE 41 - Ligacoes Ativas debito 3m, Grupo Subcategoria 400
" sum(0), \n" +
// " case when ( r.codigoGrupoSubcategoria = 400 ) then \n" +
// " r.quantidadeLigacoesAtivasDebito3m \n" +
// " else 0 end ), \n" +
// INDICE 42 - Ligacoes Ativas debito 3m, Grupo Subcategoria 116
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 116 ) then \n" +
" r.quantidadeLigacoesAtivasDebito3m \n" +
" else 0 end ), \n" +
// INDICE 43 - Ligacoes Ativas debito 3m, Grupo Subcategoria 115
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria <> 115 ) then \n" +
" r.quantidadeLigacoesAtivasDebito3m \n" +
" else 0 end ), \n" +
// INDICE 44 - Ligacoes Ativas debito 3m
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria <> 400 ) then \n" +
" r.quantidadeLigacoesAtivasDebito3m \n" +
" else 0 end ), \n" +
// INDICE 45 - Ligacoes Consumo Medido, Grupo Subcategoria 101
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 101 ) then \n" +
" r.quantidadeLigacoesConsumoMedido \n" +
" else 0 end ), \n" +
// INDICE 46 - Ligacoes Consumo Medido, Grupo Subcategoria 102
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 102 ) then \n" +
" r.quantidadeLigacoesConsumoMedido \n" +
" else 0 end ), \n" +
// INDICE 47 - Ligacoes Consumo Medido, Grupo Subcategoria 103
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 103 ) then \n" +
" r.quantidadeLigacoesConsumoMedido \n" +
" else 0 end ), \n" +
// INDICE 48 - Ligacoes Consumo Medido, Grupo Subcategoria 200
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 200 ) then \n" +
" r.quantidadeLigacoesConsumoMedido \n" +
" else 0 end ), \n" +
// INDICE 49 - Ligacoes Consumo Medido, Grupo Subcategoria 300
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 300 ) then \n" +
" r.quantidadeLigacoesConsumoMedido \n" +
" else 0 end ), \n" +
// INDICE 50 - Ligacoes Consumo Medido, Grupo Subcategoria 400
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 400 ) then \n" +
" r.quantidadeLigacoesConsumoMedido \n" +
" else 0 end ), \n" +
// INDICE 51 - Ligacoes Consumo Medido, Grupo Subcategoria 116
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 116 ) then \n" +
" r.quantidadeLigacoesConsumoMedido \n" +
" else 0 end ), \n" +
// INDICE 52 - Ligacoes Consumo Medido, Grupo Subcategoria 115
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 115 ) then \n" +
" r.quantidadeLigacoesConsumoMedido \n" +
" else 0 end ), \n" +
// INDICE 53 - Ligacoes Consumo Medido
" sum( r.quantidadeLigacoesConsumoMedido ), \n" +
// INDICE 54 - Ligacoes Consumo ate 5m3, Grupo Subcategoria 101
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 101 ) then \n" +
" r.quantidadeLigacoesConsumoAte5m3 \n" +
" else 0 end ), \n" +
// INDICE 55 - Ligacoes Consumo ate 5m3, Grupo Subcategoria 102
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 102 ) then \n" +
" r.quantidadeLigacoesConsumoAte5m3 \n" +
" else 0 end ), \n" +
// INDICE 56 - Ligacoes Consumo ate 5m3, Grupo Subcategoria 103
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 103 ) then \n" +
" r.quantidadeLigacoesConsumoAte5m3 \n" +
" else 0 end ), \n" +
// INDICE 57 - Ligacoes Consumo ate 5m3, Grupo Subcategoria 200
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 200 ) then \n" +
" r.quantidadeLigacoesConsumoAte5m3 \n" +
" else 0 end ), \n" +
// INDICE 58 - Ligacoes Consumo ate 5m3, Grupo Subcategoria 300
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 300 ) then \n" +
" r.quantidadeLigacoesConsumoAte5m3 \n" +
" else 0 end ), \n" +
// INDICE 59 - Ligacoes Consumo ate 5m3, Grupo Subcategoria 400
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 400 ) then \n" +
" r.quantidadeLigacoesConsumoAte5m3 \n" +
" else 0 end ), \n" +
// INDICE 60 - Ligacoes Consumo ate 5m3, Grupo Subcategoria 116
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 116 ) then \n" +
" r.quantidadeLigacoesConsumoAte5m3 \n" +
" else 0 end ), \n" +
// INDICE 61 - Ligacoes Consumo ate 5m3, Grupo Subcategoria 115
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 115 ) then \n" +
" r.quantidadeLigacoesConsumoAte5m3 \n" +
" else 0 end ), \n" +
// INDICE 62 - Ligacoes Consumo ate 5m3
" sum( r.quantidadeLigacoesConsumoAte5m3 ), \n" +
// INDICE 63 - Ligacoes Consumo Nao Medido, Grupo Subcategoria 101
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 101 ) then \n" +
" r.quantidadeLigacoesConsumoNaoMedido \n" +
" else 0 end ), \n" +
// INDICE 64 - Ligacoes Consumo Nao Medido, Grupo Subcategoria 102
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 102 ) then \n" +
" r.quantidadeLigacoesConsumoNaoMedido \n" +
" else 0 end ), \n" +
// INDICE 65 - Ligacoes Consumo Nao Medido, Grupo Subcategoria 103
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 103 ) then \n" +
" r.quantidadeLigacoesConsumoNaoMedido \n" +
" else 0 end ), \n" +
// INDICE 66 - Ligacoes Consumo Nao Medido, Grupo Subcategoria 200
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 200 ) then \n" +
" r.quantidadeLigacoesConsumoNaoMedido \n" +
" else 0 end ), \n" +
// INDICE 67 - Ligacoes Consumo Nao Medido, Grupo Subcategoria 300
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 300 ) then \n" +
" r.quantidadeLigacoesConsumoNaoMedido \n" +
" else 0 end ), \n" +
// INDICE 68 - Ligacoes Consumo Nao Medido, Grupo Subcategoria 400
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 400 ) then \n" +
" r.quantidadeLigacoesConsumoNaoMedido \n" +
" else 0 end ), \n" +
// INDICE 69 - Ligacoes Consumo Nao Medido, Grupo Subcategoria 116
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 116 ) then \n" +
" r.quantidadeLigacoesConsumoNaoMedido \n" +
" else 0 end ), \n" +
// INDICE 70 - Ligacoes Consumo Nao Medido, Grupo Subcategoria 115
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 115 ) then \n" +
" r.quantidadeLigacoesConsumoNaoMedido \n" +
" else 0 end ), \n" +
// INDICE 71 - Ligacoes Consumo Nao Medido
" sum( r.quantidadeLigacoesConsumoNaoMedido ), \n" +
// INDICE 72 - Ligacoes Consumo Media, Grupo Subcategoria 101
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 101 ) then \n" +
" r.quantidadeLigacoesConsumoMedia \n" +
" else 0 end ), \n" +
// INDICE 73 - Ligacoes Consumo Media, Grupo Subcategoria 102
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 102 ) then \n" +
" r.quantidadeLigacoesConsumoMedia \n" +
" else 0 end ), \n" +
// INDICE 74 - Ligacoes Consumo Media, Grupo Subcategoria 103
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 103 ) then \n" +
" r.quantidadeLigacoesConsumoMedia \n" +
" else 0 end ), \n" +
// INDICE 75 - Ligacoes Consumo Media, Grupo Subcategoria 200
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 200 ) then \n" +
" r.quantidadeLigacoesConsumoMedia \n" +
" else 0 end ), \n" +
// INDICE 76 - Ligacoes Consumo Media, Grupo Subcategoria 300
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 300 ) then \n" +
" r.quantidadeLigacoesConsumoMedia \n" +
" else 0 end ), \n" +
// INDICE 77 - Ligacoes Consumo Media, Grupo Subcategoria 400
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 400 ) then \n" +
" r.quantidadeLigacoesConsumoMedia \n" +
" else 0 end ), \n" +
// INDICE 78 - Ligacoes Consumo Media, Grupo Subcategoria 116
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 116 ) then \n" +
" r.quantidadeLigacoesConsumoMedia \n" +
" else 0 end ), \n" +
// INDICE 79 - Ligacoes Consumo Media, Grupo Subcategoria 115
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 115 ) then \n" +
" r.quantidadeLigacoesConsumoMedia \n" +
" else 0 end ), \n" +
// INDICE 80 - Ligacoes Consumo Media
" sum( r.quantidadeLigacoesConsumoMedia ), \n" +
// INDICE 81 - Quantidade Economias, Grupo Subcategoria 101
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 101 ) then \n" +
" r.quantidadeEconomias \n" +
" else 0 end ), \n" +
// INDICE 82 - Quantidade Economias, Grupo Subcategoria 102
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 102 ) then \n" +
" r.quantidadeEconomias \n" +
" else 0 end ), \n" +
// INDICE 83 - Quantidade Economias, Grupo Subcategoria 103
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 103 ) then \n" +
" r.quantidadeEconomias \n" +
" else 0 end ), \n" +
// INDICE 84 - Quantidade Economias, Grupo Subcategoria 200
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 200 ) then \n" +
" r.quantidadeEconomias \n" +
" else 0 end ), \n" +
// INDICE 85 - Quantidade Economias, Grupo Subcategoria 300
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 300 ) then \n" +
" r.quantidadeEconomias \n" +
" else 0 end ), \n" +
// INDICE 86 - Quantidade Economias, Grupo Subcategoria 400
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 400 ) then \n" +
" r.quantidadeEconomias \n" +
" else 0 end ), \n" +
// INDICE 87 - Quantidade Economias, Grupo Subcategoria 116
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 116 ) then \n" +
" r.quantidadeEconomias \n" +
" else 0 end ), \n" +
// INDICE 88 - Quantidade Economias, Grupo Subcategoria 115
" sum( \n" +
" case when ( r.codigoGrupoSubcategoria = 115 ) then \n" +
" r.quantidadeEconomias \n" +
" else 0 end ), \n" +
// INDICE 89 - Quantidade Economias, Grupo Subcategoria 101
" sum( r.quantidadeEconomias ) \n" +
select +
" from \n" +
" UnResumoMetasAcumulado r \n" +
" where \n " +
" r.anoMesReferencia = :amReferencia \n" +
where +
groupby +
orderby;
retorno = session.createQuery(consulta).
setInteger( "amReferencia", filtrarRelatorioQuadroMetasAcumuladoHelper.getMesAnoReferencia() ).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa todas as tabelas de resumo para o Orcamento
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Rafael Pinto
* @date 11/01/2008
*
* @return anoMesReferencia
*
* @throws ErroRepositorioException
*/
public boolean existeDadosUnResumoParaOrcamentoSINP(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 UnResumoPendencia resumo "
+ "WHERE resumo.anoMesReferencia = :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 UnResumoFaturamento 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 UnResumoArrecadacao resumo "
+ "WHERE resumo.anoMesReferencia = :referencia ";
retorno = (Integer) session.createQuery(consulta).
setInteger("referencia", anoMesReferencia).
setMaxResults(1).
uniqueResult();
if(retorno == null || retorno == 0){
existeDados = false;
}
}
}
}
}
} catch (HibernateException e) {
System.out.println(e.getMessage());
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return existeDados;
}
/**
* Pesquisa todas as tabelas de resumo para o Orcamento sem a tabela de resumo pendencia e arrecada��o
*
* [UC0750] - Gerar Arquivo Texto para Or�amento e SINP
*
* @author S�vio Luiz
* @date 12/02/2008
*
* @return anoMesReferencia
*
* @throws ErroRepositorioException
*/
public boolean existeDadosUnResumoParcialParaOrcamentoSINP(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 UnResumoFaturamento 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;
}
/**
* Recupera todos os Centro de Custos para totalizacoes do Arquivo Texto.
*
* [UC0750] - Gerar Arquivo Texto para Or�amento e SINP
*
* @author Tiago Moreno
* @date 15/02/2008
* @return Collection (String)
* @throws ErroRepositorioException
*/
public Collection<String> pesquisarCentroCusto()
throws ErroRepositorioException {
Collection<String> retorno = null;
Session session = HibernateUtil.getSessionGerencial();
try{
String consulta = "SELECT localidade.codigoCentroCusto "
+ "FROM GLocalidade as localidade "
+ "GROUP BY localidade.codigoCentroCusto ";
retorno = session.createQuery(consulta).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa os valores necessarios na tabela un_resumo_ligacao_economia.
*
* [UC0750] - Gerar Arquivo Texto para Or�amento e SINP
*
* @author Tiago Moreno
* @date 18/02/2008
*
* @param Ano/Mes e Centro de Custo
* @return Collection<Object[35]>
*
* Object[0] - aguaTotalLigacoesCadastradas
* Object[1] - esgotoTotalLigacoesCadastradas
* Object[2] - esgotoTotalLigacoesCadastradasConvencional
* Object[3] - aguaTotalLigacoesAtivas
* Object[4] - esgotoTotalLigacoesCadastradasCondominial
* Object[5] - aguaTotalLigacoesMedidas
* Object[6] - esgotoTotalLigacoesAtivasConvencional
* Object[7] - aguaTotalLigacoesComHidrometro
* Object[8] - esgotoTotalLigacoesAtivasCondominial
* Object[9] - aguaTotalLigacoesResidencialCadastradas
* Object[10] - esgotoTotalLigacoesResidencialCadastradas
* Object[11] - aguaTotalLigacoesDesligadas
* Object[12] - aguaTotalEconomiasCadastradas
* Object[13] - esgotoTotalEconomiasCadastradasConverncional
* Object[14] - aguaTotalEconomiasAtivas
* Object[15] - aguaTotalEconomiasCadastradasCondominial
* Object[16] - aguaTotalEconomiasAtivasMedidas
* Object[17] - esgotoTotalEconomiasAtivasConvencional
* Object[18] - aguaTotalEconomiasResidencialCadastradas
* Object[19] - esgotoTotalEconomiasAtivasCondominial
* Object[20] - aguaTotalEconomiasResidencialAtivasMicromedidas
* Object[21] - esgotoTotalEconomiasResidencialCadastradas
* Object[22] - aguaTotalEconomiasResidencialAtivas
* Object[23] - esgotoTotalEconomiasResidencialAtivas
* Object[24] - aguaTotalEconomiasComercialAtivas
* Object[25] - esgotoTotalEconomiasComercialAtivas
* Object[26] - aguaTotalEconomiasIndustrialAtivas
* Object[27] - esgotoTotalEconomiasIndustrialAtivas
* Object[28] - aguaTotalEconomiasPublicoAtivas
* Object[29] - esgotoTotalEconomiasPublicoAtivas
* Object[30] - aguaTotalEconomiasRuralAtivas
* Object[31] - aguaTotalLigacoesSuprimidas
*
* @throws ErroRepositorioException
*/
public Object[] pesquisarRelatorioOrcamentoSINPResumoLigacaoEconomiaArquivoTexto(String centroCusto, String anoMes)
throws ErroRepositorioException {
Object[] retorno = null;
Session session = HibernateUtil.getSessionGerencial();
try{
String sql = "SELECT "
+ "SUM(CASE WHEN last_id <> 1 AND last_id <> 2 THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesCadastradas,"
+ "SUM(CASE WHEN lest_id <> 1 AND lest_id <> 2 THEN rele_qtligacoes ELSE 0 END) AS esgotoTotalLigacoesCadastradas,"
+ "SUM(CASE WHEN lest_id <> 1 AND lest_id <> 2 AND lepf_id <> 2 THEN rele_qtligacoes ELSE 0 END) AS esgotototalligacoescadastrada2,"
+ "SUM(CASE WHEN last_id = 3 THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesAtivas,"
+ "SUM(CASE WHEN lest_id <> 1 AND lest_id <> 2 AND lepf_id = 2 THEN rele_qtligacoes ELSE 0 END) AS esgotototalligacoescadastradas,"
+ "SUM(CASE WHEN last_id = 3 AND rele_ichidrometro=1 THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesMedidas, "
+ "SUM(CASE WHEN lepf_id <> 2 AND lest_id = 3 THEN rele_qtligacoes ELSE 0 END) AS esgotototalligacoesativasconve,"
+ "SUM(CASE WHEN rele_ichidrometro=1 THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesComHidrometro,"
+ "SUM(CASE WHEN lepf_id = 2 AND lest_id = 3 THEN rele_qtligacoes ELSE 0 END) AS esgotototalligacoesativascondo,"
+ "SUM(CASE WHEN last_id <> 1 AND last_id <> 2 AND catg_id = 1 THEN rele_qtligacoes ELSE 0 END) AS aguatotalligacoesresidencialca,"
+ "SUM(CASE WHEN lest_id <> 1 AND lest_id <> 2 AND catg_id = 1 THEN rele_qtligacoes ELSE 0 END) AS esgotototalligacoesresidencial,"
+ "SUM(CASE WHEN last_id = 5 THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesDesligadas,"
+ "SUM(CASE WHEN last_id <> 1 AND last_id <> 2 THEN rele_qteconomias ELSE 0 END) AS aguaTotalEconomiasCadastradas,"
+ "SUM(CASE WHEN lest_id <> 1 AND lest_id <> 2 AND lepf_id <> 2 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiascadastrad2,"
+ "SUM(CASE WHEN last_id = 3 THEN rele_qteconomias ELSE 0 END) AS aguaTotalEconomiasAtivas,"
+ "SUM(CASE WHEN lest_id <> 1 AND lest_id <> 2 AND lepf_id = 2 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiascadastrada,"
+ "SUM(CASE WHEN last_id = 3 AND rele_ichidrometro=1 THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiasativasmedida,"
+ "SUM(CASE WHEN lepf_id <> 2 AND lest_id = 3 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasativasconv,"
+ "SUM(CASE WHEN last_id <> 1 AND last_id <> 2 AND catg_id=1 and scat_id not in (13,62,63,64,70,71,77,78) THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiasresidencialc,"
+ "SUM(CASE WHEN lepf_id = 2 AND lest_id = 3 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasativascond,"
+ "SUM(CASE WHEN last_id = 3 AND rele_ichidrometro = 1 AND catg_id=1 and scat_id not in (13,62,63,64,70,71,77,78) THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiasresidencial2,"
+ "SUM(CASE WHEN lest_id <> 1 AND lest_id <> 2 AND catg_id=1 and scat_id not in (13,62,63,64,70,71,77,78) THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasresidenci2,"
+ "SUM(CASE WHEN last_id = 3 AND catg_id=1 and scat_id not in (13,62,63,64,70,71,77,78) THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiasresidenciala,"
+ "SUM(CASE WHEN lest_id = 3 AND catg_id=1 and scat_id not in (13,62,63,64,70,71,77,78) THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasresidencia,"
+ "SUM(CASE WHEN last_id = 3 AND catg_id=2 THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiascomercialati,"
+ "SUM(CASE WHEN lest_id = 3 AND catg_id=2 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiascomerciala,"
+ "SUM(CASE WHEN last_id = 3 AND catg_id=3 THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiasindustrialat,"
+ "SUM(CASE WHEN lest_id = 3 AND catg_id=3 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasindustrial,"
+ "SUM(CASE WHEN last_id = 3 AND catg_id=4 THEN rele_qteconomias ELSE 0 END) AS aguatotaleconomiaspublicoativa,"
+ "SUM(CASE WHEN lest_id = 3 AND catg_id=4 THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiaspublicoati,"
+ "SUM(CASE WHEN last_id = 3 AND catg_id=1 and scat_id in (13,62,63,64,70,71,77,78)THEN rele_qteconomias ELSE 0 END) AS aguaTotalEconomiasRuralAtivas, "
+ "SUM(CASE WHEN last_id in (6,7,8) THEN rele_qtligacoes ELSE 0 END) AS aguaTotalLigacoesSuprimidas, "
+ "SUM(CASE WHEN lest_id = 3 AND catg_id=1 and scat_id in (13,62,63,64,70,71,77,78)THEN rele_qteconomias ELSE 0 END) AS esgotototaleconomiasruralativa "
+ "FROM cadastro.un_res_lig_econ rlec, cadastro.g_localidade loca "
+ "WHERE rlec.rele_amreferencia = :anoMes "
+ "AND rlec.loca_id = loca.loca_id AND loca.loca_cdcentrocusto = :centroCusto";
//Faz a pesquisa
retorno = (Object[]) session.createSQLQuery(sql).
addScalar("aguaTotalLigacoesCadastradas", Hibernate.INTEGER).
addScalar("esgotoTotalLigacoesCadastradas", Hibernate.INTEGER).
addScalar("esgotototalligacoescadastrada2", Hibernate.INTEGER).
addScalar("aguaTotalLigacoesAtivas", Hibernate.INTEGER).
addScalar("esgotototalligacoescadastradas", Hibernate.INTEGER).
addScalar("aguaTotalLigacoesMedidas", Hibernate.INTEGER).
addScalar("esgotototalligacoesativasconve", Hibernate.INTEGER).
addScalar("aguaTotalLigacoesComHidrometro", Hibernate.INTEGER).
addScalar("esgotototalligacoesativascondo", Hibernate.INTEGER).
addScalar("aguatotalligacoesresidencialca", Hibernate.INTEGER).
addScalar("esgotototalligacoesresidencial", Hibernate.INTEGER).
addScalar("aguaTotalLigacoesDesligadas", Hibernate.INTEGER).
addScalar("aguaTotalEconomiasCadastradas", Hibernate.INTEGER).
addScalar("esgotototaleconomiascadastrad2", Hibernate.INTEGER).
addScalar("aguaTotalEconomiasAtivas", Hibernate.INTEGER).
addScalar("esgotototaleconomiascadastrada", Hibernate.INTEGER).
addScalar("aguatotaleconomiasativasmedida", Hibernate.INTEGER).
addScalar("esgotototaleconomiasativasconv", Hibernate.INTEGER).
addScalar("aguatotaleconomiasresidencialc", Hibernate.INTEGER).
addScalar("esgotototaleconomiasativascond", Hibernate.INTEGER).
addScalar("aguatotaleconomiasresidencial2", Hibernate.INTEGER).
addScalar("esgotototaleconomiasresidenci2", Hibernate.INTEGER).
addScalar("aguatotaleconomiasresidenciala", Hibernate.INTEGER).
addScalar("esgotototaleconomiasresidencia", Hibernate.INTEGER).
addScalar("aguatotaleconomiascomercialati", Hibernate.INTEGER).
addScalar("esgotototaleconomiascomerciala", Hibernate.INTEGER).
addScalar("aguatotaleconomiasindustrialat", Hibernate.INTEGER).
addScalar("esgotototaleconomiasindustrial", Hibernate.INTEGER).
addScalar("aguatotaleconomiaspublicoativa", Hibernate.INTEGER).
addScalar("esgotototaleconomiaspublicoati", Hibernate.INTEGER).
addScalar("aguaTotalEconomiasRuralAtivas", Hibernate.INTEGER).
addScalar("aguaTotalLigacoesSuprimidas", Hibernate.INTEGER).
addScalar("esgotototaleconomiasruralativa", Hibernate.INTEGER).
setString("centroCusto", centroCusto).
setString("anoMes",anoMes).
setMaxResults(1).
uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa os valores necessarios na tabela un_resumo_faturamento
*
* [UC0750] - Gerar Arquivo Texto para Or�amento e SINP
*
* @author Tiago Moreno
* @date 18/02/2008
*
* @param Ano/Mes e Centro de Custo
* @return Object[29]
*
* Object[0] - aguaTotalVolumeFaturadoMedido
* Object[1] - esgotoTotalVolumeFaturadoResidencial
* Object[2] - esgotoTotalVolumeFaturadoComercial
* Object[3] - aguaTotalVolumeFaturadoEstimado
* Object[4] - esgotoTotalVolumeFaturadoIndustrial
* Object[5] - esgotoTotalVolumeFaturadoPublico
* Object[6] - aguaTotalVolumeFaturadoResidencial
* Object[7] - esgotoTotalVolumeFaturadoGeral
* Object[8] - aguaTotalVolumeFaturadoComercial
* Object[9] - aguaTotalVolumeFaturadoIndustrial
* Object[10] - aguaTotalVolumeFaturadoPublico
* Object[11] - aguaTotalVolumeFaturadoRural
* Object[12] - aguaTotalVolumeFaturadoGeral
* Object[13] - aguaTotalFaturadoResidencial
* Object[14] - esgotoTotalFaturadoResidencial
* Object[15] - aguaTotalFaturadoComercial
* Object[16] - esgotoTotalFaturadoComercial
* Object[17] - aguaTotalFaturadoIndustrial
* Object[18] - esgotoTotalFaturadoIndustrial
* Object[19] - aguaTotalFaturadoPublico
* Object[20] - esgotoTotalFaturadoPublico
* Object[21] - aguaTotalFaturadoDireto
* Object[22] - esgotoTotalFaturadoDireto
* Object[23] - aguaTotalFaturadoIndireto
* Object[24] - esgotoTotalFaturadoIndireto
* Object[25] - devolucao
* Object[26] - esgotoTotalFaturadoRural
*
* @throws ErroRepositorioException
*/
public Object[] pesquisarRelatorioOrcamentoSINPResumoFaturamentoArquivoTexto(String centroCusto, String anoMes)
throws ErroRepositorioException {
Object[] retorno = null;
Session session = HibernateUtil.getSessionGerencial();
try{
String sql = "SELECT "
+ "SUM(CASE WHEN refa_ichidrometro = 1 THEN refa_vofaturadoagua ELSE 0 END) AS aguaTotalVolumeFaturadoMedido,"
+ "SUM(CASE WHEN catg_id = 1 THEN refa_vofaturadoesgoto ELSE 0 END) AS esgotototalvolumefaturadoresid,"
+ "SUM(CASE WHEN catg_id = 2 THEN refa_vofaturadoesgoto ELSE 0 END) AS esgotototalvolumefaturadocomer,"
+ "SUM(CASE WHEN refa_ichidrometro = 2 THEN refa_vofaturadoagua ELSE 0 END) AS aguatotalvolumefaturadoestimad,"
+ "SUM(CASE WHEN catg_id = 3 THEN refa_vofaturadoesgoto ELSE 0 END) AS esgotototalvolumefaturadoindus,"
+ "SUM(CASE WHEN catg_id = 4 THEN refa_vofaturadoesgoto ELSE 0 END) AS esgotototalvolumefaturadopubli,"
+ "SUM(CASE WHEN catg_id = 1 AND scat_id not in (13,62,63,64,70,71,77,78) THEN refa_vofaturadoagua ELSE 0 END) AS aguatotalvolumefaturadoresiden,"
+ "SUM(COALESCE(refa_vofaturadoesgoto,0)) AS esgotoTotalVolumeFaturadoGeral,"
+ "SUM(CASE WHEN catg_id = 2 THEN refa_vofaturadoagua ELSE 0 END) AS aguatotalvolumefaturadocomerci,"
+ "SUM(CASE WHEN catg_id = 3 THEN refa_vofaturadoagua ELSE 0 END) AS aguatotalvolumefaturadoindustr,"
+ "SUM(CASE WHEN catg_id = 4 THEN refa_vofaturadoagua ELSE 0 END) AS aguaTotalVolumeFaturadoPublico,"
+ "SUM(CASE WHEN catg_id = 1 AND scat_id in (13,62,63,64,70,71,77,78) THEN refa_vofaturadoagua ELSE 0 END) AS aguaTotalVolumeFaturadoRural,"
+ "SUM(COALESCE(refa_vofaturadoagua,0)) AS aguaTotalVolumeFaturadoGeral,"
+ "SUM(CASE WHEN catg_id = 1 THEN refa_vlfaturadoagua ELSE 0 END) AS aguaTotalFaturadoResidencial,"
+ "SUM(CASE WHEN catg_id = 1 THEN refa_vlfaturadoesgoto ELSE 0 END) AS esgotoTotalFaturadoResidencial,"
+ "SUM(CASE WHEN catg_id = 2 THEN refa_vlfaturadoagua ELSE 0 END) AS aguaTotalFaturadoComercial,"
+ "SUM(CASE WHEN catg_id = 2 THEN refa_vlfaturadoesgoto ELSE 0 END) AS esgotoTotalFaturadoComercial,"
+ "SUM(CASE WHEN catg_id = 3 THEN refa_vlfaturadoagua ELSE 0 END) AS aguaTotalFaturadoIndustrial,"
+ "SUM(CASE WHEN catg_id = 3 THEN refa_vlfaturadoesgoto ELSE 0 END) AS esgotoTotalFaturadoIndustrial,"
+ "SUM(CASE WHEN catg_id = 4 THEN refa_vlfaturadoagua ELSE 0 END) AS aguaTotalFaturadoPublico,"
+ "SUM(CASE WHEN catg_id = 4 THEN refa_vlfaturadoesgoto ELSE 0 END) AS esgotoTotalFaturadoPublico,"
+ "SUM(COALESCE(refa_vlfaturadoagua,0)) AS aguaTotalFaturadoDireto,"
+ "SUM(COALESCE(refa_vlfaturadoesgoto,0)) AS esgotoTotalFaturadoDireto,"
+ "SUM(CASE WHEN fntp_id = 1 AND lict_id in (1,2,3,4,5,6,10,12) THEN refa_vldocsfaturadosoutros ELSE 0 END) AS aguaTotalFaturadoIndireto, "
+ "SUM(CASE WHEN fntp_id = 1 AND lict_id in (7,8,9,11) THEN refa_vldocsfaturadosoutros ELSE 0 END) AS esgotoTotalFaturadoIndireto, "
+ "SUM(COALESCE(refa_vldocsfaturadoscredito,0)) AS devolucao, "
+ "SUM(CASE WHEN catg_id = 1 AND scat_id in (13,62,63,64,70,71,77,78) THEN refa_vlfaturadoagua ELSE 0 END) AS aguaTotalFaturadoRural "
+ "FROM faturamento.un_resumo_faturamento rfa, cadastro.g_localidade loca "
+ "WHERE rfa.refa_amreferencia = :anoMes "
+ "AND rfa.loca_id = loca.loca_id AND loca.loca_cdcentrocusto = :centroCusto";
//Faz a pesquisa
retorno = (Object[]) session.createSQLQuery(sql).
addScalar("aguaTotalVolumeFaturadoMedido", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadoresid", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadocomer", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadoestimad", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadoindus", Hibernate.INTEGER).
addScalar("esgotototalvolumefaturadopubli", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadoresiden", Hibernate.INTEGER).
addScalar("esgotoTotalVolumeFaturadoGeral", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadocomerci", Hibernate.INTEGER).
addScalar("aguatotalvolumefaturadoindustr", Hibernate.INTEGER).
addScalar("aguaTotalVolumeFaturadoPublico", Hibernate.INTEGER).
addScalar("aguaTotalVolumeFaturadoRural", Hibernate.INTEGER).
addScalar("aguaTotalVolumeFaturadoGeral", Hibernate.INTEGER).
addScalar("aguaTotalFaturadoResidencial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoResidencial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoComercial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoComercial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoIndustrial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoIndustrial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoPublico", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoPublico", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoDireto", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoDireto", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoIndireto", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoIndireto", Hibernate.BIG_DECIMAL).
addScalar("devolucao", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoRural", Hibernate.BIG_DECIMAL).
setString("centroCusto", centroCusto).
setString("anoMes",anoMes).
setMaxResults(1).
uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa todas as localidades da tabela g_localidade
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author S�vio Luiz
* @date 21/11/2006
*
* @return Collection<Integer>
*
* @throws ErroRepositorioException
*/
public Object[] pesquisarNomesUnidadeGerencia(Integer idLocalidade)
throws ErroRepositorioException {
Object[] retorno = null;
Session session = HibernateUtil.getSessionGerencial();
try{
String consulta = "SELECT gerencia.nome,unidade.nome "
+ "FROM GLocalidade as localidade "
+ "INNER JOIN localidade.gerGerenciaRegional as gerencia "
+ "INNER JOIN localidade.gerUnidadeNegocio as unidade "
+ "WHERE localidade.id = :idLocalidade ";
retorno = (Object[])session.createQuery(consulta)
.setInteger("idLocalidade",idLocalidade)
.setMaxResults(1).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
*
* [UC0752] Gerar Quadro de metas por Exercicio
*
* @author Bruno Barros
* @param filtrarRelatorioQuadroMetasExercicioHelper
* @return
*/
public List pesquisarRelatorioQuadroMetasExercicio(
FiltrarRelatorioQuadroMetasExercicioHelper filtrarRelatorioQuadroMetasExercicioHelper)
throws ErroRepositorioException{
List retorno = null;
Session session = HibernateUtil.getSessionGerencial();
Integer qtdGrupos = 0;
String select = "";
String where = "";
String groupby = "group by \n";
String orderby = "order by \n";
// op��es de totaliza��o
if ( filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_GERENCIA_REGIONAL ||
filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_UNIDADE_NEGOCIO ||
filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_LOCALIDADE ||
filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_GERENCIA_REGIONAL ||
filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_UNIDADE_NEGOCIO ||
filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_LOCALIDADE ){
select += " ,res.gerGerenciaRegional.id \n";
groupby += " res.gerGerenciaRegional.id \n";
orderby += " res.gerGerenciaRegional.id \n";
qtdGrupos++;
}
if ( filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_UNIDADE_NEGOCIO ||
filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_LOCALIDADE ||
filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_UNIDADE_NEGOCIO ||
filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_LOCALIDADE ){
select += " ,res.gerUnidadeNegocio.id \n";
groupby += " " + ( qtdGrupos > 0 ? "," : "" ) + "res.gerUnidadeNegocio.id \n";
orderby += " " + ( qtdGrupos > 0 ? "," : "" ) + "res.gerUnidadeNegocio.id \n";
qtdGrupos++;
}
if ( filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_LOCALIDADE ||
filtrarRelatorioQuadroMetasExercicioHelper.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_LOCALIDADE ){
select += " ,res.gerLocalidade.id, res.gerLocalidade.codigoCentroCusto \n";
groupby += " " + ( qtdGrupos > 0 ? "," : "" ) + "res.gerLocalidade.id, res.gerLocalidade.codigoCentroCusto \n";
orderby += " " + ( qtdGrupos > 0 ? "," : "" ) + "res.gerLocalidade.id \n, res.gerLocalidade.codigoCentroCusto";
qtdGrupos++;
}
if ( qtdGrupos == 0 ){
select = "";
groupby = "";
orderby = "";
}
// Montamos a clausula where
if ( filtrarRelatorioQuadroMetasExercicioHelper.getGerenciaRegional() != null &&
!filtrarRelatorioQuadroMetasExercicioHelper.getGerenciaRegional().equals( 0 ) ){
where += " and res.gerGerenciaRegional.id = " + filtrarRelatorioQuadroMetasExercicioHelper.getGerenciaRegional();
}
if ( filtrarRelatorioQuadroMetasExercicioHelper.getUnidadeNegocio() != null &&
!filtrarRelatorioQuadroMetasExercicioHelper.getUnidadeNegocio().equals( 0 ) ){
where += " and res.gerUnidadeNegocio.id = " + filtrarRelatorioQuadroMetasExercicioHelper.getUnidadeNegocio();
}
if ( filtrarRelatorioQuadroMetasExercicioHelper.getLocalidade() != null &&
!filtrarRelatorioQuadroMetasExercicioHelper.getLocalidade().equals( 0 ) ){
where += " and res.gerLocalidade.id = " + filtrarRelatorioQuadroMetasExercicioHelper.getLocalidade();
}
try{
String consulta =
"select " +
// Ligacoes Cadastradas - DEZEMBRO - 0
" sum ( case when ( res.anoMesReferencia = :anoMesInicial and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cadastradas - JANEIRO - 1
" sum ( case when ( res.anoMesReferencia = :anoMes1 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cadastradas - FEVEREIRO - 2
" sum ( case when ( res.anoMesReferencia = :anoMes2 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cadastradas - MARCO - 3
" sum ( case when ( res.anoMesReferencia = :anoMes3 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cadastradas - ABRIL - 4
" sum ( case when ( res.anoMesReferencia = :anoMes4 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cadastradas - MAIO - 5
" sum ( case when ( res.anoMesReferencia = :anoMes5 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cadastradas - JUNHO - 6
" sum ( case when ( res.anoMesReferencia = :anoMes6 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cadastradas - JULHO - 7
" sum ( case when ( res.anoMesReferencia = :anoMes7 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cadastradas - AGOSTO - 8
" sum ( case when ( res.anoMesReferencia = :anoMes8 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cadastradas - SETEMBRO - 9
" sum ( case when ( res.anoMesReferencia = :anoMes9 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cadastradas - OUTUBRO - 10
" sum ( case when ( res.anoMesReferencia = :anoMes10 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cadastradas - NOVEMBRO - 11
" sum ( case when ( res.anoMesReferencia = :anoMesFinal and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCadastradas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - DEZEMBRO - 12
" sum ( case when ( res.anoMesReferencia = :anoMesInicial and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - JANEIRO - 13
" sum ( case when ( res.anoMesReferencia = :anoMes1 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - FEVEREIRO - 14
" sum ( case when ( res.anoMesReferencia = :anoMes2 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - MARCO - 15
" sum ( case when ( res.anoMesReferencia = :anoMes3 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - ABRIL - 16
" sum ( case when ( res.anoMesReferencia = :anoMes4 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - MAIO - 17
" sum ( case when ( res.anoMesReferencia = :anoMes5 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - JUNHO - 18
" sum ( case when ( res.anoMesReferencia = :anoMes6 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - JULHO - 19
" sum ( case when ( res.anoMesReferencia = :anoMes7 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - AGOSTO - 20
" sum ( case when ( res.anoMesReferencia = :anoMes8 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - SETEMBRO - 21
" sum ( case when ( res.anoMesReferencia = :anoMes9 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - OUTUBRO - 22
" sum ( case when ( res.anoMesReferencia = :anoMes10 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Cortadas - NOVEMBRO - 23
" sum ( case when ( res.anoMesReferencia = :anoMesFinal and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesCortadas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - DEZEMBRO - 24
" sum ( case when ( res.anoMesReferencia = :anoMesInicial and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - JANEIRO - 25
" sum ( case when ( res.anoMesReferencia = :anoMes1 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - FEVEREIRO - 26
" sum ( case when ( res.anoMesReferencia = :anoMes2 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - MARCO - 27
" sum ( case when ( res.anoMesReferencia = :anoMes3 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - ABRIL - 28
" sum ( case when ( res.anoMesReferencia = :anoMes4 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - MAIO - 29
" sum ( case when ( res.anoMesReferencia = :anoMes5 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - JUNHO - 30
" sum ( case when ( res.anoMesReferencia = :anoMes6 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - JULHO - 31
" sum ( case when ( res.anoMesReferencia = :anoMes7 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - AGOSTO - 32
" sum ( case when ( res.anoMesReferencia = :anoMes8 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - SETEMBRO - 33
" sum ( case when ( res.anoMesReferencia = :anoMes9 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - OUTUBRO - 34
" sum ( case when ( res.anoMesReferencia = :anoMes10 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Suprimidas - NOVEMBRO - 35
" sum ( case when ( res.anoMesReferencia = :anoMesFinal and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesSuprimidas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - DEZEMBRO - 36
" sum ( case when ( res.anoMesReferencia = :anoMesInicial and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - JANEIRO - 37
" sum ( case when ( res.anoMesReferencia = :anoMes1 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - FEVEREIRO - 38
" sum ( case when ( res.anoMesReferencia = :anoMes2 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - MARCO - 39
" sum ( case when ( res.anoMesReferencia = :anoMes3 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - ABRIL - 40
" sum ( case when ( res.anoMesReferencia = :anoMes4 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - MAIO - 41
" sum ( case when ( res.anoMesReferencia = :anoMes5 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - JUNHO - 42
" sum ( case when ( res.anoMesReferencia = :anoMes6 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - JULHO - 43
" sum ( case when ( res.anoMesReferencia = :anoMes7 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - AGOSTO - 44
" sum ( case when ( res.anoMesReferencia = :anoMes8 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - SETEMBRO - 45
" sum ( case when ( res.anoMesReferencia = :anoMes9 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - OUTUBRO - 46
" sum ( case when ( res.anoMesReferencia = :anoMes10 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Ativas - NOVEMBRO - 47
" sum ( case when ( res.anoMesReferencia = :anoMesFinal and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivas, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - DEZEMBRO - 48
" sum ( case when ( res.anoMesReferencia = :anoMesInicial and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - JANEIRO - 49
" sum ( case when ( res.anoMesReferencia = :anoMes1 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - FEVEREIRO - 50
" sum ( case when ( res.anoMesReferencia = :anoMes2 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - MARCO - 51
" sum ( case when ( res.anoMesReferencia = :anoMes3 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - ABRIL - 52
" sum ( case when ( res.anoMesReferencia = :anoMes4 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - MAIO - 53
" sum ( case when ( res.anoMesReferencia = :anoMes5 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - JUNHO - 54
" sum ( case when ( res.anoMesReferencia = :anoMes6 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - JULHO - 55
" sum ( case when ( res.anoMesReferencia = :anoMes7 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - AGOSTO - 56
" sum ( case when ( res.anoMesReferencia = :anoMes8 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - SETEMBRO - 57
" sum ( case when ( res.anoMesReferencia = :anoMes9 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - OUTUBRO - 58
" sum ( case when ( res.anoMesReferencia = :anoMes10 and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Debito3m - NOVEMBRO - 59
" sum ( case when ( res.anoMesReferencia = :anoMesFinal and res.codigoGrupoSubcategoria <> 400 ) then " +
" coalesce (res.quantidadeLigacoesAtivasDebito3m, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - DEZEMBRO - 60
" sum ( case when ( res.anoMesReferencia = :anoMesInicial and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - JANEIRO - 61
" sum ( case when ( res.anoMesReferencia = :anoMes1 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - FEVEREIRO - 62
" sum ( case when ( res.anoMesReferencia = :anoMes2 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - MARCO - 63
" sum ( case when ( res.anoMesReferencia = :anoMes3 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - ABRIL - 64
" sum ( case when ( res.anoMesReferencia = :anoMes4 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - MAIO - 65
" sum ( case when ( res.anoMesReferencia = :anoMes5 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - JUNHO - 66
" sum ( case when ( res.anoMesReferencia = :anoMes6 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - JULHO - 67
" sum ( case when ( res.anoMesReferencia = :anoMes7 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - AGOSTO - 68
" sum ( case when ( res.anoMesReferencia = :anoMes8 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - SETEMBRO - 69
" sum ( case when ( res.anoMesReferencia = :anoMes9 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - OUTUBRO - 70
" sum ( case when ( res.anoMesReferencia = :anoMes10 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Medio - NOVEMBRO - 71
" sum ( case when ( res.anoMesReferencia = :anoMesFinal and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - DEZEMBRO - 72
" sum ( case when ( res.anoMesReferencia = :anoMesInicial and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - JANEIRO - 73
" sum ( case when ( res.anoMesReferencia = :anoMes1 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - FEVEREIRO - 74
" sum ( case when ( res.anoMesReferencia = :anoMes2 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - MARCO - 75
" sum ( case when ( res.anoMesReferencia = :anoMes3 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - ABRIL - 76
" sum ( case when ( res.anoMesReferencia = :anoMes4 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - MAIO - 77
" sum ( case when ( res.anoMesReferencia = :anoMes5 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - JUNHO - 78
" sum ( case when ( res.anoMesReferencia = :anoMes6 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - JULHO - 79
" sum ( case when ( res.anoMesReferencia = :anoMes7 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - AGOSTO - 80
" sum ( case when ( res.anoMesReferencia = :anoMes8 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - SETEMBRO - 81
" sum ( case when ( res.anoMesReferencia = :anoMes9 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - OUTUBRO - 82
" sum ( case when ( res.anoMesReferencia = :anoMes10 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Ate 5m3 - NOVEMBRO - 83
" sum ( case when ( res.anoMesReferencia = :anoMesFinal and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoAte5m3, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - DEZEMBRO - 84
" sum ( case when ( res.anoMesReferencia = :anoMesInicial and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - JANEIRO - 85
" sum ( case when ( res.anoMesReferencia = :anoMes1 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - FEVEREIRO - 86
" sum ( case when ( res.anoMesReferencia = :anoMes2 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - MARCO - 87
" sum ( case when ( res.anoMesReferencia = :anoMes3 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - ABRIL - 88
" sum ( case when ( res.anoMesReferencia = :anoMes4 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - MAIO - 89
" sum ( case when ( res.anoMesReferencia = :anoMes5 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - JUNHO - 90
" sum ( case when ( res.anoMesReferencia = :anoMes6 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - JULHO - 91
" sum ( case when ( res.anoMesReferencia = :anoMes7 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - AGOSTO - 92
" sum ( case when ( res.anoMesReferencia = :anoMes8 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - SETEMBRO - 93
" sum ( case when ( res.anoMesReferencia = :anoMes9 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - OUTUBRO - 94
" sum ( case when ( res.anoMesReferencia = :anoMes10 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo N�o Medido - NOVEMBRO - 95
" sum ( case when ( res.anoMesReferencia = :anoMesFinal and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoNaoMedido, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - DEZEMBRO - 96
" sum ( case when ( res.anoMesReferencia = :anoMesInicial and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - JANEIRO - 97
" sum ( case when ( res.anoMesReferencia = :anoMes1 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - FEVEREIRO - 98
" sum ( case when ( res.anoMesReferencia = :anoMes2 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - MARCO - 99
" sum ( case when ( res.anoMesReferencia = :anoMes3 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - ABRIL - 100
" sum ( case when ( res.anoMesReferencia = :anoMes4 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - MAIO - 101
" sum ( case when ( res.anoMesReferencia = :anoMes5 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - JUNHO - 102
" sum ( case when ( res.anoMesReferencia = :anoMes6 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - JULHO - 103
" sum ( case when ( res.anoMesReferencia = :anoMes7 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - AGOSTO - 104
" sum ( case when ( res.anoMesReferencia = :anoMes8 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - SETEMBRO - 105
" sum ( case when ( res.anoMesReferencia = :anoMes9 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - OUTUBRO - 106
" sum ( case when ( res.anoMesReferencia = :anoMes10 and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Consumo Media - NOVEMBRO - 107
" sum ( case when ( res.anoMesReferencia = :anoMesFinal and res.codigoGrupoSubcategoria not in ( 101,102, 116, 115 ) ) then " +
" coalesce (res.quantidadeLigacoesConsumoMedia, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - DEZEMBRO - 108
" sum ( case when ( res.anoMesReferencia = :anoMesInicial ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - JANEIRO - 109
" sum ( case when ( res.anoMesReferencia = :anoMes1 ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - FEVEREIRO - 110
" sum ( case when ( res.anoMesReferencia = :anoMes2 ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - MARCO - 111
" sum ( case when ( res.anoMesReferencia = :anoMes3 ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - ABRIL - 112
" sum ( case when ( res.anoMesReferencia = :anoMes4 ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - MAIO - 113
" sum ( case when ( res.anoMesReferencia = :anoMes5 ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - JUNHO - 114
" sum ( case when ( res.anoMesReferencia = :anoMes6 ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - JULHO - 115
" sum ( case when ( res.anoMesReferencia = :anoMes7 ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - AGOSTO - 116
" sum ( case when ( res.anoMesReferencia = :anoMes8 ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - SETEMBRO - 117
" sum ( case when ( res.anoMesReferencia = :anoMes9 ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - OUTUBRO - 118
" sum ( case when ( res.anoMesReferencia = :anoMes10 ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ), " +
// Ligacoes Quantidade de Economias - NOVEMBRO - 119
" sum ( case when ( res.anoMesReferencia = :anoMesFinal ) then " +
" coalesce (res.quantidadeEconomias, 0 )" +
" else" +
" 0" +
" end ) " +
select +
"from " +
" UnResumoMetasAcumulado res " +
"where " +
" res.anoMesReferencia between :anoMesInicial and :anoMesFinal " +
where +
groupby +
orderby;
retorno = session.createQuery(consulta).
setInteger( "anoMesInicial", Integer.parseInt( ( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() - 1 ) + "12" ) ).
setInteger( "anoMesFinal", Integer.parseInt( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() + "11" ) ).
setInteger( "anoMes1", Integer.parseInt( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() + "01" ) ).
setInteger( "anoMes2", Integer.parseInt( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() + "02" ) ).
setInteger( "anoMes3", Integer.parseInt( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() + "03" ) ).
setInteger( "anoMes4", Integer.parseInt( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() + "04" ) ).
setInteger( "anoMes5", Integer.parseInt( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() + "05" ) ).
setInteger( "anoMes6", Integer.parseInt( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() + "06" ) ).
setInteger( "anoMes7", Integer.parseInt( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() + "07" ) ).
setInteger( "anoMes8", Integer.parseInt( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() + "08" ) ).
setInteger( "anoMes9", Integer.parseInt( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() + "09" ) ).
setInteger( "anoMes10", Integer.parseInt( filtrarRelatorioQuadroMetasExercicioHelper.getAnoExercicio() + "10" ) ).
list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa os valores necessarios na tabela un_resumo_coleta_esgoto
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Hugo Amorim
* @date 31/08/2010
*
* @param FiltrarRelatorioOrcamentoSINPHelper
* @return Object[4]
*
* Object[0] - aguaTotalVolumeFaturadoMedido
* Object[1] - esgotoTotalVolumeFaturadoResidencial
* Object[2] - esgotoTotalVolumeFaturadoComercial
* Object[3] - aguaTotalVolumeFaturadoEstimado
*
* @throws ErroRepositorioException
*/
public Object[] pesquisarRelatorioOrcamentoSINPResumoColetaEsgoto(
FiltrarRelatorioOrcamentoSINPHelper filtrarRelatorioOrcamentoSINPHelper)
throws ErroRepositorioException {
Object[] retorno = null;
int anoMes = filtrarRelatorioOrcamentoSINPHelper.getAnoMesReferencia();
Integer localidade = filtrarRelatorioOrcamentoSINPHelper.getLocalidade();
Integer unidade = filtrarRelatorioOrcamentoSINPHelper.getUnidadeNegocio();
Integer gerencia = filtrarRelatorioOrcamentoSINPHelper.getGerenciaRegional();
Integer municipio = filtrarRelatorioOrcamentoSINPHelper.getMunicipio();
boolean possuiCampo = false;
if(localidade != null || unidade != null || gerencia != null || municipio != null){
possuiCampo = true;
}
Integer opcaoTotalizacao = filtrarRelatorioOrcamentoSINPHelper.getOpcaoTotalizacao();
String joinMunicipio = " left join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
if(opcaoTotalizacao == 26 || opcaoTotalizacao == 19){
joinMunicipio = " inner join cadastro.g_municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
}
Session session = HibernateUtil.getSessionGerencial();
String groupBy = filtrarRelatorioOrcamentoSINPHelper.getGroupBy();
String campoSelecionado = null;
try{
String sql = "SELECT "
+ "SUM(CASE WHEN rfat.rece_ichidrometro = 1 THEN rfat.rece_qtligacoes ELSE 0 END) as totalligacoesfaturadasmedidase, "
+ "SUM(CASE WHEN rfat.rece_ichidrometro = 2 THEN rfat.rece_qtligacoes ELSE 0 END) as totalligacoesfaturadasnaomedi2, "
+ "SUM(CASE WHEN rfat.rece_ichidrometro = 1 THEN rfat.rece_qteconomias ELSE 0 END) as totaleconomiasfaturadasmedida2, "
+ "SUM(CASE WHEN rfat.rece_ichidrometro = 2 THEN rfat.rece_qteconomias ELSE 0 END) as totaleconomiasfaturadasnaomed2 "
+ (possuiCampo ? groupBy + " AS idCampoSelecionado" : "")
+ " FROM micromedicao.un_resumo_coleta_esgoto rfat INNER JOIN cadastro.g_localidade loc on (rfat.loca_id = loc.loca_id) "
+ joinMunicipio
+ "WHERE rfat.rece_amreferencia = :anoMes";
// Localidade
if (localidade != null) {
sql += " AND loc.loca_id = " + localidade;
campoSelecionado = "loc.loca_id";
}
// Unidade de Negocio
if (unidade != null) {
sql += " AND rfat.uneg_id = " + unidade;
campoSelecionado = "rfat.uneg_id";
}
// Gerencia Regional
if (gerencia != null) {
sql += " AND rfat.greg_id = " + gerencia;
campoSelecionado = "rfat.greg_id";
}
//Munic�pio
if(municipio != null){
sql += " AND loc.muni_idprincipal = " + municipio;
campoSelecionado = "loc.muni_idPrincipal";
}
if(!groupBy.equals("")){
sql += " GROUP BY "+groupBy.substring(1)
+ " ORDER BY "+groupBy.substring(1);
}
if(campoSelecionado != null){
//Faz a pesquisa
retorno = (Object[]) session.createSQLQuery(sql).
addScalar("totalligacoesfaturadasmedidase", Hibernate.INTEGER).
addScalar("totalligacoesfaturadasnaomedi2", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasmedida2", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasnaomed2", Hibernate.INTEGER).
addScalar("idCampoSelecionado", Hibernate.INTEGER).
setInteger("anoMes",anoMes).
setMaxResults(1).
uniqueResult();
}else{
//Faz a pesquisa
retorno = (Object[]) session.createSQLQuery(sql).
addScalar("totalligacoesfaturadasmedidase", Hibernate.INTEGER).
addScalar("totalligacoesfaturadasnaomedi2", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasmedida2", Hibernate.INTEGER).
addScalar("totaleconomiasfaturadasnaomed2", Hibernate.INTEGER).
setInteger("anoMes",anoMes).
setInteger("anoMes",anoMes).
setMaxResults(1).
uniqueResult();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa os valores necessarios na tabela financeiro.resumo_faturamento
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Hugo Leonardo
* @date 23/02/2011
*
* @param FiltrarRelatorioOrcamentoSINPHelper
*
* @return
* Object[0] - esgotoTotalFaturadoResidencial
* Object[1] - esgotoTotalFaturadoComercial
* Object[2] - esgotoTotalFaturadoIndustrial
* Object[3] - esgotoTotalFaturadoPublico
* Object[4] - esgotoTotalFaturadoDireto
* Object[5] - aguaTotalFaturadoResidencial
* Object[6] - aguaTotalFaturadoComercial
* Object[7] - aguaTotalFaturadoIndustrial
* Object[8] - aguaTotalFaturadoPublico
* Object[9] - aguaTotalFaturadoDireto
* Object[10] - aguaTotalFaturadoIndireto
* Object[11] - receitaOperacionalTotal
* Object[12] - receitaOperacionalDireta
* Object[13] - receitaOperacionalIndireta
* Object[14] - aguaTotalFaturamentoGeralDI
* Object[15] - totalFaturamentoLiquido
*
* @throws ErroRepositorioException
*/
public Object[] pesquisarRelatorioOrcamentoSINPFinanceiroResumoFaturamento(
FiltrarRelatorioOrcamentoSINPHelper filtrarRelatorioOrcamentoSINPHelper)
throws ErroRepositorioException {
Object[] retorno = null;
int anoMes = filtrarRelatorioOrcamentoSINPHelper.getAnoMesReferencia();
Integer localidade = filtrarRelatorioOrcamentoSINPHelper.getLocalidade();
Integer unidade = filtrarRelatorioOrcamentoSINPHelper.getUnidadeNegocio();
Integer gerencia = filtrarRelatorioOrcamentoSINPHelper.getGerenciaRegional();
Integer municipio = filtrarRelatorioOrcamentoSINPHelper.getMunicipio();
boolean possuiCampo = false;
if(localidade != null || unidade != null || gerencia != null || municipio != null){
possuiCampo = true;
}
Integer opcaoTotalizacao = filtrarRelatorioOrcamentoSINPHelper.getOpcaoTotalizacao();
String joinMunicipio = " left join cadastro.municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
if(opcaoTotalizacao == 26 || opcaoTotalizacao == 19){
joinMunicipio = " inner join cadastro.municipio muni on ( muni.muni_id = loc.muni_idprincipal ) ";
}
Session session = HibernateUtil.getSession();
String groupBy = filtrarRelatorioOrcamentoSINPHelper.getGroupBy();
String campoSelecionado = null;
try{
String sql = "SELECT "
+ "SUM(CASE WHEN (rfat.catg_id = 1 AND rfat.rfat_nnsequenciatipolancamento = 1120) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS esgotoTotalFaturadoResidencial, " // 0
+ "SUM(CASE WHEN (rfat.catg_id = 2 AND rfat.rfat_nnsequenciatipolancamento = 1120) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS esgotoTotalFaturadoComercial, " // 1
+ "SUM(CASE WHEN (rfat.catg_id = 3 AND rfat.rfat_nnsequenciatipolancamento = 1120) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS esgotoTotalFaturadoIndustrial, " // 2
+ "SUM(CASE WHEN (rfat.catg_id = 4 AND rfat.rfat_nnsequenciatipolancamento = 1120) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS esgotoTotalFaturadoPublico, " // 3
+ "SUM(CASE WHEN (rfat.catg_id in (1,2,3,4) AND rfat.rfat_nnsequenciatipolancamento = 1120) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS esgotoTotalFaturadoDireto, " // 4
+ "SUM(CASE WHEN (rfat.catg_id = 1 AND rfat.rfat_nnsequenciatipolancamento = 1110) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS aguaTotalFaturadoResidencial, " // 5
+ "SUM(CASE WHEN (rfat.catg_id = 2 AND rfat.rfat_nnsequenciatipolancamento = 1110) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS aguaTotalFaturadoComercial, " // 6
+ "SUM(CASE WHEN (rfat.catg_id = 3 AND rfat.rfat_nnsequenciatipolancamento = 1110) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS aguaTotalFaturadoIndustrial, " // 7
+ "SUM(CASE WHEN (rfat.catg_id = 4 AND rfat.rfat_nnsequenciatipolancamento = 1110) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS aguaTotalFaturadoPublico, " // 8
+ "SUM(CASE WHEN (rfat.catg_id in (1,2,3,4) AND rfat.rfat_nnsequenciatipolancamento = 1110) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS aguaTotalFaturadoDireto, " // 9
+ "SUM(CASE WHEN (rfat.catg_id in (1,2,3,4) AND rfat.rfat_nnsequenciatipolancamento = 1130) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS aguaTotalFaturadoIndireto, " // 10
+ "SUM(CASE WHEN (rfat.catg_id in (1,2,3,4) AND rfat.rfat_nnsequenciatipolancamento in (1110,1120,1130)) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS receitaOperacionalTotal, " // 11
+ "SUM(CASE WHEN (rfat.catg_id in (1,2,3,4) AND rfat.rfat_nnsequenciatipolancamento in (1110,1120)) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS receitaOperacionalDireta, " // 12
+ "SUM(CASE WHEN (rfat.catg_id in (1,2,3,4) AND rfat.rfat_nnsequenciatipolancamento = 1130) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS receitaOperacionalIndireta, " // 13
+ "SUM(CASE WHEN (rfat.catg_id in (1,2,3,4) AND rfat.rfat_nnsequenciatipolancamento in (1110,1130)) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS aguaTotalFaturamentoGeralDI, " // 14
+ "SUM(CASE WHEN (rfat.catg_id in (1,2,3,4) AND rfat.rfat_nnsequenciatipolancamento = 1200) THEN rfat.rfat_vlitemfaturamento ELSE 0 END) AS totalFaturamentoLiquido " // 15
+ (possuiCampo ? groupBy + " AS idCampoSelecionado" : "")
+ " FROM financeiro.resumo_faturamento rfat INNER JOIN cadastro.localidade loc on (rfat.loca_id = loc.loca_id) "
+ joinMunicipio
+ "WHERE rfat.rfat_amreferencia = :anoMes";
// Localidade
if (localidade != null) {
sql += " AND loc.loca_id = " + localidade;
campoSelecionado = "loc.loca_id";
}
// Unidade de Negocio
if (unidade != null) {
sql += " AND rfat.uneg_id = " + unidade;
campoSelecionado = "rfat.uneg_id";
}
// Gerencia Regional
if (gerencia != null) {
sql += " AND rfat.greg_id = " + gerencia;
campoSelecionado = "rfat.greg_id";
}
if(municipio != null){
sql += " AND loc.muni_idprincipal = " + municipio;
campoSelecionado = "loc.muni_idprincipal";
}
if(!groupBy.equals("")){
sql += " GROUP BY "+ groupBy.substring(1)
+ " ORDER BY "+groupBy.substring(1);
}
if(campoSelecionado != null){
//Faz a pesquisa
retorno = (Object[]) session.createSQLQuery(sql).
addScalar("esgotoTotalFaturadoResidencial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoComercial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoIndustrial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoPublico", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoDireto", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoResidencial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoComercial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoIndustrial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoPublico", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoDireto", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoIndireto", Hibernate.BIG_DECIMAL).
addScalar("receitaOperacionalTotal", Hibernate.BIG_DECIMAL).
addScalar("receitaOperacionalDireta", Hibernate.BIG_DECIMAL).
addScalar("receitaOperacionalIndireta", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturamentoGeralDI", Hibernate.BIG_DECIMAL).
addScalar("totalFaturamentoLiquido", Hibernate.BIG_DECIMAL).
addScalar("idCampoSelecionado", Hibernate.INTEGER).
setInteger("anoMes",anoMes).
setMaxResults(1).
uniqueResult();
}else{
//Faz a pesquisa
retorno = (Object[]) session.createSQLQuery(sql).
addScalar("esgotoTotalFaturadoResidencial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoComercial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoIndustrial", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoPublico", Hibernate.BIG_DECIMAL).
addScalar("esgotoTotalFaturadoDireto", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoResidencial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoComercial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoIndustrial", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoPublico", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoDireto", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturadoIndireto", Hibernate.BIG_DECIMAL).
addScalar("receitaOperacionalTotal", Hibernate.BIG_DECIMAL).
addScalar("receitaOperacionalDireta", Hibernate.BIG_DECIMAL).
addScalar("receitaOperacionalIndireta", Hibernate.BIG_DECIMAL).
addScalar("aguaTotalFaturamentoGeralDI", Hibernate.BIG_DECIMAL).
addScalar("totalFaturamentoLiquido", Hibernate.BIG_DECIMAL).
setInteger("anoMes",anoMes).
setMaxResults(1).
uniqueResult();
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
/**
* Pesquisa todas as tabelas de resumo Comercial para o Orcamento
*
* [UC0722] - Gerar Relatorio para Or�amento e SINP
*
* @author Hugo Leonardo
* @date 24/02/2011
*
* @return anoMesReferencia
*
* @throws ErroRepositorioException
*/
public boolean existeDadosComercialParaOrcamentoSINP(int anoMesReferencia)
throws ErroRepositorioException {
boolean existeDados = true;
Integer retorno = null;
Session session = HibernateUtil.getSession();
try{
String consulta = " SELECT count(*) "
+ " FROM ResumoFaturamento resumo "
+ " WHERE resumo.anoMesReferencia = :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;
}
}