public function prepare()
 {
     $nummoeda = "9";
     $fixo = "9";
     // Numero fixo para a posição 05-05
     $ios = "0";
     /**
      * adicionando dados das instruções e demonstrativo no boleto
      */
     (new ClassMethods())->hydrate($this->config['php-zf2-boleto']['instrucoes'], $this->getBoleto());
     /**
      * Compondo o Nosso Número e seu dígito verificador
      */
     $nossoNumeroProcessado = \str_pad($this->getBoleto()->getNossoNumero(), 13, '0', STR_PAD_LEFT);
     $nossoNumeroDV = Util::digitoVerificadorNossoNumero($nossoNumeroProcessado);
     /**
      * Calcula o fator do vencimento (número inteiro que representa a data de vencimento na linha digitavel)
      */
     $fatorVencimento = Util::fatorVencimento($this->getBoleto()->getDataVencimento()->format("d/m/Y"));
     /**
      * Processando o valor para aplicação na linha digitável e no código de barras
      */
     $valor = preg_replace("/[^0-9]/", "", $this->getBoleto()->getValor());
     // removendo formatação do número
     $valorProcessado = \str_pad($valor, 10, '0', STR_PAD_LEFT);
     /**
      * Calcula o dígito verificador do código de barras
      */
     //        $barra = "$codigobanco$nummoeda$fator_vencimento$valor$fixo$codigocliente$nossonumero$ios$carteira";
     $DV = Util::digitoVerificadorBarra($this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $fatorVencimento . $valorProcessado . $fixo . $this->getCedente()->getCodigocliente() . $nossoNumeroProcessado . $ios . $this->getCedente()->getCarteira());
     $barra = $this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $fatorVencimento . $valorProcessado . $fixo . $this->getCedente()->getCodigocliente() . $nossoNumeroProcessado . $ios . $this->getCedente()->getCarteira();
     /**
      * Compondo a linha base para formação da Linha Digitável e do Código de Barras
      */
     $strLinha = substr($barra, 0, 4) . $DV . substr($barra, 4);
     /**
      * Formatando o Nosso Número para impressão
      */
     $nossoNumeroFormatado = $nossoNumeroProcessado;
     /**
      * Formatando os dados bancários do cedente para impressão
      */
     $this->getCedente()->setAgenciaCodigo($this->getCedente()->getAgencia() . '-' . $this->getCedente()->getAgenciaDv() . ' / ' . $this->getCedente()->getContaCedente() . '-' . $this->getCedente()->getContaCedenteDv());
     /**
      * Iniciando opções para criação do Código de Barras
      */
     $barcodeOptions = array('text' => $strLinha);
     /**
      * Criando o código de barras em uma imagem e retornando seu base64
      */
     $codigoDeBarras = Barcode::factory('Code25interleaved', 'PhpBoletoZf2\\Lib\\Barcode\\Renderer\\Base64', $barcodeOptions, array());
     /**
      * Termina de hidratar o objetodo boleto
      */
     $this->getBoleto()->setCodigoDeBarras($codigoDeBarras)->setLinhaDigitavel(Util::montaLinhaDigitavel($strLinha))->setNossoNumeroFormatado($nossoNumeroFormatado);
     return $this;
 }
