Example #1
0
 /**
  * @param $numero
  * @return int|string
  */
 public function digitoVerificadorNossonumero($numero)
 {
     $resto2 = Modulo::modulo11($numero, 7, 1);
     $digito = 11 - $resto2;
     if ($digito == 10) {
         $dv = "P";
     } elseif ($digito == 11) {
         $dv = 0;
     } else {
         $dv = $digito;
     }
     return $dv;
 }
Example #2
0
 public function geraCodigoBanco()
 {
     $parte1 = substr($this->codigo, 0, 3);
     $parte2 = Modulo::modulo11($parte1);
     return $parte1 . "-" . $parte2;
 }
Example #3
0
 public function gerarLinhaDigitavel()
 {
     $codigo = $this->getLinha();
     // Posição 	Conteúdo
     // 1 a 3    Número do banco
     // 4        Código da Moeda - 9 para Real
     // 5        Digito verificador do Código de Barras
     // 6 a 9   Fator de Vencimento
     // 10 a 19 Valor (8 inteiros e 2 decimais)
     // 20 a 44 Campo Livre definido por cada banco (25 caracteres)
     // 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições
     // do campo livre e DV (modulo10) deste campo
     $p1 = substr($codigo, 0, 4);
     $p2 = substr($codigo, 19, 5);
     $p3 = Modulo::modulo10("{$p1}{$p2}");
     $p4 = "{$p1}{$p2}{$p3}";
     $p5 = substr($p4, 0, 5);
     $p6 = substr($p4, 5);
     $campo1 = "{$p5}.{$p6}";
     // 2. Campo - composto pelas posiçoes 6 a 15 do campo livre
     // e livre e DV (modulo10) deste campo
     $p1 = substr($codigo, 24, 10);
     $p2 = Modulo::modulo10($p1);
     $p3 = "{$p1}{$p2}";
     $p4 = substr($p3, 0, 5);
     $p5 = substr($p3, 5);
     $campo2 = "{$p4}.{$p5}";
     // 3. Campo composto pelas posicoes 16 a 25 do campo livre
     // e livre e DV (modulo10) deste campo
     $p1 = substr($codigo, 34, 10);
     $p2 = Modulo::modulo10($p1);
     $p3 = "{$p1}{$p2}";
     $p4 = substr($p3, 0, 5);
     $p5 = substr($p3, 5);
     $campo3 = "{$p4}.{$p5}";
     // 4. Campo - digito verificador do codigo de barras
     $campo4 = substr($codigo, 4, 1);
     // 5. Campo composto pelo fator vencimento e valor nominal do documento, sem
     // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se
     // tratar de valor zerado, a representacao deve ser 000 (tres zeros).
     $p1 = substr($codigo, 5, 4);
     $p2 = substr($codigo, 9, 10);
     $campo5 = "{$p1}{$p2}";
     return "{$campo1} {$campo2} {$campo3} {$campo4} {$campo5}";
 }
Example #4
0
 /**
  * @param Boleto $boleto
  * @return int
  */
 public function getDvCampoLivre(Boleto $boleto)
 {
     $campoLivre = $this->getCampoLivre($boleto);
     return $this->tratarRestoDigitoVerificadorNossoNumeroCampoLivre(Modulo::modulo11($campoLivre, 9, 1));
 }