package gcom.relatorio.gerencial.faturamento;
import gcom.batch.Relatorio;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.gerencial.faturamento.bean.FiltrarResumoDadosCasHelper;
import gcom.gui.ActionServletException;
import gcom.relatorio.ConstantesRelatorios;
import gcom.relatorio.RelatorioDataSource;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaException;
import gcom.tarefa.TarefaRelatorio;
import gcom.util.ControladorException;
import gcom.util.Util;
import gcom.util.agendadortarefas.AgendadorTarefas;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class RelatorioResumoDadosCas extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
//Constantes
@SuppressWarnings("unused")//adicionado para n�o aparecer nenhum alert
private static final Integer TOTALIZACAO_ESTADO = 1;
private static final Integer TOTALIZACAO_ESTADO_POR_GERENCIA_REGIONAL = 2;
private static final Integer TOTALIZACAO_ESTADO_POR_UNIDADE_NEGOCIO = 3;
private static final Integer TOTALIZACAO_ESTADO_POR_MUNICIPIO = 4;
@SuppressWarnings("unused")//adicionado para n�o aparecer nenhum alert
private static final Integer TOTALIZACAO_GERENCIA_REGIONAL = 6;
private static final Integer TOTALIZACAO_UNIDADE_NEGOCIO = 10;
private static final Integer TOTALIZACAO_LOCALIDADE = 17;
private static final Integer TOTALIZACAO_MUNICIPIO = 20;
public RelatorioResumoDadosCas(Usuario usuario) {
super(usuario, ConstantesRelatorios.RELATORIO_RESUMO_DADOS_CAS);
}
@Deprecated
public RelatorioResumoDadosCas() {
super(null, "");
}
public Object executar() throws TarefaException {
// valor de retorno
byte[] retorno = null;
// ------------------------------------
Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada();
// ------------------------------------
FiltrarResumoDadosCasHelper filtro =
(FiltrarResumoDadosCasHelper) getParametro("filtrarResumoDadosCasHelper");
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
// cole��o de beans do relat�rio
List relatorioBeans = new ArrayList();
Fachada fachada = Fachada.getInstancia();
Collection<Object> colecaoResumoLigacaoEconomia =
fachada.pesquisaResumoLigacaoEconomiaResumoDadosCas(filtro);
Collection<Object> colecaoResumoConsumoAgua =
fachada.pesquisaResumoConsumoAguaResumoDadosCas(filtro);
Collection<Object> colecaoResumoColetaEsgoto =
fachada.pesquisaResumoColetaEsgotoResumoDadosCas(filtro);
Collection<Object> colecaoResumoArrecadacao =
fachada.pesquisaResumoArrecadacaoResumoDadosCas(filtro);
Collection<Object> colecaoResumoFaturamento =
fachada.pesquisaResumoFaturamentoResumoDadosCas(filtro);
Collection<Object> colecaoResumoPendencia =
fachada.pesquisaResumoPendenciaResumoDadosCas(filtro);
Collection<Object> colecaoResumoFaturamentoComercial =
fachada.pesquisaResumoFaturamentoResumoDadosCasComercial(filtro);
Collection<Object> colecaoResumoInstalacaoHidrometro =
fachada.pesquisaResumoInstalacaoHidrometroResumoDadosCas(filtro);
RelatorioResumoDadosCasBean relatorioBean = null;
//cria variaveis para gerar o total por relatorio.
Long sumTotalLigacoesAtivasAgua = new Long(0);
Long sumTotalLigacoesInativasAgua = new Long(0);
Long sumTotalLigacoesAtvInatAgua = new Long(0);
Long sumTotalLigacoesCortadasAgua = new Long(0);
Long sumTotalLigacoesAnaliseAgua = new Long(0);
Long sumTotalLigacoesRamaisLigAgua = new Long(0);
Long sumTotalLigacoesMedidasAgua = new Long(0);
Long sumTotalLigacoesNaoMedidasAgua = new Long(0);
Long sumTotalLigacoesAtivasEsgoto = new Long(0);
Long sumTotalLigacoesInativasEsgoto = new Long(0);
Long sumTotalLigacoesAtivInatEsgoto = new Long(0);
Long sumTotalLigacoesTamponatoEsgoto = new Long(0);
Long sumTotalLigacoesAnaliseEsgoto = new Long(0);
Long sumTotalLigacoesRamaisLigEsgoto = new Long(0);
Long sumTotalLigacoesMedidasEsgoto = new Long(0);
Long sumTotalLigacoesNaoMedidasEsgoto = new Long(0);
Long sumTotalLigacoesAguaSuprimidas = new Long(0);
Long sumNumeroEconomiasAgua = new Long(0);
Long sumNumeroEconomiasEsgoto = new Long(0);
BigDecimal sumTotalArrecadacaoAtual = new BigDecimal(0);
BigDecimal sumTotalArrecadacaoAnterior = new BigDecimal(0);
Long sumContasEmitidas = new Long(0);
BigDecimal sumTotalVolumeFaturadoAgua = new BigDecimal(0);
BigDecimal sumTotalVolumeFaturadoEsgoto = new BigDecimal(0);
BigDecimal sumTotalValorFaturadoAgua = new BigDecimal(0);
BigDecimal sumTotalValorFaturadoEsgoto = new BigDecimal(0);
BigDecimal sumValorPendencia = new BigDecimal(0);
Long sumTotalLigacoesFaturadasAgua = new Long(0);
Long sumTotalLigacoesFaturadasEsgoto = new Long(0);
Long sumTotalHidrometrosInstaladosAgua = new Long(0);
Long sumTotalHidrometrosInstaladosEsgoto = new Long(0);
Long sumTotalHidrometrosSubstituidosAgua = new Long(0);
Long sumTotalHidrometrosSubstituidosEsgoto = new Long(0);
BigDecimal sumTotalFaturamentoLiquidoAtual = new BigDecimal(0);
BigDecimal sumTotalFaturamentoLiquidoAnterior = new BigDecimal(0);
// variaveis para converter valor long para BigDecimal
BigDecimal totalLigacoesAtivasAgua = new BigDecimal(0);
BigDecimal totalLigacoesMedidasAgua = new BigDecimal(0);
if (colecaoResumoLigacaoEconomia != null && !colecaoResumoLigacaoEconomia.isEmpty()) {
Iterator iteratorRELE = colecaoResumoLigacaoEconomia.iterator();
Iterator iteratorRECA = colecaoResumoConsumoAgua.iterator();
Iterator iteratorRECE = colecaoResumoColetaEsgoto.iterator();
Iterator iteratorREAR = colecaoResumoArrecadacao.iterator();
Iterator iteratorREFA = colecaoResumoFaturamento.iterator();
Iterator iteratorRPEN = colecaoResumoPendencia.iterator();
Iterator iteratorREFAC = colecaoResumoFaturamentoComercial.iterator();
Iterator iteratorREIH = colecaoResumoInstalacaoHidrometro.iterator();
while (iteratorRELE.hasNext() || iteratorRECA.hasNext()
|| iteratorRECE.hasNext() || iteratorREAR.hasNext()
|| iteratorREFA.hasNext() || iteratorRPEN.hasNext()
|| iteratorREFAC.hasNext() || iteratorREIH.hasNext()) {
relatorioBean = new RelatorioResumoDadosCasBean();
Object[] objRELE = (Object[]) iteratorRELE.next();
relatorioBean.setTotalLigacoesAtivasAgua((Long)objRELE[0]);
relatorioBean.setTotalLigacoesInativasAgua((Long)objRELE[1]);
relatorioBean.setTotalLigacoesAtvInatAgua((Long)objRELE[2]);
relatorioBean.setTotalLigacoesCortadasAgua((Long)objRELE[3]);
relatorioBean.setTotalLigacoesAnaliseAgua((Long)objRELE[4]);
relatorioBean.setTotalLigacoesRamaisLigAgua((Long)objRELE[5]);
relatorioBean.setTotalLigacoesMedidasAgua((Long)objRELE[6]);
relatorioBean.setTotalLigacoesNaoMedidasAgua((Long)objRELE[7]);
relatorioBean.setTotalLigacoesAtivasEsgoto((Long)objRELE[8]);
relatorioBean.setTotalLigacoesInativasEsgoto((Long)objRELE[9]);
relatorioBean.setTotalLigacoesAtivInatEsgoto((Long)objRELE[10]);
relatorioBean.setTotalLigacoesTamponatoEsgoto((Long)objRELE[11]);
relatorioBean.setTotalLigacoesAnaliseEsgoto((Long)objRELE[12]);
relatorioBean.setTotalLigacoesRamaisLigEsgoto((Long)objRELE[13]);
relatorioBean.setTotalLigacoesMedidasEsgoto((Long)objRELE[14]);
relatorioBean.setTotalLigacoesNaoMedidasEsgoto((Long)objRELE[15]);
relatorioBean.setTotalLigacoesAguaSuprimidas((Long)objRELE[16]);
//converter long para BigDecimal e dividir "ligacoes medidas" por "ligacoes ativas"
totalLigacoesAtivasAgua = new BigDecimal( (Long) objRELE[0]);
totalLigacoesMedidasAgua = new BigDecimal( (Long) objRELE[6]);
if(totalLigacoesAtivasAgua.compareTo(new BigDecimal("0")) != 0
&& totalLigacoesMedidasAgua.compareTo(new BigDecimal("0")) != 0){
relatorioBean.setIndiceHidrometracaoAgua(Util.dividirArredondando(totalLigacoesMedidasAgua, totalLigacoesAtivasAgua));
}else{
relatorioBean.setIndiceHidrometracaoAgua(new BigDecimal(0));
}
relatorioBean.setGerenciaRegionalID((String)objRELE[17]);
relatorioBean.setGerenciaRegional((String)objRELE[18]);
relatorioBean.setUnidadeNegocioID((String)objRELE[19]);
relatorioBean.setUnidadeNegocio((String)objRELE[20]);
relatorioBean.setLocalidadeID((String)objRELE[21]);
relatorioBean.setLocalidade((String)objRELE[22]);
relatorioBean.setMunicipioId((String)objRELE[23]);
relatorioBean.setMunicipio((String)objRELE[24]);
Object[] objRECA = null;
if(colecaoResumoConsumoAgua != null && colecaoResumoConsumoAgua.size() != 0 && iteratorRECA.hasNext()){
objRECA = (Object[]) iteratorRECA.next();
relatorioBean.setNumeroEconomiasAgua((Long)objRECA[0]);
relatorioBean.setTotalVolumeFaturadoAgua((BigDecimal)objRECA[1]);
relatorioBean.setTotalLigacoesFaturadasAgua((Long)objRECA[2]);
}else{
relatorioBean.setNumeroEconomiasAgua(new Long(0));
relatorioBean.setTotalVolumeFaturadoAgua(new BigDecimal(0));
relatorioBean.setTotalLigacoesFaturadasAgua(new Long(0));
}
Object[] objRECE = null;
if(colecaoResumoColetaEsgoto != null && colecaoResumoColetaEsgoto.size() != 0 && iteratorRECE.hasNext()){
objRECE = (Object[]) iteratorRECE.next();
relatorioBean.setNumeroEconomiasEsgoto((Long)objRECE[0]);
relatorioBean.setTotalVolumeFaturadoEsgoto((BigDecimal)objRECE[1]);
relatorioBean.setTotalLigacoesFaturadasEsgoto((Long)objRECE[2]);
}else{
relatorioBean.setNumeroEconomiasEsgoto(new Long(0));
relatorioBean.setTotalVolumeFaturadoEsgoto(new BigDecimal(0));
relatorioBean.setTotalLigacoesFaturadasEsgoto(new Long(0));
}
Object[] objREAR = null;
if(colecaoResumoArrecadacao != null && colecaoResumoArrecadacao.size() != 0 && iteratorREAR.hasNext()){
objREAR = (Object[]) iteratorREAR.next();
relatorioBean.setTotalArrecadacaoAtual((BigDecimal)objREAR[0]);
relatorioBean.setTotalArrecadacaoAnterior((BigDecimal)objREAR[1]);
}else{
relatorioBean.setTotalArrecadacaoAtual(new BigDecimal(0));
relatorioBean.setTotalArrecadacaoAnterior(new BigDecimal(0));
}
Object[] objREFA = null;
if(colecaoResumoFaturamento != null && colecaoResumoFaturamento.size() != 0 && iteratorREFA.hasNext()){
objREFA = (Object[]) iteratorREFA.next();
relatorioBean.setContasEmitidas((Long)objREFA[0]);
relatorioBean.setTotalValorFaturadoAgua((BigDecimal)objREFA[3]);
relatorioBean.setTotalValorFaturadoEsgoto((BigDecimal)objREFA[4]);
}else{
relatorioBean.setContasEmitidas(new Long(0));
relatorioBean.setTotalValorFaturadoAgua(new BigDecimal(0));
relatorioBean.setTotalValorFaturadoEsgoto(new BigDecimal(0));
}
Object[] objRPEN = null;
if(colecaoResumoPendencia != null && colecaoResumoPendencia.size() != 0 && iteratorRPEN.hasNext()){
objRPEN = (Object[]) iteratorRPEN.next();
if((BigDecimal)objRPEN[0] == null){
relatorioBean.setValorPendencia(new BigDecimal(0));
}else{
relatorioBean.setValorPendencia((BigDecimal)objRPEN[0]);
}
}else{
relatorioBean.setValorPendencia(new BigDecimal(0));
}
Object[] objREFAC = null;
if(colecaoResumoFaturamentoComercial != null && colecaoResumoFaturamentoComercial.size() != 0 && iteratorREFAC.hasNext()){
objREFAC = (Object[]) iteratorREFAC.next();
relatorioBean.setTotalFaturamentoLiquidoAtual((BigDecimal)objREFAC[0]);
relatorioBean.setTotalFaturamentoLiquidoAnterior((BigDecimal)objREFAC[1]);
relatorioBean.setTotalValorFaturadoAgua((BigDecimal)objREFAC[2]);
relatorioBean.setTotalValorFaturadoEsgoto((BigDecimal)objREFAC[3]);
}else{
relatorioBean.setTotalFaturamentoLiquidoAtual(new BigDecimal(0));
relatorioBean.setTotalFaturamentoLiquidoAnterior(new BigDecimal(0));
relatorioBean.setTotalValorFaturadoAgua(new BigDecimal(0));
relatorioBean.setTotalValorFaturadoEsgoto(new BigDecimal(0));
}
Object[] objREIH = null;
if(colecaoResumoInstalacaoHidrometro != null && colecaoResumoInstalacaoHidrometro.size() != 0 && iteratorREIH.hasNext()){
objREIH = (Object[]) iteratorREIH.next();
relatorioBean.setTotalHidrometrosInstaladosAgua((Long)objREIH[0]);
relatorioBean.setTotalHidrometrosInstaladosEsgoto((Long)objREIH[1]);
relatorioBean.setTotalHidrometrosSubstituidosAgua((Long)objREIH[2]);
relatorioBean.setTotalHidrometrosSubstituidosEsgoto((Long)objREIH[3]);
}else{
relatorioBean.setTotalHidrometrosInstaladosAgua(new Long(0));
relatorioBean.setTotalHidrometrosInstaladosEsgoto(new Long(0));
relatorioBean.setTotalHidrometrosSubstituidosAgua(new Long(0));
relatorioBean.setTotalHidrometrosSubstituidosEsgoto(new Long(0));
}
if(relatorioBean.getTotalArrecadacaoAtual().compareTo(new BigDecimal("0")) != 0
&& relatorioBean.getTotalFaturamentoLiquidoAnterior().compareTo(new BigDecimal("0")) != 0){
relatorioBean.setIndiceArrecadacao(Util.dividirArredondando(relatorioBean.getTotalArrecadacaoAtual(), relatorioBean.getTotalFaturamentoLiquidoAnterior()));
}else{
relatorioBean.setIndiceArrecadacao(new BigDecimal(0));
}
if(relatorioBean.getTotalFaturamentoLiquidoAtual().compareTo(new BigDecimal("0")) != 0
&& relatorioBean.getValorPendencia().compareTo(new BigDecimal("0")) != 0){
relatorioBean.setIndiceContasAReceber(Util.dividirArredondando(relatorioBean.getValorPendencia(), relatorioBean.getTotalFaturamentoLiquidoAtual()));
}else{
relatorioBean.setIndiceContasAReceber(new BigDecimal(0));
}
//Se o Total da Arrecadacao atual e o Total do Faturamento Liquido Atual forem = 0,
//nao adiciona item (seja Gerencia/ Unidade ou Localidade).
if(relatorioBean.getTotalArrecadacaoAtual().compareTo(new BigDecimal(0))!=0
|| relatorioBean.getTotalFaturamentoLiquidoAtual().compareTo(new BigDecimal(0))!=0){
relatorioBeans.add(relatorioBean);
//caso a opcao de totalizacao for estado por Gerencia Regional/Unidade de Negocio, adiciona o total do estado,
//soma os valores
if (filtro.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_POR_GERENCIA_REGIONAL || filtro.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_POR_UNIDADE_NEGOCIO){
sumTotalLigacoesAtivasAgua += (Long)objRELE[0];
sumTotalLigacoesInativasAgua += (Long)objRELE[1];
sumTotalLigacoesAtvInatAgua += (Long)objRELE[2];
sumTotalLigacoesCortadasAgua += (Long)objRELE[3];
sumTotalLigacoesAnaliseAgua += (Long)objRELE[4];
sumTotalLigacoesRamaisLigAgua += (Long)objRELE[5];
sumTotalLigacoesMedidasAgua += (Long)objRELE[6];
sumTotalLigacoesNaoMedidasAgua += (Long)objRELE[7];
sumTotalLigacoesAtivasEsgoto += (Long)objRELE[8];
sumTotalLigacoesInativasEsgoto += (Long)objRELE[9];
sumTotalLigacoesAtivInatEsgoto += (Long)objRELE[10];
sumTotalLigacoesTamponatoEsgoto += (Long)objRELE[11];
sumTotalLigacoesAnaliseEsgoto += (Long)objRELE[12];
sumTotalLigacoesRamaisLigEsgoto += (Long)objRELE[13];
sumTotalLigacoesMedidasEsgoto += (Long)objRELE[14];
sumTotalLigacoesNaoMedidasEsgoto += (Long)objRELE[15];
sumTotalLigacoesAguaSuprimidas += (Long)objRELE[16];
if(objRECA != null){
sumNumeroEconomiasAgua += (Long)objRECA[0];
sumTotalVolumeFaturadoAgua = sumTotalVolumeFaturadoAgua.add((BigDecimal)objRECA[1]);
sumTotalLigacoesFaturadasAgua += (Long)objRECA[2];
}
if(objRECE != null){
sumNumeroEconomiasEsgoto += (Long)objRECE[0];
sumTotalVolumeFaturadoEsgoto = sumTotalVolumeFaturadoEsgoto.add((BigDecimal)objRECE[1]);
sumTotalLigacoesFaturadasEsgoto += (Long)objRECE[2];
}
if(objREAR != null){
sumTotalArrecadacaoAtual = sumTotalArrecadacaoAtual.add((BigDecimal)objREAR[0]);
sumTotalArrecadacaoAnterior = sumTotalArrecadacaoAnterior.add((BigDecimal)objREAR[1]);
}
if(objREFA != null){
sumContasEmitidas += (Long)objREFA[0];
}
if(objRPEN != null){
sumValorPendencia = sumValorPendencia.add((BigDecimal)objRPEN[0]);
}
if(objREFAC != null){
sumTotalFaturamentoLiquidoAtual = sumTotalFaturamentoLiquidoAtual.add((BigDecimal)objREFAC[0]);
sumTotalFaturamentoLiquidoAnterior = sumTotalFaturamentoLiquidoAnterior.add((BigDecimal)objREFAC[1]);
sumTotalValorFaturadoAgua = sumTotalValorFaturadoAgua.add((BigDecimal)objREFAC[2]);
sumTotalValorFaturadoEsgoto = sumTotalValorFaturadoEsgoto.add((BigDecimal)objREFAC[3]);
}
if(objREIH != null){
sumTotalHidrometrosInstaladosAgua += (Long)objREIH[0];
sumTotalHidrometrosInstaladosEsgoto += (Long)objREIH[1];
sumTotalHidrometrosSubstituidosAgua += (Long)objREIH[2];
sumTotalHidrometrosSubstituidosEsgoto += (Long)objREIH[3];
}
}
}
}
//caso a opcao de totalizacao for estado por Gerencia Regional/Unidade de Negocio,
//adiciona o total do estado
if (filtro.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_POR_GERENCIA_REGIONAL || filtro.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_POR_UNIDADE_NEGOCIO
|| filtro.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO_POR_MUNICIPIO){
relatorioBean = new RelatorioResumoDadosCasBean();
relatorioBean.setTotalLigacoesAtivasAgua(Long.valueOf(sumTotalLigacoesAtivasAgua));
relatorioBean.setTotalLigacoesInativasAgua(Long.valueOf(sumTotalLigacoesInativasAgua));
relatorioBean.setTotalLigacoesAtvInatAgua(Long.valueOf(sumTotalLigacoesAtvInatAgua));
relatorioBean.setTotalLigacoesCortadasAgua(Long.valueOf(sumTotalLigacoesCortadasAgua));
relatorioBean.setTotalLigacoesAnaliseAgua(Long.valueOf(sumTotalLigacoesAnaliseAgua));
relatorioBean.setTotalLigacoesRamaisLigAgua(Long.valueOf(sumTotalLigacoesRamaisLigAgua));
relatorioBean.setTotalLigacoesMedidasAgua(Long.valueOf(sumTotalLigacoesMedidasAgua));
relatorioBean.setTotalLigacoesNaoMedidasAgua(Long.valueOf(sumTotalLigacoesNaoMedidasAgua));
relatorioBean.setTotalLigacoesAtivasEsgoto(Long.valueOf(sumTotalLigacoesAtivasEsgoto));
relatorioBean.setTotalLigacoesInativasEsgoto(Long.valueOf(sumTotalLigacoesInativasEsgoto));
relatorioBean.setTotalLigacoesAtivInatEsgoto(Long.valueOf(sumTotalLigacoesAtivInatEsgoto));
relatorioBean.setTotalLigacoesTamponatoEsgoto(Long.valueOf(sumTotalLigacoesTamponatoEsgoto));
relatorioBean.setTotalLigacoesAnaliseEsgoto(Long.valueOf(sumTotalLigacoesAnaliseEsgoto));
relatorioBean.setTotalLigacoesRamaisLigEsgoto(Long.valueOf(sumTotalLigacoesRamaisLigEsgoto));
relatorioBean.setTotalLigacoesMedidasEsgoto(Long.valueOf(sumTotalLigacoesMedidasEsgoto));
relatorioBean.setTotalLigacoesNaoMedidasEsgoto(Long.valueOf(sumTotalLigacoesNaoMedidasEsgoto));
relatorioBean.setTotalLigacoesAguaSuprimidas(sumTotalLigacoesAguaSuprimidas);
relatorioBean.setNumeroEconomiasAgua(Long.valueOf(sumNumeroEconomiasAgua));
relatorioBean.setNumeroEconomiasEsgoto(Long.valueOf(sumNumeroEconomiasEsgoto));
relatorioBean.setTotalArrecadacaoAtual(sumTotalArrecadacaoAtual);
relatorioBean.setTotalArrecadacaoAnterior(sumTotalArrecadacaoAnterior);
relatorioBean.setContasEmitidas(Long.valueOf(sumContasEmitidas));
relatorioBean.setTotalVolumeFaturadoAgua(sumTotalVolumeFaturadoAgua);
relatorioBean.setTotalVolumeFaturadoEsgoto(sumTotalVolumeFaturadoEsgoto);
relatorioBean.setTotalValorFaturadoAgua(sumTotalValorFaturadoAgua);
relatorioBean.setTotalValorFaturadoEsgoto(sumTotalValorFaturadoEsgoto);
relatorioBean.setTotalLigacoesFaturadasAgua(Long.valueOf(sumTotalLigacoesFaturadasAgua));
relatorioBean.setTotalLigacoesFaturadasEsgoto(Long.valueOf(sumTotalLigacoesFaturadasEsgoto));
relatorioBean.setTotalHidrometrosInstaladosAgua(Long.valueOf(sumTotalHidrometrosInstaladosAgua));
relatorioBean.setTotalHidrometrosInstaladosEsgoto(Long.valueOf(sumTotalHidrometrosInstaladosEsgoto));
relatorioBean.setTotalHidrometrosSubstituidosAgua(Long.valueOf(sumTotalHidrometrosSubstituidosAgua));
relatorioBean.setTotalHidrometrosSubstituidosEsgoto(Long.valueOf(sumTotalHidrometrosSubstituidosEsgoto));
//converter long para BigDecimal e dividir "ligacoes medidas" por "ligacoes ativas"
totalLigacoesAtivasAgua = new BigDecimal(sumTotalLigacoesAtivasAgua);
totalLigacoesMedidasAgua = new BigDecimal(sumTotalLigacoesMedidasAgua);
if(totalLigacoesAtivasAgua.compareTo(new BigDecimal("0")) != 0
&& totalLigacoesMedidasAgua.compareTo(new BigDecimal("0")) != 0){
relatorioBean.setIndiceHidrometracaoAgua(Util.dividirArredondando(totalLigacoesMedidasAgua, totalLigacoesAtivasAgua));
}else{
relatorioBean.setIndiceHidrometracaoAgua(new BigDecimal(0));
}
relatorioBean.setValorPendencia(sumValorPendencia);
relatorioBean.setTotalFaturamentoLiquidoAtual(sumTotalFaturamentoLiquidoAtual);
relatorioBean.setTotalFaturamentoLiquidoAnterior(sumTotalFaturamentoLiquidoAnterior);
if(sumTotalArrecadacaoAtual.compareTo(new BigDecimal("0")) != 0
&& sumTotalFaturamentoLiquidoAnterior.compareTo(new BigDecimal("0")) != 0){
relatorioBean.setIndiceArrecadacao(Util.dividirArredondando(sumTotalArrecadacaoAtual, sumTotalFaturamentoLiquidoAnterior));
}else{
relatorioBean.setIndiceArrecadacao(new BigDecimal(0));
}
if(sumTotalFaturamentoLiquidoAtual.compareTo(new BigDecimal("0")) != 0
&& sumValorPendencia.compareTo(new BigDecimal("0")) != 0){
relatorioBean.setIndiceContasAReceber(Util.dividirArredondando(sumValorPendencia, sumTotalFaturamentoLiquidoAtual));
}else{
relatorioBean.setIndiceContasAReceber(new BigDecimal(0));
}
//colocar zero para informar que esse bean � o total do estado
relatorioBean.setGerenciaRegionalID((String)"0");
relatorioBean.setUnidadeNegocioID((String)"0");
relatorioBean.setLocalidadeID((String)"0");
relatorioBeans.add(relatorioBean);
}
}
// __________________________________________________________________
// Par�metros do relat�rio
Map parametros = new HashMap();
// adiciona os par�metros do relat�rio
// adiciona o laudo da an�lise
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
parametros.put("anoMesReferencia", Util.formatarAnoMesParaMesAno(filtro.getAnoMesReferencia()));
parametros.put("anoMesReferenciaAnterior", Util.formatarAnoMesParaMesAno(filtro.getAnoMesReferenciaAnterior()));
parametros.put("codOpcaoTotalizacao", filtro.getOpcaoTotalizacao());
parametros.put("tipoFormatoRelatorio", "R1017");
// cria uma inst�ncia do dataSource do relat�rio
RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans);
retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_RESUMO_DADOS_CAS,
parametros, ds, tipoFormatoRelatorio);
// ------------------------------------
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_RESUMO_DADOS_CAS,
idFuncionalidadeIniciada);
} catch (ControladorException e) {
e.printStackTrace();
throw new TarefaException("Erro ao gravar relat�rio no sistema", e);
}
// ------------------------------------
// retorna o relat�rio gerado
return retorno;
}
@Override
public int calcularTotalRegistrosRelatorio() {
FiltrarResumoDadosCasHelper filtro =
(FiltrarResumoDadosCasHelper) getParametro("filtrarResumoDadosCasHelper");
Fachada fachada = Fachada.getInstancia();
int retorno = 0;
retorno = (Integer) fachada.pesquisaResumoLigacaoEconomiaResumoDadosCas(filtro).size();
if(retorno == 0 ){
throw new ActionServletException("atencao.pesquisa.nenhumresultado", null, "");
// se a op��o de totaliza��o for Localidade ou Unidade de Neg�cio ou Estado ou 1 Ger�ncia
// n�o ir pra batch
}else if(filtro.getOpcaoTotalizacao() == TOTALIZACAO_LOCALIDADE || filtro.getOpcaoTotalizacao() == TOTALIZACAO_UNIDADE_NEGOCIO
|| filtro.getOpcaoTotalizacao() == TOTALIZACAO_ESTADO || filtro.getOpcaoTotalizacao() == TOTALIZACAO_GERENCIA_REGIONAL
|| filtro.getOpcaoTotalizacao() == TOTALIZACAO_MUNICIPIO){
retorno = 0;
}
return retorno;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioResumoDadosCas", this);
}
}