Created
April 9, 2014 14:37
-
-
Save albertobraschi/10277799 to your computer and use it in GitHub Desktop.
Módulo Bancoob
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// +----------------------------------------------------------------------+ | |
// | BoletoPhp - Versão Beta | | |
// +----------------------------------------------------------------------+ | |
// | Este arquivo está disponível sob a Licença GPL disponível pela Web | | |
// | em http://pt.wikipedia.org/wiki/GNU_General_Public_License | | |
// | Você deve ter recebido uma cópia da GNU Public License junto com | | |
// | esse pacote; se não, escreva para: | | |
// | | | |
// | Free Software Foundation, Inc. | | |
// | 59 Temple Place - Suite 330 | | |
// | Boston, MA 02111-1307, USA. | | |
// +----------------------------------------------------------------------+ | |
// +----------------------------------------------------------------------+ | |
// | Originado do Projeto BBBoletoFree que tiveram colaborações de Daniel | | |
// | William Schultz e Leandro Maniezo que por sua vez foi derivado do | | |
// | PHPBoleto de João Prado Maia e Pablo Martins F. Costa | | |
// | | | |
// | Se vc quer colaborar, nos ajude a desenvolver p/ os demais bancos :-)| | |
// | Acesse o site do Projeto BoletoPhp: www.boletophp.com.br | | |
// +----------------------------------------------------------------------+ | |
// +----------------------------------------------------------------------+ | |
// | Equipe Coordenação Projeto BoletoPhp: <[email protected]> | | |
// | Desenvolvimento Boleto BANCOOB/SICOOB: Marcelo de Souza | | |
// | Ajuste de algumas rotinas: Anderson Nuernberg | | |
// +----------------------------------------------------------------------+ | |
// ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // | |
// Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // | |
//converte string UTF8 para ISO-8859-1 | |
foreach ($_POST as $key => $value) { | |
$_POST[$key] = utf8_decode($value); | |
} | |
// pegando os dados via post | |
$base_url = $_POST['base_url']; | |
if (strrpos($base_url, '/') != strlen($base_url) - 1) { | |
$base_url .= '/'; | |
} | |
$dadosboleto["logo_url"] = $_POST["logo_url"]; | |
$dadosboleto["store_url"] = $_POST["store_url"]; | |
// DADOS DO BOLETO PARA O SEU CLIENTE | |
$dias_de_prazo_para_pagamento = $_POST["prazo_pagamento"]; | |
$taxa_boleto = $_POST["taxa_boleto"]; | |
$data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; | |
$valor_cobrado = $_POST["total_pedido"]; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal | |
$valor_cobrado = str_replace(",", ".",$valor_cobrado); | |
$valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); | |
$dadosboleto["nosso_numero"] = substr($_POST["ref_transacao"], -8, 8); // Até 8 digitos, sendo os 2 primeiros o ano atual (Ex.: 08 se for 2008) | |
$dadosboleto["numero_documento"] = $_POST["ref_transacao"]; // Num do pedido ou do documento | |
$dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA | |
$dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto | |
$dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) | |
$dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula | |
// INFORMACOES PARA O CLIENTE | |
$dadosboleto["demonstrativo1"] = $_POST["demonstrativo1"]; // "Pagamento de Compra na Loja Nonononono"; | |
$dadosboleto["demonstrativo2"] = $_POST["demonstrativo2"]; //"Mensalidade referente a nonon nonooon nononon<br>Taxa bancária - R$ ".number_format($taxa_boleto, 2, ',', ''); | |
$dadosboleto["demonstrativo3"] = $_POST["demonstrativo3"]; | |
if ($dadosboleto["demonstrativo2"] == '') { | |
$dadosboleto["demonstrativo2"] == "Taxa bancária - R$ " . number_format($taxa_boleto, 2, ',', ''); | |
} | |
$dadosboleto["demonstrativo2"] = str_replace('$taxa_boleto', number_format($taxa_boleto, 2, ',', ''), $dadosboleto["demonstrativo2"]); | |
// INSTRUÇÕES PARA O CAIXA | |
$dadosboleto["instrucoes1"] = $_POST["instrucoes1"]; // "- Sr. Caixa, cobrar multa de 2% após o vencimento"; | |
$dadosboleto["instrucoes2"] = $_POST["instrucoes2"]; //"- Receber até 10 dias após o vencimento"; | |
$dadosboleto["instrucoes3"] = $_POST["instrucoes3"]; //"- Em caso de dúvidas entre em contato conosco: [email protected]"; | |
$dadosboleto["instrucoes4"] = $_POST["instrucoes4"]; //" Emitido pelo sistema Projeto BoletoPhp - www.boletophp.com.br"; | |
// DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE | |
$dadosboleto["quantidade"] = ""; | |
$dadosboleto["valor_unitario"] = ""; | |
$dadosboleto["aceite"] = ""; | |
$dadosboleto["especie"] = "R$"; | |
$dadosboleto["especie_doc"] = ""; | |
// ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // | |
// DADOS ESPECIFICOS DO SICOOB | |
$dadosboleto["modalidade_cobranca"] = "01"; | |
$dadosboleto["numero_parcela"] = "001"; | |
// DADOS DA SUA CONTA - BANCO SICOOB | |
$dadosboleto["agencia"] = $_POST["agencia"]; //"1565"; // Num da agencia, sem digito | |
$dadosboleto["conta"] = $_POST["conta"]; //"13877"; // Num da conta, sem digito | |
// DADOS PERSONALIZADOS - SICOOB | |
$dadosboleto["convenio"] = $_POST["convenio"]; // Num do convênio - REGRA: No máximo 7 dígitos | |
$dadosboleto["carteira"] = $_POST["carteira"]; | |
// SEUS DADOS | |
$dadosboleto["identificacao"] = $_POST["identificacao"]; //"BoletoPhp - Código Aberto de Sistema de Boletos"; | |
$dadosboleto["cpf_cnpj"] = $_POST["cpf_cnpj"];; | |
$dadosboleto["endereco"] = $_POST["endereco"]; //"Coloque o endereço da sua empresa aqui"; | |
$dadosboleto["cidade_uf"] = $_POST["cidade_uf"]; //"Cidade / Estado"; | |
$dadosboleto["cedente"] = $_POST["cedente"]; //"Coloque a Razão Social da sua empresa aqui"; | |
// NÃO ALTERAR! | |
include("include/funcoes_bancoob.php"); | |
include("include/layout_bancoob.php"); | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// +----------------------------------------------------------------------+ | |
// | BoletoPhp - Versão Beta | | |
// +----------------------------------------------------------------------+ | |
// | Este arquivo está disponível sob a Licença GPL disponível pela Web | | |
// | em http://pt.wikipedia.org/wiki/GNU_General_Public_License | | |
// | Você deve ter recebido uma cópia da GNU Public License junto com | | |
// | esse pacote; se não, escreva para: | | |
// | | | |
// | Free Software Foundation, Inc. | | |
// | 59 Temple Place - Suite 330 | | |
// | Boston, MA 02111-1307, USA. | | |
// +----------------------------------------------------------------------+ | |
// +----------------------------------------------------------------------+ | |
// | Originado do Projeto BBBoletoFree que tiveram colaborações de Daniel | | |
// | William Schultz e Leandro Maniezo que por sua vez foi derivado do | | |
// | PHPBoleto de João Prado Maia e Pablo Martins F. Costa | | |
// | | | |
// | Se vc quer colaborar, nos ajude a desenvolver p/ os demais bancos :-)| | |
// | Acesse o site do Projeto BoletoPhp: www.boletophp.com.br | | |
// +----------------------------------------------------------------------+ | |
// +----------------------------------------------------------------------+ | |
// | Equipe Coordenação Projeto BoletoPhp: <[email protected]> | | |
// | Desenvolvimento Boleto BANCOOB/SICOOB: Marcelo de Souza | | |
// | Ajuste de algumas rotinas: Anderson Nuernberg | | |
// +----------------------------------------------------------------------+ | |
$codigobanco = "756"; | |
$codigo_banco_com_dv = geraCodigoBanco($codigobanco); | |
$nummoeda = "9"; | |
$fator_vencimento = fator_vencimento($dadosboleto["data_vencimento"]); | |
//valor tem 10 digitos, sem virgula | |
$valor = formata_numero($dadosboleto["valor_boleto"],10,0,"valor"); | |
//agencia é sempre 4 digitos | |
$agencia = formata_numero($dadosboleto["agencia"],4,0); | |
//conta é sempre 8 digitos | |
$conta = formata_numero($dadosboleto["conta"],8,0); | |
$carteira = $dadosboleto["carteira"]; | |
//Zeros: usado quando convenio de 7 digitos | |
$livre_zeros='000000'; | |
$modalidadecobranca = $dadosboleto["modalidade_cobranca"]; | |
$numeroparcela = $dadosboleto["numero_parcela"]; | |
$convenio = formata_numero($dadosboleto["convenio"],7,0); | |
//agencia e conta | |
$agencia_codigo = $agencia ." / ". $convenio; | |
// Nosso número de até 8 dígitos - 2 digitos para o ano e outros 6 numeros sequencias por ano | |
// deve ser gerado no programa boleto_bancoob.php | |
$nossonumero = formata_numero($dadosboleto["nosso_numero"],8,0); | |
$campolivre = "$modalidadecobranca$convenio$nossonumero$numeroparcela"; | |
$dv=modulo_11("$codigobanco$nummoeda$fator_vencimento$valor$carteira$agencia$campolivre"); | |
$linha="$codigobanco$nummoeda$dv$fator_vencimento$valor$carteira$agencia$campolivre"; | |
$dadosboleto["codigo_barras"] = $linha; | |
$dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha); | |
$dadosboleto["agencia_codigo"] = $agencia_codigo; | |
$dadosboleto["nosso_numero"] = $nossonumero; | |
$dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv; | |
// FUNÇÕES | |
// Algumas foram retiradas do Projeto PhpBoleto e modificadas para atender as particularidades de cada banco | |
function formata_numero($numero,$loop,$insert,$tipo = "geral") { | |
if ($tipo == "geral") { | |
$numero = str_replace(",","",$numero); | |
while(strlen($numero)<$loop){ | |
$numero = $insert . $numero; | |
} | |
} | |
if ($tipo == "valor") { | |
/* | |
retira as virgulas | |
formata o numero | |
preenche com zeros | |
*/ | |
$numero = str_replace(",","",$numero); | |
while(strlen($numero)<$loop){ | |
$numero = $insert . $numero; | |
} | |
} | |
if ($tipo == "convenio") { | |
while(strlen($numero)<$loop){ | |
$numero = $numero . $insert; | |
} | |
} | |
return $numero; | |
} | |
function fbarcode($valor, $dir = "/lib/boleto_php/") { | |
$fino = 1 ; | |
$largo = 3 ; | |
$altura = 50 ; | |
$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;$f1>=0;$f1--){ | |
for($f2=9;$f2>=0;$f2--){ | |
$f = ($f1 * 10) + $f2 ; | |
$texto = "" ; | |
for($i=1;$i<6;$i++){ | |
$texto .= substr($barcodes[$f1],($i-1),1) . substr($barcodes[$f2],($i-1),1); | |
} | |
$barcodes[$f] = $texto; | |
} | |
} | |
//Desenho da barra | |
//Guarda inicial | |
?><img src=<?php echo $dir; ?>imagens/p.png width=<?php echo $fino?> height=<?php echo $altura?> border=0><img | |
src=<?php echo $dir; ?>imagens/b.png width=<?php echo $fino?> height=<?php echo $altura?> border=0><img | |
src=<?php echo $dir; ?>imagens/p.png width=<?php echo $fino?> height=<?php echo $altura?> border=0><img | |
src=<?php echo $dir; ?>imagens/b.png width=<?php echo $fino?> height=<?php echo $altura?> border=0><img | |
<?php | |
$texto = $valor ; | |
if((strlen($texto) % 2) <> 0){ | |
$texto = "0" . $texto; | |
} | |
// Draw dos dados | |
while (strlen($texto) > 0) { | |
$i = round(esquerda($texto,2)); | |
$texto = direita($texto,strlen($texto)-2); | |
$f = $barcodes[$i]; | |
for($i=1;$i<11;$i+=2){ | |
if (substr($f,($i-1),1) == "0") { | |
$f1 = $fino ; | |
}else{ | |
$f1 = $largo ; | |
} | |
?> | |
src=<?php echo $dir; ?>imagens/p.png width=<?php echo $f1?> height=<?php echo $altura?> border=0><img | |
<?php | |
if (substr($f,$i,1) == "0") { | |
$f2 = $fino ; | |
}else{ | |
$f2 = $largo ; | |
} | |
?> | |
src=<?php echo $dir; ?>imagens/b.png width=<?php echo $f2?> height=<?php echo $altura?> border=0><img | |
<?php | |
} | |
} | |
// Draw guarda final | |
?> | |
src=<?php echo $dir; ?>imagens/p.png width=<?php echo $largo?> height=<?php echo $altura?> border=0><img | |
src=<?php echo $dir; ?>imagens/b.png width=<?php echo $fino?> height=<?php echo $altura?> border=0><img | |
src=<?php echo $dir; ?>imagens/p.png width=<?php echo 1?> height=<?php echo $altura?> border=0> | |
<?php | |
} //Fim da função | |
function esquerda($entra,$comp){ | |
return substr($entra,0,$comp); | |
} | |
function direita($entra,$comp){ | |
return substr($entra,strlen($entra)-$comp,$comp); | |
} | |
function fator_vencimento($data) { | |
$data = split("/",$data); | |
$ano = $data[2]; | |
$mes = $data[1]; | |
$dia = $data[0]; | |
return(abs((_dateToDays("1997","10","07")) - (_dateToDays($ano, $mes, $dia)))); | |
} | |
function _dateToDays($year,$month,$day) { | |
$century = substr($year, 0, 2); | |
$year = substr($year, 2, 2); | |
if ($month > 2) { | |
$month -= 3; | |
} else { | |
$month += 9; | |
if ($year) { | |
$year--; | |
} else { | |
$year = 99; | |
$century --; | |
} | |
} | |
return ( floor(( 146097 * $century) / 4 ) + | |
floor(( 1461 * $year) / 4 ) + | |
floor(( 153 * $month + 2) / 5 ) + | |
$day + 1721119); | |
} | |
/* | |
################################################# | |
FUNÇÃO DO MÓDULO 10 RETIRADA DO PHPBOLETO | |
ESTA FUNÇÃO PEGA O DÍGITO VERIFICADOR DO PRIMEIRO, SEGUNDO | |
E TERCEIRO CAMPOS DA LINHA DIGITÁVEL | |
################################################# | |
*/ | |
function modulo_10($num) { | |
$numtotal10 = 0; | |
$fator = 2; | |
for ($i = strlen($num); $i > 0; $i--) { | |
$numeros[$i] = substr($num,$i-1,1); | |
$parcial10[$i] = $numeros[$i] * $fator; | |
$numtotal10 .= $parcial10[$i]; | |
if ($fator == 2) { | |
$fator = 1; | |
} | |
else { | |
$fator = 2; | |
} | |
} | |
$soma = 0; | |
for ($i = strlen($numtotal10); $i > 0; $i--) { | |
$numeros[$i] = substr($numtotal10,$i-1,1); | |
$soma += $numeros[$i]; | |
} | |
$resto = $soma % 10; | |
$digito = 10 - $resto; | |
if ($resto == 0) { | |
$digito = 0; | |
} | |
return $digito; | |
} | |
/* | |
################################################# | |
FUNÇÃO DO MÓDULO 11 RETIRADA DO PHPBOLETO | |
MODIFIQUEI ALGUMAS COISAS... | |
ESTA FUNÇÃO PEGA O DÍGITO VERIFICADOR: | |
NOSSONUMERO | |
AGENCIA | |
CONTA | |
CAMPO 4 DA LINHA DIGITÁVEL | |
################################################# | |
*/ | |
function modulo_11($num, $base=9, $r=0) { | |
$soma = 0; | |
$fator = 2; | |
for ($i = strlen($num); $i > 0; $i--) { | |
$numeros[$i] = substr($num,$i-1,1); | |
$parcial[$i] = $numeros[$i] * $fator; | |
$soma += $parcial[$i]; | |
if ($fator == $base) { | |
$fator = 1; | |
} | |
$fator++; | |
} | |
if ($r == 0) { | |
$soma *= 10; | |
$digito = $soma % 11; | |
//corrigido | |
if ($digito == 10) { | |
$digito = "X"; | |
} | |
/* | |
alterado por mim, Daniel Schultz | |
Vamos explicar: | |
O módulo 11 só gera os digitos verificadores do nossonumero, | |
agencia, conta e digito verificador com codigo de barras (aquele que fica sozinho e triste na linha digitável) | |
só que é foi um rolo...pq ele nao podia resultar em 0, e o pessoal do phpboleto se esqueceu disso... | |
No BB, os dígitos verificadores podem ser X ou 0 (zero) para agencia, conta e nosso numero, | |
mas nunca pode ser X ou 0 (zero) para a linha digitável, justamente por ser totalmente numérica. | |
Quando passamos os dados para a função, fica assim: | |
Agencia = sempre 4 digitos | |
Conta = até 8 dígitos | |
Nosso número = de 1 a 17 digitos | |
A unica variável que passa 17 digitos é a da linha digitada, justamente por ter 43 caracteres | |
Entao vamos definir ai embaixo o seguinte... | |
se (strlen($num) == 43) { não deixar dar digito X ou 0 } | |
*/ | |
if (strlen($num) == "43") { | |
//então estamos checando a linha digitável | |
if ($digito == "0" or $digito == "X" or $digito > 9) { | |
$digito = 1; | |
} | |
} | |
return $digito; | |
} | |
elseif ($r == 1){ | |
$resto = $soma % 11; | |
return $resto; | |
} | |
} | |
/* | |
Montagem da linha digitável - Função tirada do PHPBoleto | |
Não mudei nada | |
*/ | |
function monta_linha_digitavel($linha) { | |
// Posição Conteúdo | |
// 1 a 3 Número do banco | |
// 4 Código da Moeda - 9 para Real | |
// 5 Digito verificador do Código de Barras | |
// 6 a 19 Valor (12 inteiros e 2 decimais) | |
// 20 a 44 Campo Livre definido por cada banco | |
// 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições | |
// do campo livre e DV (modulo10) deste campo | |
$p1 = substr($linha, 0, 4); | |
$p2 = substr($linha, 19, 5); | |
$p3 = modulo_10("$p1$p2"); | |
$p4 = "$p1$p2$p3"; | |
$p5 = substr($p4, 0, 5); | |
$p6 = substr($p4, 5); | |
$campo1 = "$p5.$p6"; | |
// 2. Campo - composto pelas posiçoes 6 a 15 do campo livre | |
// e livre e DV (modulo10) deste campo | |
$p1 = substr($linha, 24, 10); | |
$p2 = modulo_10($p1); | |
$p3 = "$p1$p2"; | |
$p4 = substr($p3, 0, 5); | |
$p5 = substr($p3, 5); | |
$campo2 = "$p4.$p5"; | |
// 3. Campo composto pelas posicoes 16 a 25 do campo livre | |
// e livre e DV (modulo10) deste campo | |
$p1 = substr($linha, 34, 10); | |
$p2 = modulo_10($p1); | |
$p3 = "$p1$p2"; | |
$p4 = substr($p3, 0, 5); | |
$p5 = substr($p3, 5); | |
$campo3 = "$p4.$p5"; | |
// 4. Campo - digito verificador do codigo de barras | |
$campo4 = substr($linha, 4, 1); | |
// 5. Campo composto pelo valor nominal pelo valor nominal do documento, sem | |
// indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se | |
// tratar de valor zerado, a representacao deve ser 000 (tres zeros). | |
$campo5 = substr($linha, 5, 14); | |
return "$campo1 $campo2 $campo3 $campo4 $campo5"; | |
} | |
function geraCodigoBanco($numero) { | |
$parte1 = substr($numero, 0, 3); | |
$parte2 = modulo_11($parte1); | |
return $parte1 . "-" . $parte2; | |
} | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// +----------------------------------------------------------------------+ | |
// | BoletoPhp - Versão Beta | | |
// +----------------------------------------------------------------------+ | |
// | Este arquivo está disponível sob a Licença GPL disponível pela Web | | |
// | em http://pt.wikipedia.org/wiki/GNU_General_Public_License | | |
// | Você deve ter recebido uma cópia da GNU Public License junto com | | |
// | esse pacote; se não, escreva para: | | |
// | | | |
// | Free Software Foundation, Inc. | | |
// | 59 Temple Place - Suite 330 | | |
// | Boston, MA 02111-1307, USA. | | |
// +----------------------------------------------------------------------+ | |
// +----------------------------------------------------------------------+ | |
// | Originado do Projeto BBBoletoFree que tiveram colaborações de Daniel | | |
// | William Schultz e Leandro Maniezo que por sua vez foi derivado do | | |
// | PHPBoleto de João Prado Maia e Pablo Martins F. Costa | | |
// | | | |
// | Se vc quer colaborar, nos ajude a desenvolver p/ os demais bancos :-)| | |
// | Acesse o site do Projeto BoletoPhp: www.boletophp.com.br | | |
// +----------------------------------------------------------------------+ | |
// +----------------------------------------------------------------------+ | |
// | Equipe Coordenação Projeto BoletoPhp: <[email protected]> | | |
// | Desenvolvimento Boleto BANCOOB/SICOOB: Marcelo de Souza | | |
// | Ajuste de algumas rotinas: Anderson Nuernberg | | |
// +----------------------------------------------------------------------+ | |
?> | |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
<html> | |
<head> | |
<title><?php echo $dadosboleto["identificacao"]; ?></title> | |
<META http-equiv=Content-Type content=text/html charset=ISO-8859-1> | |
<meta name="Generator" content="Projeto BoletoPHP - www.boletophp.com.br - Licença GPL" /> | |
<style type="text/css"> | |
<!-- | |
.ti {font: 9px Arial, Helvetica, sans-serif} | |
--> | |
</style> | |
</HEAD> | |
<BODY> | |
<STYLE> | |
@media screen,print { | |
/* *** TIPOGRAFIA BASICA *** */ | |
* { | |
font-family: Arial; | |
font-size: 12px; | |
margin: 0; | |
padding: 0; | |
} | |
.notice { | |
color: red; | |
} | |
/* *** LINHAS GERAIS *** */ | |
#container { | |
width: 666px; | |
margin: 0px auto; | |
padding-bottom: 30px; | |
} | |
#instructions { | |
margin: 0; | |
padding: 0 0 20px 0; | |
} | |
#boleto { | |
width: 666px; | |
margin: 0; | |
padding: 0; | |
} | |
/* *** CABECALHO *** */ | |
#instr_header { | |
background: url('imagens/logo_empresa.png') no-repeat top left; | |
padding-left: px; | |
height: 65px; | |
} | |
#instr_header h1 { | |
font-size: 16px; | |
margin: 5px 0px; | |
} | |
#instr_header address { | |
font-style: normal; | |
} | |
#instr_content { | |
} | |
#instr_content h2 { | |
font-size: 10px; | |
font-weight: bold; | |
} | |
#instr_content p { | |
font-size: 10px; | |
margin: 4px 0px; | |
} | |
#instr_content ol { | |
font-size: 10px; | |
margin: 5px 0; | |
} | |
#instr_content ol li { | |
font-size: 10px; | |
text-indent: 10px; | |
margin: 2px 0px; | |
list-style-position: inside; | |
} | |
#instr_content ol li p { | |
font-size: 10px; | |
padding-bottom: 4px; | |
} | |
/* *** BOLETO *** */ | |
#boleto .cut { | |
width: 666px; | |
margin: 0px auto; | |
border-bottom: 1px black dashed; | |
} | |
#boleto .cut p { | |
margin: 0 0 5px 0; | |
padding: 0px; | |
font-family: 'Arial Narrow'; | |
font-size: 9px; | |
color: black; | |
} | |
table.header { | |
width: 666px; | |
height: 38px; | |
margin-top: 20px; | |
margin-bottom: 10px; | |
border-bottom: 2px black solid; | |
} | |
table.header div.field_cod_banco { | |
width: 46px; | |
height: 19px; | |
margin-left: 5px; | |
padding-top: 3px; | |
text-align: center; | |
font-size: 14px; | |
font-weight: bold; | |
color: black; | |
border-right: 2px solid black; | |
border-left: 2px solid black; | |
} | |
table.header td.linha_digitavel { | |
width: 464px; | |
text-align: right; | |
font: bold 15px Arial; | |
color: black | |
} | |
table.line { | |
margin-bottom: 3px; | |
padding-bottom: 1px; | |
border-bottom: 1px black solid; | |
} | |
table.line tr.titulos td { | |
height: 13px; | |
font-family: 'Arial Narrow'; | |
font-size: 9px; | |
color: black; | |
border-left: 5px #000000 solid; | |
padding-left: 2px; | |
} | |
table.line tr.campos td { | |
height: 12px; | |
font-size: 10px; | |
color: black; | |
border-left: 5px #000000 solid; | |
padding-left: 2px; | |
} | |
table.line td p { | |
font-size: 10px; | |
} | |
table.line tr.campos td.ag_cod_cedente, | |
table.line tr.campos td.nosso_numero, | |
table.line tr.campos td.valor_doc, | |
table.line tr.campos td.vencimento2, | |
table.line tr.campos td.ag_cod_cedente2, | |
table.line tr.campos td.nosso_numero2, | |
table.line tr.campos td.xvalor, | |
table.line tr.campos td.valor_doc2 | |
{ | |
text-align: right; | |
} | |
table.line tr.campos td.especie, | |
table.line tr.campos td.qtd, | |
table.line tr.campos td.vencimento, | |
table.line tr.campos td.especie_doc, | |
table.line tr.campos td.aceite, | |
table.line tr.campos td.carteira, | |
table.line tr.campos td.especie2, | |
table.line tr.campos td.qtd2 | |
{ | |
text-align: center; | |
} | |
table.line td.last_line { | |
vertical-align: top; | |
height: 25px; | |
} | |
table.line td.last_line table.line { | |
margin-bottom: -5px; | |
border: 0 white none; | |
} | |
td.last_line table.line td.instrucoes { | |
border-left: 0 white none; | |
padding-left: 5px; | |
padding-bottom: 0; | |
margin-bottom: 0; | |
height: 20px; | |
vertical-align: top; | |
} | |
table.line td.cedente { | |
width: 298px; | |
} | |
table.line td.valor_cobrado2 { | |
padding-bottom: 0; | |
margin-bottom: 0; | |
} | |
table.line td.ag_cod_cedente { | |
width: 126px; | |
} | |
table.line td.especie { | |
width: 35px; | |
} | |
table.line td.qtd { | |
width: 53px; | |
} | |
table.line td.nosso_numero { | |
/* width: 120px; */ | |
width: 115px; | |
padding-right: 5px; | |
} | |
table.line td.num_doc { | |
width: 113px; | |
} | |
table.line td.contrato { | |
width: 72px; | |
} | |
table.line td.cpf_cei_cnpj { | |
width: 132px; | |
} | |
table.line td.vencimento { | |
width: 134px; | |
} | |
table.line td.valor_doc { | |
/* width: 180px; */ | |
width: 175px; | |
padding-right: 5px; | |
} | |
table.line td.desconto { | |
width: 113px; | |
} | |
table.line td.outras_deducoes { | |
width: 112px; | |
} | |
table.line td.mora_multa { | |
width: 113px; | |
} | |
table.line td.outros_acrescimos { | |
width: 113px; | |
} | |
table.line td.valor_cobrado { | |
/* width: 180px; */ | |
width: 175px; | |
padding-right: 5px; | |
background-color: #ffc ; | |
} | |
table.line td.sacado { | |
width: 659px; | |
} | |
table.line td.local_pagto { | |
width: 472px; | |
} | |
table.line td.vencimento2 { | |
/* width: 180px; */ | |
width: 175px; | |
padding-right: 5px; | |
background-color: #ffc; | |
} | |
table.line td.cedente2 { | |
width: 472px; | |
} | |
table.line td.ag_cod_cedente2 { | |
/* width: 180px; */ | |
width: 175px; | |
padding-right: 5px; | |
} | |
table.line td.data_doc { | |
width: 93px; | |
} | |
table.line td.num_doc2 { | |
width: 173px; | |
} | |
table.line td.especie_doc { | |
width: 72px; | |
} | |
table.line td.aceite { | |
width: 34px; | |
} | |
table.line td.data_process { | |
width: 72px; | |
} | |
table.line td.nosso_numero2 { | |
/* width: 180px; */ | |
width: 175px; | |
padding-right: 5px; | |
} | |
table.line td.reservado { | |
width: 93px; | |
background-color: #ffc; | |
} | |
table.line td.carteira { | |
width: 93px; | |
} | |
table.line td.especie2 { | |
width: 53px; | |
} | |
table.line td.qtd2 { | |
width: 133px; | |
} | |
table.line td.xvalor { | |
/* width: 72px; */ | |
width: 67px; | |
padding-right: 5px; | |
} | |
table.line td.valor_doc2 { | |
/* width: 180px; */ | |
width: 175px; | |
padding-right: 5px; | |
} | |
table.line td.instrucoes { | |
width: 475px; | |
} | |
table.line td.desconto2 { | |
/* width: 180px; */ | |
width: 175px; | |
padding-right: 5px; | |
} | |
table.line td.outras_deducoes2 { | |
/* width: 180px; */ | |
width: 175px; | |
padding-right: 5px; | |
} | |
table.line td.mora_multa2 { | |
/* width: 180px; */ | |
width: 175px; | |
padding-right: 5px; | |
} | |
table.line td.outros_acrescimos2 { | |
/* width: 180px; */ | |
width: 175px; | |
padding-right: 5px; | |
} | |
table.line td.valor_cobrado2 { | |
/* width: 180px; */ | |
width: 175px; | |
padding-right: 5px; | |
background-color: #ffc ; | |
} | |
table.line td.sacado2 { | |
width: 659px; | |
} | |
table.line td.sacador_avalista { | |
width: 659px; | |
} | |
table.line tr.campos td.sacador_avalista { | |
width: 472px; | |
} | |
table.line td.cod_baixa { | |
color: black; | |
width: 180px; | |
} | |
div.footer { | |
margin-bottom: 30px; | |
} | |
div.footer p { | |
width: 88px; | |
margin: 0; | |
padding: 0; | |
padding-left: 525px; | |
font-family: 'Arial Narro'; | |
font-size: 9px; | |
color: black; | |
} | |
div.barcode { | |
width: 666px; | |
margin-bottom: 20px; | |
} | |
} | |
@media print { | |
#instructions { | |
height: 1px; | |
visibility: hidden; | |
overflow: hidden; | |
} | |
} | |
</STYLE> | |
<script language="Javascript1.2"> | |
<!-- | |
function printpage() { | |
alert("ATENÇÃO: Não imprima este boleto em modo econômico."); | |
window.print(); | |
} | |
//--> | |
</script> | |
</head> | |
<body onload="printpage()"> | |
<div id="container"> | |
<div id="instr_header"> | |
<div style="float: left; padding-right: 10px"><a href="<?php echo $dadosboleto["store_url"] ?>"><img border="0" src="<?php echo $dadosboleto["logo_url"] ?>" /></a></div> | |
<h1><?php echo $dadosboleto["identificacao"]; ?> <?php echo isset($dadosboleto["cpf_cnpj"]) ? $dadosboleto["cpf_cnpj"] : '' ?></h1> | |
O número do seu pedido é: <strong><?php echo $_POST["ref_transacao"] ?></strong>.<br/> | |
<a href="javascript:printpage();"><img border="0" src="<?php echo $base_url; ?>imagens/printer.gif" title="Imprimir"/></a> | |
<a href="<?php echo $dadosboleto["store_url"] ?>">Após imprimir, clique aqui para voltar à loja.</a> | |
</div> <!-- id="instr_header" --> | |
<div id=""> | |
<!-- | |
Use no lugar do <div id=""> caso queira imprimir sem o logotipo e instruções | |
<div id="instructions"> | |
--> | |
<div id="instr_content"> | |
<h2>Instruções</h2> | |
<ol> | |
<li> | |
Imprima em impressora jato de tinta (ink jet) ou laser, em | |
qualidade normal ou alta. Não use modo econômico. | |
<p class="notice">Por favor, configure margens esquerda e direita | |
para 17mm.</p> | |
</li> | |
<li> | |
Utilize folha A4 (210 x 297 mm) ou Carta (216 x 279 mm) 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> | |
</div> <!-- id="instr_content" --> | |
</div> <!-- id="instructions" --> | |
<div id="boleto"> | |
<div class="cut"> | |
<p>Corte na linha pontilhada</p> | |
</div> | |
<table class="header" border=0 cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr> | |
<td width=150><IMG SRC="<?php echo $base_url; ?>imagens/logobancoob.jpg"></td> | |
<td width=50> | |
<div class="field_cod_banco"><?php echo $dadosboleto["codigo_banco_com_dv"]?></div> | |
</td> | |
<td class="linha_digitavel"><?php echo $dadosboleto["linha_digitavel"]?></td> | |
</tr> | |
</tbody> | |
</table> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="cedente">Cedente</TD> | |
<td class="ag_cod_cedente">Agência / Código do Cedente</td> | |
<td class="especie">Espécie</TD> | |
<td class="qtd">Quantidade</TD> | |
<td class="nosso_numero">Nosso número</td> | |
</tr> | |
<tr class="campos"> | |
<td class="cedente"><?php echo $dadosboleto["cedente"]; ?> </td> | |
<td class="ag_cod_cedente"><?php echo $dadosboleto["agencia_codigo"]?> </td> | |
<td class="especie"><?php echo $dadosboleto["especie"]?> </td> | |
<TD class="qtd"><?php echo $dadosboleto["quantidade"]?> </td> | |
<TD class="nosso_numero"><?php echo $dadosboleto["nosso_numero"]?> </td> | |
</tr> | |
</tbody> | |
</table> | |
<table class="line" cellspacing="0" cellPadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="num_doc">Número do documento</td> | |
<td class="contrato">Contrato</TD> | |
<td class="cpf_cei_cnpj">CPF/CEI/CNPJ</TD> | |
<td class="vencmento">Vencimento</TD> | |
<td class="valor_doc">Valor documento</TD> | |
</tr> | |
<tr class="campos"> | |
<td class="num_doc"><?php echo $dadosboleto["numero_documento"]?></td> | |
<td class="contrato"></td> | |
<td class="cpf_cei_cnpj"><?php echo $dadosboleto["cpf_cnpj"]?></td> | |
<td class="vencimento"><?php echo $dadosboleto["data_vencimento"]?></td> | |
<td class="valor_doc"><?php echo $dadosboleto["valor_boleto"]?></td> | |
</tr> | |
</tbody> | |
</table> | |
<table class="line" cellspacing="0" cellPadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="desconto">(-) Desconto / Abatimento</td> | |
<td class="outras_deducoes">(-) Outras deduções</td> | |
<td class="mora_multa">(+) Mora / Multa</td> | |
<td class="outros_acrescimos">(+) Outros acréscimos</td> | |
<td class="valor_cobrado">(=) Valor cobrado</td> | |
</tr> | |
<tr class="campos"> | |
<td class="desconto"> </td> | |
<td class="outras_deducoes"> </td> | |
<td class="mora_multa"> </td> | |
<td class="outros_acrescimos"> </td> | |
<td class="valor_cobrado"> </td> | |
</tr> | |
</tbody> | |
</table> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="sacado">Sacado</td> | |
</tr> | |
<tr class="campos"> | |
<td class="sacado"><?php echo $dadosboleto["sacado"]?></td> | |
</tr> | |
</tbody> | |
</table> | |
<div class="footer"> | |
<p>Autenticação mecânica</p> | |
</div> | |
<div class="cut"> | |
<p>Corte na linha pontilhada</p> | |
</div> | |
<table class="header" border=0 cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr> | |
<td width=150><IMG SRC="<?php echo $base_url; ?>imagens/logobancoob.jpg"></td> | |
<td width=50> | |
<div class="field_cod_banco"><?php echo $dadosboleto["codigo_banco_com_dv"]?></div> | |
</td> | |
<td class="linha_digitavel"><?php echo $dadosboleto["linha_digitavel"]?></td> | |
</tr> | |
</tbody> | |
</table> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="local_pagto">Local de pagamento</td> | |
<td class="vencimento2">Vencimento</td> | |
</tr> | |
<tr class="campos"> | |
<td class="local_pagto">QUALQUER BANCO ATÉ O VENCIMENTO</td> | |
<td class="vencimento2"><?php echo $dadosboleto["data_vencimento"]?></td> | |
</tr> | |
</tbody> | |
</table> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="cedente2">Cedente</td> | |
<td class="ag_cod_cedente2">Agência/Código cedente</td> | |
</tr> | |
<tr class="campos"> | |
<td class="cedente2"><?php echo $dadosboleto["cedente"]?></td> | |
<td class="ag_cod_cedente2"><?php echo $dadosboleto["agencia_codigo"]?></td> | |
</tr> | |
</tbody> | |
</table> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="data_doc">Data do documento</td> | |
<td class="num_doc2">No. documento</td> | |
<td class="especie_doc">Espécie doc.</td> | |
<td class="aceite">Aceite</td> | |
<td class="data_process">Data process.</td> | |
<td class="nosso_numero2">Nosso número</td> | |
</tr> | |
<tr class="campos"> | |
<td class="data_doc"><?php echo $dadosboleto["data_documento"]?></td> | |
<td class="num_doc2"><?php echo $dadosboleto["numero_documento"]?></td> | |
<td class="especie_doc"><?php echo $dadosboleto["especie_doc"]?></td> | |
<td class="aceite"><?php echo $dadosboleto["aceite"]?></td> | |
<td class="data_process"><?php echo $dadosboleto["data_processamento"]?></td> | |
<td class="nosso_numero2"><?php echo $dadosboleto["nosso_numero"]?></td> | |
</tr> | |
</tbody> | |
</table> | |
<table class="line" cellspacing="0" cellPadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="reservado">Uso do banco</td> | |
<td class="carteira">Carteira</td> | |
<td class="especie2">Espécie</td> | |
<td class="qtd2">Quantidade</td> | |
<td class="xvalor">x Valor</td> | |
<td class="valor_doc2">(=) Valor documento</td> | |
</tr> | |
<tr class="campos"> | |
<td class="reservado"> </td> | |
<td class="carteira"><?php echo $dadosboleto["carteira"]?> <?php echo isset($dadosboleto["variacao_carteira"]) ? $dadosboleto["variacao_carteira"] : ' ' ?></td> | |
<td class="especie2"><?php echo $dadosboleto["especie"]?></td> | |
<td class="qtd2"><?php echo $dadosboleto["quantidade"]?></td> | |
<td class="xvalor"><?php echo $dadosboleto["valor_unitario"]?></td> | |
<td class="valor_doc2"><?php echo $dadosboleto["valor_boleto"]?></td> | |
</tr> | |
</tbody> | |
</table> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr><td class="last_line" rowspan="6"> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="instrucoes"> | |
Instruções (Texto de responsabilidade do cedente) | |
</td> | |
</tr> | |
<tr class="campos"> | |
<td class="instrucoes" rowspan="5"> | |
<p><?php echo $dadosboleto["demonstrativo1"]; ?></p> | |
<p><?php echo $dadosboleto["demonstrativo2"]; ?></p> | |
<p><?php echo $dadosboleto["demonstrativo3"]; ?></p> | |
<p><?php echo $dadosboleto["instrucoes1"]; ?></p> | |
<p><?php echo $dadosboleto["instrucoes2"]; ?></p> | |
<p><?php echo $dadosboleto["instrucoes3"]; ?></p> | |
<p><?php echo $dadosboleto["instrucoes4"]; ?></p> | |
</td> | |
</tr> | |
</tbody> | |
</table> | |
</td></tr> | |
<tr><td> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="desconto2">(-) Desconto / Abatimento</td> | |
</tr> | |
<tr class="campos"> | |
<td class="desconto2"> </td> | |
</tr> | |
</tbody> | |
</table> | |
</td></tr> | |
<tr><td> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="outras_deducoes2">(-) Outras deduções</td> | |
</tr> | |
<tr class="campos"> | |
<td class="outras_deducoes2"> </td> | |
</tr> | |
</tbody> | |
</table> | |
</td></tr> | |
<tr><td> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="mora_multa2">(+) Mora / Multa</td> | |
</tr> | |
<tr class="campos"> | |
<td class="mora_multa2"> </td> | |
</tr> | |
</tbody> | |
</table> | |
</td></tr> | |
<tr><td> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="outros_acrescimos2">(+) Outros Acréscimos</td> | |
</tr> | |
<tr class="campos"> | |
<td class="outros_acrescimos2"> </td> | |
</tr> | |
</tbody> | |
</table> | |
</td></tr> | |
<tr><td class="last_line"> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="valor_cobrado2">(=) Valor cobrado</td> | |
</tr> | |
<tr class="campos"> | |
<td class="valor_cobrado2"> </td> | |
</tr> | |
</tbody> | |
</table> | |
</td></tr> | |
</tbody> | |
</table> | |
<table class="line" cellspacing="0" cellPadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="sacado2">Sacado</td> | |
</tr> | |
<tr class="campos"> | |
<td class="sacado2"> | |
<p><?php echo $dadosboleto["sacado"]?></p> | |
<p><?php echo $dadosboleto["endereco1"]?></p> | |
<p><?php echo $dadosboleto["endereco2"]?></p> | |
</td> | |
</tr> | |
</tbody> | |
</table> | |
<table class="line" cellspacing="0" cellpadding="0"> | |
<tbody> | |
<tr class="titulos"> | |
<td class="sacador_avalista" colspan="2">Sacador/Avalista</td> | |
</tr> | |
<tr class="campos"> | |
<td class="sacador_avalista"> </td> | |
<td class="cod_baixa">Cód. baixa</td> | |
</tr> | |
</tbody> | |
</table> | |
<div class="footer"> | |
<p>Autenticação mecânica</p> | |
</div> | |
<div class="barcode"> | |
<p><?php fbarcode($dadosboleto["codigo_barras"]); ?></p> | |
</div> | |
<div class="cut"> | |
<p>Corte na linha pontilhada</p> | |
</div> | |
</div> | |
</div> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment