Pesquisar na Comunidade
Showing results for tags 'recusado'.
Encontrado 1 registro
-
Erro ao Ler Retorno do Banco do Brasil - CNAB400
um tópico no fórum postou Marcos Leonardo Martins ACBrBoleto
Boa tarde ! Estou tendo um problema com a leitura de retornos do Banco do Brasil, usando o layout CNAB 400. Alguns registros do arquivo de retorno estão vindo com o comando 03, que de acordo com o manual do banco é COMANDO RECUSADO. Ao ler o retorno, estou usando a propriedade Titulo.OcorrenciaOriginal.Descricao para pegar a descrição do comando, porém, mesmo sendo 03, volta como 02 - Entrada Confirmada. Vasculhando o arquivo ACBRBancoBrasil.pas, verifiquei que o problema parece ser em duas funções: function TACBrBancoBrasil.CodOcorrenciaToTipo(const CodOcorrencia: Integer ) : TACBrTipoOcorrencia; begin Result := toTipoOcorrenciaNenhum; if (ACBrBanco.ACBrBoleto.LayoutRemessa = c240) then begin case CodOcorrencia of 03: Result := toRetornoRegistroRecusado; 04: Result := toRetornoTransferenciaCarteiraEntrada; 05: Result := toRetornoTransferenciaCarteiraBaixa; 15: Result := toRetornoBaixadoFrancoPagamento; 17: Result := toRetornoLiquidadoSemRegistro; 20: Result := toRetornoRecebimentoInstrucaoSustarProtesto; 24: Result := toRetornoRetiradoDeCartorio; 25: Result := toRetornoBaixaPorProtesto; 26: Result := toRetornoInstrucaoRejeitada; 27: Result := toRetornoAlteracaoUsoCedente; 28: Result := toRetornoDebitoTarifas; 29: Result := toRetornoOcorrenciasDoSacado; 30: Result := toRetornoAlteracaoDadosRejeitados; 50: Result := toRetornoChequePendenteCompensacao; end; end else begin case CodOcorrencia of 03: Result := toRetornoComandoRecusado; 05: Result := toRetornoLiquidadoSemRegistro; 07: Result := toRetornoLiquidadoPorConta; 08: Result := toRetornoLiquidadoSaldoRestante; 10: Result := toRetornoBaixaSolicitada; 15: Result := toRetornoLiquidadoEmCartorio; 16: Result := toRetornoConfirmacaoAlteracaoJurosMora; 20: Result := toRetornoDebitoEmConta; 21: Result := toRetornoNomeSacadoAlterado; 22: Result := toRetornoEnderecoSacadoAlterado; 24: Result := toRetornoProtestoSustado; 25: Result := toRetornoJurosDispensados; 28: Result := toRetornoManutencaoTituloVencido; 31: Result := toRetornoDescontoConcedido; 32: Result := toRetornoDescontoCancelado; 33: Result := toRetornoDescontoRetificado; 34: Result := toRetornoAlterarDataDesconto; 35: Result := toRetornoRecebimentoInstrucaoAlterarJuros; 36: Result := toRetornoRecebimentoInstrucaoDispensarJuros; 37: Result := toRetornoDispensarIndexador; 38: Result := toRetornoDispensarPrazoLimiteRecebimento; 39: Result := toRetornoAlterarPrazoLimiteRecebimento; 46: Result := toRetornoChequePendenteCompensacao; 72: Result := toRetornoTipoCobrancaAlterado; 96: Result := toRetornoDespesasProtesto; 97: Result := toRetornoProtestoSustado; 98: Result := toRetornoDebitoCustasAntecipadas; end; end; if (Result <> toTipoOcorrenciaNenhum) then Exit; case CodOcorrencia of 02: Result := toRetornoRegistroConfirmado; 06: Result := toRetornoLiquidado; 09: Result := toRetornoBaixaAutomatica; 11: Result := toRetornoTituloEmSer; 12: Result := toRetornoAbatimentoConcedido; 13: Result := toRetornoAbatimentoCancelado; 14: Result := toRetornoVencimentoAlterado; 19: Result := toRetornoRecebimentoInstrucaoProtestar; 23: Result := toRetornoEntradaEmCartorio; 44: Result := toRetornoChequeDevolvido; else Result := toRetornoOutrasOcorrencias; end; end; Nessa função, ao ler as posições 109 a 110 do arquivo de retorno, o ACBr atribui o tipo toRetornoComandoRecusado quando o conteúdo é 03. Até aí tudo bem...o problema vem na outra função: function TACBrBancoBrasil.TipoOCorrenciaToCod ( const TipoOcorrencia: TACBrTipoOcorrencia ) : String; begin Result := ''; if (ACBrBanco.ACBrBoleto.LayoutRemessa = c240) then begin case TipoOcorrencia of toRetornoTransferenciaCarteiraEntrada : Result := '04'; toRetornoTransferenciaCarteiraBaixa : Result := '05'; toRetornoBaixaAutomatica : Result := '09'; toRetornoBaixadoFrancoPagamento : Result := '15'; toRetornoLiquidadoSemRegistro : Result := '17'; toRetornoRecebimentoInstrucaoSustarProtesto : Result := '20'; toRetornoRetiradoDeCartorio : Result := '24'; toRetornoBaixaPorProtesto : Result := '25'; toRetornoInstrucaoRejeitada : Result := '26'; toRetornoAlteracaoUsoCedente : Result := '27'; toRetornoDebitoTarifas : Result := '28'; toRetornoOcorrenciasDoSacado : Result := '29'; toRetornoAlteracaoDadosRejeitados : Result := '30'; toRetornoChequePendenteCompensacao : Result := '50'; end; end else begin case TipoOcorrencia of toRetornoLiquidadoSemRegistro : Result := '05'; toRetornoLiquidadoPorConta : Result := '08'; toRetornoLiquidadoSaldoRestante : Result := '08'; toRetornoBaixaSolicitada : Result := '10'; toRetornoLiquidadoEmCartorio : Result := '15'; toRetornoConfirmacaoAlteracaoJurosMora : Result := '16'; toRetornoDebitoEmConta : Result := '20'; toRetornoNomeSacadoAlterado : Result := '21'; toRetornoEnderecoSacadoAlterado : Result := '22'; toRetornoProtestoSustado : Result := '24'; toRetornoJurosDispensados : Result := '25'; toRetornoManutencaoTituloVencido : Result := '28'; toRetornoDescontoConcedido : Result := '31'; toRetornoDescontoCancelado : Result := '32'; toRetornoDescontoRetificado : Result := '33'; toRetornoAlterarDataDesconto : Result := '34'; toRetornoRecebimentoInstrucaoAlterarJuros : Result := '35'; toRetornoRecebimentoInstrucaoDispensarJuros : Result := '36'; toRetornoDispensarIndexador : Result := '37'; toRetornoDispensarPrazoLimiteRecebimento : Result := '38'; toRetornoAlterarPrazoLimiteRecebimento : Result := '39'; toRetornoChequePendenteCompensacao : Result := '46'; toRetornoTipoCobrancaAlterado : Result := '72'; toRetornoDespesasProtesto : Result := '96'; toRetornoDespesasSustacaoProtesto : Result := '97'; toRetornoDebitoCustasAntecipadas : Result := '98'; end; end; if (Result <> '') then Exit; case TipoOcorrencia of toRetornoRegistroConfirmado : Result := '02'; toRetornoRegistroRecusado : Result := '03'; toRetornoLiquidado : Result := '06'; toRetornoTituloEmSer : Result := '11'; toRetornoAbatimentoConcedido : Result := '12'; toRetornoAbatimentoCancelado : Result := '13'; toRetornoVencimentoAlterado : Result := '14'; toRetornoRecebimentoInstrucaoProtestar : Result := '19'; toRetornoEntradaEmCartorio : Result := '23'; toRetornoChequeDevolvido : Result := '44'; else Result := '02'; end; end; Nessa função, o ACBr não está jogando '03' para quando for toRetornoComandoRecusado e sim quando for toRetornoRegistroRecusado. Porém, verificando o ACBRBancoBrasil.pas, toRetornoRegistroRecusado só existe no layout CNAB240. Gostaria que isso fosse verificado, por favor, para ver se é bug mesmo ou algum outro problema. Obrigado.- 4 replies
-
- retorno
- bancodobrasil
-
(e 1 mais)
Tags: