package gcom.relatorio.cobranca; import gcom.batch.Relatorio; import gcom.cadastro.sistemaparametro.FiltroSistemaParametro; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.CobrancaAcao; import gcom.cobranca.RelatorioComandoDocumentoCobrancaHelper; 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 java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class RelatorioComandoDocumentoCobranca extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioComandoDocumentoCobranca(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_NOTIFICACAO_DEBITO); } public Object executar() throws TarefaException { // ------------------------------------ Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada(); // ------------------------------------ Integer idCobrancaAcaoCronograma = (Integer) getParametro("idCobrancaAcaoCronograma"); Integer idCobrancaAcaoComando = (Integer) getParametro("idCobrancaAcaoComando"); int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); CobrancaAcao cobrancaAcao = (CobrancaAcao) getParametro("cobrancaAcao"); // valor de retorno byte[] retorno = null; Fachada fachada = Fachada.getInstancia(); // RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans); // cole��o de beans do relat�rio List relatorioBeans = new ArrayList(); // Par�metros do relat�rio Map parametros = new HashMap(); RelatorioComandoDocumentoCobrancaBean relatorioComandoDocumentoCobrancaBean = null; Collection colecaoComandoDocumentoCobrancaHelper = fachada .gerarRelatorioComandoDocumentoCobranca( idCobrancaAcaoCronograma, idCobrancaAcaoComando); Iterator colecaoComandoDocumentoCobrancaHelperIterator = colecaoComandoDocumentoCobrancaHelper .iterator(); boolean flagTerminou = false; int totalContas = colecaoComandoDocumentoCobrancaHelper.size(); int quantidadeContas = 0; while (!flagTerminou) { RelatorioComandoDocumentoCobrancaHelper comandoDocumentoCobrancaHelperPrimeiraConta = null; RelatorioComandoDocumentoCobrancaHelper comandoDocumentoCobrancaHelperSegundaConta = null; while (colecaoComandoDocumentoCobrancaHelperIterator.hasNext()) { RelatorioComandoDocumentoCobrancaHelper comandoDocumentoCobrancaHelper = (RelatorioComandoDocumentoCobrancaHelper) colecaoComandoDocumentoCobrancaHelperIterator .next(); if (comandoDocumentoCobrancaHelperPrimeiraConta == null) { comandoDocumentoCobrancaHelperPrimeiraConta = comandoDocumentoCobrancaHelper; } else { comandoDocumentoCobrancaHelperSegundaConta = comandoDocumentoCobrancaHelper; } if (comandoDocumentoCobrancaHelperPrimeiraConta != null && comandoDocumentoCobrancaHelperSegundaConta != null) { relatorioComandoDocumentoCobrancaBean = new RelatorioComandoDocumentoCobrancaBean( comandoDocumentoCobrancaHelperPrimeiraConta, comandoDocumentoCobrancaHelperSegundaConta); relatorioBeans.add(relatorioComandoDocumentoCobrancaBean); comandoDocumentoCobrancaHelperPrimeiraConta = null; comandoDocumentoCobrancaHelperSegundaConta = null; } quantidadeContas++; if (quantidadeContas == totalContas) { break; } } // Caso tenha sobrado apenas uma conta if (comandoDocumentoCobrancaHelperPrimeiraConta != null) { comandoDocumentoCobrancaHelperSegundaConta = new RelatorioComandoDocumentoCobrancaHelper(); comandoDocumentoCobrancaHelperSegundaConta.setInscricao(null); relatorioComandoDocumentoCobrancaBean = new RelatorioComandoDocumentoCobrancaBean( comandoDocumentoCobrancaHelperPrimeiraConta, comandoDocumentoCobrancaHelperSegundaConta); relatorioBeans.add(relatorioComandoDocumentoCobrancaBean); } if (quantidadeContas == totalContas) { flagTerminou = true; } } RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans); // adiciona os par�metros do relat�rio // adiciona o laudo da an�lise if ( relatorioBeans.size() <= 0 ) { throw new ActionServletException("atencao.relatorio.vazio"); } FiltroSistemaParametro filtroSistemaParametro = new FiltroSistemaParametro(); filtroSistemaParametro.adicionarCaminhoParaCarregamentoEntidade("bairro"); filtroSistemaParametro.adicionarCaminhoParaCarregamentoEntidade("enderecoReferencia"); filtroSistemaParametro.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro"); filtroSistemaParametro.adicionarCaminhoParaCarregamentoEntidade("logradouroCep"); filtroSistemaParametro.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTipo"); filtroSistemaParametro.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTitulo"); filtroSistemaParametro.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.cep"); filtroSistemaParametro.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro.municipio.unidadeFederacao"); filtroSistemaParametro.adicionarCaminhoParaCarregamentoEntidade("cep"); Collection colecaoSistemaParametro = fachada.pesquisar(filtroSistemaParametro,SistemaParametro.class.getName()); SistemaParametro sistemaParametro = (SistemaParametro) colecaoSistemaParametro.iterator().next(); parametros.put("imagem", sistemaParametro.getImagemRelatorio()); if (sistemaParametro.getNumeroTelefone() != null && !sistemaParametro.getNumeroTelefone().equals("")) { parametros.put("telefoneGeral", Util .formatarTelefone(sistemaParametro.getNumeroTelefone())); } else { parametros.put("telefoneGeral", ""); } if (sistemaParametro.getCep() != null && sistemaParametro.getCep().getCodigo() != null) { parametros.put("cep", Util.formatarCEP(sistemaParametro.getCep() .getCodigo().toString())); } else { parametros.put("cep", ""); } if (sistemaParametro.getCnpjEmpresa() != null && !sistemaParametro.getCnpjEmpresa().equals("")) { parametros.put("cnpj", Util.formatarCnpj(sistemaParametro .getCnpjEmpresa())); } else { parametros.put("cnpj", ""); } if(colecaoComandoDocumentoCobrancaHelper!=null && !colecaoComandoDocumentoCobrancaHelper.isEmpty()){ String endereco = sistemaParametro.getEnderecoFormatado(); parametros.put("endereco", endereco); } parametros.put("nomeEmpresa", sistemaParametro.getNomeEmpresa()); if (sistemaParametro.getNomeAbreviadoEmpresa() != null) { parametros.put("nomeAbreviadoEmpresa", sistemaParametro .getNomeAbreviadoEmpresa()); } else { parametros.put("nomeAbreviadoEmpresa", ""); } if (sistemaParametro.getNumero0800Empresa() != null) { parametros.put("numeroAtendimento", sistemaParametro .getNumero0800Empresa()); }else{ parametros.put("numeroAtendimento", ""); } if (cobrancaAcao != null) { parametros.put("acaoCobranca", cobrancaAcao .getDescricaoCobrancaAcao()); }else{ parametros.put("acaoCobranca", ""); } String informacao = ""; if (sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase( SistemaParametro.EMPRESA_SAAE)) { informacao = " Nosso objetivo � fornecer o que h� de melhor em atendimento e qualidade no " + "fornecimento de �gua para seu im�vel, o que somente ser� alcan�ado com o pagamento em dia " + "das contas de �gua. \n" + " Ocorre que, o atraso no pagamento de sua conta de �gua, bem como a falta " + "de atendimento aos nossos comunicados quanto ao referido atraso, nos levaram " + "a adotar a medida cab�vel no caso, ou seja o corte do fornecimento de �gua para seu im�vel. \n" + " Lembramos que a religa��o indevida do ramal predial � infra��o prevista no " + "Regulamento de Servi�o prestados pelo SAAE, pass�vel de multa. " + "Al�m disso a referida infra��o constitui crimes de furto e dano, " + "previstos nos artigos 155 e 163 do C�digo Penal, o que os levar� a " + "providenciar a imediata lavraturado do Boletim de Ocorr�ncia, com vistas a " + "ado��o das medidas cab�veis ao caso. " + " Face ao exposto, gentilmente, solicitamos, mais uma vez, o seu " + "comparecimento nesta Empresa, a fim de firmarmos um acordo que lhe " + "permita efetuar o pagamento dos d�bitos em atraso. " + "Atenciosamente, "; } else if (sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase( SistemaParametro.EMPRESA_CAER)) { informacao = " Nosso objetivo � fornecer o que h� de melhor em atendimento e qualidade no fornecimento de �gua para seu im�vel, " + "o que somente ser� alcan�ado com o pagamento em dia das contas de �gua. \n" + " Ocorre que, o atraso no pagamento de sua conta de �gua, bem como a falta de atendimento aos nossos comunicados quanto ao " + "referido atraso, nos levaram a adotar a medida cab�vel no caso, ou seja o corte do fornecimento de �gua para seu im�vel. \n" + " Lembramos que a religa��o indevida do ramal predial � infra��o prevista no decreto n.� 4.784-E de 23 de maio de 2002 " + "do Regulamento de Servi�o prestados pela CAER, pass�vel de multa equivalente a 12(doze) vezes a taxa m�nima, hoje " + "perfazendo o total de R$ 90,72(noventa reais e setenta e dois centavos). Al�m disso a referida infra��o constitui crimes " + "de furto e dano, previstos nos artigos 155 e 163 do C�digo Penal, o que os levar� a providenciar a imediata lavraturado do " + " Boletim de Ocorr�ncia, com vistas a ado��o das medidas cab�veis ao caso. \n" + " Face ao exposto, gentilmente, solicitamos, mais uma vez, o seu comparecimento " + "nesta Empresa, a fim de firmarmos um acordo que lhe permita efetuar o pagamento dos d�bitos em atraso. " + "Atenciosamente, "; }else if (sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase( SistemaParametro.EMPRESA_COSANPA)) { informacao = " A viola��o do dispositivo de suspens�o (corte) do ramal predial de �gua ou de esgoto constitui infra��o cujo " + "valor multa � de R$ 86,40 e, em caso de reincid�ncia, supress�o imediata do ramal predial de abastecimento de " + "�gua ou coleta de esgoto sanit�rio. \n" + " Lembramos que a religa��o indevida do ramal predial � infra��o prevista no " + "Regulamento de Servi�o prestados pela COSANPA. " + "Al�m disso a referida infra��o constitui crimes de furto e dano, " + "previstos nos artigos 155 e 163 do C�digo Penal, o que nos levar� a " + "providenciar a imediata lavratura do Boletim de Ocorr�ncia Policial, com vistas a " + "ado��o das medidas cab�veis ao caso. \n" + " Face ao exposto, gentilmente, solicitamos, mais uma vez, o seu " + "comparecimento nesta Empresa, a fim de firmarmos um acordo que lhe " + "permita efetuar o pagamento dos d�bitos em atraso. \n" + " Em caso de Execu��o de Corte em que houver a necessidade de intervir na cal�ada ou meio fio o custo de " + "recomposi��o ser� cobrado do cliente. \n \n" + "Atenciosamente, "; } parametros.put("informacao", informacao); if (sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase(SistemaParametro.EMPRESA_COSANPA)) { retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_COMANDO_DOCUMENTO_COBRANCA_COSANPA, parametros, ds, tipoFormatoRelatorio); } else{ retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_COMANDO_DOCUMENTO_COBRANCA, parametros, ds, tipoFormatoRelatorio); } // ------------------------------------ // Grava o relat�rio no sistema try { persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_COMANDO_DOCUMENTO_COBRANCA, 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 = 1; return retorno; } public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioComandoDocumentoCobranca", this); } }