package gcom.relatorio.faturamento; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.faturamento.ExtratoQuitacao; import gcom.faturamento.ExtratoQuitacaoItem; import gcom.faturamento.FiltroExtratoQuitacao; import gcom.gui.ActionServletException; 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.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; public class RelatorioDeclaracaoAnualQuitacaoDebitos extends TarefaRelatorio { /** * */ private static final long serialVersionUID = 1L; public RelatorioDeclaracaoAnualQuitacaoDebitos(Usuario usuario,String nomeRelatorio) { super(usuario, nomeRelatorio); } @Deprecated public RelatorioDeclaracaoAnualQuitacaoDebitos() { super(null, ""); } @Override public int calcularTotalRegistrosRelatorio() { return 1; } @Override public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioDeclaracaoAnualQuitacaoDebitos", this); } @Override public Object executar() throws TarefaException { int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); String ano = (String) getParametro("ano"); String matricula = (String) getParametro("matricula"); // valor de retorno byte[] retorno = null; // cole��o de beans do relat�rio List relatorioBeans = new ArrayList(); Fachada fachada = Fachada.getInstancia(); FiltroExtratoQuitacao filtro = new FiltroExtratoQuitacao(); filtro.adicionarParametro(new ParametroSimples( FiltroExtratoQuitacao.ID_IMOVEL,matricula)); filtro.adicionarParametro(new ParametroSimples( FiltroExtratoQuitacao.ANO_REFERENCIA,ano)); filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroExtratoQuitacao.IMOVEL); Collection colecaoExtratoQuitacao = fachada.pesquisar(filtro, ExtratoQuitacao.class.getName()); ExtratoQuitacao extrato = (ExtratoQuitacao) Util.retonarObjetoDeColecao(colecaoExtratoQuitacao); if(extrato == null){ throw new ActionServletException("atencao.pesquisa.nenhumresultado"); } String cliente = fachada.consultarClienteUsuarioImovel(extrato.getImovel().getId()); String endereco = fachada.pesquisarEndereco(extrato.getImovel().getId()); String matriculaFormatada = Util.retornaMatriculaImovelFormatada(extrato.getImovel().getId()); Collection<ExtratoQuitacaoItem> colecaoExtratosItens = fachada.pesquisarExtratoQuitacaoItensParaGeracaoArquivoTexto(extrato.getId()); RelatorioDeclaracaoAnualQuitacaoDebitosBean bean = null; BigDecimal valorTotal = new BigDecimal("0.0"); for (ExtratoQuitacaoItem extratoQuitacaoItem : colecaoExtratosItens) { bean = new RelatorioDeclaracaoAnualQuitacaoDebitosBean( extrato.getAnoReferencia().toString(), Util.formatarAnoMesParaMesAno(extratoQuitacaoItem.getAnoMesReferenciaConta()), extratoQuitacaoItem.getDescricaoSituacao(), Util.formatarData(extratoQuitacaoItem.getDataSituacao()), Util.formatarMoedaReal(extratoQuitacaoItem.getValorConta())); valorTotal = valorTotal.add(extratoQuitacaoItem.getValorConta()); relatorioBeans.add(bean); } bean = new RelatorioDeclaracaoAnualQuitacaoDebitosBean(); bean.setAnoMes("TOTAL"); bean.setValor(Util.formatarMoedaReal(valorTotal)); relatorioBeans.add(bean); // 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(); String nomeEmpresa = sistemaParametro.getNomeAbreviadoEmpresa(); String sequencial = ""; /* * * Cria��o das vari�veis localidade, setor, rota e sequencialRota */ String localidade = ""; String setor = ""; String rota = ""; String sequencialRota = ""; /* * * Adi��o da verifica��o OU para nomeEmpresa.equalsIgnoreCase("COSANPA") no IF abaixo */ if(nomeEmpresa.equalsIgnoreCase("CAERN") || nomeEmpresa.equalsIgnoreCase("COSANPA")){ Object[] idLocalidadeCodigoSetor = fachada.pesquisarLocalidadeCodigoSetorImovel(new Integer(matricula)); localidade = idLocalidadeCodigoSetor[0].toString(); setor = idLocalidadeCodigoSetor[1].toString(); Object[] rotaESequencialRotaDoImovel = fachada.obterRotaESequencialRotaDoImovelSeparados(new Integer(matricula)); rota = rotaESequencialRotaDoImovel[0].toString(); sequencialRota = rotaESequencialRotaDoImovel[1].toString(); sequencial = localidade+"/"+setor+"/"+rota+"/"+sequencialRota; }else if(nomeEmpresa.equalsIgnoreCase("CAEMA")){ String cnpjInscricao = "CNPJ: "; cnpjInscricao += Util.formatarCnpj(sistemaParametro.getCnpjEmpresa())+" Inscri��o Estadual: "; cnpjInscricao += sistemaParametro.getInscricaoEstadual(); parametros.put("cnpjInscricao", cnpjInscricao); parametros.put("nomeCompleto", sistemaParametro.getNomeEmpresa()); parametros.put("nomeAbreviado", sistemaParametro.getNomeAbreviadoEmpresa()); parametros.put("dataEmissao", Util.formatarData(new Date())); sequencial = extrato.getId().toString(); }else{ sequencial = extrato.getId().toString(); } parametros.put("imagem", sistemaParametro.getImagemRelatorio()); parametros.put("matricula", matriculaFormatada); parametros.put("endereco", endereco); parametros.put("nome", cliente); parametros.put("ano", extrato.getAnoReferencia().toString()); parametros.put("sequencial", sequencial); // cria uma inst�ncia do dataSource do relat�rio RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans); retorno = this.gerarRelatorio(this.getNomeRelatorio(), parametros, ds,tipoFormatoRelatorio); // retorna o relat�rio gerado return retorno; } }