× Linguagem de Programação ADVPL

Perguntas Codigo Fonte para calcular o Digito Veriricador do Codigo de Barra BOTELOT BANCARIO

Mais
11 anos 8 meses atrás #11755 por Sombra
Boa tarde Srs

Estaca precisando do Codigo Fonte para calcular o Digito Veriricador do Codigo de Barra para BOTELOT BANCARIO -

COIDIGO DAC.

MODELO CADOC 240244

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 8 meses atrás #11772 por lalberto
cBarra:=SE1->E1_PORTADO+If(SE1->E1_MOEDA==1,'9','0')+strzero(nFatorVen,4);
+SUBS(STRZERO(SE1->E1_SALDO,16,2),6,8)+SUBS(STRZERO(SE1->E1_SALDO,16,2),15,2);
+NOSSONUM + StrTran(StrTran(ALLTRIM(SA6->A6_AGENCIA)+SA6->A6_CEDENTE,'.',''),'-','') //'0314870000001227'//+ MV_PAR11+ NOSSONUM //SE1->E1_NUMBCO

//agencia cedente carteira
DVN := CDigitoNosso() // calculo dos digitos verificadores do nosso numero.
CDigitoChave()


//========================================================================
// CDIGITOCHAVE
//========================================================================
Static Function CDigitoChave()
******************************
nCont:=0
cBarraImp := space(43)
cBarraImp := Subs(cBarra,1,43)

CalculaModulo11()

//nCont1 := int(nCont / 11)
//nCont2 := ncont1 * 11
//nResto := ncont - ncont2
nResto := MOD(ncont,11)
nDigitoImp := 11 - nResto

if nResto <= 1 .or. nResto > 9
nDigitoImp := 1
EndIf

cBarraFim := subs(cBarra,1,4) + strzero(nDigitoImp,1) + subs(cBarra,5,39)
Return

//========================================================================
// CALCULAMODULO11
//========================================================================
Static Function CalculaModulo11
*******************************
nCont := 0.00
nCont := nCont+(Val(Subs(cBarraImp,43,1))*2)
nCont := nCont+(Val(Subs(cBarraImp,42,1))*3)
nCont := nCont+(Val(Subs(cBarraImp,41,1))*4)
nCont := nCont+(Val(Subs(cBarraImp,40,1))*5)
nCont := nCont+(Val(Subs(cBarraImp,39,1))*6)
nCont := nCont+(Val(Subs(cBarraImp,38,1))*7)
nCont := nCont+(Val(Subs(cBarraImp,37,1))*8)
nCont := nCont+(Val(Subs(cBarraImp,36,1))*9)
nCont := nCont+(Val(Subs(cBarraImp,35,1))*2)
nCont := nCont+(Val(Subs(cBarraImp,34,1))*3)
nCont := nCont+(Val(Subs(cBarraImp,33,1))*4)
nCont := nCont+(Val(Subs(cBarraImp,32,1))*5)
nCont := nCont+(Val(Subs(cBarraImp,31,1))*6)
nCont := nCont+(Val(Subs(cBarraImp,30,1))*7)
nCont := nCont+(Val(Subs(cBarraImp,29,1))*8)
nCont := nCont+(Val(Subs(cBarraImp,28,1))*9)

nCont := nCont+(Val(Subs(cBarraImp,27,1))*2)
nCont := nCont+(Val(Subs(cBarraImp,26,1))*3)
nCont := nCont+(Val(Subs(cBarraImp,25,1))*4)
nCont := nCont+(Val(Subs(cBarraImp,24,1))*5)
nCont := nCont+(Val(Subs(cBarraImp,23,1))*6)
nCont := nCont+(Val(Subs(cBarraImp,22,1))*7)
nCont := nCont+(Val(Subs(cBarraImp,21,1))*8)
nCont := nCont+(Val(Subs(cBarraImp,20,1))*9)
nCont := nCont+(Val(Subs(cBarraImp,19,1))*2)

