package gcom.arrecadacao; import gcom.arrecadacao.banco.Banco; import gcom.arrecadacao.bean.ArrecadadorMovimentoItemHelper; import gcom.arrecadacao.bean.DadosConteudoCodigoBarrasHelper; import gcom.arrecadacao.bean.PagamentoHelperCodigoBarras; import gcom.arrecadacao.bean.RegistroHelperCodigoA; import gcom.arrecadacao.bean.RegistroHelperCodigoB; import gcom.arrecadacao.bean.RegistroHelperCodigoBarras; import gcom.arrecadacao.bean.RegistroHelperCodigoBarrasTipoPagamento; import gcom.arrecadacao.bean.RegistroHelperCodigoC; import gcom.arrecadacao.bean.RegistroHelperCodigoE; import gcom.arrecadacao.bean.RegistroHelperCodigoF; import gcom.arrecadacao.bean.RegistroHelperCodigoG; import gcom.arrecadacao.bean.RegistroHelperCodigoX; import gcom.arrecadacao.bean.RegistroHelperCodigoZ; import gcom.arrecadacao.debitoautomatico.DebitoAutomaticoMovimento; import gcom.arrecadacao.pagamento.GuiaPagamento; import gcom.arrecadacao.pagamento.Pagamento; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.CobrancaDocumento; import gcom.cobranca.CobrancaDocumentoItem; import gcom.cobranca.DocumentoTipo; import gcom.faturamento.GuiaPagamentoGeral; import gcom.faturamento.conta.Conta; import gcom.faturamento.conta.ContaGeral; import gcom.faturamento.conta.Fatura; import gcom.faturamento.conta.FiltroFatura; import gcom.faturamento.credito.CreditoARealizar; import gcom.faturamento.credito.CreditoARealizarGeral; import gcom.faturamento.debito.DebitoACobrar; import gcom.faturamento.debito.DebitoACobrarGeral; import gcom.faturamento.debito.DebitoTipo; import gcom.faturamento.debito.FiltroDebitoTipo; import gcom.relatorio.arrecadacao.pagamento.GuiaPagamentoRelatorioHelper; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.ErroRepositorioException; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Iterator; import javax.ejb.SessionBean; /** * Controlador Faturamento CAER * * @author Raphael Rossiter * @date 30/04/2007 */ public class ControladorArrecadacaoCAERSEJB extends ControladorArrecadacao implements SessionBean { private static final long serialVersionUID = 1L; // ============================================================================================================== // M�TODOS EXCLUSIVOS DA CAER // ============================================================================================================== /** * [UC0259] - Processar Pagamento com C�digo de Barras * * Autor: S�vio Luiz, Rafael Pinto, Raphael Rossiter Data: 01/02/2006, , * 30/04/2007 */ public PagamentoHelperCodigoBarras processarPagamentosCodigoBarras( String codigoBarras, Date dataPagamento, Integer idFormaArrecadacao, SistemaParametro sistemaParametro, Usuario usuarioLogado) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamentos = new ArrayList(); Collection colecaoDevolucoes = new ArrayList(); /* * Recupera o objeto registroHelperCodigoBarras passando a string do * c�digo de barras */ RegistroHelperCodigoBarras registroHelperCodigoBarras = distribuirDadosCodigoBarras(codigoBarras); BigDecimal valorPagamento = Util .formatarMoedaRealparaBigDecimalComUltimos2CamposDecimais(registroHelperCodigoBarras .getValorPagamento()); // Recupera o ano e o m�s da data de pagamento Integer anoMesPagamento = Util.recuperaAnoMesDaData(dataPagamento); Short identificadorEmpresaCodigoBarras = new Short( registroHelperCodigoBarras.getIdEmpresa()); int anoMes = 0; /* * Caso o identificador da empresa no txt n�o seja igual ao c�digo da * empresa no sistemas parametro. */ if (!identificadorEmpresaCodigoBarras.equals(sistemaParametro .getCodigoEmpresaFebraban())) { // Atribui o valor 2(N�O) ao indicador aceita��o registro indicadorAceitacaoRegistro = "2"; descricaoOcorrencia = "C�DIGO DE BARRAS N�O PERTENCE A " + sistemaParametro.getNomeEmpresa(); } else { boolean matriculaImovelInvalida = false; Integer idImovelNaBase = null; Integer matriculaImovel = null; boolean anoMesReferencia = false; // [SB0011] - Processar Pagamento Legado // ** Caso o tipo do documento (igual 01) - Conta e Segunda Via RegistroHelperCodigoBarrasTipoPagamento registro = registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento(); if (registro.getIdPagamento1().equalsIgnoreCase("01")) { matriculaImovelInvalida = Util.validarValorNaoNumerico(registro .getIdPagamento2()); if (matriculaImovelInvalida) { descricaoOcorrencia = "M�TRICULA DO IM�VEL INV�LIDA"; } else { // Verifica se existe a matricula do im�vel na base matriculaImovel = new Integer(registro.getIdPagamento2()); // [FS0008] - Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util .obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel .toString() + digitoModulo11); } idImovelNaBase = null; try { idImovelNaBase = repositorioImovel .recuperarMatriculaImovel(matriculaImovel); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } // Se o id do imovel pesquisado na base for diferente de // nulo if (idImovelNaBase == null) { descricaoOcorrencia = "MATR�CULA DO IM�VEL N�O CADASTRADA"; } } // Valida mes/ano referencia anoMesReferencia = Util.validarValorNaoNumerico(registro .getIdPagamento3()); if (!anoMesReferencia) { anoMes = Integer.parseInt(registro.getIdPagamento3()); } else { descricaoOcorrencia = "ANO/M�S DE REFER�NCIA DA CONTA INV�LIDA"; } if (descricaoOcorrencia.equals("OK")) { Integer idLocalidade = null; Integer idConta = null; Imovel imovel = new Imovel(); imovel.setId(idImovelNaBase); try { idConta = repositorioFaturamento .pesquisarExistenciaContaComSituacaoAtual( imovel, anoMes); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } /* * Alterado por Raphael Rossiter em 10/01/2008 - Analistas: Eduardo e Aryed * OBJ: Gerar os pagamentos associados com a localidade da conta e N�O com * a localidade do im�vel. */ if (idConta != null) { try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorConta(idConta); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else{ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidade(idImovelNaBase); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } /* * if (idConta == null || idConta.equals("")) { * descricaoOcorrencia = "CONTA INEXISTENTE"; } */ Pagamento pagamento = this .processarPagamentosCodigoBarrasTipoPagamento( anoMes, anoMesPagamento, sistemaParametro, valorPagamento, dataPagamento, idConta, idLocalidade, idFormaArrecadacao, idImovelNaBase, imovel); colecaoPagamentos.add(pagamento); } else { // Atribui o valor 2(N�O) ao indicador aceitacao registro indicadorAceitacaoRegistro = "2"; } //Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamentos); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras.setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); // ** Caso o tipo do documento (igual 02) - Fatura } else if (registro.getIdPagamento1().equalsIgnoreCase("02")) { // Valida o codigo do qualificador boolean codigoQualificadorInvalido = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); Integer qtdFaturaPorQualificador = null; Short codigoQualificador = null; if (codigoQualificadorInvalido) { descricaoOcorrencia = "C�DIGO DO QUALIFICADOR N�O NUM�RICO"; } else { codigoQualificador = new Short(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); // Verificando o qualificador try { qtdFaturaPorQualificador = repositorioFaturamento .pesquisarQuantidadeFaturaPorQualificador(codigoQualificador); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } if (qtdFaturaPorQualificador < 1) { descricaoOcorrencia = "QUALIFICADOR N�O CADASTRADO"; } } // Valida mes/ano referencia anoMesReferencia = Util.validarValorNaoNumerico(registro .getIdPagamento3()); if (!anoMesReferencia) { anoMes = Integer.parseInt(registro.getIdPagamento3()); } else { descricaoOcorrencia = "ANO/M�S DE REFER�NCIA DA CONTA INV�LIDA"; } if (descricaoOcorrencia.equals("OK")) { // Verificando fatura do qualificador Fatura faturaQualificador = null; faturaQualificador = this.getControladorFaturamento() .pesquisarFaturaPorQualificador(codigoQualificador, anoMes, valorPagamento); if (faturaQualificador != null) { Collection faturaItens = null; try { faturaItens = repositorioFaturamento .pesquisarFaturaItem(faturaQualificador .getId()); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } // Verifica se a cole��o � diferente de nula if (faturaItens != null && !faturaItens.isEmpty()) { Iterator faturaItensIterator = faturaItens .iterator(); while (faturaItensIterator.hasNext()) { Object[] faturaItem = (Object[]) faturaItensIterator .next(); Pagamento pagamento = this .processarPagamentosCodigoBarrasTipoFatura( faturaItem, anoMes, anoMesPagamento, sistemaParametro, dataPagamento, idFormaArrecadacao); colecaoPagamentos.add(pagamento); } } } else { descricaoOcorrencia = "QUALIFICADOR INEXISTENTE"; // Atribui o valor 2(N�O) ao indicador aceita��o // registro indicadorAceitacaoRegistro = "2"; } } else { // Atribui o valor 2(N�O) ao indicador aceita��o registro indicadorAceitacaoRegistro = "2"; } //Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamentos); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras.setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); // ** Caso o tipo do documento - Reaviso de d�bito } else if (registro.getIdPagamento1().equalsIgnoreCase("04")) { matriculaImovelInvalida = Util.validarValorNaoNumerico(registro .getIdPagamento2()); if (matriculaImovelInvalida) { descricaoOcorrencia = "M�TRICULA DO IM�VEL INV�LIDA"; } else { // Verifica se existe a matricula do im�vel na base matriculaImovel = new Integer(registro.getIdPagamento2()); // [FS0008] - Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util .obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel .toString() + digitoModulo11); } idImovelNaBase = null; try { idImovelNaBase = repositorioImovel .recuperarMatriculaImovel(matriculaImovel); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } // se o id do imovel pesquisado na base for diferente de // nulo if (idImovelNaBase == null) { descricaoOcorrencia = "MATR�CULA DO IM�VEL N�O CADASTRADA"; } } if (descricaoOcorrencia.equals("OK")) { Integer idLocalidade = null; Collection cobrancaDocumentoItens = null; Object[] parmsDocumentoCobranca = null; // int numeroSequencialDocumento = 999999999; int numeroSequencialDocumento = Integer.parseInt(registro .getIdPagamento5()); try { cobrancaDocumentoItens = repositorioCobranca .pesquisarCobrancaDocumentoItem(idImovelNaBase, numeroSequencialDocumento); parmsDocumentoCobranca = repositorioCobranca .pesquisarParmsCobrancaDocumento( idImovelNaBase, numeroSequencialDocumento); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } // Caso exista documento de cobran�a if (parmsDocumentoCobranca != null) { Integer idCobrancaDocumento = null; BigDecimal valorAcrescimo = new BigDecimal("0.00"); BigDecimal valorDesconto = new BigDecimal("0.00"); Date dataEmissao = null; BigDecimal valorTaxa = new BigDecimal("0.00"); Integer idDocumentoTipo = null; if (parmsDocumentoCobranca[0] != null) { valorAcrescimo = ((BigDecimal) parmsDocumentoCobranca[0]); } if (parmsDocumentoCobranca[1] != null) { valorDesconto = ((BigDecimal) parmsDocumentoCobranca[1]); } if (parmsDocumentoCobranca[2] != null) { dataEmissao = ((Date) parmsDocumentoCobranca[2]); } if (parmsDocumentoCobranca[3] != null) { idCobrancaDocumento = ((Integer) parmsDocumentoCobranca[3]); } if (parmsDocumentoCobranca[4] != null) { valorTaxa = ((BigDecimal) parmsDocumentoCobranca[4]); } /* * Alterado por Raphael Rossiter em 10/01/2008 - Analistas: Eduardo e Aryed * OBJ: Gerar os pagamentos associados com a localidade do document de cobran�a e N�O com * a localidade do im�vel. */ if (parmsDocumentoCobranca[5] != null) { idLocalidade = ((Integer) parmsDocumentoCobranca[5]); } else{ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidade(idImovelNaBase); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } if (parmsDocumentoCobranca[6] != null) { idDocumentoTipo = ((Integer) parmsDocumentoCobranca[6]); } // Caso o valor de acrescimo for maior que zero if (valorAcrescimo.compareTo(new BigDecimal("0.00")) == 1) { /* * [SB0008 - Alterar vencimento dos itens do * documento de cobran�a] */ alterarVencimentoItensDocumentoCobranca( idCobrancaDocumento, dataEmissao); } /* * caso o valor de acrescimos seja maior que o valor de * descontos */ if (valorAcrescimo.compareTo(valorDesconto) == 1) { valorAcrescimo = valorAcrescimo .subtract(valorDesconto); valorDesconto = new BigDecimal("0.00"); } else { valorDesconto = valorDesconto .subtract(valorAcrescimo); valorAcrescimo = new BigDecimal("0.00"); } // Caso o valor de acrescimo for maior que zero if (valorAcrescimo.compareTo(new BigDecimal("0.00")) == 1) { /* * [SB0005 - Processar Recebimento de Acrescimos por * impontualidade */ Pagamento pagamento = processarRecebimentoAcrescimosImpontualidade( idCobrancaDocumento, dataPagamento, valorAcrescimo, idImovelNaBase, idLocalidade, sistemaParametro, idFormaArrecadacao, idDocumentoTipo); colecaoPagamentos.add(pagamento); } // Caso o valor de desconto for maior que zero if (valorDesconto.compareTo(new BigDecimal("0.00")) == 1) { // [SB0006 - Processar Desconto concedido no // documento de cobran�a] Devolucao devolucao = processarDescontoConcedidoDocumentoCobranca( idCobrancaDocumento, dataPagamento, valorDesconto, idImovelNaBase, idLocalidade, sistemaParametro, idFormaArrecadacao, idDocumentoTipo); colecaoDevolucoes.add(devolucao); } // Caso o valor de desconto for maior que zero if (valorTaxa.compareTo(new BigDecimal("0.00")) == 1) { // [SB0007 - Processar Taxa documento cobran�a] Pagamento pagamento = processarTaxaDocumentoCobranca( idCobrancaDocumento, dataPagamento, valorTaxa, idImovelNaBase, idLocalidade, sistemaParametro, idFormaArrecadacao, idDocumentoTipo); colecaoPagamentos.add(pagamento); } // verifica se a cole��o � diferente de nula if (cobrancaDocumentoItens != null && !cobrancaDocumentoItens.isEmpty()) { Iterator cobrancaDocumentoItensIterator = cobrancaDocumentoItens .iterator(); while (cobrancaDocumentoItensIterator.hasNext()) { Object[] cobrancaDocumentoItem = (Object[]) cobrancaDocumentoItensIterator .next(); Integer idContaPesquisa = null; Integer idContaGeralPesquisa = null; Integer idGuiaPagamento = null; Integer idDebitoACobrar = null; BigDecimal valorItemCobrado = null; int contaReferencia = 0; Integer idDebitoTipo = null; Integer idGuiaPagamentoGeralPesquisa = null; Integer idDebitoACobrarGeralPesquisa = null; // verifica o id da conta if (cobrancaDocumentoItem[0] != null) { idContaPesquisa = (Integer) cobrancaDocumentoItem[0]; idContaGeralPesquisa = (Integer) cobrancaDocumentoItem[0]; // Refer�ncia conta if (cobrancaDocumentoItem[4] != null) { contaReferencia = (Integer) cobrancaDocumentoItem[4]; } } else { /* * caso n�o exista na conta ent�o pesquisa * na conta hist�rico. */ if (cobrancaDocumentoItem[10] != null) { idContaGeralPesquisa = (Integer) cobrancaDocumentoItem[10]; } // Refer�ncia conta hist�rico if (cobrancaDocumentoItem[5] != null) { contaReferencia = (Integer) cobrancaDocumentoItem[5]; } } // Verifica o id da guia pagamento if (cobrancaDocumentoItem[1] != null) { idGuiaPagamento = (Integer) cobrancaDocumentoItem[1]; idGuiaPagamentoGeralPesquisa = (Integer) cobrancaDocumentoItem[1]; } else { /* * caso n�o exista no guia pagamento ent�o * pesquisa no guia pagamento hist�rico */ if (cobrancaDocumentoItem[11] != null) { idGuiaPagamentoGeralPesquisa = (Integer) cobrancaDocumentoItem[11]; } } // Verifica o id do debito a cobrar if (cobrancaDocumentoItem[2] != null) { idDebitoACobrar = (Integer) cobrancaDocumentoItem[2]; idDebitoACobrarGeralPesquisa = (Integer) cobrancaDocumentoItem[2]; } else { /* * caso n�o exista no debito a cobrar ent�o * pesquisa no guia pagamento hist�rico */ if (cobrancaDocumentoItem[12] != null) { idDebitoACobrarGeralPesquisa = (Integer) cobrancaDocumentoItem[12]; } } // verifica o valor do item cobrado da cobranca // documento item if (cobrancaDocumentoItem[3] != null) { valorItemCobrado = (BigDecimal) cobrancaDocumentoItem[3]; } // Se o id da conta for igual a null if (idContaGeralPesquisa == null) { // Caso exista guia de pagamento if (idGuiaPagamentoGeralPesquisa != null) { // verifica o id do debito tipo se � da // guia if (cobrancaDocumentoItem[6] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[6]; } else { /* * Caso n�o exista no guia pagamento * ent�o pesquisa no guia pagamento * hist�rico */ if (cobrancaDocumentoItem[7] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[7]; } } } // Caso exista debito a cobrar if (idDebitoACobrarGeralPesquisa != null) { // verifica o id do debito tipo no // debito a cobrar if (cobrancaDocumentoItem[8] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[8]; } else { /* * Caso n�o exista no debito a * cobrar ent�o pesquisa no debito a * cobrar hist�rico */ if (cobrancaDocumentoItem[9] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[9]; } } } } // Cria o objeto pagamento para setar os Pagamento pagamento = new Pagamento(); if (contaReferencia != 0) { pagamento .setAnoMesReferenciaPagamento(contaReferencia); } else { pagamento .setAnoMesReferenciaPagamento(null); } /* * Caso o ano mes da data de dedito seja maior * que o ano mes de arrecada��o da tabela * sistema parametro ent�o seta o ano mes da * data de debito */ if (anoMesPagamento > sistemaParametro .getAnoMesArrecadacao()) { pagamento .setAnoMesReferenciaArrecadacao(anoMesPagamento); } else { /* * caso contrario seta o o ano mes * arrecada��o da tabela sistema parametro */ pagamento .setAnoMesReferenciaArrecadacao(sistemaParametro .getAnoMesArrecadacao()); } pagamento.setValorPagamento(valorItemCobrado); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); if (idDebitoTipo != null) { DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(idDebitoTipo); pagamento.setDebitoTipo(debitoTipo); } else { pagamento.setDebitoTipo(null); } // Verifica se o id da conta � diferente de nulo if (idContaGeralPesquisa != null) { if (idContaPesquisa != null) { ContaGeral conta = new ContaGeral(); conta.setId(idContaPesquisa); pagamento.setContaGeral(conta); /* * Colocado por Raphael Rossiter em 26/11/2008 - CRC264 * OBJ: Inserir o pagamento com a localidade da pr�pria conta e n�o * com a localidade do documento de cobran�a */ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorConta(idContaPesquisa); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else { pagamento.setContaGeral(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.CONTA); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setContaGeral(null); } // Verifica se o id da guia de pagamento � diferente de nulo if (idGuiaPagamentoGeralPesquisa != null) { if (idGuiaPagamento != null) { GuiaPagamento guiaPagamento = new GuiaPagamento(); guiaPagamento.setId(idGuiaPagamento); pagamento.setGuiaPagamento(guiaPagamento); /* * Colocado por Raphael Rossiter em 26/11/2008 - CRC264 * OBJ: Inserir o pagamento com a localidade da pr�pria guia e n�o * com a localidade do documento de cobran�a */ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorGuiaPagamento(idGuiaPagamento); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else { pagamento.setGuiaPagamento(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.GUIA_PAGAMENTO); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setGuiaPagamento(null); } // Verifica se o id do debito a cobrar � diferente de nulo if (idDebitoACobrarGeralPesquisa != null) { if (idDebitoACobrar != null) { DebitoACobrarGeral debitoACobrarGeral = new DebitoACobrarGeral(); debitoACobrarGeral.setId(idDebitoACobrar); pagamento.setDebitoACobrarGeral(debitoACobrarGeral); /* * Colocado por Raphael Rossiter em 26/11/2008 - CRC264 * OBJ: Inserir o pagamento com a localidade do pr�prio debito a cobrar e n�o * com a localidade do documento de cobran�a */ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorDebitoACobrar(idDebitoACobrar); // atualiza a situa��o atual para cancelada repositorioFaturamento .atualizarSituacaoAtualDebitoACobrar(idDebitoACobrar); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else { pagamento.setDebitoACobrarGeral(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.DEBITO_A_COBRAR); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setDebitoACobrarGeral(null); } // Verifica se o id da conta � diferente de nulo if (idLocalidade != null) { Localidade localidade = new Localidade(); localidade.setId(idLocalidade); pagamento.setLocalidade(localidade); } else { pagamento.setLocalidade(null); } pagamento.setAvisoBancario(null); if (idImovelNaBase != null) { Imovel imovel = new Imovel(); imovel.setId(idImovelNaBase); pagamento.setImovel(imovel); } else { pagamento.setImovel(null); } pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaArrecadacao); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); pagamento.setFatura(null); CobrancaDocumento cobrancaDocumento = new CobrancaDocumento(); cobrancaDocumento.setId(idCobrancaDocumento); pagamento.setCobrancaDocumento(cobrancaDocumento); DocumentoTipo documentoTipoAgregador = new DocumentoTipo(); documentoTipoAgregador.setId(idDocumentoTipo); pagamento.setDocumentoTipoAgregador(documentoTipoAgregador); colecaoPagamentos.add(pagamento); } } } else { descricaoOcorrencia = "DOCUMENTO DE COBRAN�A INEXISTENTE"; indicadorAceitacaoRegistro = "2"; } } else { // atribui o valor 2(N�O) ao indicador aceitacao registro indicadorAceitacaoRegistro = "2"; } //Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamentos); pagamentoHelperCodigoBarras.setColecaoDevolucao(colecaoDevolucoes); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras.setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); } // ** Caso o tipo do documento - Documento de Cobranca else if (registro.getIdPagamento1().equalsIgnoreCase("10")) { /********************************************************* * CRC5063 * autor: Ivan Sergio * analista: Rosana * data: 01/10/2010 *********************************************************/ pagamentoHelperCodigoBarras = this.processarPagamentosCodigoBarrasDocumentoCobrancaTipo10( registroHelperCodigoBarras, sistemaParametro, dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao, usuarioLogado); /********************************************************/ } /* * GUIA PAGAMENTO - CLIENTE RESPONS�VEL */ else if (registro.getIdPagamento1().equalsIgnoreCase("06")) { pagamentoHelperCodigoBarras = this .processarPagamentosCodigoBarrasGuiaPagamentoCliente( registroHelperCodigoBarras, sistemaParametro, dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); } /* * FATURA DE CLIENTE RESPONS�VEL */ else if (registro.getIdPagamento1().equalsIgnoreCase("07")) { pagamentoHelperCodigoBarras = this .processarPagamentosCodigoBarrasClienteResponsavel( registroHelperCodigoBarras, sistemaParametro, dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); } /* * DOCUMENTO DE COBRAN�A (EXTRATO DE CLIENTE RESPONS�VEL) */ else if (registro.getIdPagamento1().equalsIgnoreCase("08")) { pagamentoHelperCodigoBarras = this .processarPagamentosCodigoBarrasDocumentoCobrancaTipo8( registroHelperCodigoBarras, sistemaParametro, dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); } /* * GUIA PAGAMENTO - IM�VEL */ else if (registro.getIdPagamento1().equalsIgnoreCase("09")) { pagamentoHelperCodigoBarras = this .processarPagamentosCodigoBarrasGuiaPagamento( registroHelperCodigoBarras, sistemaParametro, dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); } else{ /* * CONTA - RECEBIMENTO DOS DOCUMENTOS QUE FORAM GERADOS COM O CODIGO DE BARRAS DA COMPESA */ registroHelperCodigoBarras = distribuirDadosCodigoBarrasGeral(codigoBarras); registroHelperCodigoBarras.setTipoPagamento(codigoBarras.substring(43, 44).trim()); String idPagamento = codigoBarras.substring(19, 43); RegistroHelperCodigoBarrasTipoPagamento registroHelperCodigoBarrasTipoPagamento = super.distribuirDadosCodigoBarrasPorTipoPagamento( idPagamento, registroHelperCodigoBarras.getTipoPagamento().trim(), registroHelperCodigoBarras.getIdEmpresa()); registroHelperCodigoBarras.setRegistroHelperCodigoBarrasTipoPagamento(registroHelperCodigoBarrasTipoPagamento); if (registroHelperCodigoBarras.getTipoPagamento().equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA.toString())){ pagamentoHelperCodigoBarras = this.processarPagamentosCodigoBarrasConta(registroHelperCodigoBarras, sistemaParametro, dataPagamento, anoMesPagamento, valorPagamento, idFormaArrecadacao); } else{ // atribui o valor 2(N�O) ao indicador aceitacao registro colecaoPagamentos = new ArrayList(); pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamentos); pagamentoHelperCodigoBarras.setDescricaoOcorrencia("C�DIGO DE BARRAS COM TIPO DE PAGAMENTO INV�LIDO"); pagamentoHelperCodigoBarras.setIndicadorAceitacaoRegistro("2"); } } } return pagamentoHelperCodigoBarras; } /** * retorna o objeto distribuido de acordo comj o tipo de pagamento * * [UC0264] - Distribuir Dados do C�digo de Barras * * [SF0001] - Distribuir Pagamento de Conta [SF0002] - Distribuir Pagamento * de Guia de Pagamento [SF0003] - Distribuir Pagamento de Documento de * Cobram�a [SF0004] - Distribuir Pagamento de Fatura do Cliente Respons�vel * * Autor: S�vio Luiz, Raphael Rossiter Data: 15/02/2006, 03/05/2007 */ public RegistroHelperCodigoBarrasTipoPagamento distribuirDadosCodigoBarrasPorTipoPagamento( String idPagamento, String tipoPagamento, String idEmpresa) { RegistroHelperCodigoBarrasTipoPagamento registroHelperCodigoBarrasTipoPagamento = new RegistroHelperCodigoBarrasTipoPagamento(); // [SB0006] - Distribuir Pagamento Legado CAER // Seta o tipo do pagamento /*if (tipoPagamento <= 9) { registroHelperCodigoBarrasTipoPagamento.setIdPagamento1("0" + tipoPagamento); } else { registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(String .valueOf(tipoPagamento)); }*/ //Seta o tipo do pagamento registroHelperCodigoBarrasTipoPagamento.setIdPagamento1(tipoPagamento); int tipoPagamentoParaComparacao = Integer.parseInt(tipoPagamento.trim()); // seta a identifica��o String identificacao = idPagamento; // Caso o tipo do pagamento (igual 01) - Conta e Segunda Via if (tipoPagamentoParaComparacao == 1) { // seta a matricula do imovel registroHelperCodigoBarrasTipoPagamento .setIdPagamento2(identificacao.substring(0, 6).trim()); // seta ano e mes registroHelperCodigoBarrasTipoPagamento .setIdPagamento3(identificacao.substring(6, 12).trim()); // seta o codigo origem da conta registroHelperCodigoBarrasTipoPagamento .setIdPagamento4(identificacao.substring(12, 14).trim()); // seta o numero do documento + campo (G05.8) registroHelperCodigoBarrasTipoPagamento .setIdPagamento5(identificacao.substring(14, 23).trim()); } // Caso o tipo do pagamento (igual 02) - Fatura else if (tipoPagamentoParaComparacao == 2) { // seta a qualifica��o registroHelperCodigoBarrasTipoPagamento .setIdPagamento2(identificacao.substring(0, 3).trim()); // seta ano e mes registroHelperCodigoBarrasTipoPagamento .setIdPagamento3(identificacao.substring(3, 9).trim()); // seta o codigo origem da conta registroHelperCodigoBarrasTipoPagamento .setIdPagamento4(identificacao.substring(9, 23).trim()); } // Caso o tipo do pagamento (igual 10) - documento de cobran�a NOVO else if (tipoPagamentoParaComparacao == 10) { // seta a matricula do imovel registroHelperCodigoBarrasTipoPagamento .setIdPagamento2(identificacao.substring(0, 6).trim()); // seta o numero do documento registroHelperCodigoBarrasTipoPagamento .setIdPagamento5(identificacao.substring(6, 22).trim()); } // Caso o tipo do pagamento (igual 04) - documento de cobran�a LEGADO else if (tipoPagamentoParaComparacao == 4) { // seta a matricula do imovel registroHelperCodigoBarrasTipoPagamento .setIdPagamento2(identificacao.substring(0, 6).trim()); // seta o numero do documento registroHelperCodigoBarrasTipoPagamento .setIdPagamento5(identificacao.substring(6, 23).trim()); } // Caso o tipo do pagamento (igual 06) OU tipo do pagamento (igual 09) - // Guia de Pagamento else if (tipoPagamentoParaComparacao == 6 || tipoPagamentoParaComparacao == 9) { // C�digo da Localidade registroHelperCodigoBarrasTipoPagamento .setIdPagamento2(identificacao.substring(0, 3).trim()); // Matr�cula do im�vel registroHelperCodigoBarrasTipoPagamento .setIdPagamento3(identificacao.substring(3, 11).trim()); // N�o Utilizado (3) registroHelperCodigoBarrasTipoPagamento .setIdPagamento4(identificacao.substring(11, 13).trim()); // C�digo do Tipo do D�bito registroHelperCodigoBarrasTipoPagamento .setIdPagamento5(identificacao.substring(13, 17).trim()); // Ano da emiss�o da Guia de Pagamento registroHelperCodigoBarrasTipoPagamento .setIdPagamento6(identificacao.substring(17, 21).trim()); // N�o Utilizado (2) } // Caso o tipo do pagamento (igual 07) - Fatura do Cliente Respons�vel else if (tipoPagamentoParaComparacao == 7) { // C�digo do Cliente registroHelperCodigoBarrasTipoPagamento .setIdPagamento2(identificacao.substring(0, 9).trim()); // N�o Utilizado (1) /* * registroHelperCodigoBarrasTipoPagamento * .setIdPagamento3(identificacao.substring(9, 10).trim()); */ // Mes e Ano de refer�ncia da conta registroHelperCodigoBarrasTipoPagamento .setIdPagamento4(identificacao.substring(9, 15).trim()); // D�gito verificador da conta no m�dulo 10 registroHelperCodigoBarrasTipoPagamento .setIdPagamento5(identificacao.substring(15, 16).trim()); // Sequencial da fatura do cliente respons�vel registroHelperCodigoBarrasTipoPagamento .setIdPagamento6(identificacao.substring(16, 22).trim()); } // Caso o tipo do pagamento (igual 08) - Doc. de Cobran�a - Cliente // Respons�vel else if (tipoPagamentoParaComparacao == 8) { // N�o Utilizado (3) registroHelperCodigoBarrasTipoPagamento .setIdPagamento2(identificacao.substring(0, 3).trim()); // C�digo do Cliente registroHelperCodigoBarrasTipoPagamento .setIdPagamento3(identificacao.substring(3, 11).trim()); // Sequencial do documento de cobran�a registroHelperCodigoBarrasTipoPagamento .setIdPagamento4(identificacao.substring(11, 20).trim()); // C�digo do tipo de documento registroHelperCodigoBarrasTipoPagamento .setIdPagamento5(identificacao.substring(20, 22).trim()); // N�o Utilizado (1) registroHelperCodigoBarrasTipoPagamento .setIdPagamento6(identificacao.substring(22, 23).trim()); } return registroHelperCodigoBarrasTipoPagamento; } /** * [UC0264] - Distribuir Dados do C�digo de Barras * * @author S�vio Luiz, Rafael Corr�a * @date 15/02/2006, 12/05/2008 * * @param codigoBarras * @return RegistroHelperCodigoBarras */ public RegistroHelperCodigoBarras distribuirDadosCodigoBarras( String codigoBarras) { // instancia o objeto de c�digo de barras, setando os valores que s�o iguais para todas as empresas RegistroHelperCodigoBarras registroHelperCodigoBarras = distribuirDadosCodigoBarrasGeral(codigoBarras); registroHelperCodigoBarras.setTipoPagamento(codigoBarras.substring(19, 21).trim()); // recupera o id pagamento da string String idPagamento = codigoBarras.substring(21, 44); // recupera o tipo pagamento e passa para int /*int tipoPagamento = Integer.parseInt(registroHelperCodigoBarras .getTipoPagamento().trim());*/ // chama o m�todo distribuirDadosCodigoBarrasPorTipoPagamento para // distribuir os dados de acordo com o tipo de pagamento RegistroHelperCodigoBarrasTipoPagamento registroHelperCodigoBarrasTipoPagamento = distribuirDadosCodigoBarrasPorTipoPagamento( idPagamento, registroHelperCodigoBarras.getTipoPagamento().trim(), registroHelperCodigoBarras.getIdEmpresa()); registroHelperCodigoBarras .setRegistroHelperCodigoBarrasTipoPagamento(registroHelperCodigoBarrasTipoPagamento); return registroHelperCodigoBarras; } /** * [UC0270] Apresentar An�lise do Movimento dos Arrecadadores * * O sistema seleciona os itens do movimento do arrecadador com os seguintes * dados: 1 - C�digo do Registro 2 - Identifica��o do Im�vel/Cliente 3 - * Ocorr�ncia 4 - Indicador de Aceita��o 5 - Descri��o do Indicador de * Aceita��o * * [SF0001] Consultar os Itens do Movimento do Arrecadador * * @author Raphael Rossiter * @data 20/03/2006 * * @param arrecadadorMovimento * @return Collection<ArrecadadorMovimentoItemHelper> */ public Collection<ArrecadadorMovimentoItemHelper> consultarItensMovimentoArrecadador( ArrecadadorMovimento arrecadadorMovimento, Integer idImovel, Short indicadorAceitacao, String descricaoOcorrencia) throws ControladorException { Collection<ArrecadadorMovimentoItemHelper> retorno = new ArrayList(); Collection<ArrecadadorMovimentoItem> colecaoArrecadadorMovimentoItens = null; ArrecadadorMovimentoItem arrecadadorMovimentoItem = null; ArrecadadorMovimentoItemHelper arrecadadorMovimentoItemHelper = null; /* * Seleciona os itens de um determinado movimento */ try { colecaoArrecadadorMovimentoItens = repositorioArrecadacao .consultarItensMovimentoArrecadador(arrecadadorMovimento, idImovel, indicadorAceitacao, descricaoOcorrencia); } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } if (colecaoArrecadadorMovimentoItens != null && !colecaoArrecadadorMovimentoItens.isEmpty()) { Iterator iteratorColecaoArrecadadorMovimentoItens = colecaoArrecadadorMovimentoItens .iterator(); while (iteratorColecaoArrecadadorMovimentoItens.hasNext()) { arrecadadorMovimentoItem = (ArrecadadorMovimentoItem) iteratorColecaoArrecadadorMovimentoItens .next(); arrecadadorMovimentoItemHelper = new ArrecadadorMovimentoItemHelper(); arrecadadorMovimentoItemHelper.setId(arrecadadorMovimentoItem .getId()); /* * (RGCD_CDREGISTROCODIGO da tabela REGISTRO_CODIGO com RGCD_ID = * RGCD_ID da tabela ARRECADADOR_MOVIMENTO_ITEM) */ if (arrecadadorMovimentoItem.getRegistroCodigo() != null) { arrecadadorMovimentoItemHelper .setCodigoRegistro(arrecadadorMovimentoItem .getRegistroCodigo().getCodigo()); } /* * Caso o c�digo do registro corresponda a "B", "C", "E" ou "F", * exibir a identifica��o do cliente na empresa retornada pelo * [UC0262] */ if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && arrecadadorMovimentoItemHelper.getCodigoRegistro() .equals(RegistroCodigo.CODIGO_B)) { // [UC0262] - Distribuir Dados do Registro de Movimento do // Arrecadador RegistroHelperCodigoB registroHelperCodigoB = (RegistroHelperCodigoB) this .distribuirdadosRegistroMovimentoArrecadador( arrecadadorMovimentoItem .getConteudoRegistro(), null); arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoB .getIdClienteEmpresa()); arrecadadorMovimentoItemHelper .setRegistroHelperCodigoB(registroHelperCodigoB); } else if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && arrecadadorMovimentoItemHelper.getCodigoRegistro() .equals(RegistroCodigo.CODIGO_C)) { // [UC0262] - Distribuir Dados do Registro de Movimento do // Arrecadador RegistroHelperCodigoC registroHelperCodigoC = (RegistroHelperCodigoC) this .distribuirdadosRegistroMovimentoArrecadador( arrecadadorMovimentoItem .getConteudoRegistro(), null); arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoC .getIdClienteEmpresa()); arrecadadorMovimentoItemHelper .setRegistroHelperCodigoC(registroHelperCodigoC); } else if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && arrecadadorMovimentoItemHelper.getCodigoRegistro() .equals(RegistroCodigo.CODIGO_E)) { // [UC0262] - Distribuir Dados do Registro de Movimento do // Arrecadador RegistroHelperCodigoE registroHelperCodigoE = (RegistroHelperCodigoE) this .distribuirdadosRegistroMovimentoArrecadador( arrecadadorMovimentoItem .getConteudoRegistro(), null); arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoE .getIdClienteEmpresa()); arrecadadorMovimentoItemHelper .setRegistroHelperCodigoE(registroHelperCodigoE); } else if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && arrecadadorMovimentoItemHelper.getCodigoRegistro() .equals(RegistroCodigo.CODIGO_F)) { // [UC0262] - Distribuir Dados do Registro de Movimento do // Arrecadador RegistroHelperCodigoF registroHelperCodigoF = (RegistroHelperCodigoF) this .distribuirdadosRegistroMovimentoArrecadador( arrecadadorMovimentoItem .getConteudoRegistro(), null); arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoF .getIdClienteEmpresa()); arrecadadorMovimentoItemHelper .setRegistroHelperCodigoF(registroHelperCodigoF); int tamanho = registroHelperCodigoF.getValorDebito() .length(); String valorDebito = registroHelperCodigoF.getValorDebito() .substring(0, (tamanho - 2)) + "." + registroHelperCodigoF.getValorDebito().substring( (tamanho - 2), tamanho); arrecadadorMovimentoItemHelper.setVlMovimento(Util .formatarMoedaReal(new BigDecimal(valorDebito))); } /* * Caso o c�digo do registro corresponda a "G" * * Distribui os dados do c�digo de barras [UC0264] - Distribuir * Dados co C�digo de Barras passando o c�digo de barras * retornado pelo [UC0262]- Distribuir Dados do Registro de * Movimento do Arrecadador. * * Exibir o tipo de pagamento retornado pelo [UC0262] - * Distribuir Dados co C�digo de Barras */ else if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && arrecadadorMovimentoItemHelper.getCodigoRegistro() .equals(RegistroCodigo.CODIGO_G)) { // [UC0262] - Distribuir Dados do Registro de Movimento do // Arrecadador RegistroHelperCodigoG registroHelperCodigoG = (RegistroHelperCodigoG) this .distribuirdadosRegistroMovimentoArrecadador( arrecadadorMovimentoItem .getConteudoRegistro(), null); arrecadadorMovimentoItemHelper .setRegistroHelperCodigoG(registroHelperCodigoG); int tamanho = registroHelperCodigoG.getValorRecebido() .length(); String valorRecebido = registroHelperCodigoG .getValorRecebido().substring(0, (tamanho - 2)) + "." + registroHelperCodigoG.getValorRecebido() .substring((tamanho - 2), tamanho); arrecadadorMovimentoItemHelper.setVlMovimento(Util .formatarMoedaReal(new BigDecimal(valorRecebido))); /* * CONTA = "01" FATURA = "02" REAVISO DE D�BITOS = "04" GUIA * PAGAMENTO CLIENTE = "06" GUIA PAGAMENTO IMOVEL = "09" * DOCUMENTO COBRAN�A CLIENTE RESPONSAVEL = "08" FATURA * CLIENTE RESPONSAVEL = "07" DOCUMENTO COBRAN�A IMOVEL = * "10" */ if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_CAER))) { Integer matriculaImovel = new Integer( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); // [FS0008] - Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util .obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel .toString() + digitoModulo11); } arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel.toString()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_CONTA); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CAER))) { // Alterado por S�vio Luiz Data:09/01/2008 (Analista:Rosana). // Recupera o o cliente da fatura Short codigoQualifica = new Short( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); Integer anoMesReferencia = new Integer( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); FiltroFatura filtroFatura = new FiltroFatura(); filtroFatura.adicionarParametro(new ParametroSimples(FiltroFatura.ANO_MES_REFERENCIA,anoMesReferencia)); filtroFatura.adicionarParametro(new ParametroSimples(FiltroFatura.CODIGO_QUALIFICA,codigoQualifica)); Collection colecaoFatura = getControladorUtil().pesquisar(filtroFatura,Fatura.class.getName()); Fatura fatura = (Fatura)Util.retonarObjetoDeColecao(colecaoFatura); if (fatura != null) { arrecadadorMovimentoItemHelper .setIdentificacao(""+fatura.getCliente().getId()); } arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_FATURA_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_REAVISO_CAER))) { Integer matriculaImovel = new Integer( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); // [FS0008] - Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util .obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel .toString() + digitoModulo11); } arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel.toString()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_REAVISO_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_IMOVEL_CAER))) { Integer matriculaImovel = new Integer( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); // [FS0008] - Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util .obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel .toString() + digitoModulo11); } arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel.toString()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO_IMOVEL_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_CLIENTE_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO_CLIENTE_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOC_COBRANCA_CLIENTE_RESPONSAVEL_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_DOC_COBRANCA_CLIENTE_RESPONSAVEL_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CLIENTE_RESPONSAVEL_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_FATURA_CLIENTE_RESPONSAVEL_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOC_COBRANCA_IMOVEL_CAER))) { Integer matriculaImovel = new Integer( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); // [FS0008] - Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util .obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel .toString() + digitoModulo11); } arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel.toString()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_DOC_COBRANCA_IMOVEL_CAER); } } // (AMIT_DSOCORRENCIA) if (arrecadadorMovimentoItem.getDescricaoOcorrencia() != null) { arrecadadorMovimentoItemHelper .setOcorrencia(arrecadadorMovimentoItem .getDescricaoOcorrencia()); } if (arrecadadorMovimentoItem.getIndicadorAceitacao() != null && arrecadadorMovimentoItem .getIndicadorAceitacao() .equals( ArrecadadorMovimentoItem.INDICADOR_ACEITO)) { arrecadadorMovimentoItemHelper .setIndicadorAceitacao(arrecadadorMovimentoItem .getIndicadorAceitacao()); // Colocado a pedido de Rosana em 08/04/2006 if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && !arrecadadorMovimentoItemHelper .getCodigoRegistro().equals( RegistroCodigo.CODIGO_C)) { arrecadadorMovimentoItemHelper .setDescricaoIndicadorAceitacao(ArrecadadorMovimentoItem.DESCRICAO_INDICADOR_ACEITO); } } else { arrecadadorMovimentoItemHelper .setIndicadorAceitacao(arrecadadorMovimentoItem .getIndicadorAceitacao()); // Colocado a pedido de Rosana em 08/04/2006 if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && !arrecadadorMovimentoItemHelper .getCodigoRegistro().equals( RegistroCodigo.CODIGO_C)) { arrecadadorMovimentoItemHelper .setDescricaoIndicadorAceitacao(ArrecadadorMovimentoItem.DESCRICAO_INDICADOR_NAO_ACEITO); } } BigDecimal valorPagamento = null; try { valorPagamento = repositorioArrecadacao .recuperaValorPagamentoArrecadadorMovimentoItem(arrecadadorMovimentoItem .getId()); } catch (ErroRepositorioException e) { e.printStackTrace(); } arrecadadorMovimentoItemHelper.setVlPagamento(Util .formatarMoedaReal(valorPagamento)); retorno.add(arrecadadorMovimentoItemHelper); } } if (retorno == null || retorno.isEmpty()) { throw new ControladorException("atencao.pesquisa.nenhumresultado"); } return retorno; } /** * [UC0270] Apresentar An�lise do Movimento dos Arrecadadores * * O sistema seleciona os itens do movimento do arrecadador com os seguintes * dados: 1 - C�digo do Registro 2 - Identifica��o do Im�vel/Cliente 3 - * Ocorr�ncia 4 - Indicador de Aceita��o 5 - Descri��o do Indicador de * Aceita��o * * [SF0001] Consultar os Itens do Movimento do Arrecadador * * @author Raphael Rossiter * @data 20/03/2006 * * @param arrecadadorMovimento * @return Collection<ArrecadadorMovimentoItemHelper> */ public Collection<ArrecadadorMovimentoItemHelper> consultarItensMovimentoArrecadador( ArrecadadorMovimento arrecadadorMovimento, Integer idImovel, Short indicadorAceitacao, String descricaoOcorrencia, String codigoArrecadacaoForma) throws ControladorException { Collection<ArrecadadorMovimentoItemHelper> retorno = new ArrayList(); Collection<ArrecadadorMovimentoItem> colecaoArrecadadorMovimentoItens = null; ArrecadadorMovimentoItem arrecadadorMovimentoItem = null; ArrecadadorMovimentoItemHelper arrecadadorMovimentoItemHelper = null; /* * Seleciona os itens de um determinado movimento */ try { colecaoArrecadadorMovimentoItens = repositorioArrecadacao .consultarItensMovimentoArrecadador(arrecadadorMovimento, idImovel, indicadorAceitacao, descricaoOcorrencia, codigoArrecadacaoForma); } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } if (colecaoArrecadadorMovimentoItens != null && !colecaoArrecadadorMovimentoItens.isEmpty()) { Iterator iteratorColecaoArrecadadorMovimentoItens = colecaoArrecadadorMovimentoItens .iterator(); while (iteratorColecaoArrecadadorMovimentoItens.hasNext()) { arrecadadorMovimentoItem = (ArrecadadorMovimentoItem) iteratorColecaoArrecadadorMovimentoItens .next(); arrecadadorMovimentoItemHelper = new ArrecadadorMovimentoItemHelper(); arrecadadorMovimentoItemHelper.setId(arrecadadorMovimentoItem .getId()); /* * (RGCD_CDREGISTROCODIGO da tabela REGISTRO_CODIGO com RGCD_ID = * RGCD_ID da tabela ARRECADADOR_MOVIMENTO_ITEM) */ if (arrecadadorMovimentoItem.getRegistroCodigo() != null) { arrecadadorMovimentoItemHelper .setCodigoRegistro(arrecadadorMovimentoItem .getRegistroCodigo().getCodigo()); } /* * Caso o c�digo do registro corresponda a "B", "C", "E" ou "F", * exibir a identifica��o do cliente na empresa retornada pelo * [UC0262] */ if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && arrecadadorMovimentoItemHelper.getCodigoRegistro() .equals(RegistroCodigo.CODIGO_B)) { // [UC0262] - Distribuir Dados do Registro de Movimento do // Arrecadador RegistroHelperCodigoB registroHelperCodigoB = (RegistroHelperCodigoB) this .distribuirdadosRegistroMovimentoArrecadador( arrecadadorMovimentoItem .getConteudoRegistro(), null); arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoB .getIdClienteEmpresa()); arrecadadorMovimentoItemHelper .setRegistroHelperCodigoB(registroHelperCodigoB); } else if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && arrecadadorMovimentoItemHelper.getCodigoRegistro() .equals(RegistroCodigo.CODIGO_C)) { // [UC0262] - Distribuir Dados do Registro de Movimento do // Arrecadador RegistroHelperCodigoC registroHelperCodigoC = (RegistroHelperCodigoC) this .distribuirdadosRegistroMovimentoArrecadador( arrecadadorMovimentoItem .getConteudoRegistro(), null); arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoC .getIdClienteEmpresa()); arrecadadorMovimentoItemHelper .setRegistroHelperCodigoC(registroHelperCodigoC); } else if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && arrecadadorMovimentoItemHelper.getCodigoRegistro() .equals(RegistroCodigo.CODIGO_E)) { // [UC0262] - Distribuir Dados do Registro de Movimento do // Arrecadador RegistroHelperCodigoE registroHelperCodigoE = (RegistroHelperCodigoE) this .distribuirdadosRegistroMovimentoArrecadador( arrecadadorMovimentoItem .getConteudoRegistro(), null); arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoE .getIdClienteEmpresa()); arrecadadorMovimentoItemHelper .setRegistroHelperCodigoE(registroHelperCodigoE); } else if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && arrecadadorMovimentoItemHelper.getCodigoRegistro() .equals(RegistroCodigo.CODIGO_F)) { // [UC0262] - Distribuir Dados do Registro de Movimento do // Arrecadador RegistroHelperCodigoF registroHelperCodigoF = (RegistroHelperCodigoF) this .distribuirdadosRegistroMovimentoArrecadador( arrecadadorMovimentoItem .getConteudoRegistro(), null); arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoF .getIdClienteEmpresa()); arrecadadorMovimentoItemHelper .setRegistroHelperCodigoF(registroHelperCodigoF); int tamanho = registroHelperCodigoF.getValorDebito() .length(); String valorDebito = registroHelperCodigoF.getValorDebito() .substring(0, (tamanho - 2)) + "." + registroHelperCodigoF.getValorDebito().substring( (tamanho - 2), tamanho); arrecadadorMovimentoItemHelper.setVlMovimento(Util .formatarMoedaReal(new BigDecimal(valorDebito))); } /* * Caso o c�digo do registro corresponda a "G" * * Distribui os dados do c�digo de barras [UC0264] - Distribuir * Dados co C�digo de Barras passando o c�digo de barras * retornado pelo [UC0262]- Distribuir Dados do Registro de * Movimento do Arrecadador. * * Exibir o tipo de pagamento retornado pelo [UC0262] - * Distribuir Dados co C�digo de Barras */ else if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && arrecadadorMovimentoItemHelper.getCodigoRegistro() .equals(RegistroCodigo.CODIGO_G)) { // [UC0262] - Distribuir Dados do Registro de Movimento do // Arrecadador RegistroHelperCodigoG registroHelperCodigoG = (RegistroHelperCodigoG) this .distribuirdadosRegistroMovimentoArrecadador( arrecadadorMovimentoItem .getConteudoRegistro(), null); arrecadadorMovimentoItemHelper .setRegistroHelperCodigoG(registroHelperCodigoG); int tamanho = registroHelperCodigoG.getValorRecebido() .length(); String valorRecebido = registroHelperCodigoG .getValorRecebido().substring(0, (tamanho - 2)) + "." + registroHelperCodigoG.getValorRecebido() .substring((tamanho - 2), tamanho); arrecadadorMovimentoItemHelper.setVlMovimento(Util .formatarMoedaReal(new BigDecimal(valorRecebido))); /* * CONTA = "01" FATURA = "02" REAVISO DE D�BITOS = "04" GUIA * PAGAMENTO CLIENTE = "06" GUIA PAGAMENTO IMOVEL = "09" * DOCUMENTO COBRAN�A CLIENTE RESPONSAVEL = "08" FATURA * CLIENTE RESPONSAVEL = "07" DOCUMENTO COBRAN�A IMOVEL = * "10" */ if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_CAER))) { Integer matriculaImovel = new Integer( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); // [FS0008] - Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util .obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel .toString() + digitoModulo11); } arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel.toString()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_CONTA); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CAER))) { // Alterado por S�vio Luiz Data:09/01/2008 (Analista:Rosana). // Recupera o o cliente da fatura Short codigoQualifica = new Short( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); Integer anoMesReferencia = new Integer( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); FiltroFatura filtroFatura = new FiltroFatura(); filtroFatura.adicionarParametro(new ParametroSimples(FiltroFatura.ANO_MES_REFERENCIA,anoMesReferencia)); filtroFatura.adicionarParametro(new ParametroSimples(FiltroFatura.CODIGO_QUALIFICA,codigoQualifica)); Collection colecaoFatura = getControladorUtil().pesquisar(filtroFatura,Fatura.class.getName()); Fatura fatura = (Fatura)Util.retonarObjetoDeColecao(colecaoFatura); if (fatura != null) { arrecadadorMovimentoItemHelper .setIdentificacao(""+fatura.getCliente().getId()); } arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_FATURA_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_REAVISO_CAER))) { Integer matriculaImovel = new Integer( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); // [FS0008] - Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util .obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel .toString() + digitoModulo11); } arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel.toString()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_REAVISO_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_IMOVEL_CAER))) { Integer matriculaImovel = new Integer( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); // [FS0008] - Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util .obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel .toString() + digitoModulo11); } arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel.toString()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO_IMOVEL_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_CLIENTE_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO_CLIENTE_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOC_COBRANCA_CLIENTE_RESPONSAVEL_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_DOC_COBRANCA_CLIENTE_RESPONSAVEL_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CLIENTE_RESPONSAVEL_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_FATURA_CLIENTE_RESPONSAVEL_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOC_COBRANCA_IMOVEL_CAER))) { Integer matriculaImovel = new Integer( registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); // [FS0008] - Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util .obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel .toString() + digitoModulo11); } arrecadadorMovimentoItemHelper .setIdentificacao(matriculaImovel.toString()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_DOC_COBRANCA_IMOVEL_CAER); } } // (AMIT_DSOCORRENCIA) if (arrecadadorMovimentoItem.getDescricaoOcorrencia() != null) { arrecadadorMovimentoItemHelper .setOcorrencia(arrecadadorMovimentoItem .getDescricaoOcorrencia()); } if (arrecadadorMovimentoItem.getIndicadorAceitacao() != null && arrecadadorMovimentoItem .getIndicadorAceitacao() .equals( ArrecadadorMovimentoItem.INDICADOR_ACEITO)) { arrecadadorMovimentoItemHelper .setIndicadorAceitacao(arrecadadorMovimentoItem .getIndicadorAceitacao()); // Colocado a pedido de Rosana em 08/04/2006 if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && !arrecadadorMovimentoItemHelper .getCodigoRegistro().equals( RegistroCodigo.CODIGO_C)) { arrecadadorMovimentoItemHelper .setDescricaoIndicadorAceitacao(ArrecadadorMovimentoItem.DESCRICAO_INDICADOR_ACEITO); } } else { arrecadadorMovimentoItemHelper .setIndicadorAceitacao(arrecadadorMovimentoItem .getIndicadorAceitacao()); // Colocado a pedido de Rosana em 08/04/2006 if (arrecadadorMovimentoItemHelper.getCodigoRegistro() != null && !arrecadadorMovimentoItemHelper .getCodigoRegistro().equals( RegistroCodigo.CODIGO_C)) { arrecadadorMovimentoItemHelper .setDescricaoIndicadorAceitacao(ArrecadadorMovimentoItem.DESCRICAO_INDICADOR_NAO_ACEITO); } } BigDecimal valorPagamento = null; try { valorPagamento = repositorioArrecadacao .recuperaValorPagamentoArrecadadorMovimentoItem(arrecadadorMovimentoItem .getId()); } catch (ErroRepositorioException e) { e.printStackTrace(); } arrecadadorMovimentoItemHelper.setVlPagamento(Util .formatarMoedaReal(valorPagamento)); retorno.add(arrecadadorMovimentoItemHelper); } } if (retorno == null || retorno.isEmpty()) { throw new ControladorException("atencao.pesquisa.nenhumresultado"); } return retorno; } /** * Obt�m a representa��o n�merica do c�digo de barras de um pagamento de * acordo com os par�metros informados * * [UC0229] Obter Representa��o Num�rica do C�digo de Barras * * Formata a identifica��o do pagamento de acordo com o tipo de pagamento * informado * * [SB0001] Obter Identifica��o do Pagamento * * @author Pedro Alexandre * @date 20/04/2006 * * @param tipoPagamento * @param idLocalidade * @param matriculaImovel * @param anoMesReferenciaConta * @param digitoVerificadorRefContaModulo10 * @param idTipoDebito * @param anoEmissaoGuiaPagamento * @param sequencialDocumentoCobranca * @param idTipoDocumento * @param idCliente * @param seqFaturaClienteResponsavel * @param idDebitoCreditoSituacaoAtual * @return */ public String obterIdentificacaoPagamento(Integer tipoPagamento, Integer idLocalidade, Integer matriculaImovel, String mesAnoReferenciaConta, Integer digitoVerificadorRefContaModulo10, Integer idTipoDebito, String anoEmissaoGuiaPagamento, String sequencialDocumentoCobranca, Integer idTipoDocumento, Integer idCliente, Integer seqFaturaClienteResponsavel,String idGuiaPagamento) throws ControladorException { // Cria a vari�vel que vai armazenar o identificador do pagamento // formatado String identificacaoPagamento = ""; String matriculaImovelString = null; String matriculaImovelSemDigito = null; if (matriculaImovel != null) { matriculaImovelString = matriculaImovel.toString(); matriculaImovelSemDigito = matriculaImovelString.substring(0, matriculaImovelString.length() - 1); } if (tipoPagamento.intValue() == 3) { // Mover "01" para G05.7.1 identificacaoPagamento = "01"; // Matricula do imovel sem o digito identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(6, "" + matriculaImovelSemDigito); // MesAnoReferencia identificacaoPagamento = identificacaoPagamento + Util.formatarMesAnoParaAnoMes(mesAnoReferenciaConta); /* * Integer idDebitoCreditoSituacaoAtual = * this.getControladorFaturamento() * .pesquisarDebitoCreditoSituacaoAtualConta(matriculaImovel, new * Integer(Util.formatarMesAnoParaAnoMes(mesAnoReferenciaConta))); * * //Codigo Origem da Conta if * (idDebitoCreditoSituacaoAtual.equals(DebitoCreditoSituacao.NORMAL)){ * identificacaoPagamento = identificacaoPagamento + "19"; } else if * (idDebitoCreditoSituacaoAtual.equals(DebitoCreditoSituacao.RETIFICADA)){ * identificacaoPagamento = identificacaoPagamento + "27"; } else{ * identificacaoPagamento = identificacaoPagamento + "35"; } */ // Codigo Origem da Conta identificacaoPagamento = identificacaoPagamento + "00"; // Numero do Documento // identificacaoPagamento = identificacaoPagamento + "000000000"; identificacaoPagamento = identificacaoPagamento + "00000000"; } else if (tipoPagamento.intValue() == 4) { // Mover "09" para G05.7.1 identificacaoPagamento = "09"; // Localidade identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(3, "" + idLocalidade); // Matricula do imovel sem o digito identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(8, "" + matriculaImovelSemDigito); // Nao utilizado preencher com zeros (3) identificacaoPagamento = identificacaoPagamento + "00"; // Tipo do debito identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(4, idTipoDebito .toString())); // Ano da emissao da guia de pagamento identificacaoPagamento = identificacaoPagamento + anoEmissaoGuiaPagamento; // Nao utilizado preencher com zeros (2) // identificacaoPagamento = identificacaoPagamento + "00"; identificacaoPagamento = identificacaoPagamento + "0"; } else if (tipoPagamento.intValue() == 5) { /* * Alterado por Raphael Rossiter em 10/09/2007 (Analista: Rosana * Carvalho) OBJ: Mover 10 e n�o 04 para o campo G05.7.1 */ // Mover "10" para G05.7.1 identificacaoPagamento = "10"; // Matricula do imovel sem o digito identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(6, "" + matriculaImovelSemDigito); // Sequencial do documento de cobran�a /* * identificacaoPagamento = identificacaoPagamento + * (Util.adicionarZerosEsquedaNumero(17, * sequencialDocumentoCobranca.toString())); */ identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(16, sequencialDocumentoCobranca.toString())); } else if (tipoPagamento.intValue() == 6) { // Tipo de Pagamento identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(2, tipoPagamento .toString())); // Localidade identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumero(3, "" + idLocalidade); // Cliente identificacaoPagamento = identificacaoPagamento + (Util .adicionarZerosEsquedaNumero(8, idCliente .toString())); // Nao utilizado preencher com zeros (3) identificacaoPagamento = identificacaoPagamento + "00"; // Tipo do debito identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(4, idTipoDebito .toString())); // Ano da emissao da guia de pagamento identificacaoPagamento = identificacaoPagamento + anoEmissaoGuiaPagamento; // Nao utilizado preencher com zeros (2) // identificacaoPagamento = identificacaoPagamento + "00"; identificacaoPagamento = identificacaoPagamento + "0"; } else if (tipoPagamento.intValue() == 7) { // Tipo de Pagamento identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(2, tipoPagamento .toString())); // Cliente identificacaoPagamento = identificacaoPagamento + (Util .adicionarZerosEsquedaNumero(9, idCliente .toString())); // Nao utilizado preencher com zeros (1) // identificacaoPagamento = identificacaoPagamento + "0"; // MesAnoReferencia identificacaoPagamento = identificacaoPagamento + mesAnoReferenciaConta; // Digito verificador da conta no modulo 10 identificacaoPagamento = identificacaoPagamento + digitoVerificadorRefContaModulo10; // Sequencial da fatura do cliente responsavel identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(6, seqFaturaClienteResponsavel.toString())); } else if (tipoPagamento.intValue() == 8) { // Tipo de Pagamento identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(2, tipoPagamento .toString())); // Nao utilizado preencher com zeros (3) identificacaoPagamento = identificacaoPagamento + "000"; // Cliente identificacaoPagamento = identificacaoPagamento + (Util .adicionarZerosEsquedaNumero(8, idCliente .toString())); // Sequencial do documento de cobran�a identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(9, sequencialDocumentoCobranca.toString())); // Tipo de documento identificacaoPagamento = identificacaoPagamento + (Util.adicionarZerosEsquedaNumero(2, idTipoDocumento .toString())); // Nao utilizado preencher com zeros (3) // identificacaoPagamento = identificacaoPagamento + "0"; } else if (tipoPagamento.intValue() == 1 || tipoPagamento.intValue() == 9){ identificacaoPagamento = Util.adicionarZerosEsquedaNumeroTruncando(3,idLocalidade.toString()); if(tipoPagamento.intValue() == 1){ identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumeroTruncando(9,matriculaImovel.toString()); identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumeroTruncando(9,idGuiaPagamento); //FIXO identificacaoPagamento = identificacaoPagamento + "00"; //Identifica o tamanho da matr�cula do im�vel identificacaoPagamento = identificacaoPagamento + "1"; } else if(tipoPagamento.intValue() == 9){ identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumeroTruncando(9,idCliente.toString()); identificacaoPagamento = identificacaoPagamento + Util.adicionarZerosEsquedaNumeroTruncando(9,idGuiaPagamento); //FIXO identificacaoPagamento = identificacaoPagamento + "00"; //Identifica o tamanho da matr�cula do im�vel identificacaoPagamento = identificacaoPagamento + "1"; } } // Retorna o identificador do pagamento formatado return identificacaoPagamento; } /** * [UC0319] Gerar Movimento de D�bito Autom�tico para o banco * * Cria uma linha de 150 posi��es com o registro tipo E. * * * [SB0001] - Gerar Movimento para Debito Autom�tico * * @author S�vio Luiz * @date 20/04/2006 * * @param banco,debitoAutomaticoMovimento * @return StringBuilder * @throws ControladorException */ protected StringBuilder criarRegistroTipoE(Banco banco, DebitoAutomaticoMovimento debitoAutomaticoMovimento) throws ControladorException { StringBuilder registroTipoE = new StringBuilder(); Conta conta = debitoAutomaticoMovimento.getContaGeral().getConta(); registroTipoE.append("E"); // identifica��o do cliente na empresa // String matriculaImovel = conta.getImovel().getId().toString(); // String matriculaImovelSemDigito = matriculaImovel.substring(0, // matriculaImovel.length() - 1); FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro( new ParametroSimples(FiltroImovel.ID,conta.getImovel().getId())); Collection colecaoImoveis = this.getControladorUtil() .pesquisar(filtroImovel, Imovel.class.getName()); Imovel imovel = (Imovel) colecaoImoveis.iterator().next(); String identificacaoCliente = Util.adicionarZerosEsquedaNumero(7, imovel.getCodigoDebitoAutomatico().toString()); registroTipoE.append(Util.completaString(identificacaoCliente, 25)); String codigoAgencia = debitoAutomaticoMovimento.getDebitoAutomatico() .getAgencia().getCodigoAgencia(); // agencia para d�bito registroTipoE .append(Util.adicionarZerosEsquedaNumero(4, codigoAgencia)); // Identifica��o do cliente no Banco registroTipoE.append(Util.completaString(debitoAutomaticoMovimento .getDebitoAutomatico().getIdentificacaoClienteBanco(), 14)); // data de vencimento(AAAAMMDD) String dataVencimento = Util.recuperaAnoMesDiaDaData(conta .getDataVencimentoConta()); registroTipoE.append(dataVencimento); // Valor do d�bito BigDecimal valorDebito = new BigDecimal("0.00"); valorDebito = valorDebito.add(conta.getValorAgua()); valorDebito = valorDebito.add(conta.getValorEsgoto()); valorDebito = valorDebito.add(conta.getDebitos()); valorDebito = valorDebito.subtract(conta.getValorCreditos()); /* * Colocado por Raphael Rossiter em 24/10/2007 (Analista: Rosana * Carvalho) OBJETIVO: Retirar o valor dos impostos do valor total da * conta */ if (conta.getValorImposto() != null) { valorDebito = valorDebito.subtract(conta.getValorImposto()); } String valorDebitoString = ("" + valorDebito).replace(".", ""); registroTipoE.append(Util.adicionarZerosEsquedaNumero(15, valorDebitoString)); // C�digo da moeda registroTipoE.append("03"); // inicio preenchido conforme segue abaixo(E.07) // Ano/M�s de refer�ncia da conta no formato AAAAMM registroTipoE.append(conta.getReferencia()); // Digito verificador da conta registroTipoE.append(conta.getDigitoVerificadorConta()); // Id da conta registroTipoE.append(Util.completaString("" + conta.getId(), 9)); // id do grupo de faturamento registroTipoE.append(Util.completaString("" + debitoAutomaticoMovimento.getFaturamentoGrupo().getId(), 2)); // reservado para o futuro registroTipoE.append(Util.completaString("", 42)); // fim preenchido conforme segue abaixo(E.07) // reservado para o futuro registroTipoE.append(Util.completaString("", 20)); // Tipo do Movimento registroTipoE.append("0"); return registroTipoE; } /** * [UC0262] - Distribuir dados do Registro de Movimento do Arrecadador * * Autor: S�vio Luiz, Raphael Rossiter Data: 30/01/2006, 14/08/2007 * * Caso a descri��o de Ocorrencia venha nula ent�o recupera o c�digo * registro da linha sen�o ent�o seta o valor de c�digo registro para 'C' */ public Object distribuirdadosRegistroMovimentoArrecadador(String linha, String descricaoOcorrencia) throws ControladorException { Object registroHelperCodigo = null; // inicializa a variavel como 0 char codigoRegistro = '0'; // se a descri��o da ocorrencia for diferente de null // ent�o � para setar o objeto registroHelperCodigoC if (descricaoOcorrencia != null) { codigoRegistro = 'C'; } else { codigoRegistro = linha.substring(0, 1).toUpperCase().charAt(0); } String matriculaImovel = null; switch (codigoRegistro) { case 'A': RegistroHelperCodigoA registroHelperCodigoA = new RegistroHelperCodigoA(); // recupera o codigo do registro registroHelperCodigoA.setCodigoRegistro("" + codigoRegistro); // recupera o codigo da remessa registroHelperCodigoA .setCodigoRemessa(linha.substring(1, 2).trim()); // recupera o c�digo do conv�nio registroHelperCodigoA.setCodigoConvenio(linha.substring(2, 22) .trim()); // recupera o nome da empresa registroHelperCodigoA .setNomeEmpresa(linha.substring(22, 42).trim()); // recupera o codigo do banco registroHelperCodigoA .setCodigoBanco(linha.substring(42, 45).trim()); // recupera o nome do banco registroHelperCodigoA.setNomeBanco(linha.substring(45, 65).trim()); // recupera a data de gera��o do arquivo registroHelperCodigoA.setDataGeracaoArquivo(linha.substring(65, 73) .trim()); // recupera o numero sequencial do arquivo(NSA) registroHelperCodigoA.setNumeroSequencialArquivo(linha.substring( 73, 79).trim()); // recupera a vers�o do layout registroHelperCodigoA.setVersaoLayout(linha.substring(79, 81) .trim()); // recupera o tipo de movimento registroHelperCodigoA.setTipoMovimento(linha.substring(81, 98) .trim()); if (linha.substring(149, 150).trim().equals("*")) { // recupera o reservado para o futuro registroHelperCodigoA.setReservadoFuturo(linha.substring(98, 149).trim()); } else { // recupera o reservado para o futuro registroHelperCodigoA.setReservadoFuturo(linha.substring(98, 150).trim()); } // faz um cast para o object registroHelperCodigo = (Object) registroHelperCodigoA; break; case 'B': RegistroHelperCodigoB registroHelperCodigoB = new RegistroHelperCodigoB(); // recupera o codigo do registro registroHelperCodigoB.setCodigoRegistro("" + codigoRegistro); // recupera a identifica��o do cliente na empresa matriculaImovel = linha.substring(1, 26).trim(); //Comentado por Raphael Rossiter em 01/11/2007 - Analista: Rosana Carvalho //Calcular Digito Verificador da Matricula /*if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11(matriculaImovel); matriculaImovel = matriculaImovel + digitoModulo11; }*/ if (matriculaImovel.length() < 8){ matriculaImovel = Util.adicionarZerosEsquedaNumero(8, matriculaImovel); } registroHelperCodigoB.setIdClienteEmpresa(matriculaImovel); // recupera a agencia para debito registroHelperCodigoB.setAgenciaDebito(linha.substring(26, 30) .trim()); // recupera o identifica��o do cliente no banco registroHelperCodigoB.setIdClienteBanco(linha.substring(30, 44) .trim()); // recupera a data de Op��o/Exclus�o registroHelperCodigoB.setDataOpcaoExclusao(linha.substring(44, 52) .trim()); // recupera o reservado para o futuro registroHelperCodigoB.setReservadoFuturo(linha.substring(52, 149) .trim()); // recupera a codigo movimento if (!linha.substring(149, 150).trim().equals("*")) { registroHelperCodigoB.setCodigoMovimento(linha.substring(149, 150).trim()); } // faz um cast para o object registroHelperCodigo = (Object) registroHelperCodigoB; break; case 'C': RegistroHelperCodigoC registroHelperCodigoC = new RegistroHelperCodigoC(); // recupera o codigo do registro registroHelperCodigoC.setCodigoRegistro("" + codigoRegistro); // recupera a identifica��o do cliente na empresa registroHelperCodigoC.setIdClienteEmpresa(linha.substring(1, 26) .trim()); // recupera a agencia para debito registroHelperCodigoC.setAgenciaDebito(linha.substring(26, 30) .trim()); // recupera o identifica��o do cliente no banco registroHelperCodigoC.setIdClienteBanco(linha.substring(30, 44) .trim()); // recupera a descri��o da ocorrencia do movimento registroHelperCodigoC .setDescricaoOcorrenciaMovimento(descricaoOcorrencia); // recupera os brancos registroHelperCodigoC.setBrancos(linha.substring(84, 124).trim()); // recupera o reservado para o futuro registroHelperCodigoC.setReservadoFuturo(linha.substring(124, 149) .trim()); if (!linha.substring(149, 150).trim().equals("*")) { // recupera a codigo movimento registroHelperCodigoC.setCodigoMovimento(linha.substring(149, 150).trim()); } // faz um cast para o object registroHelperCodigo = (Object) registroHelperCodigoC; break; case 'E': RegistroHelperCodigoE registroHelperCodigoE = new RegistroHelperCodigoE(); // recupera o codigo do registro registroHelperCodigoE.setCodigoRegistro("" + codigoRegistro); // recupera a identifica��o do cliente na empresa registroHelperCodigoE.setIdClienteEmpresa(linha.substring(1, 26) .trim()); // recupera a agencia para debito registroHelperCodigoE.setAgenciaDebito(linha.substring(26, 30) .trim()); // recupera o identifica��o do cliente no banco registroHelperCodigoE.setIdClienteBanco(linha.substring(30, 44) .trim()); // recupera a data do debito registroHelperCodigoE.setDataDebito(linha.substring(44, 52).trim()); // recupera o valor debitado registroHelperCodigoE .setValorDebito(linha.substring(52, 67).trim()); // recupera o codigo da moeda registroHelperCodigoE .setCodigoMoeda(linha.substring(67, 69).trim()); // recupera o c�digo de movimento registroHelperCodigoE.setAnoMesReferenciaConta(linha.substring(69, 75).trim()); // recupera o digito verificado no modulo dez(10) do ano e mes // da // contadebitada registroHelperCodigoE.setDigitoVerificadoAnoMesConta(linha .substring(75, 76).trim()); // grupo de faturamento registroHelperCodigoE.setGruposFaturamento(linha.substring(76, 129) .trim()); // recupera o reservado para o futuro registroHelperCodigoE.setReservadoFuturo(linha.substring(129, 149) .trim()); if (!linha.substring(149, 150).trim().equals("*")) { // recupera o codigo do movimento enviado no registro de // c�digo // E registroHelperCodigoE.setCodigoMovimento(linha.substring(149, 150).trim()); } // faz um cast para o object registroHelperCodigo = (Object) registroHelperCodigoE; break; case 'F': RegistroHelperCodigoF registroHelperCodigoF = new RegistroHelperCodigoF(); // recupera o codigo do registro registroHelperCodigoF.setCodigoRegistro("" + codigoRegistro); // recupera a identifica��o do cliente na empresa matriculaImovel = linha.substring(1, 26).trim(); // Calcular Digito Verificador da Matricula /* * if (matriculaImovel != null) { * * int digitoModulo11 = * Util.obterDigitoVerificadorModulo11(matriculaImovel); * * matriculaImovel = matriculaImovel + digitoModulo11; } */ if (matriculaImovel.length() < 8) { matriculaImovel = Util.adicionarZerosEsquedaNumero(8, matriculaImovel); } registroHelperCodigoF.setIdClienteEmpresa(matriculaImovel); // recupera a agencia para debito registroHelperCodigoF.setAgenciaDebito(linha.substring(26, 30) .trim()); // recupera o identifica��o do cliente no banco registroHelperCodigoF.setIdClienteBanco(linha.substring(30, 44) .trim()); // recupera a data do debito registroHelperCodigoF.setDataDebito(linha.substring(44, 52).trim()); // recupera o valor debitado registroHelperCodigoF .setValorDebito(linha.substring(52, 67).trim()); // recupera o codigo do retorno registroHelperCodigoF.setCodigoRetorno(linha.substring(67, 69) .trim()); // recupera o ano mes de referencia da conta registroHelperCodigoF.setAnoMesReferenciaConta(linha.substring(69, 75).trim()); // recupera o digito verificado no modulo dez(10) do ano e mes // da // contadebitada registroHelperCodigoF.setDigitoVerificadoAnoMesConta(linha .substring(75, 76).trim()); // grupo de faturamento registroHelperCodigoF.setGruposFaturamento(linha.substring(76, 129) .trim()); // recupera o reservado para o futuro registroHelperCodigoF.setReservadoFuturo(linha.substring(129, 149) .trim()); if (!linha.substring(149, 150).trim().equals("*")) { // recupera o codigo do movimento enviado no registro de // c�digo // F registroHelperCodigoF.setCodigoMovimento(linha.substring(149, 150).trim()); } // faz um cast para o object registroHelperCodigo = (Object) registroHelperCodigoF; break; case 'G': RegistroHelperCodigoG registroHelperCodigoG = new RegistroHelperCodigoG(); // recupera o codigo do registro registroHelperCodigoG.setCodigoRegistro("" + codigoRegistro); // recupera a identifica��o da agencia /conta/digito creditada registroHelperCodigoG.setIdAgenciaContaDigito(linha .substring(1, 21).trim()); // recupera a data de pagamento(AAAAMMDD) registroHelperCodigoG.setDataPagamento(linha.substring(21, 29) .trim()); // recupera a data prevista para o credito(AAAAMMDD) registroHelperCodigoG.setDataPrevistaCredito(linha .substring(29, 37).trim()); // recupera O C�DIGO DE BARRAS //String codigoBarras = linha.substring(37, 81).trim(); String codigoBarras = linha.substring(37, 93).trim(); RegistroHelperCodigoBarras registroHelperCodigoBarras = distribuirDadosCodigoBarras(codigoBarras); // seta tamb�m o c�digo de barra como string registroHelperCodigoG.setCodigoBarras(codigoBarras); registroHelperCodigoG .setRegistroHelperCodigoBarras(registroHelperCodigoBarras); // recupera o valor recebido registroHelperCodigoG.setValorRecebido(linha.substring(81, 93) .trim()); // recupera o valor da tarifa registroHelperCodigoG.setValorTarifa(linha.substring(93, 100) .trim()); // recupera o numero sequencial do registro(NRS) registroHelperCodigoG.setNumeroSeqRegistro(linha .substring(100, 108).trim()); // recupera o codigo da agencia arrecadadora registroHelperCodigoG.setCodigoAgenciaArrecadadora(linha.substring( 108, 116).trim()); // recupera a foma de arrecada��o/captura String codigoArrecadacaoForma = linha.substring(116, 117).trim(); registroHelperCodigoG .setCodigoFormaArrecadacao(codigoArrecadacaoForma); String descricaoArrecadacaoForma = ""; try { descricaoArrecadacaoForma = this.repositorioArrecadacao .recuperaDescricaoArrecadacaoForma(codigoArrecadacaoForma); } catch (ErroRepositorioException e) { e.printStackTrace(); } registroHelperCodigoG .setFormaArrecadacao(descricaoArrecadacaoForma); // recupera o numero de autentica��o caixa ou c�digo de // transa��o registroHelperCodigoG.setNumeroAutenticacao(linha.substring(117, 140).trim()); if (!linha.substring(140, 141).trim().equals("")) { // recupera a forma de pagamento registroHelperCodigoG.setFormaPagamento(linha.substring(140, 141).trim()); } else { // recupera a forma de pagamento registroHelperCodigoG.setFormaPagamento("1"); } if (linha.substring(149, 150).trim().equals("*")) { // recupera o reservado para o futuro registroHelperCodigoG.setReservadoFuturo(linha.substring(141, 149).trim()); } else { // recupera o reservado para o futuro registroHelperCodigoG.setReservadoFuturo(linha.substring(141, 150).trim()); } // faz um cast para o object registroHelperCodigo = (Object) registroHelperCodigoG; break; case 'X': RegistroHelperCodigoX registroHelperCodigoX = new RegistroHelperCodigoX(); // recupera o codigo do registro registroHelperCodigoX.setCodigoRegistro("" + codigoRegistro); // recupera o c�digo agencia registroHelperCodigoX.setCodigoAgencia(linha.substring(1, 5)); // recupera o nome da agencia registroHelperCodigoX.setNomeAgencia(linha.substring(5, 35)); // recupera o nome do logradouro registroHelperCodigoX.setNomelogradouro(linha.substring(35, 65)); // recupera o numero registroHelperCodigoX.setNumero(linha.substring(65, 70)); // recupera o c�digo do cep registroHelperCodigoX.setCodigoCep(linha.substring(70, 75)); // recupera o sufixo do cep registroHelperCodigoX.setSufixoCep(linha.substring(75, 78)); // recupera o nome da cidade registroHelperCodigoX.setNomeCidade(linha.substring(78, 98)); // recupera a sigla da unidade federa��o registroHelperCodigoX.setSiglaUnidadeFederacao(linha.substring(98, 100)); // recupera a situa��o da agencia registroHelperCodigoX.setSituacaoAgencia(linha.substring(100, 101)); if (linha.substring(149, 150).trim().equals("*")) { // recupera o reservado para o futuro registroHelperCodigoX.setReservadoFuturo(linha.substring(101, 149)); } else { // recupera o reservado para o futuro registroHelperCodigoX.setReservadoFuturo(linha.substring(101, 150)); } // faz um cast para o object registroHelperCodigo = (Object) registroHelperCodigoX; break; case 'Z': RegistroHelperCodigoZ registroHelperCodigoZ = new RegistroHelperCodigoZ(); // recupera o codigo do registro registroHelperCodigoZ.setCodigoRegistro("" + codigoRegistro); // recupera o total de registros do arquivo registroHelperCodigoZ.setTotalRegistrosArquivo(linha .substring(1, 7)); // recupera o valor total recebido dos registrosdo arquivo registroHelperCodigoZ.setValorTotalRegistrosArquivo(linha .substring(7, 24)); if (linha.substring(149, 150).trim().equals("*")) { // recupera o reservado para o futuro registroHelperCodigoZ.setReservadoFuturo(linha.substring(24, 149)); } else { // recupera o reservado para o futuro registroHelperCodigoZ.setReservadoFuturo(linha.substring(24, 150)); } // faz um cast para o object registroHelperCodigo = (Object) registroHelperCodigoZ; break; } return registroHelperCodigo; } /** * [UC0259] - Processar Pagamento com C�digo de Barras * * GUIA DE PAGAMENTO * * Autor: Raphael Rossiter Data: 31/08/2007 */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasGuiaPagamento( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaPagamento) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamnetos = new ArrayList(); boolean idLocalidadeInvalida = false; boolean matriculaImovelInvalida = false; Integer idImovelNaBase = null; String matriculaImovel = null; Integer matriculaImovelValidada = null; idLocalidadeInvalida = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); if (idLocalidadeInvalida) { descricaoOcorrencia = "C�DIGO DA LOCALIDADE N�O NUM�RICA"; } matriculaImovelInvalida = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); if (matriculaImovelInvalida) { descricaoOcorrencia = "M�TRICULA DO IM�VEL INV�LIDA"; } else { // [FS0008] - Calcular Digito Verificador da Matricula CAER matriculaImovel = registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3(); if (matriculaImovel != null) { int digitoModulo11 = Util .obterDigitoVerificadorModulo11(matriculaImovel); matriculaImovelValidada = new Integer(matriculaImovel + digitoModulo11); } // Verifica se existe a matricula do im�vel na base try { idImovelNaBase = repositorioImovel .recuperarMatriculaImovel(matriculaImovelValidada); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } if (idImovelNaBase == null) { descricaoOcorrencia = "MATR�CULA DO IM�VEL N�O CADASTRADA"; } } // Valida o tipo do d�bito boolean codigoTipoDebito = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5()); if (codigoTipoDebito) { descricaoOcorrencia = "TIPO DO D�BITO N�O NUM�RICO"; } else { Integer idDebitoTipoNaBase = getControladorFaturamento() .verificarExistenciaDebitoTipo( Util .converterStringParaInteger(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5())); if (idDebitoTipoNaBase == null) { descricaoOcorrencia = "TIPO DO D�BITO INEXISTENTE"; } } if (descricaoOcorrencia.equals("OK")) { Integer idLocalidade = null; Integer idGuiaPagamento = null; Integer idDebitoTipo = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5()); Imovel imovel = new Imovel(); imovel.setId(idImovelNaBase); try { /* * Alterado por Ana Maria em 11/08/2008 - Analistas: Denys e Aryed * Colocar o valor do pagamento na pesquisa de guia. Caso retorne mais * de uma guia de pagamento, selecionar a que tiver o menor vencimento. */ idGuiaPagamento = repositorioArrecadacao .pesquisarExistenciaGuiaPagamento(imovel, idDebitoTipo, valorPagamento); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } if (idGuiaPagamento == null || idGuiaPagamento.equals("")) { descricaoOcorrencia = "GUIA PAGAMENTO INEXISTENTE"; } /** * Alterado por Arthur Carvalho em 29/12/2009 - Analista Rafael Pinto * Gera Guia de Pagamento. Caso a Guia de Pagamento seja NUlA e o Debito tipo = DOACAO. */ if ( idGuiaPagamento == null ) { FiltroDebitoTipo filtroDebitoTipo = new FiltroDebitoTipo(); filtroDebitoTipo.adicionarParametro( new ParametroSimples( FiltroDebitoTipo.ID, idDebitoTipo) ); Collection colecaoDebitoTipo = getControladorUtil().pesquisar(filtroDebitoTipo, DebitoTipo.class.getName()); if ( colecaoDebitoTipo != null && !colecaoDebitoTipo.equals("")) { DebitoTipo debitoTipo = (DebitoTipo) Util.retonarObjetoDeColecao(colecaoDebitoTipo); if (debitoTipo.getCodigoConstante() != null && DebitoTipo.DOACAO == debitoTipo.getCodigoConstante().intValue() ) { //Gera Guia de Pagamento idGuiaPagamento = this.inserirGuiaPagamentoReferenteDebitoTipoDoacao( idImovelNaBase, debitoTipo, dataPagamento, valorPagamento); } } } /* * Alterado por Raphael Rossiter em 11/01/2008 - Analistas: Eduardo e Aryed * OBJ: Gerar os pagamentos associados com a localidade da guia de pagamento e N�O com * a localidade do im�vel. */ if (idGuiaPagamento != null) { try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorGuiaPagamento(idGuiaPagamento); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else{ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidade(idImovelNaBase); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } // Cria o objeto pagamento para setar os dados Pagamento pagamento = new Pagamento(); pagamento.setAnoMesReferenciaPagamento(null); /* * Caso o ano mes da data de dedito seja maior que o ano mes de * arrecada��o da tabela sistema parametro ent�o seta o ano mes da * data de debito */ if (anoMesPagamento > sistemaParametro.getAnoMesArrecadacao()) { pagamento.setAnoMesReferenciaArrecadacao(anoMesPagamento); } else { /* * caso contrario seta o o ano mes arrecada��o da tabela sistema * parametro */ pagamento.setAnoMesReferenciaArrecadacao(sistemaParametro .getAnoMesArrecadacao()); } pagamento.setValorPagamento(valorPagamento); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(idDebitoTipo); pagamento.setDebitoTipo(debitoTipo); pagamento.setContaGeral(null); // Verifica se o id da conta � diferente de nulo if (idGuiaPagamento != null) { GuiaPagamento guiaPagamento = new GuiaPagamento(); guiaPagamento.setId(idGuiaPagamento); pagamento.setGuiaPagamento(guiaPagamento); } else { pagamento.setGuiaPagamento(null); } // verifica se o id da conta � diferente de nulo if (idLocalidade != null) { Localidade localidade = new Localidade(); localidade.setId(idLocalidade); pagamento.setLocalidade(localidade); } else { pagamento.setLocalidade(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.GUIA_PAGAMENTO); pagamento.setDocumentoTipo(documentoTipo); pagamento.setAvisoBancario(null); if (idImovelNaBase != null) { pagamento.setImovel(imovel); } else { pagamento.setImovel(null); } pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaPagamento); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); pagamento.setFatura(null); pagamento.setCobrancaDocumento(null); DocumentoTipo documentoAgregador = new DocumentoTipo(); documentoAgregador.setId(DocumentoTipo.GUIA_PAGAMENTO); pagamento.setDocumentoTipoAgregador(documentoAgregador); colecaoPagamnetos.add(pagamento); } else { // Atribui o valor 2(N�O) ao indicador aceitacao registro indicadorAceitacaoRegistro = "2"; } // Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamnetos); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras .setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); return pagamentoHelperCodigoBarras; } /** * [UC0259] - Processar Pagamento com C�digo de Barras * * GUIA DE PAGAMENTO CLIENTE(Tipo 6) * * Autor: Ana Maria Data: 06/08/2007 */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasGuiaPagamentoCliente( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaPagamento) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamnetos = new ArrayList(); boolean idLocalidadeInvalida = false; boolean idClienteInvalido = false; Integer idClienteNaBase = null; idLocalidadeInvalida = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); if (idLocalidadeInvalida) { descricaoOcorrencia = "C�DIGO DA LOCALIDADE N�O NUM�RICA"; } idClienteInvalido = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); Integer idCliente = null; if (idClienteInvalido) { descricaoOcorrencia = "C�DIGO DO CLIENTE N�O NUM�RICO"; } else { // verifica se existe o id do cliente na // base idCliente = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); try { idClienteNaBase = repositorioCliente .verificarExistenciaCliente(new Integer(idCliente)); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (idClienteNaBase == null) { descricaoOcorrencia = "CLIENTE RESPONS�VEL N�O CADASTRADO"; } } // Valida o namo mes de referencia da conta boolean codigoTipoDebito = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5()); if (codigoTipoDebito) { descricaoOcorrencia = "TIPO DO D�BITO N�O NUM�RICO"; } else { Integer idDebitoTipoNaBase = getControladorFaturamento() .verificarExistenciaDebitoTipo( Util .converterStringParaInteger(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5())); if (idDebitoTipoNaBase == null) { descricaoOcorrencia = "TIPO DO D�BITO INEXISTENTE"; } } if (descricaoOcorrencia.equals("OK")) { Integer idLocalidade = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); Integer idGuiaPagamento = null; Integer idDebitoTipo = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5()); // Imovel imovel = new Imovel(); // imovel.setId(idImovelNaBase); try { // idLocalidade = // repositorioLocalidade.pesquisarIdLocalidade(idImovelNaBase); idGuiaPagamento = repositorioArrecadacao .pesquisarExistenciaGuiaPagamentoCliente(idCliente, idDebitoTipo); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } if (idGuiaPagamento == null || idGuiaPagamento.equals("")) { descricaoOcorrencia = "GUIA PAGAMENTO INEXISTENTE"; } // Cria o objeto pagamento para setar os dados Pagamento pagamento = new Pagamento(); pagamento.setAnoMesReferenciaPagamento(null); /* * Caso o ano mes da data de dedito seja maior que o ano mes de * arrecada��o da tabela sistema parametro ent�o seta o ano mes da * data de debito */ if (anoMesPagamento > sistemaParametro.getAnoMesArrecadacao()) { pagamento.setAnoMesReferenciaArrecadacao(anoMesPagamento); } else { /* * caso contrario seta o o ano mes arrecada��o da tabela sistema * parametro */ pagamento.setAnoMesReferenciaArrecadacao(sistemaParametro .getAnoMesArrecadacao()); } pagamento.setValorPagamento(valorPagamento); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(idDebitoTipo); pagamento.setDebitoTipo(debitoTipo); pagamento.setContaGeral(null); // Verifica se o id da conta � diferente de nulo if (idGuiaPagamento != null) { GuiaPagamento guiaPagamento = new GuiaPagamento(); guiaPagamento.setId(idGuiaPagamento); pagamento.setGuiaPagamento(guiaPagamento); } else { pagamento.setGuiaPagamento(null); } // verifica se o id da conta � diferente de nulo if (idLocalidade != null) { Localidade localidade = new Localidade(); localidade.setId(idLocalidade); pagamento.setLocalidade(localidade); } else { pagamento.setLocalidade(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.GUIA_PAGAMENTO); pagamento.setDocumentoTipo(documentoTipo); pagamento.setAvisoBancario(null); if (idCliente != null) { Cliente cliente = new Cliente(); cliente.setId(idCliente); pagamento.setCliente(cliente); } else { pagamento.setCliente(null); } pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaPagamento); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setImovel(null); pagamento.setUltimaAlteracao(new Date()); pagamento.setFatura(null); pagamento.setCobrancaDocumento(null); DocumentoTipo documentoAgregador = new DocumentoTipo(); documentoAgregador.setId(DocumentoTipo.GUIA_PAGAMENTO); pagamento.setDocumentoTipoAgregador(documentoAgregador); colecaoPagamnetos.add(pagamento); } else { // Atribui o valor 2(N�O) ao indicador aceitacao registro indicadorAceitacaoRegistro = "2"; } // Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamnetos); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras .setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); return pagamentoHelperCodigoBarras; } /** * [UC0259] - Processar Pagamento com C�digo de Barras * * DOCUMENTO COBRAN�A TIPO 08 * * Autor: Raphael Rossiter Data: 02/05/2007 */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasDocumentoCobrancaTipo8( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaPagamento) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamnetos = new ArrayList(); // valida o cliente boolean idClienteInvalido = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); Integer idClienteNaBase = null; if (idClienteInvalido) { descricaoOcorrencia = "C�DIGO DO CLIENTE N�O NUM�RICO"; } else { // verifica se existe o id do cliente na // base Integer idCliente = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()); try { idClienteNaBase = repositorioCliente .verificarExistenciaCliente(new Integer(idCliente)); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (idClienteNaBase == null) { descricaoOcorrencia = "CLIENTE RESPONS�VEL N�O CADASTRADO"; } } // valida o namo mes de referencia da conta boolean tipoDocumentoInvalido = Util .validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5()); if (tipoDocumentoInvalido) { descricaoOcorrencia = "TIPO DO DOCUMENTO N�O NUM�RICO"; } if (descricaoOcorrencia.equals("OK")) { // inicializa o id da localidade // Integer idLocalidade = null; // inicializa a cole��o de cobranca documento item Collection cobrancaDocumentoItens = null; // inicializa a cole��o de cobranca documento item // Object[] parmsDocumentoCobranca = null; int numeroSequencialDocumento = Integer .parseInt(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento4()); try { cobrancaDocumentoItens = repositorioCobranca .pesquisarCobrancaDocumentoItemCliente(idClienteNaBase, numeroSequencialDocumento); /* * parmsDocumentoCobranca = repositorioCobranca * .pesquisarParmsCobrancaDocumentoCliente( idClienteNaBase, * numeroSequencialDocumento); */ } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } // caso exista documento de cobran�a // verifica se a cole��o � diferente de nula if (cobrancaDocumentoItens != null && !cobrancaDocumentoItens.isEmpty()) { Iterator cobrancaDocumentoItensIterator = cobrancaDocumentoItens .iterator(); while (cobrancaDocumentoItensIterator.hasNext()) { Object[] cobrancaDocumentoItem = (Object[]) cobrancaDocumentoItensIterator .next(); // inicializa as variaveis que veio da // pesquisa Integer idContaPesquisa = null; Integer idContaGeralPesquisa = null; Integer idGuiaPagamento = null; Integer idDebitoACobrar = null; BigDecimal valorItemCobrado = null; int contaReferencia = 0; Integer idDebitoTipo = null; Integer idGuiaPagamentoGeralPesquisa = null; Integer idDebitoACobrarGeralPesquisa = null; Integer idCobrancaDocumento = null; Integer idDocumentoTipo = null; // verifica o id da conta if (cobrancaDocumentoItem[0] != null) { idContaPesquisa = (Integer) cobrancaDocumentoItem[0]; idContaGeralPesquisa = (Integer) cobrancaDocumentoItem[0]; // referencia conta if (cobrancaDocumentoItem[4] != null) { contaReferencia = (Integer) cobrancaDocumentoItem[4]; } } else { // caso n�o exista na conta ent�o pesquisa // na conta hist�rico if (cobrancaDocumentoItem[10] != null) { idContaGeralPesquisa = (Integer) cobrancaDocumentoItem[10]; } // referencia conta hist�rico if (cobrancaDocumentoItem[5] != null) { contaReferencia = (Integer) cobrancaDocumentoItem[5]; } } // verifica o id da guia pagamento if (cobrancaDocumentoItem[1] != null) { idGuiaPagamento = (Integer) cobrancaDocumentoItem[1]; idGuiaPagamentoGeralPesquisa = (Integer) cobrancaDocumentoItem[1]; } else { // caso n�o exista no guia pagamento ent�o // pesquisa no guia pagamento hist�rico if (cobrancaDocumentoItem[11] != null) { idGuiaPagamentoGeralPesquisa = (Integer) cobrancaDocumentoItem[11]; } } // verifica o id do debito a cobrar if (cobrancaDocumentoItem[2] != null) { idDebitoACobrar = (Integer) cobrancaDocumentoItem[2]; idDebitoACobrarGeralPesquisa = (Integer) cobrancaDocumentoItem[2]; // [SB0012]- Verifica Pagamento de D�bito a Cobrar de // Parcelamento verificaPagamentoDebitoACobrarParcelamento(idDebitoACobrar, null); } else { // caso n�o exista no debito a cobrar ent�o // pesquisa no guia pagamento hist�rico if (cobrancaDocumentoItem[12] != null) { idDebitoACobrarGeralPesquisa = (Integer) cobrancaDocumentoItem[12]; } } // verifica o valor do item cobrado da // cobranca // documento item if (cobrancaDocumentoItem[3] != null) { valorItemCobrado = (BigDecimal) cobrancaDocumentoItem[3]; } // se o id da conta for igual a null if (idContaGeralPesquisa == null) { // caso exista guia de pagamento if (idGuiaPagamentoGeralPesquisa != null) { // verifica o id do debito tipo se � da // guia if (cobrancaDocumentoItem[6] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[6]; } else { // caso n�o exista no guia pagamento // ent�o // pesquisa no guia pagamento // hist�rico if (cobrancaDocumentoItem[7] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[7]; } } } // caso exista debito a cobrar if (idDebitoACobrarGeralPesquisa != null) { // verifica o id do debito tipo no // debito a cobrar if (cobrancaDocumentoItem[8] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[8]; } else { // caso n�o exista no debito a // cobrar // ent�o // pesquisa no debito a cobrar // hist�rico if (cobrancaDocumentoItem[9] != null) { idDebitoTipo = (Integer) cobrancaDocumentoItem[9]; } } } } // cria o objeto pagamento para setar os // dados Pagamento pagamento = new Pagamento(); if (contaReferencia != 0) { pagamento.setAnoMesReferenciaPagamento(contaReferencia); } else { pagamento.setAnoMesReferenciaPagamento(null); } // caso o ano mes da data de dedito seja // maior que o ano mes de arrecada��o da // tabela sistema parametro ent�o seta o ano // mes da data de debito if (anoMesPagamento > sistemaParametro .getAnoMesArrecadacao()) { pagamento .setAnoMesReferenciaArrecadacao(anoMesPagamento); } else { // caso contrario seta o o ano mes // arrecada��o da tabela sistema // parametro pagamento .setAnoMesReferenciaArrecadacao(sistemaParametro .getAnoMesArrecadacao()); } pagamento.setValorPagamento(valorItemCobrado); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); if (idDebitoTipo != null) { DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(idDebitoTipo); pagamento.setDebitoTipo(debitoTipo); } else { pagamento.setDebitoTipo(null); } // verifica se o id da conta � diferente de // nulo if (idContaGeralPesquisa != null) { if (idContaPesquisa != null) { ContaGeral conta = new ContaGeral(); conta.setId(idContaPesquisa); pagamento.setContaGeral(conta); } else { pagamento.setContaGeral(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.CONTA); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setContaGeral(null); } // verifica se o id da guia de pagamento � // diferente de nulo if (idGuiaPagamentoGeralPesquisa != null) { if (idGuiaPagamento != null) { GuiaPagamento guiaPagamento = new GuiaPagamento(); guiaPagamento.setId(idGuiaPagamento); pagamento.setGuiaPagamento(guiaPagamento); } else { pagamento.setGuiaPagamento(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.GUIA_PAGAMENTO); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setGuiaPagamento(null); } // verifica se o id do debito a cobrar � // diferente de nulo if (idDebitoACobrarGeralPesquisa != null) { if (idDebitoACobrar != null) { DebitoACobrarGeral debitoACobrarGeral = new DebitoACobrarGeral(); debitoACobrarGeral.setId(idDebitoACobrar); pagamento.setDebitoACobrarGeral(debitoACobrarGeral); try { // atualiza a situa��o atual para // cancelada repositorioFaturamento .atualizarSituacaoAtualDebitoACobrar(idDebitoACobrar); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else { pagamento.setDebitoACobrarGeral(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.DEBITO_A_COBRAR); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setGuiaPagamento(null); } // seta o id do aviso bancario pagamento.setAvisoBancario(null); //SETANDO A LOCALIDADE E O IM�VEL DO PAGAMENTO Imovel imovel = new Imovel(); Localidade localidade = new Localidade(); //CONTA if (idContaGeralPesquisa != null) { if (cobrancaDocumentoItem[16] != null){ //Imovel na tabela CONTA imovel.setId((Integer) cobrancaDocumentoItem[13]); //Localidade na tabela CONTA localidade.setId((Integer) cobrancaDocumentoItem[16]); } else{ //Imovel na tabela CONTA_HISTORICO imovel.setId((Integer) cobrancaDocumentoItem[19]); //Localidade na tabela CONTA_HISTORICO localidade.setId((Integer) cobrancaDocumentoItem[20]); } pagamento.setImovel(imovel); pagamento.setLocalidade(localidade); } //GUIA_PAGAMENTO else if (idGuiaPagamentoGeralPesquisa != null) { if (cobrancaDocumentoItem[17] != null){ //Imovel na tabela GUIA_PAGAMENTO imovel.setId((Integer) cobrancaDocumentoItem[14]); //Localidade na tabela GUIA_PAGAMENTO localidade.setId((Integer) cobrancaDocumentoItem[17]); } else{ //Imovel na tabela GUIA_PAGAMENTO_HISTORICO imovel.setId((Integer) cobrancaDocumentoItem[21]); //Localidade na tabela GUIA_PAGAMENTO_HISTORICO localidade.setId((Integer) cobrancaDocumentoItem[22]); } pagamento.setImovel(imovel); pagamento.setLocalidade(localidade); } //DEBITO_A_COBRAR else if (idDebitoACobrarGeralPesquisa != null) { if (cobrancaDocumentoItem[18] != null){ //Imovel na tabela DEBITO_A_COBRAR imovel.setId((Integer) cobrancaDocumentoItem[15]); //Localidade na tabela DEBITO_A_COBRAR localidade.setId((Integer) cobrancaDocumentoItem[18]); } else{ //Imovel na tabela DEBITO_A_COBRAR_HISTORICO imovel.setId((Integer) cobrancaDocumentoItem[23]); //Localidade na tabela DEBITO_A_COBRAR_HISTORICO localidade.setId((Integer) cobrancaDocumentoItem[24]); } pagamento.setImovel(imovel); pagamento.setLocalidade(localidade); } /* * Adicao dos campos 'id do Documento de cobranca' e 'id do tipo de documento' usados no * relat�rio do Float * Francisco 18/07/08 */ if (cobrancaDocumentoItem[25] != null){ idCobrancaDocumento = (Integer) cobrancaDocumentoItem[25]; } if (cobrancaDocumentoItem[26] != null){ idDocumentoTipo = (Integer) cobrancaDocumentoItem[26]; } /* * if (idImovelNaBase != null) { Imovel imovel = new * Imovel(); imovel.setId(idImovelNaBase); * pagamento.setImovel(imovel); } else { * pagamento.setImovel(null); } */ // ArrecadadorMovimentoItem // arrecadadorMovimentoItem // = new ArrecadadorMovimentoItem(); pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaPagamento); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); pagamento.setFatura(null); if (cobrancaDocumentoItem[25] != null){ idCobrancaDocumento = (Integer) cobrancaDocumentoItem[25]; } if (cobrancaDocumentoItem[26] != null){ idDocumentoTipo = (Integer) cobrancaDocumentoItem[26]; } CobrancaDocumento cobrancaDocumento = new CobrancaDocumento(); cobrancaDocumento.setId(idCobrancaDocumento); pagamento.setCobrancaDocumento(cobrancaDocumento); DocumentoTipo documentoAgregador = new DocumentoTipo(); documentoAgregador.setId(idDocumentoTipo); pagamento.setDocumentoTipoAgregador(documentoAgregador); colecaoPagamnetos.add(pagamento); } } else { descricaoOcorrencia = "DOCUMENTO DE COBRAN�A INEXISTENTE"; indicadorAceitacaoRegistro = "2"; } } else { // atribui o valor 2(N�O) ao indicador aceitacao // registro indicadorAceitacaoRegistro = "2"; } // Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamnetos); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras .setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); return pagamentoHelperCodigoBarras; } protected void mandaArquivoLeituraEmail(StringBuilder arquivo, String emailReceptor, String emailRemetente, String tituloMensagem, String corpoMensagem) throws ControladorException { /* * try { File leitura = new File("arquivo_leitura", ".txt"); * BufferedWriter out = new BufferedWriter(new OutputStreamWriter( new * FileOutputStream(leitura.getAbsolutePath()))); * out.write(arquivo.toString()); out.close(); * * ServicosEmail.enviarMensagemArquivoAnexado(emailReceptor, * emailRemetente, tituloMensagem, corpoMensagem, leitura); * * leitura.delete(); } catch (IOException e) { throw new * ControladorException("erro.sistema", e); } catch (Exception e) { * throw new ControladorException("erro.sistema", e); } */ } /** * [UC0270] Apresentar An�lise do Movimento dos Arrecadadores * * O sistema captura os dados referentes ao conte�do do do c�digo de barras * * [SF0003] Apresentar Dados do Conte�do do C�digo de Barras * * @author Raphael Rossiter * @data 22/03/2006 * * @param registroHelperCodigoG * @return DadosConteudoCodigoBarrasHelper */ public DadosConteudoCodigoBarrasHelper apresentarDadosConteudoCodigoBarras( RegistroHelperCodigoG registroHelperCodigoG) throws ControladorException { DadosConteudoCodigoBarrasHelper retorno = new DadosConteudoCodigoBarrasHelper(); retorno.setIdentificacaoProduto(registroHelperCodigoG .getRegistroHelperCodigoBarras().getIdProduto()); retorno.setIdentificacaoSegmento(registroHelperCodigoG .getRegistroHelperCodigoBarras().getIdSegmento()); retorno.setIdentificacaoValorRealOUReferencia(registroHelperCodigoG .getRegistroHelperCodigoBarras().getIdValorReal()); retorno.setDigitoVerificadorGeral(registroHelperCodigoG .getRegistroHelperCodigoBarras().getDigitoVerificadorGeral()); retorno .setValorPagamento(Util .formatarMoedaReal(Util .formatarMoedaRealparaBigDecimalComUltimos2CamposDecimais(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getValorPagamento()))); String tipoPagamento = registroHelperCodigoG .getRegistroHelperCodigoBarras().getTipoPagamento(); String matriculaImovel = null; if (tipoPagamento != null && tipoPagamento .equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_CAER .toString())) { retorno .setTipoPagamento(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_CAER); matriculaImovel = new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()).toString(); // Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel.toString() + digitoModulo11).toString(); } retorno.setMatriculaImovel(matriculaImovel); retorno.setMesAnoReferenciaConta(Util .formatarAnoMesParaMesAno(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3())); retorno.setCodigoOrigemConta(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento4().toString()); retorno.setNumeroDocumento(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5().toString()); } else if (tipoPagamento != null && tipoPagamento .equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CAER .toString())) { retorno .setTipoPagamento(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CAER); retorno.setQualificacao(new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()).toString()); retorno.setMesAno(Util .formatarAnoMesParaMesAno(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3())); retorno.setNumeroDocumento(new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento4()).toString()); } else if (tipoPagamento != null && tipoPagamento .equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_REAVISO_CAER .toString())) { retorno .setTipoPagamento(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_REAVISO_CAER); matriculaImovel = new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()).toString(); // Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel.toString() + digitoModulo11).toString(); } retorno.setMatriculaImovel(matriculaImovel); retorno.setSequencialDocumentoCobranca(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5()); } else if (tipoPagamento != null && tipoPagamento .equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_CLIENTE_CAER .toString())) { retorno .setTipoPagamento(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_CLIENTE_CAER); retorno.setCodigoLocalidade(new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()).toString()); retorno.setCodigoCliente(new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()).toString()); retorno.setCodigoTipoDebito(new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5()).toString()); retorno.setAnoEmissaoGuiaPagamento(new Integer( registroHelperCodigoG.getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento6()).toString()); } else if (tipoPagamento != null && tipoPagamento .equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_IMOVEL_CAER .toString())) { retorno .setTipoPagamento(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_IMOVEL_CAER); retorno.setCodigoLocalidade(new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()).toString()); matriculaImovel = new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()).toString(); // Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel.toString() + digitoModulo11).toString(); } retorno.setMatriculaImovel(matriculaImovel); retorno.setCodigoTipoDebito(new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5()).toString()); retorno.setAnoEmissaoGuiaPagamento(new Integer( registroHelperCodigoG.getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento6()).toString()); } else if (tipoPagamento != null && tipoPagamento .equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOC_COBRANCA_CLIENTE_RESPONSAVEL_CAER .toString())) { retorno .setTipoPagamento(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOC_COBRANCA_CLIENTE_RESPONSAVEL_CAER); retorno.setCodigoCliente(new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento3()).toString()); retorno.setSequencialDocumentoCobranca(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento4()); retorno.setCodigoTipoDocumento(new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5()).toString()); } else if (tipoPagamento != null && tipoPagamento .equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CLIENTE_RESPONSAVEL_CAER .toString())) { retorno .setTipoPagamento(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CLIENTE_RESPONSAVEL_CAER); retorno.setCodigoCliente(new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()).toString()); retorno.setMesAno(Util .formatarMesAnoSemBarraParaMesAnoComBarra(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento4())); retorno.setDigitoVerificadorContaModulo10(new Integer( registroHelperCodigoG.getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5()).toString()); retorno.setSequencialFaturaClienteResponsavel(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento6()); } else if (tipoPagamento != null && tipoPagamento .equals(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOC_COBRANCA_IMOVEL_CAER .toString())) { retorno .setTipoPagamento(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOC_COBRANCA_IMOVEL_CAER); matriculaImovel = new Integer(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()).toString(); // Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel.toString() + digitoModulo11).toString(); } retorno.setMatriculaImovel(matriculaImovel); retorno.setNumeroDocumento(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento5()); } return retorno; } /** * [UC0259] - Processar Pagamneto com C�digo de Barras * * Autor: Rafael Pinto * * Data: 19/04/2007 */ protected Pagamento processarPagamentosCodigoBarrasTipoPagamento( int anoMes, Integer anoMesPagamento, SistemaParametro sistemaParametro, BigDecimal valorPagamento, Date dataPagamento, Integer idConta, Integer idLocalidade, Integer idFormaPagamento, Integer idImovelNaBase, Imovel imovel) throws ControladorException { Pagamento pagamento = new Pagamento(); pagamento.setAnoMesReferenciaPagamento(anoMes); // caso o ano mes da data de dedito seja // maior que o ano mes de arrecada��o da // tabela sistema parametro ent�o seta o ano // mes da data de debito if (anoMesPagamento > sistemaParametro.getAnoMesArrecadacao()) { pagamento.setAnoMesReferenciaArrecadacao(anoMesPagamento); } else { // caso contrario seta o o ano mes // arrecada��o da tabela sistema // parametro pagamento.setAnoMesReferenciaArrecadacao(sistemaParametro .getAnoMesArrecadacao()); } pagamento.setValorPagamento(valorPagamento); pagamento.setDataPagamento(dataPagamento); pagamento.setPagamentoSituacaoAtual(null); pagamento.setPagamentoSituacaoAnterior(null); pagamento.setDebitoTipo(null); // Verifica se o id da conta � diferente de nulo if (idConta != null) { ContaGeral conta = new ContaGeral(); conta.setId(idConta); pagamento.setContaGeral(conta); /* * Colocado por Raphael Rossiter em 26/11/2008 - CRC264 * OBJ: Inserir o pagamento com a localidade da pr�pria conta e n�o * com a localidade do documento de cobran�a */ try { idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorConta(idConta); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } else { pagamento.setContaGeral(null); } //Seta a guia de pagamento pra NULL pagamento.setGuiaPagamento(null); // Verifica se o id da conta � diferente de nulo if (idLocalidade != null) { Localidade localidade = new Localidade(); localidade.setId(idLocalidade); pagamento.setLocalidade(localidade); } else { pagamento.setLocalidade(null); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.CONTA); pagamento.setDocumentoTipo(documentoTipo); // seta o id do aviso bancario pagamento.setAvisoBancario(null); // seta o imovel if (idImovelNaBase != null) { pagamento.setImovel(imovel); } else { pagamento.setImovel(null); } pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaPagamento); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); pagamento.setFatura(null); pagamento.setCobrancaDocumento(null); DocumentoTipo documentoAgregador = new DocumentoTipo(); documentoAgregador.setId(DocumentoTipo.CONTA); pagamento.setDocumentoTipoAgregador(documentoAgregador); pagamento.setDataProcessamento(new Date()); return pagamento; } /** * [UC0270] Apresentar An�lise do Movimento dos Arrecadadores * * @author R�mulo Aur�lio * @date 05/03/2009 * * @param registroHelperCodigoG * @param arrecadadorMovimentoItemHelper * @throws ControladorException */ public void distribuirDadosRegistroMovimentoArrecadadorPorTipoPagamento(RegistroHelperCodigoG registroHelperCodigoG, ArrecadadorMovimentoItemHelper arrecadadorMovimentoItemHelper) throws ControladorException { if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_CONTA_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_CONTA); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_FATURA_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_REAVISO_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_REAVISO_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_REAVISO_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_REAVISO_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_CLIENTE_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO_CLIENTE_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_GUIA_PAGAMENTO_IMOVEL_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_GUIA_PAGAMENTO_IMOVEL_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOC_COBRANCA_CLIENTE_RESPONSAVEL_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_DOC_COBRANCA_CLIENTE_RESPONSAVEL_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_FATURA_CLIENTE_RESPONSAVEL_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_FATURA_CLIENTE_RESPONSAVEL_CAER); } else if (registroHelperCodigoG .getRegistroHelperCodigoBarras() .getTipoPagamento() .equals( String .valueOf(ConstantesSistema.CODIGO_TIPO_PAGAMENTO_DOC_COBRANCA_IMOVEL_CAER))) { arrecadadorMovimentoItemHelper .setIdentificacao(registroHelperCodigoG .getRegistroHelperCodigoBarras() .getRegistroHelperCodigoBarrasTipoPagamento() .getIdPagamento2()); arrecadadorMovimentoItemHelper .setTipoPagamento(ConstantesSistema.TIPO_PAGAMENTO_DOC_COBRANCA_IMOVEL_CAER); } } /** * Pesquisa os dados da Guia de Pagamento necess�rios para o relat�rio * atrav�s do id da Guia de Pagamento * * @author Vivianne Sousa * @date 03/10/06 * * @return Collection<GuiaPagamentoRelatorioHelper> * @throws ControladorException * @throws ErroRepositorioException */ public Collection<GuiaPagamentoRelatorioHelper> pesquisarGuiaPagamentoRelatorio( String[] ids) throws ControladorException { Collection<GuiaPagamentoRelatorioHelper> colecaoGuiaPagamentoRelatorioHelper = new ArrayList(); if (ids != null && ids.length != 0) { for (int i = 0; i < ids.length; i++) { int idGuiaPagamento = Integer.parseInt(ids[i]); GuiaPagamentoRelatorioHelper guiaPagamentoRelatorioHelper = new GuiaPagamentoRelatorioHelper(); try { guiaPagamentoRelatorioHelper = repositorioArrecadacao .pesquisarGuiaPagamentoRelatorio(idGuiaPagamento); } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } Integer idCliente = null; Integer idImovel = null; String matricula = ""; String nomeCliente = ""; String inscricao = ""; String cpfCliente = ""; String cnpjCliente = ""; String sacadoParte01 = ""; String sacadoParte02 = ""; String nossoNumero = ""; // Pesquisar Cliente // recupera cliente atraves de ClienteGuiaPagamento // se vier null // recupera atraves de Imovel.imovelCliente Object[] dadosCliente = null; try { dadosCliente = repositorioArrecadacao .pesquisarClienteDeGuiaPagamento(idGuiaPagamento); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (dadosCliente == null) { try { dadosCliente = repositorioArrecadacao .pesquisarImovelDeClienteGuiaPagamento(idGuiaPagamento); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } if (dadosCliente == null) { try { dadosCliente = repositorioArrecadacao .pesquisarClienteDeClienteImovel(idGuiaPagamento); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } if (dadosCliente != null) { if (dadosCliente[0] != null) { idCliente = (Integer) dadosCliente[0]; } if (dadosCliente[1] != null) { nomeCliente = (String) dadosCliente[1]; } if ( dadosCliente[2] != null ) { cpfCliente = (String) dadosCliente[2]; } if ( dadosCliente[3] != null ) { cnpjCliente = (String) dadosCliente[3]; } } if (guiaPagamentoRelatorioHelper.getIdImovel() == null) { // c�digo do cliente matricula = "" + idCliente; // Inscri��o do im�vel // caso imov_id = null, imprimir c�digo da localidade // (loca_id) inscricao = "" + guiaPagamentoRelatorioHelper.getIdLocalidade(); // recupera endere�o de correspondencia do cliente // [UC0085]Obter Endereco String enderecoClienteResponsavel = ""; enderecoClienteResponsavel = this.getControladorEndereco() .pesquisarEnderecoClienteAbreviado(idCliente); guiaPagamentoRelatorioHelper .setEnderecoClienteResponsavel(enderecoClienteResponsavel); } else { idImovel = guiaPagamentoRelatorioHelper.getIdImovel(); // matr�cula do im�vel matricula = "" + idImovel; // try { // nomeCliente = repositorioArrecadacao // .pesquisarNomeClienteGuiaPagamentoRelatorio(idGuiaPagamento); // } catch (ErroRepositorioException e) { // e.printStackTrace(); // } // Inscri��o do im�vel inscricao = getControladorImovel() .pesquisarInscricaoImovel(idImovel); // recupera endereco do im�vel String enderecoImovel = ""; try { enderecoImovel = this.getControladorEndereco() .pesquisarEnderecoFormatado(idImovel); } catch (ControladorException e1) { e1.printStackTrace(); } guiaPagamentoRelatorioHelper .setEnderecoImovel(enderecoImovel); } guiaPagamentoRelatorioHelper.setIdCliente(idCliente); guiaPagamentoRelatorioHelper.setIdImovel(idImovel); guiaPagamentoRelatorioHelper.setMatricula(matricula); guiaPagamentoRelatorioHelper.setNomeCliente(nomeCliente); guiaPagamentoRelatorioHelper.setInscricao(inscricao); guiaPagamentoRelatorioHelper.setIdGuiaPagamento("" + idGuiaPagamento); guiaPagamentoRelatorioHelper.setCpfCliente(cpfCliente); guiaPagamentoRelatorioHelper.setCnpjCliente(cnpjCliente); String representacaoNumericaCodBarra = ""; String anoEmissaoGuia = "" + Util.getAno(guiaPagamentoRelatorioHelper .getDataEmissao()); // caso imov_id da guia de pagamento esteja preenchido, // atribuir o valor 4 , caso contr�rio atribuir o valor 6 Integer tipoPagamento = 4; if (guiaPagamentoRelatorioHelper.getIdImovel() == null || guiaPagamentoRelatorioHelper.getIdImovel() .equals("")) { tipoPagamento = 6; } // [UC0229] - Obter Representa��o Num�rica do C�digo de // Barras representacaoNumericaCodBarra = obterRepresentacaoNumericaCodigoBarra( tipoPagamento, // tipo // de // pagamento guiaPagamentoRelatorioHelper.getValorDebito(), // valor // do // c�digo de // barras guiaPagamentoRelatorioHelper.getIdLocalidade(), // c�digo // da // localidade guiaPagamentoRelatorioHelper.getIdImovel() == null ? null : guiaPagamentoRelatorioHelper.getIdImovel(), // matr�cula // do im�vel null, // m�s e ano de refer�ncia null, // digito verificador da refer�ncia guiaPagamentoRelatorioHelper.getIdTipoDebito(), // c�digo // do // tipo do // d�bito anoEmissaoGuia, // ano da emiss�o da guia null, // sequencial do documento de // cobran�a null, // c�digo do tipo de documento guiaPagamentoRelatorioHelper.getIdCliente() == null ? null : guiaPagamentoRelatorioHelper.getIdCliente(), // c�digo // do // cliente null,// sequencial da fatura do cliente null); // Formata a representa��o n�merica do c�digo de barras String representacaoNumericaCodBarraFormatada = representacaoNumericaCodBarra .substring(0, 11) + "-" + representacaoNumericaCodBarra.substring(11, 12) + " " + representacaoNumericaCodBarra.substring(12, 23) + "-" + representacaoNumericaCodBarra.substring(23, 24) + " " + representacaoNumericaCodBarra.substring(24, 35) + "-" + representacaoNumericaCodBarra.substring(35, 36) + " " + representacaoNumericaCodBarra.substring(36, 47) + "-" + representacaoNumericaCodBarra.substring(47, 48); guiaPagamentoRelatorioHelper .setRepresentacaoNumericaCodBarraFormatada(representacaoNumericaCodBarraFormatada); String representacaoNumericaCodBarraSemDigito = representacaoNumericaCodBarra .substring(0, 11) + representacaoNumericaCodBarra.substring(12, 23) + representacaoNumericaCodBarra.substring(24, 35) + representacaoNumericaCodBarra.substring(36, 47); guiaPagamentoRelatorioHelper .setRepresentacaoNumericaCodBarraSemDigito(representacaoNumericaCodBarraSemDigito); guiaPagamentoRelatorioHelper.setSacadoParte01(sacadoParte01); guiaPagamentoRelatorioHelper.setSacadoParte02(sacadoParte02); guiaPagamentoRelatorioHelper.setNossoNumero(nossoNumero); guiaPagamentoRelatorioHelper.setSubRelatorio("relatorioEmitirGuiaPagamentoEmissaoPadrao.jasper"); colecaoGuiaPagamentoRelatorioHelper .add(guiaPagamentoRelatorioHelper); } } return colecaoGuiaPagamentoRelatorioHelper; } /** * [UC0259] - Processar Pagamento com C�digo de Barras * * DOCUMENTO COBRAN�A TIPO 10 * * @author Ivan Sergio * @data 18/10/2010 */ protected PagamentoHelperCodigoBarras processarPagamentosCodigoBarrasDocumentoCobrancaTipo10( RegistroHelperCodigoBarras registroHelperCodigoBarras, SistemaParametro sistemaParametro, Date dataPagamento, Integer anoMesPagamento, BigDecimal valorPagamento, Integer idFormaArrecadacao, Usuario usuarioLogado) throws ControladorException { PagamentoHelperCodigoBarras pagamentoHelperCodigoBarras = new PagamentoHelperCodigoBarras(); String descricaoOcorrencia = "OK"; String indicadorAceitacaoRegistro = "1"; Collection colecaoPagamentos = new ArrayList(); Collection colecaoDevolucoes = new ArrayList(); Collection colecaoDebitosACobrarJurosParcelamento = new ArrayList(); boolean matriculaImovelInvalida = false; Integer idImovelNaBase = null; Integer matriculaImovel = null; // valida a matricula do im�vel matriculaImovelInvalida = Util.validarValorNaoNumerico(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento2()); if (matriculaImovelInvalida) { descricaoOcorrencia = "M�TRICULA DO IM�VEL INV�LIDA"; } else { // verifica se existe a matricula do im�vel na base matriculaImovel = new Integer(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento2()); // [FS0008] - Calcular Digito Verificador da Matricula if (matriculaImovel != null) { int digitoModulo11 = Util.obterDigitoVerificadorModulo11("" + matriculaImovel); matriculaImovel = new Integer(matriculaImovel.toString() + digitoModulo11); } idImovelNaBase = null; try { idImovelNaBase = repositorioImovel.recuperarMatriculaImovel(new Integer(matriculaImovel)); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (idImovelNaBase == null) { descricaoOcorrencia = "MATR�CULA DO IM�VEL N�O CADASTRADA"; } } if (descricaoOcorrencia.equals("OK")) { // inicializa o id da localidade Integer idLocalidade = null; // inicializa a cole��o de cobranca documento item Collection cobrancaDocumentoItens = null; // inicializa a cole��o de cobranca documento item Object[] parmsDocumentoCobranca = null; int numeroSequencialDocumento = Integer.parseInt(registroHelperCodigoBarras .getRegistroHelperCodigoBarrasTipoPagamento().getIdPagamento5()); try { cobrancaDocumentoItens = repositorioCobranca.pesquisarCobrancaDocumentoItem( idImovelNaBase, numeroSequencialDocumento); parmsDocumentoCobranca = repositorioCobranca.pesquisarParmsCobrancaDocumento( idImovelNaBase, numeroSequencialDocumento); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } // caso exista documento de cobran�a if (parmsDocumentoCobranca != null) { Integer idCobrancaDocumento = null; BigDecimal valorAcrescimo = new BigDecimal("0.00"); BigDecimal valorDesconto = new BigDecimal("0.00"); Date dataEmissao = null; BigDecimal valorTaxa = new BigDecimal("0.00"); Integer idDocumentoTipo = null; if (parmsDocumentoCobranca[0] != null) { valorAcrescimo = ((BigDecimal) parmsDocumentoCobranca[0]); } if (parmsDocumentoCobranca[1] != null) { valorDesconto = ((BigDecimal) parmsDocumentoCobranca[1]); } if (parmsDocumentoCobranca[2] != null) { dataEmissao = ((Date) parmsDocumentoCobranca[2]); } if (parmsDocumentoCobranca[3] != null) { idCobrancaDocumento = ((Integer) parmsDocumentoCobranca[3]); } if (parmsDocumentoCobranca[4] != null) { valorTaxa = ((BigDecimal) parmsDocumentoCobranca[4]); } /* * Alterado por Raphael Rossiter em 10/01/2008 - Analistas: Eduardo e Aryed * OBJ: Gerar os pagamentos associados com a localidade do document de cobran�a e N�O com * a localidade do im�vel. */ if (parmsDocumentoCobranca[5] != null) { idLocalidade = ((Integer) parmsDocumentoCobranca[5]); } else{ try { idLocalidade = repositorioLocalidade.pesquisarIdLocalidade(idImovelNaBase); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } if (parmsDocumentoCobranca[6] != null) { idDocumentoTipo = ((Integer) parmsDocumentoCobranca[6]); } // caso o valor de acrescimo for maior que zero if (valorAcrescimo.compareTo(new BigDecimal("0.00")) == 1) { // [SB0008 - Alterar vencimento dos itens do // documento de cobran�a] alterarVencimentoItensDocumentoCobranca(idCobrancaDocumento, dataEmissao); } // caso o valor de acrescimos seja maior que o valor // de // descontos if (valorAcrescimo.compareTo(valorDesconto) == 1) { valorAcrescimo = valorAcrescimo.subtract(valorDesconto); valorDesconto = new BigDecimal("0.00"); } else { valorDesconto = valorDesconto.subtract(valorAcrescimo); valorAcrescimo = new BigDecimal("0.00"); } // caso o valor de acrescimo for maior que zero if (valorAcrescimo.compareTo(new BigDecimal("0.00")) == 1) { // [SB0005 - Processar Recebimento de Acrescimos // por // Impontualidade] Pagamento pagamento = processarRecebimentoAcrescimosImpontualidade( idCobrancaDocumento, dataPagamento, valorAcrescimo, idImovelNaBase, idLocalidade, sistemaParametro, idFormaArrecadacao, idDocumentoTipo); colecaoPagamentos.add(pagamento); } // caso o valor de desconto for maior que zero if (valorDesconto.compareTo(new BigDecimal("0.00")) == 1) { // [SB0006 - Processar Desconto concedido no // documento de cobran�a] Devolucao devolucao = processarDescontoConcedidoDocumentoCobranca( idCobrancaDocumento, dataPagamento, valorDesconto, idImovelNaBase, idLocalidade, sistemaParametro, idFormaArrecadacao, idDocumentoTipo); colecaoDevolucoes.add(devolucao); } // caso o valor da taxa referente ao documento de cobran�a for // maior que zero if (valorTaxa.compareTo(new BigDecimal("0.00")) == 1) { // [SB0006 - Processar Desconto concedido no // documento de cobran�a] Pagamento pagamento = processarTaxaDocumentoCobranca( idCobrancaDocumento, dataPagamento, valorTaxa, idImovelNaBase, idLocalidade, sistemaParametro, idFormaArrecadacao, idDocumentoTipo); colecaoPagamentos.add(pagamento); } // verifica se a cole��o � diferente de nula if (cobrancaDocumentoItens != null && !cobrancaDocumentoItens.isEmpty()) { Iterator cobrancaDocumentoItensIterator = cobrancaDocumentoItens.iterator(); while (cobrancaDocumentoItensIterator.hasNext()) { Object[] arrayCobrancaDocumentoItem = (Object[]) cobrancaDocumentoItensIterator.next(); CobrancaDocumentoItem cobrancaDocumentoItem = new CobrancaDocumentoItem(); //VALOR DO ITEM COBRADO cobrancaDocumentoItem.setValorItemCobrado((BigDecimal) arrayCobrancaDocumentoItem[3]); //NUMERO DE PARCELAS ANTECIPADAS cobrancaDocumentoItem.setNumeroParcelasAntecipadas((Integer) arrayCobrancaDocumentoItem[18]); /* * Colocado por Raphael Rossiter em 31/10/2007 OBJ: * Apenas gerar os pagamentos referentes aos itens que * NAO tenham CreditoARealizar */ if (arrayCobrancaDocumentoItem[13] == null) { ContaGeral contaGeral = null; Conta conta = null; //CONTA if (arrayCobrancaDocumentoItem[0] != null) { conta = new Conta(); conta.setId((Integer) arrayCobrancaDocumentoItem[0]); //REFERENCIA DA CONTA if (arrayCobrancaDocumentoItem[4] != null) { conta.setReferencia((Integer) arrayCobrancaDocumentoItem[4]); } else{ conta.setReferencia(0); } contaGeral = new ContaGeral(); contaGeral.setConta(conta); contaGeral.setId(conta.getId()); cobrancaDocumentoItem.setContaGeral(contaGeral); } //CONTA HISTORICO else if (arrayCobrancaDocumentoItem[10] != null){ conta = new Conta(); conta.setId((Integer) arrayCobrancaDocumentoItem[10]); //REFERENCIA DA CONTA if (arrayCobrancaDocumentoItem[5] != null) { conta.setReferencia((Integer) arrayCobrancaDocumentoItem[5]); } else{ conta.setReferencia(0); } contaGeral = new ContaGeral(); contaGeral.setConta(conta); contaGeral.setId(conta.getId()); cobrancaDocumentoItem.setContaGeral(contaGeral); } GuiaPagamentoGeral guiaPagamentoGeral = null; GuiaPagamento guiaPagamento = null; //GUIA DE PAGAMENTO if (arrayCobrancaDocumentoItem[1] != null) { guiaPagamentoGeral = new GuiaPagamentoGeral(); guiaPagamento = new GuiaPagamento(); guiaPagamento.setId((Integer) arrayCobrancaDocumentoItem[1]); guiaPagamentoGeral.setGuiaPagamento(guiaPagamento); guiaPagamentoGeral.setId(guiaPagamento.getId()); cobrancaDocumentoItem.setGuiaPagamentoGeral(guiaPagamentoGeral); } //GUIA DE PAGAMENTO HISTORICO else if (arrayCobrancaDocumentoItem[11] != null){ guiaPagamentoGeral = new GuiaPagamentoGeral(); guiaPagamento = new GuiaPagamento(); guiaPagamento.setId((Integer) arrayCobrancaDocumentoItem[11]); guiaPagamentoGeral.setGuiaPagamento(guiaPagamento); guiaPagamentoGeral.setId(guiaPagamento.getId()); cobrancaDocumentoItem.setGuiaPagamentoGeral(guiaPagamentoGeral); } DebitoACobrarGeral debitoACobrarGeral = null; DebitoACobrar debitoACobrar = null; //DEBITO A COBRAR if (arrayCobrancaDocumentoItem[2] != null) { debitoACobrarGeral = new DebitoACobrarGeral(); debitoACobrar = new DebitoACobrar(); debitoACobrar.setId((Integer) arrayCobrancaDocumentoItem[2]); debitoACobrar.setNumeroPrestacaoDebito((Short) arrayCobrancaDocumentoItem[16]); debitoACobrar.setNumeroPrestacaoCobradas((Short) arrayCobrancaDocumentoItem[17]); debitoACobrarGeral.setDebitoACobrar(debitoACobrar); debitoACobrarGeral.setId(debitoACobrar.getId()); cobrancaDocumentoItem.setDebitoACobrarGeral(debitoACobrarGeral); // [SB0012]- Verifica Pagamento de D�bito a Cobrar de Parcelamento this.verificaPagamentoDebitoACobrarParcelamento(cobrancaDocumentoItem .getDebitoACobrarGeral().getDebitoACobrar().getId(), cobrancaDocumentoItem.getNumeroParcelasAntecipadas()); } //DEBITO A COBRAR HISTORICO else if (arrayCobrancaDocumentoItem[12] != null){ debitoACobrarGeral = new DebitoACobrarGeral(); debitoACobrar = new DebitoACobrar(); debitoACobrar.setId((Integer) arrayCobrancaDocumentoItem[12]); debitoACobrarGeral.setDebitoACobrar(debitoACobrar); debitoACobrarGeral.setId(debitoACobrar.getId()); cobrancaDocumentoItem.setDebitoACobrarGeral(debitoACobrarGeral); } //CR�DITO A REALIZAR (UTILIZADO PARA PAGAMENTO ANTECIPADO) //IDENTIFICANDO O TIPO DE DEBITO QUE SERA ASSOCIADO AO PAGAMENTO Integer idDebitoTipo = null; if (cobrancaDocumentoItem.getContaGeral() == null) { //CASO SEJA PARA GUIA DE PAGAMENTO if (cobrancaDocumentoItem.getGuiaPagamentoGeral() != null) { //GUIA DE PAGAMENTO if (arrayCobrancaDocumentoItem[6] != null) { idDebitoTipo = (Integer) arrayCobrancaDocumentoItem[6]; } //GUIA DE PAGAMENTO HISTORICO else if (arrayCobrancaDocumentoItem[7] != null){ idDebitoTipo = (Integer) arrayCobrancaDocumentoItem[7]; } } //CASO SEJA PARA DEBITO A COBRAR if (cobrancaDocumentoItem.getDebitoACobrarGeral() != null) { //DEBITO A COBRAR if (arrayCobrancaDocumentoItem[8] != null) { idDebitoTipo = (Integer) arrayCobrancaDocumentoItem[8]; } //DEBITO A COBRAR HISTORICO else if (arrayCobrancaDocumentoItem[9] != null) { idDebitoTipo = (Integer) arrayCobrancaDocumentoItem[9]; } } } //[SB0019] � Gerar D�bitos/Cr�ditos Parcelas Antecipadas DebitoACobrar debitoACobrarAntecipacao = null; if (cobrancaDocumentoItem.getNumeroParcelasAntecipadas() != null){ debitoACobrarAntecipacao = (DebitoACobrar) this.gerarDebitoCreditoParcelasAntecipadas( idImovelNaBase, cobrancaDocumentoItem, usuarioLogado); /* * Caso o d�bito a cobrar com parcelas antecipadas tenha juros de parcelamento (FNTP_ID = �Juros de Parcelamento� da * tabela DEBITO_A_COBRAR com PARC_ID = PARC_ID do d�bito com parcelas antecipadas). O sistema dever� * atualizar a quantidade de parcela b�nus do d�bito a cobrar de juros (DBAC_NNPARCELABONUS = * DBAC_NNPARCELABONUS + quantidade de parcelas antecipadas e DBAC_TMULTIMAALTERACAO = Data e Hora Correntes) */ DebitoACobrar debitoACobrarJurosParcelamento = this.pesquisarDebitoACobrarJurosParcelamento( debitoACobrarAntecipacao.getParcelamento().getId()); if (debitoACobrarJurosParcelamento != null){ if (!colecaoDebitosACobrarJurosParcelamento.contains(debitoACobrarJurosParcelamento)){ Short numeroParcelaBonus = debitoACobrarAntecipacao.getNumeroPrestacaoDebito(); if (debitoACobrarJurosParcelamento.getNumeroParcelaBonus() != null){ numeroParcelaBonus = Short.valueOf(String.valueOf( debitoACobrarJurosParcelamento.getNumeroParcelaBonus() .shortValue() + debitoACobrarAntecipacao .getNumeroPrestacaoDebito())); } debitoACobrarJurosParcelamento.setNumeroParcelaBonus(numeroParcelaBonus); colecaoDebitosACobrarJurosParcelamento.add(debitoACobrarJurosParcelamento); } } } //GERANDO O PAGAMENTO Pagamento pagamento = new Pagamento(); //REFERENCIA DO PAGAMENTO if (cobrancaDocumentoItem.getContaGeral() != null && cobrancaDocumentoItem.getContaGeral().getConta().getReferencia() != 0) { pagamento.setAnoMesReferenciaPagamento(cobrancaDocumentoItem.getContaGeral().getConta().getReferencia()); } else { pagamento.setAnoMesReferenciaPagamento(null); } /* * Caso o ano mes da data de debito seja maior que o ano mes de arrecada��o da * tabela sistema parametro ent�o seta o ano mes da data de debito */ if (anoMesPagamento > sistemaParametro.getAnoMesArrecadacao()) { pagamento.setAnoMesReferenciaArrecadacao(anoMesPagamento); } //Caso contrario seta o o ano mes arrecada��o da tabela sistema parametro else { pagamento.setAnoMesReferenciaArrecadacao(sistemaParametro.getAnoMesArrecadacao()); } //VALOR DO PAGAMENTO pagamento.setValorPagamento(cobrancaDocumentoItem.getValorItemCobrado()); //DATA DO PAGAMENTO pagamento.setDataPagamento(dataPagamento); //SITUA��O ATUAL pagamento.setPagamentoSituacaoAtual(null); //SITUA��O ANTERIOR pagamento.setPagamentoSituacaoAnterior(null); if (idDebitoTipo != null) { DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(idDebitoTipo); pagamento.setDebitoTipo(debitoTipo); } else { pagamento.setDebitoTipo(null); } //VERIFICA SE O PAGAMENTO SER� RELACIONADO COM UMA CONTA if (cobrancaDocumentoItem.getContaGeral() != null) { /* * Colocado por Raphael Rossiter em 26/11/2008 - CRC264 * OBJ: Inserir o pagamento com a localidade da pr�pria conta e n�o * com a localidade do documento de cobran�a */ Integer idLocalidadeConta = null; try { idLocalidadeConta = repositorioLocalidade.pesquisarIdLocalidadePorConta( cobrancaDocumentoItem.getContaGeral().getConta().getId()); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (idLocalidadeConta != null){ pagamento.setContaGeral(cobrancaDocumentoItem.getContaGeral()); } else{ try { idLocalidadeConta = repositorioLocalidade .pesquisarIdLocalidadePorContaHistorico( cobrancaDocumentoItem.getContaGeral().getConta().getId()); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } idLocalidade = idLocalidadeConta; DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.CONTA); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setContaGeral(null); } //VERIFICA SE O PAGAMENTO SER� RELACIONADO COM UMA GUIA DE PAGAMENTO if (cobrancaDocumentoItem.getGuiaPagamentoGeral() != null) { /* * Colocado por Raphael Rossiter em 26/11/2008 - CRC264 * OBJ: Inserir o pagamento com a localidade da pr�pria guia e n�o * com a localidade do documento de cobran�a */ Integer idLocalidadeGuiaPagamento = null; try { idLocalidadeGuiaPagamento = repositorioLocalidade .pesquisarIdLocalidadePorGuiaPagamento( cobrancaDocumentoItem.getGuiaPagamentoGeral() .getGuiaPagamento().getId()); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (idLocalidadeGuiaPagamento != null){ pagamento.setGuiaPagamento(cobrancaDocumentoItem.getGuiaPagamentoGeral().getGuiaPagamento()); } else{ try { idLocalidadeGuiaPagamento = repositorioLocalidade .pesquisarIdLocalidadePorGuiaPagamentoHistorico( cobrancaDocumentoItem.getGuiaPagamentoGeral() .getGuiaPagamento().getId()); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } idLocalidade = idLocalidadeGuiaPagamento; DocumentoTipo documentoTipo = new DocumentoTipo(); /* * verificar se o tipo de debito eh 'entrada de parcelamento', e preencher o documentotipo * com o 'entrada de parcelamento' */ // Alterado por R�mulo Aur�lio, Analista Rosana/Aryed // quando o tipo de debito for Entrada de Guia � pra inserir // o tipo de documento como guia de Parcelamento documentoTipo.setId(DocumentoTipo.GUIA_PAGAMENTO); documentoTipo.setDescricaoDocumentoTipo(ConstantesSistema.TIPO_PAGAMENTO_DOCUMENTO_COBRANCA); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setGuiaPagamento(null); } //VERIFICA SE O PAGAMENTO SER� RELACIONADO COM UM DEBITO A COBRAR if (cobrancaDocumentoItem.getDebitoACobrarGeral() != null) { try { if (debitoACobrarAntecipacao != null){ debitoACobrarGeral.setDebitoACobrar(debitoACobrarAntecipacao); debitoACobrarGeral.setId(debitoACobrarAntecipacao.getId()); pagamento.setDebitoACobrarGeral(debitoACobrarGeral); /* * Colocado por Raphael Rossiter em 26/11/2008 - CRC264 * OBJ: Inserir o pagamento com a localidade do pr�prio debito a cobrar e n�o * com a localidade do documento de cobran�a */ idLocalidade = repositorioLocalidade .pesquisarIdLocalidadePorDebitoACobrar( debitoACobrarGeral.getDebitoACobrar().getId()); } else if (cobrancaDocumentoItem.getDebitoACobrarGeral().getDebitoACobrar().getNumeroPrestacaoCobradas() != cobrancaDocumentoItem.getDebitoACobrarGeral().getDebitoACobrar().getNumeroPrestacaoDebito()) { /* * Colocado por Raphael Rossiter em 26/11/2008 - CRC264 * OBJ: Inserir o pagamento com a localidade do pr�prio debito a cobrar e n�o * com a localidade do documento de cobran�a */ Integer idLocalidadeDebitoACobrar = null; try { idLocalidadeDebitoACobrar = repositorioLocalidade .pesquisarIdLocalidadePorDebitoACobrar( cobrancaDocumentoItem.getDebitoACobrarGeral() .getDebitoACobrar().getId()); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (idLocalidadeDebitoACobrar != null){ pagamento.setDebitoACobrarGeral(cobrancaDocumentoItem.getDebitoACobrarGeral()); } else{ try { idLocalidadeDebitoACobrar = repositorioLocalidade .pesquisarIdLocalidadePorDebitoACobrarHistorico( cobrancaDocumentoItem.getDebitoACobrarGeral() .getDebitoACobrar().getId()); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } idLocalidade = idLocalidadeDebitoACobrar; } } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } DocumentoTipo documentoTipo = new DocumentoTipo(); documentoTipo.setId(DocumentoTipo.DEBITO_A_COBRAR); pagamento.setDocumentoTipo(documentoTipo); } else { pagamento.setDebitoACobrarGeral(null); } //LOCALIDADE if (idLocalidade != null) { Localidade localidade = new Localidade(); localidade.setId(idLocalidade); pagamento.setLocalidade(localidade); } else { pagamento.setLocalidade(null); } //AVISO BANCARIO pagamento.setAvisoBancario(null); //IMOVEL if (idImovelNaBase != null) { Imovel imovel = new Imovel(); imovel.setId(idImovelNaBase); pagamento.setImovel(imovel); } else { pagamento.setImovel(null); } pagamento.setArrecadadorMovimentoItem(null); ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(idFormaArrecadacao); pagamento.setArrecadacaoForma(arrecadacaoForma); pagamento.setCliente(null); pagamento.setUltimaAlteracao(new Date()); pagamento.setFatura(null); CobrancaDocumento cobrancaDocumento = new CobrancaDocumento(); cobrancaDocumento.setId(idCobrancaDocumento); pagamento.setCobrancaDocumento(cobrancaDocumento); // documento tipo do documento de cobranca if(idDocumentoTipo != null){ DocumentoTipo documentoAgregador = new DocumentoTipo(); documentoAgregador.setId(idDocumentoTipo); pagamento.setDocumentoTipoAgregador(documentoAgregador); } pagamento.setDataProcessamento(new Date()); if (pagamento.getDocumentoTipo() != null) { colecaoPagamentos.add(pagamento); } } else { CreditoARealizarGeral creditoARealizarGeral = new CreditoARealizarGeral(); creditoARealizarGeral.setId((Integer) arrayCobrancaDocumentoItem[13]); cobrancaDocumentoItem.setCreditoARealizarGeral(creditoARealizarGeral); //[SB0019] � Gerar D�bitos/Cr�ditos Parcelas Antecipadas CreditoARealizar creditoARealizarAntecipacao = null; if (cobrancaDocumentoItem.getNumeroParcelasAntecipadas() != null){ creditoARealizarAntecipacao = (CreditoARealizar) this.gerarDebitoCreditoParcelasAntecipadas(idImovelNaBase, cobrancaDocumentoItem, usuarioLogado); creditoARealizarGeral.setId(creditoARealizarAntecipacao.getId()); creditoARealizarGeral.setCreditoARealizar(creditoARealizarAntecipacao); } // Para os itens que tenham CreditoARealizar gerar // suas respectivas devolu��es Devolucao devolucao = new Devolucao(); // DataDevolucao = DataPagamento devolucao.setDataDevolucao(dataPagamento); /* * AnoMesReferenciaDevolucao Caso o anoMes da data * de devolu��o seja MAIOR que a * PARM_AMREFERENCIAARRECADACAO da tabela * SISTEMA_PARAMETROS atribuir o anoMes da data da * devolu��o, caso contr�rio atribuir o * PARM_AMREFERENCIAARRECADACAO. */ Integer anoMesDataDevolucao = Util.getAnoMesComoInteger(devolucao.getDataDevolucao()); if (anoMesDataDevolucao > sistemaParametro.getAnoMesArrecadacao()) { devolucao.setAnoMesReferenciaArrecadacao(anoMesDataDevolucao); } else { devolucao.setAnoMesReferenciaArrecadacao(sistemaParametro.getAnoMesArrecadacao()); } // ValorDevolucao = ValorItemCobrado devolucao.setValorDevolucao(cobrancaDocumentoItem.getValorItemCobrado()); // Localidade = Localidade da tabela // COBRANCA_DOCUMENTO if (arrayCobrancaDocumentoItem[14] != null) { Localidade localidade = new Localidade(); localidade .setId((Integer) arrayCobrancaDocumentoItem[14]); devolucao.setLocalidade(localidade); } // Imovel = Imovel da tabela COBRANCA_DOCUMENTO if (arrayCobrancaDocumentoItem[15] != null) { Imovel imovel = new Imovel(); imovel .setId((Integer) arrayCobrancaDocumentoItem[15]); devolucao.setImovel(imovel); } // DebitoTipo = DebitoTipo com o valor // correspondente a outros DebitoTipo debitoTipo = new DebitoTipo(); debitoTipo.setId(DebitoTipo.OUTROS); devolucao.setDebitoTipo(debitoTipo); // CreditoARealizarGeral = CreditoARealizarGeral da // tabela COBRANCA_DOCUMENTO_ITEM devolucao.setCreditoARealizarGeral(creditoARealizarGeral); // Ultima Altera��o devolucao.setUltimaAlteracao(new Date()); CobrancaDocumento cobrancaDocumento = new CobrancaDocumento(); cobrancaDocumento.setId(idCobrancaDocumento); devolucao.setCobrancaDocumento(cobrancaDocumento); // documento tipo do documento de cobranca if(idDocumentoTipo != null){ DocumentoTipo documentoAgregador = new DocumentoTipo(); documentoAgregador.setId(idDocumentoTipo); devolucao.setDocumentoTipoAgregador(documentoAgregador); } // ADICIONANDO A DEVOLUCAO GERADA NA COLECAO DE // RETORNO colecaoDevolucoes.add(devolucao); } } /* * Caso o d�bito a cobrar com parcelas antecipadas tenha juros de parcelamento (FNTP_ID = �Juros de Parcelamento� da * tabela DEBITO_A_COBRAR com PARC_ID = PARC_ID do d�bito com parcelas antecipadas). O sistema dever� * atualizar a quantidade de parcela b�nus do d�bito a cobrar de juros (DBAC_NNPARCELABONUS = * DBAC_NNPARCELABONUS + quantidade de parcelas antecipadas e DBAC_TMULTIMAALTERACAO = Data e Hora Correntes) */ if (colecaoDebitosACobrarJurosParcelamento != null && !colecaoDebitosACobrarJurosParcelamento.isEmpty()){ Iterator itDebitosACobrarJurosParcelamento = colecaoDebitosACobrarJurosParcelamento.iterator(); while(itDebitosACobrarJurosParcelamento.hasNext()){ this.atualizarNumeroParcelasBonus((DebitoACobrar) itDebitosACobrarJurosParcelamento.next()); } } } } else { descricaoOcorrencia = "DOCUMENTO DE COBRAN�A INEXISTENTE"; indicadorAceitacaoRegistro = "2"; } } else { // atribui o valor 2(N�O) ao indicador aceitacao // registro indicadorAceitacaoRegistro = "2"; } // Seta os parametros que ser�o retornados pagamentoHelperCodigoBarras.setColecaoPagamentos(colecaoPagamentos); pagamentoHelperCodigoBarras.setColecaoDevolucao(colecaoDevolucoes); pagamentoHelperCodigoBarras.setDescricaoOcorrencia(descricaoOcorrencia); pagamentoHelperCodigoBarras .setIndicadorAceitacaoRegistro(indicadorAceitacaoRegistro); return pagamentoHelperCodigoBarras; } }