BoleCode::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 26
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 15
c 1
b 0
f 0
dl 0
loc 26
rs 9.7666
cc 1
nc 1
nop 24

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
namespace Itau\API\BoleCode;
3
4
use Itau\API\TraitEntity;
5
6
class BoleCode implements \JsonSerializable
7
{
8
    use TraitEntity;
9
10
    const ETAPA_TESTE = "simulacao";
11
    const ETAPA_EFETIVO = "efetivacao";
12
13
    private string $etapa_processo_boleto;
14
    private Beneficiario $beneficiario;
15
    private DadoBoleto $dado_boleto;
16
    private DadosQrcode $dados_qrcode;
17
18
    public function __construct(
19
        $modo, $agencia, $conta, $contaDV, $valor, $tipoBoleto, $numeroDocumento, $nome, $tipoPessoa,
20
        $documento, $endereco, $numero, $complemento, $bairro, $cidade, $siglaEstado, $cep, $nossoNumero, 
21
        $vencimento, $chavePix, $tipoMulta, $percentualMulta, $tipoJuros, $percentualJuros
22
    )
23
    {
24
        $this->setEtapaProcessoBoleto($modo)
25
            ->beneficiario()->setIdBeneficiario($agencia, $conta.$contaDV);
26
        $dadoBoleto = $this->dadoBoleto()
27
            ->setDados($valor, $tipoBoleto, $numeroDocumento);
28
        $pagador = $dadoBoleto->pagador();
29
        $pessoa = $pagador->pessoa()->setNomePessoa($nome);
30
        $tipoPessoa = $pessoa->tipoPessoa()
0 ignored issues
show
Unused Code introduced by
The assignment to $tipoPessoa is dead and can be removed.
Loading history...
31
            ->setPessoa($tipoPessoa, $documento);
32
        $pagador->endereco()->setEndereco(
33
            $endereco, $numero, $complemento, $bairro, $cidade, $siglaEstado, $cep
34
        );
35
            
36
        $dadoBoleto->dadosIndividuais()->setDados(
37
            $nossoNumero, $vencimento, $valor
38
        );
39
40
        $dadoBoleto->multa()->setMulta($tipoMulta, $percentualMulta);
41
        $dadoBoleto->juros()->setJuros($tipoJuros, $percentualJuros);
42
43
        $this->dadosQrCode()->setChave($chavePix);
44
    }
45
    public function setEtapaProcessoBoleto($etapa): self
46
    {
47
        $this->etapa_processo_boleto = $etapa;
48
        return $this;
49
    }
50
51
    public function beneficiario(): Beneficiario
52
    {
53
        $beneficiario = new Beneficiario();
54
55
        $this->setBeneficiario($beneficiario);
56
57
        return $beneficiario;
58
    }
59
60
    public function getBeneficiario(): Beneficiario
61
    {
62
        return $this->beneficiario;
63
    }
64
65
    public function setBeneficiario(Beneficiario $beneficiario): self
66
    {
67
        $this->beneficiario = $beneficiario;
68
        return $this;
69
    }
70
71
    public function dadoBoleto(): DadoBoleto
72
    {
73
        $dado = new DadoBoleto();
74
75
        $this->setDadoBoleto($dado);
76
77
        return $dado;
78
    }
79
80
    private function setDadoBoleto(DadoBoleto $dado): self
81
    {
82
        $this->dado_boleto = $dado;
83
        return $this;
84
    }
85
86
    public function dadosQrCode(): DadosQrCode
87
    {
88
        $dado = new DadosQrCode();
89
90
        $this->setDadosQrCode($dado);
91
92
        return $dado;
93
    }
94
95
    private function setDadosQrCode(DadosQrCode $dado): self
96
    {
97
        $this->dados_qrcode = $dado;
98
        return $this;
99
    }
100
}