Ir para conteúdo
  • Cadastre-se

dev botao

Pegar DV do NossoNumero do Sicoob240


Ver Solução Respondido por Victor H. Gonzales - Panda,
  • Este tópico foi criado há 537 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Boa tarde.

Tenho o arquivo de retorno do Sicoob CNAB240.

No Registro T, nas posições entre 38 e 57 está o nosso numero.

Quando gero o boleto e envio ao banco, guardo no meu banco o nosso numero completo, mas o componente está lendo apenas 7 posições, deixando o digito fora.

Nesse exemplo o nosso número completo é "00452466" e a leitura foi apenas "0045246".

Posso alterar a unit e postar a alteração?

Segue o manual do Sicoob,

image.thumb.png.8e3ec60a16d8528fbaaa3c3cc2234115.pngimage.thumb.png.1df7c3fedb3a9e686df6ecb36da9c35f.png

Layouts_para_troca_de_informações - cooperativas COBRANÇA_15.04.2020.xls

  • Curtir 1
  • Consultores
Postado

Boa tarde!

Pode sim! Qualquer contribuição sempre será mais do que bem vinda.

Após alterar a unit e fazer seus testes, anexe ela aqui para que possamos validar e incluir no SVN.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Consultores
  • Solution
Postado
1 hora atrás, Mario Inacio disse:

Bom dia Diego.

Claro, vou alterar e fazer testes de importação.

Depois reposto o resultado.

Bom dia,

o Nosso Número ele é montado com 7 dígitos, se o ultimo digito é DV ele é descartado.
mas atualmente com base nesses 7 dígitos você consegue o DV que está no titulo

//LTitulo : TACBrTitulo;
ACBrBoleto.Banco.CalcularDigitoVerificador(LTitulo);

 

  • Curtir 3
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
Postado

Bom dia Victor.

Fui testar conforme sua sugestão.

Quando gerei o boleto e a remessa salvei o nosso numero completo no DB

NossoNumero leu como '0043862'

image.png.1cfe233c983511e0b60044859f9f2aa2.png

Depois inseri o calculo do Digito com: 

NossoNumOriginal := NossoNumOriginal + Boleto.Banco.CalcularDigitoVerificador(Objects[i]);

image.png.a0b73000c3d3d911a75b861dc6815977.png

Só que o dígito correto é 7, conforme o arquivo de retorno.

image.png.61b2a29d2a1f01ed5ccdcab824031bc6.png

 

TESTE RETORNO SICOOB.txt

  • Membros Pro
Postado

Ola.

Encontrei o erro no calculo do DV.

No arquivo de retorno, não é retornado o CodigoCedente, informação usada no cálculo do digito do Nosso numero.

A leitura está usando erronamente os campo da conta e digito para formar o CodigoCedente.

 

image.png.5fa8555636f25e8203ccb9b11e6cf1c3.png

  • Membros Pro
Postado

Solução momentanea ou definitiva.

Tive tambem que setar "fpTamanhoMaximoNossoNum para 8", voltando ao padrão ao final da leitura

Alterei a linha 539 da unit ACBrBancoBancoob.pas para pegar a quantidade de posição da variavel fpTamanhoMaximoNossoNum.

NossoNumero          := Copy(Linha,40,fpTamanhoMaximoNossoNum); // Alterada por Mario em 05/06/2023

 

ACBrBancoBancoob.pas

  • Consultores
Postado

Boa tarde,

não foi muito bem isso que eu lhe disse para aplicar, a forma que você opera não é bem o habitual.
de posse da lista de objetos de retorno, você configurar o componente (igual você vai fazer a remessa) e assim tu consegue gerar o mesmo nosso número.

só que, se eu for acatar essa solicitação sua, será acatada por parâmetro e conforme o manual, se no manual tem mais posições no retorno completo, esse será enviado como tal.
pelo fato de acatar dessa forma, há uma quebra na operação em produção de todos que já usam, e geralmente não se usa numero de controle ou armazena separadamente.

pois se tu tiver que gerar a segunda via deste boleto, você não conseguirá gerar ele informando o numero com o DV.

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
Postado

Bom dia.

Já trabalho a bastante tempo com o componente, mas agora tive que fazer mudanças em virtude de um novo cliente que havia gerado boletos pelo site do banco, sendo que o Sequencial do Nosso Número veio o mesmo que eu tinha no banco com outro boleto.

Então tentei localizar meu NossoNumero completo, mas tambem ficou muito confuso.

A solução foi reformatar o nosso numero completo inserido no banco retirando o dígito, dessa forma, pego a leitura do nosso numero feita pelo componente e recorto, conforme o banco a quantidade de digitos que preciso, pois há algumas particularidades entre os bancos que não entendi o comportamento do componente.

Exemplo:

Sicoob não lê o digito

BB e Sicred lê o nosso numero inteiro com o digito

 

Att

 

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