Ir para conteúdo
  • Cadastre-se

dev botao

Banco da Amazônia - Arquivo Remessa CNAB 240


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

Recommended Posts

  • Membros Pro

Boa tarde, estamos recebendo erros do banco ao realizar a homologação do arquivo de remessa.

1 - Quando é gerado uma remessa com apenas 1 (um) registro, o componente informa no arquivo o valor "-3" ("GerarRegistroTrailler240" / "18 a 23 - Quantidade de Registro da Remessa") (conforme imagem "327577-0219-Erro02.png")

2 - Faixa do nosso número incorreta (conforme imagem em anexo "327577-0219-erro04.png")

Alguém esta tendo esses problemas?

327577-0219-erro04.png

327577-0219-Erro02.png

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Alteração sugerida no arquivo "ACBrBancoAmazonia.pas":

function TACBrBancoAmazonia.GerarRegistroTrailler240(ARemessa: TStringList): String;
begin
     { REGISTRO TRAILER DO LOTE }
     Result := IntToStrZero(ACBrBanco.Numero, 3) + // 1 a 3 - Código do banco
          '0001' + // 4 a 7 - Número do lote
          '5' + // 8 - Tipo do registro: Registro trailer do lote
          Space(9) + // 9 a 17 - Uso exclusivo FEBRABAN/CNAB
          //********************************************************************
          {OS=327577}
          //IntToStrZero((3 * (ARemessa.Count - 3)), 6) + // 18 a 23 - Quantidade de Registro da Remessa
          IntToStrZero((3 * (ARemessa.Count-1)) + 1, 6) + // 18 a 23 - Quantidade de Registro da Remessa
          //********************************************************************
          PadRight('', 6, '0') + // 24 a 29 - Quantidade títulos em cobrança
          PadRight('', 17, '0') + // 30 a 46 - Valor dos títulos em carteiras}
          PadRight('', 6, '0') + // 47 a 52 - Quantidade títulos em cobrança
          PadRight('', 17, '0') + // 53 a 69 - Valor dos títulos em carteiras}
          PadRight('', 6, '0') + // 70 a 75 - Quantidade títulos em cobrança
          PadRight('', 17, '0') + // 76 a 92 - Valor dos títulos em carteiras}
          PadRight('', 6, '0') + // 93 a 98 - Quantidade títulos em cobrança
          PadRight('', 17, '0') + // 99 a 115 - Valor dos títulos em carteiras}
          Space(8) + // 116 a 123 - Uso exclusivo FEBRABAN/CNAB}
          PadRight('', 117, ' '); // 124 a 240 - Uso exclusivo FEBRABAN/CNAB}

     { GERAR REGISTRO TRAILER DO ARQUIVO }
     Result := Result + #13#10 + IntToStrZero(ACBrBanco.Numero, 3) + // 1 a 3 - Código do banco
          '9999' + // 4 a 7 - Lote de serviço
          '9' + // 8 - Tipo do registro: Registro trailer do arquivo
          Space(9) + // 9 a 17 - Uso exclusivo FEBRABAN/CNAB}
          '000001' + // 18 a 23 - Quantidade de lotes do arquivo}
          //********************************************************************
          {OS=327577}
          //IntToStrZero(((ARemessa.Count - 3) * 3) + 4, 6) + // 24 a 29 - Quantidade de registros do arquivo, inclusive este registro que está sendo criado agora}
          IntToStrZero((3 * (ARemessa.Count-1)) + 4, 6) + // 24 a 29 - Quantidade de registros do arquivo, inclusive este registro que está sendo criado agora}
          //********************************************************************
          Space(6) + // 30 a 35 - Uso exclusivo FEBRABAN/CNAB}
          Space(205); // 36 a 240 - Uso exclusivo FEBRABAN/CNAB}
end;

 

Ocorre o erro na validação do código digitável (conforme imagem "327517-0219-Erro03.png")

Alteração sugerida no arquivo "ACBrBancoAmazonia.pas":

function TACBrBancoAmazonia.MontarCodigoBarras(const ACBrTitulo: TACBrTitulo): String;
var
     CodigoBarras, FatorVencimento, DigitoCodBarras: String;
