Passed
Push — main ( ce55f8...f17cc4 )
by Leandro
01:26
created

BoleCode::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 21
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
c 1
b 0
f 0
dl 0
loc 21
rs 9.8333
cc 1
nc 1
nop 20

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, $vencimento, $chavePix
21
    )
22
    {
23
        $this->setEtapaProcessoBoleto($modo)
24
            ->beneficiario()->setIdBeneficiario($agencia, $conta.$contaDV);
25
        $dadoBoleto = $this->dadoBoleto()
26
            ->setDados($valor, $tipoBoleto, $numeroDocumento);
27
        $pagador = $dadoBoleto->pagador();
28
        $pessoa = $pagador->pessoa()->setNomePessoa($nome);
29
        $tipoPessoa = $pessoa->tipoPessoa()
0 ignored issues
show
Unused Code introduced by
The assignment to $tipoPessoa is dead and can be removed.
Loading history...
30
            ->setPessoa($tipoPessoa, $documento);
31
        $pagador->endereco()->setEndereco(
32
            $endereco, $numero, $complemento, $bairro, $cidade, $siglaEstado, $cep
33
        );
34
            
35
        $dadoBoleto->dadosIndividuais()->setDados(
36
            $nossoNumero, $vencimento, $valor
37
        );
38
        $this->dadosQrCode()->setChave($chavePix);
39
    }
40
    public function setEtapaProcessoBoleto($etapa): self
41
    {
42
        $this->etapa_processo_boleto = $etapa;
43
        return $this;
44
    }
45
46
    public function beneficiario(): Beneficiario
47
    {
48
        $beneficiario = new Beneficiario();
49
50
        $this->setBeneficiario($beneficiario);
51
52
        return $beneficiario;
53
    }
54
55
    public function getBeneficiario(): Beneficiario
56
    {
57
        return $this->beneficiario;
58
    }
59
60
    public function setBeneficiario(Beneficiario $beneficiario): self
61
    {
62
        $this->beneficiario = $beneficiario;
63
        return $this;
64
    }
65
66
    public function dadoBoleto(): DadoBoleto
67
    {
68
        $dado = new DadoBoleto();
69
70
        $this->setDadoBoleto($dado);
71
72
        return $dado;
73
    }
74
75
    private function setDadoBoleto(DadoBoleto $dado): self
76
    {
77
        $this->dado_boleto = $dado;
78
        return $this;
79
    }
80
81
    public function dadosQrCode(): DadosQrCode
82
    {
83
        $dado = new DadosQrCode();
84
85
        $this->setDadosQrCode($dado);
86
87
        return $dado;
88
    }
89
90
    private function setDadosQrCode(DadosQrCode $dado): self
91
    {
92
        $this->dados_qrcode = $dado;
93
        return $this;
94
    }
95
}