Exemple #2
0
 public function prepare()
 {
     // adicionando dados das instruções e demonstrativo no boleto
     (new ClassMethods())->hydrate($this->config['php-zf2-boleto']['instrucoes'], $this->getBoleto());
     // adicionando valores default de configuração do cedente
     (new ClassMethods())->hydrate($this->config['php-zf2-boleto'][$this->banco->getCodigoBanco()]['dados_cedente'], $this->getCedente());
     $nossoNumeroProcessado = (int) $this->getBoleto()->getNossoNumero();
     $nossoNumeroProcessado = \str_pad($nossoNumeroProcessado, 7, '0', STR_PAD_LEFT);
     // Calcula o fator do vencimento (número inteiro que representa a data de vencimento na linha digitavel)
     $fatorVencimento = Util::fatorVencimento($this->getBoleto()->getDataVencimento()->format("d/m/Y"));
     $fatorVencimento = \str_pad($fatorVencimento, 4, '0', STR_PAD_LEFT);
     // Processando o valor para aplicação na linha digitável e no código de barras
     $valor = preg_replace("/[^0-9]/", "", $this->getBoleto()->getValor());
     // removendo formatação do número
     $valorProcessado = \str_pad($valor, 10, '0', STR_PAD_LEFT);
     $parcela = $this->getBoleto()->getQuantidade();
     $parcela = \str_pad($parcela ? $parcela : 1, 3, '0', STR_PAD_LEFT);
     $numeroCliente = (int) $this->getCedente()->getConvenio();
     $numeroCliente = \str_pad($numeroCliente, 7, '0', STR_PAD_LEFT);
     /** 
      * Calcula digito verificador nosso número boletos Bancoob
      * 3197 regra sicoob
      */
     $sequencia = $this->getCedente()->getAgencia() . \str_pad($numeroCliente, 10, '0', STR_PAD_LEFT) . $nossoNumeroProcessado;
     $dvNossoNumero = Util::digitoVerificadorNossoNumeroBancoob($sequencia, '3197');
     $nossoNumeroFormatado = "{$nossoNumeroProcessado}{$dvNossoNumero}";
     // modalidade de cobranca
     $variacao = $this->getCedente()->getVariacaoCarteira();
     $variacao = \str_pad($variacao ? $variacao : 2, 2, '0', STR_PAD_LEFT);
     $campoLivre = "{$variacao}{$numeroCliente}{$nossoNumeroFormatado}{$parcela}";
     // Calcula o dígito verificador do código de barras
     $DV = Util::digitoVerificadorBarra($this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $fatorVencimento . $valorProcessado . $this->getBanco()->getCarteira() . $this->getCedente()->getAgencia() . $campoLivre);
     /**
      * Compondo a linha base para formação da Linha Digitável e do Código de Barras
      */
     $strLinha = $this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $DV . $fatorVencimento . $valorProcessado . $this->getBanco()->getCarteira() . $this->getCedente()->getAgencia() . $campoLivre;
     // Formatando os dados bancários do cedente para impressão
     $this->getCedente()->setAgenciaCodigo($this->getCedente()->getAgenciaDv() . ' / ' . $this->getCedente()->getCodigocliente());
     // Iniciando opções para criação do Código de Barras
     $barcodeOptions = array('text' => $strLinha);
     // Criando o código de barras em uma imagem e retornando seu base64
     $codigoDeBarras = Barcode::factory('Code25interleaved', 'PhpBoletoZf2\\Lib\\Barcode\\Renderer\\Base64', $barcodeOptions, array());
     // Termina de hidratar o objetodo boleto
     $this->getBoleto()->setCodigoDeBarras($codigoDeBarras)->setLinhaDigitavel(Util::montaLinhaDigitavel($strLinha))->setNossoNumeroFormatado($nossoNumeroFormatado);
     return $this;
 }
