|
From: Marco A. de C. S. <mar...@uo...> - 2002-12-11 13:30:26
|
Ol=E1 todos,
Estou incluindo abaixo o class.banco.cef.php com a linha digit=E1vel e o
c=F3digo de barras reparados para o padr=E3o da Caixa Econ=F4mica
Obs1: Este boleto =E9 somente para cobran=E7a sem registro
Obs2: O N=FAmero do Documento deve ter 14 d=EDgitos Ex:
00000000000001,00000000000012, etc.
Obs3: O numero da agencia =E9 todos os numeros antes de come=E7ar os =
zeros no
codigo do cedente que esta no contrato Ex: 23928700000.... pega s=F3 =
239287.
o n=FAmero do cedente s=E3o os =FAltimos cinco d=EDgitos do =
mesmo numero
sem o d=EDgito verificador. Ex: ....00XXX-X pega 00XXX.
Bom aqui vai o que interessa:
<?php
/* vim: set expandtab tabstop=3D4 shiftwidth=3D4: */
// =
+----------------------------------------------------------------------+
// | phpBoleto v2.0 =
|
// =
+----------------------------------------------------------------------+
// | Copyright (c) 1999-2001 Pablo Martins F. Costa, Jo=E3o Prado Maia =
|
// =
+----------------------------------------------------------------------+
// | Este arquivo est=E1 sujeito a vers=E3o 2 da GNU General Public =
License, |
// | que foi adicionada nesse pacote no arquivo COPYING e est=E1 =
dispon=EDvel |
// | pela Web em http://www.gnu.org/copyleft/gpl.txt =
|
// | Voc=EA deve ter recebido uma c=F3pia da GNU Public License junto =
com |
// | esse pacote; se n=E3o, escreva para: =
|
// | =
|
// | Free Software Foundation, Inc. =
|
// | 59 Temple Place - Suite 330 =
|
// | Boston, MA 02111-1307, USA. =
|
// =
+----------------------------------------------------------------------+
// | Autores: Jo=E3o Prado Maia <jp...@ph...> =
|
// | Pablo Martins F. Costa <pa...@us...> =
|
// =
+----------------------------------------------------------------------+
// | Alterado em 05/12/2002 por Marco Antonio de Carvalho Silva =
|
// | <mar...@uo...> =
|
// =
+----------------------------------------------------------------------+
// @(#) $Id: class.banco.cef.php,v 1.2 2001/10/23 16:51:56 jcpm Exp $
//
require_once(BOLETO_INC_PATH . "boletos" . BOLETO_SEPARADOR . "bancos" .
BOLETO_SEPARADOR . "class.banco.comum.php");
class Boleto_Banco_Cef extends Boleto_Banco_Comum
{
function geraDadosBanco($info)
{
// Montagem do calculo para o nosso numero
$oito =3D "8";=20
$agcod =3D $info["conta_cedente"] . $info["agencia"];
$nnum =3D $info["nosso_numero"];
// formatacao do numero para o codigo de barras
$v =3D str_replace("R\$", "", $info["valor_documento"]);
$v =3D str_replace(chr(44), "", $v);
$valor =3D sprintf("%010d", $v);
// vencimento
$vence =3D explode("/", $info["vencimento"]);
$dvence =3D $vence[0];
$mvence =3D $vence[1];
$avence =3D $vence[2];
$vcto =3D "$dvence/$mvence/$avence";
$fatorvcto =3D $this->_fatorVencimento($avence, $mvence, =
$dvence);
$moeda =3D "9";
$codbank =3D 104;
// 43 numeros para o calculo do digito verificador
$dvcampo =3D "$codbank$moeda$fatorvcto$valor$agcod$nnum";=20
//alterada a ordem dos numeros para o padrao CEF na linha =
acima<-
$dv =3D $this->_modulo11($dvcampo);
// Numero para o codigo de barras com 44 digitos
$num =3D "$codbank$moeda$dv$fatorvcto$valor$agcod$nnum";
//alterada a ordem dos numeros para o padrao CEF na linha =
acima<-
// Devolve a linha digitavel
$linha_digitavel =3D $this->_montaLinha($num);
$codigo_banco =3D $this->_geraCodigoBanco($codbank);
$nnum =3D "$oito$nnum"; // Acrescenta o 8 no inicio do num. doc. =
<-
return array(
"linha_digitavel" =3D> $linha_digitavel,
"agencia_codigo" =3D> $agcod,
"codigo_barras" =3D> $num,
"codigo_banco" =3D> $codigo_banco,
"nosso_numero" =3D> $nnum
);
}
}
?>
|