package gcom.relatorio.arrecadacao; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import gcom.arrecadacao.ArrecadacaoForma; import gcom.arrecadacao.Arrecadador; import gcom.arrecadacao.aviso.AvisoBancario; import gcom.batch.Relatorio; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.DocumentoTipo; import gcom.fachada.Fachada; import gcom.faturamento.debito.DebitoTipo; 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.agendadortarefas.AgendadorTarefas; /** * [UC1217] Gerar relatorio de transferencia de pagamento * @author Raimundo Martins * @date 24/08/2011 */ public class RelatorioTransferenciaPagamento extends TarefaRelatorio{ private static final long serialVersionUID = 1L; public RelatorioTransferenciaPagamento(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_TRANSFERENCIA_PAGAMENTO); } @Deprecated public RelatorioTransferenciaPagamento() { super(null, ""); } @Override public int calcularTotalRegistrosRelatorio() { return 2; } @Override public Object executar() throws TarefaException { byte[] retorno = null; SistemaParametro sistemaParametro = Fachada.getInstancia().pesquisarParametrosDoSistema(); Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada(); Arrecadador arrecadador = (Arrecadador) this.getParametro("arrecadador"); String periodoIni = (String)this.getParametro("periodoInicial"); String periodoFin = (String) this.getParametro("periodoFinal"); AvisoBancario avisoBancario = (AvisoBancario) this.getParametro("avisoBancario"); ArrecadacaoForma arrecadacaoForma = (ArrecadacaoForma) this.getParametro("arrecadacaoForma"); DebitoTipo debitoTipo = (DebitoTipo) this.getParametro("tipoDebito"); DocumentoTipo documentoTipo = (DocumentoTipo) this.getParametro("tipoDocumento"); int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); List<RelatorioTranferenciaPagamentoBean> colecaoBean = new ArrayList(); List<RelatorioTranferenciaPagamentoBean> colecaoBeanTemp = new ArrayList(); Map parametros = new HashMap(); //parametros.put("arrecadador",arrecadador.getCliente().getNome()); parametros.put("periodoIni", periodoIni); parametros.put("periodoFin", periodoFin); parametros.put("imagem", sistemaParametro.getImagemRelatorio()); colecaoBeanTemp = Fachada.getInstancia().pesquisarTransfereciasPagamento(arrecadador, periodoIni, periodoFin, avisoBancario, arrecadacaoForma, debitoTipo, documentoTipo); Iterator iter = colecaoBeanTemp.iterator(); if(iter.hasNext()){ while(iter.hasNext()){ RelatorioTranferenciaPagamentoBean relatorioTranferenciaPagamentoBean = (RelatorioTranferenciaPagamentoBean) iter.next(); Categoria cat = Fachada.getInstancia().obterPrincipalCategoriaImovel( Integer.parseInt(relatorioTranferenciaPagamentoBean.getMatricula())); Iterator clientesImovel = Fachada.getInstancia().obterClienteImovelporRelacaoTipo( Integer.parseInt(relatorioTranferenciaPagamentoBean.getMatricula()), ClienteRelacaoTipo.USUARIO.intValue()).iterator(); ClienteImovel clienteImovel = (ClienteImovel) clientesImovel.next(); relatorioTranferenciaPagamentoBean.setNomeCliente(clienteImovel.getCliente().getNome()); relatorioTranferenciaPagamentoBean.setCategoria(cat.getDescricao()); colecaoBean.add(relatorioTranferenciaPagamentoBean); } parametros.put("qtdTotalPagamento", colecaoBean.size()); RelatorioDataSource ds = new RelatorioDataSource(colecaoBean); retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_TRANSFERENCIA_PAGAMENTO,parametros, ds, tipoFormatoRelatorio); } else{ colecaoBean.add(new RelatorioTranferenciaPagamentoBean()); RelatorioDataSource ds = new RelatorioDataSource(colecaoBean); this.nomeRelatorio = ConstantesRelatorios.RELATORIO_VAZIO; retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_VAZIO, parametros, ds, tipoFormatoRelatorio); } try { persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_TRANSFERENCIA_PAGAMENTO, idFuncionalidadeIniciada); } catch (ControladorException e) { e.printStackTrace(); throw new TarefaException("Erro ao gravar relat�rio no sistema", e); } return retorno; } @Override public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioTransferenciaPagamento", this); } }