* @copyright GPLv2 * @package LeituraArquivoRetorno * @author Manoel Campos da Silva Filho. http://manoelcampos.com/contato * @version 0.4 */ //Adiciona a classe strategy RetornoBanco que vincula um objeto de uma sub-classe //de RetornoBase, e assim, executa o processamento do arquivo de uma determinada //carteira de um banco específico. require_once("RetornoBanco.php"); require_once("RetornoFactory.php"); /**Função handler a ser associada ao evento aoProcessarLinha de um objeto da classe * RetornoBase. A função será chamada cada vez que o evento for disparado. * @param RetornoBase $self Objeto da classe RetornoBase que está processando o arquivo de retorno * @param $numLn Número da linha processada. * @param $vlinha Vetor contendo a linha processada, contendo os valores da armazenados * nas colunas deste vetor. Nesta função o usuário pode fazer o que desejar, * como setar um campo em uma tabela do banco de dados, para indicar * o pagamento de um boleto de um determinado cliente. * @see linhaProcessada1 */ function linhaProcessada($self, $numLn, $vlinha) { if($vlinha) { if($vlinha["registro"] == $self::DETALHE) { printf("%08d: ", $numLn); echo "Nosso Número ".$vlinha['nosso_numero']." ". "Data ".$vlinha["data_ocorrencia"]." ". "Valor ".$vlinha["valor"]."
\n"; } } else echo "Tipo da linha não identificado
\n"; } /**Outro exemplo de função handler, a ser associada ao evento * aoProcessarLinha de um objeto da classe RetornoBase. * Neste exemplo, é utilizado um laço foreach para percorrer * o vetor associativo $vlinha, mostrando os nomes das chaves * e os valores obtidos da linha processada. * @see linhaProcessada */ function linhaProcessada1($self, $numLn, $vlinha) { printf("%08d) ", $numLn); if($vlinha) { foreach($vlinha as $nome_indice => $valor) echo "$nome_indice: $valor
\n "; echo "
\n"; } else echo "Tipo da linha não identificado
\n"; } //--------------------------------------INÍCIO DA EXECUÇÃO DO CÓDIGO----------------------------------------------------- $fileName = "retorno-cb030400-bradesco.ret"; //Use uma das duas instrucões abaixo (comente uma e descomente a outra) $cnab400 = RetornoFactory::getRetorno($fileName, "linhaProcessada1"); //$cnab400 = RetornoFactory::getRetorno($fileName, "linhaProcessada"); $retorno = new RetornoBanco($cnab400); $retorno->processar(); ?>