%
codigobanco = "399"
codigo_banco_com_dv = geraCodigoBanco(codigobanco) ' testado, ok!
nummoeda = "9"
fator_vencimentos = f_vencimento(data_vencimento) ' testado, ok!
'Monta o valor com 10 digitos
valor = formata_numero(valor_boleto,10,0,"valor")
'Monta a Carteira CNR
carteira = "CNR"
'Pega código Cedente
codigo_cedente = boleto_cod_cedente
'Numero do documento tem 13 digitos
num_doc = formata_numero(nosso_numero,13,0,"geral")
'Vencimento do documento
venc_doc = data_vencimento
'Monta o nosso numero
nossonumero = geranossonumero()
'FUNÇÃO GERAR NOSSO NUMERO
FUNCTION geranossonumero()
'Primeiro tira o mod11 do numero_doc
digito1 = modulo_11_invertido(num_doc)
digito2 = modulo_11_invertido(num_doc&digito1&"4")
nosso_n = num_doc&digito1&"4"&digito2
geranossonumero = nosso_n
END FUNCTION
FUNCTION calcula_data_juliano(data_aqui)
data=data_aqui 'insira a data que quer calcular
dataatual=datevalue(data)
calculodias=dataatual-datevalue("01/01/"&right(data,4))+1
calcula_data_juliano=formata_numero(calculodias&right(vencimento,1),4,0,"geral")
END FUNCTION
nnum = formata_numero(nossonumero,16,0, "geral")
codigo_barras = codigobanco&nummoeda&fator_vencimentos&valor&codigo_cedente&num_doc&calcula_data_juliano(venc_doc)&"2"
dv = digitoVerificador_barra(codigo_barras)
' Numero para o codigo de barras com 44 digitos
linha = left(codigo_barras,4)&dv&mid(codigo_barras, 5, 43)
linha_digitavel = monta_linha_digitavel(linha)
dvnossonumero=modulo_10(vAgenciaItau&vContaItau&vCarteiraItau&var_nossonumero)
dvagconta=modulo_10(vAgenciaItau&vContaItau)
agencia_codigo = agencia_codigo
nosso_numero = nossonumero
codigo_banco_com_dv = codigo_banco_com_dv
function digitoVerificador_barra(numero)
resto2 = modulo_11(numero)
if resto2 = 0 or resto2 = 1 or resto2 = 10 then
dv = 1
else
dv = resto2
end if
digitoVerificador_barra = dv
end function
function formata_numero(numero,loops,insert, tipo)
if tipo = "geral" then
numero = Replace(numero, ",","")
do while len(numero) < loops
numero = insert & numero
loop
end if
if tipo = "valor" then
numero = replace(numero, ",","")
do while len(numero) < loops
numero = insert & numero
loop
end if
if tipo = "convenio" then
do while (len(numero) < loops)
numero = insert & numero
loop
end if
formata_numero = numero
end function
function esquerda(entra,comp)
esquerda = left(entra,comp)
end function
function direita(entra,comp)
direita = right(entra,comp)
end function
function monta_linha_digitavel(codigo)
'// campo 1
banco = left(codigo,3)
moeda = mid(codigo,4,1)
cc_parte1= mid(codigo, 20,5)
dv1 = modulo_10(banco&moeda&cc_parte1)
montado1 = banco&moeda&cc_parte1&dv1
campo1 = left(montado1,5) & "." & right(montado1,5)
'// campo 2
cc_parte2 = mid(codigo, 25,2)
cd_parte1 = mid(codigo, 27,8)
dv2 = modulo_10(cc_parte2&cd_parte1)
montado2 = cc_parte2&cd_parte1&dv2
campo2 = left(montado2,5) & "." & right(montado2,6)
'// campo 3
cd_parte2 = mid(codigo, 35,5)
venc_juli = mid(codigo, 40,4)
cod_app = "2"
dv3 = modulo_10(cd_parte2&venc_juli&cod_app)
montado3 = cd_parte2&venc_juli&cod_app&dv3
campo3 = left(montado3,5) & "." & right(montado3,6)
'// campo 4
dv4 = mid(codigo,5,1)
'// campo 5
fator = mid(codigo,6,4)
valor = mid(codigo,10,10)
campo5 = fator&valor
monta_linha_digitavel = campo1 &" "& campo2 &" "& campo3 &" "& dv4 &" "& campo5
end function
'**************************
FUNCTION f_vencimento(vencimento)
'**************************
if len(vencimento)<8 then
f_vencimento = "0000"
else
f_vencimento = datevalue(""&vencimento&"")-datevalue("1997/10/07")
end if
'*************************
END FUNCTION
'*************************
'**************************
FUNCTION modulo_10(cadeia)
'**************************
mult=(len(cadeia) mod 2)
mult=mult+1
total=0
for pos=1 to len(cadeia)
res= mid(cadeia, pos, 1) * mult
if res>9 then
res=int(res/10) + (res mod 10)
end if
total=total+res
if mult=2 then
mult=1
else
mult=2
end if
next
total=((10-(total mod 10)) mod 10 )
CALCDIG10=total
modulo_10 = CALCDIG10
'*************************
END FUNCTION
'*************************
'**************************
FUNCTION modulo_11(cadeia)
'**************************
limitesup = 9
lflag = 0
mult=1 + (len(cadeia) mod (limitesup-1))
if mult=1 then
mult=limitesup
end if
total=0
for pos=1 to len(cadeia)
total=total+(mid(cadeia,pos,1) * mult)
mult=mult-1
if mult=1 then
mult=limitesup
end if
Next
nresto=(total mod 11)
if lflag = 1 then
calcdig11=nresto
else
if nresto=0 or nresto=1 or nresto=10 then
ndig=1
else
ndig=11 - nresto
end if
calcdig11=ndig
end if
modulo_11 = calcdig11
'*************************
END FUNCTION
'*************************
'**************************
FUNCTION modulo_11_invertido(cadeia)
'**************************
'*** DAC NOSSO NUMERO MOD 11 PESO 9
'***
Produto = 0
Multiplicador = 2
DAC_NossoN = cadeia
For ii = Len(DAC_NossoN) To 1 Step -1
conta = Cint(Mid(DAC_NossoN, ii, 1))
Produto = Produto + (Cint(Mid(DAC_NossoN, ii, 1)) * Multiplicador)
Multiplicador = IIf(Multiplicador = 9, 2, Multiplicador + 1)
Next
DAC_NossoN = 11 - Int(Produto Mod 11)
if DAC_NossoN = 10 then
DAC_NossoN = 0
end if
modulo_11_invertido = DAC_NossoN
'*************************
END FUNCTION
'*************************
Public Function IIf(blnExpressao, vVerdadeiro, vFalso)
If blnExpressao Then
IIf = vVerdadeiro
Else
IIf = vFalso
End If
End Function
function geraCodigoBanco(numero)
parte1 = left(numero, 3)
parte2 = modulo_11(parte1)
geraCodigoBanco = parte1 & "-" & parte2
end function
function fbarcode(valor)
Dim f, f1, f2, i
Dim texto
Const fino = 1
Const largo = 3
Const altura = 50
Dim BarCodes(99)
if isempty(BarCodes(0)) then
BarCodes(0) = "00110"
BarCodes(1) = "10001"
BarCodes(2) = "01001"
BarCodes(3) = "11000"
BarCodes(4) = "00101"
BarCodes(5) = "10100"
BarCodes(6) = "01100"
BarCodes(7) = "00011"
BarCodes(8) = "10010"
BarCodes(9) = "01010"
for f1 = 9 to 0 step -1
for f2 = 9 to 0 Step -1
f = f1 * 10 + f2
texto = ""
for i = 1 To 5
texto = texto & mid(BarCodes(f1), i, 1) + mid(BarCodes(f2), i, 1)
next
BarCodes(f) = texto
next
next
end if
'Desenho da barra
' Guarda inicial
%>
height=<%=altura%> border=0>
height=<%=altura%> border=0>
height=<%=altura%> border=0>
height=<%=altura%> border=0>
0 then
texto = "0" & texto
end if
' Draw dos dados
do while len(texto) > 0
i = cint( left( texto, 2) )
texto = right( texto, len( texto ) - 2)
f = BarCodes(i)
for i = 1 to 10 step 2
if mid(f, i, 1) = "0" then
f1 = fino
else
f1 = largo
end if
%>
src=imagens/p.gif width=<%=f1%> height=<%=altura%> border=0>
src=imagens/b.gif width=<%=f2%> height=<%=altura%> border=0>
src=imagens/p.gif width=<%=largo%> height=<%=altura%> border=0>
height=<%=altura%> border=0>
height=<%=altura%> border=0>
<%
end function
%>