Jump to content

Compre o Delphi
Com até 30% de desconto
e parcelado em até 12x sem juros

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Messias Natal

Linha digitável UNICRED gerando com letra 'P'

Recommended Posts

Pessoal estou homologando o boleto do banco UNICRED e em alguns boletos aleatórios esta sendo gerado a letra P, analisando o código fonte da 

unit 'ACBrBancoUnicredES.pas' do banco vi que este 'P' é gerado na função de calculo do digito verificador:

function TACBrBancoUnicredES.CalcularDigitoVerificador(const ACBrTitulo: TACBrTitulo 😞 String;
begin
   Modulo.CalculoPadrao;
   Modulo.MultiplicadorFinal := 9;
   Modulo.Documento := ACBrTitulo.NossoNumero;
   Modulo.Calcular;

   if Modulo.ModuloFinal = 1 then
      Result:= 'P'
   else
      Result:= IntToStr(Modulo.DigitoFinal);
end;

 

Gostaria de saber o por que esta acontecendo isto, por que não pode ser gerado letra em linha digitável, segue anexo da impressão do boleto. 

 

BoletoErrado.PNG

Share this post


Link to post
Share on other sites

Bom dia.

O digito verificador é gerado conforme o manual do banco, recomendo antes de tudo a leitura do mesmo para entender se é o caso de propor alguma alteração.

Att.


Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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

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

Share this post


Link to post
Share on other sites
2 horas atrás, Juliana Tamizou disse:

Bom dia.

O digito verificador é gerado conforme o manual do banco, recomendo antes de tudo a leitura do mesmo para entender se é o caso de propor alguma alteração.

Att.

Queria saber o por que tem o retorno P, vou analisar mais uma vez o manual.

  • Like 1

Share this post


Link to post
Share on other sites

Favor avaliar a geração do digito no nosso numero.

Conforme manual 

3.11 Cálculo do Dígito Verificador Geral 
O módulo 11 de um número é calculado multiplicando cada algarismo 
pela sequência de multiplicadores 2,3,4,5,6,7,8,9,2,3, ... 
posicionados da direita para a esquerda. 
A soma dos algarismos do produto é dividida por 11 e o DV (dígito verificador) será a diferença entre o divisor ( 11 ) e o resto da divisão: 

DV = 11 - (resto da divisão) 
Observação: quando o resto da divisão for 0 (zero) ou 10 (dez), o DV calculado é o 1 (um).  

Visto que conforme CalcularDigitoVerificador esta jogando 'P' quando o dígito for 1.

 

Share this post


Link to post
Share on other sites
Em 28/05/2019 at 17:25, andepunk disse:

Favor avaliar a geração do digito no nosso numero.

Conforme manual 

3.11 Cálculo do Dígito Verificador Geral 
O módulo 11 de um número é calculado multiplicando cada algarismo 
pela sequência de multiplicadores 2,3,4,5,6,7,8,9,2,3, ... 
posicionados da direita para a esquerda. 
A soma dos algarismos do produto é dividida por 11 e o DV (dígito verificador) será a diferença entre o divisor ( 11 ) e o resto da divisão: 

DV = 11 - (resto da divisão) 
Observação: quando o resto da divisão for 0 (zero) ou 10 (dez), o DV calculado é o 1 (um).  

Visto que conforme CalcularDigitoVerificador esta jogando 'P' quando o dígito for 1.

 

Estou com mesmo problema, não encontrei no manual orientação para troca para P, sera feito o ajuste?


Davi Souza
Analista/Desenvolvedor de Aplicação Desktop
Teste 48 9 9643-8854

Share this post


Link to post
Share on other sites

Bom dia.

Precisamos rever este tópico, fazendo a troca seu boleto foi validado?

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.

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

Share this post


Link to post
Share on other sites
Em 13/08/2019 at 09:56, Juliana Tamizou disse:

Bom dia.

Precisamos rever este tópico, fazendo a troca seu boleto foi validado?

Att.

Ola, Após ter verificado o manual, fui verificar os boletos que meu cliente emitia pelo próprio programa do banco, realizei os cálculos conforme o manual e quando o retorno era 1 que no caso no acbr jogava P o do banco jogava o zero, 

então eu fiz a alteração no código fonte trocando o 'P' pelo zero, realizei emissões com os mesmo dados do boleto gerado pelo programa do banco e os dados bateram, enviei ao banco e ele aprovou. 

segue as alterações: 

   if Modulo.ModuloFinal = 1 then
      Result:= '0'

 

Nesta unit teve um segunda alteração em relação a função LerRetorno400 onde as posições da data de credito não estava de acordo com o manual tbm realizei o ajuste.

         if StrToIntDef(Copy(sLinha,176,6),0) <> 0 then
            DataCredito:= StringToDateTimeDef( Copy(sLinha,176,2)+'/'+
                                               Copy(sLinha,178,2)+'/'+
                                               Copy(sLinha,180,2),0, 'DD/MM/YY' );

 

Como faço para enviar este arquivo para vcs avaliarem ?

ACBrBancoUnicredES.pas

  • Like 1

Share this post


Link to post
Share on other sites

Bom dia.

Obrigada pela contribuição, adicionada para validação.

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.

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...