BancoCEF::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 5
rs 9.4285
cc 1
eloc 3
nc 1
nop 2
1
<?php
2
namespace CbCaio\Boletos\Models\Bancos;
3
4
use CbCaio\Boletos\Calculators\Calculator;
5
use CbCaio\Boletos\Models\Bancos\Base\Banco;
6
7
class BancoCEF extends Banco
8
{
9
    protected $codigo_banco = 104;
10
    protected $codigo_moeda = 9;
11
    protected $codigo_compensacao;
12
13
    /**
14
     * 2 Digitos (modalidade_nosso_numero + emissao_boleto)
15
     */
16
    protected $nosso_numero_inicio;
17
18
    /**
19
     * Modalidade/Carteira de Cobran�a (1-Registrada/2-Sem Registro)
20
     *
21
     * @param int $modalidade
22
     * Emiss�o do boleto (4-Benefici�rio)
23
     * @param int $emissao
24
     */
25
    public function __construct($modalidade = 2, $emissao = 4)
26
    {
27
        $this->nosso_numero_inicio = $modalidade . $emissao;
28
        $this->codigo_compensacao  = $this->getCodigoCompensacao();
29
    }
30
31
32
    public function getCodigoCompensacao()
33
    {
34
        return $this->geraCodigoCompensacao();
35
    }
36
37
    private function geraCodigoCompensacao()
38
    {
39
        $dv                 = $this->geraDVBanco();
40
        $codigo_compensacao = $this->getCodigoBanco() . '-' . $dv;
41
42
        return "$codigo_compensacao";
43
44
    }
45
46
    private function geraDVBanco()
47
    {
48
        $parte1 = substr($this->getCodigoBanco(), 0, 3);
49
50
        return Calculator::calculaModulo11($parte1);
51
    }
52
53
}