package gcom.relatorio.cadastro.imovel; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.cliente.ClienteImovelEconomia; import gcom.cadastro.cliente.ClienteImovelFimRelacaoMotivo; import gcom.cadastro.cliente.FiltroClienteImovelFimRelacaoMotivo; import gcom.cadastro.cliente.bean.ClienteImovelEconomiaHelper; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.imovel.bean.ConsultarClienteRelacaoClienteImovelHelper; import gcom.cadastro.imovel.bean.ImovelSubcategoriaHelper; import gcom.fachada.Fachada; import gcom.gui.cadastro.imovel.ConsultarRelacaoClienteImovelActionForm; 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.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; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class RelatorioClientesRelacionadosImovel extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioClientesRelacionadosImovel(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_CLIENTES_RELACIONADOS_IMOVEL); } public Object executar() throws TarefaException { List<RelatorioClientesRelacionadosImovelBean> relatorioBeans = new ArrayList<RelatorioClientesRelacionadosImovelBean>(); relatorioBeans.add( criarRelatorioBean() ); RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans); Map<String, Object> parametros = criarParametrosRelatorio(); int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); return this.gerarRelatorio(ConstantesRelatorios.RELATORIO_CLIENTES_RELACIONADOS_IMOVEL, parametros,ds, tipoFormatoRelatorio); } /** * Esse m�todo cria o RelatorioBean atrav�s dos parametros * enviado a este objeto. * *@since 11/09/2009 *@author Marlon Patrick */ private RelatorioClientesRelacionadosImovelBean criarRelatorioBean() { Imovel imovel = (Imovel) getParametro("imovel"); Collection<ClienteImovel> colecaoClienteImovel = (Collection<ClienteImovel>) getParametro("colecaoClienteImovel"); Collection<ImovelSubcategoriaHelper> colecaoImovelSubCategoriaHelper = (Collection<ImovelSubcategoriaHelper>) getParametro("colecaoImovelSubCategoriaHelper"); RelatorioClientesRelacionadosImovelBean relatorioBean = new RelatorioClientesRelacionadosImovelBean(); relatorioBean.setInscricaoImovel(imovel.getInscricaoFormatada()); relatorioBean.setMatriculaImovel(imovel.getMatriculaFormatada()); relatorioBean.setEnderecoImovel(imovel.getEnderecoFormatado()); if(imovel.getLigacaoAguaSituacao()!=null){ relatorioBean.setSituacaoAguaImovel(imovel.getLigacaoAguaSituacao().getDescricao()); } if(imovel.getLigacaoEsgotoSituacao()!=null){ relatorioBean.setSituacaoEsgotoImovel(imovel.getLigacaoEsgotoSituacao().getDescricao()); } if( !Util.isVazioOrNulo(colecaoClienteImovel)){ Collection<ConsultarClienteRelacaoClienteImovelHelper> colecaoHelpers = new ArrayList<ConsultarClienteRelacaoClienteImovelHelper>(); for(ClienteImovel clienteImovel : colecaoClienteImovel){ ConsultarClienteRelacaoClienteImovelHelper clienteImovelHelper= new ConsultarClienteRelacaoClienteImovelHelper(); clienteImovelHelper.setClienteImovel(clienteImovel); colecaoHelpers.add(clienteImovelHelper); } relatorioBean.setColecaoClienteImovel( new JRBeanCollectionDataSource(colecaoHelpers)); } if( !Util.isVazioOrNulo(colecaoImovelSubCategoriaHelper)){ for(ImovelSubcategoriaHelper subCatHelper : colecaoImovelSubCategoriaHelper){ subCatHelper.setColecaoClienteImovelEconomiaHelper( new JRBeanCollectionDataSource(criarColecaoClienteImovelEconomiaHelper(subCatHelper.getColecaoImovelEconomia())) ); } relatorioBean.setColecaoImovelSubcategoriaHelper( new JRBeanCollectionDataSource(colecaoImovelSubCategoriaHelper)); } return relatorioBean; } /** * Esse m�todo cria os parametros do relatorio com base * nos parametros passados para esse objeto. * *@since 11/09/2009 *@author Marlon Patrick */ private Map<String, Object> criarParametrosRelatorio() { ConsultarRelacaoClienteImovelActionForm form = (ConsultarRelacaoClienteImovelActionForm) getParametro("consultarRelacaoClienteImovelActionForm"); Map<String,Object> parametros = new HashMap<String,Object>(); parametros.put("imagem", Fachada.getInstancia(). pesquisarParametrosDoSistema().getImagemRelatorio()); if( Util.verificarNaoVazio(form.getIdImovel()) ){ parametros.put("idImovelFiltro",form.getIdImovel()); } if(Util.verificarNaoVazio(form.getPeriodoInicialDataInicioRelacao())){ parametros.put("periodoInicioRelacaoFiltro", form.getPeriodoInicialDataInicioRelacao() + " - " + form.getPeriodoFinalDataInicioRelacao()); } if(Util.verificarNaoVazio(form.getPeriodoInicialDataFimRelacao())){ parametros.put("periodoFimRelacaoFiltro", form.getPeriodoInicialDataFimRelacao() + " - " + form.getPeriodoFinalDataFimRelacao()); } if(Util.verificarNaoVazio(form.getSituacaoRelacao())){ parametros.put("situacaoRelacaoFiltro",form.getSituacaoRelacao()); } if(Util.verificarNaoVazio(form.getIdClienteImovelFimRelacaoMotivo())){ FiltroClienteImovelFimRelacaoMotivo filtroClienteImovelFimRelacaoMotivo = new FiltroClienteImovelFimRelacaoMotivo(); filtroClienteImovelFimRelacaoMotivo.adicionarParametro( new ParametroSimples(FiltroClienteImovelFimRelacaoMotivo.CLIENTE_IMOVEL_FIM_RELACAO_MOTIVO_ID, form.getIdClienteImovelFimRelacaoMotivo())); Collection<ClienteImovelFimRelacaoMotivo> colecaoTemp = Fachada.getInstancia().pesquisar(filtroClienteImovelFimRelacaoMotivo, ClienteImovelFimRelacaoMotivo.class.getSimpleName()); parametros.put("motivoFimRelacaoFiltro",colecaoTemp.iterator().next().getDescricao()); } return parametros; } /** * Cria uma cole��o de ClienteImovelEconomiaHelper a partir da cole��o * de ClienteImovelEconomia passada como parametro. * � necess�rio pelo fato do Jasper N�O descer n�veis na hierarquia do bean * (clienteImovel.imovel.id). * *@since 11/09/2009 *@author Marlon Patrick */ private Collection<ClienteImovelEconomiaHelper> criarColecaoClienteImovelEconomiaHelper( Collection<ClienteImovelEconomia> colecaoClienteImovelEconomia) { Collection<ClienteImovelEconomiaHelper> colecaoHelpers = new ArrayList<ClienteImovelEconomiaHelper>(); for(ClienteImovelEconomia cliImovEconAtual : colecaoClienteImovelEconomia){ ClienteImovelEconomiaHelper helper = new ClienteImovelEconomiaHelper(); if(cliImovEconAtual.getImovelEconomia()!=null){ helper.setComplementoEndereco(cliImovEconAtual.getImovelEconomia().getComplementoEndereco()); } if(cliImovEconAtual.getImovelEconomia()!=null){ helper.setNumeroMoradores(cliImovEconAtual.getImovelEconomia().getNumeroMorador()); } if(cliImovEconAtual.getImovelEconomia()!=null){ helper.setNumeroPontosUtilizacao(cliImovEconAtual.getImovelEconomia().getNumeroPontosUtilizacao()); } if(cliImovEconAtual.getImovelEconomia()!=null){ helper.setNumeroIptu(cliImovEconAtual.getImovelEconomia().getNumeroIptu()); } if(cliImovEconAtual.getImovelEconomia()!=null && cliImovEconAtual.getImovelEconomia().getAreaConstruidaFaixa()!=null){ helper.setAreaConstruida(cliImovEconAtual.getImovelEconomia().getAreaConstruidaFaixa().getFaixaCompleta()); } if(cliImovEconAtual.getCliente() != null){ helper.setClienteNome(cliImovEconAtual.getCliente().getNome()); } colecaoHelpers.add(helper); } return colecaoHelpers; } @Override public int calcularTotalRegistrosRelatorio() { int retorno = 0; return retorno; } public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioManterDebitoAutomatico", this); } }