adaoex / zf2-phpbol
ZF2-PHPBol Geração de boletos, para vários bancos, com Zend Framework 2, por @adaoex
Requires
- php: >=5.3.3
- data-uri/data-uri: dev-master
- data-uri/twig-extension: dev-master
- dino/dompdf-module: *
- twig/extensions: dev-master
- twig/twig: 1.*
- zendframework/zendframework: 2.*
This package is not auto-updated.
Last update: 2025-02-15 18:44:09 UTC
README
Introdução
Módulo Zend Framework 2 para geração de Boletos/Bloquetos de cobrança dos principais banco brasileiros. Este projeto é baseado no PHPBol
Características
- Gera XHTML validado pela W3C
- Impressão de carnês com quebra de página
- Altamente extensível
- Facilita integração banco de dados
- Gera código de barras em uma imagem apenas, utlizando
Zend\Barcode
Dependências
As dependências já serão resolvidas com a utilização do composer
- PHP >=5.3.3
- Zend Framework 2.2.*
- DOMPdf-Module
- Twig
- Twig Extensions
Instalação via Composer
-
cd my/project/directory
-
criar um arquivo
composer.json
com o seguinte conteudo:{ "require": { "adaoex/zf2-phpbol": "dev-master" } }
-
install PHP Composer via
curl -s http://getcomposer.org/installer | php
(on windows, download http://getcomposer.org/installer and execute it with PHP) -
executar
php composer.phar install
-
abrir
my/project/directory/config/application.config.php
e adicionar os seguinte código emmodules
:'modules' => array( ... 'PHPBol',
)
```
Carteiras Implementadas
Banco do Brasil
A geração de boletos de cobraça do Banco do Brasil é descrita neste documento: www.bb.com.br/docs/pub/emp/empl/dwn/Doc5175Bloqueto.pdf
- Carteira 18 Até o momente foram implementadas alguns convênios da carteira 18:
- Carteira 18, convênio 8 dígitos, nosso número com 9 dígitos
- Carteira 18, convênio 7 dígitos, nosso número com 10 dígitos
- Carteira 18, convênio 6 dígitos, nosso número com 17 dígitos
Caixa Econômica Federal
A geração de boletos de cobraça do CEF é descrita neste documento http://downloads.caixa.gov.br/_arquivos/cobranca_caixa_sigcb/manuais/CODIGO_BARRAS_SIGCB.PDF
- até o momento nenhuma carteira implementara
Utilização
No arquivo my/project/directory/config/application.config.php
configure:
'view_manager' => array( ... 'template_map' => array( ... 'boleto/layout' => __DIR__ . '/../../Application/view/layout/boletobb.phtml', ), 'template_path_stack' => array( ... __DIR__ . '/../../Application/view', ), ),
<?php namespace Application\Controller; use Zend\Mvc\Controller\AbstractActionController; use DOMPDFModule\View\Model\PdfModel; use PHPBol\Boleto\Factory; class BoletoController extends AbstractActionController { public function boletoPdfAction() { /* seta layout para o boleto */ $this->layout('layout/boletobb'); $cedente = array( 'nome' => 'Nome da Empresa', 'cpfcnpj' => 'NUMERO CNPJ ou CPF', 'endereco' => '', 'bairro' => '', 'cidade' => '', 'uf' => '', 'cep' => '', ); $sacado = array( 'logo' => '', 'nome' => '', 'cpfcnpj' => '', 'endereco' => '', 'bairro' => '', 'cidade' => '', 'uf' => '', 'cep' => '', ); $avalista = array( 'nome' => '', 'cpfcnpj' => '', ); $boletoData = array( 'nossoNumero' => $nossoNumero, 'numeroDocumento' => '', 'dataVencimento' => new \DateTime(), 'dataEmissaoDocumento' => new \DateTime(), 'dataProcessamento' => new \DateTime(), 'valorBoleto' => 100.00, 'quantidade' => 1, 'valorUnitario' => null, 'aceite' => '', 'especie' => 'R$', 'especieDoc' => 'DM', 'codigoBarra' => '', 'demonstrativo' => '', 'instrucoes' => '<br />Senhor caixa,<br />' . '- Após o vencimento, cobrar multa de 2%<br />' . '- Após o vencimento, cobrar juros diário de 1%.<br />', ); $img_logo = fread(fopen( realpath('./public/img/boleto/logobb.jpg'), "r"), filesize(realpath('./public/img/boleto/logobb.jpg'))); $banco = array( 'logo' => base64_encode($img_logo), 'codigoCedente' => '0055', 'codigo' => '001', 'codigoDv' => '9', 'agencia' => '0055', 'agenciaDv' => '', 'conta' => '0055', 'contaDv' => 'X', 'carteira' => '18', 'variacao' => '027', 'convenio' => '000555', 'qtd_nosso_numero' => '17', ); // Criando instância e definindo dados // Utilizando o recurso de chain $boleto = Factory::create('BB') ->setBanco($banco) ->setCedente($cedente) ->setSacado($sacado) ->setAvalista($avalista) ->setBoletoData($boletoData) ->setBarcodeImgBase64(); $pdf = new PdfModel(); /* Triggers PDF download, automatically appends ".pdf" */ $pdf->setOption('filename', 'monthly-report'); $pdf->setOption('paperSize', 'a4'); // Defaults to "8x11" $pdf->setOption('paperOrientation', 'landscape'); // Defaults to "portrait" // To set view variables $pdf->setVariables(array( 'html' => $boleto->render('bb_boleto')' )); return $pdf; } }
No arquivo da view my/project/directory/Application/view/boleto/boleto-pdf.phtml
codifique:
<?php echo $this->html;
Dúvidas? Comente!