nCont := nCont+(Val(Subs(cBarraImp,18,1))*3)
nCont := nCont+(Val(Subs(cBarraImp,17,1))*4)
nCont := nCont+(Val(Subs(cBarraImp,16,1))*5)
nCont := nCont+(Val(Subs(cBarraImp,15,1))*6)
nCont := nCont+(Val(Subs(cBarraImp,14,1))*7)
nCont := nCont+(Val(Subs(cBarraImp,13,1))*8)

nCont := nCont+(Val(Subs(cBarraImp,12,1))*9)
nCont := nCont+(Val(Subs(cBarraImp,11,1))*2)
nCont := nCont+(Val(Subs(cBarraImp,10,1))*3)
nCont := nCont+(Val(Subs(cBarraImp,09,1))*4)
nCont := nCont+(Val(Subs(cBarraImp,08,1))*5)
nCont := nCont+(Val(Subs(cBarraImp,07,1))*6)

nCont := nCont+(Val(Subs(cBarraImp,06,1))*7)
nCont := nCont+(Val(Subs(cBarraImp,05,1))*8)
nCont := nCont+(Val(Subs(cBarraImp,04,1))*9)
nCont := nCont+(Val(Subs(cBarraImp,03,1))*2)
nCont := nCont+(Val(Subs(cBarraImp,02,1))*3)
nCont := nCont+(Val(Subs(cBarraImp,01,1))*4)

Return

//========================================================================
// CDIGITONOSS0
//========================================================================
Static Function CDigitoNosso()
******************************
nCont:=0
cBarraImp3 := space(11)
cBarraImp3 := nossonum // Subs(cBarra,19,11)
CalNosso()
nCont1 := int(nCont / 11)
nCont2 := ncont1 * 11
nResto := ncont - ncont2
nResto := 11 - nResto
if nResto > 9
nResto := 0
cBarraImp4 := cBarraImp3+"0"
Return("0")
else
cBarraImp4 := cBarraImp3 + strzero(nResto,1)
Return(strzero(nResto,1))
EndIf

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 8 meses atrás #11776 por Sombra
Boa tarde Luizão..

valeu pela Força...


abs

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 8 meses atrás #11796 por kaciorrm
Bom dia,

Quando coloquei o CNAB desenvolvi uma rotina semelhante para calcular o Digito verificador, após o termino constatei que existem funções prontas da TOTVS para alumas situações inclusive para o Digito verificador, mas não cheguei a usa-las.

as funções foram retiradas na apostila em um anexo no forum
www.masteradvpl.com.br/media/kunena/attachments/646/CNAB.rar

Funções padrões disponíveis
MOD10 - Calcula o digito verificado de uma seqüência de números baseados no Ambiente 10. Utilizando
para verificar o digito em linhas digitáveis e código de barras de concessionárias de serviços públicos.
MOD11- Calculo o digito verificador de uma seqüência de números baseando-se no Ambiente 11.
Utilizado para verificar o digito em linhas digitáveis e código de barras em geral.
VLDCODBAR- Valida o código de barras ou a linha digitável de títulos a pagar ou a receber;
SOMAVALOR- Retorna o valor total dos títulos remetidos.
INCREMENTA- Retorna o próximo numero da seqüência de linhas para o CNAB modelo 1.
INCREMENTAL- Retorna o próximo numero da seqüência de linhas para o CNAB modelo 2.
NOSSONUM- Retorna o próximo numero disponível para identificação do titulo de acordo com a faixa
de numeração fornecida pelo banco, utilizada quando os boletos são impressos pela empresa.
NUMTITULO- Retorna a chave de localização de um titulo somente para a carteira a pagar.
GRAVADATA- Converte uma data no formato DD/MM/AAAA para um dos 6 formatos caracteres pré-definidos.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.143 segundos
Joomla templates by a4joomla