package gcom.relatorio.faturamento; import gcom.batch.Relatorio; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.faturamento.bean.VolumesFaturadosRelatorioHelper; import gcom.relatorio.ConstantesRelatorios; import gcom.relatorio.RelatorioDataSource; import gcom.relatorio.RelatorioVazioException; 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; /** * classe respons�vel por criar o relat�rio de volumes faturados * * @author Rafael Corr�a * @created 12/09/2007 */ public class RelatorioVolumesFaturados extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioVolumesFaturados(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_VOLUMES_FATURADOS); } @Deprecated public RelatorioVolumesFaturados() { super(null, ""); } /** * < <Descri��o do m�todo>> * * @param bairros * Description of the Parameter * @param bairroParametros * Description of the Parameter * @return Descri��o do retorno * @exception RelatorioVazioException * Descri��o da exce��o */ public Object executar() throws TarefaException { // ------------------------------------ Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada(); // ------------------------------------ Integer idLocalidade = (Integer) getParametro("idLocalidade"); Integer anoMes = (Integer) getParametro("anoMes"); int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); // valor de retorno byte[] retorno = null; // cole��o de beans do relat�rio List relatorioBeans = new ArrayList(); Fachada fachada = Fachada.getInstancia(); RelatorioVolumesFaturadosBean relatorioBean = null; Integer anoMes1 = Util.somaMesAnoMesReferencia(anoMes, 1); Integer anoMes2 = Util.somaMesAnoMesReferencia(anoMes, 2); Integer anoMes3 = Util.somaMesAnoMesReferencia(anoMes, 3); Integer anoMes4 = Util.somaMesAnoMesReferencia(anoMes, 4); Integer anoMes5 = Util.somaMesAnoMesReferencia(anoMes, 5); Integer anoMes6 = Util.somaMesAnoMesReferencia(anoMes, 6); Collection colecaoVolumesFaturadosRelatorioHelper = fachada .pesquisarDadosRelatorioVolumesFaturados(idLocalidade, anoMes, anoMes1, anoMes2, anoMes3, anoMes4, anoMes5, anoMes6); // se a cole��o de par�metros da analise n�o for vazia if (colecaoVolumesFaturadosRelatorioHelper != null && !colecaoVolumesFaturadosRelatorioHelper.isEmpty()) { // coloca a cole��o de par�metros da analise no iterator Iterator colecaoVolumesFaturadosRelatorioHelperIterator = colecaoVolumesFaturadosRelatorioHelper .iterator(); // Cria as vari�veis de totaliza��o Integer mediaTotalQuadra = new Integer("0"); Integer mesAno1TotalQuadra = new Integer("0"); Integer mesAno2TotalQuadra = new Integer("0"); Integer mesAno3TotalQuadra = new Integer("0"); Integer mesAno4TotalQuadra = new Integer("0"); Integer mesAno5TotalQuadra = new Integer("0"); Integer mesAno6TotalQuadra = new Integer("0"); Integer mediaTotalSetorComercial = new Integer("0"); Integer mesAno1TotalSetorComercial = new Integer("0"); Integer mesAno2TotalSetorComercial = new Integer("0"); Integer mesAno3TotalSetorComercial = new Integer("0"); Integer mesAno4TotalSetorComercial = new Integer("0"); Integer mesAno5TotalSetorComercial = new Integer("0"); Integer mesAno6TotalSetorComercial = new Integer("0"); Integer mediaTotalLocalidade = new Integer("0"); Integer mesAno1TotalLocalidade = new Integer("0"); Integer mesAno2TotalLocalidade = new Integer("0"); Integer mesAno3TotalLocalidade = new Integer("0"); Integer mesAno4TotalLocalidade = new Integer("0"); Integer mesAno5TotalLocalidade = new Integer("0"); Integer mesAno6TotalLocalidade = new Integer("0"); Integer idQuadraAnterior = null; Integer idSetorComercialAnterior = null; Integer idLocalidadeAnterior = null; boolean zerarQuadra = false; boolean zerarSetorComercial = false; boolean zerarLocalidade = false; String variacao1TotalQuadra = ""; String variacao1TotalSetorComercial = ""; String variacao1TotalLocalidade = ""; String variacao2TotalQuadra = ""; String variacao2TotalSetorComercial = ""; String variacao2TotalLocalidade = ""; String variacao3TotalQuadra = ""; String variacao3TotalSetorComercial = ""; String variacao3TotalLocalidade = ""; String variacao4TotalQuadra = ""; String variacao4TotalSetorComercial = ""; String variacao4TotalLocalidade = ""; String variacao5TotalQuadra = ""; String variacao5TotalSetorComercial = ""; String variacao5TotalLocalidade = ""; String variacao6TotalQuadra = ""; String variacao6TotalSetorComercial = ""; String variacao6TotalLocalidade = ""; // Cria as vari�veis para verificar se existe algum dado do m�s para cada totalizador boolean peloMenosUmDadoMesAno1Quadra = false; boolean peloMenosUmDadoMesAno2Quadra = false; boolean peloMenosUmDadoMesAno3Quadra = false; boolean peloMenosUmDadoMesAno4Quadra = false; boolean peloMenosUmDadoMesAno5Quadra = false; boolean peloMenosUmDadoMesAno6Quadra = false; boolean peloMenosUmDadoMesAno1SetorComercial = false; boolean peloMenosUmDadoMesAno2SetorComercial = false; boolean peloMenosUmDadoMesAno3SetorComercial = false; boolean peloMenosUmDadoMesAno4SetorComercial = false; boolean peloMenosUmDadoMesAno5SetorComercial = false; boolean peloMenosUmDadoMesAno6SetorComercial = false; boolean peloMenosUmDadoMesAno1Localidade = false; boolean peloMenosUmDadoMesAno2Localidade = false; boolean peloMenosUmDadoMesAno3Localidade = false; boolean peloMenosUmDadoMesAno4Localidade = false; boolean peloMenosUmDadoMesAno5Localidade = false; boolean peloMenosUmDadoMesAno6Localidade = false; // la�o para criar a cole��o de par�metros da analise while (colecaoVolumesFaturadosRelatorioHelperIterator.hasNext()) { VolumesFaturadosRelatorioHelper volumesFaturadosRelatorioHelper = (VolumesFaturadosRelatorioHelper) colecaoVolumesFaturadosRelatorioHelperIterator .next(); // Seta os valores das vari�veis de controle de totaliza��o para // verificar quando deve ser zerado os totalizadores if (idQuadraAnterior == null) { idQuadraAnterior = volumesFaturadosRelatorioHelper .getIdQuadra(); } if (idSetorComercialAnterior == null) { idSetorComercialAnterior = volumesFaturadosRelatorioHelper .getIdSetorComercial(); } if (idLocalidadeAnterior == null) { idLocalidadeAnterior = volumesFaturadosRelatorioHelper .getIdLocalidade(); } // Faz as valida��es dos campos necess�riose e formata a String // para a forma como ir� aparecer no relat�rio // Localidade String localidade = ""; if (volumesFaturadosRelatorioHelper.getIdLocalidade() != null) { localidade = volumesFaturadosRelatorioHelper .getIdLocalidade() + " - " + volumesFaturadosRelatorioHelper .getNomeLocalidade(); // Caso tenha mudado a localidade do im�vel seta a vari�vel // para true, para posteriormente zerar todas as vari�veis // de totaliza��o da localidade if (!idLocalidadeAnterior .equals(volumesFaturadosRelatorioHelper .getIdLocalidade())) { zerarLocalidade = true; } } // Setor Comercial String idSetorComercial = ""; String setorComercial = ""; if (volumesFaturadosRelatorioHelper.getIdSetorComercial() != null) { idSetorComercial = volumesFaturadosRelatorioHelper .getIdSetorComercial().toString(); setorComercial = volumesFaturadosRelatorioHelper .getCodigoSetorComercial() + " - " + volumesFaturadosRelatorioHelper .getNomeSetorComercial(); // Caso tenha mudado o setor comercial do im�vel seta a // vari�vel para true, para posteriormente zerar todas as // vari�veis de totaliza��o do setor comercial if (!idSetorComercialAnterior .equals(volumesFaturadosRelatorioHelper .getIdSetorComercial())) { zerarSetorComercial = true; } } // Quadra String idQuadra = ""; String numeroQuadra = ""; if (volumesFaturadosRelatorioHelper.getNumeroQuadra() != null) { idQuadra = volumesFaturadosRelatorioHelper.getIdQuadra() .toString(); numeroQuadra = volumesFaturadosRelatorioHelper .getNumeroQuadra().toString(); // Caso tenha mudado a quadra do im�vel seta a vari�vel para // true, para posteriormente zerar todas as vari�veis de // totaliza��o da quadra if (!idQuadraAnterior .equals(volumesFaturadosRelatorioHelper .getIdQuadra())) { zerarQuadra = true; } } // Zera os totalizadores da quadra if (zerarQuadra) { mediaTotalQuadra = new Integer("0"); mesAno1TotalQuadra = new Integer("0"); mesAno2TotalQuadra = new Integer("0"); mesAno3TotalQuadra = new Integer("0"); mesAno4TotalQuadra = new Integer("0"); mesAno5TotalQuadra = new Integer("0"); mesAno6TotalQuadra = new Integer("0"); variacao1TotalQuadra = ""; variacao2TotalQuadra = ""; variacao3TotalQuadra = ""; variacao4TotalQuadra = ""; variacao5TotalQuadra = ""; variacao6TotalQuadra = ""; zerarQuadra = false; peloMenosUmDadoMesAno1Quadra = false; peloMenosUmDadoMesAno2Quadra = false; peloMenosUmDadoMesAno3Quadra = false; peloMenosUmDadoMesAno4Quadra = false; peloMenosUmDadoMesAno5Quadra = false; peloMenosUmDadoMesAno6Quadra = false; idQuadraAnterior = volumesFaturadosRelatorioHelper .getIdQuadra(); } // Zera os totalizadores do setor comercial if (zerarSetorComercial) { mediaTotalSetorComercial = new Integer("0"); mesAno1TotalSetorComercial = new Integer("0"); mesAno2TotalSetorComercial = new Integer("0"); mesAno3TotalSetorComercial = new Integer("0"); mesAno4TotalSetorComercial = new Integer("0"); mesAno5TotalSetorComercial = new Integer("0"); mesAno6TotalSetorComercial = new Integer("0"); variacao1TotalSetorComercial = ""; variacao2TotalSetorComercial = ""; variacao3TotalSetorComercial = ""; variacao4TotalSetorComercial = ""; variacao5TotalSetorComercial = ""; variacao6TotalSetorComercial = ""; zerarSetorComercial = false; peloMenosUmDadoMesAno1SetorComercial = false; peloMenosUmDadoMesAno2SetorComercial = false; peloMenosUmDadoMesAno3SetorComercial = false; peloMenosUmDadoMesAno4SetorComercial = false; peloMenosUmDadoMesAno5SetorComercial = false; peloMenosUmDadoMesAno6SetorComercial = false; idSetorComercialAnterior = volumesFaturadosRelatorioHelper .getIdSetorComercial(); } // Zera os totalizadores da localidade if (zerarLocalidade) { mediaTotalLocalidade = new Integer("0"); mesAno1TotalLocalidade = new Integer("0"); mesAno2TotalLocalidade = new Integer("0"); mesAno3TotalLocalidade = new Integer("0"); mesAno4TotalLocalidade = new Integer("0"); mesAno5TotalLocalidade = new Integer("0"); mesAno6TotalLocalidade = new Integer("0"); variacao1TotalLocalidade = ""; variacao2TotalLocalidade = ""; variacao3TotalLocalidade = ""; variacao4TotalLocalidade = ""; variacao5TotalLocalidade = ""; variacao6TotalLocalidade = ""; zerarLocalidade = false; peloMenosUmDadoMesAno1Localidade = false; peloMenosUmDadoMesAno2Localidade = false; peloMenosUmDadoMesAno3Localidade = false; peloMenosUmDadoMesAno4Localidade = false; peloMenosUmDadoMesAno5Localidade = false; peloMenosUmDadoMesAno6Localidade = false; idLocalidadeAnterior = volumesFaturadosRelatorioHelper .getIdLocalidade(); } // Im�vel String idImovel = ""; if (volumesFaturadosRelatorioHelper.getIdImovel() != null) { idImovel = volumesFaturadosRelatorioHelper.getIdImovel() .toString(); } // Nome do Usu�rio String nomeUsuario = ""; if (volumesFaturadosRelatorioHelper.getNomeUsuario() != null) { nomeUsuario = volumesFaturadosRelatorioHelper .getNomeUsuario(); } // Situa��o de �gua String situacaoAgua = ""; if (volumesFaturadosRelatorioHelper.getIdSituacaoAgua() != null) { situacaoAgua = volumesFaturadosRelatorioHelper .getIdSituacaoAgua().toString(); } // Situa��o de Esgoto String situacaoEsgoto = ""; if (volumesFaturadosRelatorioHelper.getIdSituacaoEsgoto() != null) { situacaoEsgoto = volumesFaturadosRelatorioHelper .getIdSituacaoEsgoto().toString(); } // M�dia de Consumo String media = ""; Integer mediaConsumo = null; if (volumesFaturadosRelatorioHelper.getMediaConsumo() != null) { media = volumesFaturadosRelatorioHelper.getMediaConsumo() .toString(); mediaConsumo = volumesFaturadosRelatorioHelper .getMediaConsumo(); mediaTotalQuadra = mediaTotalQuadra + mediaConsumo; mediaTotalSetorComercial = mediaTotalSetorComercial + mediaConsumo; mediaTotalLocalidade = mediaTotalLocalidade + mediaConsumo; } // Consumo e Varia��o M�s/Ano 1 String consumoMesAno1 = ""; String variacao1 = ""; if (volumesFaturadosRelatorioHelper.getConsumoMesAno1() != null) { consumoMesAno1 = volumesFaturadosRelatorioHelper .getConsumoMesAno1().toString(); peloMenosUmDadoMesAno1Quadra = true; peloMenosUmDadoMesAno1SetorComercial = true; peloMenosUmDadoMesAno1Localidade = true; // Soma os valores aos totalizadores de cada grupo mesAno1TotalQuadra = mesAno1TotalQuadra + volumesFaturadosRelatorioHelper .getConsumoMesAno1(); mesAno1TotalSetorComercial = mesAno1TotalSetorComercial + volumesFaturadosRelatorioHelper .getConsumoMesAno1(); mesAno1TotalLocalidade = mesAno1TotalLocalidade + volumesFaturadosRelatorioHelper .getConsumoMesAno1(); // Calcula a varia��o if (mediaConsumo != null && !mediaConsumo.equals(new Integer("0"))) { variacao1 = Util.formatarMoedaReal(new BigDecimal( volumesFaturadosRelatorioHelper .getConsumoMesAno1()).divide( new BigDecimal(mediaConsumo), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Calcula a varia��o dos totalizadores de cada grupo if (mesAno1TotalQuadra != null) { if (mediaTotalQuadra != null && !mediaTotalQuadra.equals(new Integer("0"))) { variacao1TotalQuadra = Util .formatarMoedaReal(new BigDecimal( mesAno1TotalQuadra).divide( new BigDecimal(mediaTotalQuadra), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } if (mesAno1TotalSetorComercial != null) { if (mediaTotalSetorComercial != null && !mediaTotalSetorComercial .equals(new Integer("0"))) { variacao1TotalSetorComercial = Util .formatarMoedaReal(new BigDecimal( mesAno1TotalSetorComercial) .divide( new BigDecimal( mediaTotalSetorComercial), 4, BigDecimal.ROUND_HALF_UP) .subtract(new BigDecimal("1.00")) .multiply(new BigDecimal("100.00"))); } } if (mesAno1TotalLocalidade != null) { if (mediaTotalLocalidade != null && !mediaTotalLocalidade.equals(new Integer("0"))) { variacao1TotalLocalidade = Util .formatarMoedaReal(new BigDecimal( mesAno1TotalLocalidade).divide( new BigDecimal(mediaTotalLocalidade), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Consumo e Varia��o M�s/Ano 2 String consumoMesAno2 = ""; String variacao2 = ""; if (volumesFaturadosRelatorioHelper.getConsumoMesAno2() != null) { consumoMesAno2 = volumesFaturadosRelatorioHelper .getConsumoMesAno2().toString(); peloMenosUmDadoMesAno2Quadra = true; peloMenosUmDadoMesAno2SetorComercial = true; peloMenosUmDadoMesAno2Localidade = true; // Soma os valores aos totalizadores de cada grupo mesAno2TotalQuadra = mesAno2TotalQuadra + volumesFaturadosRelatorioHelper .getConsumoMesAno2(); mesAno2TotalSetorComercial = mesAno2TotalSetorComercial + volumesFaturadosRelatorioHelper .getConsumoMesAno2(); mesAno2TotalLocalidade = mesAno2TotalLocalidade + volumesFaturadosRelatorioHelper .getConsumoMesAno2(); // Calcula a varia��o if (mediaConsumo != null && !mediaConsumo.equals(new Integer("0"))) { variacao2 = Util.formatarMoedaReal(new BigDecimal( volumesFaturadosRelatorioHelper .getConsumoMesAno2()).divide( new BigDecimal(mediaConsumo), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Calcula a varia��o dos totalizadores de cada grupo if (mesAno2TotalQuadra != null) { if (mediaTotalQuadra != null && !mediaTotalQuadra.equals(new Integer("0"))) { variacao2TotalQuadra = Util .formatarMoedaReal(new BigDecimal( mesAno2TotalQuadra).divide( new BigDecimal(mediaTotalQuadra), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } if (mesAno2TotalSetorComercial != null) { if (mediaTotalSetorComercial != null && !mediaTotalSetorComercial .equals(new Integer("0"))) { variacao2TotalSetorComercial = Util .formatarMoedaReal(new BigDecimal( mesAno2TotalSetorComercial) .divide( new BigDecimal( mediaTotalSetorComercial), 4, BigDecimal.ROUND_HALF_UP) .subtract(new BigDecimal("1.00")) .multiply(new BigDecimal("100.00"))); } } if (mesAno2TotalLocalidade != null) { if (mediaTotalLocalidade != null && !mediaTotalLocalidade.equals(new Integer("0"))) { variacao2TotalLocalidade = Util .formatarMoedaReal(new BigDecimal( mesAno2TotalLocalidade).divide( new BigDecimal(mediaTotalLocalidade), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Consumo e Varia��o M�s/Ano 3 String consumoMesAno3 = ""; String variacao3 = ""; if (volumesFaturadosRelatorioHelper.getConsumoMesAno3() != null) { consumoMesAno3 = volumesFaturadosRelatorioHelper .getConsumoMesAno3().toString(); peloMenosUmDadoMesAno3Quadra = true; peloMenosUmDadoMesAno3SetorComercial = true; peloMenosUmDadoMesAno3Localidade = true; // Soma os valores aos totalizadores de cada grupo mesAno3TotalQuadra = mesAno3TotalQuadra + volumesFaturadosRelatorioHelper .getConsumoMesAno3(); mesAno3TotalSetorComercial = mesAno3TotalSetorComercial + volumesFaturadosRelatorioHelper .getConsumoMesAno3(); mesAno3TotalLocalidade = mesAno3TotalLocalidade + volumesFaturadosRelatorioHelper .getConsumoMesAno3(); // Calcula a varia��o if (mediaConsumo != null && !mediaConsumo.equals(new Integer("0"))) { variacao3 = Util.formatarMoedaReal(new BigDecimal( volumesFaturadosRelatorioHelper .getConsumoMesAno3()).divide( new BigDecimal(mediaConsumo), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Calcula a varia��o dos totalizadores de cada grupo if (mesAno3TotalQuadra != null) { if (mediaTotalQuadra != null && !mediaTotalQuadra.equals(new Integer("0"))) { variacao3TotalQuadra = Util .formatarMoedaReal(new BigDecimal( mesAno3TotalQuadra).divide( new BigDecimal(mediaTotalQuadra), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } if (mesAno3TotalSetorComercial != null) { if (mediaTotalSetorComercial != null && !mediaTotalSetorComercial .equals(new Integer("0"))) { variacao3TotalSetorComercial = Util .formatarMoedaReal(new BigDecimal( mesAno3TotalSetorComercial) .divide( new BigDecimal( mediaTotalSetorComercial), 4, BigDecimal.ROUND_HALF_UP) .subtract(new BigDecimal("1.00")) .multiply(new BigDecimal("100.00"))); } } if (mesAno3TotalLocalidade != null) { if (mediaTotalLocalidade != null && !mediaTotalLocalidade.equals(new Integer("0"))) { variacao3TotalLocalidade = Util .formatarMoedaReal(new BigDecimal( mesAno3TotalLocalidade).divide( new BigDecimal(mediaTotalLocalidade), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Consumo e Varia��o M�s/Ano 4 String consumoMesAno4 = ""; String variacao4 = ""; if (volumesFaturadosRelatorioHelper.getConsumoMesAno4() != null) { consumoMesAno4 = volumesFaturadosRelatorioHelper .getConsumoMesAno4().toString(); peloMenosUmDadoMesAno4Quadra = true; peloMenosUmDadoMesAno4SetorComercial = true; peloMenosUmDadoMesAno4Localidade = true; // Soma os valores aos totalizadores de cada grupo mesAno4TotalQuadra = mesAno4TotalQuadra + volumesFaturadosRelatorioHelper .getConsumoMesAno4(); mesAno4TotalSetorComercial = mesAno4TotalSetorComercial + volumesFaturadosRelatorioHelper .getConsumoMesAno4(); mesAno4TotalLocalidade = mesAno4TotalLocalidade + volumesFaturadosRelatorioHelper .getConsumoMesAno4(); // Calcula a varia��o if (mediaConsumo != null && !mediaConsumo.equals(new Integer("0"))) { variacao4 = Util.formatarMoedaReal(new BigDecimal( volumesFaturadosRelatorioHelper .getConsumoMesAno4()).divide( new BigDecimal(mediaConsumo), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Calcula a varia��o dos totalizadores de cada grupo if (mesAno4TotalQuadra != null) { if (mediaTotalQuadra != null && !mediaTotalQuadra.equals(new Integer("0"))) { variacao4TotalQuadra = Util .formatarMoedaReal(new BigDecimal( mesAno4TotalQuadra).divide( new BigDecimal(mediaTotalQuadra), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } if (mesAno4TotalSetorComercial != null) { if (mediaTotalSetorComercial != null && !mediaTotalSetorComercial .equals(new Integer("0"))) { variacao4TotalSetorComercial = Util .formatarMoedaReal(new BigDecimal( mesAno4TotalSetorComercial) .divide( new BigDecimal( mediaTotalSetorComercial), 4, BigDecimal.ROUND_HALF_UP) .subtract(new BigDecimal("1.00")) .multiply(new BigDecimal("100.00"))); } } if (mesAno4TotalLocalidade != null) { if (mediaTotalLocalidade != null && !mediaTotalLocalidade.equals(new Integer("0"))) { variacao4TotalLocalidade = Util .formatarMoedaReal(new BigDecimal( mesAno4TotalLocalidade).divide( new BigDecimal(mediaTotalLocalidade), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Consumo e Varia��o M�s/Ano 5 String consumoMesAno5 = ""; String variacao5 = ""; if (volumesFaturadosRelatorioHelper.getConsumoMesAno5() != null) { consumoMesAno5 = volumesFaturadosRelatorioHelper .getConsumoMesAno5().toString(); peloMenosUmDadoMesAno5Quadra = true; peloMenosUmDadoMesAno5SetorComercial = true; peloMenosUmDadoMesAno5Localidade = true; // Soma os valores aos totalizadores de cada grupo mesAno5TotalQuadra = mesAno5TotalQuadra + volumesFaturadosRelatorioHelper .getConsumoMesAno5(); mesAno5TotalSetorComercial = mesAno5TotalSetorComercial + volumesFaturadosRelatorioHelper .getConsumoMesAno5(); mesAno5TotalLocalidade = mesAno5TotalLocalidade + volumesFaturadosRelatorioHelper .getConsumoMesAno5(); // Calcula a varia��o if (mediaConsumo != null && !mediaConsumo.equals(new Integer("0"))) { variacao5 = Util.formatarMoedaReal(new BigDecimal( volumesFaturadosRelatorioHelper .getConsumoMesAno5()).divide( new BigDecimal(mediaConsumo), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Calcula a varia��o dos totalizadores de cada grupo if (mesAno5TotalQuadra != null) { if (mediaTotalQuadra != null && !mediaTotalQuadra.equals(new Integer("0"))) { variacao5TotalQuadra = Util .formatarMoedaReal(new BigDecimal( mesAno5TotalQuadra).divide( new BigDecimal(mediaTotalQuadra), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } if (mesAno5TotalSetorComercial != null) { if (mediaTotalSetorComercial != null && !mediaTotalSetorComercial .equals(new Integer("0"))) { variacao5TotalSetorComercial = Util .formatarMoedaReal(new BigDecimal( mesAno5TotalSetorComercial) .divide( new BigDecimal( mediaTotalSetorComercial), 4, BigDecimal.ROUND_HALF_UP) .subtract(new BigDecimal("1.00")) .multiply(new BigDecimal("100.00"))); } } if (mesAno5TotalLocalidade != null) { if (mediaTotalLocalidade != null && !mediaTotalLocalidade.equals(new Integer("0"))) { variacao5TotalLocalidade = Util .formatarMoedaReal(new BigDecimal( mesAno5TotalLocalidade).divide( new BigDecimal(mediaTotalLocalidade), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Consumo e Varia��o M�s/Ano 6 String consumoMesAno6 = ""; String variacao6 = ""; if (volumesFaturadosRelatorioHelper.getConsumoMesAno6() != null) { consumoMesAno6 = volumesFaturadosRelatorioHelper .getConsumoMesAno6().toString(); peloMenosUmDadoMesAno6Quadra = true; peloMenosUmDadoMesAno6SetorComercial = true; peloMenosUmDadoMesAno6Localidade = true; // Soma os valores aos totalizadores de cada grupo mesAno6TotalQuadra = mesAno6TotalQuadra + volumesFaturadosRelatorioHelper .getConsumoMesAno6(); mesAno6TotalSetorComercial = mesAno6TotalSetorComercial + volumesFaturadosRelatorioHelper .getConsumoMesAno6(); mesAno6TotalLocalidade = mesAno6TotalLocalidade + volumesFaturadosRelatorioHelper .getConsumoMesAno6(); // Calcula a varia��o if (mediaConsumo != null && !mediaConsumo.equals(new Integer("0"))) { variacao6 = Util.formatarMoedaReal(new BigDecimal( volumesFaturadosRelatorioHelper .getConsumoMesAno6()).divide( new BigDecimal(mediaConsumo), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Calcula a varia��o dos totalizadores de cada grupo if (mesAno6TotalQuadra != null) { if (mediaTotalQuadra != null && !mediaTotalQuadra.equals(new Integer("0"))) { variacao6TotalQuadra = Util .formatarMoedaReal(new BigDecimal( mesAno6TotalQuadra).divide( new BigDecimal(mediaTotalQuadra), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } if (mesAno6TotalSetorComercial != null) { if (mediaTotalSetorComercial != null && !mediaTotalSetorComercial .equals(new Integer("0"))) { variacao6TotalSetorComercial = Util .formatarMoedaReal(new BigDecimal( mesAno6TotalSetorComercial) .divide( new BigDecimal( mediaTotalSetorComercial), 4, BigDecimal.ROUND_HALF_UP) .subtract(new BigDecimal("1.00")) .multiply(new BigDecimal("100.00"))); } } if (mesAno6TotalLocalidade != null) { if (mediaTotalLocalidade != null && !mediaTotalLocalidade.equals(new Integer("0"))) { variacao6TotalLocalidade = Util .formatarMoedaReal(new BigDecimal( mesAno6TotalLocalidade).divide( new BigDecimal(mediaTotalLocalidade), 4, BigDecimal.ROUND_HALF_UP).subtract( new BigDecimal("1.00")).multiply( new BigDecimal("100.00"))); } } // Cria as vari�veis para caso n�o exista nenhum consumo para um totalizador setor vazio String mesAno1TotalQuadraFormatado = ""; String mesAno2TotalQuadraFormatado = ""; String mesAno3TotalQuadraFormatado = ""; String mesAno4TotalQuadraFormatado = ""; String mesAno5TotalQuadraFormatado = ""; String mesAno6TotalQuadraFormatado = ""; String mesAno1TotalSetorComercialFormatado = ""; String mesAno2TotalSetorComercialFormatado = ""; String mesAno3TotalSetorComercialFormatado = ""; String mesAno4TotalSetorComercialFormatado = ""; String mesAno5TotalSetorComercialFormatado = ""; String mesAno6TotalSetorComercialFormatado = ""; String mesAno1TotalLocalidadeFormatado = ""; String mesAno2TotalLocalidadeFormatado = ""; String mesAno3TotalLocalidadeFormatado = ""; String mesAno4TotalLocalidadeFormatado = ""; String mesAno5TotalLocalidadeFormatado = ""; String mesAno6TotalLocalidadeFormatado = ""; // Verifica se deve ser alterado o valor dos totalizadores de quadra de 0 para vazio if (peloMenosUmDadoMesAno1Quadra) { mesAno1TotalQuadraFormatado = mesAno1TotalQuadra.toString(); } else { variacao1TotalQuadra = ""; } if (peloMenosUmDadoMesAno2Quadra) { mesAno2TotalQuadraFormatado = mesAno2TotalQuadra.toString(); } else { variacao2TotalQuadra = ""; } if (peloMenosUmDadoMesAno3Quadra) { mesAno3TotalQuadraFormatado = mesAno3TotalQuadra.toString(); } else { variacao3TotalQuadra = ""; } if (peloMenosUmDadoMesAno4Quadra) { mesAno4TotalQuadraFormatado = mesAno4TotalQuadra.toString(); } else { variacao4TotalQuadra = ""; } if (peloMenosUmDadoMesAno5Quadra) { mesAno5TotalQuadraFormatado = mesAno5TotalQuadra.toString(); } else { variacao5TotalQuadra = ""; } if (peloMenosUmDadoMesAno6Quadra) { mesAno6TotalQuadraFormatado = mesAno6TotalQuadra.toString(); } else { variacao6TotalQuadra = ""; } // Verifica se deve ser alterado o valor dos totalizadores de setor comercial de 0 para vazio if (peloMenosUmDadoMesAno1SetorComercial) { mesAno1TotalSetorComercialFormatado = mesAno1TotalSetorComercial.toString(); } else { variacao1TotalSetorComercial = ""; } if (peloMenosUmDadoMesAno2SetorComercial) { mesAno2TotalSetorComercialFormatado = mesAno2TotalSetorComercial.toString(); } else { variacao2TotalSetorComercial = ""; } if (peloMenosUmDadoMesAno3SetorComercial) { mesAno3TotalSetorComercialFormatado = mesAno3TotalSetorComercial.toString(); } else { variacao3TotalSetorComercial = ""; } if (peloMenosUmDadoMesAno4SetorComercial) { mesAno4TotalSetorComercialFormatado = mesAno4TotalSetorComercial.toString(); } else { variacao4TotalSetorComercial = ""; } if (peloMenosUmDadoMesAno5SetorComercial) { mesAno5TotalSetorComercialFormatado = mesAno5TotalSetorComercial.toString(); } else { variacao5TotalSetorComercial = ""; } if (peloMenosUmDadoMesAno6SetorComercial) { mesAno6TotalSetorComercialFormatado = mesAno6TotalSetorComercial.toString(); } else { variacao6TotalSetorComercial = ""; } // Verifica se deve ser alterado o valor dos totalizadores de localidade de 0 para vazio if (peloMenosUmDadoMesAno1Localidade) { mesAno1TotalLocalidadeFormatado = mesAno1TotalLocalidade.toString(); } else { variacao1TotalLocalidade = ""; } if (peloMenosUmDadoMesAno2Localidade) { mesAno2TotalLocalidadeFormatado = mesAno2TotalLocalidade.toString(); } else { variacao2TotalLocalidade = ""; } if (peloMenosUmDadoMesAno3Localidade) { mesAno3TotalLocalidadeFormatado = mesAno3TotalLocalidade.toString(); } else { variacao3TotalLocalidade = ""; } if (peloMenosUmDadoMesAno4Localidade) { mesAno4TotalLocalidadeFormatado = mesAno4TotalLocalidade.toString(); } else { variacao4TotalLocalidade = ""; } if (peloMenosUmDadoMesAno5Localidade) { mesAno5TotalLocalidadeFormatado = mesAno5TotalLocalidade.toString(); } else { variacao5TotalLocalidade = ""; } if (peloMenosUmDadoMesAno6Localidade) { mesAno6TotalLocalidadeFormatado = mesAno6TotalLocalidade.toString(); } else { variacao6TotalLocalidade = ""; } relatorioBean = new RelatorioVolumesFaturadosBean( // Localidade localidade, // Id do Setor Comercial idSetorComercial, // Setor Comercial setorComercial, // Id da Quadra idQuadra, // N�mero da Quadra numeroQuadra, // Im�vel idImovel, // Usu�rio nomeUsuario, // Situa��o de �gua situacaoAgua, // Situa��o de Esgoto situacaoEsgoto, // M�dia de Consumo media, // Consumo do M�s/Ano 1 consumoMesAno1, // Varia��o do M�s/Ano 1 variacao1, // Consumo do M�s/Ano 2 consumoMesAno2, // Varia��o do M�s/Ano 2 variacao2, // Consumo do M�s/Ano 3 consumoMesAno3, // Varia��o do M�s/Ano 3 variacao3, // Consumo do M�s/Ano 4 consumoMesAno4, // Varia��o do M�s/Ano 4 variacao4, // Consumo do M�s/Ano 5 consumoMesAno5, // Varia��o do M�s/Ano 5 variacao5, // Consumo do M�s/Ano 6 consumoMesAno6, // Varia��o do M�s/Ano 6 variacao6, // Totalizadores da Quadra // M�dia de Consumo mediaTotalQuadra.toString(), // Consumo do M�s/Ano 1 mesAno1TotalQuadraFormatado, // Varia��o do M�s/Ano 1 variacao1TotalQuadra, // Consumo do M�s/Ano 2 mesAno2TotalQuadraFormatado, // Varia��o do M�s/Ano 2 variacao2TotalQuadra, // Consumo do M�s/Ano 3 mesAno3TotalQuadraFormatado, // Varia��o do M�s/Ano 3 variacao3TotalQuadra, // Consumo do M�s/Ano 4 mesAno4TotalQuadraFormatado, // Varia��o do M�s/Ano 4 variacao4TotalQuadra, // Consumo do M�s/Ano 5 mesAno5TotalQuadraFormatado, // Varia��o do M�s/Ano 5 variacao5TotalQuadra, // Consumo do M�s/Ano 6 mesAno6TotalQuadraFormatado, // Varia��o do M�s/Ano 6 variacao6TotalQuadra, // Totalizadores do Setor Comercial // M�dia de Consumo mediaTotalSetorComercial.toString(), // Consumo do M�s/Ano 1 mesAno1TotalSetorComercialFormatado, // Varia��o do M�s/Ano 1 variacao1TotalSetorComercial, // Consumo do M�s/Ano 2 mesAno2TotalSetorComercialFormatado, // Varia��o do M�s/Ano 2 variacao2TotalSetorComercial, // Consumo do M�s/Ano 3 mesAno3TotalSetorComercialFormatado, // Varia��o do M�s/Ano 3 variacao3TotalSetorComercial, // Consumo do M�s/Ano 4 mesAno4TotalSetorComercialFormatado, // Varia��o do M�s/Ano 4 variacao4TotalSetorComercial, // Consumo do M�s/Ano 5 mesAno5TotalSetorComercialFormatado, // Varia��o do M�s/Ano 5 variacao5TotalSetorComercial, // Consumo do M�s/Ano 6 mesAno6TotalSetorComercialFormatado, // Varia��o do M�s/Ano 6 variacao6TotalSetorComercial, // Totalizadores da Localidade // M�dia de Consumo mediaTotalLocalidade.toString(), // Consumo do M�s/Ano 1 mesAno1TotalLocalidadeFormatado, // Varia��o do M�s/Ano 1 variacao1TotalLocalidade, // Consumo do M�s/Ano 2 mesAno2TotalLocalidadeFormatado, // Varia��o do M�s/Ano 2 variacao2TotalLocalidade, // Consumo do M�s/Ano 3 mesAno3TotalLocalidadeFormatado, // Varia��o do M�s/Ano 3 variacao3TotalLocalidade, // Consumo do M�s/Ano 4 mesAno4TotalLocalidadeFormatado, // Varia��o do M�s/Ano 4 variacao4TotalLocalidade, // Consumo do M�s/Ano 5 mesAno5TotalLocalidadeFormatado, // Varia��o do M�s/Ano 5 variacao5TotalLocalidade, // Consumo do M�s/Ano 6 mesAno6TotalLocalidadeFormatado, // Varia��o do M�s/Ano 6 variacao6TotalLocalidade); // adiciona o bean a cole��o 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("mesAno", Util.formatarAnoMesParaMesAno(anoMes)); parametros.put("mesAno1", Util.formatarAnoMesParaMesAno(anoMes1)); parametros.put("mesAno2", Util.formatarAnoMesParaMesAno(anoMes2)); parametros.put("mesAno3", Util.formatarAnoMesParaMesAno(anoMes3)); parametros.put("mesAno4", Util.formatarAnoMesParaMesAno(anoMes4)); parametros.put("mesAno5", Util.formatarAnoMesParaMesAno(anoMes5)); parametros.put("mesAno6", Util.formatarAnoMesParaMesAno(anoMes6)); parametros.put("tipoFormatoRelatorio", "R0637"); // cria uma inst�ncia do dataSource do relat�rio RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans); retorno = gerarRelatorio( ConstantesRelatorios.RELATORIO_VOLUMES_FATURADOS, parametros, ds, tipoFormatoRelatorio); // ------------------------------------ // Grava o relat�rio no sistema try { persistirRelatorioConcluido(retorno, Relatorio.VOLUMES_FATURADOS, 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() { int retorno = 0; return retorno; } public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioVolumesFaturados", this); } }