package gcom.relatorio.cobranca.spcserasa; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao; import gcom.batch.Relatorio; import gcom.cadastro.cliente.ClienteTipo; import gcom.cadastro.cliente.EsferaPoder; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroQuadra; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.Quadra; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.CobrancaDebitoSituacao; import gcom.cobranca.CobrancaGrupo; import gcom.cobranca.FiltroNegativadorExclusaoMotivo; import gcom.cobranca.Negativador; import gcom.cobranca.NegativadorExclusaoMotivo; import gcom.cobranca.NegativadorMovimentoReg; import gcom.cobranca.bean.DadosConsultaNegativacaoHelper; import gcom.fachada.Fachada; import gcom.gui.cobranca.spcserasa.RelatorioNegativacoesExcluidasSomatorioDadosParcelamentoHelper; import gcom.relatorio.ConstantesExecucaoRelatorios; import gcom.relatorio.ConstantesRelatorios; import gcom.relatorio.RelatorioDataSource; import gcom.relatorio.RelatorioVazioException; import gcom.seguranca.acesso.usuario.Usuario; import gcom.spcserasa.FiltroNegativador; 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 gcom.util.filtro.ParametroSimplesIn; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; /** * <p> * * Title: GCOM * </p> * <p> * * Description: Sistema de Gest�o Comercial * </p> * <p> * * Copyright: Copyright (c) 2004 * </p> * <p> * * Company: COMPESA - Companhia Pernambucana de Saneamento * </p> * * @author Yara Taciane * @created 18 de mar�o de 2008 * @version 1.0 */ public class RelatorioNegativacoesExcluidas extends TarefaRelatorio { private static final long serialVersionUID = 1L; /** * Constructor for the RelatorioNegativacoesExcluidas object */ public RelatorioNegativacoesExcluidas(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_NEGATIVACOES_EXCLUIDAS); } @Deprecated public RelatorioNegativacoesExcluidas() { super(null, ""); } /** * < <Descri��o do m�todo>> * * @param Negativador * Parametros 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(); // ------------------------------------ // Recebe os par�metros que ser�o utilizados no relat�rio DadosConsultaNegativacaoHelper parametrosHelper = (DadosConsultaNegativacaoHelper) getParametro("parametros"); int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); // valor de retorno byte[] retorno = null; // cole��o de beans do relat�rio List relatorioBeans = new ArrayList(); Fachada fachada = Fachada.getInstancia(); RelatorioNegativacoesExcluidasBean relatorioBean = null; // Nova consulta para trazer objeto completo Collection colecaoNovos = fachada .pesquisarRelatorioNegativacoesExcluidas(parametrosHelper); if (colecaoNovos != null && !colecaoNovos.isEmpty()) { // coloca a cole��o de par�metros da analise no iterator Iterator it = colecaoNovos.iterator(); while (it.hasNext()) { NegativadorMovimentoReg negativadorMovimentoReg = (NegativadorMovimentoReg) it.next(); // Faz as valida��es dos campos necess�riose e formata a String // para a forma como ir� aparecer no relat�rio String idNegativador = ""; String negativador = ""; if (negativadorMovimentoReg.getNegativadorMovimento() != null && negativadorMovimentoReg.getNegativadorMovimento().getNegativador() != null) { Negativador negativ = negativadorMovimentoReg.getNegativadorMovimento().getNegativador(); idNegativador = negativ.getId().toString(); if (negativ.getCliente() != null) { negativador = negativ.getCliente().getNome(); } } // cliente nome String nomeCliente = ""; if (negativadorMovimentoReg.getCliente() != null) { nomeCliente = negativadorMovimentoReg.getCliente().getNome(); } // data de processamento String periodoEnvioNegativacao = ""; if (negativadorMovimentoReg != null && negativadorMovimentoReg.getNegativadorMovimento() != null) { periodoEnvioNegativacao = Util.formatarData(negativadorMovimentoReg.getNegativadorMovimento().getDataProcessamentoEnvio()); } // localidade String localidade = ""; String idLocalidade = ""; if (negativadorMovimentoReg.getLocalidade() != null) { idLocalidade = negativadorMovimentoReg.getLocalidade().getId().toString(); localidade = negativadorMovimentoReg.getLocalidade().getDescricao(); } // matricula do Imovel String matricula = ""; if (negativadorMovimentoReg.getImovel() != null) { matricula = negativadorMovimentoReg.getImovel().getId().toString(); } // cpf ou cnpj String cpfCnpj = ""; if (negativadorMovimentoReg.getNumeroCnpj() != null) { cpfCnpj = negativadorMovimentoReg.getNumeroCnpj(); } else if (negativadorMovimentoReg.getNumeroCpf() != null) { cpfCnpj = negativadorMovimentoReg.getNumeroCpf(); } // valor negativado BigDecimal valorNegativado = new BigDecimal(0); if (negativadorMovimentoReg.getValorDebito() != null) { valorNegativado = negativadorMovimentoReg.getValorDebito(); } // motivo da Exclus�o String motivoExclusao = null; if (negativadorMovimentoReg.getNegativadorExclusaoMotivo() != null) { motivoExclusao = negativadorMovimentoReg.getNegativadorExclusaoMotivo().getDescricaoExclusaoMotivo(); } // CRC996 BigDecimal valorParcelado = new BigDecimal(0); BigDecimal valorParceladoEntrada = new BigDecimal(0); BigDecimal valorPago = new BigDecimal(0); BigDecimal valorParceladoPago = new BigDecimal(0); BigDecimal valorParceladoEntradaPago = new BigDecimal(0); if (negativadorMovimentoReg.getNegativadorExclusaoMotivo() != null && negativadorMovimentoReg.getNegativadorExclusaoMotivo().getCobrancaDebitoSituacao() != null) { Integer idCobrancaDebitoSituacao = negativadorMovimentoReg.getNegativadorExclusaoMotivo().getCobrancaDebitoSituacao().getId(); if (idCobrancaDebitoSituacao.equals(CobrancaDebitoSituacao.PARCELADO)) { // valorParcelado = fachada.pesquisarSomatorioNegativadorMovimentoRegItens(negativadorMovimentoReg.getId(), CobrancaDebitoSituacao.PARCELADO); // // if(valorParcelado == null){ // valorParcelado = new BigDecimal(0); // } // // valorParceladoEntrada = negativadorMovimentoReg.getValorParceladoEntrada(); // // if (valorParceladoEntrada != null) { // valorParcelado = valorParcelado.subtract(valorParceladoEntrada); // } else { // valorParceladoEntrada = new BigDecimal(0); // // } //Vivianne Sousa - 28/04/2009 - CRC1599 RelatorioNegativacoesExcluidasSomatorioDadosParcelamentoHelper helper = fachada.pesquisarNegativadorMovimentoRegParcelamento(negativadorMovimentoReg.getId()); valorParcelado = helper.getValorParcelado(); valorParceladoPago = helper.getValorParceladoPago(); valorParceladoEntrada = helper.getValorParceladoEntrada(); valorParceladoEntradaPago = helper.getValorParceladoEntradaPago(); } if (idCobrancaDebitoSituacao.equals(CobrancaDebitoSituacao.PAGO)) { valorPago = fachada.pesquisarSomatorioNegativadorMovimentoRegItens(negativadorMovimentoReg.getId(), CobrancaDebitoSituacao.PAGO); if(valorPago == null){ valorPago = new BigDecimal(0); } } } // data Situa��o do Debito String dtSitDebito = null; if (negativadorMovimentoReg.getDataSituacaoDebito() != null) { dtSitDebito = Util.formatarData(negativadorMovimentoReg.getDataSituacaoDebito()); } String dataExclusao = null; if (negativadorMovimentoReg.getImovel() != null) { Date dataExcl = fachada.pesquisarDataExclusaoNegativacao(negativadorMovimentoReg.getImovel().getId(), negativadorMovimentoReg.getNegativadorMovimento().getNegativacaoComando().getId()); if (dataExcl != null) { dataExclusao = Util.formatarData(dataExcl); } } // Inicializa o construtor constitu�do dos campos // necess�rios para a impress�o do relatorio relatorioBean = new RelatorioNegativacoesExcluidasBean(nomeCliente, matricula, cpfCnpj, valorNegativado, motivoExclusao, periodoEnvioNegativacao, localidade, idLocalidade, idNegativador, negativador, dtSitDebito, dataExclusao, valorParceladoEntrada, valorParcelado, valorPago, valorParceladoPago, valorParceladoEntradaPago); // adiciona o bean a cole��o relatorioBeans.add(relatorioBean); } } // 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()); //************************************************************* // RM3755 // Autor: Ivan Sergio // Data: 13/01/2011 //************************************************************* if (parametrosHelper.getColecaoNegativador() != null && !parametrosHelper.getColecaoNegativador().isEmpty()) { FiltroNegativador filtroNegativador = new FiltroNegativador(); filtroNegativador.adicionarCaminhoParaCarregamentoEntidade("cliente"); filtroNegativador.adicionarParametro(new ParametroSimplesIn(FiltroNegativador.ID, parametrosHelper.getColecaoNegativador())); Collection collNegativador = fachada.pesquisar(filtroNegativador,Negativador.class.getName()); Iterator itt = collNegativador.iterator(); boolean primeiro = true; String negativadorSelecionado = ""; while (itt.hasNext()) { Negativador negativador = (Negativador) itt.next(); if (negativador.getCliente() != null) { //parametros.put("negativador", negativador.getCliente().getNome()); negativadorSelecionado = negativadorSelecionado + negativador.getCliente().getNome(); if (collNegativador.size() > 1 && primeiro) { negativadorSelecionado = negativadorSelecionado + " / "; primeiro = false; } } } parametros.put("negativador", negativadorSelecionado); } else { parametros.put("negativador", ""); } if (parametrosHelper.getIdNegativadorExclusaoMotivo() != null) { FiltroNegativadorExclusaoMotivo filtroNegativadorExclusaoMotivo = new FiltroNegativadorExclusaoMotivo(); filtroNegativadorExclusaoMotivo.adicionarParametro(new ParametroSimples(FiltroNegativadorExclusaoMotivo.ID, parametrosHelper.getIdNegativadorExclusaoMotivo())); Collection collNegativadorExclusaoMotivo = fachada.pesquisar(filtroNegativadorExclusaoMotivo,NegativadorExclusaoMotivo.class.getName()); Iterator itt = collNegativadorExclusaoMotivo.iterator(); while (itt.hasNext()) { NegativadorExclusaoMotivo negativadorExclusaoMotivo = (NegativadorExclusaoMotivo) itt.next(); if (negativadorExclusaoMotivo != null) { parametros.put("negativadorExclusaoMotivo", negativadorExclusaoMotivo.getDescricaoExclusaoMotivo()); } break; } } else { parametros.put("negativadorExclusaoMotivo", ""); } if (parametrosHelper.getPeriodoEnvioNegativacaoInicio() != null) { parametros.put("periodoEnvioNegativacao", Util.formatarData(parametrosHelper.getPeriodoEnvioNegativacaoInicio()) + " � " + Util.formatarData(parametrosHelper.getPeriodoEnvioNegativacaoFim())); } else { parametros.put("periodoEnvioNegativacao", ""); } if (parametrosHelper.getPeriodoExclusaoNegativacaoInicio() != null) { parametros.put("periodoExclusaoNegativacao", Util.formatarData(parametrosHelper.getPeriodoExclusaoNegativacaoInicio()) + " � " + Util.formatarData(parametrosHelper.getPeriodoExclusaoNegativacaoFim())); } else { parametros.put("periodoExclusaoNegativacao", ""); } if (parametrosHelper.getTituloComando() != null) { parametros.put("tituloComando", parametrosHelper.getTituloComando().toString()); } else { parametros.put("tituloComando", ""); } if (parametrosHelper.getIdEloPolo() != null) { FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID_ELO, parametrosHelper.getIdEloPolo())); Collection collLocalidade = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); Iterator itt = collLocalidade.iterator(); while (itt.hasNext()) { Localidade localidade = (Localidade) itt.next(); if (localidade != null) { parametros.put("eloPolo", localidade.getDescricao()); } break; } } else { parametros.put("eloPolo", ""); } if (parametrosHelper.getIdLocalidade() != null) { FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, parametrosHelper.getIdLocalidade())); Collection collLocalidade = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); Iterator itt = collLocalidade.iterator(); while (itt.hasNext()) { Localidade localidade = (Localidade) itt.next(); if (localidade != null) { parametros.put("localidade", localidade.getDescricao()); } break; } } else { parametros.put("localidade", ""); } if (parametrosHelper.getIdSetorComercial() != null) { parametros.put("codigoSetorComercial", parametrosHelper.getIdSetorComercial().toString()); } else { parametros.put("codigoSetorComercial", ""); } if (parametrosHelper.getIdQuadra() != null) { FiltroQuadra filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID, parametrosHelper.getIdQuadra())); Collection collQuadra = fachada.pesquisar(filtroQuadra, Quadra.class.getName()); Iterator itt = collQuadra.iterator(); while (itt.hasNext()) { Quadra quadra = (Quadra) itt.next(); if (quadra != null) { parametros.put("numeroQuadra", quadra.getNumeroQuadra()); } break; } } else { parametros.put("numeroQuadra", ""); } if (parametrosHelper.getColecaoCobrancaGrupo() != null) { String gruposCobranca = ""; Iterator itt = parametrosHelper.getColecaoCobrancaGrupo().iterator(); boolean primeiro = true; while (itt.hasNext()) { CobrancaGrupo cobrancaGrupo = (CobrancaGrupo) itt.next(); if (cobrancaGrupo != null) { if (primeiro) { gruposCobranca = gruposCobranca + cobrancaGrupo.getDescricao(); primeiro = false; } else { gruposCobranca = gruposCobranca + ", " + cobrancaGrupo.getDescricao(); } } } parametros.put("grupoCobranca", gruposCobranca); } else { parametros.put("grupoCobranca", ""); } if (parametrosHelper.getColecaoGerenciaRegional() != null) { String gerenciasRegionais = ""; Iterator itt = parametrosHelper.getColecaoGerenciaRegional().iterator(); boolean primeiro = true; while (itt.hasNext()) { GerenciaRegional gerenciaRegional = (GerenciaRegional) itt.next(); if (gerenciaRegional != null) { if (primeiro) { gerenciasRegionais = gerenciasRegionais + gerenciaRegional.getNome(); primeiro = false; } else { gerenciasRegionais = gerenciasRegionais + ", " + gerenciaRegional.getNome(); } } } parametros.put("gerenciaRegional", gerenciasRegionais); } else { parametros.put("gerenciaRegional", ""); } if (parametrosHelper.getColecaoUnidadeNegocio() != null) { String unidadesNegocio = ""; Iterator itt = parametrosHelper.getColecaoUnidadeNegocio().iterator(); boolean primeiro = true; while (itt.hasNext()) { UnidadeNegocio unidadeNegocio = (UnidadeNegocio) itt.next(); if (unidadeNegocio != null) { if (primeiro) { unidadesNegocio = unidadesNegocio + unidadeNegocio.getNome(); primeiro = false; } else { unidadesNegocio = unidadesNegocio + ", " + unidadeNegocio.getNome(); } } } parametros.put("unidadeNegocio", unidadesNegocio); } else { parametros.put("unidadeNegocio", ""); } if (parametrosHelper.getColecaoImovelPerfil() != null) { String imoveisPerfil = ""; Iterator itt = parametrosHelper.getColecaoImovelPerfil().iterator(); boolean primeiro = true; while (itt.hasNext()) { ImovelPerfil imovelPerfil = (ImovelPerfil) itt.next(); if (imovelPerfil != null) { if (primeiro) { imoveisPerfil = imoveisPerfil + imovelPerfil.getDescricao(); primeiro = false; } else { imoveisPerfil = imoveisPerfil + ", " + imovelPerfil.getDescricao(); } } } parametros.put("imovelPerfil", imoveisPerfil); } else { parametros.put("imovelPerfil", ""); } if (parametrosHelper.getColecaoCategoria() != null) { String categorias = ""; Iterator itt = parametrosHelper.getColecaoCategoria().iterator(); boolean primeiro = true; while (itt.hasNext()) { Categoria categoria = (Categoria) itt.next(); if (categoria != null) { if (primeiro) { categorias = categorias + categoria.getDescricao(); primeiro = false; } else { categorias = categorias + ", " + categoria.getDescricao(); } } } parametros.put("categoria", categorias); } else { parametros.put("categoria", ""); } if (parametrosHelper.getColecaoClienteTipo() != null) { String tiposCliente = ""; Iterator itt = parametrosHelper.getColecaoClienteTipo().iterator(); boolean primeiro = true; while (itt.hasNext()) { ClienteTipo clienteTipo = (ClienteTipo) itt.next(); if (clienteTipo != null) { if (primeiro) { tiposCliente = tiposCliente + clienteTipo.getDescricao(); primeiro = false; } else { tiposCliente = tiposCliente + ", " + clienteTipo.getDescricao(); } } } parametros.put("tipoCliente", tiposCliente); } else { parametros.put("tipoCliente", ""); } if (parametrosHelper.getColecaoEsferaPoder() != null) { String esferasPoder = ""; Iterator itt = parametrosHelper.getColecaoEsferaPoder().iterator(); boolean primeiro = true; while (itt.hasNext()) { EsferaPoder esferaPoder = (EsferaPoder) itt.next(); if (esferaPoder != null) { if (primeiro) { esferasPoder = esferasPoder + esferaPoder.getDescricao(); primeiro = false; } else { esferasPoder = esferasPoder + ", " + esferaPoder.getDescricao(); } } } parametros.put("esferaPoder", esferasPoder); } else { parametros.put("esferaPoder", ""); } //************************************************************* // RM3755 // Autor: Ivan Sergio // Data: 13/01/2011 //************************************************************* if (parametrosHelper.getColecaoLigacaoAguaSituacao() != null) { String ligacaoAguaSituacaoSel = ""; Iterator itt = parametrosHelper.getColecaoLigacaoAguaSituacao().iterator(); boolean primeiro = true; while (itt.hasNext()) { LigacaoAguaSituacao ligacaoAguaSituacao = (LigacaoAguaSituacao) itt.next(); if (ligacaoAguaSituacao != null) { if (primeiro) { ligacaoAguaSituacaoSel = ligacaoAguaSituacaoSel + ligacaoAguaSituacao.getDescricao(); primeiro = false; } else { ligacaoAguaSituacaoSel = ligacaoAguaSituacaoSel + ", " + ligacaoAguaSituacao.getDescricao(); } } } parametros.put("ligacaoAguaSituacao", ligacaoAguaSituacaoSel); } else { parametros.put("ligacaoAguaSituacao", ""); } if (parametrosHelper.getColecaoLigacaoEsgotoSituacao() != null) { String ligacaoEsgotoSituacaoSel = ""; Iterator itt = parametrosHelper.getColecaoLigacaoEsgotoSituacao().iterator(); boolean primeiro = true; while (itt.hasNext()) { LigacaoEsgotoSituacao ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) itt.next(); if (ligacaoEsgotoSituacao != null) { if (primeiro) { ligacaoEsgotoSituacaoSel = ligacaoEsgotoSituacaoSel + ligacaoEsgotoSituacao.getDescricao(); primeiro = false; } else { ligacaoEsgotoSituacaoSel = ligacaoEsgotoSituacaoSel + ", " + ligacaoEsgotoSituacao.getDescricao(); } } } parametros.put("ligacaoEsgotoSituacao", ligacaoEsgotoSituacaoSel); } else { parametros.put("ligacaoEsgotoSituacao", ""); } //**************************************************************** // cria uma inst�ncia do dataSource do relat�rio RelatorioDataSource ds = new RelatorioDataSource((List) relatorioBeans); retorno = this.gerarRelatorio(ConstantesRelatorios.RELATORIO_NEGATIVACOES_EXCLUIDAS, parametros, ds, tipoFormatoRelatorio); // ------------------------------------ // Grava o relat�rio no sistema try { persistirRelatorioConcluido(retorno,Relatorio.GERAR_RELATORIO_NEGATIVACOES_EXCLUIDAS,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 = ConstantesExecucaoRelatorios.QUANTIDADE_NAO_INFORMADA; // retorno = Fachada.getInstancia().totalRegistrosPesquisa( // (FiltroNegativador) getParametro("filtroNegativador"), // Negativador.class.getName()); return retorno; } public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioNegativacoesExcluidas", this); } }