Ir para conteúdo
  • Cadastre-se

dev botao

Retorno Sicred 240


Ver Solução Respondido por José M. S. Junior,
  • Este tópico foi criado há 1659 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 para o comentário
Compartilhar em outros 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.

  • Curtir 1
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

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

  • Curtir 1
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

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 para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

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

Att.

  • Curtir 1
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

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 para o comentário
Compartilhar em outros 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.

  • Curtir 1
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

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 para o comentário
Compartilhar em outros 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.

  • Curtir 2
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

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.

  • Curtir 1
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • Administradores

Obrigado por reportar.

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

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á 1659 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...