DIGITO VERIFICADOR - BOLETO CEF

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

edenilsomga

DIGITO VERIFICADOR - BOLETO CEF

Mensagem por edenilsomga »

Estou com um boleto da CAIXA ECONOMICA FEDERAL, 99,99% ok, nao estou conseguindo gerar o digito verificador corretamente, ja entrei em contato com o (0800) da CEF, mas os caras sao muito devagar, ja me mandaram dois manuais, e seguindo os mesmos, nao bate o digito, finalmente ontem falei novamente no (0800) e me disseram que ja mudou a layout da string para o calculo do digito. Resumindo... o povo da CEF nao consegue me passar nada correto.

Apelo para os caros colegas, se alguem tiver a maneira correta de montar a string para o calculo do digito verificador, ficarei muito agradecido.


desde ja agradeco
Magno
Usuário Nível 1
Usuário Nível 1
Mensagens: 11
Registrado em: 05 Ago 2004 13:19
Localização: Belo Horizonte
Contato:

Mensagem por Magno »

Olá amigo,
Hoje estava navegando pelo site e vi sua mensagem. Se vc ainda está precisando, dê uma verificadinha no saite do toledo. Lá tem uma rotian para impressao do Código de Barras. O Helpdesk da CAIXA não funciona. Os caras não sabem nada.

Veja no seguinte endereço a rotina completa:
https://pctoledo.org/download/cop ... t&deonde=2

Minhas boletas foram homologadas sem problemas.
A rotina que uso é a seguinte (extraído do programa acima):


//===========================================================================//
// //
// Retorna D¡gito de Controle M¢dulo 10 //
// //
//===========================================================================//
static function BLQ_DG10(mCDBC,mNMOG)
local mVLDG,mSMMD,mCTDG,mRSDV,mDCMD
mSMMD:=0
for mCTDG:=1 to len(mNMOG)
mVLDG:=val(substr(mNMOG,len(mNMOG)-mCTDG+1,1))*iif(mod(mCTDG,2)==0,1,2)
mSMMD+=mVLDG-iif(mVLDG>9,9,0)
endfor
mRSDV:=mod(mSMMD,10)
mDCMD:=iif(mRSDV==0,"0",str(10-mRSDV,1))
return mDCMD


//===========================================================================//
// //
// Retorna D¡gito de Controle M¢dulo 11 (p/ Banco) //
// //
//===========================================================================//
static function BLQ_DG11(mCDBC,mBSDG,mFGCB,mNMOG)
local mSMMD,mCTDG,mSQMP,mRSDV,mDCMD

default mFGCB to FALSE
mSMMD:=0
mSQMP:=2
for mCTDG:=1 to len(mNMOG)
mSMMD+=val(substr(mNMOG,len(mNMOG)-mCTDG+1,1))*(mSQMP)
mSQMP:=iif(mSQMP==mBSDG,2,mSQMP+1)
endfor
mRSDV:= 11 - mod(mSMMD,11)

IF mFGCB
mDCMD:=iif(mRSDV==0 .or. mRSDV==1 .or. mRSDV > 9,"1",str(mRSDV,1))
ELSE
mDCMD:=iif(mRSDV > 9, "0", str(mRSDV,1))
ENDIF
return mDCMD


Tenho essa outra rotina mas ela e feita para o minigui


********************************************************
function modulo11_dvg()
********************************************************
local mSMMD,mCTDG,mSQMP,mRSDV,mDCMD

mNMOG:= (InputBox ('Numero '))

mSMMD:=0
mSQMP:=2
mBSDG:=9
for mCTDG:=1 to len(mNMOG)
mSMMD+=val(substr(mNMOG,len(mNMOG)-mCTDG+1,1))*(mSQMP)
mSQMP:=iif(mSQMP==mBSDG,2,mSQMP+1)
endfor
mRSDV:= 11 - mod(mSMMD,11)

mDCMD:=iif(mRSDV==0 .or. mRSDV==1 .or. mRSDV > 9,"1",str(mRSDV,1))
msginfo( "Digito verificardor geral " + mDCMD)
mDCMD:=iif(mRSDV > 9, "0", str(mRSDV,1))
msginfo( "Digito cedente ou nosso numero " + mDCMD)
return
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

A versão do PRWIN 3.5 que imprime boleto bancário está pronta, vou colocar para testes segunda no meu site.
Sem mais
Wagner Nunes
www.vagucs.com.br
edenilsomga

Agradecimento

Mensagem por edenilsomga »

Ola Magno

Obrigado pela dica..... mas ja resolvi o problema. Fiz uma pressao no povo da CEF, e com muito custo consegui a versao correta do layout para a verificacao do DIGITO... como vc mesmo comentou o povo la é muito devagar.


Obrigado!!
Responder