package gcom.relatorio.arrecadacao; import gcom.arrecadacao.Arrecadador; import gcom.arrecadacao.ArrecadadorMovimento; import gcom.arrecadacao.aviso.AvisoBancario; import gcom.arrecadacao.aviso.bean.AvisoBancarioHelper; import gcom.arrecadacao.banco.ContaBancaria; import gcom.batch.Relatorio; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; 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.ConstantesSistema; 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 bairro manter de �gua * * @author S�vio Luiz * @created 11 de Julho de 2005 */ public class RelatorioManterAvisoBancario extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioManterAvisoBancario(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_AVISO_BANCARIO_MANTER); } @Deprecated public RelatorioManterAvisoBancario() { 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(); // ------------------------------------ AvisoBancarioHelper avisoBancarioHelper = (AvisoBancarioHelper) getParametro("avisoBancarioHelper"); AvisoBancarioHelper avisoBancarioHelperParametros = (AvisoBancarioHelper) getParametro("avisoBancarioHelperParametros"); Arrecadador arrecadadorParametros = (Arrecadador) getParametro("arrecadadorParametros"); ContaBancaria contaBancariaParametros = (ContaBancaria) getParametro("contaBancariaParametros"); ArrecadadorMovimento arrecadadorMovimentoParametros = (ArrecadadorMovimento) getParametro("arrecadadorMovimentoParametros"); String avisosAbertosFechadosParametros = (String) getParametro("avisosAbertosFechadosParametros"); int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); // valor de retorno byte[] retorno = null; // cole��o de beans do relat�rio List relatorioAvisosBancariosBeans = new ArrayList(); Fachada fachada = Fachada.getInstancia(); RelatorioManterAvisoBancarioBean relatorioAvisoBancarioBean = null; Collection colecaoAvisosBancarios = fachada .pesquisarAvisoBancarioRelatorio(avisoBancarioHelper); // se a cole��o de par�metros da analise n�o for vazia if (colecaoAvisosBancarios != null && !colecaoAvisosBancarios.isEmpty()) { // coloca a cole��o de par�metros da analise no iterator Iterator colecaoAvisosBancariosIterator = colecaoAvisosBancarios .iterator(); // BigDecimal totalDeducoes = new BigDecimal("0.00"); // la�o para criar a cole��o de par�metros da analise while (colecaoAvisosBancariosIterator.hasNext()) { AvisoBancarioRelatorioHelper avisoBancarioRelatorioHelper = (AvisoBancarioRelatorioHelper) colecaoAvisosBancariosIterator .next(); BigDecimal totalDeducoes = new BigDecimal("0.00"); Collection colecaoDeducoes = fachada .pesquisarAvisoDeducoesAvisoBancarioRelatorio(avisoBancarioRelatorioHelper .getIdAvisoBancario()); Collection colecaoRelatorioAvisoBancarioDeducoesBeans = new ArrayList(); if (colecaoDeducoes != null && !colecaoDeducoes.isEmpty()) { Iterator colecaoDeducoesIterator = colecaoDeducoes .iterator(); RelatorioManterAvisoBancarioDeducoesBean relatorioDeducoesBean = null; while (colecaoDeducoesIterator.hasNext()) { DeducoesRelatorioHelper deducoesRelatorioHelper = (DeducoesRelatorioHelper) colecaoDeducoesIterator .next(); totalDeducoes = totalDeducoes .add(deducoesRelatorioHelper.getValorDeducao()); relatorioDeducoesBean = new RelatorioManterAvisoBancarioDeducoesBean( // Tipo da Dedu��o deducoesRelatorioHelper.getTipo(), // Valor da Dedu��o Util.formatarMoedaReal(deducoesRelatorioHelper .getValorDeducao())); // adiciona o bean a cole��o colecaoRelatorioAvisoBancarioDeducoesBeans .add(relatorioDeducoesBean); } } Collection colecaoAcertos = fachada .pesquisarAvisoAcertosAvisoBancarioRelatorio(avisoBancarioRelatorioHelper .getIdAvisoBancario()); Collection colecaoRelatorioAvisoBancarioAcertosBeans = new ArrayList(); if (colecaoAcertos != null && !colecaoAcertos.isEmpty()) { Iterator colecaoAcertosIterator = colecaoAcertos.iterator(); RelatorioManterAvisoBancarioAcertosBean relatorioAcetosBean = null; while (colecaoAcertosIterator.hasNext()) { AcertosRelatorioHelper acertosRelatorioHelper = (AcertosRelatorioHelper) colecaoAcertosIterator .next(); relatorioAcetosBean = new RelatorioManterAvisoBancarioAcertosBean( // N�mero Documento "", // Banco acertosRelatorioHelper.getBanco(), // Agencia acertosRelatorioHelper.getAgencia().toString(), // N�mero Conta acertosRelatorioHelper.getNumeroConta(), // Data Util.formatarData(acertosRelatorioHelper .getDataAcerto()), // Valor Util.formatarMoedaReal(acertosRelatorioHelper .getValorAcerto()), // Tipo acertosRelatorioHelper.getTipo().shortValue() == AvisoBancario.INDICADOR_CREDITO .shortValue() ? "CR�DITO" : "D�BITO" ); // adiciona o bean a cole��o colecaoRelatorioAvisoBancarioAcertosBeans .add(relatorioAcetosBean); } } relatorioAvisoBancarioBean = new RelatorioManterAvisoBancarioBean( // Id Aviso Banc�rio avisoBancarioRelatorioHelper.getIdAvisoBancario() .toString(), // Arrecadador avisoBancarioRelatorioHelper.getNomeArrecadador(), // Data Lan�amento Util.formatarData(avisoBancarioRelatorioHelper .getDataLancamento()), // Sequencial avisoBancarioRelatorioHelper.getSequencial() == null ? "" : avisoBancarioRelatorioHelper.getSequencial() .toString(), // Tipo avisoBancarioRelatorioHelper.getTipo().shortValue() == AvisoBancario.INDICADOR_CREDITO .shortValue() ? "CR�DITO" : "D�BITO", // N�mero Documento avisoBancarioRelatorioHelper.getNumeroDocumento() .toString(), // Banco avisoBancarioRelatorioHelper.getBanco(), // Ag�ncia avisoBancarioRelatorioHelper.getAgencia().toString(), // N�mero Conta avisoBancarioRelatorioHelper.getNumeroConta(), // Data Realiza��o Util.formatarData(avisoBancarioRelatorioHelper .getDataRealizacao()), // Total Arrecada��o avisoBancarioRelatorioHelper .getTotalArrecadacao(), // Total Dedu��es totalDeducoes, // Total Devolu��o avisoBancarioRelatorioHelper .getTotalDevolucao(), // Valor Aviso avisoBancarioRelatorioHelper .getValorAviso(), // Cole��o de Dedu��es colecaoRelatorioAvisoBancarioDeducoesBeans, // Cole��o de Acertos colecaoRelatorioAvisoBancarioAcertosBeans); // adiciona o bean a cole��o relatorioAvisosBancariosBeans.add(relatorioAvisoBancarioBean); } } // __________________________________________________________________ // 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()); // Id Arrecadador if (arrecadadorParametros != null) { parametros.put("idArrecadador", arrecadadorParametros.getCodigoAgente() .toString()); } else { parametros.put("idArrecadador", ""); } // Nome Arrecadador if (arrecadadorParametros != null) { parametros.put("nomeArrecadador", arrecadadorParametros .getCliente().getNome()); } else { parametros.put("nomeArrecadador", ""); } // Per�odo Lan�amento if (avisoBancarioHelperParametros.getDataLancamentoInicial() != null) { parametros.put("periodoLancamentoInicial", Util .formatarData(avisoBancarioHelperParametros .getDataLancamentoInicial())); } else { parametros.put("periodoLancamentoInicial", null); } if (avisoBancarioHelperParametros.getDataLancamentoFinal() != null) { parametros.put("periodoLancamentoFinal", Util .formatarData(avisoBancarioHelperParametros .getDataLancamentoFinal())); } else { parametros.put("periodoLancamentoFinal", null); } // Tipo Aviso String tipoAviso = ""; if (avisoBancarioHelperParametros.getTipoAviso() != null && !avisoBancarioHelperParametros.getTipoAviso().equals("")) { if (avisoBancarioHelperParametros.getTipoAviso().equals( new Short("1"))) { tipoAviso = "Cr�dito"; } else if (avisoBancarioHelperParametros.getTipoAviso().equals( new Short("2"))) { tipoAviso = "D�bito"; } } parametros.put("tipoAviso", tipoAviso); // Conta Banc�ria if (contaBancariaParametros != null) { parametros.put("contaBancaria", contaBancariaParametros .getAgencia().getBanco().getId().toString() + contaBancariaParametros.getAgencia().getCodigoAgencia() .toString() + contaBancariaParametros.getNumeroConta()); } else { parametros.put("contaBancaria", ""); } // Movimento if (arrecadadorMovimentoParametros != null) { parametros.put("movimento", arrecadadorMovimentoParametros .getCodigoBanco().toString() + arrecadadorMovimentoParametros.getCodigoRemessa() .toString() + arrecadadorMovimentoParametros .getDescricaoIdentificacaoServico() + arrecadadorMovimentoParametros .getNumeroSequencialArquivo().toString()); } else { parametros.put("movimento", ""); } // Per�odo Arrecada��o if (avisoBancarioHelperParametros .getAnoMesReferenciaArrecadacaoInicial() != 0) { parametros.put("periodoArrecadacaoInicial", Util .formatarAnoMesParaMesAno(avisoBancarioHelperParametros .getAnoMesReferenciaArrecadacaoInicial())); } else { parametros.put("periodoArrecadacaoInicial", null); } if (avisoBancarioHelperParametros.getAnoMesReferenciaArrecadacaoFinal() != 0) { parametros.put("periodoArrecadacaoFinal", Util .formatarAnoMesParaMesAno(avisoBancarioHelperParametros .getAnoMesReferenciaArrecadacaoFinal())); } else { parametros.put("periodoArrecadacaoFinal", null); } // Per�odo Previs�o Cr�dito/D�bito if (avisoBancarioHelperParametros.getDataPrevistaInicial() != null) { parametros.put("periodoPrevisaoCreditoDebitoInicial", Util .formatarData(avisoBancarioHelperParametros .getDataPrevistaInicial())); } else { parametros.put("periodoPrevisaoCreditoDebitoInicial", null); } if (avisoBancarioHelperParametros.getDataPrevistaFinal() != null) { parametros.put("periodoPrevisaoCreditoDebitoFinal", Util .formatarData(avisoBancarioHelperParametros .getDataPrevistaFinal())); } else { parametros.put("periodoPrevisaoCreditoDebitoFinal", null); } // Per�odo Realiza��o Cr�dito/D�bito if (avisoBancarioHelperParametros.getDataRealizadaInicial() != null) { parametros.put("periodoRealizacaoCreditoDebitoInicial", Util .formatarData(avisoBancarioHelperParametros .getDataRealizadaInicial())); } else { parametros.put("periodoRealizacaoCreditoDebitoInicial", null); } if (avisoBancarioHelperParametros.getDataRealizadaFinal() != null) { parametros.put("periodoRealizacaoCreditoDebitoFinal", Util .formatarData(avisoBancarioHelperParametros .getDataRealizadaFinal())); } else { parametros.put("periodoRealizacaoCreditoDebitoFinal", null); } // Intervalo Valor Realizado if (avisoBancarioHelperParametros.getValorRealizadoInicial() != null) { parametros.put("intervaloValorRealizadoInicial", Util .formatarMoedaReal(avisoBancarioHelperParametros .getValorRealizadoInicial())); } else { parametros.put("intervaloValorRealizadoInicial", null); } if (avisoBancarioHelperParametros.getValorRealizadoFinal() != null) { parametros.put("intervaloValorRealizadoFinal", Util .formatarMoedaReal(avisoBancarioHelperParametros .getValorRealizadoFinal())); } else { parametros.put("intervaloValorRealizadoInicial", null); } // Avisos Abertos/Fechados String avisosAbertosFechados = ""; if (avisosAbertosFechadosParametros != null && !avisosAbertosFechadosParametros.equals("") && !avisosAbertosFechadosParametros.equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { if (avisosAbertosFechadosParametros.equals("" + ConstantesSistema.MOVIMENTO_ABERTO)) { avisosAbertosFechados = "Aberto"; } else if (avisosAbertosFechadosParametros.equals("" + ConstantesSistema.MOVIMENTO_FECHADO)) { avisosAbertosFechados = "Fechado"; } } parametros.put("avisosAbertosFechados", avisosAbertosFechados); // cria uma inst�ncia do dataSource do relat�rio RelatorioDataSource ds = new RelatorioDataSource( relatorioAvisosBancariosBeans); retorno = gerarRelatorio( ConstantesRelatorios.RELATORIO_AVISO_BANCARIO_MANTER, parametros, ds, tipoFormatoRelatorio); // ------------------------------------ // Grava o relat�rio no sistema try { persistirRelatorioConcluido(retorno, Relatorio.MANTER_AVISO_BANCARIO, 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; Fachada fachada = Fachada.getInstancia(); AvisoBancarioHelper avisoBancarioHelper = (AvisoBancarioHelper) getParametro("avisoBancarioHelper"); Collection colecaoAvisosBancario = fachada.filtrarAvisoBancarioAbertoFechado(avisoBancarioHelper); AvisoBancarioHelper objetoAvisoBancario = null; AvisoBancarioHelper avisoBancarioHelperNovo = null; Iterator iterator = colecaoAvisosBancario.iterator(); while (iterator.hasNext()) { objetoAvisoBancario = (AvisoBancarioHelper) iterator.next(); avisoBancarioHelperNovo = new AvisoBancarioHelper(); avisoBancarioHelperNovo .setAvisoBancario(objetoAvisoBancario.getAvisoBancario()); avisoBancarioHelperNovo .setTipoAviso(avisoBancarioHelper.getTipoAviso()); } retorno = Fachada.getInstancia() .filtrarAvisoBancarioAbertoFechadoCount(avisoBancarioHelper,avisoBancarioHelperNovo); return retorno; } @Override public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioManterAvisoBancario", this); } }