Exemple #3
0
 public function prepare()
 {
     /**
      * adicionando dados das instruções e demonstrativo no boleto
      */
     (new ClassMethods())->hydrate($this->config['php-zf2-boleto']['instrucoes'], $this->getBoleto());
     /**
      * Calcula o fator do vencimento (número inteiro que representa a data de vencimento na linha digitavel)
      */
     $fatorVencimento = Util::fatorVencimento($this->getBoleto()->getDataVencimento()->format("d/m/Y"));
     /**
      * Processando o valor para aplicação na linha digitável e no código de barras
      */
     $valor = preg_replace("/[^0-9]/", "", $this->getBoleto()->getValor());
     // removendo formatação do número
     $valorProcessado = \str_pad($valor, 10, '0', STR_PAD_LEFT);
     /**
      * Formatando os dados bancários do cedente para impressão
      */
     $this->getCedente()->setAgenciaCodigo($this->getCedente()->getAgencia() . '-' . $this->getCedente()->getAgenciaDv() . ' / ' . $this->getCedente()->getContaCorrente() . '-' . $this->getCedente()->getContaCorrenteDv());
     // usado quando convenio tem 7 digitos
     $livreZeros = '000000';
     switch ($this->getCedente()->getFormatacaoConvenio()) {
         case 8:
             $convenioProcessado = str_pad($this->getCedente()->getConvenio(), 8, '0', STR_PAD_LEFT);
             $nossoNumeroProcessado = str_pad($this->getBoleto()->getNossoNumero(), 9, '0', STR_PAD_LEFT);
             $DV = Util::modulo11($this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $fatorVencimento . $valorProcessado . $livreZeros . $convenioProcessado . $nossoNumeroProcessado . $this->getBanco()->getCarteira());
             $strLinha = $this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $DV . $fatorVencimento . $valorProcessado . $livreZeros . $convenioProcessado . $nossoNumeroProcessado . $this->getBanco()->getCarteira();
             $nossoNumeroFormatado = $convenioProcessado . $nossoNumeroProcessado . '-' . Util::modulo11($convenioProcessado . $nossoNumeroProcessado);
             break;
         case 7:
             $convenioProcessado = str_pad($this->getCedente()->getConvenio(), 7, '0', STR_PAD_LEFT);
             $nossoNumeroProcessado = str_pad($this->getBoleto()->getNossoNumero(), 10, '0', STR_PAD_LEFT);
             $DV = Util::modulo11($this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $fatorVencimento . $valorProcessado . $livreZeros . $convenioProcessado . $nossoNumeroProcessado . $this->getBanco()->getCarteira());
             $strLinha = $this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $DV . $fatorVencimento . $valorProcessado . $livreZeros . $convenioProcessado . $nossoNumeroProcessado . $this->getBanco()->getCarteira();
             $nossoNumeroFormatado = $convenioProcessado . $nossoNumeroProcessado;
             break;
         case 6:
             $convenioProcessado = str_pad($this->getCedente()->getConvenio(), 6, '0', STR_PAD_LEFT);
             switch ($this->getBoleto()->getFormatacaoNossoNumero()) {
                 case 1:
                     $nossoNumeroProcessado = str_pad($this->getBoleto()->getNossoNumero(), 5, '0', STR_PAD_LEFT);
                     $DV = Util::modulo11($this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $fatorVencimento . $valorProcessado . $convenioProcessado . $nossoNumeroProcessado . $this->getCedente()->getAgencia() . $this->getCedente()->getContaCorrente() . $this->getCedente()->getCarteira());
                     $strLinha = $this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $DV . $fatorVencimento . $valorProcessado . $convenioProcessado . $nossoNumeroProcessado . $this->getCedente()->getAgencia() . $this->getCedente()->getContaCorrente() . $this->getCedente()->getCarteira();
                     $nossoNumeroFormatado = $convenioProcessado . $nossoNumeroProcessado . '-' . Util::modulo11($convenioProcessado . $nossoNumeroProcessado);
                     break;
                 case 2:
                     $numeroServico = 21;
                     $nossoNumeroProcessado = str_pad($this->getBoleto()->getNossoNumero(), 17, '0', STR_PAD_LEFT);
                     $DV = Util::modulo11($this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $fatorVencimento . $valorProcessado . $convenioProcessado . $nossoNumeroProcessado . $numeroServico);
                     $strLinha = $this->getBanco()->getCodigoBanco() . $this->getBanco()->getMoeda() . $DV . $fatorVencimento . $valorProcessado . $convenioProcessado . $nossoNumeroProcessado . $numeroServico;
                     $nossoNumeroFormatado = $nossoNumeroProcessado;
                     break;
             }
             break;
     }
     /**
      * Iniciando opções para criação do Código de Barras
      */
     $barcodeOptions = array('text' => $strLinha);
     /**
      * Criando o código de barras em uma imagem e retornando seu base64
      */
     $codigoDeBarras = Barcode::factory('Code25interleaved', 'PhpBoletoZf2\\Lib\\Barcode\\Renderer\\Base64', $barcodeOptions, array());
     /**
      * Termina de hidratar o objetodo boleto
      */
     $this->getBoleto()->setCodigoDeBarras($codigoDeBarras)->setLinhaDigitavel(Util::montaLinhaDigitavel($strLinha))->setNossoNumeroFormatado($nossoNumeroFormatado);
     return $this;
 }
Exemple #4
0
 public function setCodigoBanco($codigo)
 {
     $this->codigoBanco = $codigo;
     $this->codigoBancoDv = Util::modulo11($codigo, 9, 0, $this->codigoBanco == '001' ? 1 : 0);
     return $this;
 }