Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Pessoal foi enviado para homologacao 10 boletos do banrisul  de um cliente meu e para surpresa verifiquei que a maneira com que e calculado o numero do controle em alguns casos e diferente... ou sej nao e em todos os boletos que da problema. Verificando no layout do banrisul e nos fonts deparei onde esta o problema...

 

Veja os numeros que deu problema pra mim do banrisul:

 

Nosso Numero: 00000034

 

04192.12204 85893.100009 00034.041202 4 57990000000882 O numero de Controle neste caso deveria ser 38 e nao 20

 

 

 

Nosso Numero: 00000037

04192.12204 85893.100009 00037.041910 3 57090000000882 O numero de Controle neste caso deveria ser 90 e nao 91

 

Observando vi que o problema esta na procedure ACBrCalcDigito.Calcular da Unit ACBRValidador no modulo 10

 

 

frModulo10 :
      begin
        fsModuloFinal := (fsSomaDigitos mod 10);
        fsDigitoFinal := 10 - fsModuloFinal;
 
        if (fsDigitoFinal >= 10) then
           fsDigitoFinal := 0;
      end ;
 
 
So nao sei se posso alterar pois nao sei o que pode influenciar posteriormente

 

 

 

 

 

Vejam o que eles me responderam sobre este calculo:

 

 

4.1 MÓDULOS 10 E 11 FÓRMULA DE CÁLCULO DO "NC" DO NOSSO NÚMERO
NOSSO NÚMERO - Caso haja interesse de parte do cedente em numerar antecipadamente os títulos,
deverá adotar um critério a ser combinado na fase de testes, podendo, inclusive ser o número da fatura e NC.
Formato do campo ''Nosso Número'':
99999999.NC - onde:
99999999 é o número seqüencial atribuído pelo Cedente e o NC será calculado pelo seguinte critério:
4.2 MÓDULO ''10'' CÁLCULO DO PRIMEIRO DÍGITO VERIFICADOR
Obter somatório, atribuindo-se os pesos 2 e 1, respectivamente, sempre da direita para a esquerda.
(N1*1-9) + (N2*2-9) + (N3*1-9) + (N4*2-9) + (N5*1-9) + (N6*2-9) + (N7*1-9)+(N8*2-9)
OBSERVAÇÕES:
a) a subtração do ''9'' somente será feita se o produto obtido da multiplicação individual for maior do que ''9''.
Quociente = somatório dividido por ''10''
Primeiro DV = ''10'' - RESTO.
B) quando o somatório for menor que ''10'', o ''resto'' da divisão por ''10'' será o próprio somatório.
c) quando o resto for ''0'', o primeiro DV é igual a ''0''.
Exemplo:
Tomemos por base o Nosso Número = ''00009274'':
Somatório, atribuindo-se os pesos 2 e 1, respectivamente, sempre da direita para a esquerda.
(0*1-9)+(0*2-9)+(0*1-9)+(0*2-9)+(9*1-9)+(2*2-9)+(7*1-9)+(4*2-9)
0 0 0 0 9 2 7 4
X 1 2 1 2 1 2 1 2
0 + 0 + 0 + 0 + 9 + 4 + 7 + 8 = 28
Somatório = 28
Quociente = 28 / 10 = 2 e RESTO = 8
Primeiro DV = 10 - 8 ou
Primeiro DV = ''2''.
 

A partir do cálculo, o primeiro DV é agregado ao Nosso Número original (atrás), ou seja: ''000092742''

 

 

4.3 MÓDULO ''11'' CÁLCULO DO SEGUNDO DÍGITO VERIFICADOR
Obter somatório (peso de 2 a 7), sempre da direita para a esquerda
(N1*4)+(N2*3)+(N3*2)+(N4*7)+(N5*6)+(N6*5)+(N7*4)+(N8*3)+(N9*2),
Exemplo:
0 0 0 0 9 2 7 4 2
X 4 3 2 7 6 5 4 3 2
0 + 0 + 0 + 0 + 54 + 10 + 28 + 12 + 4 = 108
Somatório = 108
Efetuar a divisão da somatório pelo módulo "11". Obtemos:
Somatório = 108 / 11 = 9 e RESTO = 9
Segundo DV = 11 - 9 = ''2''
Portanto, o número de controle procurado é ''22''.
NOTAS: Caso o somatório obtido seja menor que “11”, considerar como resto da divisão o próprio somatório. Caso o ''resto'' obtido no cálculo do módulo ''11'' seja igual a ''1'', considera-se o DV inválido.
Soma-se, então, "1" ao DV obtido do módulo "10" e refaz-se o cálculo do módulo “11” . Se o dígito obtido pelo módulo “10” era igual a "9", considera-se então (9+1=10) DV inválido.
Neste caso, o DV do módulo "10" automaticamente será igual a "0" e procede-se assim novo cálculo
pelo módulo "11". Caso o ''resto'' obtido no cálculo do módulo ''11'' seja ''0'', o segundo ''NC'' será igual ao próprio ''resto''.
EXEMPLO:
Tomemos o Nosso Número “00009194”:
O somatório do primeiro cálculo (módulo 10) é igual a “28” e o Resto é igual a “8”.
Portanto, o primeiro DV é igual a 10 - 8 ou DV=2.
O somatório do segundo cálculo (módulo 11) é igual a “111” e o Resto é, neste caso, igual a “1”.
Portanto, o segundo DV é 11-1=10 ou DV inválido.
Neste caso, soma-se “1” ao DV obtido do primeiro cálculo (módulo 10) e efetua-se novo cálculo do módulo 11, agora com o novo Nosso Número, ou “000091943”.
O somatório do segundo cálculo é igual a “113” e o RESTO igual a “3”. Portanto, o segundo DV é igual a 11 - 3 ou seja DV = 8.
Neste exemplo, o “NC” procurado é “38”.

 

 

 

Aguardo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • Este tópico foi criado há 4805 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.

The popup will be closed in 10 segundos...