<% 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 %>