package gcom.relatorio.cadastro; import gcom.batch.Relatorio; import gcom.cadastro.cliente.ClienteImovelSimplificado; import gcom.cadastro.cliente.FiltroClienteImovel; import gcom.cadastro.imovel.FiltroImovelDoacao; import gcom.cadastro.imovel.ImovelDoacao; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; 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 gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; /** * [UC1076] Gerar Relat�rio Atualiza��es Cadastrais Via Internet. * * @author Daniel Alves,Hugo Amorim * @date 28/09/2010,04/10/2010 */ public class RelatorioImoveisDoacoesImovel extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioImoveisDoacoesImovel(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_IMOVEIS_DOACOES_IMOVEL); } @Deprecated public RelatorioImoveisDoacoesImovel() { super(null, ""); } /** * M�todo que executa a tarefa * * @return Object * */ public Object executar() throws TarefaException { // ------------------------------------ Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada(); // ------------------------------------ Fachada fachada = Fachada.getInstancia(); String filtroImovel = (String) getParametro("filtroImovel"); int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); // cole��o de beans do relat�rio List relatorioBeans = new ArrayList(); SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); Collection<ImovelDoacao> colecaoImoveisDoacoes = null; colecaoImoveisDoacoes = pesquisarDoacoes(); RelatorioImoveisDoacoesImovelBean relatorioBean = null; for(ImovelDoacao imovel : colecaoImoveisDoacoes){ relatorioBean = new RelatorioImoveisDoacoesImovelBean(); relatorioBean.setEntidade(imovel.getEntidadeBeneficente().getCliente().getNome()); FiltroClienteImovel filtro = new FiltroClienteImovel(); filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.IMOVEL_ID, imovel.getImovel().getId())); Collection col = fachada.pesquisarClienteImovel(filtro); ClienteImovelSimplificado client = (ClienteImovelSimplificado)Util.retonarObjetoDeColecao(col); relatorioBean.setCliente(client.getCliente().getNome()); relatorioBean.setDataAdesao(imovel.getDataAdesaoAsString()); if(imovel.getDataCancelamentoAsString() != null && !imovel.getDataCancelamentoAsString().equals("")){ relatorioBean.setDataCancelamento(imovel.getDataCancelamentoAsString()); }else{ relatorioBean.setDataCancelamento(" "); } if(imovel.getAnoMesReferenciaInicial() != null && !imovel.getAnoMesReferenciaInicial().equals("")){ relatorioBean.setMesAnoInicio(Util.formatarAnoMesParaMesAno(imovel.getAnoMesReferenciaInicial())); }else{ relatorioBean.setMesAnoInicio(" "); } if(imovel.getAnoMesReferenciaFinal() != null && !imovel.getAnoMesReferenciaFinal().equals("")){ relatorioBean.setMesAnoFinal(Util.formatarAnoMesParaMesAno(imovel.getAnoMesReferenciaFinal())); }else{ relatorioBean.setMesAnoFinal(" "); } relatorioBean.setUsuarioAdesao(imovel.getUsuarioAdesao().getNomeUsuario()); try{ relatorioBean.setUsuarioCancelamento(imovel.getUsuarioCancelamento().getNomeUsuario().toUpperCase()); }catch(NullPointerException e){ relatorioBean.setUsuarioCancelamento(" "); } relatorioBean.setValor(imovel.getValorDoacao()); relatorioBeans.add(relatorioBean); } // valor de retorno byte[] retorno = null; // Par�metros do relat�rio Map<String, String> parametros = new HashMap(); parametros.put("filtroImovel", Util.retornaMatriculaImovelFormatada(new Integer(filtroImovel))); parametros.put("imagem", sistemaParametro.getImagemRelatorio()); parametros.put("tipoRelatorio", "R1174"); RelatorioDataSource ds = new RelatorioDataSource((java.util.List) relatorioBeans ); retorno = this.gerarRelatorio( ConstantesRelatorios.RELATORIO_IMOVEIS_DOACOES_IMOVEL, parametros, ds, tipoFormatoRelatorio); // ------------------------------------ // Grava o relat�rio no sistema try { persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_IMOVEIS_DOACOES_IMOVEL, 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() { Integer retorno = new Integer(0); retorno = pesquisarDoacoes().size(); if(retorno.intValue() == 0 ){ throw new ActionServletException("atencao.pesquisa.nenhumresultado"); } return retorno; } private Collection pesquisarDoacoes(){ String filtroImovel = (String) getParametro("filtroImovel"); Collection colecaoImoveisDoacoes = null; FiltroImovelDoacao filtro = new FiltroImovelDoacao(); filtro.adicionarParametro(new ParametroSimples(FiltroImovelDoacao.ID_IMOVEL, filtroImovel)); filtro.adicionarCaminhoParaCarregamentoEntidade("entidadeBeneficente.cliente"); filtro.adicionarCaminhoParaCarregamentoEntidade("usuarioAdesao"); filtro.adicionarCaminhoParaCarregamentoEntidade("usuarioCancelamento"); filtro.adicionarCaminhoParaCarregamentoEntidade("imovel"); filtro.setCampoOrderBy("entidadeBeneficente.cliente.nome"); filtro.setCampoOrderBy("dataAdesao"); colecaoImoveisDoacoes = Fachada.getInstancia().pesquisar(filtro, ImovelDoacao.class.getName()); return colecaoImoveisDoacoes; } public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioImoveisDoacoesImovel", this); } }