Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcelo Pescador

Boleto Banco do Brasil

Recommended Posts

O código abaixo foi homologado.

<%
option explicit

session.lcid = 1046

dim idPedido, valor, data_documento, data_vencimento,nome_sacado, endereco_sacado, endereco_sacado2,cedente, cpf_cnpj, agencia, dac_agencia,conta, dac_conta, carteira,layout_boleto,convenio, numero_documento,nosso_numero, instrucoes1,instrucoes2,instrucoes3,instrucoes4, instrucoes5, contrato, especie, especie_doc, aceite, a, fvencimento, valor_str, livre, dac_nosso_numero, codbar, mult, total, pos, nresto, ndig, dac, cmplivre, campo1, res, campo2,campo3,campo4, campo5, linha_digitavel, agencia_codigo, x98, quantidade, data_processamento, valor_unitario, x80, x171,x99,x3,x125,x126,x18,dvNosso_numero
dim sql, rs

idPedido = "10"

'================INFORMAÇÕES BANCÁRIAS==============
cedente = "InfoByte Ltda"
cpf_cnpj = "000.000.000/0000-00"
agencia = "1234"
dac_agencia = "3"
conta = "9999"
dac_conta = "9"
convenio = "1234567"
carteira = "18"

'================INSTRUÇÕES DO BOLETO==============
instrucoes1 = "Após o vencimento multa de 2% + 0,1% de mora ao dia."
instrucoes2 = "Protestar 03 dias úteis após o vencimento."
instrucoes3 = "-"
instrucoes4 = "-"
instrucoes5 = "-"
'=====================================================

valor     = formatNumber(52.15,2)
data_vencimento = formatDateTime(#18-01-2008#, vbShortDate)
data_documento = formatDateTime(#15-01-2008#, vbShortDate)
data_processamento = date()
nome_sacado    = "Xanburzum da Silva - CNPJ: 111.111.111/1111-110"
endereco_sacado = "Rua de testes nº 5<br>"&_
         "13400-370 - Piracicaba/SP"

'Evite mudar estas variaveis abaixo
layout_boleto = "3"
numero_documento = idPedido
nosso_numero = idPedido
dvNosso_numero = mod11(convenio &right("0000000000"&idPedido,10),9,0)
contrato = ""
especie = "R$"
especie_doc = "DM"
aceite = "N"

function mod11(cadeia,limitesup,lflag)
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
mod11=nresto
else
if nresto=0 or nresto=1 or nresto=10 then
ndig=1
else
ndig=11 - nresto 
end if
mod11=ndig
end if
end function

function mod10(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 )
mod10=total
end function

function linhadigitavel(codigobarras)
cmplivre=mid(codigobarras,20,25)
campo1=left(codigobarras,4)&mid(cmplivre,1,5)
campo1=campo1&mod10(campo1)
campo1=mid(campo1,1,5)&"."&mid(campo1,6,5)
campo2=mid(cmplivre,6,10)
campo2=campo2&mod10(campo2)
campo2=mid(campo2,1,5)&"."&mid(campo2,6,6)
campo3=mid(cmplivre,16,10)
campo3=campo3&mod10(campo3)
campo3=mid(campo3,1,5)&"."&mid(campo3,6,6)
campo4=mid(codigobarras,5,1)
campo5=int(mid(codigobarras,6,14)) 
if campo5=0 then
campo5="000"
end if
linhadigitavel=campo1&" "&campo2&" "&campo3&" "&campo4&" "&campo5 
end function 
function fvenc(entra)
fvenc = DateDiff("d", CDate("7/10/1997"), CDate(entra))
end function 
function formatar(valor, comp, ench, tipo)
dim str
str = valor
if tipo = "v" then
str = Ccur(str)
str = formatnumber(str,2,-2,-2,-2)
tipo = "e" :str = cstr(str)
str = replace(str,",","")
str = replace(str,".","")
end if
for a=len(str) to (comp - 1)
if tipo = "e" then
str = ench & str 
else
str = str & ench
end if
next
if tipo = "e" then
str = left(str,comp) 
else
str = right(str,comp)
end if
formatar = str
end function 
function d1d2(entra)
d1 = mod10(entra)
Do
d2 = mod11(entra & d1,7,1)
if d2 = 1 then
if d2 = 9 then
    d1 = 0
elseif d1 < 9 then
    d1 = d1 + 1
else
    d1 = 0
end if 
end if
Loop while d2 = 1
if d2 > 0 then
d2 = 11 - d2
end if
d1d2 = Cstr(Cstr(entra) & Cstr(d1) & Cstr(d2))
end function 
function dv(entra)
temp = Cint(mod11(entra,9,1))
if temp < 10 then
dv = 11 - temp
else
dv = 1
end if
if dv = 11 then dv = 0
if dv = 10 then dv = "X"
dv = Cstr(dv)
end function
layout_boleto = Cstr(layout_boleto)
conta = Cstr(formatar(conta,8,"0","e"))
fvencimento = Cstr(fvenc(data_vencimento))
valor_str = Cstr(formatar(valor,10,"0","v"))
agencia = Cstr(formatar(agencia,4,"0","e"))
carteira = Cstr(formatar(carteira,2,"0","e"))
if layout_boleto = "3" then
convenio = formatar(convenio,7,"0","e")
nosso_numero = formatar(nosso_numero,10,"0","e")
livre = "000000" & convenio & nosso_numero & carteira
dac_nosso_numero = ""    
nosso_numero = convenio & nosso_numero
else
Response.Write("ERRO ! <br> Selecione o layout do boleto inválido, use numero 3")
Response.End()
end if
codbar = Cstr("0019" & fvencimento & valor_str & livre)
dac = Cstr(mod11(codbar,9,0))
codbar = Cstr("0019" & dac & fvencimento & valor_str & livre)
linha_digitavel = linhadigitavel(codbar)
agencia_codigo = agencia &"-"& dac_agencia & "/" & conta &"-"& dac_conta
valor = formatnumber(Ccur(valor),2,-2,-2,-2)
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boleto BB</title>
<meta http-equiv=Content-Type content="text/html;charset=windows-1252">
<meta content="MSHTML 6.00.2800.1400" name=GENERATOR>
<style>
.Titulo11{
font:11px Arial, Helvetica, sans-serif;
} 
.campo{
font:10px Verdana, Arial, Helvetica, sans-serif;
} 
.CampoTitulo{
font:bold 14px Arial, Helvetica, sans-serif;
}
.Normal{
font:12px Arial, Helvetica, sans-serif;
}
</style>
</head> 
<body bgcolor="White" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgproperties="fixed">
<table border="0" cellPadding="0" cellSpacing="0" width="660">
<tr>
<td class="Normal">
<div align="center">
    <b>O pagamento deste boleto também poderá ser efetuado pelo Auto-Atendimento BB na Internet ou pelos Terminais de Auto-Atendimento.</b>
</div>
<p>
     <b>Instruções:</b><br>
    <ol>
     <li>Imprima em impressora jato de tinta (ink jet) ou laser em qualidade normal ou alta. Não use modo econômico.</li>
     <li>Utilize folha A4 (210 x 297mm) ou Carta (216 x 279mm) e margens mínimas à esquerda e à direita do formulário.</li>
     <li>Corte na linha indicada. Não rasure, risque, fure ou dobre a região onde se encontra o código de barras.</li>
    </ol>
</p>
</td>
</tr> 
</table>
<br>
<div style="position:absolute;top:145px;left:5px;height:636px;width:670px;z-index:1;">
<img src="imagens_bb/bbformularioBoleto.gif" width="647" height="636" border="0" alt="">
</div>
<div style="position:absolute;top:161px;left:7px;height:22px;width:96px;z-index:2;">
<img src="imagens_bb/bblogoBoleto.gif" width="150" height="22" border="0" alt="">
</div>
<div style="position:absolute;top:444px;left:7px;height:22px;width:96px;z-index:2;">
<img src="imagens_bb/bblogoBoleto.gif" width="150" height="22" border="0" alt="">
</div>
<div style="position:absolute;top:127px;left:7px;z-index:2;" class="Titulo11">
Corte na linha pontilhada
</div> 
<div style="position:absolute;top:138px;left:5px;z-index:2;" class="Titulo11">
<img src="imagens_bb/bblinhaPontilhada.gif" width="650" height="5" border="0" alt="">
</div>
<div style="position:absolute;top:145px;left:549px;z-index:2;" class="Campo">
<b>Recibo do Sacado</b>
</div>
<div style="position:absolute;top:167px;left:163px;z-index:2;" class="CampoTitulo">
001-9
</div>
<div style="position:absolute;top:166px;left:210px;z-index:2;width:438px;text-align:right;" class="CampoTitulo">
<layer name="helpns" width=438px><%=linha_digitavel%></layer>
</div>
<div style="position:absolute;top:450px;left:163px;z-index:2;" class="CampoTitulo">
001-9
</div>
<div style="position:absolute;top:449px;left:210px;z-index:2;width:438px;text-align:right;" class="CampoTitulo">
<layer name="helpns" width=438px><%=linha_digitavel%></layer>
</div>
<div style="position:absolute;top:184px;left:15px;z-index:2;" class="Titulo11">
Cedente
</div>
<div style="position:absolute;top:184px;left:317px;z-index:2;" class="Titulo11">
Código do Cedente
</div>
<div style="position:absolute;top:184px;left:438px;z-index:2;" class="Titulo11">
Espécie
</div> 
<div style="position:absolute;top:184px;left:480px;z-index:2;" class="Titulo11">
Quantidade
</div>
<div style="position:absolute;top:184px;left:536px;z-index:2;" class="Titulo11">
Nosso número
</div>
<div style="position:absolute;top:209px;left:15px;z-index:2;" class="Titulo11">
Número do documento
</div>
<div style="position:absolute;top:209px;left:135px;z-index:2;" class="Titulo11">
Contrato
</div>
<div style="position:absolute;top:209px;left:214px;z-index:2;" class="Titulo11">
CPF/CEI/CNPJ
</div>
<div style="position:absolute;top:209px;left:353px;z-index:2;" class="Titulo11">
Vencimento
</div>
<div style="position:absolute;top:209px;left:480px;z-index:2;" class="Titulo11">
Valor documento
</div>
<div style="position:absolute;top:234px;left:15px;z-index:2;" class="Titulo11">
(-)Desconto/Abatimento
</div>
<div style="position:absolute;top:234px;left:135px;z-index:2;" class="Titulo11">
(-)Outras opções
</div> 
<div style="position:absolute;top:234px;left:251px;z-index:2;" class="Titulo11">
(+)Mora/Multa
</div>
<div style="position:absolute;top:234px;left:367px;z-index:2;" class="Titulo11">
(+)Outros acréscimos
</div>
<div style="position:absolute;top:234px;left:480px;z-index:2;" class="Titulo11">
(=)Valor cobrado
</div>
<div style="position:absolute;top:259px;left:15px;z-index:2;" class="Titulo11">
Sacado
</div>
<div style="position:absolute;top:284px;left:15px;z-index:2;" class="Titulo11">
Instruções
</div>
<div style="position:absolute;top:284px;left:574px;z-index:2;" class="Titulo11">
Autenticação Mecânica
</div>
<div style="position:absolute;top:415px;left:7px;z-index:2;" class="Titulo11">
Corte na linha pontilhada
</div>
<div style="position:absolute;top:426px;left:5px;z-index:2;" class="Titulo11">
<img src="imagens_bb/bblinhaPontilhada.gif" width="650" height="5" border="0" alt="">
</div>
<div style="position:absolute;top:467px;left:15px;z-index:2;" class="Titulo11">
Local de pagamento
</div> 
<div style="position:absolute;top:467px;left:480px;z-index:2;" class="Titulo11">
Vencimento
</div>
<div style="position:absolute;top:492px;left:15px;z-index:2;" class="Titulo11">
Cedente
</div>
<div style="position:absolute;top:492px;left:480px;z-index:2;" class="Titulo11">
Agência/Código do cedente
</div>
<div style="position:absolute;top:517px;left:15px;z-index:2;" class="Titulo11">
Data do documento
</div>
<div style="position:absolute;top:517px;left:133px;z-index:2;" class="Titulo11">
Nº do documento
</div>
<div style="position:absolute;top:517px;left:295px;z-index:2;" class="Titulo11">
Espécie DOC
</div>
<div style="position:absolute;top:517px;left:364px;z-index:2;" class="Titulo11">
Aceite
</div>
<div style="position:absolute;top:517px;left:405px;z-index:2;" class="Titulo11">
Data process.
</div>
<div style="position:absolute;top:517px;left:480px;z-index:2;" class="Titulo11">
Nosso Número
</div>
<div style="position:absolute;top:542px;left:15px;z-index:2;" class="Titulo11">
Uso do Banco/Convênio
</div>
<div style="position:absolute;top:542px;left:133px;z-index:2;" class="Titulo11">
Carteira
</div>
<div style="position:absolute;top:542px;left:223px;z-index:2;" class="Titulo11">
Espécie
</div>
<div style="position:absolute;top:542px;left:283px;z-index:2;" class="Titulo11">
Quantidade
</div>
<div style="position:absolute;top:542px;left:405px;z-index:2;" class="Titulo11">
xValor
</div>
<div style="position:absolute;top:542px;left:480px;z-index:2;" class="Titulo11">
(=) Valor do documento
</div>
<div style="position:absolute;top:567px;left:15px;z-index:2;" class="Titulo11">
Instrucoes
</div>
<div style="position:absolute;top:567px;left:480px;z-index:2;" class="Titulo11">
(-) Desconto / Abatimento
</div>
<div style="position:absolute;top:592px;left:480px;z-index:2;" class="Titulo11">
(-) Outras deduções
</div> 
<div style="position:absolute;top:618px;left:480px;z-index:2;" class="Titulo11">
(+) Mora / Multa
</div>
<div style="position:absolute;top:643px;left:480px;z-index:2;" class="Titulo11">
(+) Outros acréscimos
</div>
<div style="position:absolute;top:668px;left:480px;z-index:2;" class="Titulo11">
(=) Valor cobrado
</div>
<div style="position:absolute;top:573px;left:463px;z-index:2;" class="Titulo11">
27
</div>
<div style="position:absolute;top:620px;left:463px;z-index:2;" class="Titulo11">
35
</div>
<div style="position:absolute;top:596px;left:463px;z-index:2;" class="Titulo11">
19
</div>
<div style="position:absolute;top:693px;left:15px;z-index:2;" class="Titulo11">
Sacado
</div>
<div style="position:absolute;top:739px;left:480px;z-index:2;" class="Titulo11">
Cód. baixa
</div> 
<div style="position:absolute;top:740px;left:15px;z-index:2;" class="Titulo11">
Sacador/Avalista
</div>
<div style="position:absolute;top:751px;left:470px;z-index:2;" class="Titulo11">
Autenticação mecânica - Ficha de Compensação
</div>
<div style="position:absolute;top:197px;left:15px;z-index:2;" class="Campo">
<%=cedente%>
</div>
<div style="position:absolute;top:197px;left:317px;z-index:2;width:120px;" class="Campo">
<%=agencia_codigo%>
</div>
<div style="position:absolute;top:197px;left:438px;z-index:2;width:28px;" class="Campo">
R$
</div>
<div style="position:absolute;top:197px;left:480px;z-index:2;width:50px;" class="Campo">
0001
</div>
<div style="position:absolute;top:197px;left:531px;z-index:2;width:118px;text-align:right;" class="Campo">
<%=nosso_numero%>
</div>
<div style="position:absolute;top:222px;left:15px;z-index:2;width:110px;" class="Campo">
<%=right("0000000000"& numero_documento, 10)%>
</div>
<div style="position:absolute;top:222px;left:135px;z-index:2;width:70px;" class="Campo">
<%=contrato%>
</div> 
<div style="position:absolute;top:222px;left:214px;z-index:2;width:125px;" class="Campo">
<%=cpf_cnpj%>
</div>
<div style="position:absolute;top:222px;left:353px;z-index:2;width:118px;" class="Campo">
<%=data_vencimento%>
</div>
<div style="position:absolute;top:222px;left:480px;z-index:2;width:169px;text-align:right;" class="Campo">
<%=valor%>
</div>
<div style="position:absolute;top:247px;left:15px;z-index:2;width:108px;text-align:right;" class="Campo"></div>
<div style="position:absolute;top:247px;left:133px;z-index:2;width:107px;text-align:right;" class="Campo"></div>
<div style="position:absolute;top:247px;left:248px;z-index:2;width:108px;text-align:right;" class="Campo"></div>
<div style="position:absolute;top:247px;left:361px;z-index:2;width:108px;text-align:right;" class="Campo"></div>
<div style="position:absolute;top:247px;left:480px;z-index:2;width:169px;text-align:right;" class="Campo"> </div>
<div style="position:absolute;top:272px;left:15px;z-index:2;" class="Campo">
<%=nome_sacado%>
</div>
<div style="position:absolute;top:312px;left:15px;z-index:2;width:498px;text-align:justify;" class="Campo">
<layer name="helpns" width=498px align="left"><%=instrucoes1%><br><%=instrucoes2%><br><%=instrucoes3%><br><%=instrucoes4%><br><%=instrucoes5%></layer>
</div> 
<div style="position:absolute;top:480px;left:15px;z-index:2;" class="Campo">
Pagável em qualquer Banco até o vencimento
</div>
<div style="position:absolute;top:480px;left:480px;z-index:2;width:169px;text-align:right;" class="Campo">
<%=data_vencimento%>
</div>
<div style="position:absolute;top:505px;left:15px;z-index:2;" class="Campo">
<%=cedente%>
</div>
<div style="position:absolute;top:505px;left:480px;z-index:2;width:169px;text-align:right;" class="Campo">
<%=agencia_codigo%>
</div>
<div style="position:absolute;top:530px;left:15px;z-index:2;width:110px;" class="Campo">
<%=data_documento%>
</div>
<div style="position:absolute;top:530px;left:133px;z-index:2;width:160px;" class="Campo">
<%=right("0000000000"& numero_documento, 10)%>
</div>
<div style="position:absolute;top:530px;left:295px;z-index:2;width:60px;" class="Campo">
<%=especie_doc%>
</div>
<div style="position:absolute;top:530px;left:364px;z-index:2;width:35px;" class="Campo">
<%=aceite%>
</div>
<div style="position:absolute;top:530px;left:405px;z-index:2;width:60px;" class="Campo">
<%=data_processamento%>
</div> 
<div style="position:absolute;top:530px;left:480px;z-index:2;width:169px;text-align:right;" class="Campo">
<%=nosso_numero%> 
</div>
<div style="position:absolute;top:556px;left:15px;z-index:2;" class="Campo"> </div>
<div style="position:absolute;top:556px;left:133px;z-index:2;" class="Campo">
<%=carteira%>
</div>
<div style="position:absolute;top:556px;left:223px;z-index:2;" class="Campo">
<%=especie%>
</div>
<div style="position:absolute;top:556px;left:283px;z-index:2;" class="Campo"> </div>
<div style="position:absolute;top:556px;left:405px;z-index:2;width:65px;text-align:right;" class="Campo"></div>
<div style="position:absolute;top:556px;left:480px;z-index:2;width:169px;text-align:right;" class="Campo">
<%=valor%>
</div>
<div style="position:absolute;top:580px;left:15px;z-index:2;width:430px;text-align:justify;" class="Campo">
<layer name="helpns" width=430px align="left"><%=instrucoes1%><br><%=instrucoes2%><br><%=instrucoes3%><br><%=instrucoes4%><br><%=instrucoes5%></layer>
</div>
<div style="position:absolute;top:580px;left:480px;z-index:2;width:169px;text-align:right;" class="Campo"> </div>
<div style="position:absolute;top:605px;left:480px;z-index:2;width:169px;text-align:right;" class="Campo"> </div>
<div style="position:absolute;top:631px;left:480px;z-index:2;width:169px;text-align:right;" class="Campo"> </div>
<div style="position:absolute;top:656px;left:480px;z-index:2;width:169px;text-align:right;" class="Campo"> </div>
<div style="position:absolute;top:581px;left:480px;z-index:2;width:169px;text-align:right;" class="Campo"> </div>
<div style="position:absolute;top:704px;left:15px;z-index:2;" class="Campo">
<%=nome_sacado%>
</div>
<div style="position:absolute;top:717px;left:15px;z-index:2;" class="Campo">
<%=endereco_sacado%>
</div>
<div style="position:absolute;top:830px;left:7px;z-index:2;" class="Titulo11">
Corte na linha pontilhada
</div>
<div style="position:absolute;top:827px;left:7px;z-index:2;" class="Titulo11">
<img src="imagens_bb/bblinhaPontilhada.gif" width="650" height="5" border="0" alt="">
</div>
<div style="position:absolute;top:760px;left:12px;height:70px;z-index:2;" class="Titulo11">
<table border=0 cellPadding=0 cellSpacing=0 width="666">
<tr>
<td colspan="2">
    <%
    function fbarcode(valor_barras)
     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
     %>
     <img src=imagens_bb/p.gif width=<%=fino%> height=<%=altura%> border=0><img
     src=imagens_bb/b.gif width=<%=fino%> height=<%=altura%> border=0><img
     src=imagens_bb/p.gif width=<%=fino%> height=<%=altura%> border=0><img
     src=imagens_bb/b.gif width=<%=fino%> height=<%=altura%> border=0><img
     <%
     texto = valor_barras
     if len( texto ) mod 2 <> 0 then
     texto = "0" & texto
     end if
     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_bb/p.gif width=<%=f1%> height=<%=altura%> border=0><img
     <%
     if mid(f, i + 1, 1) = "0" Then
        f2 = fino
     else
        f2 = largo
     end if
     %>
     src=imagens_bb/b.gif width=<%=f2%> height=<%=altura%> border=0><img
     <%
     next
     loop
     %>
     src=imagens_bb/p.gif width=<%=largo%> height=<%=altura%> border=0><img
     src=imagens_bb/b.gif width=<%=fino%> height=<%=altura%> border=0><img
     src=imagens_bb/p.gif width=<%=1%> height=<%=altura%> border=0>
     <%
    end function
    %>
    <%=fbarcode(codbar)%>
    </td>
</tr>
</table>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

me mande um email que te respondo com as imagens

 

xanburzum@terra.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.