Ir para conteúdo
Fórum Script Brasil
  • 0

Calcular dv cobrança Banco Real


Alberto Mota

Pergunta

Bom Pessoal estou quebrando a cabeça e não consigo a solução para calcular o digito de

cobrança do Banco Real. Uso o sql server express 2005.

Ele é composto por 24 numeros

13 do nosso numero + agencia(4) e conta(7)

Se colocar assim:

dbo.modulo10('000000001567601401736863')

Ele me retorna o correto que é 2

Se colocar

dbo.Modulo10(SUBSTRING(BaseCobranca, 0, 24)) AS DvCobranca

retorna 8

O campo BaseCobranca é a união dos 3 campos que são alfanuméricos.

Se alguém puder me auxiliar fico imensamente grato.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Bom dia Alberto,

O que identifiquei de errado seria o mesmo postado pelo Kuroi.

Ou você colocado no substring de 0 a 25 ou de 1 a 24. O que pode estar dando problema é quando você passa o valor para a varíavel que utiliza (BaseCobranca). Pode estar passando um valor diferente do número...

Dá uma olhada no exemplo abaixo:

create proc dbo.Modulo10 @base varchar(24)
as
if @base='000000001567601401736863'
select 'OK' + ' - ' + @base
Else
select 'Erro' + ' - ' + @base


dbo.modulo10 '000000001567601401736863'

declare @BaseCobranca varchar(24)
set @BaseCobranca =  '000000001567601401736863'
set @BaseCobranca = SUBSTRING(@BaseCobranca, 0, 25) 

exec dbo.Modulo10 @BaseCobranca

Link para o comentário
Compartilhar em outros sites

  • 0

Fulvio, voce tem razão. O retorno foi o esperado (2). Agradeço ao Kuroi também voces estavam certos.

Criei uma nova função ModuloCob colocando 24 como base. Fico imensamente grato a ambos.

Amanhã deve vir a resposta da analise de 3 boletos.

Acredito que o DV Geral se der problemas, farei as devidas adptações.

Segue o select completo:

SELECT associado, baseseq, BaseCobranca, dbo.ModuloCob(SUBSTRING(BaseCobranca, 0, 25)) AS DvCobranca, DVGeral, CodigoDebarras,

'3569' + SUBSTRING(CodigoDebarras, 20, 5) AS BCampo1, dbo.Modulo10('3569' + SUBSTRING(CodigoDebarras, 20, 5)) AS DVCampo1,

SUBSTRING(CodigoDebarras, 25, 10) AS BCampo2, dbo.Modulo10(SUBSTRING(CodigoDebarras, 25, 10)) AS DVCampo2, SUBSTRING(CodigoDebarras,

35, 10) AS BCampo3, dbo.Modulo10(SUBSTRING(CodigoDebarras, 35, 10)) AS DVCampo3, exercicio, dtvcto, dtproc, vr, seq, Codigo, Carteira, Agencia,

Cedente, DvCedente

FROM dbo.QryBoletosMovR3

Um abraço. Sucesso!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...