Completed
Push — master ( 9654f6...5e67fa )
by Roberto
14:40
created

EvtAberturaeFinanceira::toNode()   C

Complexity

Conditions 11
Paths 4

Size

Total Lines 295
Code Lines 239

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 295
rs 5.2653
cc 11
eloc 239
nc 4
nop 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace NFePHP\eFinanc\Factories;
4
5
use NFePHP\eFinanc\Common\Factory;
6
use NFePHP\eFinanc\Common\FactoryInterface;
7
use NFePHP\eFinanc\Common\FactoryId;
8
use NFePHP\Common\Certificate;
9
use stdClass;
10
11
class EvtAberturaeFinanceira extends Factory implements FactoryInterface
12
{
13
    /**
14
     * Constructor
15
     * @param string $config
16
     * @param stdClass $std
17
     * @param Certificate $certificate
18
     * @param string $data
19
     */
20
    public function __construct(
21
        $config,
22
        stdClass $std,
23
        Certificate $certificate = null,
24
        $data = ''
25
    ) {
26
        $params = new \stdClass();
27
        $params->evtName = 'evtAberturaeFinanceira';
28
        $params->evtTag = 'evtAberturaeFinanceira';
29
        $params->evtAlias = 'F-1000';
30
        parent::__construct($config, $std, $params, $certificate, $data);
31
    }
32
33
    protected function toNode()
34
    {
35
        $ideDeclarante = $this->node->getElementsByTagName('ideDeclarante')->item(0);
36
        //o idEvento pode variar de evento para evento
37
        //então cada factory individualmente terá de construir o seu
38
        $ideEvento = $this->dom->createElement("ideEvento");
39
        $this->dom->addChild(
40
            $ideEvento,
41
            "indRetificacao",
42
            $this->std->indretificacao,
43
            true
44
        );
45
        $this->dom->addChild(
46
            $ideEvento,
47
            "nrRecibo",
48
            isset($this->std->nrrecibo) ? $this->std->nrrecibo : null,
49
            false
50
        );
51
        $this->dom->addChild(
52
            $ideEvento,
53
            "tpAmb",
54
            (string) $this->tpAmb,
55
            true
56
        );
57
        $this->dom->addChild(
58
            $ideEvento,
59
            "aplicEmi",
60
            '1',
61
            true
62
        );
63
        $this->dom->addChild(
64
            $ideEvento,
65
            "verAplic",
66
            $this->verAplic,
67
            true
68
        );
69
        $this->node->insertBefore($ideEvento, $ideDeclarante);
70
        
71
        $infoAbertura = $this->dom->createElement("infoAbertura");
72
        $this->dom->addChild(
73
            $infoAbertura,
74
            "dtInicio",
75
            $this->std->dtinicio,
76
            true
77
        );
78
        $this->dom->addChild(
79
            $infoAbertura,
80
            "dtFim",
81
            $this->std->dtfim,
82
            true
83
        );
84
        $this->node->appendChild($infoAbertura);
85
        
86
        if (!empty($this->std->aberturapp)) {
87
            $AberturaPP = $this->dom->createElement("AberturaPP");
88
            $pp = $this->std->aberturapp;
89
            foreach ($pp->tpempresa as $tpe) {
90
                $tpEmpresa = $this->dom->createElement("tpEmpresa");
91
                $this->dom->addChild(
92
                    $tpEmpresa,
93
                    "tpPrevPriv",
94
                    $tpe->tpprevpriv,
95
                    true
96
                );
97
                $AberturaPP->appendChild($tpEmpresa);
98
            }
99
            $this->node->appendChild($AberturaPP);
100
        }
101
        
102
        if (!empty($this->std->aberturamovopfin)) {
103
            $AberturaMovOpFin = $this->dom->createElement("AberturaMovOpFin");
104
            $rmf = $this->std->aberturamovopfin->responsavelrmf;
105
            $ResponsavelRMF = $this->dom->createElement("ResponsavelRMF");
106
            $this->dom->addChild(
107
                $ResponsavelRMF,
108
                "CPF",
109
                $rmf->cpf,
110
                true
111
            );
112
            $this->dom->addChild(
113
                $ResponsavelRMF,
114
                "Nome",
115
                $rmf->nome,
116
                true
117
            );
118
            $this->dom->addChild(
119
                $ResponsavelRMF,
120
                "Setor",
121
                $rmf->setor,
122
                true
123
            );
124
            $Telefone = $this->dom->createElement("Telefone");
125
            $this->dom->addChild(
126
                $Telefone,
127
                "DDD",
128
                $rmf->telefone->ddd,
129
                true
130
            );
131
            $this->dom->addChild(
132
                $Telefone,
133
                "Numero",
134
                $rmf->telefone->numero,
135
                true
136
            );
137
            $this->dom->addChild(
138
                $Telefone,
139
                "Ramal",
140
                isset($rmf->telefone->ramal) ? $rmf->telefone->ramal : null,
141
                false
142
            );
143
            $ResponsavelRMF->appendChild($Telefone);
144
            $end = $rmf->endereco;
145
            $endereco = $this->dom->createElement("Endereco");
146
            $this->dom->addChild(
147
                $endereco,
148
                "Logradouro",
149
                $end->logradouro,
150
                true
151
            );
152
            $this->dom->addChild(
153
                $endereco,
154
                "Numero",
155
                $end->numero,
156
                true
157
            );
158
            $this->dom->addChild(
159
                $endereco,
160
                "Complemento",
161
                isset($end->complemento) ? $end->complemento : null,
162
                false
163
            );
164
            $this->dom->addChild(
165
                $endereco,
166
                "Bairro",
167
                $end->bairro,
168
                true
169
            );
170
            $this->dom->addChild(
171
                $endereco,
172
                "CEP",
173
                $end->cep,
174
                true
175
            );
176
            $this->dom->addChild(
177
                $endereco,
178
                "Municipio",
179
                $end->municipio,
180
                true
181
            );
182
            $this->dom->addChild(
183
                $endereco,
184
                "UF",
185
                $end->uf,
186
                true
187
            );
188
            $ResponsavelRMF->appendChild($endereco);
189
            $AberturaMovOpFin->appendChild($ResponsavelRMF);
190
            foreach ($this->std->aberturamovopfin->respefin as $rf) {
191
                $RespeFin = $this->dom->createElement("RespeFin");
192
                $this->dom->addChild(
193
                    $RespeFin,
194
                    "CPF",
195
                    $rf->cpf,
196
                    true
197
                );
198
                $this->dom->addChild(
199
                    $RespeFin,
200
                    "Nome",
201
                    $rf->nome,
202
                    true
203
                );
204
                $this->dom->addChild(
205
                    $RespeFin,
206
                    "Setor",
207
                    $rf->setor,
208
                    true
209
                );
210
                $Telefone = $this->dom->createElement("Telefone");
211
                $this->dom->addChild(
212
                    $Telefone,
213
                    "DDD",
214
                    $rf->telefone->ddd,
215
                    true
216
                );
217
                $this->dom->addChild(
218
                    $Telefone,
219
                    "Numero",
220
                    $rf->telefone->numero,
221
                    true
222
                );
223
                $this->dom->addChild(
224
                    $Telefone,
225
                    "Ramal",
226
                    isset($rf->telefone->ramal) ? $rf->telefone->ramal : null,
227
                    false
228
                );
229
                $RespeFin->appendChild($Telefone);
230
                $end = $rf->endereco;
231
                $endereco = $this->dom->createElement("Endereco");
232
                $this->dom->addChild(
233
                    $endereco,
234
                    "Logradouro",
235
                    $end->logradouro,
236
                    true
237
                );
238
                $this->dom->addChild(
239
                    $endereco,
240
                    "Numero",
241
                    $end->numero,
242
                    true
243
                );
244
                $this->dom->addChild(
245
                    $endereco,
246
                    "Complemento",
247
                    isset($end->complemento) ? $end->complemento : null,
248
                    false
249
                );
250
                $this->dom->addChild(
251
                    $endereco,
252
                    "Bairro",
253
                    $end->bairro,
254
                    true
255
                );
256
                $this->dom->addChild(
257
                    $endereco,
258
                    "CEP",
259
                    $end->cep,
260
                    true
261
                );
262
                $this->dom->addChild(
263
                    $endereco,
264
                    "Municipio",
265
                    $end->municipio,
266
                    true
267
                );
268
                $this->dom->addChild(
269
                    $endereco,
270
                    "UF",
271
                    $end->uf,
272
                    true
273
                );
274
                $RespeFin->appendChild($endereco);
275
                $this->dom->addChild(
276
                    $RespeFin,
277
                    "Email",
278
                    $rf->email,
279
                    true
280
                );
281
                $AberturaMovOpFin->appendChild($RespeFin);
282
            }
283
            
284
            $RepresLegal = $this->dom->createElement("RepresLegal");
285
            $rl = $this->std->aberturamovopfin->represlegal;
286
            $this->dom->addChild(
287
                $RepresLegal,
288
                "CPF",
289
                $rl->cpf,
290
                true
291
            );
292
            $this->dom->addChild(
293
                $RepresLegal,
294
                "Setor",
295
                $rl->setor,
296
                true
297
            );
298
            $Telefone = $this->dom->createElement("Telefone");
299
            $this->dom->addChild(
300
                $Telefone,
301
                "DDD",
302
                $rl->telefone->ddd,
303
                true
304
            );
305
            $this->dom->addChild(
306
                $Telefone,
307
                "Numero",
308
                $rl->telefone->numero,
309
                true
310
            );
311
            $this->dom->addChild(
312
                $Telefone,
313
                "Ramal",
314
                isset($rl->telefone->ramal) ? $rl->telefone->ramal : null,
315
                false
316
            );
317
            $RepresLegal->appendChild($Telefone);
318
            $AberturaMovOpFin->appendChild($RepresLegal);
319
            
320
            $this->node->appendChild($AberturaMovOpFin);
321
        }
322
        
323
        //finalização do xml
324
        $this->eFinanceira->appendChild($this->node);
325
        //$this->xml = $this->dom->saveXML($this->eFinanceira);
0 ignored issues
show
Unused Code Comprehensibility introduced by
59% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
326
        $this->sign($this->evtTag);
327
    }
328
}
329