package gcom.relatorio.cobranca; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.cliente.FiltroCliente; import gcom.cadastro.cliente.FiltroClienteImovel; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.CobrancaAcaoAtividadeComando; import gcom.cobranca.CobrancaAcaoAtividadeCronograma; import gcom.cobranca.FiltroImovelNaoGerado; import gcom.cobranca.ImovelNaoGerado; import gcom.fachada.Fachada; import gcom.gui.cobranca.MotivoNaoGeracaoDocumentoActionForm; 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.agendadortarefas.AgendadorTarefas; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesIn; /** * Descri��o da classe * Classe respons�vel pelo processamento dos * parametros informados e consequente * montagem dos registros exibidos posteriormente * pelo relat�rio * * @author Anderson Italo * @date 26/11/2009 */ public class RelatorioMotivoNaoGeracaoDocumentoCobranca extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioMotivoNaoGeracaoDocumentoCobranca(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_FILTRAR_DOCUMENTO_COBRANCA); } @Override public Object executar() throws TarefaException { Fachada fachada = Fachada.getInstancia(); Map<String, Object> parametros = new HashMap<String, Object>(); SistemaParametro sistemaParametro = Fachada.getInstancia().pesquisarParametrosDoSistema(); parametros.put("imagem", sistemaParametro.getImagemRelatorio()); Integer tipoRelatorio = (Integer) getParametro("tipoRelatorio"); Integer indicadorSintetico = (Integer)getParametro("sintetico"); Integer indicadorCronograma = (Integer)getParametro("indicadorCronograma"); Integer idCobrancaGrupo = (Integer) getParametro("idCobrancaGrupo"); CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronograma = (CobrancaAcaoAtividadeCronograma) getParametro("cobrancaAcaoAtividadeCronograma"); CobrancaAcaoAtividadeComando cobrancaAcaoAtividadeComando = (CobrancaAcaoAtividadeComando) getParametro("cobrancaAcaoAtividadeComando"); MotivoNaoGeracaoDocumentoActionForm form = (MotivoNaoGeracaoDocumentoActionForm)getParametro("form"); Integer gerencia = null; Integer unidade = null; Integer localidade = null; Integer setorComercial = null; Integer quadra = null; if(form.getGerenciaRegional() != null && !"-1".equals(form.getGerenciaRegional())) gerencia = new Integer(form.getGerenciaRegional()); if(form.getUnidadeNegocio() != null && !"-1".equals(form.getUnidadeNegocio())) unidade = new Integer(form.getUnidadeNegocio()); if(form.getIdLocalidade() != null && !"".equals(form.getIdLocalidade())) localidade = new Integer(form.getIdLocalidade()); if(form.getIdSetorComercial() != null && !"".equals(form.getIdSetorComercial())) setorComercial = new Integer(form.getIdSetorComercial()); if(form.getIdQuadra() != null && !"".equals(form.getIdQuadra())) quadra = new Integer(form.getIdQuadra()); byte[] retorno = null; if (indicadorSintetico.intValue() == 1){ Integer totalImoveisComando = 0; if (indicadorCronograma.intValue() == 1){ /*5.2. Im�veis no Comando: total de im�veis do Grupo de Cobran�a ( quantidade * de IMOV_ID com IMOV_ICEXCLUSAO = 2 e QDRA_ID = QDRA_ID da tabela QUADRA com * ROTA_ID = ROTA_ID da tabela ROTA com CBGR_ID = CBGR_ID do grupo em quest�o)*/ totalImoveisComando = fachada.pesquisarQuantidadeImoveisPorGrupoCobranca(idCobrancaGrupo,gerencia,unidade,localidade,setorComercial,quadra); }else{ //8.2. Im�veis no Comando: total de im�veis do Comando Eventual totalImoveisComando = pesquisaTotalImoveisComandoEventual(fachada, cobrancaAcaoAtividadeComando,form); } FiltroImovelNaoGerado filtroImovelNaoGerado = new FiltroImovelNaoGerado(); if (indicadorCronograma.intValue() == 1){ /*5.4. Im�veis que n�o geraram documento (quantidade de im�veis a partir * da tabela IMOVEL_NAO_GERADO com CAAC_ID = CAAC_ID do comando)*/ filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.IMOVEL); filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.LOCALIDADE); filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.UNIDADE_NEGOCIO); filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.GERENCIA_REGIONAL); filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.SETOR_COMERCIAL); filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.QUADRA); filtroImovelNaoGerado.adicionarParametro(new ParametroSimples( FiltroImovelNaoGerado.ID_COBRANCA_ACAO_ATIVIDADE_CRONOGRAMA, cobrancaAcaoAtividadeCronograma.getId())); if(form.getGerenciaRegional() != null && !"-1".equals(form.getGerenciaRegional())) filtroImovelNaoGerado.adicionarParametro(new ParametroSimples(FiltroImovelNaoGerado.GERENCIA_REGIONAL_ID,new Integer(form.getGerenciaRegional()))); if(form.getUnidadeNegocio() != null && !"-1".equals(form.getUnidadeNegocio())) filtroImovelNaoGerado.adicionarParametro(new ParametroSimples(FiltroImovelNaoGerado.UNIDADE_NEGOCIO_ID,new Integer(form.getUnidadeNegocio()))); if(form.getIdLocalidade() != null && !"".equals(form.getIdLocalidade())) filtroImovelNaoGerado.adicionarParametro(new ParametroSimples(FiltroImovelNaoGerado.LOCALIDADE_ID,new Integer(form.getIdLocalidade()))); if(form.getIdSetorComercial() != null && !"".equals(form.getIdSetorComercial())) filtroImovelNaoGerado.adicionarParametro(new ParametroSimples(FiltroImovelNaoGerado.SETOR_COMERCIAL_CODIGO,new Integer(form.getIdSetorComercial()))); if(form.getIdQuadra() != null && !"".equals(form.getIdQuadra())) filtroImovelNaoGerado.adicionarParametro(new ParametroSimples(FiltroImovelNaoGerado.QUADRA_NUMERO,new Integer(form.getIdQuadra()))); }else{ /*8.4. Im�veis que n�o geraram documento (quantidade de im�veis a partir * da tabela IMOVEL_NAO_GERADO com CACM_ID = CACM_ID do comando)*/ filtroImovelNaoGerado.adicionarParametro(new ParametroSimples( FiltroImovelNaoGerado.ID_COBRANCA_ACAO_ATIVIDADE_COMANDO, cobrancaAcaoAtividadeComando.getId())); } filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.MOTIVO_NAO_GERACAO_DOCUMENTO_COBRANCA); filtroImovelNaoGerado.setCampoOrderBy(FiltroImovelNaoGerado.ID_MOTIVO_NAO_GERACAO_DOCUMENTO_COBRANCA); Collection colecaoImovelNaoGerado = fachada.pesquisar(filtroImovelNaoGerado, ImovelNaoGerado.class.getName()); //seta os pametros parametros.put("imoveisComando", totalImoveisComando); if (indicadorCronograma.intValue() == 1){ /*5.3. Im�veis que geraram documento quantidade de documentos gerados no * comando ( CAAC_QTDOCUMENTOS da tabela COBRANCA_ACAO_ATIVIDADE_CRONOG * com CAAC_ID = CAAC_ID do comando em quest�o)*/ if (cobrancaAcaoAtividadeCronograma.getQuantidadeDocumentos() != null){ parametros.put("imoveisGeraramDocumento", cobrancaAcaoAtividadeCronograma.getQuantidadeDocumentos()); }else{ parametros.put("imoveisGeraramDocumento", 0); } }else{ /*8.3. Im�veis que geraram documento quantidade de documentos gerados no * comando ( CAAC_QTDOCUMENTOS da tabela COBRANCA_ACAO_ATIVIDADE_CRONOG * com CACM_ID = CACM_ID do comando em quest�o)*/ if (cobrancaAcaoAtividadeComando.getQuantidadeDocumentos() != null){ parametros.put("imoveisGeraramDocumento", cobrancaAcaoAtividadeComando.getQuantidadeDocumentos()); }else{ parametros.put("imoveisGeraramDocumento", 0); } } parametros.put("imoveisNaoGeraramDocumento", colecaoImovelNaoGerado.size()); List<RelatorioMotivoNaoGeracaoDocumentoCobrancaSinteticoBean> beans = new ArrayList<RelatorioMotivoNaoGeracaoDocumentoCobrancaSinteticoBean>(); if (colecaoImovelNaoGerado != null && !colecaoImovelNaoGerado.isEmpty()){ /*5.5. Descri��o do Motivo: (a partir da tabela MOTIVO_NAO_GERACAO_DOCUMENTO * com MNGD_ID = MNGD_ID da tabela IMOVEL_NAO_GERADO com CAAC_ID = CAAC_ID do comando) * 8.5. Descri��o do Motivo: (a partir da tabela MOTIVO_NAO_GERACAO_DOCUMENTO * com MNGD_ID = MNGD_ID da tabela IMOVEL_NAO_GERADO com CACM_ID = CACM_ID do comando)*/ RelatorioMotivoNaoGeracaoDocumentoCobrancaSinteticoBean bean = new RelatorioMotivoNaoGeracaoDocumentoCobrancaSinteticoBean(); int quantidadeImoveisPorMotivo = 0; ImovelNaoGerado imovelNaoGeradoAnterior = null; /* 5.6. Caso tenha sido escolhida a op��o sint�tico: * 8.6. Caso tenha sido escolhida a op��o sint�tico * 5.7.1. Matr�cula dos Im�veis n�o gerados no comando (a * partir da tabela IMOVEL_NAO_GERADO com CAAC_ID = CAAC_ID do Comando) * 8.7.1. Matr�cula dos Im�veis n�o gerados no comando (a partir da * tabela IMOVEL_NAO_GERADO com CACM_ID = CACM_ID do Comando)*/ for (Iterator colecaoImovelNaoGeradoIterator = colecaoImovelNaoGerado .iterator(); colecaoImovelNaoGeradoIterator.hasNext();) { ImovelNaoGerado imovelNaoGerado = (ImovelNaoGerado) colecaoImovelNaoGeradoIterator.next(); if (imovelNaoGeradoAnterior != null){ if (imovelNaoGerado.getMotivoNaoGeracaoDocCobranca().getId().intValue() != imovelNaoGeradoAnterior .getMotivoNaoGeracaoDocCobranca().getId().intValue()){ bean.setQuantidadeImoveisPorMotivo(quantidadeImoveisPorMotivo); beans.add(bean); bean = new RelatorioMotivoNaoGeracaoDocumentoCobrancaSinteticoBean(); quantidadeImoveisPorMotivo = 0; } } quantidadeImoveisPorMotivo++; bean.setDescricaoMotivo(imovelNaoGerado.getMotivoNaoGeracaoDocCobranca().getDescricao()); imovelNaoGeradoAnterior = imovelNaoGerado; if (!colecaoImovelNaoGeradoIterator.hasNext()){ bean.setQuantidadeImoveisPorMotivo(quantidadeImoveisPorMotivo); beans.add(bean); } } }else{ RelatorioMotivoNaoGeracaoDocumentoCobrancaSinteticoBean bean = new RelatorioMotivoNaoGeracaoDocumentoCobrancaSinteticoBean(); beans.add(bean); } retorno = this.gerarRelatorio(ConstantesRelatorios.RELATORIO_MOTIVO_NAO_GERACAO_DOCUMENTO_COBRANCA_SINTETICO, parametros, new RelatorioDataSource(beans), tipoRelatorio); }else{ List<RelatorioMotivoNaoGeracaoDocumentoCobrancaAnaliticoBean> beans = new ArrayList<RelatorioMotivoNaoGeracaoDocumentoCobrancaAnaliticoBean>(); Integer totalImoveisComando = 0; if (indicadorCronograma.intValue() == 1){ /*5.2. Im�veis no Comando: total de im�veis do Grupo de Cobran�a ( quantidade * de IMOV_ID com IMOV_ICEXCLUSAO = 2 e QDRA_ID = QDRA_ID da tabela QUADRA com * ROTA_ID = ROTA_ID da tabela ROTA com CBGR_ID = CBGR_ID do grupo em quest�o)*/ totalImoveisComando = fachada.pesquisarQuantidadeImoveisPorGrupoCobranca(idCobrancaGrupo,gerencia,unidade,localidade,setorComercial,quadra); }else{ //8.2. Im�veis no Comando: total de im�veis do Comando Eventual totalImoveisComando = pesquisaTotalImoveisComandoEventual(fachada, cobrancaAcaoAtividadeComando,form); } FiltroImovelNaoGerado filtroImovelNaoGerado = new FiltroImovelNaoGerado(); if (indicadorCronograma.intValue() == 1){ /*5.4. Im�veis que n�o geraram documento (quantidade de im�veis a partir * da tabela IMOVEL_NAO_GERADO com CAAC_ID = CAAC_ID do comando)*/ filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.IMOVEL); filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.LOCALIDADE); filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.UNIDADE_NEGOCIO); filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.GERENCIA_REGIONAL); /*filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.SETOR_COMERCIAL); filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.QUADRA); filtroImovelNaoGerado.adicionarParametro(new ParametroSimples( FiltroImovelNaoGerado.ID_COBRANCA_ACAO_ATIVIDADE_CRONOGRAMA, cobrancaAcaoAtividadeCronograma.getId()));*/ if(form.getGerenciaRegional() != null && !"-1".equals(form.getGerenciaRegional())) filtroImovelNaoGerado.adicionarParametro(new ParametroSimples(FiltroImovelNaoGerado.GERENCIA_REGIONAL_ID,new Integer(form.getGerenciaRegional()))); if(form.getUnidadeNegocio() != null && !"-1".equals(form.getUnidadeNegocio())) filtroImovelNaoGerado.adicionarParametro(new ParametroSimples(FiltroImovelNaoGerado.UNIDADE_NEGOCIO_ID,new Integer(form.getUnidadeNegocio()))); if(form.getIdLocalidade() != null && !"".equals(form.getIdLocalidade())) filtroImovelNaoGerado.adicionarParametro(new ParametroSimples(FiltroImovelNaoGerado.LOCALIDADE_ID,new Integer(form.getIdLocalidade()))); if(form.getIdSetorComercial() != null && !"".equals(form.getIdSetorComercial())) filtroImovelNaoGerado.adicionarParametro(new ParametroSimples(FiltroImovelNaoGerado.SETOR_COMERCIAL_CODIGO,new Integer(form.getIdSetorComercial()))); if(form.getIdQuadra() != null && !"".equals(form.getIdQuadra())) filtroImovelNaoGerado.adicionarParametro(new ParametroSimples(FiltroImovelNaoGerado.QUADRA_NUMERO,new Integer(form.getIdQuadra()))); filtroImovelNaoGerado.adicionarParametro(new ParametroSimples( FiltroImovelNaoGerado.ID_COBRANCA_ACAO_ATIVIDADE_CRONOGRAMA, cobrancaAcaoAtividadeCronograma.getId())); }else{ /*8.4. Im�veis que n�o geraram documento (quantidade de im�veis a partir * da tabela IMOVEL_NAO_GERADO com CACM_ID = CACM_ID do comando)*/ filtroImovelNaoGerado.adicionarParametro(new ParametroSimples( FiltroImovelNaoGerado.ID_COBRANCA_ACAO_ATIVIDADE_COMANDO, cobrancaAcaoAtividadeComando.getId())); } filtroImovelNaoGerado.adicionarCaminhoParaCarregamentoEntidade(FiltroImovelNaoGerado.MOTIVO_NAO_GERACAO_DOCUMENTO_COBRANCA); filtroImovelNaoGerado.setCampoOrderBy(FiltroImovelNaoGerado.ID_MOTIVO_NAO_GERACAO_DOCUMENTO_COBRANCA); Collection colecaoImovelNaoGerado = fachada.pesquisar(filtroImovelNaoGerado, ImovelNaoGerado.class.getName()); //seta os pametros parametros.put("imoveisComando", totalImoveisComando); if (indicadorCronograma.intValue() == 1){ /*5.3. Im�veis que geraram documento quantidade de documentos gerados no * comando ( CAAC_QTDOCUMENTOS da tabela COBRANCA_ACAO_ATIVIDADE_CRONOG * com CAAC_ID = CAAC_ID do comando em quest�o)*/ if (cobrancaAcaoAtividadeCronograma.getQuantidadeDocumentos() != null){ parametros.put("imoveisGeraramDocumento", cobrancaAcaoAtividadeCronograma.getQuantidadeDocumentos()); }else{ parametros.put("imoveisGeraramDocumento", 0); } }else{ /*8.3. Im�veis que geraram documento quantidade de documentos gerados no * comando ( CAAC_QTDOCUMENTOS da tabela COBRANCA_ACAO_ATIVIDADE_CRONOG * com CACM_ID = CACM_ID do comando em quest�o)*/ if (cobrancaAcaoAtividadeComando.getQuantidadeDocumentos() != null){ parametros.put("imoveisGeraramDocumento", cobrancaAcaoAtividadeComando.getQuantidadeDocumentos()); }else{ parametros.put("imoveisGeraramDocumento", 0); } } parametros.put("imoveisNaoGeraramDocumento", colecaoImovelNaoGerado.size()); if (colecaoImovelNaoGerado != null && !colecaoImovelNaoGerado.isEmpty()){ /*5.5. Descri��o do Motivo: (a partir da tabela MOTIVO_NAO_GERACAO_DOCUMENTO * com MNGD_ID = MNGD_ID da tabela IMOVEL_NAO_GERADO com CAAC_ID = CAAC_ID do comando) * 8.5. Descri��o do Motivo: (a partir da tabela MOTIVO_NAO_GERACAO_DOCUMENTO * com MNGD_ID = MNGD_ID da tabela IMOVEL_NAO_GERADO com CACM_ID = CACM_ID do comando)*/ RelatorioMotivoNaoGeracaoDocumentoCobrancaAnaliticoBean bean = new RelatorioMotivoNaoGeracaoDocumentoCobrancaAnaliticoBean(); int quantidadeImoveisPorMotivo = 0; int i = 0; ImovelNaoGerado imovelNaoGeradoAnterior = null; /* 5.6. Caso tenha sido escolhida a op��o sint�tico: * 8.6. Caso tenha sido escolhida a op��o sint�tico * 5.7.1. Matr�cula dos Im�veis n�o gerados no comando (a * partir da tabela IMOVEL_NAO_GERADO com CAAC_ID = CAAC_ID do Comando) * 8.7.1. Matr�cula dos Im�veis n�o gerados no comando (a partir da * tabela IMOVEL_NAO_GERADO com CACM_ID = CACM_ID do Comando)*/ for (Iterator colecaoImovelNaoGeradoIterator = colecaoImovelNaoGerado .iterator(); colecaoImovelNaoGeradoIterator.hasNext();) { ImovelNaoGerado imovelNaoGerado = (ImovelNaoGerado) colecaoImovelNaoGeradoIterator.next(); if (imovelNaoGeradoAnterior != null){ if (imovelNaoGerado.getMotivoNaoGeracaoDocCobranca().getId().intValue() != imovelNaoGeradoAnterior .getMotivoNaoGeracaoDocCobranca().getId()){ bean.setQuantidadeImoveisPorMotivo(quantidadeImoveisPorMotivo); beans.add(bean); bean = new RelatorioMotivoNaoGeracaoDocumentoCobrancaAnaliticoBean(); quantidadeImoveisPorMotivo = 0; } } quantidadeImoveisPorMotivo++; i++; switch (i) { case 1: if (bean.getMatricula1() != null){ bean.setMatricula1(bean.getMatricula1() + " " + imovelNaoGerado.getImovel().getId().toString()); }else{ bean.setMatricula1(imovelNaoGerado.getImovel().getId().toString()); } break; case 2: if (bean.getMatricula2() != null){ bean.setMatricula2(bean.getMatricula2() + " " + imovelNaoGerado.getImovel().getId().toString()); }else{ bean.setMatricula2(imovelNaoGerado.getImovel().getId().toString()); } break; case 3: if (bean.getMatricula3() != null){ bean.setMatricula3(bean.getMatricula3() + " " + imovelNaoGerado.getImovel().getId().toString()); }else{ bean.setMatricula3(imovelNaoGerado.getImovel().getId().toString()); } break; case 4: if (bean.getMatricula4() != null){ bean.setMatricula4(bean.getMatricula4() + " " + imovelNaoGerado.getImovel().getId().toString()); }else{ bean.setMatricula4(imovelNaoGerado.getImovel().getId().toString()); } break; case 5: if (bean.getMatricula5() != null){ bean.setMatricula5(bean.getMatricula5() + " " + imovelNaoGerado.getImovel().getId().toString()); }else{ bean.setMatricula5(imovelNaoGerado.getImovel().getId().toString()); } break; case 6: if (bean.getMatricula6() != null){ bean.setMatricula6(bean.getMatricula6() + " " + imovelNaoGerado.getImovel().getId().toString()); }else{ bean.setMatricula6(imovelNaoGerado.getImovel().getId().toString()); } break; case 7: if (bean.getMatricula7() != null){ bean.setMatricula7(bean.getMatricula7() + " " + imovelNaoGerado.getImovel().getId().toString()); }else{ bean.setMatricula7(imovelNaoGerado.getImovel().getId().toString()); } break; case 8: if (bean.getMatricula8() != null){ bean.setMatricula8(bean.getMatricula8() + " " + imovelNaoGerado.getImovel().getId().toString()); }else{ bean.setMatricula8(imovelNaoGerado.getImovel().getId().toString()); } break; case 9: if (bean.getMatricula9() != null){ bean.setMatricula9(bean.getMatricula9() + " " + imovelNaoGerado.getImovel().getId().toString()); }else{ bean.setMatricula9(imovelNaoGerado.getImovel().getId().toString()); } break; case 10: if (bean.getMatricula10() != null){ bean.setMatricula10(bean.getMatricula10() + " " + imovelNaoGerado.getImovel().getId().toString()); }else{ bean.setMatricula10(imovelNaoGerado.getImovel().getId().toString()); } break; default: break; } bean.setDescricaoMotivo(imovelNaoGerado.getMotivoNaoGeracaoDocCobranca().getDescricao()); imovelNaoGeradoAnterior = imovelNaoGerado; if (i == 10){ i=0; } if (!colecaoImovelNaoGeradoIterator.hasNext()){ bean.setQuantidadeImoveisPorMotivo(quantidadeImoveisPorMotivo); beans.add(bean); } } }else{ RelatorioMotivoNaoGeracaoDocumentoCobrancaAnaliticoBean bean = new RelatorioMotivoNaoGeracaoDocumentoCobrancaAnaliticoBean(); beans.add(bean); } retorno = this.gerarRelatorio(ConstantesRelatorios.RELATORIO_MOTIVO_NAO_GERACAO_DOCUMENTO_COBRANCA_ANALITICO, parametros, new RelatorioDataSource(beans), tipoRelatorio); } return retorno; } private Integer pesquisaTotalImoveisComandoEventual(Fachada fachada, CobrancaAcaoAtividadeComando cobrancaAcaoAtividadeComando, MotivoNaoGeracaoDocumentoActionForm form) { Integer totalImoveisRetorno = 0; if (cobrancaAcaoAtividadeComando.getCliente() != null || cobrancaAcaoAtividadeComando.getSuperior() != null){ //1.1.1. Caso o Cliente Superior esteja preenchido if (cobrancaAcaoAtividadeComando.getSuperior() != null){ /*1.1.1.2. O sistema seleciona os im�veis para cada um dos clientes * subordinados e para o pr�prio Cliente Superior(a partir da tabela * CLIENTE_IMOVEL com CLIE_ID=c�digo de cada cliente subordinado, acrescido * dos im�veis com CLIE_ID = C�digo do Cliente Superior)*/ FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.CLIENTE_RESPONSAVEL_ID, cobrancaAcaoAtividadeComando.getSuperior().getId())); Collection colecaoClientes = fachada.pesquisar(filtroCliente, Cliente.class.getName()); Collection idsClientes = new ArrayList(); idsClientes.add(cobrancaAcaoAtividadeComando.getSuperior().getId()); for (Iterator colecaoClienteIterator = colecaoClientes.iterator(); colecaoClienteIterator .hasNext();) { Cliente cliente = (Cliente) colecaoClienteIterator.next(); idsClientes.add(cliente.getId()); } FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel(); filtroClienteImovel.adicionarParametro(new ParametroSimplesIn( FiltroClienteImovel.CLIENTE_ID, idsClientes)); Collection colecaoClienteImoveis = fachada.pesquisar(filtroClienteImovel, ClienteImovel.class.getName()); totalImoveisRetorno = colecaoClienteImoveis.size(); } //1.1.2. Caso o Cliente esteja preenchido if (cobrancaAcaoAtividadeComando.getCliente() != null){ /*1.1.2.1. O sistema seleciona os im�veis relacionados com o cliente * informado (a partir da tabela CLIENTE_IMOVEL com CLIE_ID=c�digo do cliente * e CRTP_ID=id do tipo de rela��o do cliente com o im�vel (se preenchida)*/ FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel(); filtroClienteImovel.adicionarParametro(new ParametroSimples( FiltroClienteImovel.CLIENTE_ID, cobrancaAcaoAtividadeComando.getCliente().getId())); if(cobrancaAcaoAtividadeComando.getClienteRelacaoTipo() != null){ filtroClienteImovel.adicionarParametro(new ParametroSimples( FiltroClienteImovel.CLIENTE_RELACAO_TIPO_ID, cobrancaAcaoAtividadeComando.getClienteRelacaoTipo().getId())); } Collection colecaoClienteImovel = fachada.pesquisar(filtroClienteImovel, ClienteImovel.class.getName()); totalImoveisRetorno = colecaoClienteImovel.size(); } }else{ /*8.2. Im�veis no Comando: total de im�veis do Comando Eventual * [SB0003 - Obter im�veis do Comando Eventual] * 1.2.1. A partir da lista de rotas do comando ( tabela COBRANCA_ATIVIDADE_COMAND_ROTA * com CACM_ID = CACM_ID do comando em quest�o) * 1.2.2. Para cada rota da lista, o sistema: * 1.2.3. Seleciona os im�veis das quadras pertencentes � rota( IMOV_ID com IMOV_ICEXCLUSAO = 2 * e QDRA_ID = QDRA_ID da tabela QUDRA com ROTA_ID = ROTA_ID de cada rota da lista de rotas;*/ Integer gerencia = null; Integer unidade = null; Integer localidade = null; Integer setorComercial = null; Integer quadra = null; if(form.getGerenciaRegional() != null && !"-1".equals(form.getGerenciaRegional())) gerencia = new Integer(form.getGerenciaRegional()); if(form.getUnidadeNegocio() != null && !"-1".equals(form.getUnidadeNegocio())) unidade = new Integer(form.getUnidadeNegocio()); if(form.getIdLocalidade() != null && !"".equals(form.getIdLocalidade())) localidade = new Integer(form.getIdLocalidade()); if(form.getIdSetorComercial() != null && !"".equals(form.getIdSetorComercial())) setorComercial = new Integer(form.getIdSetorComercial()); if(form.getIdQuadra() != null && !"".equals(form.getIdQuadra())) quadra = new Integer(form.getIdQuadra()); totalImoveisRetorno = fachada.pesquisarQuantidadeImoveisPorComandoEventual(cobrancaAcaoAtividadeComando.getId(), gerencia,unidade,localidade,setorComercial,quadra); } return totalImoveisRetorno; } @Override public int calcularTotalRegistrosRelatorio() { int retorno = 0; return retorno; } @Override public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioMotivoNaoGeracaoDocumentoCobranca", this); } }