Jump to content

Retorno Sicred 240


Danilo Ziza
Go to solution Solved by José M. S. Junior,
  • Este tópico foi criado há 1063 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde,

Ao ler o retorno do Sicred 240 o nosso número está retornando apenas os primeiros 8 dígitos:

NossoNumero          := Trim(Copy(SegT,38,8));

Porém temos clientes onde o arquivo de retorno apresenta 9 dígitos, e no manual em anexo é indicado até 20 dígitos (pág. 19).

7480001300001T 0603950 0000000423289 192000175           1436            28062019000000000080000000072314436                      092007220788000190DCK COMERCIO DE COMBUSTIVEIS LTDA       000000000000000000000000000                         

Realizei um ajuste para que o nosso número seja lido de acordo com o "TamanhoMaximoNossoNum" indicado no componente, por default está como 8 então não irá afetar quem já estiver usando.

NossoNumero          := Trim(Copy(SegT,38,fpTamanhoMaximoNossoNum));

Ajuste em anexo a quem interessar, e se possível atualização no repositório.

 

Sicredi_Manual_Empresas_Conveniadas___CNAB_240___18062014.pdf ACBrBancoSicredi.pas

Udisoft Sistemas

http://udisoft.com.br

Link to comment
Share on other sites

  • Administradores

Boa tarde,

Não entendi como essa alteração  pode impactar a leitura desta informação, uma vez que em nenhum momento a propriedade fpTamanhoMaximoNossoNum tem seu valor padrão(8) alterado para a leitura do retorno 240.

Att.

  • Like 1
Consultora SAC ACBr

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

Link to comment
Share on other sites

  • Administradores

Boa tarde.

Agora sim fez sentido, vc altera no componente para o seu caso.

Não tem uma regra que diga quando são 8 e quando são 9?

Att.

  • Like 1
Consultora SAC ACBr

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

Link to comment
Share on other sites

Não que eu saiba, na verdade o correto seria considerar os 20 dígitos conforme indicado no manual, porém o ACBr completa com zeros a esquerda, dessa forma poderia causar problemas para o pessoal que usa apenas com 8 dígitos pois passaria a vir "00000000000012345678" ao invés de "12345678":

fNossoNumero := PadLeft(wNossoNumero,wTamNossoNumero,'0'); // ACBrBoleto -> Linha 1612

Temos 2 opções então:

1 - Deixar conforme implementado em anexo e quem trabalhar com mais de 8 dígitos altera o "TamanhoMaximoNossoNum" no componente

2 - Alteramos para pegar sempre as 20 posições conforme indicado no manual, neste caso tem que decidir se mantemos os zeros a esquerda que o ACBr adiciona (ACBrBoleto -> Linha 1612) ou se deixamos sem os zeros a esquerda.

Udisoft Sistemas

http://udisoft.com.br

Link to comment
Share on other sites

  • Administradores

Boa tarde.

O curioso é que na remessa são 8 dígitos, então é esquisito o retorno ter 20.

Att.

  • Like 1
Consultora SAC ACBr

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

Link to comment
Share on other sites

No manual todas as referências ao nosso número indicam 20 posições, tanto remessa quanto retorno (manual em anexo), não significa que o nosso número tenha 20 dígitos mas sim que deveríamos ler todas as 20 posições pra extrair o nosso número, hoje o ACBr lê apenas 8 posições:

NossoNumero          := Trim(Copy(SegT,38,8));

Sem-t-tulo.png

Sicredi_Manual_Empresas_Conveniadas___CNAB_240___18062014.pdf

Udisoft Sistemas

http://udisoft.com.br

Link to comment
Share on other sites

  • Administradores

Boa tarde, 

Note este trecho do manual onde é explicada a composição do nosso número, no caso se forem lidas as 20 posições cai pegar o nosso número formatado, e não somente o campo de livre utilização.

image.png

Att.

  • Like 1
Consultora SAC ACBr

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

Link to comment
Share on other sites

Juliana o banco está retornando 9 posições no nosso número, esse é o registro de retorno:

7480001300001T 0603950 0000000423289 192000175           1436            28062019000000000080000000072314436                      092007220788000190DCK COMERCIO DE COMBUSTIVEIS LTDA       000000000000000000000000000

O ACBr também está gerando o nosso número com 9 posições, a última posição é o dígito verificador, não existe formatação, apenas um filler com zeros:

7480001300019P 0103950 0000000423289 1920001750000000000011122436            2806201900000000008000000000 03N21062019100000000000000000000093100000000000000000000000000000000000000000000000000000436                      3001060090000000000 

Dessa forma se considerarmos apenas 8 posições no retorno virá apenas 19200017, sem o dígito verificador, e o título não será localizado no sistema pois ao gerar a remessa o ACBr nos retorna o nosso número com 9 posições (considerando o dígito verificador), a forma mais simples de resolver isso é a implementação anexada onde o programador pode alterar o "TamanhoMaximoNossoNum" que será lido no retorno.

ACBrBoleto.Banco.TamanhoMaximoNossoNum := 9;
ou
ACBrBoleto.Banco.TamanhoMaximoNossoNum := 20;

E quem não quiser o nosso número com o dígito verificador (nono dígito) não será afetado pois o valor default do "TamanhoMaximoNossoNum" é 8.

Udisoft Sistemas

http://udisoft.com.br

Link to comment
Share on other sites

  • Administradores

Boa tarde.

Realmente a questão do DV entrar ou não na leitura do nosso número acaba sendo um problema, estou adicionado sua contribuição para ser analisada pelos demais membros da equipe.

Att.

  • Like 2
Consultora SAC ACBr

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

Link to comment
Share on other sites

Em 04/07/2019 at 14:40, Juliana Tamizou disse:

Boa tarde.

Realmente a questão do DV entrar ou não na leitura do nosso número acaba sendo um problema, estou adicionado sua contribuição para ser analisada pelos demais membros da equipe.

Att.

Pelo o que vi alguns bancos retornam o nosso numero com o digito, e outros não.

Eu particularmente utilizo o Sicredi, e não tenho problemas na leitura, pois quando leio o nosso numero eu calculo o digito verificardor, e formato o nosso numero conforme ele foi gerado e enviado na remessa, pois muitas vezes a formatação de envio não é mesma do retorno.

Não vejo necessidade de alteração, pois ai todos que utilizam terão que revisar os códigos.

 

Dercide.

  • Like 1
Link to comment
Share on other sites

Bom dia Dercide,

Visto que o valor default do "TamanhoMaximoNossoNum" é 8 ninguém que já utiliza dessa forma seria afetado, continuariam recebendo o nosso número normalmente com 8 posições e sem o DV, da forma como está o programador terá que fazer como você fez (calcular o DV manualmente), o que acho desnecessário já que o mesmo vem no arquivo de retorno.

Mas tudo bem, podem desconsiderar a colaboração.

Obrigado.

Udisoft Sistemas

http://udisoft.com.br

Link to comment
Share on other sites

Boa tarde @Márcio Baroni

Pois é, pessoalmente acho errado o retorno ler apenas 8 posições (sem DV) enquanto na remessa é gerado 9 posições (com DV), com a alteração que sugerimos lendo pelo "TamanhoMaximoNossoNum" daria pra contornar isso e o demais não seriam afetados, vou ter que manter a alteração local também.

Udisoft Sistemas

http://udisoft.com.br

Link to comment
Share on other sites

  • 1 month later...
  • Administradores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora SAC ACBr

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

Link to comment
Share on other sites

  • Este tópico foi criado há 1063 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.