Ir para conteúdo
  • Cadastre-se

dev botao

ACBrBancoNordeste Correção na função CarteiraToTipoOperacao


7Master
  • Este tópico foi criado há 1957 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Pessoal, estou homologando junto ao banco BNB boletos com a carteira 21 e layout 400. Os mesmos foram rejeitados na linha digitável. Quando fui verificar a function MontarCodigoBarras ela tem uma outra function chamada CarteiraToTipoOperacao, nesta função é onde está o problema.

function TACBrBancoNordeste.CarteiraToTipoOperacao(const Carteira: string):String; 
begin
  if Carteira = '1' then
    Result:= '21'
  else if Carteira = '2' then
     Result:= '21'
    //*Result:= '41' <--- Errado*
  else if Carteira = '4' then
    Result:= '21'
  else if Carteira = '5' then
    Result:= '41'
  else if Carteira = '6' then
    Result:= '31'
  else if Carteira = 'I' then
    Result:= '51'
  else
    Result:= Carteira;
end;

 

rejeicao.gif

Link para o comentário
Compartilhar em outros sites

Em 07/05/2018 at 09:32, 7Master disse:

Pessoal, estou homologando junto ao banco BNB boletos com a carteira 21 e layout 400. Os mesmos foram rejeitados na linha digitável. Quando fui verificar a function MontarCodigoBarras ela tem uma outra function chamada CarteiraToTipoOperacao, nesta função é onde está o problema.


function TACBrBancoNordeste.CarteiraToTipoOperacao(const Carteira: string):String; 
begin
  if Carteira = '1' then
    Result:= '21'
  else if Carteira = '2' then
     Result:= '21'
    //*Result:= '41' <--- Errado*
  else if Carteira = '4' then
    Result:= '21'
  else if Carteira = '5' then
    Result:= '41'
  else if Carteira = '6' then
    Result:= '31'
  else if Carteira = 'I' then
    Result:= '51'
  else
    Result:= Carteira;
end;

 

 

 

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, José M. S. Junior disse:

Bom dia,

Poderia anexar a página do manual onde apresenta essa divergência, para a possível correção.

Olá Junior, bom dia. Descobri que o problema não era na carteira e sim na função PadLeft, ela não esta 100%. Nesta função temos os parâmetros (string, qtde, caracter), ou seja, se quiser adicionar 5 zeros a esquerda, preencho PADLEFT('12345', 5,'0'), porém se essa string ja tiver 5 caracters ou mais ele ignora e deixa somente os zeros. Neste exemplo o retorno correto seria: 12345 mas ele retora 00000. Então quando ele vai montar o código de barra e pega a conta do cedente, o acbr ja traz ela com 7 dígitos, e ai quando uso PADLEFT(cedente.conta, 7, '0') ele retorna 0000000. No meu caso eu acrescentei a função RemoveZerosEsquerda .

Os atributos sempre estão vindo com zeros a esquerda mesmo sem ter. ex: Cedente.Conta, Cedente.Agencia. isso antes de montar o código de barras.

Class ACBrBancoNordeste

CodigoBarras := IntToStrZero( Numero, 3 )+'9'+ FatorVencimento +
                      IntToStrZero(Round(ACBrTitulo.ValorDocumento*100),10) +
                      PadLeft(OnlyNumber(RemoveZerosEsquerda(Cedente.Agencia)),4,'0') +
                      PadLeft(OnlyNumber(RemoveZerosEsquerda(Cedente.Conta)),7,'0') +
                      PadLeft(Cedente.ContaDigito,1,'0') +
                      ACBrTitulo.NossoNumero +
                      CalcularDigitoVerificador(ACBrTitulo) +
                      CarteiraToTipoOperacao(ACBrTitulo.Carteira) + '000';

 

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • Moderadores

Bom dia, favor atualizar os fontes  e anexar o seu fonte com a alteração para análise....

Não compreendi a necessidade, visto que essa função em outros bancos também seguem o mesmo padrão... Você está utilizando esta função com os dados obtidos a partir do Retorno?

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • 6 meses depois ...
  • Administradores

Tópico fechado por falta de retorno do usuário

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1957 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...