├── assets └── img │ └── boleto │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 6.png │ ├── b.png │ ├── p.png │ ├── logobb.jpg │ ├── logobesc.jpg │ ├── logohsbc.jpg │ ├── logoitau.jpg │ ├── logoreal.jpg │ ├── imgbrrazu.png │ ├── imgbrrlrj.png │ ├── imgpxlazu.png │ ├── logocaixa.jpg │ ├── logosofisa.png │ ├── logo_empresa.png │ ├── logobancoob.jpg │ ├── logobanespa.jpg │ ├── logobanestes.jpg │ ├── logobradesco.jpg │ ├── logosantander.jpg │ ├── logosicredi.jpg │ ├── logosudameris.jpg │ ├── logounibanco.jpg │ └── logonossacaixa.jpg ├── application ├── libraries │ ├── boleto │ │ ├── Boleto CEF - Contra Apresentacao.zip │ │ ├── BUGS.txt │ │ ├── composer.json │ │ ├── LEIAME.txt │ │ ├── CREDITOS.txt │ │ ├── COPYRIGHT │ │ ├── README.md │ │ ├── boleto_hsbc.php │ │ ├── boleto_besc.php │ │ ├── boleto_real.php │ │ ├── boleto_banespa.php │ │ ├── boleto_santander_banespa.php │ │ ├── boleto_itau.php │ │ ├── boleto_banestes.php │ │ ├── boleto_unibanco.php │ │ ├── boleto_sofisa.php │ │ ├── boleto_bradesco.php │ │ ├── boleto_cef.php │ │ ├── boleto_cef_sigcb.php │ │ ├── boleto_nossacaixa.php │ │ ├── boleto_cef_sinco.php │ │ ├── boleto_sudameris.php │ │ ├── boleto_sicredi.php │ │ ├── boleto_bb.php │ │ ├── boleto_bancoob.php │ │ └── include │ │ │ ├── funcoes_sudameris.php │ │ │ ├── funcoes_itau.php │ │ │ ├── funcoes_real.php │ │ │ ├── funcoes_bancoob.php │ │ │ ├── funcoes_unibanco.php │ │ │ ├── funcoes_cef_sinco.php │ │ │ └── funcoes_bradesco.php │ └── Boleto.php ├── controllers │ └── Boleto_controller.php └── config │ └── boleto.php ├── README.md └── .gitignore /assets/img/boleto/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/1.png -------------------------------------------------------------------------------- /assets/img/boleto/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/2.png -------------------------------------------------------------------------------- /assets/img/boleto/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/3.png -------------------------------------------------------------------------------- /assets/img/boleto/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/6.png -------------------------------------------------------------------------------- /assets/img/boleto/b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/b.png -------------------------------------------------------------------------------- /assets/img/boleto/p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/p.png -------------------------------------------------------------------------------- /assets/img/boleto/logobb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logobb.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logobesc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logobesc.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logohsbc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logohsbc.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logoitau.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logoitau.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logoreal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logoreal.jpg -------------------------------------------------------------------------------- /assets/img/boleto/imgbrrazu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/imgbrrazu.png -------------------------------------------------------------------------------- /assets/img/boleto/imgbrrlrj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/imgbrrlrj.png -------------------------------------------------------------------------------- /assets/img/boleto/imgpxlazu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/imgpxlazu.png -------------------------------------------------------------------------------- /assets/img/boleto/logocaixa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logocaixa.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logosofisa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logosofisa.png -------------------------------------------------------------------------------- /assets/img/boleto/logo_empresa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logo_empresa.png -------------------------------------------------------------------------------- /assets/img/boleto/logobancoob.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logobancoob.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logobanespa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logobanespa.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logobanestes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logobanestes.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logobradesco.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logobradesco.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logosantander.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logosantander.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logosicredi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logosicredi.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logosudameris.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logosudameris.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logounibanco.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logounibanco.jpg -------------------------------------------------------------------------------- /assets/img/boleto/logonossacaixa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/assets/img/boleto/logonossacaixa.jpg -------------------------------------------------------------------------------- /application/libraries/boleto/Boleto CEF - Contra Apresentacao.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/codeigniter-boleto/master/application/libraries/boleto/Boleto CEF - Contra Apresentacao.zip -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CodeIgniter Boleto 2 | 3 | Esse projeto possui as devidas adaptações no [Boleto PHP](https://github.com/CobreGratis/boletophp/) para que boletos possam ser gerados através do [CodeIgniter](https://github.com/bcit-ci/CodeIgniter/). 4 | 5 | ## Documentação 6 | 7 | Veja o arquivo `readme.html`. 8 | -------------------------------------------------------------------------------- /application/libraries/boleto/BUGS.txt: -------------------------------------------------------------------------------- 1 | Se você encontrou algum problema com o BoletoPhp, por favor entre 2 | em contato com a Equipe Coordenação Projeto BoletoPhp pelo email 3 | boletophp@boletophp.com.br para termos conhecimento sobre o fato e 4 | assim darmos início a revisão ou ajustes em caso de necessidades. -------------------------------------------------------------------------------- /application/libraries/boleto/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bielsystems/boletophp", 3 | "description": "Projeto Código-Aberto de Sistema de Boletos bancários em PHP", 4 | "type": "library", 5 | "keywords": [ 6 | "php", 7 | "boleto", 8 | "boletophp" 9 | ], 10 | "homepage": "http://boletophp.com.br/", 11 | "require": { 12 | "php": ">=5.3.0" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | application/cache/ 2 | application/config/* 3 | !application/config/boleto.php 4 | !application/controllers/ 5 | application/controllers/index.html 6 | application/core/ 7 | application/helpers/ 8 | application/hooks/ 9 | application/language/ 10 | !application/libraries/* 11 | application/libraries/index.html 12 | application/logs/ 13 | application/models/ 14 | application/third_party/ 15 | !application/views/* 16 | application/views/errors 17 | application/views/index.html 18 | application/.htaccess 19 | application/index.html 20 | 21 | system/* 22 | 23 | index.php 24 | phpstorm.php 25 | 26 | .idea/* 27 | -------------------------------------------------------------------------------- /application/libraries/boleto/LEIAME.txt: -------------------------------------------------------------------------------- 1 | 2 | Alterações da Versão 0.12 para 0.13 3 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 4 | 5 | 1. Acrescentado o Boleto Caixa SINCO 6 | 7 | 8 | Alterações da Versão 0.13 para 0.14 9 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 10 | 11 | 1. Acrescentado o Boleto Caixa SIGCB 12 | 13 | 14 | Alterações da Versão 0.14 para 0.15 15 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 16 | 17 | 1. Acrescentado o Boleto Bancoob 18 | 19 | 20 | Alterações da Versão 0.15 para 0.16 21 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 22 | 23 | 1. Acrescentado o Boleto BESC 24 | 25 | 26 | Alterações da Versão 0.16 para 0.17 27 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 28 | 29 | 1. Acrescentado o Boleto Sicredi 30 | 2. Correção do Boleto CEF-SIGCB 31 | 32 | Alterações da Versão 0.17 para 0.18 33 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 34 | 35 | 1. Acrescentado o Boleto Sofisa 36 | -------------------------------------------------------------------------------- /application/libraries/boleto/CREDITOS.txt: -------------------------------------------------------------------------------- 1 | Coordenador Projeto BoletoPhp - Elizeu Alcantara 2 | Projeto PhpBoleto - João Prado Maia e Pablo Martins F. Costa 3 | Projeto BBBoletoFree - Daniel William Schultz 4 | Boleto Banco do Brasil - Daniel William Schultz / Leandro Maniezo / Rogério Dias Pereira / Romeu Medeiros 5 | Boleto Unibanco - Elizeu Alcantara 6 | Boleto Caixa - Elizeu Alcantara 7 | Boleto Itaú - Glauber Portella 8 | Boleto Hsbc - Bruno Leonardo 9 | Boleto Bradesco - Ramon Soares 10 | Boleto Banestes - Fernando José de Oliveira Chagas 11 | Boleto Real - Juan Basso 12 | Boleto NossaCaixa - Keitty Suélen 13 | Boleto Sudameris - Flávio Yutaka Nakamura 14 | Boleto Santander Banespa (353) - Fábio Lenharo 15 | Boleto Santander Banespa (033) - Fábio Gabbay 16 | Boleto Caixa SINCO: Carlos Magno / Reinaldo Silva 17 | Boleto Caixa SIGCB: Davi Camargo / Leandro Vieira Pinho 18 | Boleto Bancoob: Marcelo Souza 19 | Boleto Besc: Lucas Ferreira 20 | Boleto Sicredi: Rafael Azenha Aquini / Marco Antonio Righi / Marcelo Belinato 21 | -------------------------------------------------------------------------------- /application/controllers/Boleto_controller.php: -------------------------------------------------------------------------------- 1 | load->library('boleto'); 17 | } 18 | 19 | 20 | public function index() 21 | { 22 | $dados = array( 23 | // Informações necessárias para todos os bancos 24 | 'dias_de_prazo_para_pagamento' => 5, 25 | 'taxa_boleto' => 1, 26 | 'pedido' => array( 27 | 'nome' => 'Serviços de Desenvolvimento Web', 28 | 'quantidade' => '10', 29 | 'valor_unitario' => '80', 30 | 'numero' => 10000000025, 31 | 'aceite' => 'N', 32 | 'especie' => 'R$', 33 | 'especie_doc' => 'DM', 34 | ), 35 | 'sacado' => array( 36 | 'nome' => 'João da Silva', 37 | 'endereco' => 'Av. Meninas Bonitas, 777', 38 | 'cidade' => 'Sapiranga', 39 | 'uf' => 'RS', 40 | 'cep' => '93816-630', 41 | ), 42 | // Informações necessárias que são específicas do Banco do Brasil 43 | 'variacao_carteira' => '019', 44 | 'contrato' => 999999, 45 | 'convenio' => 7777777, 46 | ); 47 | 48 | // Gera o boleto 49 | $this->boleto->bb($dados); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /application/libraries/boleto/COPYRIGHT: -------------------------------------------------------------------------------- 1 | // +----------------------------------------------------------------------+ 2 | // | BoletoPhp - Versão Beta | 3 | // +----------------------------------------------------------------------+ 4 | // | Este arquivo está sujeito a versão 2 da GNU General Public License, | 5 | // | que foi adicionada nesse pacote no arquivo COPYING e está disponível | 6 | // | pela Web em http://pt.wikipedia.org/wiki/GNU_General_Public_License | 7 | // | Você deve ter recebido uma cópia da GNU Public License junto com | 8 | // | esse pacote; se não, escreva para: | 9 | // | | 10 | // | Free Software Foundation, Inc. | 11 | // | 59 Temple Place - Suite 330 | 12 | // | Boston, MA 02111-1307, USA. | 13 | // +----------------------------------------------------------------------+ 14 | 15 | // +----------------------------------------------------------------------+ 16 | // | Originado do Projeto BBBoletoFree que tiveram colaborações de Daniel | 17 | // | William Schultz e Leandro Maniezo que por sua vez foi derivado do | 18 | // | PHPBoleto de João Prado Maia e Pablo Martins F. Costa | 19 | // | | 20 | // | Se vc quer colaborar, nos ajude a desenvolver p/ os demais bancos :-)| 21 | // | Acesse o site do Projeto BoletoPhp: www.boletophp.com.br | 22 | // +----------------------------------------------------------------------+ 23 | 24 | // +----------------------------------------------------------------------+ 25 | // | Equipe Coordenação Projeto BoletoPhp: | 26 | // +----------------------------------------------------------------------+ -------------------------------------------------------------------------------- /application/config/boleto.php: -------------------------------------------------------------------------------- 1 | 'Creative Webmaster', 52 | 'cpf_cnpj' => '000111222-33', 53 | 'agencia' => '1234-8', 54 | 'conta' => '56789-10', 55 | 'conta_cedente' => '987654-5', 56 | 'carteira' => '5', 57 | 'nosso_numero' => '12345678', 58 | 'endereco' => 'Rua das Ações, 755', 59 | 'cidade' => 'Sapiranga', 60 | 'uf' => 'RS', 61 | ); 62 | 63 | /* 64 | | ------------------------------------------------------------------- 65 | | DEMONSTRATIVO 66 | | ------------------------------------------------------------------- 67 | */ 68 | $config['boleto']['demonstrativo'] = array( 69 | 'linha1' => 'Pagamento de serviços de desenvolvimento web', 70 | 'linha2' => 'Taxa bancária: R$ ', 71 | 'linha3' => 'CodeIgniter Boleto - https://github.com/natanfelles/codeigniter-boleto', 72 | ); 73 | 74 | /* 75 | | ------------------------------------------------------------------- 76 | | INSTRUÇÕES 77 | | ------------------------------------------------------------------- 78 | */ 79 | $config['boleto']['instrucoes'] = array( 80 | 'linha1' => '
- Sr. Caixa, cobrar multa de 5% após o vencimento', 81 | 'linha2' => '- Receber até 5 dias após o vencimento', 82 | 'linha3' => '- Em caso de dúvidas entre em contato conosco: natanfelles@gmail.com', 83 | 'linha4' => '- Desenvolvido por Natan Felles - www.natanfelles.github.io', 84 | ); 85 | 86 | /* 87 | | ------------------------------------------------------------------- 88 | | LOCAL DAS IMAGENS 89 | | ------------------------------------------------------------------- 90 | */ 91 | $config['boleto']['imagens'] = 'assets/img/boleto'; 92 | -------------------------------------------------------------------------------- /application/libraries/boleto/README.md: -------------------------------------------------------------------------------- 1 | boletophp 2 | ========= 3 | 4 | Projeto Código-Aberto de Sistema de Boletos bancários em PHP 5 | 6 | ## Qual o principal motivo deste projeto? 7 | Este projeto foi criado por Elizeu Alcantara desde Maio/2006 e teve origem do Projeto BBBoletoFree que tiveram colaborações de Daniel William Schultz e Leandro Maniezo que por sua vez foi derivado do PHPBoleto de João Prado Maia e Pablo Martins F. Costa. 8 | 9 | Criar um sistema de geração de Boletos que seja mais simples do que o PhpBoleto e que se estenda ao desenvolvimento de boletos dos bancos mais usados no mercado, além do Banco do Brasil do projeto BBBoletoFree. Este sistema é de Código Aberto e de Livre Distribuição conforme Licença GPL. 10 | 11 | Este projeto visa atender exclusivamente aos profissionais e desenvolvedores na área técnica de programação PHP dos boletos, portanto se faz necessário conhecimento desejado e estudo do mesmo para a perfeita configuração do boleto a ser usado, sendo de inteira responsabilidade do profissional a instalação, funcionamento, testes e compensação do mesmo em conta bancária, pois não damos suporte técnico, portanto mensagens enviadas a nós com dúvidas gerais, técnicas ou solicitações de Suporte não serão respondidas. 12 | 13 | O projeto BoletoPhp não tem foco na questão administrativa, comercial ou jurídica, pois isto compete exclusivamente aos bancos devido as suas particularidades existentes de cada carteira de cada boleto. Maiores informações sobre o conceito de Boleto de Cobrança, você pode acessar aqui o site da Wikipédia 14 | 15 | ## Qual a principal idéia deste projeto? 16 | Padronizar um formato simples de geração de boletos de cada banco baseado em um padrão composto somente de 3 arquivos php 17 | 18 | Tomamos como exemplo o Boleto do Caixa Econômica, onde temos: 19 | 20 | - boleto_cef.php : Aqui ficam os DADOS usados para a geração do boleto 21 | - layout_cef.php : Aqui fica a estrutura HTML para a geração do boleto 22 | - funcoes_cef.php : Aqui ficam as FUNÇOES usadas para a geração do boleto 23 | 24 | ## Este conceito do BoletoPHP facilita a criação de boletos de outros bancos? 25 | Sim, pois facilita para um desenvolvedor para que seja dado continuidade no Projeto BoletoPHP para o desenvolvimento dos demais bancos, pois o principal trabalho para criar o boleto de um novo banco é criar o arquivo php de funções ( no caso acima o funcoes_cef.php) , onde estão as regras de cada banco para a geração das 2 principais informações do boleto que são a Linha Digitável e o Código de Barras, já que no layout_xxxx.php muda apenas a logo do banco e no arquivo boleto_xxxx.php acrescenta poucas variáveis específicas de cada banco. 26 | 27 | ## Boletos/Bancos Desenvolvidos 28 | | Banco / Entidade | Carteira | 29 | | ------------------------------------------- | ------------------------------------------------------------------ | 30 | | Banco do Brasil | 18 - Convênio de 6 , 7 ou 8 Dígitos | 31 | | Unibanco | Especial - Sem Registro | 32 | | Caixa Econômica | SR [SICOB, SINCO e SIGCB] | 33 | | Itaú | 175 / 174 / 178 / 104 / 109 - Sem Registro | 34 | | Hsbc | CNR - Sem Registro | 35 | | Bradesco | 06 / 03 - Sem Registro | 36 | | Banestes | 00 - Sem Registro | 37 | | Real | 57 - Sem Registro | 38 | | Nossa Caixa | 5 [Cobrança Direta] ou Carteira 1 [Cobrança Simples] | 39 | | Sudameris (Integrado ao Banco Real) | 57 [Cobrança Sem registro] ou Carteira 20 [Cobrança Com registro] | 40 | | Santander-Banespa (Banco 033 - Antigo 353) | 102 - Sem registro | 41 | | Santander-Banespa (Banco 033) | COB - Sem registro | 42 | | Bancoob | 01 [SICOOB] - Sem registro | 43 | | BESC | 25 - Sem registro | 44 | | Sicredi | A - Simples | 45 | -------------------------------------------------------------------------------- /application/libraries/Boleto.php: -------------------------------------------------------------------------------- 1 | '', 22 | 'cpf_cnpj' => '', 23 | 'agencia' => '', 24 | 'conta' => '', 25 | 'conta_cedente' => '', 26 | 'carteira' => '', 27 | 'nosso_numero' => '', 28 | 'endereco' => '', 29 | 'cidade' => '', 30 | 'uf' => '', 31 | 'cep' => '', 32 | ); 33 | 34 | protected $demonstrativo = array( 35 | 'linha1' => '', 36 | 'linha2' => '', 37 | 'linha3' => '', 38 | ); 39 | 40 | protected $instrucoes = array( 41 | 'linha1' => '', 42 | 'linha2' => '', 43 | 'linha3' => '', 44 | 'linha4' => '', 45 | ); 46 | 47 | protected $imagens = ''; 48 | 49 | protected $pedido = array( 50 | 'quantidade' => '', 51 | 'valor_unitario' => '', 52 | 'aceite' => '', 53 | 'especie' => 'R$', 54 | 'especie_doc' => '', 55 | 'numero' => '', 56 | ); 57 | 58 | protected $sacado = array( 59 | 'nome' => '', 60 | 'cpf_cnpj' => '', 61 | 'agencia' => '', 62 | 'conta' => '', 63 | 'conta_cedente' => '', 64 | 'carteira' => '', 65 | 'nosso_numero' => '', 66 | 'endereco' => '', 67 | 'cidade' => '', 68 | 'uf' => '', 69 | 'cep' => '', 70 | ); 71 | 72 | protected $dias_de_prazo_para_pagamento = 0; 73 | 74 | protected $taxa_boleto = 0; 75 | 76 | 77 | public function __construct() 78 | { 79 | $this->CI =& get_instance(); 80 | $this->CI->config->load('boleto'); 81 | $dados = $this->CI->config->item('boleto'); 82 | if ($dados['padrao'] === TRUE) 83 | { 84 | $this->setup($dados); 85 | } 86 | } 87 | 88 | 89 | public function bancoob($dados = array()) 90 | { 91 | $this->setup($dados); 92 | include 'boleto/boleto_bancoob.php'; 93 | } 94 | 95 | 96 | public function banespa($dados = array()) 97 | { 98 | $this->setup($dados); 99 | include 'boleto/boleto_banespa.php'; 100 | } 101 | 102 | 103 | public function banestes($dados = array()) 104 | { 105 | $this->setup($dados); 106 | include 'boleto/boleto_banestes.php'; 107 | } 108 | 109 | 110 | public function bb($dados = array()) 111 | { 112 | $this->setup($dados); 113 | include 'boleto/boleto_bb.php'; 114 | } 115 | 116 | 117 | public function besc($dados = array()) 118 | { 119 | $this->setup($dados); 120 | include 'boleto/boleto_besc.php'; 121 | } 122 | 123 | 124 | public function bradesco($dados = array()) 125 | { 126 | $this->setup($dados); 127 | include 'boleto/boleto_bradesco.php'; 128 | } 129 | 130 | 131 | public function cef($dados = array()) 132 | { 133 | $this->setup($dados); 134 | include 'boleto/boleto_cef.php'; 135 | } 136 | 137 | 138 | public function cef_sigcb($dados = array()) 139 | { 140 | $this->setup($dados); 141 | include 'boleto/boleto_cef_sigcb.php'; 142 | } 143 | 144 | 145 | public function cef_sinco($dados = array()) 146 | { 147 | $this->setup($dados); 148 | include 'boleto/boleto_cef_sinco.php'; 149 | } 150 | 151 | 152 | public function hsbc($dados = array()) 153 | { 154 | $this->setup($dados); 155 | include 'boleto/boleto_hsbc.php'; 156 | } 157 | 158 | 159 | public function itau($dados = array()) 160 | { 161 | $this->setup($dados); 162 | include 'boleto/boleto_itau.php'; 163 | } 164 | 165 | 166 | public function nossacaixa($dados = array()) 167 | { 168 | $this->setup($dados); 169 | include 'boleto/boleto_nossacaixa.php'; 170 | } 171 | 172 | 173 | public function real($dados = array()) 174 | { 175 | $this->setup($dados); 176 | include 'boleto/boleto_real.php'; 177 | } 178 | 179 | 180 | public function santander_banespa($dados = array()) 181 | { 182 | $this->setup($dados); 183 | include 'boleto/boleto_santander_banespa.php'; 184 | } 185 | 186 | 187 | public function sicredi($dados = array()) 188 | { 189 | $this->setup($dados); 190 | include 'boleto/boleto_sicredi.php'; 191 | } 192 | 193 | 194 | public function sofisa($dados = array()) 195 | { 196 | $this->setup($dados); 197 | include 'boleto/boleto_sofisa.php'; 198 | } 199 | 200 | 201 | public function sudameris($dados = array()) 202 | { 203 | $this->setup($dados); 204 | include 'boleto/boleto_sudameris.php'; 205 | } 206 | 207 | 208 | public function unibanco($dados = array()) 209 | { 210 | $this->setup($dados); 211 | include 'boleto/boleto_unibanco.php'; 212 | } 213 | 214 | 215 | protected function setup($dados = array()) 216 | { 217 | foreach ($dados as $index => $key) 218 | { 219 | $this->$index = $key; 220 | } 221 | } 222 | 223 | } 224 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_hsbc.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto HSBC: Bruno Leonardo M. F. Gonçalves | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Número do documento - REGRA: Máximo de 13 digitos 42 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 43 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 44 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 45 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 46 | 47 | // DADOS DO SEU CLIENTE 48 | $dadosboleto["sacado"] = $this->sacado['nome']; 49 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 50 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 51 | 52 | // INFORMACOES PARA O CLIENTE 53 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 54 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 55 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 56 | 57 | // INSTRUÇÕES PARA O CAIXA 58 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 59 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 60 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 61 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 62 | 63 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 64 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 65 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 66 | $dadosboleto["aceite"] = $this->pedido['aceite']; 67 | $dadosboleto["especie"] = $this->pedido['especie']; 68 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 69 | 70 | 71 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 72 | 73 | 74 | // DADOS PERSONALIZADOS - HSBC 75 | $dadosboleto["codigo_cedente"] = "1122334"; // Código do Cedente (Somente 7 digitos) 76 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira 77 | 78 | // SEUS DADOS 79 | $dadosboleto["identificacao"] = $this->cedente['nome']; 80 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 81 | $dadosboleto["endereco"] = $this->cedente['endereco']; 82 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 83 | $dadosboleto["cedente"] = $this->cedente['nome']; 84 | 85 | // NÃO ALTERAR! 86 | include("include/funcoes_hsbc.php"); 87 | include("include/layout_hsbc.php"); 88 | ?> 89 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_besc.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto BESC: Lucas Ferreira | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero - REGRA: Máximo de 13 digitos! 42 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento 43 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 44 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 45 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 46 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 47 | 48 | // DADOS DO SEU CLIENTE 49 | $dadosboleto["sacado"] = $this->sacado['nome']; 50 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 51 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 52 | 53 | // INFORMACOES PARA O CLIENTE 54 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 55 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 56 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 57 | 58 | // INSTRUÇÕES PARA O CAIXA 59 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 60 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 61 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 62 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 63 | 64 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 65 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 66 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 67 | $dadosboleto["aceite"] = $this->pedido['aceite']; 68 | $dadosboleto["especie"] = $this->pedido['especie']; 69 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 70 | 71 | 72 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 73 | 74 | 75 | // DADOS PERSONALIZADOS - BESC 76 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira 77 | $dadosboleto["codigo_cedente"] = $this->cedente['conta_cedente']; 78 | 79 | // SEUS DADOS 80 | $dadosboleto["identificacao"] = $this->cedente['nome']; 81 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 82 | $dadosboleto["endereco"] = $this->cedente['endereco']; 83 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 84 | $dadosboleto["cedente"] = $this->cedente['nome']; 85 | 86 | // NÃO ALTERAR! 87 | include("include/funcoes_besc.php"); 88 | include("include/layout_besc.php"); 89 | ?> 90 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_real.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Real: Juan Basso | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero - REGRA: Máximo de 13 caracteres! 42 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento 43 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 44 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 45 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 46 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 47 | 48 | // DADOS DO SEU CLIENTE 49 | $dadosboleto["sacado"] = $this->sacado['nome']; 50 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 51 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 52 | 53 | // INFORMACOES PARA O CLIENTE 54 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 55 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 56 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 57 | 58 | // INSTRUÇÕES PARA O CAIXA 59 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 60 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 61 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 62 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 63 | 64 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 65 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 66 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 67 | $dadosboleto["aceite"] = $this->pedido['aceite']; 68 | $dadosboleto["especie"] = $this->pedido['especie']; 69 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 70 | 71 | 72 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 73 | 74 | 75 | // DADOS DA SUA CONTA - REAL 76 | $agencia = explode('-',$this->cedente['agencia']); 77 | $dadosboleto["agencia"] = $agencia[0]; // Num da agencia, sem digito 78 | $conta = explode('-',$this->cedente['conta']); 79 | $dadosboleto["conta"] = $conta[0]; // Num da conta, sem digito 80 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira 81 | 82 | // SEUS DADOS 83 | $dadosboleto["identificacao"] = $this->cedente['nome']; 84 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 85 | $dadosboleto["endereco"] = $this->cedente['endereco']; 86 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 87 | $dadosboleto["cedente"] = $this->cedente['nome']; 88 | 89 | // NÃO ALTERAR! 90 | include("include/funcoes_real.php"); 91 | include("include/layout_real.php"); 92 | ?> 93 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_banespa.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Banespa : Fabio Gabbay | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero - REGRA: Máximo de 7 caracteres! 42 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou nosso numero 43 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 44 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 45 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 46 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 47 | 48 | // DADOS DO SEU CLIENTE 49 | $dadosboleto["sacado"] = $this->sacado['nome']; 50 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 51 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 52 | 53 | // INFORMACOES PARA O CLIENTE 54 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 55 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 56 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 57 | 58 | // INSTRUÇÕES PARA O CAIXA 59 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 60 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 61 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 62 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 63 | 64 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 65 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 66 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 67 | $dadosboleto["aceite"] = $this->pedido['aceite']; 68 | $dadosboleto["especie"] = $this->pedido['especie']; 69 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 70 | 71 | 72 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 73 | 74 | 75 | // DADOS PERSONALIZADOS - Banespa 76 | $dadosboleto["codigo_cedente"] = "40013012168"; // Código do cedente (Somente 11 digitos) 77 | $dadosboleto["ponto_venda"] = "400"; // Ponto de Venda = Agencia 78 | $dadosboleto["carteira"] = $this->cedente['carteira']; // COB - SEM Registro 79 | $dadosboleto["nome_da_agencia"] = "ACLIMAÇÃO"; // Nome da agencia (Opcional) 80 | 81 | // SEUS DADOS 82 | $dadosboleto["identificacao"] = $this->cedente['nome']; 83 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 84 | $dadosboleto["endereco"] = $this->cedente['endereco']; 85 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 86 | $dadosboleto["cedente"] = $this->cedente['nome']; 87 | 88 | // NÃO ALTERAR! 89 | include("include/funcoes_banespa.php"); 90 | include("include/layout_banespa.php"); 91 | ?> 92 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_santander_banespa.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Santander-Banespa : Fabio R. Lenharo | 27 | // +----------------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero sem o DV - REGRA: Máximo de 7 caracteres! 42 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou nosso numero 43 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 44 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 45 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 46 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 47 | 48 | // DADOS DO SEU CLIENTE 49 | $dadosboleto["sacado"] = $this->sacado['nome']; 50 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 51 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 52 | 53 | // INFORMACOES PARA O CLIENTE 54 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 55 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 56 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 57 | 58 | // INSTRUÇÕES PARA O CAIXA 59 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 60 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 61 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 62 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 63 | 64 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 65 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 66 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 67 | $dadosboleto["aceite"] = $this->pedido['aceite']; 68 | $dadosboleto["especie"] = $this->pedido['especie']; 69 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 70 | 71 | 72 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 73 | 74 | 75 | // DADOS PERSONALIZADOS - SANTANDER BANESPA 76 | $dadosboleto["codigo_cliente"] = "0707077"; // Código do Cliente (PSK) (Somente 7 digitos) 77 | $dadosboleto["ponto_venda"] = $this->cedente['agencia']; // Ponto de Venda = Agencia 78 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Cobrança Simples - SEM Registro 79 | $dadosboleto["carteira_descricao"] = "COBRANÇA SIMPLES - CSR"; // Descrição da Carteira 80 | 81 | // SEUS DADOS 82 | $dadosboleto["identificacao"] = $this->cedente['nome']; 83 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 84 | $dadosboleto["endereco"] = $this->cedente['endereco']; 85 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 86 | $dadosboleto["cedente"] = $this->cedente['nome']; 87 | 88 | // NÃO ALTERAR! 89 | include("include/funcoes_santander_banespa.php"); 90 | include("include/layout_santander_banespa.php"); 91 | ?> 92 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_itau.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Itaú: Glauber Portella | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero - REGRA: Máximo de 8 caracteres! 42 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou nosso numero 43 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 44 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 45 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 46 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 47 | 48 | // DADOS DO SEU CLIENTE 49 | $dadosboleto["sacado"] = $this->sacado['nome']; 50 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 51 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 52 | 53 | // INFORMACOES PARA O CLIENTE 54 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 55 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 56 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 57 | 58 | // INSTRUÇÕES PARA O CAIXA 59 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 60 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 61 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 62 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 63 | 64 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 65 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 66 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 67 | $dadosboleto["aceite"] = $this->pedido['aceite']; 68 | $dadosboleto["especie"] = $this->pedido['especie']; 69 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 70 | 71 | 72 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 73 | 74 | 75 | // DADOS DA SUA CONTA - ITAÚ 76 | $agencia = explode('-',$this->cedente['agencia']); 77 | $dadosboleto["agencia"] = $agencia[0]; // Num da agencia, sem digito 78 | $conta = explode('-',$this->cedente['conta']); 79 | $dadosboleto["conta"] = $conta[0]; // Num da conta, sem digito 80 | $dadosboleto["conta_dv"] = $conta[1]; // Digito do Num da conta 81 | 82 | // DADOS PERSONALIZADOS - ITAÚ 83 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira: pode ser 175, 174, 104, 109, 178, ou 157 84 | 85 | // SEUS DADOS 86 | $dadosboleto["identificacao"] = $this->cedente['nome']; 87 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 88 | $dadosboleto["endereco"] = $this->cedente['endereco']; 89 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 90 | $dadosboleto["cedente"] = $this->cedente['nome']; 91 | 92 | // NÃO ALTERAR! 93 | include("include/funcoes_itau.php"); 94 | include("include/layout_itau.php"); 95 | ?> 96 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_banestes.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Banestes: Fernando José de Oliveira Chagas | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero sem o DV - REGRA: Máximo de 8 caracteres! 42 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento 43 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 44 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 45 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 46 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 47 | 48 | // DADOS DO SEU CLIENTE 49 | $dadosboleto["sacado"] = $this->sacado['nome']; 50 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 51 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 52 | 53 | // INFORMACOES PARA O CLIENTE 54 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 55 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 56 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 57 | 58 | // INSTRUÇÕES PARA O CAIXA 59 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 60 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 61 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 62 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 63 | 64 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 65 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 66 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 67 | $dadosboleto["aceite"] = $this->pedido['aceite']; 68 | $dadosboleto["especie"] = $this->pedido['especie']; 69 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 70 | 71 | 72 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 73 | 74 | 75 | // DADOS DA SUA CONTA - BANESTES 76 | $dadosboleto["conta"] = $this->cedente['conta']; // Num da conta corrente 77 | $dadosboleto["agencia"] = $this->cedente['agencia']; // Num da agência 78 | 79 | // DADOS PERSONALIZADOS - BANESTES 80 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Carteira do Tipo COBRANÇA SEM REGISTRO (Carteira 00) - Não é Carteira 11 81 | $dadosboleto["tipo_cobranca"] = "2"; // 2- Sem registro; 82 | // 3- Caucionada; 83 | // 4,5,6 e 7-Cobrança com registro 84 | 85 | // SEUS DADOS 86 | $dadosboleto["identificacao"] = $this->cedente['nome']; 87 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 88 | $dadosboleto["endereco"] = $this->cedente['endereco']; 89 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 90 | $dadosboleto["cedente"] = $this->cedente['nome']; 91 | 92 | // NÃO ALTERAR! 93 | include("include/funcoes_banestes.php"); 94 | include("include/layout_banestes.php"); 95 | ?> 96 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_unibanco.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Unibanco: Elizeu Alcantara | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero - REGRA: Máximo de 14 caracteres! 42 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento 43 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 44 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 45 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 46 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 47 | 48 | // DADOS DO SEU CLIENTE 49 | $dadosboleto["sacado"] = $this->sacado['nome']; 50 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 51 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 52 | 53 | // INFORMACOES PARA O CLIENTE 54 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 55 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 56 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 57 | 58 | // INSTRUÇÕES PARA O CAIXA 59 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 60 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 61 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 62 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 63 | 64 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 65 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 66 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 67 | $dadosboleto["aceite"] = $this->pedido['aceite']; 68 | $dadosboleto["especie"] = $this->pedido['especie']; 69 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 70 | 71 | 72 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 73 | 74 | 75 | // DADOS DA SUA CONTA - UNIBANCO 76 | $agencia = explode('-',$this->cedente['agencia']); 77 | $dadosboleto["agencia"] = $agencia[0]; // Num da agencia, sem digito 78 | $conta = explode('-',$this->cedente['conta']); 79 | $dadosboleto["conta"] = $conta[0]; // Num da conta, sem digito 80 | $dadosboleto["conta_dv"] = $conta[1]; // Digito do Num da conta 81 | 82 | // DADOS PERSONALIZADOS - UNIBANCO 83 | $dadosboleto["codigo_cliente"] = "2031671"; // Codigo do Cliente 84 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira 85 | 86 | // SEUS DADOS 87 | $dadosboleto["identificacao"] = $this->cedente['nome']; 88 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 89 | $dadosboleto["endereco"] = $this->cedente['endereco']; 90 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 91 | $dadosboleto["cedente"] = $this->cedente['nome']; 92 | 93 | // NÃO ALTERAR! 94 | include("include/funcoes_unibanco.php"); 95 | include("include/layout_unibanco.php"); 96 | ?> 97 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_sofisa.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Bradesco: Ramon Soares | 27 | // +----------------------------------------------------------------------+ 28 | 29 | /** 30 | * Boleto Sofisa para carteira 121 31 | * 32 | * @package BoletoPhp 33 | * @author Diego M. Agudo ( diego@agudo.eti.br ) 34 | */ 35 | 36 | 37 | // DADOS DO BOLETO PARA O SEU CLIENTE 38 | $taxa_boleto = $this->taxa_boleto; 39 | $data_venc = date("d/m/Y", time() + ($this->dias_de_prazo_para_pagamento * 86400)); 40 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; 41 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 42 | $valor_boleto = number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 43 | 44 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero DV - REGRA: Máximo de 10 caracteres! 45 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento = Nosso numero 46 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 47 | 48 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 49 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 50 | 51 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 52 | 53 | // DADOS DO SEU CLIENTE 54 | $dadosboleto["sacado"] = $this->sacado['nome']; 55 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 56 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 57 | 58 | // INFORMACOES PARA O CLIENTE 59 | 60 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 61 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 62 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 63 | 64 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 65 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 66 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 67 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 68 | 69 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 70 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 71 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 72 | $dadosboleto["aceite"] = $this->pedido['aceite']; 73 | $dadosboleto["especie"] = $this->pedido['especie']; 74 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 75 | 76 | 77 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 78 | 79 | 80 | // DADOS DA SUA CONTA 81 | $agencia = explode('-',$this->cedente['agencia']); 82 | $dadosboleto["agencia"] = $agencia[0]; // Num da agencia, sem digito 83 | $dadosboleto["agencia_dv"] = $agencia[1]; // Digito do Num da agencia 84 | $conta = explode('-',$this->cedente['conta']); 85 | $dadosboleto["conta"] = $conta[0]; // Num da conta, sem digito 86 | $dadosboleto["conta_dv"] = $conta[1]; // Digito do Num da conta 87 | 88 | // DADOS PERSONALIZADOS 89 | $conta_cedente = explode('-',$this->cedente['conta_cedente']); 90 | $dadosboleto["conta_cedente"] = $conta_cedente[0]; // ContaCedente do Cliente, sem digito (Somente Números) 91 | $dadosboleto["conta_cedente_dv"] = $conta_cedente[1]; // Digito da ContaCedente do Cliente 92 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira: 121 93 | 94 | // SEUS DADOS 95 | $dadosboleto["identificacao"] = $this->cedente['nome']; 96 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 97 | $dadosboleto["endereco"] = $this->cedente['endereco']; 98 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 99 | $dadosboleto["cedente"] = $this->cedente['nome']; 100 | 101 | 102 | // NÃO ALTERAR! 103 | include("include/funcoes_sofisa.php"); 104 | include("include/layout_sofisa.php"); 105 | ?> 106 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_bradesco.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Bradesco: Ramon Soares | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero sem o DV - REGRA: Máximo de 11 caracteres! 42 | $dadosboleto["numero_documento"] = $dadosboleto["nosso_numero"]; // Num do pedido ou do documento = Nosso numero 43 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 44 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 45 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 46 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 47 | 48 | // DADOS DO SEU CLIENTE 49 | $dadosboleto["sacado"] = $this->sacado['nome']; 50 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 51 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 52 | 53 | // INFORMACOES PARA O CLIENTE 54 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 55 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 56 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 57 | 58 | // INSTRUÇÕES PARA O CAIXA 59 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 60 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 61 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 62 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 63 | 64 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 65 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 66 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 67 | $dadosboleto["aceite"] = $this->pedido['aceite']; 68 | $dadosboleto["especie"] = $this->pedido['especie']; 69 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 70 | 71 | 72 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 73 | 74 | 75 | // DADOS DA SUA CONTA - Bradesco 76 | $agencia = explode('-', $this->cedente['agencia']); 77 | $dadosboleto["agencia"] = $agencia[0]; // Num da agencia, sem digito 78 | $dadosboleto["agencia_dv"] = $agencia[1]; // Digito do Num da agencia 79 | $conta = explode('-',$this->cedente['conta']); 80 | $dadosboleto["conta"] = $conta[0]; // Num da conta, sem digito 81 | $dadosboleto["conta_dv"] = $conta[1]; // Digito do Num da conta 82 | 83 | // DADOS PERSONALIZADOS - Bradesco 84 | $conta_cedente = explode('-',$this->cedente['conta_cedente']); 85 | $dadosboleto["conta_cedente"] = $conta_cedente[0]; // ContaCedente do Cliente, sem digito (Somente Números) 86 | $dadosboleto["conta_cedente_dv"] = $conta_cedente[1]; // Digito da ContaCedente do Cliente 87 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira: pode ser 06 ou 03 88 | 89 | // SEUS DADOS 90 | $dadosboleto["identificacao"] = $this->cedente['nome']; 91 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 92 | $dadosboleto["endereco"] = $this->cedente['endereco']; 93 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 94 | $dadosboleto["cedente"] = $this->cedente['nome']; 95 | 96 | // NÃO ALTERAR! 97 | include("include/funcoes_bradesco.php"); 98 | include("include/layout_bradesco.php"); 99 | ?> 100 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_cef.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto CEF: Elizeu Alcantara | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006" OU informe "" se Contra Apresentacao; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["inicio_nosso_numero"] = "24"; // 24 - Padrão da Caixa Economica Federal 42 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero sem o DV - REGRA: Máximo de 8 caracteres! 43 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento 44 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 45 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 46 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 47 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 48 | 49 | // DADOS DO SEU CLIENTE 50 | $dadosboleto["sacado"] = $this->sacado['nome']; 51 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 52 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 53 | 54 | // INFORMACOES PARA O CLIENTE 55 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 56 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 57 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 58 | 59 | // INSTRUÇÕES PARA O CAIXA 60 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 61 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 62 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 63 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 64 | 65 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 66 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 67 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 68 | $dadosboleto["aceite"] = $this->pedido['aceite']; 69 | $dadosboleto["especie"] = $this->pedido['especie']; 70 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 71 | 72 | 73 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 74 | 75 | 76 | // DADOS DA SUA CONTA - CEF 77 | $agencia = explode('-',$this->cedente['agencia']); 78 | $dadosboleto["agencia"] = $agencia[0]; // Num da agencia, sem digito 79 | $conta = explode('-',$this->cedente['conta']); 80 | $dadosboleto["conta"] = $conta[0]; // Num da conta, sem digito 81 | $dadosboleto["conta_dv"] = $conta[1]; // Digito do Num da conta 82 | 83 | // DADOS PERSONALIZADOS - CEF 84 | $conta_cedente = explode('-',$this->cedente['conta_cedente']); 85 | $dadosboleto["conta_cedente"] = $conta_cedente[0]; // ContaCedente do Cliente, sem digito (Somente Números) 86 | $dadosboleto["conta_cedente_dv"] = $conta_cedente[1]; // Digito da ContaCedente do Cliente 87 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira: pode ser SR (Sem Registro) ou CR (Com Registro) - (Confirmar com gerente qual usar) 88 | 89 | // SEUS DADOS 90 | $dadosboleto["identificacao"] = $this->cedente['nome']; 91 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 92 | $dadosboleto["endereco"] = $this->cedente['endereco']; 93 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 94 | $dadosboleto["cedente"] = $this->cedente['nome']; 95 | 96 | // NÃO ALTERAR! 97 | include("include/funcoes_cef.php"); 98 | include("include/layout_cef.php"); 99 | ?> 100 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_cef_sigcb.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto CEF SIGCB: Davi Nunes Camargo | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | // Composição Nosso Numero - CEF SIGCB 42 | $dadosboleto["nosso_numero1"] = "000"; // tamanho 3 43 | $dadosboleto["nosso_numero_const1"] = "2"; //constanto 1 , 1=registrada , 2=sem registro 44 | $dadosboleto["nosso_numero2"] = "000"; // tamanho 3 45 | $dadosboleto["nosso_numero_const2"] = "4"; //constanto 2 , 4=emitido pelo proprio cliente 46 | $dadosboleto["nosso_numero3"] = "000000019"; // tamanho 9 47 | 48 | 49 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento 50 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 51 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 52 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 53 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 54 | 55 | // DADOS DO SEU CLIENTE 56 | $dadosboleto["sacado"] = $this->sacado['nome']; 57 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 58 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 59 | 60 | // INFORMACOES PARA O CLIENTE 61 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 62 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 63 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 64 | 65 | // INSTRUÇÕES PARA O CAIXA 66 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 67 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 68 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 69 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 70 | 71 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 72 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 73 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 74 | $dadosboleto["aceite"] = $this->pedido['aceite']; 75 | $dadosboleto["especie"] = $this->pedido['especie']; 76 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 77 | 78 | 79 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 80 | 81 | 82 | // DADOS DA SUA CONTA - CEF 83 | $agencia = explode('-',$this->cedente['agencia']); 84 | $dadosboleto["agencia"] = $agencia[0]; // Num da agencia, sem digito 85 | $conta = explode('-',$this->cedente['conta']); 86 | $dadosboleto["conta"] = $conta[0]; // Num da conta, sem digito 87 | $dadosboleto["conta_dv"] = $conta[1]; // Digito do Num da conta 88 | 89 | // DADOS PERSONALIZADOS - CEF 90 | $dadosboleto["conta_cedente"] = $this->cedente['conta_cedente']; // Código Cedente do Cliente, com 6 digitos (Somente Números) 91 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira: pode ser SR (Sem Registro) ou CR (Com Registro) - (Confirmar com gerente qual usar) 92 | 93 | // SEUS DADOS 94 | $dadosboleto["identificacao"] = $this->cedente['nome']; 95 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 96 | $dadosboleto["endereco"] = $this->cedente['endereco']; 97 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 98 | $dadosboleto["cedente"] = $this->cedente['nome']; 99 | 100 | // NÃO ALTERAR! 101 | include("include/funcoes_cef_sigcb.php"); 102 | include("include/layout_cef.php"); 103 | ?> 104 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_nossacaixa.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto NossaCaixa: Keitty Suélen | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["inicio_nosso_numero"] = "99"; // Inicio do Nosso numero -> 99 - Cobrança Direta(Carteira 5) ou 0 - Cobrança Simples(Carteira 1) 42 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero sem o DV - REGRA: Máximo de 7 caracteres! 43 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento 44 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 45 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 46 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 47 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 48 | 49 | // DADOS DO SEU CLIENTE 50 | $dadosboleto["sacado"] = $this->sacado['nome']; 51 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 52 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 53 | 54 | // INFORMACOES PARA O CLIENTE 55 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 56 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 57 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 58 | 59 | // INSTRUÇÕES PARA O CAIXA 60 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 61 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 62 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 63 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 64 | 65 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 66 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 67 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 68 | $dadosboleto["aceite"] = $this->pedido['aceite']; 69 | $dadosboleto["especie"] = $this->pedido['especie']; 70 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 71 | 72 | 73 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 74 | 75 | 76 | // DADOS DA SUA CONTA - NOSSA CAIXA 77 | /*$dadosboleto["agencia"] = "0033"; // Num da agencia, sem digito 78 | $dadosboleto["conta"] = "0001131"; // Num da conta, sem digito 79 | $dadosboleto["conta_dv"] = "1"; // Digito do Num da conta*/ 80 | 81 | // DADOS PERSONALIZADOS - CEF 82 | $agencia = explode('-',$this->cedente['agencia']); 83 | $dadosboleto["agencia"] = $agencia[0]; // Num da agencia, sem digito 84 | $conta_cedente = explode('-',$this->cedente['conta_cedente']); 85 | $dadosboleto["conta_cedente"] = $conta_cedente[0]; // ContaCedente do Cliente, sem digito (Somente 6 digitos) 86 | $dadosboleto["conta_cedente_dv"] = $conta_cedente[1]; // Digito da ContaCedente do Cliente 87 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira -> 5-Cobrança Direta ou 1-Cobrança Simples 88 | $dadosboleto["modalidade_conta"] = "04"; // modalidade da conta 02 posições 89 | 90 | // SEUS DADOS 91 | $dadosboleto["identificacao"] = $this->cedente['nome']; 92 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 93 | $dadosboleto["endereco"] = $this->cedente['endereco']; 94 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 95 | $dadosboleto["cedente"] = $this->cedente['nome']; 96 | 97 | // NÃO ALTERAR! 98 | include("include/funcoes_nossacaixa.php"); 99 | include("include/layout_nossacaixa.php"); 100 | ?> 101 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_cef_sinco.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto CEF SINCO: Carlos Magno / Reinaldo Silva | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["campo_fixo_obrigatorio"] = "1"; // campo fixo obrigatorio - valor = 1 42 | $dadosboleto["inicio_nosso_numero"] = "9"; // Inicio do Nosso numero - obrigatoriamente deve começar com 9; 43 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero sem o DV - REGRA: Máximo de 16 caracteres! (Pode ser um número sequencial do sistema, o cpf ou o cnpj) 44 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento 45 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 46 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 47 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 48 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 49 | 50 | // DADOS DO SEU CLIENTE 51 | $dadosboleto["sacado"] = $this->sacado['nome']; 52 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 53 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 54 | 55 | // INFORMACOES PARA O CLIENTE 56 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 57 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 58 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 59 | 60 | // INSTRUÇÕES PARA O CAIXA 61 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 62 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 63 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 64 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 65 | 66 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 67 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 68 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 69 | $dadosboleto["aceite"] = $this->pedido['aceite']; 70 | $dadosboleto["especie"] = $this->pedido['especie']; 71 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 72 | 73 | 74 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 75 | 76 | 77 | // DADOS DA SUA CONTA - CEF 78 | $agencia = explode('-',$this->cedente['agencia']); 79 | $dadosboleto["agencia"] = $agencia[0]; // Num da agencia, sem digito 80 | $conta = explode('-',$this->cedente['conta']); 81 | $dadosboleto["conta"] = $conta[0]; // Num da conta, sem digito 82 | $dadosboleto["conta_dv"] = $conta[1]; // Digito do Num da conta 83 | 84 | // DADOS PERSONALIZADOS - CEF 85 | $conta_cedente = explode('-',$this->cedente['conta_cedente']); 86 | $dadosboleto["conta_cedente"] = $conta_cedente[0]; // ContaCedente do Cliente, sem digito (Somente Números) 87 | $dadosboleto["conta_cedente_dv"] = $conta_cedente[1]; // Digito da ContaCedente do Cliente 88 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira: pode ser SR (Sem Registro) ou CR (Com Registro) - (Confirmar com gerente qual usar) 89 | 90 | // SEUS DADOS 91 | $dadosboleto["identificacao"] = $this->cedente['nome']; 92 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 93 | $dadosboleto["endereco"] = $this->cedente['endereco']; 94 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 95 | $dadosboleto["cedente"] = $this->cedente['nome']; 96 | 97 | // NÃO ALTERAR! 98 | include("include/funcoes_cef_sinco.php"); 99 | include("include/layout_cef_sinco.php"); 100 | ?> 101 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_sudameris.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Sudameris: Flávio Yutaka Nakamura | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["nosso_numero"] = "3020"; // Nosso numero - REGRA: Máximo de 13 números p/ carteira 57 (Sem registro), e 7 números p/ carteira 20 (Com registro) 42 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Número do pedido ou do documento (A seu critério) 43 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 44 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 45 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 46 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 47 | 48 | // DADOS DO SEU CLIENTE 49 | $dadosboleto["sacado"] = $this->sacado['nome']; 50 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 51 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 52 | 53 | // INFORMACOES PARA O CLIENTE 54 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 55 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 56 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 57 | 58 | // INSTRUÇÕES PARA O CAIXA 59 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 60 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 61 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 62 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 63 | 64 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 65 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 66 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 67 | $dadosboleto["aceite"] = $this->pedido['aceite']; 68 | $dadosboleto["especie"] = $this->pedido['especie']; 69 | 70 | // Espécie do Titulo 71 | /* 72 | DM Duplicata Mercantil 73 | DMI Duplicata Mercantil p/ Indicação 74 | DS Duplicata de Serviço 75 | DSI Duplicata de Serviço p/ Indicação 76 | DR Duplicata Rural 77 | LC Letra de Câmbio 78 | NCC Nota de Crédito Comercial 79 | NCE Nota de Crédito a Exportação 80 | NCI Nota de Crédito Industrial 81 | NCR Nota de Crédito Rural 82 | NP Nota Promissória 83 | NPR Nota Promissória Rural 84 | TM Triplicata Mercantil 85 | TS Triplicata de Serviço 86 | NS Nota de Seguro 87 | RC Recibo 88 | FAT Fatura 89 | ND Nota de Débito 90 | AP Apólice de Seguro 91 | ME Mensalidade Escolar 92 | PC Parcela de Consórcio 93 | */ 94 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 95 | 96 | 97 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 98 | 99 | 100 | // DADOS DA SUA CONTA - SUDAMERIS 101 | $agencia = explode('-',$this->cedente['agencia']); 102 | $dadosboleto["agencia"] = $agencia[0]; // Número da agencia, sem digito 103 | $conta = explode('-',$this->cedente['conta']); 104 | $dadosboleto["conta"] = $conta[0]; // Número da conta, sem digito 105 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Deve possuir convênio - Carteira 57 (Sem Registro) ou 20 (Com Registro) 106 | 107 | // SEUS DADOS 108 | $dadosboleto["identificacao"] = $this->cedente['nome']; 109 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 110 | $dadosboleto["endereco"] = $this->cedente['endereco']; 111 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 112 | $dadosboleto["cedente"] = $this->cedente['nome']; 113 | 114 | // NÃO ALTERAR! 115 | include("include/funcoes_sudameris.php"); 116 | include("include/layout_sudameris.php"); 117 | ?> 118 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_sicredi.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenv Boleto SICREDI: Rafael Azenha Aquini | 27 | // | Marco Antonio Righi | 28 | // | Homologação e ajuste de algumas rotinas. | 29 | // | Marcelo Belinato | 30 | // +----------------------------------------------------------------------+ 31 | 32 | 33 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 34 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 35 | 36 | // DADOS DO BOLETO PARA O SEU CLIENTE 37 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 38 | $taxa_boleto = $this->taxa_boleto; 39 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 40 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 41 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 42 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 43 | 44 | $dadosboleto["inicio_nosso_numero"] = date("y"); // Ano da geração do título ex: 07 para 2007 45 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Nosso numero (máx. 5 digitos) - Numero sequencial de controle. 46 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento 47 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 48 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 49 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 50 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 51 | 52 | // DADOS DO SEU CLIENTE 53 | $dadosboleto["sacado"] = $this->sacado['nome']; 54 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 55 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 56 | 57 | // INFORMACOES PARA O CLIENTE 58 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 59 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 60 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 61 | 62 | // INSTRUÇÕES PARA O CAIXA 63 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 64 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 65 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 66 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 67 | 68 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 69 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 70 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 71 | $dadosboleto["aceite"] = $this->pedido['aceite']; 72 | $dadosboleto["especie"] = $this->pedido['especie']; 73 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 74 | 75 | 76 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 77 | 78 | 79 | // DADOS DA SUA CONTA - SICREDI 80 | $agencia = explode('-',$this->cedente['agencia']); 81 | $dadosboleto["agencia"] = $agencia[0]; // Num da agencia (4 digitos), sem Digito Verificador 82 | $conta = explode('-',$this->cedente['conta']); 83 | $dadosboleto["conta"] = $conta[0]; // Num da conta (5 digitos), sem Digito Verificador 84 | $dadosboleto["conta_dv"] = $conta[1]; // Digito Verificador do Num da conta 85 | 86 | // DADOS PERSONALIZADOS - SICREDI 87 | $dadosboleto["posto"]= "18"; // Código do posto da cooperativa de crédito 88 | $dadosboleto["byte_idt"]= "2"; // Byte de identificação do cedente do bloqueto utilizado para compor o nosso número. 89 | // 1 - Idtf emitente: Cooperativa | 2 a 9 - Idtf emitente: Cedente 90 | $dadosboleto["carteira"] = $this->cedente['carteira']; // Código da Carteira: A (Simples) 91 | 92 | // SEUS DADOS 93 | $dadosboleto["identificacao"] = $this->cedente['nome']; 94 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 95 | $dadosboleto["endereco"] = $this->cedente['endereco']; 96 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 97 | $dadosboleto["cedente"] = $this->cedente['nome']; 98 | 99 | // NÃO ALTERAR! 100 | include("include/funcoes_sicredi.php"); 101 | include("include/layout_sicredi.php"); 102 | ?> 103 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_bb.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Banco do Brasil: Daniel William Schultz / Leandro Maniezo / Rogério Dias Pereira| 27 | // +--------------------------------------------------------------------------------------------------------+ 28 | 29 | 30 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 31 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 32 | 33 | // DADOS DO BOLETO PARA O SEU CLIENTE 34 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 35 | $taxa_boleto = $this->taxa_boleto; 36 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 37 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 38 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 39 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 40 | 41 | $dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; 42 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento 43 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 44 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 45 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 46 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 47 | 48 | // DADOS DO SEU CLIENTE 49 | $dadosboleto["sacado"] = $this->sacado['nome']; 50 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 51 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 52 | 53 | // INFORMACOES PARA O CLIENTE 54 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 55 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 56 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 57 | 58 | // INSTRUÇÕES PARA O CAIXA 59 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 60 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 61 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 62 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 63 | 64 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 65 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 66 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 67 | $dadosboleto["aceite"] = $this->pedido['aceite']; 68 | $dadosboleto["especie"] = $this->pedido['especie']; 69 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 70 | 71 | 72 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 73 | 74 | 75 | // DADOS DA SUA CONTA - BANCO DO BRASIL 76 | $dadosboleto["agencia"] = $this->cedente['agencia']; // Num da agencia, sem digito 77 | $conta = explode('-',$this->cedente['conta']); 78 | $dadosboleto["conta"] = $conta[0]; // Num da conta, sem digito 79 | 80 | // DADOS PERSONALIZADOS - BANCO DO BRASIL 81 | $dadosboleto["convenio"] = "7777777"; // Num do convênio - REGRA: 6 ou 7 ou 8 dígitos 82 | $dadosboleto["contrato"] = "999999"; // Num do seu contrato 83 | $dadosboleto["carteira"] = $this->cedente['carteira']; 84 | $dadosboleto["variacao_carteira"] = '-' . "019"; // Variação da Carteira (opcional) 85 | 86 | // TIPO DO BOLETO 87 | $dadosboleto["formatacao_convenio"] = strlen($dadosboleto["convenio"]); // REGRA: 8 p/ Convênio c/ 8 dígitos, 7 p/ Convênio c/ 7 dígitos, ou 6 se Convênio c/ 6 dígitos 88 | if(strlen($dadosboleto["convenio"]) == 6) 89 | { 90 | if($dadosboleto["nosso_numero"] <= 5){ 91 | $formatacao_nosso_numero = 1; 92 | } 93 | elseif($dadosboleto["nosso_numero"] <= 17) 94 | { 95 | $formatacao_nosso_numero = 2; 96 | } 97 | } 98 | else{ 99 | $formatacao_nosso_numero = ''; 100 | } 101 | $dadosboleto["formatacao_nosso_numero"] = $formatacao_nosso_numero; // REGRA: Usado apenas p/ Convênio c/ 6 dígitos: informe 1 se for NossoNúmero de até 5 dígitos ou 2 para opção de até 17 dígitos 102 | 103 | /* 104 | ################################################# 105 | DESENVOLVIDO PARA CARTEIRA 18 106 | 107 | - Carteira 18 com Convenio de 8 digitos 108 | Nosso número: pode ser até 9 dígitos 109 | 110 | - Carteira 18 com Convenio de 7 digitos 111 | Nosso número: pode ser até 10 dígitos 112 | 113 | - Carteira 18 com Convenio de 6 digitos 114 | Nosso número: 115 | de 1 a 99999 para opção de até 5 dígitos 116 | de 1 a 99999999999999999 para opção de até 17 dígitos 117 | 118 | ################################################# 119 | */ 120 | 121 | 122 | // SEUS DADOS 123 | $dadosboleto["identificacao"] = $this->cedente['nome']; 124 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 125 | $dadosboleto["endereco"] = $this->cedente['endereco']; 126 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 127 | $dadosboleto["cedente"] = $this->cedente['nome']; 128 | 129 | // NÃO ALTERAR! 130 | include("include/funcoes_bb.php"); 131 | include("include/layout_bb.php"); 132 | ?> 133 | -------------------------------------------------------------------------------- /application/libraries/boleto/boleto_bancoob.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto BANCOOB/SICOOB: Marcelo de Souza | 27 | // | Ajuste de algumas rotinas: Anderson Nuernberg | 28 | // +----------------------------------------------------------------------+ 29 | 30 | 31 | // ------------------------- DADOS DINÂMICOS DO SEU CLIENTE PARA A GERAÇÃO DO BOLETO (FIXO OU VIA GET) -------------------- // 32 | // Os valores abaixo podem ser colocados manualmente ou ajustados p/ formulário c/ POST, GET ou de BD (MySql,Postgre,etc) // 33 | 34 | // DADOS DO BOLETO PARA O SEU CLIENTE 35 | $dias_de_prazo_para_pagamento = $this->dias_de_prazo_para_pagamento; 36 | $taxa_boleto = $this->taxa_boleto; 37 | $data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400)); // Prazo de X dias OU informe data: "13/04/2006"; 38 | $valor_cobrado = $this->pedido['quantidade'] * $this->pedido['valor_unitario']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal 39 | $valor_cobrado = str_replace(",", ".",$valor_cobrado); 40 | $valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', ''); 41 | 42 | //$dadosboleto["nosso_numero"] = $this->cedente['nosso_numero']; // Até 8 digitos, sendo os 2 primeiros o ano atual (Ex.: 08 se for 2008) 43 | 44 | 45 | /************************************************************************* 46 | * +++ 47 | *************************************************************************/ 48 | 49 | // http://www.bancoob.com.br/atendimentocobranca/CAS/2_Implanta%C3%A7%C3%A3o_do_Servi%C3%A7o/Sistema_Proprio/DigitoVerificador.htm 50 | // http://blog.inhosting.com.br/calculo-do-nosso-numero-no-boleto-bancoob-sicoob-do-boletophp/ 51 | // http://www.samuca.eti.br 52 | // 53 | // http://www.bancoob.com.br/atendimentocobranca/CAS/2_Implanta%C3%A7%C3%A3o_do_Servi%C3%A7o/Sistema_Proprio/LinhaDigitavelCodicodeBarras.htm 54 | 55 | // Contribuição de script por: 56 | // 57 | // Samuel de L. Hantschel 58 | // Site: www.samuca.eti.br 59 | // 60 | 61 | if(!function_exists('formata_numdoc')) 62 | { 63 | function formata_numdoc($num,$tamanho) 64 | { 65 | while(strlen($num)<$tamanho) 66 | { 67 | $num="0".$num; 68 | } 69 | return $num; 70 | } 71 | } 72 | 73 | $IdDoSeuSistemaAutoIncremento = '2'; // Deve informar um numero sequencial a ser passada a função abaixo, Até 6 dígitos 74 | $agencia = explode('-',$this->cedente['agencia']); 75 | $agencia = $agencia[0]; // Num da agencia, sem digito 76 | $conta = explode('-',$this->cedente['conta']); 77 | $conta = $conta[0]; // Num da conta, sem digito 78 | $convenio = "56235"; //Número do convênio indicado no frontend 79 | 80 | $NossoNumero = formata_numdoc($IdDoSeuSistemaAutoIncremento,7); 81 | $qtde_nosso_numero = strlen($NossoNumero); 82 | $sequencia = formata_numdoc($agencia,4).formata_numdoc(str_replace("-","",$convenio),10).formata_numdoc($NossoNumero,7); 83 | $cont=0; 84 | $calculoDv = ''; 85 | for($num=0;$num<=strlen($sequencia);$num++) 86 | { 87 | $cont++; 88 | if($cont == 1) 89 | { 90 | // constante fixa Sicoob » 3197 91 | $constante = 3; 92 | } 93 | if($cont == 2) 94 | { 95 | $constante = 1; 96 | } 97 | if($cont == 3) 98 | { 99 | $constante = 9; 100 | } 101 | if($cont == 4) 102 | { 103 | $constante = 7; 104 | $cont = 0; 105 | } 106 | $calculoDv = $calculoDv + (substr($sequencia,$num,1) * $constante); 107 | } 108 | $Resto = $calculoDv % 11; 109 | $Dv = 11 - $Resto; 110 | if ($Dv == 0) $Dv = 0; 111 | if ($Dv == 1) $Dv = 0; 112 | if ($Dv > 9) $Dv = 0; 113 | $dadosboleto["nosso_numero"] = $NossoNumero . $Dv; 114 | 115 | /************************************************************************* 116 | * +++ 117 | *************************************************************************/ 118 | 119 | 120 | 121 | $dadosboleto["numero_documento"] = $this->pedido['numero']; // Num do pedido ou do documento 122 | $dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA 123 | $dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto 124 | $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional) 125 | $dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula 126 | 127 | // DADOS DO SEU CLIENTE 128 | $dadosboleto["sacado"] = $this->sacado['nome']; 129 | $dadosboleto["endereco1"] = $this->sacado['endereco']; 130 | $dadosboleto["endereco2"] = "{$this->sacado['cidade']}, {$this->sacado['uf']} - CEP: {$this->sacado['cep']}"; 131 | 132 | // INFORMACOES PARA O CLIENTE 133 | $dadosboleto["demonstrativo1"] = $this->demonstrativo['linha1']; 134 | $dadosboleto["demonstrativo2"] = $this->demonstrativo['linha2'] . number_format($taxa_boleto, 2, ',', ''); 135 | $dadosboleto["demonstrativo3"] = $this->demonstrativo['linha3']; 136 | 137 | // INSTRUÇÕES PARA O CAIXA 138 | $dadosboleto["instrucoes1"] = $this->instrucoes['linha1']; 139 | $dadosboleto["instrucoes2"] = $this->instrucoes['linha2']; 140 | $dadosboleto["instrucoes3"] = $this->instrucoes['linha3']; 141 | $dadosboleto["instrucoes4"] = $this->instrucoes['linha4']; 142 | 143 | // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE 144 | $dadosboleto["quantidade"] = $this->pedido['quantidade']; 145 | $dadosboleto["valor_unitario"] = $this->pedido['valor_unitario']; 146 | $dadosboleto["aceite"] = $this->pedido['aceite']; 147 | $dadosboleto["especie"] = $this->pedido['especie']; 148 | $dadosboleto["especie_doc"] = $this->pedido['especie_doc']; 149 | 150 | 151 | // ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- // 152 | // DADOS ESPECIFICOS DO SICOOB 153 | $dadosboleto["modalidade_cobranca"] = "02"; 154 | $dadosboleto["numero_parcela"] = "901"; 155 | 156 | 157 | // DADOS DA SUA CONTA - BANCO SICOOB 158 | $dadosboleto["agencia"] = $this->cedente['agencia']; // Num da agencia, sem digito 159 | $conta = explode('-',$this->cedente['conta']); 160 | $dadosboleto["conta"] = $conta[0]; // Num da conta, sem digito 161 | 162 | // DADOS PERSONALIZADOS - SICOOB 163 | $dadosboleto["convenio"] = $convenio; // Num do convênio - REGRA: No máximo 7 dígitos 164 | $dadosboleto["carteira"] = $this->cedente['carteira']; 165 | 166 | // SEUS DADOS 167 | $dadosboleto["identificacao"] = $this->cedente['nome']; 168 | $dadosboleto["cpf_cnpj"] = $this->cedente['cpf_cnpj']; 169 | $dadosboleto["endereco"] = $this->cedente['endereco']; 170 | $dadosboleto["cidade_uf"] = "{$this->cedente['cidade']} / {$this->cedente['uf']}"; 171 | $dadosboleto["cedente"] = $this->cedente['nome']; 172 | 173 | // NÃO ALTERAR! 174 | include("include/funcoes_bancoob.php"); 175 | include("include/layout_bancoob.php"); 176 | ?> 177 | -------------------------------------------------------------------------------- /application/libraries/boleto/include/funcoes_sudameris.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Sudameris: Flávio Yutaka Nakamura | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | $codigobanco = "347"; 31 | $codigo_banco_com_dv = geraCodigoBanco($codigobanco); 32 | $nummoeda = "9"; 33 | $fator_vencimento = fator_vencimento($dadosboleto["data_vencimento"]); 34 | 35 | //valor tem 10 digitos, sem virgula 36 | $valor = formata_numero($dadosboleto["valor_boleto"], 10, 0, "valor"); 37 | //agencia é 4 digitos 38 | $agencia = formata_numero($dadosboleto["agencia"], 4, 0); 39 | //conta é 7 digitos 40 | $conta = formata_numero($dadosboleto["conta"], 7, 0); 41 | //nosso número: 13 digitos 42 | $nossonum = formata_numero($dadosboleto["nosso_numero"], 13, 0); 43 | 44 | // Calcula o Digitão da Cobrança 45 | $digitao = modulo_10($nossonum . $agencia . $conta); 46 | if ($digitao == 10) $digitao = 0; 47 | 48 | // 43 numeros para o calculo do digito verificador do codigo de barras 49 | $dv = modulo_11($codigobanco . $nummoeda . $fator_vencimento . $valor . $agencia . $conta . $digitao . $nossonum, 9, 1); 50 | $dv = ($dv == 0 || $dv == 1) ? 1 : 11 - $dv; 51 | 52 | // Dados finais 53 | $dadosboleto["codigo_barras"] = $codigobanco . $nummoeda . $dv . $fator_vencimento . $valor . $agencia . $conta . $digitao . $nossonum; 54 | $dadosboleto["linha_digitavel"] = monta_linha_digitavel($codigobanco . $nummoeda . $agencia . $conta . $digitao . $nossonum . $dv . $fator_vencimento . $valor); 55 | $dadosboleto["agencia_codigo"] = $agencia . '/' . $conta . '/' . $digitao; 56 | $dadosboleto["nosso_numero"] = $nossonum; 57 | $dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv; 58 | 59 | // FUNÇÕES 60 | // Algumas foram retiradas do Projeto PhpBoleto e modificadas para atender as particularidades de cada banco 61 | 62 | function formata_numero($numero,$loop,$insert,$tipo = "geral") { 63 | if ($tipo == "geral") { 64 | $numero = str_replace(",","",$numero); 65 | while(strlen($numero)<$loop){ 66 | $numero = $insert . $numero; 67 | } 68 | } 69 | if ($tipo == "valor") { 70 | /* 71 | retira as virgulas 72 | formata o numero 73 | preenche com zeros 74 | */ 75 | $numero = str_replace(",","",$numero); 76 | while(strlen($numero)<$loop){ 77 | $numero = $insert . $numero; 78 | } 79 | } 80 | if ($tipo == "convenio") { 81 | while(strlen($numero)<$loop){ 82 | $numero = $numero . $insert; 83 | } 84 | } 85 | return $numero; 86 | } 87 | 88 | 89 | function fbarcode($valor, $imagens){ 90 | 91 | $fino = 1 ; 92 | $largo = 3 ; 93 | $altura = 50 ; 94 | 95 | $barcodes[0] = "00110" ; 96 | $barcodes[1] = "10001" ; 97 | $barcodes[2] = "01001" ; 98 | $barcodes[3] = "11000" ; 99 | $barcodes[4] = "00101" ; 100 | $barcodes[5] = "10100" ; 101 | $barcodes[6] = "01100" ; 102 | $barcodes[7] = "00011" ; 103 | $barcodes[8] = "10010" ; 104 | $barcodes[9] = "01010" ; 105 | for($f1=9;$f1>=0;$f1--){ 106 | for($f2=9;$f2>=0;$f2--){ 107 | $f = ($f1 * 10) + $f2 ; 108 | $texto = "" ; 109 | for($i=1;$i<6;$i++){ 110 | $texto .= substr($barcodes[$f1],($i-1),1) . substr($barcodes[$f2],($i-1),1); 111 | } 112 | $barcodes[$f] = $texto; 113 | } 114 | } 115 | 116 | 117 | //Desenho da barra 118 | 119 | 120 | //Guarda inicial 121 | ?>/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0>/b.png width= height= border=0> 0){ 128 | $texto = "0" . $texto; 129 | } 130 | 131 | // Draw dos dados 132 | while (strlen($texto) > 0) { 133 | $i = round(esquerda($texto,2)); 134 | $texto = direita($texto,strlen($texto)-2); 135 | $f = $barcodes[$i]; 136 | for($i=1;$i<11;$i+=2){ 137 | if (substr($f,($i-1),1) == "0") { 138 | $f1 = $fino ; 139 | }else{ 140 | $f1 = $largo ; 141 | } 142 | ?> 143 | src=/p.png width= height= border=0> 151 | src=/b.png width= height= border=0> 158 | src=/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0> 161 | 2) { 184 | $month -= 3; 185 | } else { 186 | $month += 9; 187 | if ($year) { 188 | $year--; 189 | } else { 190 | $year = 99; 191 | $century --; 192 | } 193 | } 194 | return ( floor(( 146097 * $century) / 4 ) + 195 | floor(( 1461 * $year) / 4 ) + 196 | floor(( 153 * $month + 2) / 5 ) + 197 | $day + 1721119); 198 | } 199 | 200 | function modulo_10($num) { 201 | $numtotal10 = 0; 202 | $fator = 2; 203 | 204 | // Separacao dos numeros 205 | for ($i = strlen($num); $i > 0; $i--) { 206 | // pega cada numero isoladamente 207 | $numeros[$i] = substr($num,$i-1,1); 208 | // Efetua multiplicacao do numero pelo (falor 10) 209 | // 2002-07-07 01:33:34 Macete para adequar ao Mod10 do Itaú 210 | $temp = $numeros[$i] * $fator; 211 | $temp0=0; 212 | foreach (preg_split('//',$temp,-1,PREG_SPLIT_NO_EMPTY) as $k=>$v){ $temp0+=$v; } 213 | $parcial10[$i] = $temp0; //$numeros[$i] * $fator; 214 | // monta sequencia para soma dos digitos no (modulo 10) 215 | $numtotal10 += $parcial10[$i]; 216 | if ($fator == 2) { 217 | $fator = 1; 218 | } else { 219 | $fator = 2; // intercala fator de multiplicacao (modulo 10) 220 | } 221 | } 222 | 223 | // várias linhas removidas, vide função original 224 | // Calculo do modulo 10 225 | $resto = $numtotal10 % 10; 226 | $digito = 10 - $resto; 227 | if ($resto == 0) { 228 | $digito = 0; 229 | } 230 | 231 | return $digito; 232 | 233 | } 234 | 235 | function modulo_11($num, $base=9, $r=0) { 236 | /** 237 | * Autor: 238 | * Pablo Costa 239 | * 240 | * Função: 241 | * Calculo do Modulo 11 para geracao do digito verificador 242 | * de boletos bancarios conforme documentos obtidos 243 | * da Febraban - www.febraban.org.br 244 | * 245 | * Entrada: 246 | * $num: string numérica para a qual se deseja calcularo digito verificador; 247 | * $base: valor maximo de multiplicacao [2-$base] 248 | * $r: quando especificado um devolve somente o resto 249 | * 250 | * Saída: 251 | * Retorna o Digito verificador. 252 | * 253 | * Observações: 254 | * - Script desenvolvido sem nenhum reaproveitamento de código pré existente. 255 | * - Assume-se que a verificação do formato das variáveis de entrada é feita antes da execução deste script. 256 | */ 257 | 258 | $soma = 0; 259 | $fator = 2; 260 | 261 | /* Separacao dos numeros */ 262 | for ($i = strlen($num); $i > 0; $i--) { 263 | // pega cada numero isoladamente 264 | $numeros[$i] = substr($num,$i-1,1); 265 | // Efetua multiplicacao do numero pelo falor 266 | $parcial[$i] = $numeros[$i] * $fator; 267 | // Soma dos digitos 268 | $soma += $parcial[$i]; 269 | if ($fator == $base) { 270 | // restaura fator de multiplicacao para 2 271 | $fator = 1; 272 | } 273 | $fator++; 274 | } 275 | 276 | /* Calculo do modulo 11 */ 277 | if ($r == 0) { 278 | $soma *= 10; 279 | $digito = $soma % 11; 280 | if ($digito == 10) { 281 | $digito = 0; 282 | } 283 | return $digito; 284 | } elseif ($r == 1){ 285 | $resto = $soma % 11; 286 | return $resto; 287 | } 288 | } 289 | 290 | function geraCodigoBanco($numero) { 291 | $parte1 = substr($numero, 0, 3); 292 | $parte2 = modulo_11($parte1); 293 | return $parte1 . "-" . $parte2; 294 | } 295 | 296 | function monta_linha_digitavel($dados) { 297 | // Padrão: Sudameris 298 | // POSIÇÃO CONTEÚDO 299 | // 1 a 3 Número do banco 300 | // 4 Código da Moeda 301 | // 5 a 8 Agência 302 | // 9 a 15 Conta 303 | // 16 Digitão 304 | // 17 a 29 Nosso número 305 | // 30 Dígito do código de barra 306 | // 31 a 34 Fator de vencimento 307 | // 35 a 44 Valor 308 | 309 | if (preg_match('/^([0-9]{5})([0-9]{4})([0-9]{5})([0-9]{5})([0-9]{5})([0-9]{5})([0-9]{1})([0-9]{4})([0-9]{10})$/', $dados, $bloco)) 310 | { 311 | $dv1 = modulo_10($bloco[1] . $bloco[2]); 312 | if ($dv1 == 10) $dv1 = 0; 313 | 314 | $dv2 = modulo_10($bloco[3] . $bloco[4]); 315 | if ($dv2 == 10) $dv2 = 0; 316 | 317 | $dv3 = modulo_10($bloco[5] . $bloco[6]); 318 | if ($dv3 == 10) $dv3 = 0; 319 | 320 | return ($bloco[1] . '.' . $bloco[2] . $dv1 . ' ' . $bloco[3] . '.' . $bloco[4] . $dv2 . ' ' . $bloco[5] . '.' . $bloco[6] . $dv3 . ' ' . $bloco[7] . ' ' . $bloco[8] . $bloco[9]); 321 | } 322 | else 323 | return ''; 324 | } 325 | ?> 326 | -------------------------------------------------------------------------------- /application/libraries/boleto/include/funcoes_itau.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Itaú: Glauber Portella | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | $codigobanco = "341"; 31 | $codigo_banco_com_dv = geraCodigoBanco($codigobanco); 32 | $nummoeda = "9"; 33 | $fator_vencimento = fator_vencimento($dadosboleto["data_vencimento"]); 34 | 35 | //valor tem 10 digitos, sem virgula 36 | $valor = formata_numero($dadosboleto["valor_boleto"],10,0,"valor"); 37 | //agencia é 4 digitos 38 | $agencia = formata_numero($dadosboleto["agencia"],4,0); 39 | //conta é 5 digitos + 1 do dv 40 | $conta = formata_numero($dadosboleto["conta"],5,0); 41 | $conta_dv = formata_numero($dadosboleto["conta_dv"],1,0); 42 | //carteira 175 43 | $carteira = $dadosboleto["carteira"]; 44 | //nosso_numero no maximo 8 digitos 45 | $nnum = formata_numero($dadosboleto["nosso_numero"],8,0); 46 | 47 | $codigo_barras = $codigobanco.$nummoeda.$fator_vencimento.$valor.$carteira.$nnum.modulo_10($agencia.$conta.$carteira.$nnum).$agencia.$conta.modulo_10($agencia.$conta).'000'; 48 | // 43 numeros para o calculo do digito verificador 49 | $dv = digitoVerificador_barra($codigo_barras); 50 | // Numero para o codigo de barras com 44 digitos 51 | $linha = substr($codigo_barras,0,4).$dv.substr($codigo_barras,4,43); 52 | 53 | $nossonumero = $carteira.'/'.$nnum.'-'.modulo_10($agencia.$conta.$carteira.$nnum); 54 | $agencia_codigo = $agencia." / ". $conta."-".modulo_10($agencia.$conta); 55 | 56 | $dadosboleto["codigo_barras"] = $linha; 57 | $dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha); // verificar 58 | $dadosboleto["agencia_codigo"] = $agencia_codigo ; 59 | $dadosboleto["nosso_numero"] = $nossonumero; 60 | $dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv; 61 | 62 | 63 | // FUNÇÕES 64 | // Algumas foram retiradas do Projeto PhpBoleto e modificadas para atender as particularidades de cada banco 65 | 66 | function digitoVerificador_barra($numero) { 67 | $resto2 = modulo_11($numero, 9, 1); 68 | $digito = 11 - $resto2; 69 | if ($digito == 0 || $digito == 1 || $digito == 10 || $digito == 11) { 70 | $dv = 1; 71 | } else { 72 | $dv = $digito; 73 | } 74 | return $dv; 75 | } 76 | 77 | function formata_numero($numero,$loop,$insert,$tipo = "geral") { 78 | if ($tipo == "geral") { 79 | $numero = str_replace(",","",$numero); 80 | while(strlen($numero)<$loop){ 81 | $numero = $insert . $numero; 82 | } 83 | } 84 | if ($tipo == "valor") { 85 | /* 86 | retira as virgulas 87 | formata o numero 88 | preenche com zeros 89 | */ 90 | $numero = str_replace(",","",$numero); 91 | while(strlen($numero)<$loop){ 92 | $numero = $insert . $numero; 93 | } 94 | } 95 | if ($tipo == "convenio") { 96 | while(strlen($numero)<$loop){ 97 | $numero = $numero . $insert; 98 | } 99 | } 100 | return $numero; 101 | } 102 | 103 | 104 | function fbarcode($valor, $imagens){ 105 | 106 | $fino = 1 ; 107 | $largo = 3 ; 108 | $altura = 50 ; 109 | 110 | $barcodes[0] = "00110" ; 111 | $barcodes[1] = "10001" ; 112 | $barcodes[2] = "01001" ; 113 | $barcodes[3] = "11000" ; 114 | $barcodes[4] = "00101" ; 115 | $barcodes[5] = "10100" ; 116 | $barcodes[6] = "01100" ; 117 | $barcodes[7] = "00011" ; 118 | $barcodes[8] = "10010" ; 119 | $barcodes[9] = "01010" ; 120 | for($f1=9;$f1>=0;$f1--){ 121 | for($f2=9;$f2>=0;$f2--){ 122 | $f = ($f1 * 10) + $f2 ; 123 | $texto = "" ; 124 | for($i=1;$i<6;$i++){ 125 | $texto .= substr($barcodes[$f1],($i-1),1) . substr($barcodes[$f2],($i-1),1); 126 | } 127 | $barcodes[$f] = $texto; 128 | } 129 | } 130 | 131 | 132 | //Desenho da barra 133 | 134 | 135 | //Guarda inicial 136 | ?>/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0>/b.png width= height= border=0> 0){ 143 | $texto = "0" . $texto; 144 | } 145 | 146 | // Draw dos dados 147 | while (strlen($texto) > 0) { 148 | $i = round(esquerda($texto,2)); 149 | $texto = direita($texto,strlen($texto)-2); 150 | $f = $barcodes[$i]; 151 | for($i=1;$i<11;$i+=2){ 152 | if (substr($f,($i-1),1) == "0") { 153 | $f1 = $fino ; 154 | }else{ 155 | $f1 = $largo ; 156 | } 157 | ?> 158 | src=/p.png width= height= border=0> 166 | src=/b.png width= height= border=0> 173 | src=/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0> 176 | 2) { 199 | $month -= 3; 200 | } else { 201 | $month += 9; 202 | if ($year) { 203 | $year--; 204 | } else { 205 | $year = 99; 206 | $century --; 207 | } 208 | } 209 | return ( floor(( 146097 * $century) / 4 ) + 210 | floor(( 1461 * $year) / 4 ) + 211 | floor(( 153 * $month + 2) / 5 ) + 212 | $day + 1721119); 213 | } 214 | 215 | function modulo_10($num) { 216 | $numtotal10 = 0; 217 | $fator = 2; 218 | 219 | // Separacao dos numeros 220 | for ($i = strlen($num); $i > 0; $i--) { 221 | // pega cada numero isoladamente 222 | $numeros[$i] = substr($num,$i-1,1); 223 | // Efetua multiplicacao do numero pelo (falor 10) 224 | // 2002-07-07 01:33:34 Macete para adequar ao Mod10 do Itaú 225 | $temp = $numeros[$i] * $fator; 226 | $temp0=0; 227 | foreach (preg_split('//',$temp,-1,PREG_SPLIT_NO_EMPTY) as $k=>$v){ $temp0+=$v; } 228 | $parcial10[$i] = $temp0; //$numeros[$i] * $fator; 229 | // monta sequencia para soma dos digitos no (modulo 10) 230 | $numtotal10 += $parcial10[$i]; 231 | if ($fator == 2) { 232 | $fator = 1; 233 | } else { 234 | $fator = 2; // intercala fator de multiplicacao (modulo 10) 235 | } 236 | } 237 | 238 | // várias linhas removidas, vide função original 239 | // Calculo do modulo 10 240 | $resto = $numtotal10 % 10; 241 | $digito = 10 - $resto; 242 | if ($resto == 0) { 243 | $digito = 0; 244 | } 245 | 246 | return $digito; 247 | 248 | } 249 | 250 | function modulo_11($num, $base=9, $r=0) { 251 | /** 252 | * Autor: 253 | * Pablo Costa 254 | * 255 | * Função: 256 | * Calculo do Modulo 11 para geracao do digito verificador 257 | * de boletos bancarios conforme documentos obtidos 258 | * da Febraban - www.febraban.org.br 259 | * 260 | * Entrada: 261 | * $num: string numérica para a qual se deseja calcularo digito verificador; 262 | * $base: valor maximo de multiplicacao [2-$base] 263 | * $r: quando especificado um devolve somente o resto 264 | * 265 | * Saída: 266 | * Retorna o Digito verificador. 267 | * 268 | * Observações: 269 | * - Script desenvolvido sem nenhum reaproveitamento de código pré existente. 270 | * - Assume-se que a verificação do formato das variáveis de entrada é feita antes da execução deste script. 271 | */ 272 | 273 | $soma = 0; 274 | $fator = 2; 275 | 276 | /* Separacao dos numeros */ 277 | for ($i = strlen($num); $i > 0; $i--) { 278 | // pega cada numero isoladamente 279 | $numeros[$i] = substr($num,$i-1,1); 280 | // Efetua multiplicacao do numero pelo falor 281 | $parcial[$i] = $numeros[$i] * $fator; 282 | // Soma dos digitos 283 | $soma += $parcial[$i]; 284 | if ($fator == $base) { 285 | // restaura fator de multiplicacao para 2 286 | $fator = 1; 287 | } 288 | $fator++; 289 | } 290 | 291 | /* Calculo do modulo 11 */ 292 | if ($r == 0) { 293 | $soma *= 10; 294 | $digito = $soma % 11; 295 | if ($digito == 10) { 296 | $digito = 0; 297 | } 298 | return $digito; 299 | } elseif ($r == 1){ 300 | $resto = $soma % 11; 301 | return $resto; 302 | } 303 | } 304 | 305 | // Alterada por Glauber Portella para especificação do Itaú 306 | function monta_linha_digitavel($codigo) { 307 | // campo 1 308 | $banco = substr($codigo,0,3); 309 | $moeda = substr($codigo,3,1); 310 | $ccc = substr($codigo,19,3); 311 | $ddnnum = substr($codigo,22,2); 312 | $dv1 = modulo_10($banco.$moeda.$ccc.$ddnnum); 313 | // campo 2 314 | $resnnum = substr($codigo,24,6); 315 | $dac1 = substr($codigo,30,1);//modulo_10($agencia.$conta.$carteira.$nnum); 316 | $dddag = substr($codigo,31,3); 317 | $dv2 = modulo_10($resnnum.$dac1.$dddag); 318 | // campo 3 319 | $resag = substr($codigo,34,1); 320 | $contadac = substr($codigo,35,6); //substr($codigo,35,5).modulo_10(substr($codigo,35,5)); 321 | $zeros = substr($codigo,41,3); 322 | $dv3 = modulo_10($resag.$contadac.$zeros); 323 | // campo 4 324 | $dv4 = substr($codigo,4,1); 325 | // campo 5 326 | $fator = substr($codigo,5,4); 327 | $valor = substr($codigo,9,10); 328 | 329 | $campo1 = substr($banco.$moeda.$ccc.$ddnnum.$dv1,0,5) . '.' . substr($banco.$moeda.$ccc.$ddnnum.$dv1,5,5); 330 | $campo2 = substr($resnnum.$dac1.$dddag.$dv2,0,5) . '.' . substr($resnnum.$dac1.$dddag.$dv2,5,6); 331 | $campo3 = substr($resag.$contadac.$zeros.$dv3,0,5) . '.' . substr($resag.$contadac.$zeros.$dv3,5,6); 332 | $campo4 = $dv4; 333 | $campo5 = $fator.$valor; 334 | 335 | return "$campo1 $campo2 $campo3 $campo4 $campo5"; 336 | } 337 | 338 | function geraCodigoBanco($numero) { 339 | $parte1 = substr($numero, 0, 3); 340 | $parte2 = modulo_11($parte1); 341 | return $parte1 . "-" . $parte2; 342 | } 343 | 344 | ?> -------------------------------------------------------------------------------- /application/libraries/boleto/include/funcoes_real.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Real: Juan Basso | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | $codigobanco = "356"; 31 | $codigo_banco_com_dv = geraCodigoBanco($codigobanco); 32 | $nummoeda = "9"; 33 | $fator_vencimento = fator_vencimento($dadosboleto["data_vencimento"]); 34 | 35 | //valor tem 10 digitos, sem virgula 36 | $valor = formata_numero($dadosboleto["valor_boleto"],10,0,"valor"); 37 | //agencia é 4 digitos 38 | $agencia = formata_numero($dadosboleto["agencia"],4,0); 39 | //conta é 7 digitos 40 | $conta = formata_numero($dadosboleto["conta"],7,0); 41 | //carteira é 2 caracteres 42 | $carteira = $dadosboleto["carteira"]; 43 | 44 | //nosso número com maximo de 13 digitos 45 | $nossonumero = formata_numero($dadosboleto["nosso_numero"],13,0); 46 | 47 | // Digitao - Digito de Cobranca do banco Real 48 | $digitao_cobranca = modulo_10("$nossonumero$agencia$conta"); 49 | 50 | $linha = "$codigobanco$nummoeda" . "0$fator_vencimento$valor$agencia$conta$digitao_cobranca$nossonumero"; 51 | dvBarra($linha); 52 | 53 | $agencia_codigo = $agencia."/". $conta ."/". $digitao_cobranca; 54 | 55 | 56 | $dadosboleto["codigo_barras"] = $linha; 57 | $dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha); 58 | $dadosboleto["agencia_codigo"] = $agencia_codigo; 59 | $dadosboleto["nosso_numero"] = $nossonumero; 60 | $dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv; 61 | 62 | 63 | // FUNÇÕES 64 | // Algumas foram retiradas do Projeto PhpBoleto e modificadas para atender as particularidades de cada banco 65 | 66 | 67 | function dvBarra(&$numero) { 68 | $pesos = "43290876543298765432987654329876543298765432"; 69 | if (strlen($numero) == 44) { 70 | $soma = 0; 71 | for ($i = 0; $i < strlen($numero); $i++) { 72 | $soma += $numero[$i] * $pesos[$i]; 73 | } 74 | $num_temp = 11 - ($soma % 11); 75 | if ($num_temp >= 10) { 76 | $num_temp = 1; 77 | } 78 | $numero[4] = $num_temp; 79 | } 80 | } 81 | 82 | 83 | function formata_numero($numero,$loop,$insert,$tipo = "geral") { 84 | if ($tipo == "geral") { 85 | $numero = str_replace(",","",$numero); 86 | while(strlen($numero)<$loop){ 87 | $numero = $insert . $numero; 88 | } 89 | } 90 | if ($tipo == "valor") { 91 | /* 92 | retira as virgulas 93 | formata o numero 94 | preenche com zeros 95 | */ 96 | $numero = str_replace(",","",$numero); 97 | while(strlen($numero)<$loop){ 98 | $numero = $insert . $numero; 99 | } 100 | } 101 | if ($tipo == "convenio") { 102 | while(strlen($numero)<$loop){ 103 | $numero = $numero . $insert; 104 | } 105 | } 106 | return $numero; 107 | } 108 | 109 | 110 | function fbarcode($valor, $imagens){ 111 | 112 | $fino = 1 ; 113 | $largo = 3 ; 114 | $altura = 50 ; 115 | 116 | $barcodes[0] = "00110" ; 117 | $barcodes[1] = "10001" ; 118 | $barcodes[2] = "01001" ; 119 | $barcodes[3] = "11000" ; 120 | $barcodes[4] = "00101" ; 121 | $barcodes[5] = "10100" ; 122 | $barcodes[6] = "01100" ; 123 | $barcodes[7] = "00011" ; 124 | $barcodes[8] = "10010" ; 125 | $barcodes[9] = "01010" ; 126 | for($f1=9;$f1>=0;$f1--){ 127 | for($f2=9;$f2>=0;$f2--){ 128 | $f = ($f1 * 10) + $f2 ; 129 | $texto = "" ; 130 | for($i=1;$i<6;$i++){ 131 | $texto .= substr($barcodes[$f1],($i-1),1) . substr($barcodes[$f2],($i-1),1); 132 | } 133 | $barcodes[$f] = $texto; 134 | } 135 | } 136 | 137 | 138 | //Desenho da barra 139 | 140 | 141 | //Guarda inicial 142 | ?>/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0>/b.png width= height= border=0> 0){ 149 | $texto = "0" . $texto; 150 | } 151 | 152 | // Draw dos dados 153 | while (strlen($texto) > 0) { 154 | $i = round(esquerda($texto,2)); 155 | $texto = direita($texto,strlen($texto)-2); 156 | $f = $barcodes[$i]; 157 | for($i=1;$i<11;$i+=2){ 158 | if (substr($f,($i-1),1) == "0") { 159 | $f1 = $fino ; 160 | }else{ 161 | $f1 = $largo ; 162 | } 163 | ?> 164 | src=/p.png width= height= border=0> 172 | src=/b.png width= height= border=0> 179 | src=/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0> 182 | 2) { 205 | $month -= 3; 206 | } else { 207 | $month += 9; 208 | if ($year) { 209 | $year--; 210 | } else { 211 | $year = 99; 212 | $century --; 213 | } 214 | } 215 | return ( floor(( 146097 * $century) / 4 ) + 216 | floor(( 1461 * $year) / 4 ) + 217 | floor(( 153 * $month + 2) / 5 ) + 218 | $day + 1721119); 219 | } 220 | 221 | function modulo_10($num) { 222 | $numtotal10 = 0; 223 | $fator = 2; 224 | 225 | // Separacao dos numeros 226 | for ($i = strlen($num); $i > 0; $i--) { 227 | // pega cada numero isoladamente 228 | $numeros[$i] = substr($num,$i-1,1); 229 | // Efetua multiplicacao do numero pelo (falor 10) 230 | // 2002-07-07 01:33:34 Macete para adequar ao Mod10 do Itaú 231 | $temp = $numeros[$i] * $fator; 232 | $temp0=0; 233 | foreach (preg_split('//',$temp,-1,PREG_SPLIT_NO_EMPTY) as $k=>$v){ $temp0+=$v; } 234 | $parcial10[$i] = $temp0; //$numeros[$i] * $fator; 235 | // monta sequencia para soma dos digitos no (modulo 10) 236 | $numtotal10 += $parcial10[$i]; 237 | if ($fator == 2) { 238 | $fator = 1; 239 | } else { 240 | $fator = 2; // intercala fator de multiplicacao (modulo 10) 241 | } 242 | } 243 | 244 | // várias linhas removidas, vide função original 245 | // Calculo do modulo 10 246 | $resto = $numtotal10 % 10; 247 | $digito = 10 - $resto; 248 | if ($resto == 0) { 249 | $digito = 0; 250 | } 251 | 252 | return $digito; 253 | 254 | } 255 | 256 | function modulo_11($num, $base=9, $r=0) { 257 | /** 258 | * Autor: 259 | * Pablo Costa 260 | * 261 | * Função: 262 | * Calculo do Modulo 11 para geracao do digito verificador 263 | * de boletos bancarios conforme documentos obtidos 264 | * da Febraban - www.febraban.org.br 265 | * 266 | * Entrada: 267 | * $num: string numérica para a qual se deseja calcularo digito verificador; 268 | * $base: valor maximo de multiplicacao [2-$base] 269 | * $r: quando especificado um devolve somente o resto 270 | * 271 | * Saída: 272 | * Retorna o Digito verificador. 273 | * 274 | * Observações: 275 | * - Script desenvolvido sem nenhum reaproveitamento de código pré existente. 276 | * - Assume-se que a verificação do formato das variáveis de entrada é feita antes da execução deste script. 277 | */ 278 | 279 | $soma = 0; 280 | $fator = 2; 281 | 282 | /* Separacao dos numeros */ 283 | for ($i = strlen($num); $i > 0; $i--) { 284 | // pega cada numero isoladamente 285 | $numeros[$i] = substr($num,$i-1,1); 286 | // Efetua multiplicacao do numero pelo falor 287 | $parcial[$i] = $numeros[$i] * $fator; 288 | // Soma dos digitos 289 | $soma += $parcial[$i]; 290 | if ($fator == $base) { 291 | // restaura fator de multiplicacao para 2 292 | $fator = 1; 293 | } 294 | $fator++; 295 | } 296 | 297 | /* Calculo do modulo 11 */ 298 | if ($r == 0) { 299 | $soma *= 10; 300 | $digito = $soma % 11; 301 | if ($digito == 10) { 302 | $digito = 0; 303 | } 304 | return $digito; 305 | } elseif ($r == 1){ 306 | $resto = $soma % 11; 307 | return $resto; 308 | } 309 | } 310 | 311 | function monta_linha_digitavel($codigo) { 312 | 313 | // Posição Conteúdo 314 | // 1 a 3 Número do banco 315 | // 4 Código da Moeda - 9 para Real 316 | // 5 Digito verificador do Código de Barras 317 | // 6 a 9 Fator de Vencimento 318 | // 10 a 19 Valor (8 inteiros e 2 decimais) 319 | // 20 a 44 Campo Livre definido por cada banco (25 caracteres) 320 | 321 | // 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições 322 | // do campo livre e DV (modulo10) deste campo 323 | $p1 = substr($codigo, 0, 4); 324 | $p2 = substr($codigo, 19, 5); 325 | $p3 = modulo_10("$p1$p2"); 326 | $p4 = "$p1$p2$p3"; 327 | $p5 = substr($p4, 0, 5); 328 | $p6 = substr($p4, 5); 329 | $campo1 = "$p5.$p6"; 330 | 331 | // 2. Campo - composto pelas posiçoes 6 a 15 do campo livre 332 | // e livre e DV (modulo10) deste campo 333 | $p1 = substr($codigo, 24, 10); 334 | $p2 = modulo_10($p1); 335 | $p3 = "$p1$p2"; 336 | $p4 = substr($p3, 0, 5); 337 | $p5 = substr($p3, 5); 338 | $campo2 = "$p4.$p5"; 339 | 340 | // 3. Campo composto pelas posicoes 16 a 25 do campo livre 341 | // e livre e DV (modulo10) deste campo 342 | $p1 = substr($codigo, 34, 10); 343 | $p2 = modulo_10($p1); 344 | $p3 = "$p1$p2"; 345 | $p4 = substr($p3, 0, 5); 346 | $p5 = substr($p3, 5); 347 | $campo3 = "$p4.$p5"; 348 | 349 | // 4. Campo - digito verificador do codigo de barras 350 | $campo4 = substr($codigo, 4, 1); 351 | 352 | // 5. Campo composto pelo fator vencimento e valor nominal do documento, sem 353 | // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se 354 | // tratar de valor zerado, a representacao deve ser 000 (tres zeros). 355 | $p1 = substr($codigo, 5, 4); 356 | $p2 = substr($codigo, 9, 10); 357 | $campo5 = "$p1$p2"; 358 | 359 | return "$campo1 $campo2 $campo3 $campo4 $campo5"; 360 | } 361 | 362 | function geraCodigoBanco($numero) { 363 | $parte1 = substr($numero, 0, 3); 364 | $parte2 = modulo_11($parte1); 365 | return $parte1 . "-" . $parte2; 366 | } 367 | 368 | ?> 369 | -------------------------------------------------------------------------------- /application/libraries/boleto/include/funcoes_bancoob.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto BANCOOB/SICOOB: Marcelo de Souza | 27 | // | Ajuste de algumas rotinas: Anderson Nuernberg | 28 | // +----------------------------------------------------------------------+ 29 | 30 | 31 | $codigobanco = "756"; 32 | $codigo_banco_com_dv = geraCodigoBanco($codigobanco); 33 | $nummoeda = "9"; 34 | $fator_vencimento = fator_vencimento($dadosboleto["data_vencimento"]); 35 | 36 | //valor tem 10 digitos, sem virgula 37 | $valor = formata_numero($dadosboleto["valor_boleto"],10,0,"valor"); 38 | //agencia é sempre 4 digitos 39 | $agencia = formata_numero($dadosboleto["agencia"],4,0); 40 | //conta é sempre 8 digitos 41 | $conta = formata_numero($dadosboleto["conta"],8,0); 42 | 43 | $carteira = $dadosboleto["carteira"]; 44 | 45 | //Zeros: usado quando convenio de 7 digitos 46 | $livre_zeros='000000'; 47 | $modalidadecobranca = $dadosboleto["modalidade_cobranca"]; 48 | $numeroparcela = $dadosboleto["numero_parcela"]; 49 | 50 | $convenio = formata_numero($dadosboleto["convenio"],7,0); 51 | 52 | //agencia e conta 53 | $agencia_codigo = $agencia ." / ". $convenio; 54 | 55 | // Nosso número de até 8 dígitos - 2 digitos para o ano e outros 6 numeros sequencias por ano 56 | // deve ser gerado no programa boleto_bancoob.php 57 | $nossonumero = formata_numero($dadosboleto["nosso_numero"],8,0); 58 | $campolivre = "$modalidadecobranca$convenio$nossonumero$numeroparcela"; 59 | 60 | $dv=modulo_11("$codigobanco$nummoeda$fator_vencimento$valor$carteira$agencia$campolivre"); 61 | $linha="$codigobanco$nummoeda$dv$fator_vencimento$valor$carteira$agencia$campolivre"; 62 | 63 | $dadosboleto["codigo_barras"] = $linha; 64 | $dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha); 65 | $dadosboleto["agencia_codigo"] = $agencia_codigo; 66 | $dadosboleto["nosso_numero"] = $nossonumero; 67 | $dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv; 68 | 69 | 70 | // FUNÇÕES 71 | // Algumas foram retiradas do Projeto PhpBoleto e modificadas para atender as particularidades de cada banco 72 | 73 | function formata_numero($numero,$loop,$insert,$tipo = "geral") { 74 | if ($tipo == "geral") { 75 | $numero = str_replace(",","",$numero); 76 | while(strlen($numero)<$loop){ 77 | $numero = $insert . $numero; 78 | } 79 | } 80 | if ($tipo == "valor") { 81 | /* 82 | retira as virgulas 83 | formata o numero 84 | preenche com zeros 85 | */ 86 | $numero = str_replace(",","",$numero); 87 | while(strlen($numero)<$loop){ 88 | $numero = $insert . $numero; 89 | } 90 | } 91 | if ($tipo == "convenio") { 92 | while(strlen($numero)<$loop){ 93 | $numero = $numero . $insert; 94 | } 95 | } 96 | return $numero; 97 | } 98 | 99 | 100 | function fbarcode($valor, $imagens){ 101 | 102 | $fino = 1 ; 103 | $largo = 3 ; 104 | $altura = 50 ; 105 | 106 | $barcodes[0] = "00110" ; 107 | $barcodes[1] = "10001" ; 108 | $barcodes[2] = "01001" ; 109 | $barcodes[3] = "11000" ; 110 | $barcodes[4] = "00101" ; 111 | $barcodes[5] = "10100" ; 112 | $barcodes[6] = "01100" ; 113 | $barcodes[7] = "00011" ; 114 | $barcodes[8] = "10010" ; 115 | $barcodes[9] = "01010" ; 116 | for($f1=9;$f1>=0;$f1--){ 117 | for($f2=9;$f2>=0;$f2--){ 118 | $f = ($f1 * 10) + $f2 ; 119 | $texto = "" ; 120 | for($i=1;$i<6;$i++){ 121 | $texto .= substr($barcodes[$f1],($i-1),1) . substr($barcodes[$f2],($i-1),1); 122 | } 123 | $barcodes[$f] = $texto; 124 | } 125 | } 126 | 127 | 128 | //Desenho da barra 129 | 130 | 131 | //Guarda inicial 132 | ?>/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0>/b.png width= height= border=0> 0){ 139 | $texto = "0" . $texto; 140 | } 141 | 142 | // Draw dos dados 143 | while (strlen($texto) > 0) { 144 | $i = round(esquerda($texto,2)); 145 | $texto = direita($texto,strlen($texto)-2); 146 | $f = $barcodes[$i]; 147 | for($i=1;$i<11;$i+=2){ 148 | if (substr($f,($i-1),1) == "0") { 149 | $f1 = $fino ; 150 | }else{ 151 | $f1 = $largo ; 152 | } 153 | ?> 154 | src=/p.png width= height= border=0> 162 | src=/b.png width= height= border=0> 169 | src=/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0> 172 | 2) { 195 | $month -= 3; 196 | } else { 197 | $month += 9; 198 | if ($year) { 199 | $year--; 200 | } else { 201 | $year = 99; 202 | $century --; 203 | } 204 | } 205 | return ( floor(( 146097 * $century) / 4 ) + 206 | floor(( 1461 * $year) / 4 ) + 207 | floor(( 153 * $month + 2) / 5 ) + 208 | $day + 1721119); 209 | } 210 | 211 | /* 212 | ################################################# 213 | FUNÇÃO DO MÓDULO 10 RETIRADA DO PHPBOLETO 214 | 215 | ESTA FUNÇÃO PEGA O DÍGITO VERIFICADOR DO PRIMEIRO, SEGUNDO 216 | E TERCEIRO CAMPOS DA LINHA DIGITÁVEL 217 | ################################################# 218 | */ 219 | function modulo_10($num) { 220 | $numtotal10 = 0; 221 | $fator = 2; 222 | 223 | for ($i = strlen($num); $i > 0; $i--) { 224 | $numeros[$i] = substr($num,$i-1,1); 225 | $parcial10[$i] = $numeros[$i] * $fator; 226 | $numtotal10 .= $parcial10[$i]; 227 | if ($fator == 2) { 228 | $fator = 1; 229 | } 230 | else { 231 | $fator = 2; 232 | } 233 | } 234 | 235 | $soma = 0; 236 | for ($i = strlen($numtotal10); $i > 0; $i--) { 237 | $numeros[$i] = substr($numtotal10,$i-1,1); 238 | $soma += $numeros[$i]; 239 | } 240 | $resto = $soma % 10; 241 | $digito = 10 - $resto; 242 | if ($resto == 0) { 243 | $digito = 0; 244 | } 245 | 246 | return $digito; 247 | } 248 | 249 | /* 250 | ################################################# 251 | FUNÇÃO DO MÓDULO 11 RETIRADA DO PHPBOLETO 252 | 253 | MODIFIQUEI ALGUMAS COISAS... 254 | 255 | ESTA FUNÇÃO PEGA O DÍGITO VERIFICADOR: 256 | 257 | NOSSONUMERO 258 | AGENCIA 259 | CONTA 260 | CAMPO 4 DA LINHA DIGITÁVEL 261 | ################################################# 262 | */ 263 | 264 | function modulo_11($num, $base=9, $r=0) { 265 | $soma = 0; 266 | $fator = 2; 267 | for ($i = strlen($num); $i > 0; $i--) { 268 | $numeros[$i] = substr($num,$i-1,1); 269 | $parcial[$i] = $numeros[$i] * $fator; 270 | $soma += $parcial[$i]; 271 | if ($fator == $base) { 272 | $fator = 1; 273 | } 274 | $fator++; 275 | } 276 | if ($r == 0) { 277 | $soma *= 10; 278 | $digito = $soma % 11; 279 | 280 | //corrigido 281 | if ($digito == 10) { 282 | $digito = "X"; 283 | } 284 | 285 | /* 286 | alterado por mim, Daniel Schultz 287 | 288 | Vamos explicar: 289 | 290 | O módulo 11 só gera os digitos verificadores do nossonumero, 291 | agencia, conta e digito verificador com codigo de barras (aquele que fica sozinho e triste na linha digitável) 292 | só que é foi um rolo...pq ele nao podia resultar em 0, e o pessoal do phpboleto se esqueceu disso... 293 | 294 | No BB, os dígitos verificadores podem ser X ou 0 (zero) para agencia, conta e nosso numero, 295 | mas nunca pode ser X ou 0 (zero) para a linha digitável, justamente por ser totalmente numérica. 296 | 297 | Quando passamos os dados para a função, fica assim: 298 | 299 | Agencia = sempre 4 digitos 300 | Conta = até 8 dígitos 301 | Nosso número = de 1 a 17 digitos 302 | 303 | A unica variável que passa 17 digitos é a da linha digitada, justamente por ter 43 caracteres 304 | 305 | Entao vamos definir ai embaixo o seguinte... 306 | 307 | se (strlen($num) == 43) { não deixar dar digito X ou 0 } 308 | */ 309 | 310 | if (strlen($num) == "43") { 311 | //então estamos checando a linha digitável 312 | if ($digito == "0" or $digito == "X" or $digito > 9) { 313 | $digito = 1; 314 | } 315 | } 316 | return $digito; 317 | } 318 | elseif ($r == 1){ 319 | $resto = $soma % 11; 320 | return $resto; 321 | } 322 | } 323 | 324 | /* 325 | Montagem da linha digitável - Função tirada do PHPBoleto 326 | Não mudei nada 327 | */ 328 | function monta_linha_digitavel($linha) { 329 | // Posição Conteúdo 330 | // 1 a 3 Número do banco 331 | // 4 Código da Moeda - 9 para Real 332 | // 5 Digito verificador do Código de Barras 333 | // 6 a 19 Valor (12 inteiros e 2 decimais) 334 | // 20 a 44 Campo Livre definido por cada banco 335 | 336 | // 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições 337 | // do campo livre e DV (modulo10) deste campo 338 | $p1 = substr($linha, 0, 4); 339 | $p2 = substr($linha, 19, 5); 340 | $p3 = modulo_10("$p1$p2"); 341 | $p4 = "$p1$p2$p3"; 342 | $p5 = substr($p4, 0, 5); 343 | $p6 = substr($p4, 5); 344 | $campo1 = "$p5.$p6"; 345 | 346 | // 2. Campo - composto pelas posiçoes 6 a 15 do campo livre 347 | // e livre e DV (modulo10) deste campo 348 | $p1 = substr($linha, 24, 10); 349 | $p2 = modulo_10($p1); 350 | $p3 = "$p1$p2"; 351 | $p4 = substr($p3, 0, 5); 352 | $p5 = substr($p3, 5); 353 | $campo2 = "$p4.$p5"; 354 | 355 | // 3. Campo composto pelas posicoes 16 a 25 do campo livre 356 | // e livre e DV (modulo10) deste campo 357 | $p1 = substr($linha, 34, 10); 358 | $p2 = modulo_10($p1); 359 | $p3 = "$p1$p2"; 360 | $p4 = substr($p3, 0, 5); 361 | $p5 = substr($p3, 5); 362 | $campo3 = "$p4.$p5"; 363 | 364 | // 4. Campo - digito verificador do codigo de barras 365 | $campo4 = substr($linha, 4, 1); 366 | 367 | // 5. Campo composto pelo valor nominal pelo valor nominal do documento, sem 368 | // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se 369 | // tratar de valor zerado, a representacao deve ser 000 (tres zeros). 370 | $campo5 = substr($linha, 5, 14); 371 | 372 | return "$campo1 $campo2 $campo3 $campo4 $campo5"; 373 | } 374 | 375 | function geraCodigoBanco($numero) { 376 | $parte1 = substr($numero, 0, 3); 377 | $parte2 = modulo_11($parte1); 378 | return $parte1 . "-" . $parte2; 379 | } 380 | 381 | ?> 382 | -------------------------------------------------------------------------------- /application/libraries/boleto/include/funcoes_unibanco.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Unibanco: Elizeu Alcantara | 27 | // | Colaborações: Humberto Coelho Oliveira | 28 | // +----------------------------------------------------------------------+ 29 | 30 | 31 | $codigobanco = "409"; 32 | $codigo_banco_com_dv = geraCodigoBanco($codigobanco); 33 | $nummoeda = "9"; 34 | $fator_vencimento = fator_vencimento($dadosboleto["data_vencimento"]); 35 | $cvt = "5"; 36 | $zero = "00"; 37 | 38 | //valor tem 10 digitos, sem virgula 39 | $valor = formata_numero($dadosboleto["valor_boleto"],10,0,"valor"); 40 | //agencia é 4 digitos 41 | $agencia = formata_numero($dadosboleto["agencia"],4,0); 42 | //conta é 6 digitos + 1 do dv 43 | $conta = formata_numero($dadosboleto["conta"],6,0); 44 | //dv da conta 45 | $conta_dv = formata_numero($dadosboleto["conta_dv"],1,0); 46 | //carteira é 2 digitos 47 | $carteira = $dadosboleto["carteira"]; 48 | 49 | //nosso número (sem dv) é 14 digitos 50 | $nnum = formata_numero($dadosboleto["nosso_numero"],14,0); 51 | //dv do nosso número 52 | $dv_nosso_numero = modulo_11($nnum); 53 | $nossonumero_dv = "$nnum$dv_nosso_numero"; 54 | 55 | //codigo_cliente é 6 digitos + 1 do dv 56 | $codigo_cliente = formata_numero($dadosboleto["codigo_cliente"],7,0); 57 | 58 | // 43 numeros para o calculo do digito verificador 59 | $dv = digitoVerificador("$codigobanco$nummoeda$fator_vencimento$valor$cvt$codigo_cliente$zero$nossonumero_dv"); 60 | // Numero para o codigo de barras com 44 digitos 61 | $linha = "$codigobanco$nummoeda$dv$fator_vencimento$valor$cvt$codigo_cliente$zero$nossonumero_dv"; //ok 62 | 63 | $nossonumero = substr($nossonumero_dv,0,14).'-'.substr($nossonumero_dv,14,1); 64 | $agencia_codigo = $agencia." / ". $conta ."-". $conta_dv; 65 | 66 | $dadosboleto["codigo_barras"] = $linha; 67 | $dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha); 68 | $dadosboleto["agencia_codigo"] = $agencia_codigo; 69 | $dadosboleto["nosso_numero"] = $nossonumero; 70 | $dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv; 71 | 72 | 73 | // FUNÇÕES 74 | // Algumas foram retiradas do Projeto PhpBoleto e modificadas para atender as particularidades de cada banco 75 | 76 | function digitoVerificador($numero) { 77 | $digito = modulo_11($numero); 78 | if (in_array((int)$digito,array(0,1,10))) { 79 | $digito = 1; 80 | } 81 | return $digito; 82 | } 83 | 84 | function formata_numero($numero,$loop,$insert,$tipo = "geral") { 85 | if ($tipo == "geral") { 86 | $numero = str_replace(",","",$numero); 87 | while(strlen($numero)<$loop){ 88 | $numero = $insert . $numero; 89 | } 90 | } 91 | if ($tipo == "valor") { 92 | /* 93 | retira as virgulas 94 | formata o numero 95 | preenche com zeros 96 | */ 97 | $numero = str_replace(",","",$numero); 98 | while(strlen($numero)<$loop){ 99 | $numero = $insert . $numero; 100 | } 101 | } 102 | if ($tipo == "convenio") { 103 | while(strlen($numero)<$loop){ 104 | $numero = $numero . $insert; 105 | } 106 | } 107 | return $numero; 108 | } 109 | 110 | 111 | function fbarcode($valor, $imagens){ 112 | 113 | $fino = 1 ; 114 | $largo = 3 ; 115 | $altura = 50 ; 116 | 117 | $barcodes[0] = "00110" ; 118 | $barcodes[1] = "10001" ; 119 | $barcodes[2] = "01001" ; 120 | $barcodes[3] = "11000" ; 121 | $barcodes[4] = "00101" ; 122 | $barcodes[5] = "10100" ; 123 | $barcodes[6] = "01100" ; 124 | $barcodes[7] = "00011" ; 125 | $barcodes[8] = "10010" ; 126 | $barcodes[9] = "01010" ; 127 | for($f1=9;$f1>=0;$f1--){ 128 | for($f2=9;$f2>=0;$f2--){ 129 | $f = ($f1 * 10) + $f2 ; 130 | $texto = "" ; 131 | for($i=1;$i<6;$i++){ 132 | $texto .= substr($barcodes[$f1],($i-1),1) . substr($barcodes[$f2],($i-1),1); 133 | } 134 | $barcodes[$f] = $texto; 135 | } 136 | } 137 | 138 | 139 | //Desenho da barra 140 | 141 | 142 | //Guarda inicial 143 | ?>/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0>/b.png width= height= border=0> 0){ 150 | $texto = "0" . $texto; 151 | } 152 | 153 | // Draw dos dados 154 | while (strlen($texto) > 0) { 155 | $i = round(esquerda($texto,2)); 156 | $texto = direita($texto,strlen($texto)-2); 157 | $f = $barcodes[$i]; 158 | for($i=1;$i<11;$i+=2){ 159 | if (substr($f,($i-1),1) == "0") { 160 | $f1 = $fino ; 161 | }else{ 162 | $f1 = $largo ; 163 | } 164 | ?> 165 | src=/p.png width= height= border=0> 173 | src=/b.png width= height= border=0> 180 | src=/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0> 183 | 2) { 206 | $month -= 3; 207 | } else { 208 | $month += 9; 209 | if ($year) { 210 | $year--; 211 | } else { 212 | $year = 99; 213 | $century --; 214 | } 215 | } 216 | return ( floor(( 146097 * $century) / 4 ) + 217 | floor(( 1461 * $year) / 4 ) + 218 | floor(( 153 * $month + 2) / 5 ) + 219 | $day + 1721119); 220 | } 221 | 222 | function modulo_10($num) { 223 | $numtotal10 = 0; 224 | $fator = 2; 225 | 226 | // Separacao dos numeros 227 | for ($i = strlen($num); $i > 0; $i--) { 228 | // pega cada numero isoladamente 229 | $numeros[$i] = substr($num,$i-1,1); 230 | // Efetua multiplicacao do numero pelo (falor 10) 231 | // 2002-07-07 01:33:34 Macete para adequar ao Mod10 do Itaú 232 | $temp = $numeros[$i] * $fator; 233 | $temp0=0; 234 | foreach (preg_split('//',$temp,-1,PREG_SPLIT_NO_EMPTY) as $k=>$v){ $temp0+=$v; } 235 | $parcial10[$i] = $temp0; //$numeros[$i] * $fator; 236 | // monta sequencia para soma dos digitos no (modulo 10) 237 | $numtotal10 += $parcial10[$i]; 238 | if ($fator == 2) { 239 | $fator = 1; 240 | } else { 241 | $fator = 2; // intercala fator de multiplicacao (modulo 10) 242 | } 243 | } 244 | 245 | // várias linhas removidas, vide função original 246 | // Calculo do modulo 10 247 | $resto = $numtotal10 % 10; 248 | $digito = 10 - $resto; 249 | if ($resto == 0) { 250 | $digito = 0; 251 | } 252 | 253 | return $digito; 254 | 255 | } 256 | 257 | function modulo_11($num, $base=9, $r=0) { 258 | /** 259 | * Autor: 260 | * Pablo Costa 261 | * 262 | * Função: 263 | * Calculo do Modulo 11 para geracao do digito verificador 264 | * de boletos bancarios conforme documentos obtidos 265 | * da Febraban - www.febraban.org.br 266 | * 267 | * Entrada: 268 | * $num: string numérica para a qual se deseja calcularo digito verificador; 269 | * $base: valor maximo de multiplicacao [2-$base] 270 | * $r: quando especificado um devolve somente o resto 271 | * 272 | * Saída: 273 | * Retorna o Digito verificador. 274 | * 275 | * Observações: 276 | * - Script desenvolvido sem nenhum reaproveitamento de código pré existente. 277 | * - Assume-se que a verificação do formato das variáveis de entrada é feita antes da execução deste script. 278 | */ 279 | 280 | $soma = 0; 281 | $fator = 2; 282 | 283 | /* Separacao dos numeros */ 284 | for ($i = strlen($num); $i > 0; $i--) { 285 | // pega cada numero isoladamente 286 | $numeros[$i] = substr($num,$i-1,1); 287 | // Efetua multiplicacao do numero pelo falor 288 | $parcial[$i] = $numeros[$i] * $fator; 289 | // Soma dos digitos 290 | $soma += $parcial[$i]; 291 | if ($fator == $base) { 292 | // restaura fator de multiplicacao para 2 293 | $fator = 1; 294 | } 295 | $fator++; 296 | } 297 | 298 | /* Calculo do modulo 11 */ 299 | if ($r == 0) { 300 | $soma *= 10; 301 | $digito = $soma % 11; 302 | if ($digito == 10) { 303 | $digito = 0; 304 | } 305 | return $digito; 306 | } elseif ($r == 1){ 307 | $resto = $soma % 11; 308 | return $resto; 309 | } 310 | } 311 | 312 | function monta_linha_digitavel($codigo) { 313 | 314 | $banco = substr($codigo,0,3); 315 | $moeda = substr($codigo,3,1); 316 | $k = substr($codigo,4,1); 317 | $fator = substr($codigo,5,4); 318 | $valor = substr($codigo,9,10); 319 | $cvt = substr($codigo,19,1); 320 | $codigo_cliente = substr($codigo,20,7); 321 | $zero = substr($codigo,27,2); 322 | $nossonumero_dv = substr($codigo,29,15); 323 | 324 | $p1 = $banco.$moeda.$cvt.substr($codigo_cliente,0,4); 325 | $dv_1 = modulo_10($p1); 326 | $campo1 = substr($p1,0,5).'.'.substr($p1,-4).$dv_1; 327 | 328 | $p12 = substr($codigo_cliente,4,3).$zero.substr($nossonumero_dv,0,5); 329 | $dv_2 = modulo_10($p12); 330 | $campo2 = substr($p12,0,5).'.'.substr($p12,-5).$dv_2; 331 | 332 | $p13 = substr($nossonumero_dv,5,10); 333 | $dv_3 = modulo_10($p13); 334 | $campo3 = substr($p13,0,5).'.'.substr($p13,-5).$dv_3; 335 | 336 | $campo4 = $k; 337 | 338 | // 5. Campo composto pelo valor nominal pelo valor nominal do documento, sem 339 | // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se 340 | // tratar de valor zerado, a representacao deve ser 000 (tres zeros). 341 | $campo5 = $fator.$valor; 342 | 343 | return "$campo1 $campo2 $campo3 $campo4 $campo5"; 344 | } 345 | 346 | function geraCodigoBanco($numero) { 347 | $parte1 = substr($numero, 0, 3); 348 | $parte2 = modulo_11($parte1); 349 | return $parte1 . "-" . $parte2; 350 | } 351 | 352 | ?> -------------------------------------------------------------------------------- /application/libraries/boleto/include/funcoes_cef_sinco.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto CEF SINCO: Carlos Magno / Reinaldo Silva | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | $codigobanco = "104"; 31 | $codigo_banco_com_dv = geraCodigoBanco($codigobanco); 32 | $nummoeda = "9"; 33 | $fator_vencimento = fator_vencimento($dadosboleto["data_vencimento"]); 34 | 35 | //valor tem 10 digitos, sem virgula 36 | $valor = formata_numero($dadosboleto["valor_boleto"],10,0,"valor"); 37 | //agencia é 4 digitos 38 | $agencia = formata_numero($dadosboleto["agencia"],4,0); 39 | //conta é 5 digitos 40 | $conta = formata_numero($dadosboleto["conta"],5,0); 41 | //dv da conta 42 | $conta_dv = formata_numero($dadosboleto["conta_dv"],1,0); 43 | //carteira é 2 caracteres 44 | $carteira = $dadosboleto["carteira"]; 45 | 46 | //nosso número (sem dv) é 17 digitos 47 | $nnum = $dadosboleto["inicio_nosso_numero"] . formata_numero($dadosboleto["nosso_numero"],17,0); 48 | //dv do nosso número 49 | $dv_nosso_numero = digitoVerificador_nossonumero($nnum); 50 | $nossonumero_dv ="$nnum$dv_nosso_numero"; 51 | 52 | //conta cedente (sem dv) é 6 digitos 53 | $conta_cedente = formata_numero($dadosboleto["conta_cedente"],6,0); 54 | //dv da conta cedente 55 | $conta_cedente_dv = formata_numero($dadosboleto["conta_cedente_dv"],1,0); 56 | 57 | $ag_contacedente = $agencia . $conta_cedente; 58 | $fixo = $dadosboleto["campo_fixo_obrigatorio"]; 59 | $campo_livre = "$fixo$conta_cedente$nnum"; 60 | 61 | // 43 numeros para o calculo do digito verificador do codigo de barras 62 | $dv = digitoVerificador_barra("$codigobanco$nummoeda$fator_vencimento$valor$campo_livre", 9, 0); 63 | // Numero para o codigo de barras com 44 digitos 64 | $linha = "$codigobanco$nummoeda$dv$fator_vencimento$valor$campo_livre"; 65 | 66 | $nossonumero = substr($nossonumero_dv,0,18).'-'.substr($nossonumero_dv,18,1); 67 | $agencia_codigo = $agencia." / ". $conta_cedente ."-". $conta_cedente_dv; 68 | 69 | 70 | $dadosboleto["codigo_barras"] = $linha; 71 | $dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha); 72 | $dadosboleto["agencia_codigo"] = $agencia_codigo; 73 | $dadosboleto["nosso_numero"] = $nossonumero; 74 | $dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv; 75 | 76 | function digitoVerificador_nossonumero($numero) { 77 | $resto2 = modulo_11($numero, 9, 1); 78 | $digito = 11 - $resto2; 79 | if ($digito == 10 || $digito == 11) { 80 | $dv = 0; 81 | } else { 82 | $dv = $digito; 83 | } 84 | return $dv; 85 | } 86 | 87 | 88 | function digitoVerificador_barra($numero) { 89 | $resto2 = modulo_11($numero, 9, 1); 90 | if ($resto2 == 0 || $resto2 == 1 || $resto2 == 10) { 91 | $dv = 1; 92 | } else { 93 | $dv = 11 - $resto2; 94 | } 95 | return $dv; 96 | } 97 | 98 | 99 | // FUNÇÕES 100 | // Algumas foram retiradas do Projeto PhpBoleto e modificadas para atender as particularidades de cada banco 101 | 102 | function formata_numero($numero,$loop,$insert,$tipo = "geral") { 103 | if ($tipo == "geral") { 104 | $numero = str_replace(",","",$numero); 105 | while(strlen($numero)<$loop){ 106 | $numero = $insert . $numero; 107 | } 108 | } 109 | if ($tipo == "valor") { 110 | /* 111 | retira as virgulas 112 | formata o numero 113 | preenche com zeros 114 | */ 115 | $numero = str_replace(",","",$numero); 116 | while(strlen($numero)<$loop){ 117 | $numero = $insert . $numero; 118 | } 119 | } 120 | if ($tipo == "convenio") { 121 | while(strlen($numero)<$loop){ 122 | $numero = $numero . $insert; 123 | } 124 | } 125 | return $numero; 126 | } 127 | 128 | 129 | function fbarcode($valor, $imagens){ 130 | 131 | $fino = 1 ; 132 | $largo = 3 ; 133 | $altura = 50 ; 134 | 135 | $barcodes[0] = "00110" ; 136 | $barcodes[1] = "10001" ; 137 | $barcodes[2] = "01001" ; 138 | $barcodes[3] = "11000" ; 139 | $barcodes[4] = "00101" ; 140 | $barcodes[5] = "10100" ; 141 | $barcodes[6] = "01100" ; 142 | $barcodes[7] = "00011" ; 143 | $barcodes[8] = "10010" ; 144 | $barcodes[9] = "01010" ; 145 | for($f1=9;$f1>=0;$f1--){ 146 | for($f2=9;$f2>=0;$f2--){ 147 | $f = ($f1 * 10) + $f2 ; 148 | $texto = "" ; 149 | for($i=1;$i<6;$i++){ 150 | $texto .= substr($barcodes[$f1],($i-1),1) . substr($barcodes[$f2],($i-1),1); 151 | } 152 | $barcodes[$f] = $texto; 153 | } 154 | } 155 | 156 | 157 | //Desenho da barra 158 | 159 | 160 | //Guarda inicial 161 | ?>/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0>/b.png width= height= border=0> 0){ 168 | $texto = "0" . $texto; 169 | } 170 | 171 | // Draw dos dados 172 | while (strlen($texto) > 0) { 173 | $i = round(esquerda($texto,2)); 174 | $texto = direita($texto,strlen($texto)-2); 175 | $f = $barcodes[$i]; 176 | for($i=1;$i<11;$i+=2){ 177 | if (substr($f,($i-1),1) == "0") { 178 | $f1 = $fino ; 179 | }else{ 180 | $f1 = $largo ; 181 | } 182 | ?> 183 | src=/p.png width= height= border=0> 191 | src=/b.png width= height= border=0> 198 | src=/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0> 201 | 2) { 224 | $month -= 3; 225 | } else { 226 | $month += 9; 227 | if ($year) { 228 | $year--; 229 | } else { 230 | $year = 99; 231 | $century --; 232 | } 233 | } 234 | return ( floor(( 146097 * $century) / 4 ) + 235 | floor(( 1461 * $year) / 4 ) + 236 | floor(( 153 * $month + 2) / 5 ) + 237 | $day + 1721119); 238 | } 239 | 240 | function modulo_10($num) { 241 | $numtotal10 = 0; 242 | $fator = 2; 243 | 244 | // Separacao dos numeros 245 | for ($i = strlen($num); $i > 0; $i--) { 246 | // pega cada numero isoladamente 247 | $numeros[$i] = substr($num,$i-1,1); 248 | // Efetua multiplicacao do numero pelo (falor 10) 249 | // 2002-07-07 01:33:34 Macete para adequar ao Mod10 do Itaú 250 | $temp = $numeros[$i] * $fator; 251 | $temp0=0; 252 | foreach (preg_split('//',$temp,-1,PREG_SPLIT_NO_EMPTY) as $k=>$v){ $temp0+=$v; } 253 | $parcial10[$i] = $temp0; //$numeros[$i] * $fator; 254 | // monta sequencia para soma dos digitos no (modulo 10) 255 | $numtotal10 += $parcial10[$i]; 256 | if ($fator == 2) { 257 | $fator = 1; 258 | } else { 259 | $fator = 2; // intercala fator de multiplicacao (modulo 10) 260 | } 261 | } 262 | 263 | // várias linhas removidas, vide função original 264 | // Calculo do modulo 10 265 | $resto = $numtotal10 % 10; 266 | $digito = 10 - $resto; 267 | if ($resto == 0) { 268 | $digito = 0; 269 | } 270 | 271 | return $digito; 272 | 273 | } 274 | 275 | function modulo_11($num, $base=9, $r=0) { 276 | /** 277 | * Autor: 278 | * Pablo Costa 279 | * 280 | * Função: 281 | * Calculo do Modulo 11 para geracao do digito verificador 282 | * de boletos bancarios conforme documentos obtidos 283 | * da Febraban - www.febraban.org.br 284 | * 285 | * Entrada: 286 | * $num: string numérica para a qual se deseja calcularo digito verificador; 287 | * $base: valor maximo de multiplicacao [2-$base] 288 | * $r: quando especificado um devolve somente o resto 289 | * 290 | * Saída: 291 | * Retorna o Digito verificador. 292 | * 293 | * Observações: 294 | * - Script desenvolvido sem nenhum reaproveitamento de código pré existente. 295 | * - Assume-se que a verificação do formato das variáveis de entrada é feita antes da execução deste script. 296 | */ 297 | 298 | $soma = 0; 299 | $fator = 2; 300 | 301 | /* Separacao dos numeros */ 302 | for ($i = strlen($num); $i > 0; $i--) { 303 | // pega cada numero isoladamente 304 | $numeros[$i] = substr($num,$i-1,1); 305 | // Efetua multiplicacao do numero pelo falor 306 | $parcial[$i] = $numeros[$i] * $fator; 307 | // Soma dos digitos 308 | $soma += $parcial[$i]; 309 | if ($fator == $base) { 310 | // restaura fator de multiplicacao para 2 311 | $fator = 1; 312 | } 313 | $fator++; 314 | } 315 | 316 | /* Calculo do modulo 11 */ 317 | if ($r == 0) { 318 | $soma *= 10; 319 | $digito = $soma % 11; 320 | if ($digito == 10) { 321 | $digito = 0; 322 | } 323 | return $digito; 324 | } elseif ($r == 1){ 325 | $resto = $soma % 11; 326 | return $resto; 327 | } 328 | } 329 | 330 | function monta_linha_digitavel($codigo) { 331 | 332 | // Posição Conteúdo 333 | // 1 a 3 Número do banco 334 | // 4 Código da Moeda - 9 para Real 335 | // 5 Digito verificador do Código de Barras 336 | // 6 a 9 Fator de Vencimento 337 | // 10 a 19 Valor (8 inteiros e 2 decimais) 338 | // 20 a 44 Campo Livre definido por cada banco (25 caracteres) 339 | 340 | // 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições 341 | // do campo livre e DV (modulo10) deste campo 342 | $p1 = substr($codigo, 0, 4); 343 | $p2 = substr($codigo, 19, 5); 344 | $p3 = modulo_10("$p1$p2"); 345 | $p4 = "$p1$p2$p3"; 346 | $p5 = substr($p4, 0, 5); 347 | $p6 = substr($p4, 5); 348 | $campo1 = "$p5.$p6"; 349 | 350 | // 2. Campo - composto pelas posiçoes 6 a 15 do campo livre 351 | // e livre e DV (modulo10) deste campo 352 | $p1 = substr($codigo, 24, 10); 353 | $p2 = modulo_10($p1); 354 | $p3 = "$p1$p2"; 355 | $p4 = substr($p3, 0, 5); 356 | $p5 = substr($p3, 5); 357 | $campo2 = "$p4.$p5"; 358 | 359 | // 3. Campo composto pelas posicoes 16 a 25 do campo livre 360 | // e livre e DV (modulo10) deste campo 361 | $p1 = substr($codigo, 34, 10); 362 | $p2 = modulo_10($p1); 363 | $p3 = "$p1$p2"; 364 | $p4 = substr($p3, 0, 5); 365 | $p5 = substr($p3, 5); 366 | $campo3 = "$p4.$p5"; 367 | 368 | // 4. Campo - digito verificador do codigo de barras 369 | $campo4 = substr($codigo, 4, 1); 370 | 371 | // 5. Campo composto pelo fator vencimento e valor nominal do documento, sem 372 | // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se 373 | // tratar de valor zerado, a representacao deve ser 000 (tres zeros). 374 | $p1 = substr($codigo, 5, 4); 375 | $p2 = substr($codigo, 9, 10); 376 | $campo5 = "$p1$p2"; 377 | 378 | return "$campo1 $campo2 $campo3 $campo4 $campo5"; 379 | } 380 | 381 | function geraCodigoBanco($numero) { 382 | $parte1 = substr($numero, 0, 3); 383 | $parte2 = modulo_11($parte1); 384 | return $parte1 . "-" . $parte2; 385 | } 386 | 387 | ?> 388 | -------------------------------------------------------------------------------- /application/libraries/boleto/include/funcoes_bradesco.php: -------------------------------------------------------------------------------- 1 | | 26 | // | Desenvolvimento Boleto Bradesco: Ramon Soares | 27 | // +----------------------------------------------------------------------+ 28 | 29 | 30 | $codigobanco = "237"; 31 | $codigo_banco_com_dv = geraCodigoBanco($codigobanco); 32 | $nummoeda = "9"; 33 | $fator_vencimento = fator_vencimento($dadosboleto["data_vencimento"]); 34 | 35 | //valor tem 10 digitos, sem virgula 36 | $valor = formata_numero($dadosboleto["valor_boleto"],10,0,"valor"); 37 | //agencia é 4 digitos 38 | $agencia = formata_numero($dadosboleto["agencia"],4,0); 39 | //conta é 6 digitos 40 | $conta = formata_numero($dadosboleto["conta"],6,0); 41 | //dv da conta 42 | $conta_dv = formata_numero($dadosboleto["conta_dv"],1,0); 43 | //carteira é 2 caracteres 44 | $carteira = $dadosboleto["carteira"]; 45 | 46 | //nosso número (sem dv) é 11 digitos 47 | $nnum = formata_numero($dadosboleto["carteira"],2,0).formata_numero($dadosboleto["nosso_numero"],11,0); 48 | //dv do nosso número 49 | $dv_nosso_numero = digitoVerificador_nossonumero($nnum); 50 | 51 | //conta cedente (sem dv) é 7 digitos 52 | $conta_cedente = formata_numero($dadosboleto["conta_cedente"],7,0); 53 | //dv da conta cedente 54 | $conta_cedente_dv = formata_numero($dadosboleto["conta_cedente_dv"],1,0); 55 | 56 | //$ag_contacedente = $agencia . $conta_cedente; 57 | 58 | // 43 numeros para o calculo do digito verificador do codigo de barras 59 | $dv = digitoVerificador_barra("$codigobanco$nummoeda$fator_vencimento$valor$agencia$nnum$conta_cedente".'0', 9, 0); 60 | // Numero para o codigo de barras com 44 digitos 61 | $linha = "$codigobanco$nummoeda$dv$fator_vencimento$valor$agencia$nnum$conta_cedente"."0"; 62 | 63 | $nossonumero = substr($nnum,0,2).'/'.substr($nnum,2).'-'.$dv_nosso_numero; 64 | $agencia_codigo = $agencia."-".$dadosboleto["agencia_dv"]." / ". $conta_cedente ."-". $conta_cedente_dv; 65 | 66 | 67 | $dadosboleto["codigo_barras"] = $linha; 68 | $dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha); 69 | $dadosboleto["agencia_codigo"] = $agencia_codigo; 70 | $dadosboleto["nosso_numero"] = $nossonumero; 71 | $dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv; 72 | 73 | function digitoVerificador_nossonumero($numero) { 74 | $resto2 = modulo_11($numero, 7, 1); 75 | $digito = 11 - $resto2; 76 | if ($digito == 10) { 77 | $dv = "P"; 78 | } elseif($digito == 11) { 79 | $dv = 0; 80 | } else { 81 | $dv = $digito; 82 | } 83 | return $dv; 84 | } 85 | 86 | 87 | function digitoVerificador_barra($numero) { 88 | $resto2 = modulo_11($numero, 9, 1); 89 | if ($resto2 == 0 || $resto2 == 1 || $resto2 == 10) { 90 | $dv = 1; 91 | } else { 92 | $dv = 11 - $resto2; 93 | } 94 | return $dv; 95 | } 96 | 97 | 98 | // FUNÇÕES 99 | // Algumas foram retiradas do Projeto PhpBoleto e modificadas para atender as particularidades de cada banco 100 | 101 | function formata_numero($numero,$loop,$insert,$tipo = "geral") { 102 | if ($tipo == "geral") { 103 | $numero = str_replace(",","",$numero); 104 | while(strlen($numero)<$loop){ 105 | $numero = $insert . $numero; 106 | } 107 | } 108 | if ($tipo == "valor") { 109 | /* 110 | retira as virgulas 111 | formata o numero 112 | preenche com zeros 113 | */ 114 | $numero = str_replace(",","",$numero); 115 | while(strlen($numero)<$loop){ 116 | $numero = $insert . $numero; 117 | } 118 | } 119 | if ($tipo == "convenio") { 120 | while(strlen($numero)<$loop){ 121 | $numero = $numero . $insert; 122 | } 123 | } 124 | return $numero; 125 | } 126 | 127 | 128 | function fbarcode($valor, $imagens){ 129 | 130 | $fino = 1 ; 131 | $largo = 3 ; 132 | $altura = 50 ; 133 | 134 | $barcodes[0] = "00110" ; 135 | $barcodes[1] = "10001" ; 136 | $barcodes[2] = "01001" ; 137 | $barcodes[3] = "11000" ; 138 | $barcodes[4] = "00101" ; 139 | $barcodes[5] = "10100" ; 140 | $barcodes[6] = "01100" ; 141 | $barcodes[7] = "00011" ; 142 | $barcodes[8] = "10010" ; 143 | $barcodes[9] = "01010" ; 144 | for($f1=9;$f1>=0;$f1--){ 145 | for($f2=9;$f2>=0;$f2--){ 146 | $f = ($f1 * 10) + $f2 ; 147 | $texto = "" ; 148 | for($i=1;$i<6;$i++){ 149 | $texto .= substr($barcodes[$f1],($i-1),1) . substr($barcodes[$f2],($i-1),1); 150 | } 151 | $barcodes[$f] = $texto; 152 | } 153 | } 154 | 155 | 156 | //Desenho da barra 157 | 158 | 159 | //Guarda inicial 160 | ?>/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0>/b.png width= height= border=0> 0){ 167 | $texto = "0" . $texto; 168 | } 169 | 170 | // Draw dos dados 171 | while (strlen($texto) > 0) { 172 | $i = round(esquerda($texto,2)); 173 | $texto = direita($texto,strlen($texto)-2); 174 | $f = $barcodes[$i]; 175 | for($i=1;$i<11;$i+=2){ 176 | if (substr($f,($i-1),1) == "0") { 177 | $f1 = $fino ; 178 | }else{ 179 | $f1 = $largo ; 180 | } 181 | ?> 182 | src=/p.png width= height= border=0> 190 | src=/b.png width= height= border=0> 197 | src=/p.png width= height= border=0>/b.png width= height= border=0>/p.png width= height= border=0> 200 | 2) { 223 | $month -= 3; 224 | } else { 225 | $month += 9; 226 | if ($year) { 227 | $year--; 228 | } else { 229 | $year = 99; 230 | $century --; 231 | } 232 | } 233 | return ( floor(( 146097 * $century) / 4 ) + 234 | floor(( 1461 * $year) / 4 ) + 235 | floor(( 153 * $month + 2) / 5 ) + 236 | $day + 1721119); 237 | } 238 | 239 | function modulo_10($num) { 240 | $numtotal10 = 0; 241 | $fator = 2; 242 | 243 | // Separacao dos numeros 244 | for ($i = strlen($num); $i > 0; $i--) { 245 | // pega cada numero isoladamente 246 | $numeros[$i] = substr($num,$i-1,1); 247 | // Efetua multiplicacao do numero pelo (falor 10) 248 | // 2002-07-07 01:33:34 Macete para adequar ao Mod10 do Itaú 249 | $temp = $numeros[$i] * $fator; 250 | $temp0=0; 251 | foreach (preg_split('//',$temp,-1,PREG_SPLIT_NO_EMPTY) as $k=>$v){ $temp0+=$v; } 252 | $parcial10[$i] = $temp0; //$numeros[$i] * $fator; 253 | // monta sequencia para soma dos digitos no (modulo 10) 254 | $numtotal10 += $parcial10[$i]; 255 | if ($fator == 2) { 256 | $fator = 1; 257 | } else { 258 | $fator = 2; // intercala fator de multiplicacao (modulo 10) 259 | } 260 | } 261 | 262 | // várias linhas removidas, vide função original 263 | // Calculo do modulo 10 264 | $resto = $numtotal10 % 10; 265 | $digito = 10 - $resto; 266 | if ($resto == 0) { 267 | $digito = 0; 268 | } 269 | 270 | return $digito; 271 | 272 | } 273 | 274 | function modulo_11($num, $base=9, $r=0) { 275 | /** 276 | * Autor: 277 | * Pablo Costa 278 | * 279 | * Função: 280 | * Calculo do Modulo 11 para geracao do digito verificador 281 | * de boletos bancarios conforme documentos obtidos 282 | * da Febraban - www.febraban.org.br 283 | * 284 | * Entrada: 285 | * $num: string numérica para a qual se deseja calcularo digito verificador; 286 | * $base: valor maximo de multiplicacao [2-$base] 287 | * $r: quando especificado um devolve somente o resto 288 | * 289 | * Saída: 290 | * Retorna o Digito verificador. 291 | * 292 | * Observações: 293 | * - Script desenvolvido sem nenhum reaproveitamento de código pré existente. 294 | * - Assume-se que a verificação do formato das variáveis de entrada é feita antes da execução deste script. 295 | */ 296 | 297 | $soma = 0; 298 | $fator = 2; 299 | 300 | /* Separacao dos numeros */ 301 | for ($i = strlen($num); $i > 0; $i--) { 302 | // pega cada numero isoladamente 303 | $numeros[$i] = substr($num,$i-1,1); 304 | // Efetua multiplicacao do numero pelo falor 305 | $parcial[$i] = $numeros[$i] * $fator; 306 | // Soma dos digitos 307 | $soma += $parcial[$i]; 308 | if ($fator == $base) { 309 | // restaura fator de multiplicacao para 2 310 | $fator = 1; 311 | } 312 | $fator++; 313 | } 314 | 315 | /* Calculo do modulo 11 */ 316 | if ($r == 0) { 317 | $soma *= 10; 318 | $digito = $soma % 11; 319 | if ($digito == 10) { 320 | $digito = 0; 321 | } 322 | return $digito; 323 | } elseif ($r == 1){ 324 | $resto = $soma % 11; 325 | return $resto; 326 | } 327 | } 328 | 329 | function monta_linha_digitavel($codigo) { 330 | 331 | // 01-03 -> Código do banco sem o digito 332 | // 04-04 -> Código da Moeda (9-Real) 333 | // 05-05 -> Dígito verificador do código de barras 334 | // 06-09 -> Fator de vencimento 335 | // 10-19 -> Valor Nominal do Título 336 | // 20-44 -> Campo Livre (Abaixo) 337 | 338 | // 20-23 -> Código da Agencia (sem dígito) 339 | // 24-05 -> Número da Carteira 340 | // 26-36 -> Nosso Número (sem dígito) 341 | // 37-43 -> Conta do Cedente (sem dígito) 342 | // 44-44 -> Zero (Fixo) 343 | 344 | 345 | // 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições 346 | // do campo livre e DV (modulo10) deste campo 347 | 348 | $p1 = substr($codigo, 0, 4); // Numero do banco + Carteira 349 | $p2 = substr($codigo, 19, 5); // 5 primeiras posições do campo livre 350 | $p3 = modulo_10("$p1$p2"); // Digito do campo 1 351 | $p4 = "$p1$p2$p3"; // União 352 | $campo1 = substr($p4, 0, 5).'.'.substr($p4, 5); 353 | 354 | // 2. Campo - composto pelas posiçoes 6 a 15 do campo livre 355 | // e livre e DV (modulo10) deste campo 356 | $p1 = substr($codigo, 24, 10); //Posições de 6 a 15 do campo livre 357 | $p2 = modulo_10($p1); //Digito do campo 2 358 | $p3 = "$p1$p2"; 359 | $campo2 = substr($p3, 0, 5).'.'.substr($p3, 5); 360 | 361 | // 3. Campo composto pelas posicoes 16 a 25 do campo livre 362 | // e livre e DV (modulo10) deste campo 363 | $p1 = substr($codigo, 34, 10); //Posições de 16 a 25 do campo livre 364 | $p2 = modulo_10($p1); //Digito do Campo 3 365 | $p3 = "$p1$p2"; 366 | $campo3 = substr($p3, 0, 5).'.'.substr($p3, 5); 367 | 368 | // 4. Campo - digito verificador do codigo de barras 369 | $campo4 = substr($codigo, 4, 1); 370 | 371 | // 5. Campo composto pelo fator vencimento e valor nominal do documento, sem 372 | // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se 373 | // tratar de valor zerado, a representacao deve ser 000 (tres zeros). 374 | $p1 = substr($codigo, 5, 4); 375 | $p2 = substr($codigo, 9, 10); 376 | $campo5 = "$p1$p2"; 377 | 378 | return "$campo1 $campo2 $campo3 $campo4 $campo5"; 379 | } 380 | 381 | function geraCodigoBanco($numero) { 382 | $parte1 = substr($numero, 0, 3); 383 | $parte2 = modulo_11($parte1); 384 | return $parte1 . "-" . $parte2; 385 | } 386 | 387 | ?> 388 | --------------------------------------------------------------------------------