-
Notifications
You must be signed in to change notification settings - Fork 383
Open
Description
|
// | Desenvolvimento Boleto BANCOOB/SICOOB: Marcelo de Souza |
// | Ajuste de algumas rotinas: Anderson Nuernberg |
// +----------------------------------------------------------------------+
$codigobanco = "756";
$codigo_banco_com_dv = geraCodigoBanco($codigobanco);
$nummoeda = "9";
//echo $dadosboleto["data_vencimento"];
$fator_vencimento = fator_vencimento($dadosboleto["data_vencimento"]);
//valor tem 10 digitos, sem virgula
$valor = formata_numero($dadosboleto["valor_boleto"],10,0,"valor");
//echo $valor ."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";
//echo "campo liver" . $campolivre. "fim campo";
$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){
$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
?> height= border=0>src=imagens/b.png width= height= border=0><img
src=imagens/p.png width= height= border=0><img
src=imagens/b.png width= height= border=0><img 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 ; } ?>
" .$linha. "
". $p1 . "
" .$p2. "
" .$p3. "
" .$p4 . "
" .$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; } ?>
src=imagens/p.png width= height= border=0><img
src=imagens/b.png width= height= border=0><img 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=imagens/p.png width=<?php echo $f1?> height=<?php echo $altura?> border=0><img
src=imagens/b.png width=<?php echo $f2?> height=<?php echo $altura?> border=0><img
src=imagens/p.png width= height= border=0><img
src=imagens/b.png width= height= border=0><img
src=imagens/p.png width= height= border=0>
" .$linha. "
". $p1 . "
" .$p2. "
" .$p3. "
" .$p4 . "
" .$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; } ?>
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
