package gcom.relatorio.faturamento; import gcom.batch.Relatorio; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.faturamento.bean.ContasEmRevisaoRelatorioHelper; 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 RelatorioContasEmRevisaoResumido extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioContasEmRevisaoResumido(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_CONTAS_EM_REVISAO_RESUMIDO); } @Deprecated public RelatorioContasEmRevisaoResumido() { 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 idGerenciaRegional = (Integer) getParametro("idGerenciaRegional"); Integer idUnidadeNegocio = (Integer) getParametro("idUnidadeNegocio"); Integer idLocalidadeInicial = (Integer) getParametro("idLocalidadeInicial"); Integer idLocalidadeFinal = (Integer) getParametro("idLocalidadeFinal"); Integer codigoSetorComercialInicial = (Integer) getParametro("codigoSetorComercialInicial"); Integer codigoSetorComercialFinal = (Integer) getParametro("codigoSetorComercialFinal"); Collection<Integer> colecaoIdsMotivoRevisao = (Collection<Integer>) getParametro("colecaoIdsMotivoRevisao"); Integer idImovelPerfil = (Integer) getParametro("idImovelPerfil"); Integer referenciaInicial = (Integer) getParametro("referenciaInicial"); Integer referenciaFinal = (Integer) getParametro("referenciaFinal"); Integer idCategoria = (Integer) getParametro("idCategoria"); Integer idEsferaPoder = (Integer) getParametro("idEsferaPoder"); 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(); RelatorioContasEmRevisaoBean relatorioBean = null; Collection colecaoContasEmRevisaoRelatorioHelper = fachada .pesquisarDadosRelatorioContasRevisaoResumido(idGerenciaRegional, idUnidadeNegocio, idLocalidadeInicial, idLocalidadeFinal, codigoSetorComercialInicial, codigoSetorComercialFinal, colecaoIdsMotivoRevisao, idImovelPerfil, referenciaInicial, referenciaFinal, idCategoria, idEsferaPoder); // se a cole��o de par�metros da analise n�o for vazia if (colecaoContasEmRevisaoRelatorioHelper != null && !colecaoContasEmRevisaoRelatorioHelper.isEmpty()) { // coloca a cole��o de par�metros da analise no iterator Iterator colecaoContasEmRevisaoRelatorioHelperIterator = colecaoContasEmRevisaoRelatorioHelper .iterator(); // Cria as vari�veis para verificar se os totalizadores de ger�ncia // e elo ser�o mostrados no relat�rio String imprimeElo = null; if (idGerenciaRegional != null) { imprimeElo = "SIM"; } // Cria as vari�veis de totaliza��o Integer qtdeContasTotalLocalidade = new Integer("0"); BigDecimal valorContasTotalLocalidade = new BigDecimal("0.00"); Integer qtdeContasTotalElo = new Integer("0"); BigDecimal valorContasTotalElo = new BigDecimal("0.00"); Integer qtdeContasTotalGerenciaRegional = new Integer("0"); BigDecimal valorContasTotalGerenciaRegional = new BigDecimal("0.00"); Integer idLocalidadeAnterior = null; Integer idMotivoAnterior = null; Integer idEloAnterior = null; Integer idGerenciaRegionalAnterior = null; boolean zerarLocalidade = false; boolean zerarElo = false; boolean zerarGerenciaRegional = false; boolean primeiraVez = true; // la�o para criar a cole��o de par�metros da analise while (colecaoContasEmRevisaoRelatorioHelperIterator.hasNext()) { ContasEmRevisaoRelatorioHelper contasEmRevisaoRelatorioHelper = (ContasEmRevisaoRelatorioHelper) colecaoContasEmRevisaoRelatorioHelperIterator .next(); // Seta os valores das vari�veis de controle de totaliza��o para // verificar quando deve ser zerado os totalizadores if (idLocalidadeAnterior == null) { idLocalidadeAnterior = contasEmRevisaoRelatorioHelper .getIdLocalidade(); } if (idMotivoAnterior == null) { idMotivoAnterior = contasEmRevisaoRelatorioHelper .getIdMotivoRevisao(); } if (idEloAnterior == null) { idEloAnterior = contasEmRevisaoRelatorioHelper .getIdElo(); } if (idGerenciaRegionalAnterior == null) { idGerenciaRegionalAnterior = contasEmRevisaoRelatorioHelper .getIdGerenciaRegional(); } // Cria as vari�veis de motivo e localidade atual e anterior // para ser verificado no relat�rio se deve ser mostrado o valor // da localidade String motivoLocalidadeAnterior = ""; String motivoLocalidade = ""; if (!primeiraVez) { motivoLocalidadeAnterior = motivoLocalidadeAnterior + idMotivoAnterior; motivoLocalidadeAnterior = motivoLocalidadeAnterior + idLocalidadeAnterior; } else { primeiraVez = false; } // Faz as valida��es dos campos necess�riose e formata a String // para a forma como ir� aparecer no relat�rio // Ger�ncia Regional String gerenciaRegional = ""; if (contasEmRevisaoRelatorioHelper.getIdGerenciaRegional() != null) { gerenciaRegional = contasEmRevisaoRelatorioHelper .getIdGerenciaRegional() + " - " + contasEmRevisaoRelatorioHelper .getNomeGerenciaRegional(); // Caso tenha mudado a ger�ncia regional do im�vel seta a // vari�vel para true, para posteriormente zerar todas as // vari�veis de totaliza��o da ger�ncia regional if (!idGerenciaRegionalAnterior .equals(contasEmRevisaoRelatorioHelper .getIdGerenciaRegional())) { zerarGerenciaRegional = true; } // Caso tenha mudado o elo do im�vel seta a vari�vel para // true, para posteriormente zerar todas as vari�veis de // totaliza��o do elo if (!idEloAnterior .equals(contasEmRevisaoRelatorioHelper .getIdElo())) { zerarElo = true; } } // Elo String elo = ""; if (contasEmRevisaoRelatorioHelper.getIdElo() != null) { elo = contasEmRevisaoRelatorioHelper.getIdElo() + " - " + contasEmRevisaoRelatorioHelper.getNomeElo(); } // Motivo da Reclama��o String motivoReclamacao = ""; if (contasEmRevisaoRelatorioHelper.getIdMotivoRevisao() != null) { motivoReclamacao = contasEmRevisaoRelatorioHelper .getIdMotivoRevisao() + " - " + contasEmRevisaoRelatorioHelper .getDescricaoMotivoRevisao(); motivoLocalidade = motivoLocalidade + contasEmRevisaoRelatorioHelper .getIdMotivoRevisao(); // Caso tenha mudado o motivo de revis�o seta a vari�vel // para true, para posteriormente zerar todas as vari�veis // de totaliza��o da localidade if (!idMotivoAnterior .equals(contasEmRevisaoRelatorioHelper .getIdMotivoRevisao())) { zerarLocalidade = true; zerarElo = true; zerarGerenciaRegional = true; } } // Localidade String localidade = ""; if (contasEmRevisaoRelatorioHelper.getIdLocalidade() != null) { localidade = contasEmRevisaoRelatorioHelper .getIdLocalidade() + " - " + contasEmRevisaoRelatorioHelper .getNomeLocalidade(); motivoLocalidade = motivoLocalidade + contasEmRevisaoRelatorioHelper.getIdLocalidade(); // 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(contasEmRevisaoRelatorioHelper .getIdLocalidade())) { zerarLocalidade = true; } } // Zera os totalizadores da localidade if (zerarLocalidade) { qtdeContasTotalLocalidade = new Integer("0"); valorContasTotalLocalidade = new BigDecimal("0.00"); zerarLocalidade = false; idLocalidadeAnterior = contasEmRevisaoRelatorioHelper .getIdLocalidade(); idMotivoAnterior = contasEmRevisaoRelatorioHelper .getIdMotivoRevisao(); } // Zera os totalizadores do elo if (zerarElo) { qtdeContasTotalElo = new Integer("0"); valorContasTotalElo = new BigDecimal("0.00"); zerarElo = false; idEloAnterior = contasEmRevisaoRelatorioHelper .getIdElo(); } // Zera os totalizadores da ger�ncia regional if (zerarGerenciaRegional) { qtdeContasTotalGerenciaRegional = new Integer("0"); valorContasTotalGerenciaRegional = new BigDecimal("0.00"); zerarGerenciaRegional = false; idGerenciaRegionalAnterior = contasEmRevisaoRelatorioHelper .getIdGerenciaRegional(); } // M�s/Ano da Fatura String mesAnoFatura = ""; if (contasEmRevisaoRelatorioHelper.getAnoMesReferenciaConta() != null) { mesAnoFatura = Util .formatarMesAnoReferencia(contasEmRevisaoRelatorioHelper .getAnoMesReferenciaConta()); } // Quantidade de Contas String qtdeContas = ""; if (contasEmRevisaoRelatorioHelper.getQtdeContas() != null) { qtdeContas = contasEmRevisaoRelatorioHelper.getQtdeContas().toString(); qtdeContasTotalLocalidade = qtdeContasTotalLocalidade + contasEmRevisaoRelatorioHelper.getQtdeContas(); qtdeContasTotalElo = qtdeContasTotalElo + contasEmRevisaoRelatorioHelper.getQtdeContas(); qtdeContasTotalGerenciaRegional = qtdeContasTotalGerenciaRegional + contasEmRevisaoRelatorioHelper.getQtdeContas(); } // Valor das Contas String valorConta = ""; if (contasEmRevisaoRelatorioHelper.getValorConta() != null) { valorConta = Util.formatarMoedaReal(contasEmRevisaoRelatorioHelper.getValorConta()); // Soma os valores aos totalizadores de cada grupo valorContasTotalLocalidade = valorContasTotalLocalidade.add(contasEmRevisaoRelatorioHelper.getValorConta()); valorContasTotalElo = valorContasTotalElo.add(contasEmRevisaoRelatorioHelper.getValorConta()); valorContasTotalGerenciaRegional = valorContasTotalGerenciaRegional.add(contasEmRevisaoRelatorioHelper.getValorConta()); } relatorioBean = new RelatorioContasEmRevisaoBean(); relatorioBean.setGerenciaRegional(gerenciaRegional); relatorioBean.setElo(elo); relatorioBean.setLocalidade(localidade); relatorioBean.setMesAnoFatura(mesAnoFatura); relatorioBean.setQtdeContas(qtdeContas); relatorioBean.setValorConta(valorConta); relatorioBean.setMotivoReclamacao(motivoReclamacao); relatorioBean.setQtdeTotalContasEmRevisaoLocalidade(qtdeContasTotalLocalidade.toString()); relatorioBean.setValorTotalContasEmRevisaoLocalidade(Util.formatarMoedaReal(valorContasTotalLocalidade)); relatorioBean.setQtdeTotalContasEmRevisaoElo(qtdeContasTotalElo.toString()); relatorioBean.setValorTotalContasEmRevisaoElo(Util.formatarMoedaReal(valorContasTotalElo)); relatorioBean.setQtdeTotalContasEmRevisaoGerenciaRegional(qtdeContasTotalGerenciaRegional.toString()); relatorioBean.setValorTotalContasEmRevisaoGerenciaRegional(Util.formatarMoedaReal(valorContasTotalGerenciaRegional)); relatorioBean.setImprimeElo(imprimeElo); relatorioBean.setImprimeGerenciaRegional(gerenciaRegional); relatorioBean.setMotivoLocalidadeAnterior(motivoLocalidadeAnterior); relatorioBean.setMotivoLocalidade(motivoLocalidade); // 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(); Integer anoMes = sistemaParametro.getAnoMesFaturamento(); parametros.put("imagem", sistemaParametro.getImagemRelatorio()); parametros.put("mesAno", Util.formatarAnoMesParaMesAno(anoMes)); // cria uma inst�ncia do dataSource do relat�rio RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans); retorno = gerarRelatorio( ConstantesRelatorios.RELATORIO_CONTAS_EM_REVISAO_RESUMIDO, parametros, ds, tipoFormatoRelatorio); // ------------------------------------ // Grava o relat�rio no sistema try { persistirRelatorioConcluido(retorno, Relatorio.CONTAS_EM_REVISAO_RESUMIDO, 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("RelatorioContasEmRevisaoResumido", this); } }