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 ); } } ?> |