begin
     with ACBrTitulo.ACBrBoleto do
     begin
          FatorVencimento := CalcularFatorVencimento(ACBrTitulo.Vencimento);

          //********************************************************************
          {OS=327577}
          //CodigoBarras := PadLeft(OnlyNumber(IntToStr(fpNumero)), 3, '0') + '9' + FatorVencimento + IntToStrZero(Round(ACBrTitulo.ValorDocumento * 100), 10) + PadLeft(OnlyNumber(Cedente.Agencia), fpTamanhoAgencia, '0') + PadLeft(OnlyNumber(Cedente.AgenciaDigito), 1, '0') + PadLeft(OnlyNumber(Cedente.Convenio), 4, '0') + PadLeft(OnlyNumber(ACBrTitulo.NossoNumero), fpTamanhoMaximoNossoNum, '0') + '8';
          CodigoBarras := PadLeft(OnlyNumber(IntToStr(fpNumero)), 3, '0') + '9' + FatorVencimento + IntToStrZero(Round(ACBrTitulo.ValorDocumento * 100), 10) + PadLeft(OnlyNumber(Cedente.Agencia), fpTamanhoAgencia, '0') + PadLeft(OnlyNumber(Cedente.AgenciaDigito), 1, '0') + PadLeft(OnlyNumber(Cedente.Convenio), 4, '0') + PadLeft(OnlyNumber(ACBrTitulo.NossoNumero), fpTamanhoMaximoNossoNum, '0') + '0';
          //********************************************************************

          DigitoCodBarras := CalcularDigitoCodigoBarras(CodigoBarras);
     end;

     Result := PadLeft(OnlyNumber(IntToStr(fpNumero)), 3, '0') + '9' + DigitoCodBarras + Copy(CodigoBarras, 5, 39);
end;

 

327577-0219-Erro03.png

Manual Cobranca Registrada Banco Amazonia - Versao 1.2 - MANUAL CNAB240 (5).pdf

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Alteração sugerida no arquivo "ACBrBancoAmazonia.pas":

function TACBrBancoAmazonia.GerarRegistroTransacao240(ACBrTitulo: TACBrTitulo): String;

...

          { SEGMENTO P }
          Result := IntToStrZero(ACBrBanco.Numero, 3) + // 1 a 3 - Código do banco
               '0001' + // 4 a 7 - Lote de serviço
               '3' + // 8 - Tipo do registro: Registro detalhe
               IntToStrZero((3 * ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo)) + 1, 5) + // 9 a 13 - Número seqüencial do registro no lote - Cada título tem 2 registros (P e Q)
               'P' + // 14 - Código do segmento do registro detalhe
               ' ' + // 15 - Uso exclusivo FEBRABAN/CNAB: Branco
               ATipoOcorrencia + // 16 a 17 - Código de movimento
               PadLeft(aAgencia, 5, ' ') + // 18 a 22 - Agência mantenedora da conta
               PadRight(ACBrBoleto.Cedente.AgenciaDigito, 1, '0') + // 23 -Dígito verificador da agência
               aConta + // 24 a 35 - Número da conta corrente
               PadRight(ACBrBoleto.Cedente.ContaDigito, 1, '0') + // 36 - Dígito verificador da conta
               ' ' + // 37 - Dígito verificador da agência / conta
               //***************************************************************
               {OS=327577}
               //PadRight(ANossoNumero + aDV, 20, ' ') + // 38 a 57 - Nosso número - identificação do título no banco
               PadRight(RemoveZerosEsquerda(ANossoNumero), 20, ' ') + // 38 a 57 - Nosso número - identificação do título no banco
               //***************************************************************
               PadRight(IntToStr(wCarteira), 1, '0') + // 58 - Cobrança Simples
               '1' + // 59 - Forma de cadastramento do título no banco: com cadastramento

...

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom Dia,

Além da alteração do dígito "0" no  Código de Barras, o banco validou sem problemas?

Pois comparando com o manual a implementação do código de barras parece estar inconsistente, não segue a sequencia de campos do manual para geração... chegou a ver isso também?

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

  • Membros Pro
1 hora atrás, José M. S. Junior disse:

Bom Dia,

Além da alteração do dígito "0" no  Código de Barras, o banco validou sem problemas?

Pois comparando com o manual a implementação do código de barras parece estar inconsistente, não segue a sequencia de campos do manual para geração... chegou a ver isso também?

Boa tarde, a implementação foi repassada para a equipe de suporte que acompanha o cliente, assim que tiver uma resposta sobre esta questão posto aqui.

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.