Completed
Pull Request — master (#392)
by Eduardo
02:45
created

Danfe::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 1
dl 0
loc 3
ccs 0
cts 3
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
namespace NFePHP\DA\NFe;
3
4
use InvalidArgumentException;
5
use NFePHP\DA\Legacy\Dom;
6
use NFePHP\DA\Legacy\Pdf;
7
use \NFePHP\DA\Common\DaCommon;
8
9
class Danfe extends DaCommon
10
{
11
12
    /**
13
     * Posição
14
     *
15
     * @var float
16
     */
17
    protected $yDados = 0;
18
    /**
19
     * Parâmetro para exibir ou ocultar os valores do PIS/COFINS.
20
     *
21
     * @var boolean
22
     */
23
    protected $qCanhoto = 1;
24
    /**
25
     * Define a exbição dos valores de PIS e Cofins
26
     *
27
     * @var bool
28
     */
29
    protected $exibirPIS = true;
30
    /**
31
     * Parâmetro para exibir ou ocultar os valores do ICMS Interestadual e Valor Total dos Impostos.
32
     *
33
     * @var boolean
34
     */
35
    protected $exibirIcmsInterestadual = true;
36
    /**
37
     * Parâmetro para exibir ou ocultar o texto sobre valor aproximado dos tributos.
38
     *
39
     * @var boolean
40
     */
41
    protected $exibirValorTributos = true;
42
    /**
43
     * Parâmetro para exibir ou ocultar o texto adicional sobre a forma de pagamento
44
     * e as informações de fatura/duplicata.
45
     *
46
     * @var boolean
47
     */
48
    protected $exibirTextoFatura = false;
49
    /**
50
     * Parâmetro do controle se deve concatenar automaticamente informações complementares
51
     * na descrição do produto, como por exemplo, informações sobre impostos.
52
     *
53
     * @var boolean
54
     */
55
    public $descProdInfoComplemento = true;
56
    /**
57
     *`Parâmetro que habilita a geração de automatica de informações
58
     *
59
     * @var boolean
60
     */
61
    public $gerarInformacoesAutomaticas = true;
62
    /**
63
     * Parâmetro do controle se deve gerar quebras de linha com "\n" a partir de ";" na descrição do produto.
64
     *
65
     * @var boolean
66
     */
67
    protected $descProdQuebraLinha = true;
68
    /**
69
     * XML NFe
70
     *
71
     * @var string
72
     */
73
    protected $xml;
74
    /**
75
     * mesagens de erro
76
     *
77
     * @var string
78
     */
79
    protected $errMsg = '';
80
    /**
81
     * status de erro true um erro ocorreu false sem erros
82
     *
83
     * @var boolean
84
     */
85
    protected $errStatus = false;
86
    /**
87
     * Texto adicional da DANFE
88
     *
89
     * @var string
90
     */
91
    protected $textoAdic = '';
92
    /**
93
     * Largura
94
     *
95
     * @var float
96
     */
97
    protected $wAdic = 0;
98
    /**
99
     * largura do canhoto (25mm) apenas para a formatação paisagem
100
     *
101
     * @var float
102
     */
103
    protected $wCanhoto = 25;
104
    /**
105
     * Formato chave
106
     *
107
     * @var string
108
     */
109
    protected $formatoChave = "#### #### #### #### #### #### #### #### #### #### ####";
110
    /**
111
     * quantidade de itens já processados na montagem do DANFE
112
     *
113
     * @var integer
114
     */
115
    protected $qtdeItensProc;
116
    /**
117
     * Dom Document
118
     *
119
     * @var \NFePHP\DA\Legacy\Dom
120
     */
121
    protected $dom;
122
    /**
123
     * Node
124
     *
125
     * @var \DOMNode
126
     */
127
    protected $infNFe;
128
    /**
129
     * Node
130
     *
131
     * @var \DOMNode
132
     */
133
    protected $ide;
134
    /**
135
     * Node
136
     *
137
     * @var \DOMNode
138
     */
139
    protected $entrega;
140
    /**
141
     * Node
142
     *
143
     * @var \DOMNode
144
     */
145
    protected $retirada;
146
    /**
147
     * Node
148
     *
149
     * @var \DOMNode
150
     */
151
    protected $emit;
152
    /**
153
     * Node
154
     *
155
     * @var \DOMNode
156
     */
157
    protected $dest;
158
    /**
159
     * Node
160
     *
161
     * @var \DOMNode
162
     */
163
    protected $enderEmit;
164
    /**
165
     * Node
166
     *
167
     * @var \DOMNode
168
     */
169
    protected $enderDest;
170
    /**
171
     * Node
172
     *
173
     * @var \DOMNode
174
     */
175
    protected $det;
176
    /**
177
     * Node
178
     *
179
     * @var \DOMNode
180
     */
181
    protected $cobr;
182
    /**
183
     * Node
184
     *
185
     * @var \DOMNode
186
     */
187
    protected $dup;
188
    /**
189
     * Node
190
     *
191
     * @var \DOMNode
192
     */
193
    protected $ICMSTot;
194
    /**
195
     * Node
196
     *
197
     * @var \DOMNode
198
     */
199
    protected $ISSQNtot;
200
    /**
201
     * Node
202
     *
203
     * @var \DOMNode
204
     */
205
    protected $transp;
206
    /**
207
     * Node
208
     *
209
     * @var \DOMNode
210
     */
211
    protected $transporta;
212
    /**
213
     * Node
214
     *
215
     * @var \DOMNode
216
     */
217
    protected $veicTransp;
218
    /**
219
     * Node reboque
220
     *
221
     * @var \DOMNode
222
     */
223
    protected $reboque;
224
    /**
225
     * Node infAdic
226
     *
227
     * @var \DOMNode
228
     */
229
    protected $infAdic;
230
    /**
231
     * Tipo de emissão
232
     *
233
     * @var integer
234
     */
235
    protected $tpEmis;
236
    /**
237
     * Node infProt
238
     *
239
     * @var \DOMNode
240
     */
241
    protected $infProt;
242
    /**
243
     * 1-Retrato/ 2-Paisagem
244
     *
245
     * @var integer
246
     */
247
    protected $tpImp;
248
    /**
249
     * Node compra
250
     *
251
     * @var \DOMNode
252
     */
253
    protected $compra;
254
    /**
255
     * @var int
256
     */
257
    protected $textadicfontsize;
258
    /**
259
     * Número de casas para a quantidade de itens da unidade comercial.
260
     *
261
     * @var integer
262
     */
263
    protected $qComCasasDec = 4;
264
265
    /**
266
     * Número de casas decimais para o valor da unidade comercial.
267
     *
268
     * @var integer
269
     */
270
    protected $vUnComCasasDec = 4;
271
272
    /**
273
     * Configuração para determinar se irá exibir ou não informações
274
     * das unidades de medidas tributáveis.
275
     *
276
     * @var boolean
277
     */
278
    protected $mostrarUnidadeTributavel = false;
279
    /**
280
     * @var int
281
     */
282
    protected $hdadosadic = 10;
283
284
    /**
285
     * __construct
286
     *
287
     * @name  __construct
288
     *
289
     * @param string $xml Conteúdo XML da NF-e (com ou sem a tag nfeProc)
290
     */
291
    public function __construct($xml) {
292
        $this->loadDoc($xml);
293
    }
294
295
296
    /**
297
     * Define se irá mostrar ou não dados as unidades de medidas tributaveis.
298
     *
299
     * @param boolean $mostrarUnidadeTributavel
300
     */
301
    public function setMostrarUnidadeTributavel($mostrarUnidadeTributavel) {
302
        $this->mostrarUnidadeTributavel = $mostrarUnidadeTributavel;
303
    }
304
305
    /**
306
     * Define a quantidade de casas decimais para unidade comercial.
307
     *
308
     * @param integer $vUnComCasasDec
309
     */
310
    public function setVUnComCasasDec($vUnComCasasDec) {
311
        $this->vUnComCasasDec = $vUnComCasasDec;
312
    }
313
314
    /**
315
     * Define a quantidade de casas decimais para unidade comercial.
316
     *
317
     * @param integer $qComCasasDec
318
     */
319
    public function setQComCasasDec($qComCasasDec) {
320
        $this->qComCasasDec = $qComCasasDec;
321
    }
322
323
    protected function calculoEspacoVericalDadosAdicionais() {
324
        $this->textoAdic = '';
325
        //informações adicionais
326
        $fontProduto            = [
327
            'font'  => $this->fontePadrao,
328
            'size'  => 8,
329
            'style' => ''
330
        ];
331
        $k                      = $this->pdf->k;
332
        $this->textadicfontsize = $fontProduto['size'] / $k;
0 ignored issues
show
Documentation Bug introduced by
It seems like $fontProduto['size'] / $k can also be of type double. However, the property $textadicfontsize is declared as type integer. Maybe add an additional type check?

Our type inference engine has found a suspicous assignment of a value to a property. This check raises an issue when a value that can be of a mixed type is assigned to a property that is type hinted more strictly.

For example, imagine you have a variable $accountId that can either hold an Id object or false (if there is no account id yet). Your code now assigns that value to the id property of an instance of the Account class. This class holds a proper account, so the id value must no longer be false.

Either this assignment is in error or a type check should be added for that assignment.

class Id
{
    public $id;

    public function __construct($id)
    {
        $this->id = $id;
    }

}

class Account
{
    /** @var  Id $id */
    public $id;
}

$account_id = false;

if (starsAreRight()) {
    $account_id = new Id(42);
}

$account = new Account();
if ($account instanceof Id)
{
    $account->id = $account_id;
}
Loading history...
333
        $this->textoAdic        .= $this->geraInformacoesDasNotasReferenciadas();
334
        if (isset($this->infAdic)) {
335
            $i = 0;
336
            if ($this->textoAdic != '') {
337
                $this->textoAdic .= ". \n";
338
            }
339
            $this->textoAdic .= ! empty($this->getTagValue($this->infAdic, "infCpl"))
340
                ? 'Inf. Contribuinte: ' . $this->anfaveaDANFE($this->getTagValue($this->infAdic, "infCpl"))
341
                : '';
342
            $infPedido       = $this->geraInformacoesDaTagCompra();
343
            if ($infPedido != "") {
344
                $this->textoAdic .= $infPedido;
345
            }
346
            $this->textoAdic .= $this->getTagValue($this->dest, "email", ' Email do Destinatário: ');
347
            $this->textoAdic .= ! empty($this->getTagValue($this->infAdic, "infAdFisco"))
348
                ? "\n Inf. fisco: " . $this->getTagValue($this->infAdic, "infAdFisco")
349
                : '';
350
            $obsCont         = $this->infAdic->getElementsByTagName("obsCont");
351
            if (isset($obsCont)) {
352
                foreach ($obsCont as $obs) {
353
                    $campo           = $obsCont->item($i)->getAttribute("xCampo");
354
                    $xTexto          = ! empty($obsCont->item($i)->getElementsByTagName("xTexto")->item(0)->nodeValue)
355
                        ? $obsCont->item($i)->getElementsByTagName("xTexto")->item(0)->nodeValue
356
                        : '';
357
                    $this->textoAdic .= "\n" . $campo . ':  ' . trim($xTexto);
358
                    $i ++;
359
                }
360
            }
361
        }
362
        //INCLUSO pela NT 2013.003 Lei da Transparência
363
        //verificar se a informação sobre o valor aproximado dos tributos
364
        //já se encontra no campo de informações adicionais
365
        if ($this->exibirValorTributos) {
366
            $flagVTT  = strpos(strtolower(trim($this->textoAdic)), 'valor');
367
            $flagVTT  = $flagVTT || strpos(strtolower(trim($this->textoAdic)), 'vl');
368
            $flagVTT  = $flagVTT && strpos(strtolower(trim($this->textoAdic)), 'aprox');
369
            $flagVTT  = $flagVTT && (strpos(strtolower(trim($this->textoAdic)), 'trib') ||
370
                    strpos(strtolower(trim($this->textoAdic)), 'imp'));
371
            $vTotTrib = $this->getTagValue($this->ICMSTot, 'vTotTrib');
372
            if ($vTotTrib != '' && ! $flagVTT) {
373
                $this->textoAdic .= "\n Valor Aproximado dos Tributos : R$ "
374
                    . number_format($vTotTrib, 2, ",", ".");
375
            }
376
        }
377
        //fim da alteração NT 2013.003 Lei da Transparência
378
        $this->textoAdic        = str_replace(";", "\n", $this->textoAdic);
379
        $alinhas                = explode("\n", $this->textoAdic);
0 ignored issues
show
Unused Code introduced by
$alinhas is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
380
        $numlinhasdados         = $this->pdf->getNumLines($this->textoAdic, $this->wAdic, $fontProduto) + 1.5;
381
        $this->textadicfontsize = $this->pdf->fontSize;
0 ignored issues
show
Documentation Bug introduced by
It seems like $this->pdf->fontSize can also be of type double. However, the property $textadicfontsize is declared as type integer. Maybe add an additional type check?

Our type inference engine has found a suspicous assignment of a value to a property. This check raises an issue when a value that can be of a mixed type is assigned to a property that is type hinted more strictly.

For example, imagine you have a variable $accountId that can either hold an Id object or false (if there is no account id yet). Your code now assigns that value to the id property of an instance of the Account class. This class holds a proper account, so the id value must no longer be false.

Either this assignment is in error or a type check should be added for that assignment.

class Id
{
    public $id;

    public function __construct($id)
    {
        $this->id = $id;
    }

}

class Account
{
    /** @var  Id $id */
    public $id;
}

$account_id = false;

if (starsAreRight()) {
    $account_id = new Id(42);
}

$account = new Account();
if ($account instanceof Id)
{
    $account->id = $account_id;
}
Loading history...
382
        $hdadosadic             = ceil($numlinhasdados * ($this->textadicfontsize));
383
        if ($hdadosadic > 70) {
384
            for ($f = 8; $f > 3; $f --) {
385
                $this->pdf->setFont($this->fontePadrao, '', $f);
386
                $fontProduto            = [
387
                    'font'  => $this->fontePadrao,
388
                    'size'  => $f,
389
                    'style' => ''
390
                ];
391
                $numlinhasdados         = $this->pdf->getNumLines($this->textoAdic, $this->wAdic, $fontProduto) + 3;
392
                $this->textadicfontsize = $this->pdf->fontSize;
393
                $hdadosadic             = ceil($numlinhasdados * $this->textadicfontsize);
394
                echo $hdadosadic;
395
                if ($hdadosadic <= 90) {
396
                    $hdadosadic = ceil($hdadosadic);
397
                    break;
398
                }
399
            }
400
        }
401
        if ($hdadosadic < 10) {
402
            $hdadosadic = 10;
403
        }
404
405
        return $hdadosadic;
406
    }
407
408
    protected function calculoItensPorPagina() {
409
    }
410
411
    /**
412
     * monta
413
     * Monta a DANFE conforme as informações fornecidas para a classe durante sua
414
     * construção. Constroi DANFEs com até 3 páginas podendo conter até 56 itens.
415
     * A definição de margens e posições iniciais para a impressão são estabelecidas
416
     * pelo conteúdo da funçao e podem ser modificados.
417
     *
418
     * @return string O ID da NFe numero de 44 digitos extraido do arquivo XML
419
     */
420
    protected function monta(
421
        $logo = ''
422
    ) {
423
        $this->pdf       = '';
0 ignored issues
show
Documentation Bug introduced by
It seems like '' of type string is incompatible with the declared type object<NFePHP\DA\Legacy\Pdf> of property $pdf.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
424
        $this->logomarca = $this->adjustImage($logo);
425
        //se a orientação estiver em branco utilizar o padrão estabelecido na NF
426
        if (empty($this->orientacao)) {
427
            if ($this->tpImp == '2') {
428
                $this->orientacao = 'L';
429
            } else {
430
                $this->orientacao = 'P';
431
            }
432
        }
433
        //instancia a classe pdf
434
        $this->pdf = new Pdf($this->orientacao, 'mm', $this->papel);
0 ignored issues
show
Bug introduced by
It seems like $this->papel can also be of type array; however, NFePHP\DA\Legacy\Pdf::__construct() does only seem to accept string, maybe add an additional type check?

If a method or function can return multiple different values and unless you are sure that you only can receive a single value in this context, we recommend to add an additional type check:

/**
 * @return array|string
 */
function returnsDifferentValues($x) {
    if ($x) {
        return 'foo';
    }

    return array();
}

$x = returnsDifferentValues($y);
if (is_array($x)) {
    // $x is an array.
}

If this a common case that PHP Analyzer should handle natively, please let us know by opening an issue.

Loading history...
435
        //margens do PDF, em milímetros. Obs.: a margem direita é sempre igual à
436
        //margem esquerda. A margem inferior *não* existe na FPDF, é definida aqui
437
        //apenas para controle se necessário ser maior do que a margem superior
438
        // posição inicial do conteúdo, a partir do canto superior esquerdo da página
439
        $xInic = $this->margesq;
440
        if ($this->orientacao == 'P') {
441
            if ($this->papel == 'A4') {
442
                $this->maxW = 210;
0 ignored issues
show
Documentation Bug introduced by
The property $maxW was declared of type double, but 210 is of type integer. Maybe add a type cast?

This check looks for assignments to scalar types that may be of the wrong type.

To ensure the code behaves as expected, it may be a good idea to add an explicit type cast.

$answer = 42;

$correct = false;

$correct = (bool) $answer;
Loading history...
443
                $this->maxH = 297;
0 ignored issues
show
Documentation Bug introduced by
The property $maxH was declared of type double, but 297 is of type integer. Maybe add a type cast?

This check looks for assignments to scalar types that may be of the wrong type.

To ensure the code behaves as expected, it may be a good idea to add an explicit type cast.

$answer = 42;

$correct = false;

$correct = (bool) $answer;
Loading history...
444
            }
445
        } else {
446
            if ($this->papel == 'A4') {
447
                $this->maxW = 297;
0 ignored issues
show
Documentation Bug introduced by
The property $maxW was declared of type double, but 297 is of type integer. Maybe add a type cast?

This check looks for assignments to scalar types that may be of the wrong type.

To ensure the code behaves as expected, it may be a good idea to add an explicit type cast.

$answer = 42;

$correct = false;

$correct = (bool) $answer;
Loading history...
448
                $this->maxH = 210;
0 ignored issues
show
Documentation Bug introduced by
The property $maxH was declared of type double, but 210 is of type integer. Maybe add a type cast?

This check looks for assignments to scalar types that may be of the wrong type.

To ensure the code behaves as expected, it may be a good idea to add an explicit type cast.

$answer = 42;

$correct = false;

$correct = (bool) $answer;
Loading history...
449
                $xInic      = $this->margesq + 10;
450
                //se paisagem multiplica a largura do canhoto pela quantidade de canhotos
451
                //$this->wCanhoto *= $this->qCanhoto;
452
            }
453
        }
454
        //total inicial de paginas
455
        $totPag = 1;
0 ignored issues
show
Unused Code introduced by
$totPag is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
456
        //largura imprimivel em mm: largura da folha menos as margens esq/direita
457
        $this->wPrint = $this->maxW - ($this->margesq * 2);
0 ignored issues
show
Documentation Bug introduced by
It seems like $this->maxW - $this->margesq * 2 can also be of type integer. However, the property $wPrint is declared as type double. Maybe add an additional type check?

Our type inference engine has found a suspicous assignment of a value to a property. This check raises an issue when a value that can be of a mixed type is assigned to a property that is type hinted more strictly.

For example, imagine you have a variable $accountId that can either hold an Id object or false (if there is no account id yet). Your code now assigns that value to the id property of an instance of the Account class. This class holds a proper account, so the id value must no longer be false.

Either this assignment is in error or a type check should be added for that assignment.

class Id
{
    public $id;

    public function __construct($id)
    {
        $this->id = $id;
    }

}

class Account
{
    /** @var  Id $id */
    public $id;
}

$account_id = false;

if (starsAreRight()) {
    $account_id = new Id(42);
}

$account = new Account();
if ($account instanceof Id)
{
    $account->id = $account_id;
}
Loading history...
458
        //comprimento (altura) imprimivel em mm: altura da folha menos as margens
459
        //superior e inferior
460
        $this->hPrint = $this->maxH - $this->margsup - $this->marginf;
0 ignored issues
show
Documentation Bug introduced by
It seems like $this->maxH - $this->margsup - $this->marginf can also be of type integer. However, the property $hPrint is declared as type double. Maybe add an additional type check?

Our type inference engine has found a suspicous assignment of a value to a property. This check raises an issue when a value that can be of a mixed type is assigned to a property that is type hinted more strictly.

For example, imagine you have a variable $accountId that can either hold an Id object or false (if there is no account id yet). Your code now assigns that value to the id property of an instance of the Account class. This class holds a proper account, so the id value must no longer be false.

Either this assignment is in error or a type check should be added for that assignment.

class Id
{
    public $id;

    public function __construct($id)
    {
        $this->id = $id;
    }

}

class Account
{
    /** @var  Id $id */
    public $id;
}

$account_id = false;

if (starsAreRight()) {
    $account_id = new Id(42);
}

$account = new Account();
if ($account instanceof Id)
{
    $account->id = $account_id;
}
Loading history...
461
        // estabelece contagem de paginas
462
        $this->pdf->aliasNbPages();
463
        // fixa as margens
464
        $this->pdf->setMargins($this->margesq, $this->margsup);
465
        $this->pdf->setDrawColor(0, 0, 0);
466
        $this->pdf->setFillColor(255, 255, 255);
467
        // inicia o documento
468
        $this->pdf->open();
469
        // adiciona a primeira página
470
        $this->pdf->addPage($this->orientacao, $this->papel);
0 ignored issues
show
Bug introduced by
It seems like $this->papel can also be of type array; however, NFePHP\DA\Legacy\FPDF\Fpdf::addPage() does only seem to accept string, maybe add an additional type check?

If a method or function can return multiple different values and unless you are sure that you only can receive a single value in this context, we recommend to add an additional type check:

/**
 * @return array|string
 */
function returnsDifferentValues($x) {
    if ($x) {
        return 'foo';
    }

    return array();
}

$x = returnsDifferentValues($y);
if (is_array($x)) {
    // $x is an array.
}

If this a common case that PHP Analyzer should handle natively, please let us know by opening an issue.

Loading history...
471
        $this->pdf->setLineWidth(0.1);
472
        $this->pdf->settextcolor(0, 0, 0);
473
474
        //##################################################################
475
        // CALCULO DO NUMERO DE PAGINAS A SEREM IMPRESSAS
476
        //##################################################################
477
        //Verificando quantas linhas serão usadas para impressão das duplicatas
478
        $linhasDup = 0;
479
        $qtdPag    = 0;
480
        if (isset($this->dup) && $this->dup->length > 0) {
481
            $qtdPag = $this->dup->length;
0 ignored issues
show
Bug introduced by
The property length does not seem to exist in DOMNode.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
482
        } elseif (isset($this->detPag) && $this->detPag->length > 0) {
0 ignored issues
show
Bug introduced by
The property detPag does not exist. Did you maybe forget to declare it?

In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:

class MyClass { }

$x = new MyClass();
$x->foo = true;

Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:

class MyClass {
    public $foo;
}

$x = new MyClass();
$x->foo = true;
Loading history...
483
            $qtdPag = $this->detPag->length;
484
        }
485
        if (($qtdPag > 0) && ($qtdPag <= 7)) {
486
            $linhasDup = 1;
487
        } elseif (($qtdPag > 7) && ($qtdPag <= 14)) {
488
            $linhasDup = 2;
489
        } elseif (($qtdPag > 14) && ($qtdPag <= 21)) {
490
            $linhasDup = 3;
491
        } elseif ($qtdPag > 21) {
492
            // chinnonsantos 11/05/2016: Limite máximo de impressão de duplicatas na NFe,
493
            // só vai ser exibito as 21 primeiras duplicatas (parcelas de pagamento),
494
            // se não oculpa espaço d+, cada linha comporta até 7 duplicatas.
495
            $linhasDup = 3;
496
        }
497
        //verifica se será impressa a linha dos serviços ISSQN
498
        $linhaISSQN = 0;
499
        if ((isset($this->ISSQNtot)) && ($this->getTagValue($this->ISSQNtot, 'vServ') > 0)) {
500
            $linhaISSQN = 1;
501
        }
502
        //calcular a altura necessária para os dados adicionais
503
        if ($this->orientacao == 'P') {
504
            $this->wAdic = round($this->wPrint * 0.66, 0);
505
        } else {
506
            $this->wAdic = round(($this->wPrint - $this->wCanhoto) * 0.5, 0);
507
        }
508
        $fontProduto = ['font' => $this->fontePadrao, 'size' => 7, 'style' => ''];
0 ignored issues
show
Unused Code introduced by
$fontProduto is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
509
510
        $this->hdadosadic = $this->calculoEspacoVericalDadosAdicionais();
0 ignored issues
show
Documentation Bug introduced by
It seems like $this->calculoEspacoVericalDadosAdicionais() can also be of type double. However, the property $hdadosadic is declared as type integer. Maybe add an additional type check?

Our type inference engine has found a suspicous assignment of a value to a property. This check raises an issue when a value that can be of a mixed type is assigned to a property that is type hinted more strictly.

For example, imagine you have a variable $accountId that can either hold an Id object or false (if there is no account id yet). Your code now assigns that value to the id property of an instance of the Account class. This class holds a proper account, so the id value must no longer be false.

Either this assignment is in error or a type check should be added for that assignment.

class Id
{
    public $id;

    public function __construct($id)
    {
        $this->id = $id;
    }

}

class Account
{
    /** @var  Id $id */
    public $id;
}

$account_id = false;

if (starsAreRight()) {
    $account_id = new Id(42);
}

$account = new Account();
if ($account instanceof Id)
{
    $account->id = $account_id;
}
Loading history...
511
512
        //altura disponivel para os campos da DANFE
513
        $hcabecalho    = 47;//para cabeçalho
514
        $hdestinatario = 25;//para destinatario
515
        $hduplicatas   = 12;//para cada grupo de 7 duplicatas
516
        if (isset($this->entrega)) {
517
            $hlocalentrega = 25;
518
        } else {
519
            $hlocalentrega = 0;
520
        }
521
        if (isset($this->retirada)) {
522
            $hlocalretirada = 25;
523
        } else {
524
            $hlocalretirada = 0;
525
        }
526
        $himposto    = 18;// para imposto
527
        $htransporte = 25;// para transporte
528
        $hissqn      = 11;// para issqn
529
        $hfooter     = 5;// para rodape
530
        $hCabecItens = 4;//cabeçalho dos itens
531
        $hOCUPADA    = $hcabecalho
532
            + $hdestinatario
533
            + $hlocalentrega
534
            + $hlocalretirada
535
            + ($linhasDup * $hduplicatas)
536
            + $himposto + $htransporte
537
            + ($linhaISSQN * $hissqn)
538
            + $this->hdadosadic
539
            + $hfooter
540
            + $hCabecItens
541
            + $this->sizeExtraTextoFatura();
542
543
        //alturas disponiveis para os dados
544
        $hDispo1 = $this->hPrint - $hOCUPADA;
545
        /*($hcabecalho +
546
        //$hdestinatario + ($linhasDup * $hduplicatas) + $himposto + $htransporte +
547
        $hdestinatario + $hlocalentrega + $hlocalretirada +
548
        ($linhasDup * $hduplicatas) + $himposto + $htransporte +
549
        ($linhaISSQN * $hissqn) + $this->hdadosadic + $hfooter + $hCabecItens +
550
        $this->sizeExtraTextoFatura());*/
551
552
        if ($this->orientacao == 'P') {
553
            $hDispo1 -= 24 * $this->qCanhoto;//para canhoto
554
            $w       = $this->wPrint;
555
        } else {
556
            $hcanhoto = $this->hPrint;//para canhoto
0 ignored issues
show
Unused Code introduced by
$hcanhoto is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
557
            $w        = $this->wPrint - $this->wCanhoto;
558
        }
559
        //$hDispo1 += 14;
560
        $hDispo2 = $this->hPrint - ($hcabecalho + $hfooter + $hCabecItens);
561
        //Contagem da altura ocupada para impressão dos itens
562
        $aFont     = ['font' => $this->fontePadrao, 'size' => 7, 'style' => ''];
0 ignored issues
show
Unused Code introduced by
$aFont is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
563
        $numlinhas = 0;
0 ignored issues
show
Unused Code introduced by
$numlinhas is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
564
        $hUsado    = $hCabecItens;
565
        $w2        = round($w * 0.25, 0);
0 ignored issues
show
Unused Code introduced by
$w2 is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
566
        $hDispo    = $hDispo1;
567
        $totPag    = 1;
568
        $i         = 0;
569
        while ($i < $this->det->length) {
570
            $hUsado += $this->calculeHeight($this->det->item($i));
571
            if ($hUsado > $hDispo) {
572
                $totPag ++;
573
                $hDispo = $hDispo2;
574
                $hUsado = $hCabecItens;
575
                $i --; // decrementa para readicionar o item que não coube nessa pagina na outra.
576
            }
577
            $i ++;
578
        } //fim da soma das areas de itens usadas
579
        $qtdeItens = $i; //controle da quantidade de itens no DANFE
580
        //montagem da primeira página
581
        $pag = 1;
582
583
        $x = $this->margesq;
584
        $y = $this->margsup;
585
        //coloca o(s) canhoto(s) da NFe
586
        if ($this->orientacao == 'P') {
587
            $y = $this->canhoto($this->margesq, $this->margsup);
588
        } else {
589
            $this->canhoto($this->margesq, $this->margsup);
590
            $x = 25;
591
        }
592
        //coloca o cabeçalho
593
        $y = $this->header($x, $y, $pag, $totPag);
594
        //coloca os dados do destinatário
595
        $y = $this->destinatarioDANFE($x, $y + 1);
596
        //coloca os dados do local de retirada
597
        if (isset($this->retirada)) {
598
            $y = $this->localRetiradaDANFE($x, $y + 1);
599
        }
600
        //coloca os dados do local de entrega
601
        if (isset($this->entrega)) {
602
            $y = $this->localEntregaDANFE($x, $y + 1);
603
        }
604
605
        //Verifica as formas de pagamento da nota fiscal
606
        $formaPag = [];
607
        if (isset($this->detPag) && $this->detPag->length > 0) {
608
            foreach ($this->detPag as $k => $d) {
609
                $fPag            = ! empty($this->detPag->item($k)->getElementsByTagName('tPag')->item(0)->nodeValue)
610
                    ? $this->detPag->item($k)->getElementsByTagName('tPag')->item(0)->nodeValue
611
                    : '0';
612
                $formaPag[$fPag] = $fPag;
613
            }
614
        }
615
        //caso tenha boleto imprimir fatura
616
        if ($this->dup->length > 0) {
617
            $y = $this->fatura($x, $y + 1);
618
        } else {
619
            //Se somente tiver a forma de pagamento sem pagamento não imprimir nada
620
            if (count($formaPag) == '1' && isset($formaPag[90])) {
621
                $y = $y;
0 ignored issues
show
Bug introduced by
Why assign $y to itself?

This checks looks for cases where a variable has been assigned to itself.

This assignement can be removed without consequences.

Loading history...
622
            } else {
623
                //caso tenha mais de uma forma de pagamento ou seja diferente de boleto exibe a
624
                //forma de pagamento e o valor
625
                $y = $this->pagamento($x, $y + 1);
626
            }
627
        }
628
        //coloca os dados dos impostos e totais da NFe
629
        $y = $this->imposto($x, $y + 1);
630
        //coloca os dados do trasnporte
631
        $y = $this->transporte($x, $y + 1);
632
        //itens da DANFE
633
        $nInicial = 0;
634
635
        $y = $this->itens($x, $y + 1, $nInicial, $hDispo1, $pag, $totPag, $hCabecItens);
636
637
        //coloca os dados do ISSQN
638
        if ($linhaISSQN == 1) {
639
            $y = $this->issqn($x, $y + 4);
640
        } else {
641
            $y += 4;
642
        }
643
        //coloca os dados adicionais da NFe
644
        $y = $this->dadosAdicionais($x, $y, $this->hdadosadic);
0 ignored issues
show
Unused Code introduced by
$y is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
645
        //coloca o rodapé da página
646
        if ($this->orientacao == 'P') {
647
            $this->rodape($xInic);
648
        } else {
649
            $this->rodape($xInic);
650
        }
651
652
        //loop para páginas seguintes
653
        for ($n = 2; $n <= $totPag; $n ++) {
654
            // fixa as margens
655
            $this->pdf->setMargins($this->margesq, $this->margsup);
656
            //adiciona nova página
657
            $this->pdf->addPage($this->orientacao, $this->papel);
0 ignored issues
show
Bug introduced by
It seems like $this->papel can also be of type array; however, NFePHP\DA\Legacy\FPDF\Fpdf::addPage() does only seem to accept string, maybe add an additional type check?

If a method or function can return multiple different values and unless you are sure that you only can receive a single value in this context, we recommend to add an additional type check:

/**
 * @return array|string
 */
function returnsDifferentValues($x) {
    if ($x) {
        return 'foo';
    }

    return array();
}

$x = returnsDifferentValues($y);
if (is_array($x)) {
    // $x is an array.
}

If this a common case that PHP Analyzer should handle natively, please let us know by opening an issue.

Loading history...
658
            //ajusta espessura das linhas
659
            $this->pdf->setLineWidth(0.1);
660
            //seta a cor do texto para petro
661
            $this->pdf->settextcolor(0, 0, 0);
662
            // posição inicial do relatorio
663
            $x = $this->margesq;
664
            $y = $this->margsup;
665
            //coloca o cabeçalho na página adicional
666
            $y = $this->header($x, $y, $n, $totPag);
667
            //coloca os itens na página adicional
668
            $y = $this->itens($x, $y + 1, $nInicial, $hDispo2, $n, $totPag, $hCabecItens);
0 ignored issues
show
Unused Code introduced by
$y is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
669
            //coloca o rodapé da página
670
            if ($this->orientacao == 'P') {
671
                $this->rodape($this->margesq);
672
            } else {
673
                $this->rodape($this->margesq);
674
            }
675
            //se estiver na última página e ainda restar itens para inserir, adiciona mais uma página
676
            if ($n == $totPag && $this->qtdeItensProc < $qtdeItens) {
677
                $totPag ++;
678
            }
679
        }
680
    }
681
682
    /**
683
     * anfavea
684
     * Função para transformar o campo cdata do padrão ANFAVEA para
685
     * texto imprimível
686
     *
687
     * @param string $cdata campo CDATA
688
     *
689
     * @return string conteúdo do campo CDATA como string
690
     */
691
    protected function anfaveaDANFE($cdata = '') {
692
        if ($cdata == '') {
693
            return '';
694
        }
695
        //remove qualquer texto antes ou depois da tag CDATA
696
        $cdata    = str_replace('<![CDATA[', '<CDATA>', $cdata);
697
        $cdata    = str_replace(']]>', '</CDATA>', $cdata);
698
        $cdata    = preg_replace('/\s\s+/', ' ', $cdata);
699
        $cdata    = str_replace("> <", "><", $cdata);
700
        $len      = strlen($cdata);
701
        $startPos = strpos($cdata, '<');
702
        if ($startPos === false) {
703
            return $cdata;
704
        }
705
        for ($x = $len; $x > 0; $x --) {
706
            if (substr($cdata, $x, 1) == '>') {
707
                $endPos = $x;
708
                break;
709
            }
710
        }
711
        if ($startPos > 0) {
712
            $parte1 = substr($cdata, 0, $startPos);
713
        } else {
714
            $parte1 = '';
715
        }
716
        $parte2 = substr($cdata, $startPos, $endPos - $startPos + 1);
0 ignored issues
show
Bug introduced by
The variable $endPos does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
717
        if ($endPos < $len) {
718
            $parte3 = substr($cdata, $endPos + 1, $len - $endPos - 1);
719
        } else {
720
            $parte3 = '';
721
        }
722
        $texto = trim($parte1) . ' ' . trim($parte3);
723
        if (strpos($parte2, '<CDATA>') === false) {
724
            $cdata = '<CDATA>' . $parte2 . '</CDATA>';
725
        } else {
726
            $cdata = $parte2;
727
        }
728
        //Retira a tag <FONTE IBPT> (caso existir) pois não é uma estrutura válida XML
729
        $cdata = str_replace('<FONTE IBPT>', '', $cdata);
730
        //carrega o xml CDATA em um objeto DOM
731
        $dom = new Dom();
732
        $dom->loadXML($cdata, LIBXML_NOBLANKS | LIBXML_NOEMPTYTAG);
733
        //$xml = $dom->saveXML();
734
        //grupo CDATA infADprod
735
        $id   = $dom->getElementsByTagName('id')->item(0);
736
        $div  = $dom->getElementsByTagName('div')->item(0);
737
        $entg = $dom->getElementsByTagName('entg')->item(0);
738
        $dest = $dom->getElementsByTagName('dest')->item(0);
739
        $ctl  = $dom->getElementsByTagName('ctl')->item(0);
740
        $ref  = $dom->getElementsByTagName('ref')->item(0);
741
        if (isset($id)) {
742
            if ($id->hasAttributes()) {
743
                foreach ($id->attributes as $attr) {
744
                    $name  = $attr->nodeName;
745
                    $value = $attr->nodeValue;
746
                    $texto .= " $name : $value";
747
                }
748
            }
749
        }
750
        if (isset($div)) {
751
            if ($div->hasAttributes()) {
752
                foreach ($div->attributes as $attr) {
753
                    $name  = $attr->nodeName;
754
                    $value = $attr->nodeValue;
755
                    $texto .= " $name : $value";
756
                }
757
            }
758
        }
759
        if (isset($entg)) {
760
            if ($entg->hasAttributes()) {
761
                foreach ($entg->attributes as $attr) {
762
                    $name  = $attr->nodeName;
763
                    $value = $attr->nodeValue;
764
                    $texto .= " $name : $value";
765
                }
766
            }
767
        }
768
        if (isset($dest)) {
769
            if ($dest->hasAttributes()) {
770
                foreach ($dest->attributes as $attr) {
771
                    $name  = $attr->nodeName;
772
                    $value = $attr->nodeValue;
773
                    $texto .= " $name : $value";
774
                }
775
            }
776
        }
777
        if (isset($ctl)) {
778
            if ($ctl->hasAttributes()) {
779
                foreach ($ctl->attributes as $attr) {
780
                    $name  = $attr->nodeName;
781
                    $value = $attr->nodeValue;
782
                    $texto .= " $name : $value";
783
                }
784
            }
785
        }
786
        if (isset($ref)) {
787
            if ($ref->hasAttributes()) {
788
                foreach ($ref->attributes as $attr) {
789
                    $name  = $attr->nodeName;
790
                    $value = $attr->nodeValue;
791
                    $texto .= " $name : $value";
792
                }
793
            }
794
        }
795
        //grupo CADATA infCpl
796
        $t          = $dom->getElementsByTagName('transmissor')->item(0);
797
        $r          = $dom->getElementsByTagName('receptor')->item(0);
798
        $versao     = ! empty($dom->getElementsByTagName('versao')->item(0)->nodeValue) ?
799
            'Versao:' . $dom->getElementsByTagName('versao')->item(0)->nodeValue . ' ' : '';
800
        $especieNF  = ! empty($dom->getElementsByTagName('especieNF')->item(0)->nodeValue) ?
801
            'Especie:' . $dom->getElementsByTagName('especieNF')->item(0)->nodeValue . ' ' : '';
802
        $fabEntrega = ! empty($dom->getElementsByTagName('fabEntrega')->item(0)->nodeValue) ?
803
            'Entrega:' . $dom->getElementsByTagName('fabEntrega')->item(0)->nodeValue . ' ' : '';
804
        $dca        = ! empty($dom->getElementsByTagName('dca')->item(0)->nodeValue) ?
805
            'dca:' . $dom->getElementsByTagName('dca')->item(0)->nodeValue . ' ' : '';
806
        $texto      .= "" . $versao . $especieNF . $fabEntrega . $dca;
807
        if (isset($t)) {
808
            if ($t->hasAttributes()) {
809
                $texto .= " Transmissor ";
810
                foreach ($t->attributes as $attr) {
811
                    $name  = $attr->nodeName;
812
                    $value = $attr->nodeValue;
813
                    $texto .= " $name : $value";
814
                }
815
            }
816
        }
817
        if (isset($r)) {
818
            if ($r->hasAttributes()) {
819
                $texto .= " Receptor ";
820
                foreach ($r->attributes as $attr) {
821
                    $name  = $attr->nodeName;
822
                    $value = $attr->nodeValue;
823
                    $texto .= " $name : $value";
824
                }
825
            }
826
        }
827
828
        return $texto;
829
    }
830
831
    /**
832
     * Verifica o status da NFe
833
     *
834
     * @return array
835
     */
836
    protected function statusNFe() {
837
        if (! isset($this->nfeProc)) {
838
            return ['status' => false, 'message' => 'NFe NÃO PROTOCOLADA'];
839
        }
840
        if ($this->getTagValue($this->ide, "tpAmb") == '2') {
841
            return ['status' => false, 'message' => 'NFe EMITIDA EM HOMOLOGAÇÃO'];
842
        }
843
        $cStat = $this->getTagValue($this->nfeProc, "cStat");
0 ignored issues
show
Bug introduced by
The property nfeProc does not exist. Did you maybe forget to declare it?

In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:

class MyClass { }

$x = new MyClass();
$x->foo = true;

Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:

class MyClass {
    public $foo;
}

$x = new MyClass();
$x->foo = true;
Loading history...
844
        if ($cStat == '101'
845
            || $cStat == '151'
846
            || $cStat == '135'
847
            || $cStat == '155'
848
        ) {
849
            return ['status' => false, 'message' => 'NFe CANCELADA'];
850
        }
851
852
        if ($cStat == '110' ||
853
            $cStat == '301' ||
854
            $cStat == '302'
855
856
        ) {
857
            return ['status' => false, 'message' => 'NFe DENEGADA'];
858
        }
859
860
        return ['status' => true, 'message' => ''];
861
    }
862
863
    protected function notaDPEC() {
864
        return ! empty($this->numdepec);
865
    }
866
867
    /**
868
     *header
869
     * Monta o cabelhalho da DANFE (retrato e paisagem)
870
     *
871
     * @param number $x      Posição horizontal inicial, canto esquerdo
872
     * @param number $y      Posição vertical inicial, canto superior
873
     * @param number $pag    Número da Página
874
     * @param number $totPag Total de páginas
875
     *
876
     * @return number Posição vertical final
877
     */
878
    protected function header($x = 0, $y = 0, $pag = '1', $totPag = '1') {
879
        $oldX = $x;
880
        $oldY = $y;
881
        if ($this->orientacao == 'P') {
882
            $maxW = $this->wPrint;
883
        } else {
884
            if ($pag == 1) { // primeira página
885
                $maxW = $this->wPrint - $this->wCanhoto;
886
            } else { // páginas seguintes
887
                $maxW = $this->wPrint;
888
            }
889
        }
890
        //####################################################################################
891
        //coluna esquerda identificação do emitente
892
        $w = round($maxW * 0.41, 0);
893
        if ($this->orientacao == 'P') {
894
            $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => 'I'];
895
        } else {
896
            $aFont = ['font' => $this->fontePadrao, 'size' => 8, 'style' => 'B'];
897
        }
898
        $w1   = $w;
899
        $h    = 32;
900
        $oldY += $h;
901
        $this->pdf->textBox($x, $y, $w, $h);
902
        $texto = 'IDENTIFICAÇÃO DO EMITENTE';
903
        $this->pdf->textBox($x, $y, $w, 5, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
904
        //estabelecer o alinhamento
905
        //pode ser left L, center C, right R, full logo L
906
        //se for left separar 1/3 da largura para o tamanho da imagem
907
        //os outros 2/3 serão usados para os dados do emitente
908
        //se for center separar 1/2 da altura para o logo e 1/2 para os dados
909
        //se for right separa 2/3 para os dados e o terço seguinte para o logo
910
        //se não houver logo centraliza dos dados do emitente
911
        // coloca o logo
912
        if (! empty($this->logomarca)) {
913
            $logoInfo = getimagesize($this->logomarca);
914
            //largura da imagem em mm
915
            $logoWmm = ($logoInfo[0] / 72) * 25.4;
916
            //altura da imagem em mm
917
            $logoHmm = ($logoInfo[1] / 72) * 25.4;
918
            if ($this->logoAlign == 'L') {
919
                $nImgW = round($w / 3, 0);
920
                $nImgH = round($logoHmm * ($nImgW / $logoWmm), 0);
921
                $xImg  = $x + 1;
922
                $yImg  = round(($h - $nImgH) / 2, 0) + $y;
923
                //estabelecer posições do texto
924
                $x1 = round($xImg + $nImgW + 1, 0);
925
                $y1 = round($h / 3 + $y, 0);
926
                $tw = round(2 * $w / 3, 0);
927
            } elseif ($this->logoAlign == 'C') {
928
                $nImgH = round($h / 3, 0);
929
                $nImgW = round($logoWmm * ($nImgH / $logoHmm), 0);
930
                $xImg  = round(($w - $nImgW) / 2 + $x, 0);
931
                $yImg  = $y + 3;
932
                $x1    = $x;
933
                $y1    = round($yImg + $nImgH + 1, 0);
934
                $tw    = $w;
935
            } elseif ($this->logoAlign == 'R') {
936
                $nImgW = round($w / 3, 0);
937
                $nImgH = round($logoHmm * ($nImgW / $logoWmm), 0);
938
                $xImg  = round($x + ($w - (1 + $nImgW)), 0);
939
                $yImg  = round(($h - $nImgH) / 2, 0) + $y;
940
                $x1    = $x;
941
                $y1    = round($h / 3 + $y, 0);
942
                $tw    = round(2 * $w / 3, 0);
943
            } elseif ($this->logoAlign == 'F') {
944
                $nImgH = round($h - 5, 0);
945
                $nImgW = round($logoWmm * ($nImgH / $logoHmm), 0);
946
                $xImg  = round(($w - $nImgW) / 2 + $x, 0);
947
                $yImg  = $y + 3;
948
                $x1    = $x;
949
                $y1    = round($yImg + $nImgH + 1, 0);
950
                $tw    = $w;
951
            }
952
            $type = (substr($this->logomarca, 0, 7) === 'data://') ? 'jpg' : null;
0 ignored issues
show
Unused Code introduced by
$type is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
953
            $this->pdf->Image($this->logomarca, $xImg, $yImg, $nImgW, $nImgH, 'jpeg');
0 ignored issues
show
Bug introduced by
The variable $xImg does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
Bug introduced by
The variable $yImg does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
Bug introduced by
The variable $nImgW does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
Bug introduced by
The variable $nImgH does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
954
        } else {
955
            $x1 = $x;
956
            $y1 = round($h / 3 + $y, 0);
957
            $tw = $w;
958
        }
959
        // monta as informações apenas se diferente de full logo
960
        if ($this->logoAlign !== 'F') {
961
            //Nome emitente
962
            $aFont = ['font' => $this->fontePadrao, 'size' => 12, 'style' => 'B'];
963
            $texto = $this->emit->getElementsByTagName("xNome")->item(0)->nodeValue;
964
            $this->pdf->textBox($x1, $y1, $tw, 8, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Bug introduced by
The variable $x1 does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
Bug introduced by
The variable $y1 does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
Bug introduced by
The variable $tw does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
965
            //endereço
966
            $y1     = $y1 + 5;
967
            $aFont  = ['font' => $this->fontePadrao, 'size' => 8, 'style' => ''];
968
            $fone   = ! empty($this->enderEmit->getElementsByTagName("fone")->item(0)->nodeValue)
969
                ? $this->enderEmit->getElementsByTagName("fone")->item(0)->nodeValue
970
                : '';
971
            $lgr    = $this->getTagValue($this->enderEmit, "xLgr");
972
            $nro    = $this->getTagValue($this->enderEmit, "nro");
973
            $cpl    = $this->getTagValue($this->enderEmit, "xCpl", " - ");
974
            $bairro = $this->getTagValue($this->enderEmit, "xBairro");
975
            $CEP    = $this->getTagValue($this->enderEmit, "CEP");
976
            $CEP    = $this->formatField($CEP, "#####-###");
977
            $mun    = $this->getTagValue($this->enderEmit, "xMun");
978
            $UF     = $this->getTagValue($this->enderEmit, "UF");
979
            $texto  = $lgr . ", " . $nro . $cpl . "\n" . $bairro . " - "
980
                . $CEP . "\n" . $mun . " - " . $UF . " "
981
                . "Fone/Fax: " . $fone;
982
            $this->pdf->textBox($x1, $y1, $tw, 8, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
983
        }
984
985
        //####################################################################################
986
        //coluna central Danfe
987
        $x  += $w;
988
        $w  = round($maxW * 0.17, 0);//35;
989
        $w2 = $w;
990
        $h  = 32;
991
        $this->pdf->textBox($x, $y, $w, $h);
992
993
        $texto = "DANFE";
994
        $aFont = ['font' => $this->fontePadrao, 'size' => 14, 'style' => 'B'];
995
        $this->pdf->textBox($x, $y + 1, $w, $h, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
996
        $aFont = ['font' => $this->fontePadrao, 'size' => 8, 'style' => ''];
997
        $texto = 'Documento Auxiliar da Nota Fiscal Eletrônica';
998
        $h     = 20;
999
        $this->pdf->textBox($x, $y + 6, $w, $h, $texto, $aFont, 'T', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1000
1001
        $aFont = ['font' => $this->fontePadrao, 'size' => 8, 'style' => ''];
1002
        $texto = '0 - ENTRADA';
1003
        $y1    = $y + 14;
1004
        $h     = 8;
1005
        $this->pdf->textBox($x + 2, $y1, $w, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1006
        $texto = '1 - SAÍDA';
1007
        $y1    = $y + 17;
1008
        $this->pdf->textBox($x + 2, $y1, $w, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1009
        //tipo de nF
1010
        $aFont = ['font' => $this->fontePadrao, 'size' => 12, 'style' => 'B'];
1011
        $y1    = $y + 13;
1012
        $h     = 7;
1013
        $texto = $this->ide->getElementsByTagName('tpNF')->item(0)->nodeValue;
1014
        $this->pdf->textBox($x + 27, $y1, 5, $h, $texto, $aFont, 'C', 'C', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1015
        //numero da NF
1016
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1017
        $y1    = $y + 20;
1018
        $numNF = str_pad(
1019
            $this->ide->getElementsByTagName('nNF')->item(0)->nodeValue,
1020
            9,
1021
            "0",
1022
            STR_PAD_LEFT
1023
        );
1024
        $numNF = $this->formatField($numNF, "###.###.###");
1025
        $texto = "Nº. " . $numNF;
1026
        $this->pdf->textBox($x, $y1, $w, $h, $texto, $aFont, 'C', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1027
        //Série
1028
        $y1    = $y + 23;
1029
        $serie = str_pad(
1030
            $this->ide->getElementsByTagName('serie')->item(0)->nodeValue,
1031
            3,
1032
            "0",
1033
            STR_PAD_LEFT
1034
        );
1035
        $texto = "Série " . $serie;
1036
        $this->pdf->textBox($x, $y1, $w, $h, $texto, $aFont, 'C', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1037
        //numero paginas
1038
        $aFont = ['font' => $this->fontePadrao, 'size' => 8, 'style' => 'I'];
1039
        $y1    = $y + 26;
1040
        $texto = "Folha " . $pag . "/" . $totPag;
1041
        $this->pdf->textBox($x, $y1, $w, $h, $texto, $aFont, 'C', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1042
1043
        //####################################################################################
1044
        //coluna codigo de barras
1045
        $x  += $w;
1046
        $w  = ($maxW - $w1 - $w2);//85;
1047
        $w3 = $w;
1048
        $h  = 32;
1049
        $this->pdf->textBox($x, $y, $w, $h);
1050
        $this->pdf->setFillColor(0, 0, 0);
1051
        $chave_acesso = str_replace('NFe', '', $this->infNFe->getAttribute("Id"));
1052
        $bW           = 75;
1053
        $bH           = 12;
1054
        //codigo de barras
1055
        $this->pdf->code128($x + (($w - $bW) / 2), $y + 2, $chave_acesso, $bW, $bH);
1056
        //linhas divisorias
1057
        $this->pdf->line($x, $y + 4 + $bH, $x + $w, $y + 4 + $bH);
1058
        $this->pdf->line($x, $y + 12 + $bH, $x + $w, $y + 12 + $bH);
1059
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1060
        $y1    = $y + 4 + $bH;
1061
        $h     = 7;
1062
        $texto = 'CHAVE DE ACESSO';
1063
        $this->pdf->textBox($x, $y1, $w, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1064
        $aFont = ['font' => $this->fontePadrao, 'size' => 8, 'style' => 'B'];
1065
        $y1    = $y + 8 + $bH;
1066
        $texto = $this->formatField($chave_acesso, $this->formatoChave);
1067
        $this->pdf->textBox($x + 2, $y1, $w - 2, $h, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1068
        $y1                = $y + 12 + $bH;
1069
        $aFont             = ['font' => $this->fontePadrao, 'size' => 8, 'style' => ''];
1070
        $chaveContingencia = "";
1071
        if ($this->notaDpec()) {
1072
            $cabecalhoProtoAutorizacao = 'NÚMERO DE REGISTRO DPEC';
1073
        } else {
1074
            $cabecalhoProtoAutorizacao = 'PROTOCOLO DE AUTORIZAÇÃO DE USO';
1075
        }
1076
        if (($this->tpEmis == 2 || $this->tpEmis == 5) && ! $this->notaDpec()) {
1077
            $cabecalhoProtoAutorizacao = "DADOS DA NF-E";
1078
            $chaveContingencia         = $this->geraChaveAdicionalDeContingencia();
1079
            $this->pdf->setFillColor(0, 0, 0);
1080
            //codigo de barras
1081
            $this->pdf->code128($x + 11, $y1 + 1, $chaveContingencia, $bW * .9, $bH / 2);
1082
        } else {
1083
            $texto = 'Consulta de autenticidade no portal nacional da NF-e';
1084
            $this->pdf->textBox($x + 2, $y1, $w - 2, $h, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1085
            $y1    = $y + 16 + $bH;
1086
            $texto = 'www.nfe.fazenda.gov.br/portal ou no site da Sefaz Autorizadora';
1087
            $this->pdf->textBox(
1088
                $x + 2,
1089
                $y1,
1090
                $w - 2,
1091
                $h,
1092
                $texto,
1093
                $aFont,
1094
                'T',
1095
                'C',
1096
                0,
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1097
                'http://www.nfe.fazenda.gov.br/portal ou no site da Sefaz Autorizadora'
1098
            );
1099
        }
1100
1101
        //####################################################################################
1102
        //Dados da NF do cabeçalho
1103
        //natureza da operação
1104
        $texto = 'NATUREZA DA OPERAÇÃO';
1105
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1106
        $w     = $w1 + $w2;
1107
        $y     = $oldY;
1108
        $oldY  += $h;
1109
        $x     = $oldX;
1110
        $h     = 7;
1111
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1112
        $texto = $this->ide->getElementsByTagName("natOp")->item(0)->nodeValue;
1113
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1114
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1115
        $x += $w;
1116
        $w = $w3;
1117
        //PROTOCOLO DE AUTORIZAÇÃO DE USO ou DADOS da NF-E
1118
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1119
        $this->pdf->textBox($x, $y, $w, $h, $cabecalhoProtoAutorizacao, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1120
        // algumas NFe podem estar sem o protocolo de uso portanto sua existencia deve ser
1121
        // testada antes de tentar obter a informação.
1122
        // NOTA : DANFE sem protocolo deve existir somente no caso de contingência !!!
1123
        // Além disso, existem várias NFes em contingência que eu recebo com protocolo de autorização.
1124
        // Na minha opinião, deveríamos mostra-lo, mas o  manual  da NFe v4.01 diz outra coisa...
1125
        if (($this->tpEmis == 2 || $this->tpEmis == 5) && ! $this->notaDpec()) {
1126
            $aFont = ['font' => $this->fontePadrao, 'size' => 8, 'style' => 'B'];
1127
            $texto = $this->formatField(
1128
                $chaveContingencia,
1129
                "#### #### #### #### #### #### #### #### ####"
1130
            );
1131
            $cStat = '';
0 ignored issues
show
Unused Code introduced by
$cStat is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1132
        } else {
1133
            $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1134
            if ($this->notaDpec()) {
1135
                $texto = $this->numdepec;
1136
                $cStat = '';
0 ignored issues
show
Unused Code introduced by
$cStat is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1137
            } else {
1138
                if (isset($this->nfeProc)) {
1139
                    $texto  = ! empty($this->nfeProc->getElementsByTagName("nProt")->item(0)->nodeValue)
1140
                        ? $this->nfeProc->getElementsByTagName("nProt")->item(0)->nodeValue
1141
                        : '';
1142
                    $tsHora = $this->toTimestamp(
1143
                        $this->nfeProc->getElementsByTagName("dhRecbto")->item(0)->nodeValue
1144
                    );
1145
                    if ($texto != '') {
1146
                        $texto .= "  -  " . date('d/m/Y H:i:s', $tsHora);
1147
                    }
1148
                    $cStat = $this->nfeProc->getElementsByTagName("cStat")->item(0)->nodeValue;
0 ignored issues
show
Unused Code introduced by
$cStat is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1149
                } else {
1150
                    $texto = '';
1151
                    $cStat = '';
0 ignored issues
show
Unused Code introduced by
$cStat is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1152
                }
1153
            }
1154
        }
1155
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1156
        //####################################################################################
1157
        //INSCRIÇÃO ESTADUAL
1158
        $w     = round($maxW * 0.250, 0);
1159
        $y     += $h;
1160
        $oldY  += $h;
1161
        $x     = $oldX;
1162
        $texto = 'INSCRIÇÃO ESTADUAL';
1163
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1164
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1165
        $texto = $this->getTagValue($this->emit, "IE");
1166
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1167
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1168
        //INSCRIÇÃO MUNICIPAL
1169
        $x     += $w;
1170
        $texto = 'INSCRIÇÃO MUNICIPAL';
1171
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1172
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1173
        $texto = $this->getTagValue($this->emit, "IM");
1174
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1175
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1176
        //INSCRIÇÃO ESTADUAL DO SUBST. TRIBUT.
1177
        $x     += $w;
1178
        $texto = 'INSCRIÇÃO ESTADUAL DO SUBST. TRIBUT.';
1179
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1180
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1181
        $texto = ! empty($this->emit->getElementsByTagName("IEST")->item(0)->nodeValue)
1182
            ? $this->emit->getElementsByTagName("IEST")->item(0)->nodeValue
1183
            : '';
1184
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1185
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1186
        //CNPJ
1187
        $x     += $w;
1188
        $w     = ($maxW - (3 * $w));
1189
        $texto = 'CNPJ';
1190
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1191
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1192
        //Pegando valor do CPF/CNPJ
1193
        if (! empty($this->emit->getElementsByTagName("CNPJ")->item(0)->nodeValue)) {
1194
            $texto = $this->formatField(
1195
                $this->emit->getElementsByTagName("CNPJ")->item(0)->nodeValue,
1196
                "###.###.###/####-##"
1197
            );
1198
        } else {
1199
            $texto = ! empty($this->emit->getElementsByTagName("CPF")->item(0)->nodeValue)
1200
                ? $this->formatField(
1201
                    $this->emit->getElementsByTagName("CPF")->item(0)->nodeValue,
1202
                    "###.###.###-##"
1203
                )
1204
                : '';
1205
        }
1206
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1207
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1208
1209
        //####################################################################################
1210
        //Indicação de NF Homologação, cancelamento e falta de protocolo
1211
        $tpAmb = $this->ide->getElementsByTagName('tpAmb')->item(0)->nodeValue;
0 ignored issues
show
Unused Code introduced by
$tpAmb is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1212
        //indicar cancelamento
1213
        $resp = $this->statusNFe();
1214
        if (! $resp['status']) {
1215
            $x = 10;
1216
            $y = $this->hPrint - 130;
1217
            $h = 25;
1218
            $w = $maxW - (2 * $x);
1219
            $this->pdf->settextcolor(90, 90, 90);
1220
            $texto = $resp['message'];
1221
            $aFont = ['font' => $this->fontePadrao, 'size' => 48, 'style' => 'B'];
1222
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'C', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1223
            $y += $h;
1224
            $h = 5;
1225
            $w = $maxW - (2 * $x);
1226
            if (isset($this->infProt) && $resp['status']) {
1227
                $xMotivo = $this->infProt->getElementsByTagName("xMotivo")->item(0)->nodeValue;
1228
            } else {
1229
                $xMotivo = '';
1230
            }
1231
            $texto = "SEM VALOR FISCAL\n" . $xMotivo;
1232
            $aFont = ['font' => $this->fontePadrao, 'size' => 48, 'style' => 'B'];
1233
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'C', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1234
            $this->pdf->settextcolor(0, 0, 0);
1235
        }
1236
        if ($this->notaDpec() || $this->tpEmis == 4) {
1237
            //DPEC
1238
            $x = 10;
1239
            $y = $this->hPrint - 130;
1240
            $h = 25;
1241
            $w = $maxW - (2 * $x);
1242
            $this->pdf->SetTextColor(200, 200, 200);
1243
            $texto = "DANFE impresso em contingência -\n" .
1244
                "DPEC regularmente recebido pela Receita\n" .
1245
                "Federal do Brasil";
1246
            $aFont = ['font' => $this->fontePadrao, 'size' => 48, 'style' => 'B'];
1247
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'C', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1248
            $this->pdf->SetTextColor(0, 0, 0);
1249
        }
1250
1251
        return $oldY;
1252
    } //fim header
1253
1254
    /**
1255
     * destinatarioDANFE
1256
     * Monta o campo com os dados do destinatário na DANFE. (retrato e paisagem)
1257
     *
1258
     * @name   destinatarioDANFE
1259
     *
1260
     * @param number $x Posição horizontal canto esquerdo
1261
     * @param number $y Posição vertical canto superior
1262
     *
1263
     * @return number Posição vertical final
1264
     */
1265
    protected function destinatarioDANFE($x = 0, $y = 0) {
1266
        //####################################################################################
1267
        //DESTINATÁRIO / REMETENTE
1268
        $oldX = $x;
1269
        $oldY = $y;
0 ignored issues
show
Unused Code introduced by
$oldY is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1270
        if ($this->orientacao == 'P') {
1271
            $maxW = $this->wPrint;
1272
        } else {
1273
            $maxW = $this->wPrint - $this->wCanhoto;
1274
        }
1275
        $w     = $maxW;
1276
        $h     = 7;
1277
        $texto = 'DESTINATÁRIO / REMETENTE';
1278
        $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
1279
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1280
        //NOME / RAZÃO SOCIAL
1281
        $w     = round($maxW * 0.61, 0);
1282
        $w1    = $w;
1283
        $y     += 3;
1284
        $texto = 'NOME / RAZÃO SOCIAL';
1285
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1286
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1287
        $texto = $this->dest->getElementsByTagName("xNome")->item(0)->nodeValue;
1288
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1289
        if ($this->orientacao == 'P') {
1290
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1291
        } else {
1292
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1293
        }
1294
        //CNPJ / CPF
1295
        $x     += $w;
1296
        $w     = round($maxW * 0.23, 0);
1297
        $w2    = $w;
1298
        $texto = 'CNPJ / CPF';
1299
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1300
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1301
        //Pegando valor do CPF/CNPJ
1302
        if (! empty($this->dest->getElementsByTagName("CNPJ")->item(0)->nodeValue)) {
1303
            $texto = $this->formatField(
1304
                $this->dest->getElementsByTagName("CNPJ")->item(0)->nodeValue,
1305
                "###.###.###/####-##"
1306
            );
1307
        } else {
1308
            $texto = ! empty($this->dest->getElementsByTagName("CPF")->item(0)->nodeValue)
1309
                ? $this->formatField(
1310
                    $this->dest->getElementsByTagName("CPF")->item(0)->nodeValue,
1311
                    "###.###.###-##"
1312
                )
1313
                : '';
1314
        }
1315
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1316
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1317
        //DATA DA EMISSÃO
1318
        $x     += $w;
1319
        $w     = $maxW - ($w1 + $w2);
1320
        $wx    = $w;
1321
        $texto = 'DATA DA EMISSÃO';
1322
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1323
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1324
        $dEmi = ! empty($this->ide->getElementsByTagName("dEmi")->item(0)->nodeValue)
1325
            ? $this->ide->getElementsByTagName("dEmi")->item(0)->nodeValue
1326
            : '';
1327
        if ($dEmi == '') {
1328
            $dEmi  = ! empty($this->ide->getElementsByTagName("dhEmi")->item(0)->nodeValue)
1329
                ? $this->ide->getElementsByTagName("dhEmi")->item(0)->nodeValue
1330
                : '';
1331
            $aDemi = explode('T', $dEmi);
1332
            $dEmi  = $aDemi[0];
1333
        }
1334
        $texto = $this->ymdTodmy($dEmi);
1335
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1336
        if ($this->orientacao == 'P') {
1337
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1338
        } else {
1339
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1340
        }
1341
        //ENDEREÇO
1342
        $w     = round($maxW * 0.47, 0);
1343
        $w1    = $w;
1344
        $y     += $h;
1345
        $x     = $oldX;
1346
        $texto = 'ENDEREÇO';
1347
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1348
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1349
        $texto = $this->dest->getElementsByTagName("xLgr")->item(0)->nodeValue;
1350
        $texto .= ', ' . $this->dest->getElementsByTagName("nro")->item(0)->nodeValue;
1351
        $texto .= $this->getTagValue($this->dest, "xCpl", " - ");
1352
1353
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1354
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 0, '', true);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1355
        //BAIRRO / DISTRITO
1356
        $x     += $w;
1357
        $w     = round($maxW * 0.21, 0);
1358
        $w2    = $w;
1359
        $texto = 'BAIRRO / DISTRITO';
1360
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1361
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1362
        $texto = $this->dest->getElementsByTagName("xBairro")->item(0)->nodeValue;
1363
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1364
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1365
        //CEP
1366
        $x     += $w;
1367
        $w     = $maxW - $w1 - $w2 - $wx;
1368
        $w2    = $w;
0 ignored issues
show
Unused Code introduced by
$w2 is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1369
        $texto = 'CEP';
1370
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1371
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1372
        $texto = ! empty($this->dest->getElementsByTagName("CEP")->item(0)->nodeValue)
1373
            ? $this->dest->getElementsByTagName("CEP")->item(0)->nodeValue
1374
            : '';
1375
        $texto = $this->formatField($texto, "#####-###");
1376
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1377
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1378
        //DATA DA SAÍDA
1379
        $x     += $w;
1380
        $w     = $wx;
1381
        $texto = 'DATA DA SAÍDA/ENTRADA';
1382
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1383
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1384
        $dSaiEnt = ! empty($this->ide->getElementsByTagName("dSaiEnt")->item(0)->nodeValue)
1385
            ? $this->ide->getElementsByTagName("dSaiEnt")->item(0)->nodeValue
1386
            : '';
1387
        if ($dSaiEnt == '') {
1388
            $dSaiEnt  = ! empty($this->ide->getElementsByTagName("dhSaiEnt")->item(0)->nodeValue)
1389
                ? $this->ide->getElementsByTagName("dhSaiEnt")->item(0)->nodeValue
1390
                : '';
1391
            $aDsaient = explode('T', $dSaiEnt);
1392
            $dSaiEnt  = $aDsaient[0];
1393
        }
1394
        $texto = $this->ymdTodmy($dSaiEnt);
1395
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1396
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1397
        //MUNICÍPIO
1398
        $w     = $w1;
1399
        $y     += $h;
1400
        $x     = $oldX;
1401
        $texto = 'MUNICÍPIO';
1402
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1403
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1404
        $texto = $this->dest->getElementsByTagName("xMun")->item(0)->nodeValue;
1405
        if (strtoupper(trim($texto)) == "EXTERIOR"
1406
            && $this->dest->getElementsByTagName("xPais")->length > 0
1407
        ) {
1408
            $texto .= " - " . $this->dest->getElementsByTagName("xPais")->item(0)->nodeValue;
1409
        }
1410
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1411
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1412
        //UF
1413
        $x     += $w;
1414
        $w     = 8;
1415
        $texto = 'UF';
1416
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1417
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1418
        $texto = $this->dest->getElementsByTagName("UF")->item(0)->nodeValue;
1419
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1420
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1421
        //FONE / FAX
1422
        $x     += $w;
1423
        $w     = round(($maxW - $w1 - $wx - 8) / 2, 0);
1424
        $w3    = $w;
1425
        $texto = 'FONE / FAX';
1426
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1427
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1428
        $texto = ! empty($this->dest->getElementsByTagName("fone")->item(0)->nodeValue)
1429
            ? $this->dest->getElementsByTagName("fone")->item(0)->nodeValue
1430
            : '';
1431
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1432
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1433
        //INSCRIÇÃO ESTADUAL
1434
        $x     += $w;
1435
        $w     = $maxW - $w1 - $wx - 8 - $w3;
1436
        $texto = 'INSCRIÇÃO ESTADUAL';
1437
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1438
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1439
        $IE    = $this->dest->getElementsByTagName("IE");
1440
        $texto = ($IE && $IE->length > 0) ? $IE->item(0)->nodeValue : '';
1441
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1442
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1443
        //HORA DA SAÍDA
1444
        $x     += $w;
1445
        $w     = $wx;
1446
        $texto = 'HORA DA SAÍDA/ENTRADA';
1447
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1448
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1449
        $hSaiEnt = ! empty($this->ide->getElementsByTagName("hSaiEnt")->item(0)->nodeValue)
1450
            ? $this->ide->getElementsByTagName("hSaiEnt")->item(0)->nodeValue
1451
            : '';
1452
        if ($hSaiEnt == '') {
1453
            $dhSaiEnt   = ! empty($this->ide->getElementsByTagName("dhSaiEnt")->item(0)->nodeValue)
1454
                ? $this->ide->getElementsByTagName("dhSaiEnt")->item(0)->nodeValue
1455
                : '';
1456
            $tsDhSaiEnt = $this->toTimestamp($dhSaiEnt);
1457
            if ($tsDhSaiEnt != '') {
1458
                $hSaiEnt = date('H:i:s', $tsDhSaiEnt);
1459
            }
1460
        }
1461
        $texto = $hSaiEnt;
1462
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1463
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1464
1465
        return ($y + $h);
1466
    } //fim da função destinatarioDANFE
1467
1468
    /**
1469
     * localEntregaDANFE
1470
     * Monta o campo com os dados do local de entrega na DANFE. (retrato e paisagem)
1471
     *
1472
     * @name   localEntregaDANFE
1473
     *
1474
     * @param number $x Posição horizontal canto esquerdo
1475
     * @param number $y Posição vertical canto superior
1476
     *
1477
     * @return number Posição vertical final
1478
     */
1479
    protected function localEntregaDANFE($x = 0, $y = 0) {
1480
        //####################################################################################
1481
        //LOCAL DE ENTREGA
1482
        $oldX = $x;
1483
        if ($this->orientacao == 'P') {
1484
            $maxW = $this->wPrint;
1485
        } else {
1486
            $maxW = $this->wPrint - $this->wCanhoto;
1487
        }
1488
        $w     = $maxW;
1489
        $h     = 7;
1490
        $texto = 'INFORMAÇÕES DO LOCAL DE ENTREGA';
1491
        $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
1492
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1493
        //NOME / RAZÃO SOCIAL
1494
        $w     = round($maxW * 0.61, 0);
1495
        $w1    = $w;
1496
        $y     += 3;
1497
        $texto = 'NOME / RAZÃO SOCIAL';
1498
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1499
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1500
        $texto = '';
1501
        if ($this->entrega->getElementsByTagName("xNome")->item(0)) {
1502
            $texto = $this->entrega->getElementsByTagName("xNome")->item(0)->nodeValue;
1503
        }
1504
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1505
        if ($this->orientacao == 'P') {
1506
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1507
        } else {
1508
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1509
        }
1510
        //CNPJ / CPF
1511
        $x     += $w;
1512
        $w     = round($maxW * 0.23, 0);
1513
        $w2    = $w;
1514
        $texto = 'CNPJ / CPF';
1515
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1516
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1517
        //Pegando valor do CPF/CNPJ
1518
        if (! empty($this->entrega->getElementsByTagName("CNPJ")->item(0)->nodeValue)) {
1519
            $texto = $this->formatField(
1520
                $this->entrega->getElementsByTagName("CNPJ")->item(0)->nodeValue,
1521
                "###.###.###/####-##"
1522
            );
1523
        } else {
1524
            $texto = ! empty($this->entrega->getElementsByTagName("CPF")->item(0)->nodeValue) ?
1525
                $this->formatField(
1526
                    $this->entrega->getElementsByTagName("CPF")->item(0)->nodeValue,
1527
                    "###.###.###-##"
1528
                ) : '';
1529
        }
1530
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1531
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1532
        //INSCRIÇÃO ESTADUAL
1533
        $x     += $w;
1534
        $w     = $maxW - ($w1 + $w2);
1535
        $wx    = $w;
1536
        $texto = 'INSCRIÇÃO ESTADUAL';
1537
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1538
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1539
        $texto = '';
1540
        if ($this->entrega->getElementsByTagName("IE")->item(0)) {
1541
            $texto = $this->entrega->getElementsByTagName("IE")->item(0)->nodeValue;
1542
        }
1543
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1544
        if ($this->orientacao == 'P') {
1545
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1546
        } else {
1547
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1548
        }
1549
        //ENDEREÇO
1550
        $w     = round($maxW * 0.355, 0) + $wx;
1551
        $w1    = $w;
1552
        $y     += $h;
1553
        $x     = $oldX;
1554
        $texto = 'ENDEREÇO';
1555
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1556
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1557
        $texto = $this->entrega->getElementsByTagName("xLgr")->item(0)->nodeValue;
1558
        $texto .= ', ' . $this->entrega->getElementsByTagName("nro")->item(0)->nodeValue;
1559
        $texto .= $this->getTagValue($this->entrega, "xCpl", " - ");
1560
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1561
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 0, '', true);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1562
        //BAIRRO / DISTRITO
1563
        $x     += $w;
1564
        $w     = round($maxW * 0.335, 0);
1565
        $w2    = $w;
1566
        $texto = 'BAIRRO / DISTRITO';
1567
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1568
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1569
        $texto = $this->entrega->getElementsByTagName("xBairro")->item(0)->nodeValue;
1570
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1571
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1572
        //CEP
1573
        $x     += $w;
1574
        $w     = $maxW - ($w1 + $w2);
1575
        $texto = 'CEP';
1576
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1577
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1578
        $texto = ! empty($this->entrega->getElementsByTagName("CEP")->item(0)->nodeValue) ?
1579
            $this->entrega->getElementsByTagName("CEP")->item(0)->nodeValue : '';
1580
        $texto = $this->formatField($texto, "#####-###");
1581
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1582
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1583
        //MUNICÍPIO
1584
        $w     = round($maxW * 0.805, 0);
1585
        $w1    = $w;
1586
        $y     += $h;
1587
        $x     = $oldX;
1588
        $texto = 'MUNICÍPIO';
1589
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1590
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1591
        $texto = $this->entrega->getElementsByTagName("xMun")->item(0)->nodeValue;
1592
        if (strtoupper(trim($texto)) == "EXTERIOR" && $this->entrega->getElementsByTagName("xPais")->length > 0) {
1593
            $texto .= " - " . $this->entrega->getElementsByTagName("xPais")->item(0)->nodeValue;
1594
        }
1595
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1596
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1597
        //UF
1598
        $x     += $w;
1599
        $w     = 8;
1600
        $texto = 'UF';
1601
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1602
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1603
        $texto = $this->entrega->getElementsByTagName("UF")->item(0)->nodeValue;
1604
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1605
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1606
        //FONE / FAX
1607
        $x     += $w;
1608
        $w     = $maxW - $w - $w1;
1609
        $texto = 'FONE / FAX';
1610
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1611
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1612
        $texto = ! empty($this->entrega->getElementsByTagName("fone")->item(0)->nodeValue) ?
1613
            $this->entrega->getElementsByTagName("fone")->item(0)->nodeValue : '';
1614
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1615
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1616
1617
        return ($y + $h);
1618
    } //fim da função localEntregaDANFE
1619
1620
    /**
1621
     * localretiradaDANFE
1622
     * Monta o campo com os dados do local de entrega na DANFE. (retrato e paisagem)
1623
     *
1624
     * @name   localretiradaDANFE
1625
     *
1626
     * @param number $x Posição horizontal canto esquerdo
1627
     * @param number $y Posição vertical canto superior
1628
     *
1629
     * @return number Posição vertical final
1630
     */
1631
    protected function localRetiradaDANFE($x = 0, $y = 0) {
1632
        //####################################################################################
1633
        //LOCAL DE RETIRADA
1634
        $oldX = $x;
1635
        if ($this->orientacao == 'P') {
1636
            $maxW = $this->wPrint;
1637
        } else {
1638
            $maxW = $this->wPrint - $this->wCanhoto;
1639
        }
1640
        $w     = $maxW;
1641
        $h     = 7;
1642
        $texto = 'INFORMAÇÕES DO LOCAL DE RETIRADA';
1643
        $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
1644
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1645
        //NOME / RAZÃO SOCIAL
1646
        $w     = round($maxW * 0.61, 0);
1647
        $w1    = $w;
1648
        $y     += 3;
1649
        $texto = 'NOME / RAZÃO SOCIAL';
1650
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1651
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1652
        $texto = '';
1653
        if ($this->retirada->getElementsByTagName("xNome")->item(0)) {
1654
            $texto = $this->retirada->getElementsByTagName("xNome")->item(0)->nodeValue;
1655
        }
1656
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1657
        if ($this->orientacao == 'P') {
1658
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1659
        } else {
1660
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1661
        }
1662
        //CNPJ / CPF
1663
        $x     += $w;
1664
        $w     = round($maxW * 0.23, 0);
1665
        $w2    = $w;
1666
        $texto = 'CNPJ / CPF';
1667
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1668
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1669
        //Pegando valor do CPF/CNPJ
1670
        if (! empty($this->retirada->getElementsByTagName("CNPJ")->item(0)->nodeValue)) {
1671
            $texto = $this->formatField(
1672
                $this->retirada->getElementsByTagName("CNPJ")->item(0)->nodeValue,
1673
                "###.###.###/####-##"
1674
            );
1675
        } else {
1676
            $texto = ! empty($this->retirada->getElementsByTagName("CPF")->item(0)->nodeValue) ?
1677
                $this->formatField(
1678
                    $this->retirada->getElementsByTagName("CPF")->item(0)->nodeValue,
1679
                    "###.###.###-##"
1680
                ) : '';
1681
        }
1682
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1683
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1684
        //INSCRIÇÃO ESTADUAL
1685
        $x     += $w;
1686
        $w     = $maxW - ($w1 + $w2);
1687
        $wx    = $w;
1688
        $texto = 'INSCRIÇÃO ESTADUAL';
1689
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1690
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1691
        $texto = '';
1692
        if ($this->retirada->getElementsByTagName("IE")->item(0)) {
1693
            $texto = $this->retirada->getElementsByTagName("IE")->item(0)->nodeValue;
1694
        }
1695
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1696
        if ($this->orientacao == 'P') {
1697
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1698
        } else {
1699
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1700
        }
1701
        //ENDEREÇO
1702
        $w     = round($maxW * 0.355, 0) + $wx;
1703
        $w1    = $w;
1704
        $y     += $h;
1705
        $x     = $oldX;
1706
        $texto = 'ENDEREÇO';
1707
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1708
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1709
        $texto = $this->retirada->getElementsByTagName("xLgr")->item(0)->nodeValue;
1710
        $texto .= ', ' . $this->retirada->getElementsByTagName("nro")->item(0)->nodeValue;
1711
        $texto .= $this->getTagValue($this->retirada, "xCpl", " - ");
1712
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1713
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 0, '', true);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1714
        //BAIRRO / DISTRITO
1715
        $x     += $w;
1716
        $w     = round($maxW * 0.335, 0);
1717
        $w2    = $w;
1718
        $texto = 'BAIRRO / DISTRITO';
1719
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1720
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1721
        $texto = $this->retirada->getElementsByTagName("xBairro")->item(0)->nodeValue;
1722
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1723
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1724
        //CEP
1725
        $x     += $w;
1726
        $w     = $maxW - ($w1 + $w2);
1727
        $texto = 'CEP';
1728
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1729
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1730
        $texto = ! empty($this->retirada->getElementsByTagName("CEP")->item(0)->nodeValue) ?
1731
            $this->retirada->getElementsByTagName("CEP")->item(0)->nodeValue : '';
1732
        $texto = $this->formatField($texto, "#####-###");
1733
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1734
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1735
        //MUNICÍPIO
1736
        $w     = round($maxW * 0.805, 0);
1737
        $w1    = $w;
1738
        $y     += $h;
1739
        $x     = $oldX;
1740
        $texto = 'MUNICÍPIO';
1741
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1742
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1743
        $texto = $this->retirada->getElementsByTagName("xMun")->item(0)->nodeValue;
1744
        if (strtoupper(trim($texto)) == "EXTERIOR" && $this->retirada->getElementsByTagName("xPais")->length > 0) {
1745
            $texto .= " - " . $this->retirada->getElementsByTagName("xPais")->item(0)->nodeValue;
1746
        }
1747
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1748
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1749
        //UF
1750
        $x     += $w;
1751
        $w     = 8;
1752
        $texto = 'UF';
1753
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1754
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1755
        $texto = $this->retirada->getElementsByTagName("UF")->item(0)->nodeValue;
1756
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1757
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1758
        //FONE / FAX
1759
        $x     += $w;
1760
        $w     = $maxW - $w - $w1;
1761
        $texto = 'FONE / FAX';
1762
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1763
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1764
        $texto = ! empty($this->retirada->getElementsByTagName("fone")->item(0)->nodeValue) ?
1765
            $this->retirada->getElementsByTagName("fone")->item(0)->nodeValue : '';
1766
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
1767
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1768
1769
        return ($y + $h);
1770
    } //fim da função localRetiradaDANFE
1771
1772
    /**
1773
     * getTextoFatura
1774
     * Gera a String do Texto da Fatura
1775
     *
1776
     * @name   getTextoFatura
1777
     * @return uma String com o texto ou "";
1778
     */
1779
    protected function getTextoFatura() {
1780
        if (isset($this->cobr)) {
1781
            $fat = $this->cobr->getElementsByTagName("fat")->item(0);
1782
            if (isset($fat)) {
1783
                if (! empty($this->getTagValue($this->ide, "indPag"))) {
1784
                    $textoIndPag = "";
1785
                    $indPag      = $this->getTagValue($this->ide, "indPag");
1786
                    if ($indPag === "0") {
1787
                        $textoIndPag = "Pagamento à Vista - ";
1788
                    } elseif ($indPag === "1") {
1789
                        $textoIndPag = "Pagamento à Prazo - ";
1790
                    }
1791
                    $nFat  = $this->getTagValue($fat, "nFat", "Fatura: ");
1792
                    $vOrig = $this->getTagValue($fat, "vOrig", " Valor Original: ");
1793
                    $vDesc = $this->getTagValue($fat, "vDesc", " Desconto: ");
1794
                    $vLiq  = $this->getTagValue($fat, "vLiq", " Valor Líquido: ");
1795
                    $texto = $textoIndPag . $nFat . $vOrig . $vDesc . $vLiq;
1796
1797
                    return $texto;
1798
                } else {
1799
                    $pag = $this->dom->getElementsByTagName("pag");
1800
                    if ($tPag = $this->getTagValue($pag->item(0), "tPag")) {
1801
                        return $this->tipoPag($tPag);
1802
                    }
1803
                }
1804
            }
1805
        }
1806
1807
        return "";
1808
    }
1809
1810
    /**
1811
     * sizeExtraTextoFatura
1812
     * Calcula o espaço ocupado pelo texto da fatura. Este espaço só é utilizado quando não houver duplicata.
1813
     *
1814
     * @name   sizeExtraTextoFatura
1815
     * @return integer
1816
     */
1817
    protected function sizeExtraTextoFatura() {
1818
        $textoFatura = $this->getTextoFatura();
1819
        //verificar se existem duplicatas
1820
        if ($this->dup->length == 0 && $textoFatura !== "") {
0 ignored issues
show
Bug introduced by
The property length does not seem to exist in DOMNode.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1821
            return 10;
1822
        }
1823
1824
        return 0;
1825
    }
1826
1827
    /**
1828
     * fatura
1829
     * Monta o campo de duplicatas da DANFE (retrato e paisagem)
1830
     *
1831
     * @name   fatura
1832
     *
1833
     * @param number $x Posição horizontal canto esquerdo
1834
     * @param number $y Posição vertical canto superior
1835
     *
1836
     * @return number Posição vertical final
1837
     */
1838
    protected function fatura($x, $y) {
1839
        $linha       = 1;
1840
        $h           = 8 + 3;
0 ignored issues
show
Unused Code introduced by
$h is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1841
        $oldx        = $x;
1842
        $textoFatura = $this->getTextoFatura();
1843
        //verificar se existem duplicatas
1844
        if ($this->dup->length > 0 || $textoFatura !== "") {
1845
            //#####################################################################
1846
            //FATURA / DUPLICATA
1847
            $texto = $y . " - FATURA / DUPLICATA";
1848
            if ($this->orientacao == 'P') {
1849
                $w = $this->wPrint;
1850
            } else {
1851
                $w = 271;
1852
            }
1853
            $h     = 8;
1854
            $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
1855
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1856
            $y       += 3;
1857
            $dups    = "";
0 ignored issues
show
Unused Code introduced by
$dups is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1858
            $dupcont = 0;
1859
            $nFat    = $this->dup->length;
0 ignored issues
show
Bug introduced by
The property length does not seem to exist in DOMNode.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1860
            if ($nFat > 7) {
1861
                $myH = 6;
1862
                $myW = $this->wPrint;
1863
                if ($this->orientacao == 'L') {
1864
                    $myW -= $this->wCanhoto;
1865
                }
1866
                $aFont = ['font' => $this->fontePadrao, 'size' => 9, 'style' => ''];
1867
                $texto = "Existem mais de 7 duplicatas registradas, portanto não "
1868
                    . "serão exibidas, confira diretamente pelo XML.";
1869
                $this->pdf->textBox($x, $y, $myW, $myH, $texto, $aFont, 'C', 'C', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1870
1871
                return ($y + $h - 3);
1872
            }
1873
            if ($textoFatura !== "" && $this->exibirTextoFatura) {
1874
                $myH = 6;
1875
                $myW = $this->wPrint;
1876
                if ($this->orientacao == 'L') {
1877
                    $myW -= $this->wCanhoto;
1878
                }
1879
                $aFont = ['font' => $this->fontePadrao, 'size' => 8, 'style' => ''];
1880
                $this->pdf->textBox($x, $y, $myW, $myH, $textoFatura, $aFont, 'C', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1881
                $y += $myH + 1;
1882
            }
1883
            if ($this->orientacao == 'P') {
1884
                $w = round($this->wPrint / 7.018, 0) - 1;
1885
            } else {
1886
                $w = 28;
1887
            }
1888
            $increm = 1;
1889
            foreach ($this->dup as $k => $d) {
0 ignored issues
show
Bug introduced by
The expression $this->dup of type object<DOMNode> is not traversable.
Loading history...
1890
                $nDup  = ! empty($this->dup->item($k)->getElementsByTagName('nDup')->item(0)->nodeValue)
1891
                    ? $this->dup->item($k)->getElementsByTagName('nDup')->item(0)->nodeValue
1892
                    : '';
1893
                $dDup  = ! empty($this->dup->item($k)->getElementsByTagName('dVenc')->item(0)->nodeValue)
1894
                    ? $this->ymdTodmy($this->dup->item($k)->getElementsByTagName('dVenc')->item(0)->nodeValue)
1895
                    : '';
1896
                $vDup  = ! empty($this->dup->item($k)->getElementsByTagName('vDup')->item(0)->nodeValue)
1897
                    ? 'R$ ' . number_format(
1898
                        $this->dup->item($k)->getElementsByTagName('vDup')->item(0)->nodeValue,
1899
                        2,
1900
                        ",",
1901
                        "."
1902
                    )
1903
                    : '';
1904
                $h     = 8;
1905
                $texto = '';
0 ignored issues
show
Unused Code introduced by
$texto is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1906
                if ($nDup != '0' && $nDup != '') {
1907
                    $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1908
                    $this->pdf->textBox($x, $y, $w, $h, 'Num.', $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1909
                    $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
1910
                    $this->pdf->textBox($x, $y, $w, $h, $nDup, $aFont, 'T', 'R', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1911
                } else {
1912
                    $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1913
                    $this->pdf->textBox($x, $y, $w, $h, ($dupcont + 1) . "", $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1914
                }
1915
                $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1916
                $this->pdf->textBox($x, $y, $w, $h, 'Venc.', $aFont, 'C', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1917
                $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
1918
                $this->pdf->textBox($x, $y, $w, $h, $dDup, $aFont, 'C', 'R', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1919
                $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
1920
                $this->pdf->textBox($x, $y, $w, $h, 'Valor', $aFont, 'B', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1921
                $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
1922
                $this->pdf->textBox($x, $y, $w, $h, $vDup, $aFont, 'B', 'R', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1923
                $x       += $w + $increm;
1924
                $dupcont += 1;
1925
                if ($this->orientacao == 'P') {
1926
                    $maxDupCont = 6;
1927
                } else {
1928
                    $maxDupCont = 8;
1929
                }
1930
                if ($dupcont > $maxDupCont) {
1931
                    $y       += 9;
1932
                    $x       = $oldx;
1933
                    $dupcont = 0;
1934
                    $linha   += 1;
1935
                }
1936
                if ($linha == 5) {
1937
                    $linha = 4;
1938
                    break;
1939
                }
1940
            }
1941
            if ($dupcont == 0) {
1942
                $y -= 9;
1943
                $linha --;
1944
            }
1945
1946
            return ($y + $h);
1947
        } else {
1948
            $linha = 0;
0 ignored issues
show
Unused Code introduced by
$linha is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1949
1950
            return ($y - 2);
1951
        }
1952
    }
1953
1954
    /**
1955
     * pagamento
1956
     * Monta o campo de pagamentos da DANFE (retrato e paisagem) (foi baseada na fatura)
1957
     *
1958
     * @name   pagamento
1959
     *
1960
     * @param number $x Posição horizontal canto esquerdo
1961
     * @param number $y Posição vertical canto superior
1962
     *
1963
     * @return number Posição vertical final
1964
     */
1965
    protected function pagamento($x, $y) {
1966
        $linha = 1;
1967
        $h     = 8 + 3;
0 ignored issues
show
Unused Code introduced by
$h is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1968
        $oldx  = $x;
1969
        //verificar se existem cobranças definidas
1970
        if (isset($this->detPag) && $this->detPag->length > 0) {
1971
            //#####################################################################
1972
            //Tipo de pagamento
1973
            $texto = "PAGAMENTO";
1974
            if ($this->orientacao == 'P') {
1975
                $w = $this->wPrint;
1976
            } else {
1977
                $w = 271;
1978
            }
1979
            $h     = 8;
1980
            $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
1981
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
1982
            $y       += 3;
1983
            $dups    = "";
0 ignored issues
show
Unused Code introduced by
$dups is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
1984
            $dupcont = 0;
1985
            if ($this->orientacao == 'P') {
1986
                $w = round($this->wPrint / 7.018, 0) - 1;
1987
            } else {
1988
                $w = 28;
1989
            }
1990
            if ($this->orientacao == 'P') {
1991
                $maxDupCont = 6;
1992
            } else {
1993
                $maxDupCont = 8;
1994
            }
1995
            $increm         = 1;
1996
            $formaPagamento = [
1997
                '01' => 'Dinheiro',
1998
                '02' => 'Cheque',
1999
                '03' => 'Cartão de Crédito',
2000
                '04' => 'Cartão de Débito',
2001
                '05' => 'Crédito Loja',
2002
                '10' => 'Vale Alimentação',
2003
                '11' => 'Vale Refeição',
2004
                '12' => 'Vale Presente',
2005
                '13' => 'Vale Combustível',
2006
                '14' => 'Duplicata Mercantil',
2007
                '15' => 'Boleto',
2008
                '90' => 'Sem pagamento',
2009
                '99' => 'Outros'
2010
            ];
2011
            $bandeira       = [
0 ignored issues
show
Unused Code introduced by
$bandeira is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
2012
                '01' => 'Visa',
2013
                '02' => 'Mastercard',
2014
                '03' => 'American',
2015
                '04' => 'Sorocred',
2016
                '05' => 'Diners',
2017
                '06' => 'Elo',
2018
                '07' => 'Hipercard',
2019
                '08' => 'Aura',
2020
                '09' => 'Cabal',
2021
                '99' => 'Outros'
2022
            ];
2023
            foreach ($this->detPag as $k => $d) {
2024
                $fPag  = ! empty($this->detPag->item($k)->getElementsByTagName('tPag')->item(0)->nodeValue)
2025
                    ? $this->detPag->item($k)->getElementsByTagName('tPag')->item(0)->nodeValue
2026
                    : '0';
2027
                $vPag  = ! empty($this->detPag->item($k)->getElementsByTagName('vPag')->item(0)->nodeValue)
2028
                    ? 'R$ ' . number_format(
2029
                        $this->detPag->item($k)->getElementsByTagName('vPag')->item(0)->nodeValue,
2030
                        2,
2031
                        ",",
2032
                        "."
2033
                    )
2034
                    : '';
2035
                $h     = 6;
2036
                $texto = '';
0 ignored issues
show
Unused Code introduced by
$texto is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
2037
                if (isset($formaPagamento[$fPag])) {
2038
                    /*Exibir Item sem pagamento*/
2039
                    if ($fPag == '90') {
2040
                        continue;
2041
                    }
2042
                    $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2043
                    $this->pdf->textBox($x, $y, $w, $h, 'Forma', $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2044
                    $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
2045
                    $this->pdf->textBox($x, $y, $w, $h, $formaPagamento[$fPag], $aFont, 'T', 'R', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2046
                } else {
2047
                    $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => ''];
2048
                    $this->pdf->textBox($x, $y, $w, $h, "Forma " . $fPag . " não encontrado", $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2049
                }
2050
                $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2051
                $this->pdf->textBox($x, $y, $w, $h, 'Valor', $aFont, 'B', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2052
                $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
2053
                $this->pdf->textBox($x, $y, $w, $h, $vPag, $aFont, 'B', 'R', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2054
                $x       += $w + $increm;
2055
                $dupcont += 1;
2056
2057
                if ($dupcont > $maxDupCont) {
2058
                    $y       += 9;
2059
                    $x       = $oldx;
2060
                    $dupcont = 0;
2061
                    $linha   += 1;
2062
                }
2063
                if ($linha == 5) {
2064
                    $linha = 4;
2065
                    break;
2066
                }
2067
            }
2068
            if ($dupcont == 0) {
2069
                $y -= 9;
2070
                $linha --;
2071
            }
2072
2073
            return ($y + $h);
2074
        } else {
2075
            $linha = 0;
0 ignored issues
show
Unused Code introduced by
$linha is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
2076
2077
            return ($y - 2);
2078
        }
2079
    } //fim da função pagamento
2080
2081
    /**
2082
     * impostoHelper
2083
     * Auxilia a montagem dos campos de impostos e totais da DANFE
2084
     *
2085
     * @name   impostoHelper
2086
     *
2087
     * @param float $x Posição horizontal canto esquerdo
2088
     * @param float $y Posição vertical canto superior
2089
     * @param float $w Largura do campo
2090
     * @param float $h Altura do campo
2091
     * @param float $h Título do campo
2092
     * @param float $h Valor do imposto
2093
     *
2094
     * @return float Sugestão do $x do próximo imposto
2095
     */
2096
    protected function impostoHelper($x, $y, $w, $h, $titulo, $campoImposto) {
2097
        $valorImposto = '0,00';
2098
        $the_field    = $this->ICMSTot->getElementsByTagName($campoImposto)->item(0);
2099
        if (isset($the_field)) {
2100
            $the_value = $the_field->nodeValue;
2101
            if (! empty($the_value)) {
2102
                $valorImposto = number_format($the_value, 2, ",", ".");
2103
            }
2104
        }
2105
2106
        $fontTitulo = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2107
        $fontValor  = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2108
        $this->pdf->textBox($x, $y, $w, $h, $titulo, $fontTitulo, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2109
        $this->pdf->textBox($x, $y, $w, $h, $valorImposto, $fontValor, 'B', 'R', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2110
2111
        $next_x = $x + $w;
2112
2113
        return $next_x;
2114
    }
2115
2116
    /**
2117
     * imposto
2118
     * Monta o campo de impostos e totais da DANFE (retrato e paisagem)
2119
     *
2120
     * @param number $x Posição horizontal canto esquerdo
2121
     * @param number $y Posição vertical canto superior
2122
     *
2123
     * @return number Posição vertical final
2124
     */
2125
    protected function imposto($x, $y) {
2126
        $x_inicial = $x;
2127
        //#####################################################################
2128
        $campos_por_linha = 9;
2129
        if (! $this->exibirPIS) {
2130
            $campos_por_linha --;
2131
        }
2132
        if (! $this->exibirIcmsInterestadual) {
2133
            $campos_por_linha -= 2;
2134
        }
2135
2136
        if ($this->orientacao == 'P') {
2137
            $maxW       = $this->wPrint;
2138
            $title_size = 31;
2139
        } else {
2140
            $maxW       = $this->wPrint - $this->wCanhoto;
2141
            $title_size = 40;
2142
        }
2143
        $w = $maxW / $campos_por_linha;
2144
2145
        $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
2146
        $texto = "CÁLCULO DO IMPOSTO";
2147
        $this->pdf->textBox($x, $y, $title_size, 8, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2148
        $y += 3;
2149
        $h = 7;
2150
2151
        $x = $this->impostoHelper($x, $y, $w, $h, "BASE DE CÁLC. DO ICMS", "vBC");
2152
        $x = $this->impostoHelper($x, $y, $w, $h, "VALOR DO ICMS", "vICMS");
2153
        $x = $this->impostoHelper($x, $y, $w, $h, "BASE DE CÁLC. ICMS S.T.", "vBCST");
2154
        $x = $this->impostoHelper($x, $y, $w, $h, "VALOR DO ICMS SUBST.", "vST");
2155
        $x = $this->impostoHelper($x, $y, $w, $h, "V. IMP. IMPORTAÇÃO", "vII");
2156
2157
        if ($this->exibirIcmsInterestadual) {
2158
            $x = $this->impostoHelper($x, $y, $w, $h, "V. ICMS UF REMET.", "vICMSUFRemet");
2159
            $x = $this->impostoHelper($x, $y, $w, $h, "V. FCP UF DEST.", "vFCPUFDest");
2160
        }
2161
2162
        if ($this->exibirPIS) {
2163
            $x = $this->impostoHelper($x, $y, $w, $h, "VALOR DO PIS", "vPIS");
2164
        }
2165
2166
        $x = $this->impostoHelper($x, $y, $w, $h, "V. TOTAL PRODUTOS", "vProd");
0 ignored issues
show
Unused Code introduced by
$x is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
2167
2168
        //
2169
2170
        $y += $h;
2171
        $x = $x_inicial;
2172
2173
        $x = $this->impostoHelper($x, $y, $w, $h, "VALOR DO FRETE", "vFrete");
2174
        $x = $this->impostoHelper($x, $y, $w, $h, "VALOR DO SEGURO", "vSeg");
2175
        $x = $this->impostoHelper($x, $y, $w, $h, "DESCONTO", "vDesc");
2176
        $x = $this->impostoHelper($x, $y, $w, $h, "OUTRAS DESPESAS", "vOutro");
2177
        $x = $this->impostoHelper($x, $y, $w, $h, "VALOR TOTAL IPI", "vIPI");
2178
2179
        if ($this->exibirIcmsInterestadual) {
2180
            $x = $this->impostoHelper($x, $y, $w, $h, "V. ICMS UF DEST.", "vICMSUFDest");
2181
            $x = $this->impostoHelper($x, $y, $w, $h, "V. TOT. TRIB.", "vTotTrib");
2182
        }
2183
        if ($this->exibirPIS) {
2184
            $x = $this->impostoHelper($x, $y, $w, $h, "VALOR DA COFINS", "vCOFINS");
2185
        }
2186
        $x = $this->impostoHelper($x, $y, $w, $h, "V. TOTAL DA NOTA", "vNF");
0 ignored issues
show
Unused Code introduced by
$x is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
2187
2188
        return ($y + $h);
2189
    } //fim imposto
2190
2191
    /**
2192
     * transporte
2193
     * Monta o campo de transportes da DANFE (retrato e paisagem)
2194
     *
2195
     * @name   transporte
2196
     *
2197
     * @param float $x Posição horizontal canto esquerdo
2198
     * @param float $y Posição vertical canto superior
2199
     *
2200
     * @return float Posição vertical final
2201
     */
2202
    protected function transporte($x, $y) {
2203
        $oldX = $x;
2204
        if ($this->orientacao == 'P') {
2205
            $maxW = $this->wPrint;
2206
        } else {
2207
            $maxW = $this->wPrint - $this->wCanhoto;
2208
        }
2209
        //#####################################################################
2210
        //TRANSPORTADOR / VOLUMES TRANSPORTADOS
2211
        $texto = "TRANSPORTADOR / VOLUMES TRANSPORTADOS";
2212
        $w     = $maxW;
2213
        $h     = 7;
2214
        $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
2215
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2216
        //NOME / RAZÃO SOCIAL
2217
        $w1    = $maxW * 0.29;
2218
        $y     += 3;
2219
        $texto = 'NOME / RAZÃO SOCIAL';
2220
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2221
        $this->pdf->textBox($x, $y, $w1, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2222
        if (isset($this->transporta)) {
2223
            $texto = ! empty($this->transporta->getElementsByTagName("xNome")->item(0)->nodeValue)
2224
                ? $this->transporta->getElementsByTagName("xNome")->item(0)->nodeValue
2225
                : '';
2226
        } else {
2227
            $texto = '';
2228
        }
2229
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2230
        $this->pdf->textBox($x, $y, $w1, $h, $texto, $aFont, 'B', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2231
        //FRETE POR CONTA
2232
        $x     += $w1;
2233
        $w2    = $maxW * 0.15;
2234
        $texto = 'FRETE';
2235
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2236
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2237
        $tipoFrete = ! empty($this->transp->getElementsByTagName("modFrete")->item(0)->nodeValue)
2238
            ? $this->transp->getElementsByTagName("modFrete")->item(0)->nodeValue
2239
            : '0';
2240
        switch ($tipoFrete) {
2241
            case 0:
2242
                $texto = "0-Por conta do Rem";
2243
                break;
2244
            case 1:
2245
                $texto = "1-Por conta do Dest";
2246
                break;
2247
            case 2:
2248
                $texto = "2-Por conta de Terceiros";
2249
                break;
2250
            case 3:
2251
                $texto = "3-Próprio por conta do Rem";
2252
                break;
2253
            case 4:
2254
                $texto = "4-Próprio por conta do Dest";
2255
                break;
2256
            case 9:
2257
                $texto = "9-Sem Transporte";
2258
                break;
2259
        }
2260
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2261
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'C', 'C', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2262
        //CÓDIGO ANTT
2263
        $x     += $w2;
2264
        $texto = 'CÓDIGO ANTT';
2265
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2266
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2267
        if (isset($this->veicTransp)) {
2268
            $texto = ! empty($this->veicTransp->getElementsByTagName("RNTC")->item(0)->nodeValue)
2269
                ? $this->veicTransp->getElementsByTagName("RNTC")->item(0)->nodeValue
2270
                : '';
2271
        } else {
2272
            $texto = '';
2273
        }
2274
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2275
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2276
        //PLACA DO VEÍC
2277
        $x     += $w2;
2278
        $texto = 'PLACA DO VEÍCULO';
2279
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2280
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2281
        if (isset($this->veicTransp)) {
2282
            $texto = ! empty($this->veicTransp->getElementsByTagName("placa")->item(0)->nodeValue)
2283
                ? $this->veicTransp->getElementsByTagName("placa")->item(0)->nodeValue
2284
                : '';
2285
        } elseif (isset($this->reboque)) {
2286
            $texto = ! empty($this->reboque->getElementsByTagName("placa")->item(0)->nodeValue)
2287
                ? $this->reboque->getElementsByTagName("placa")->item(0)->nodeValue
2288
                : '';
2289
        } else {
2290
            $texto = '';
2291
        }
2292
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2293
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2294
        //UF
2295
        $x     += $w2;
2296
        $w3    = round($maxW * 0.04, 0);
2297
        $texto = 'UF';
2298
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2299
        $this->pdf->textBox($x, $y, $w3, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2300
        if (isset($this->veicTransp)) {
2301
            $texto = ! empty($this->veicTransp->getElementsByTagName("UF")->item(0)->nodeValue)
2302
                ? $this->veicTransp->getElementsByTagName("UF")->item(0)->nodeValue
2303
                : '';
2304
        } elseif (isset($this->reboque)) {
2305
            $texto = ! empty($this->reboque->getElementsByTagName("UF")->item(0)->nodeValue)
2306
                ? $this->reboque->getElementsByTagName("UF")->item(0)->nodeValue
2307
                : '';
2308
        } else {
2309
            $texto = '';
2310
        }
2311
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2312
        $this->pdf->textBox($x, $y, $w3, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2313
        //CNPJ / CPF
2314
        $x     += $w3;
2315
        $w     = $maxW - ($w1 + 3 * $w2 + $w3);
2316
        $texto = 'CNPJ / CPF';
2317
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2318
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2319
        if (isset($this->transporta)) {
2320
            $texto = ! empty($this->transporta->getElementsByTagName("CNPJ")->item(0)->nodeValue)
2321
                ? $this->formatField(
2322
                    $this->transporta->getElementsByTagName("CNPJ")->item(0)->nodeValue,
2323
                    "##.###.###/####-##"
2324
                )
2325
                : '';
2326
            if ($texto == '') {
2327
                $texto = ! empty($this->transporta->getElementsByTagName("CPF")->item(0)->nodeValue)
2328
                    ? $this->formatField(
2329
                        $this->transporta->getElementsByTagName("CPF")->item(0)->nodeValue,
2330
                        "###.###.###-##"
2331
                    )
2332
                    : '';
2333
            }
2334
        } else {
2335
            $texto = '';
2336
        }
2337
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2338
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2339
        //#####################################################################
2340
        //ENDEREÇO
2341
        $y     += $h;
2342
        $x     = $oldX;
2343
        $h     = 7;
2344
        $w1    = $maxW * 0.44;
2345
        $texto = 'ENDEREÇO';
2346
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2347
        $this->pdf->textBox($x, $y, $w1, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2348
        if (isset($this->transporta)) {
2349
            $texto = ! empty($this->transporta->getElementsByTagName("xEnder")->item(0)->nodeValue)
2350
                ? $this->transporta->getElementsByTagName("xEnder")->item(0)->nodeValue
2351
                : '';
2352
        } else {
2353
            $texto = '';
2354
        }
2355
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2356
        $this->pdf->textBox($x, $y, $w1, $h, $texto, $aFont, 'B', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2357
        //MUNICÍPIO
2358
        $x     += $w1;
2359
        $w2    = round($maxW * 0.30, 0);
2360
        $texto = 'MUNICÍPIO';
2361
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2362
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2363
        if (isset($this->transporta)) {
2364
            $texto = ! empty($this->transporta->getElementsByTagName("xMun")->item(0)->nodeValue)
2365
                ? $this->transporta->getElementsByTagName("xMun")->item(0)->nodeValue
2366
                : '';
2367
        } else {
2368
            $texto = '';
2369
        }
2370
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2371
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2372
        //UF
2373
        $x     += $w2;
2374
        $w3    = round($maxW * 0.04, 0);
2375
        $texto = 'UF';
2376
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2377
        $this->pdf->textBox($x, $y, $w3, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2378
        if (isset($this->transporta)) {
2379
            $texto = ! empty($this->transporta->getElementsByTagName("UF")->item(0)->nodeValue)
2380
                ? $this->transporta->getElementsByTagName("UF")->item(0)->nodeValue
2381
                : '';
2382
        } else {
2383
            $texto = '';
2384
        }
2385
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2386
        $this->pdf->textBox($x, $y, $w3, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2387
        //INSCRIÇÃO ESTADUAL
2388
        $x     += $w3;
2389
        $w     = $maxW - ($w1 + $w2 + $w3);
2390
        $texto = 'INSCRIÇÃO ESTADUAL';
2391
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2392
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2393
        $texto = '';
2394
        if (isset($this->transporta)) {
2395
            if (! empty($this->transporta->getElementsByTagName("IE")->item(0)->nodeValue)) {
2396
                $texto = $this->transporta->getElementsByTagName("IE")->item(0)->nodeValue;
2397
            }
2398
        }
2399
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2400
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2401
        //Tratar Multiplos volumes
2402
        $volumes     = $this->transp->getElementsByTagName('vol');
2403
        $quantidade  = 0;
2404
        $especie     = '';
2405
        $marca       = '';
2406
        $numero      = '';
2407
        $texto       = '';
0 ignored issues
show
Unused Code introduced by
$texto is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
2408
        $pesoBruto   = 0;
2409
        $pesoLiquido = 0;
2410
        foreach ($volumes as $volume) {
2411
            $quantidade  += ! empty($volume->getElementsByTagName("qVol")->item(0)->nodeValue) ?
2412
                $volume->getElementsByTagName("qVol")->item(0)->nodeValue : 0;
2413
            $pesoBruto   += ! empty($volume->getElementsByTagName("pesoB")->item(0)->nodeValue) ?
2414
                $volume->getElementsByTagName("pesoB")->item(0)->nodeValue : 0;
2415
            $pesoLiquido += ! empty($volume->getElementsByTagName("pesoL")->item(0)->nodeValue) ?
2416
                $volume->getElementsByTagName("pesoL")->item(0)->nodeValue : 0;
2417
            $texto       = ! empty($this->transp->getElementsByTagName("esp")->item(0)->nodeValue) ?
2418
                $this->transp->getElementsByTagName("esp")->item(0)->nodeValue : '';
2419
            if ($texto != $especie && $especie != '') {
2420
                //tem várias especies
2421
                $especie = 'VARIAS';
2422
            } else {
2423
                $especie = $texto;
2424
            }
2425
            $texto = ! empty($this->transp->getElementsByTagName("marca")->item(0)->nodeValue)
2426
                ? $this->transp->getElementsByTagName("marca")->item(0)->nodeValue
2427
                : '';
2428
            if ($texto != $marca && $marca != '') {
2429
                //tem várias especies
2430
                $marca = 'VARIAS';
2431
            } else {
2432
                $marca = $texto;
2433
            }
2434
            $texto = ! empty($this->transp->getElementsByTagName("nVol")->item(0)->nodeValue)
2435
                ? $this->transp->getElementsByTagName("nVol")->item(0)->nodeValue
2436
                : '';
2437
            if ($texto != $numero && $numero != '') {
2438
                //tem várias especies
2439
                $numero = 'VARIOS';
2440
            } else {
2441
                $numero = $texto;
2442
            }
2443
        }
2444
2445
        //#####################################################################
2446
        //QUANTIDADE
2447
        $y     += $h;
2448
        $x     = $oldX;
2449
        $h     = 7;
2450
        $w1    = round($maxW * 0.10, 0);
2451
        $texto = 'QUANTIDADE';
2452
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2453
        $this->pdf->textBox($x, $y, $w1, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2454
        if (! empty($quantidade)) {
2455
            $texto = $quantidade;
2456
            $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2457
            $this->pdf->textBox($x, $y, $w1, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2458
        }
2459
        //ESPÉCIE
2460
        $x     += $w1;
2461
        $w2    = round($maxW * 0.17, 0);
2462
        $texto = 'ESPÉCIE';
2463
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2464
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2465
        $texto = $especie;
2466
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2467
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2468
        //MARCA
2469
        $x     += $w2;
2470
        $texto = 'MARCA';
2471
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2472
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2473
        $texto = ! empty($this->transp->getElementsByTagName("marca")->item(0)->nodeValue) ?
2474
            $this->transp->getElementsByTagName("marca")->item(0)->nodeValue : '';
2475
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2476
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2477
        //NUMERAÇÃO
2478
        $x     += $w2;
2479
        $texto = 'NUMERAÇÃO';
2480
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2481
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2482
        $texto = $numero;
2483
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2484
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'B', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2485
        //PESO BRUTO
2486
        $x     += $w2;
2487
        $w3    = round($maxW * 0.20, 0);
2488
        $texto = 'PESO BRUTO';
2489
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2490
        $this->pdf->textBox($x, $y, $w3, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2491
        if (is_numeric($pesoBruto) && $pesoBruto > 0) {
2492
            $texto = number_format($pesoBruto, 3, ",", ".");
2493
        } else {
2494
            $texto = '';
2495
        }
2496
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2497
        $this->pdf->textBox($x, $y, $w3, $h, $texto, $aFont, 'B', 'R', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2498
        //PESO LÍQUIDO
2499
        $x     += $w3;
2500
        $w     = $maxW - ($w1 + 3 * $w2 + $w3);
2501
        $texto = 'PESO LÍQUIDO';
2502
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2503
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2504
        if (is_numeric($pesoLiquido) && $pesoLiquido > 0) {
2505
            $texto = number_format($pesoLiquido, 3, ",", ".");
2506
        } else {
2507
            $texto = '';
2508
        }
2509
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
2510
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'R', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2511
2512
        return ($y + $h);
2513
    } //fim transporte
2514
2515
2516
    protected function descricaoProdutoHelper($origem, $campo, $formato) {
2517
        $valor_original = $origem->getElementsByTagName($campo)->item(0);
2518
        if (! isset($valor_original)) {
2519
            return "";
2520
        }
2521
        $valor_original = $valor_original->nodeValue;
2522
        $valor          = ! empty($valor_original) ? number_format($valor_original, 2, ",", ".") : '';
2523
2524
        if ($valor != "") {
2525
            return sprintf($formato, $valor);
2526
        }
2527
2528
        return "";
2529
    }
2530
2531
    /**
2532
     * descricaoProduto
2533
     * Monta a string de descrição de cada Produto
2534
     *
2535
     * @name   descricaoProduto
2536
     *
2537
     * @param DOMNode itemProd
2538
     *
2539
     * @return string descricao do produto
2540
     */
2541
    protected function descricaoProduto($itemProd) {
2542
        $prod       = $itemProd->getElementsByTagName('prod')->item(0);
2543
        $ICMS       = $itemProd->getElementsByTagName("ICMS")->item(0);
2544
        $ICMSUFDest = $itemProd->getElementsByTagName("ICMSUFDest")->item(0);
2545
        $impostos   = '';
2546
2547
        if (! empty($ICMS)) {
2548
            $impostos .= $this->descricaoProdutoHelper($ICMS, "vBCFCP", " BcFcp=%s");
2549
            $impostos .= $this->descricaoProdutoHelper($ICMS, "pFCP", " pFcp=%s%%");
2550
            $impostos .= $this->descricaoProdutoHelper($ICMS, "vFCP", " vFcp=%s");
2551
            $impostos .= $this->descricaoProdutoHelper($ICMS, "pRedBC", " pRedBC=%s%%");
2552
            $impostos .= $this->descricaoProdutoHelper($ICMS, "pMVAST", " IVA/MVA=%s%%");
2553
            $impostos .= $this->descricaoProdutoHelper($ICMS, "pICMSST", " pIcmsSt=%s%%");
2554
            $impostos .= $this->descricaoProdutoHelper($ICMS, "vBCST", " BcIcmsSt=%s");
2555
            $impostos .= $this->descricaoProdutoHelper($ICMS, "vICMSST", " vIcmsSt=%s");
2556
            $impostos .= $this->descricaoProdutoHelper($ICMS, "vBCFCPST", " BcFcpSt=%s");
2557
            $impostos .= $this->descricaoProdutoHelper($ICMS, "pFCPST", " pFcpSt=%s%%");
2558
            $impostos .= $this->descricaoProdutoHelper($ICMS, "vFCPST", " vFcpSt=%s");
2559
            $impostos .= $this->descricaoProdutoHelper($ICMS, "vBCSTRet", " Retido na compra: BASE ICMS ST=%s");
2560
            $impostos .= $this->descricaoProdutoHelper($ICMS, "pST", " pSt=%s");
2561
            $impostos .= $this->descricaoProdutoHelper($ICMS, "vICMSSTRet", " VALOR ICMS ST=%s");
2562
        }
2563
        if (! empty($ICMSUFDest)) {
2564
            $impostos .= $this->descricaoProdutoHelper($ICMSUFDest, "pFCPUFDest", " pFCPUFDest=%s%%");
2565
            $impostos .= $this->descricaoProdutoHelper($ICMSUFDest, "pICMSUFDest", " pICMSUFDest=%s%%");
2566
            $impostos .= $this->descricaoProdutoHelper($ICMSUFDest, "pICMSInterPart", " pICMSInterPart=%s%%");
2567
            $impostos .= $this->descricaoProdutoHelper($ICMSUFDest, "vFCPUFDest", " vFCPUFDest=%s");
2568
            $impostos .= $this->descricaoProdutoHelper($ICMSUFDest, "vICMSUFDest", " vICMSUFDest=%s");
2569
            $impostos .= $this->descricaoProdutoHelper($ICMSUFDest, "vICMSUFRemet", " vICMSUFRemet=%s");
2570
        }
2571
        $infAdProd = ! empty($itemProd->getElementsByTagName('infAdProd')->item(0)->nodeValue)
2572
            ? substr(
2573
                $this->anfaveaDANFE($itemProd->getElementsByTagName('infAdProd')->item(0)->nodeValue),
2574
                0,
2575
                500
2576
            )
2577
            : '';
2578
        if (! empty($infAdProd)) {
2579
            $infAdProd = trim($infAdProd);
2580
            $infAdProd .= ' ';
2581
        }
2582
        $loteTxt = '';
2583
        $rastro  = $prod->getElementsByTagName("med");
0 ignored issues
show
Unused Code introduced by
$rastro is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
2584
        if (! empty($prod->getElementsByTagName("rastro"))) {
2585
            $rastro = $prod->getElementsByTagName("rastro");
2586
            $i      = 0;
2587
            while ($i < $rastro->length) {
2588
                $loteTxt .= $this->getTagValue($rastro->item($i), 'nLote', ' Lote: ');
2589
                $loteTxt .= $this->getTagValue($rastro->item($i), 'qLote', ' Quant: ');
2590
                $loteTxt .= $this->getTagDate($rastro->item($i), 'dFab', ' Fab: ');
2591
                $loteTxt .= $this->getTagDate($rastro->item($i), 'dVal', ' Val: ');
2592
                $loteTxt .= $this->getTagValue($rastro->item($i), 'vPMC', ' PMC: ');
2593
                $i ++;
2594
            }
2595
            if ($loteTxt != '') {
2596
                $loteTxt .= ' ';
2597
            }
2598
        }
2599
        //NT2013.006 FCI
2600
        $nFCI   = (! empty($itemProd->getElementsByTagName('nFCI')->item(0)->nodeValue)) ?
2601
            ' FCI:' . $itemProd->getElementsByTagName('nFCI')->item(0)->nodeValue : '';
2602
        $tmp_ad = $infAdProd . ($this->descProdInfoComplemento ? $loteTxt . $impostos . $nFCI : '');
2603
        $texto  = $prod->getElementsByTagName("xProd")->item(0)->nodeValue
2604
            . (strlen($tmp_ad) != 0 ? "\n    " . $tmp_ad : '');
2605
        //decodifica os caracteres html no xml
2606
        $texto = html_entity_decode($texto);
2607
        if ($this->descProdQuebraLinha) {
2608
            $texto = str_replace(";", "\n", $texto);
2609
        }
2610
2611
        return $texto;
2612
    }
2613
2614
    /**
2615
     * itens
2616
     * Monta o campo de itens da DANFE (retrato e paisagem)
2617
     *
2618
     * @name   itens
2619
     *
2620
     * @param float $x       Posição horizontal canto esquerdo
2621
     * @param float $y       Posição vertical canto superior
2622
     * @param float $nInicio Número do item inicial
2623
     * @param float $max     Número do item final
0 ignored issues
show
Bug introduced by
There is no parameter named $max. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
2624
     * @param float $hmax    Altura máxima do campo de itens em mm
2625
     *
2626
     * @return float Posição vertical final
2627
     */
2628
    protected function itens($x, $y, &$nInicio, $hmax, $pag = 0, $totpag = 0, $hCabecItens = 7) {
2629
2630
        $oldX     = $x;
2631
        $oldY     = $y;
2632
        $totItens = $this->det->length;
0 ignored issues
show
Bug introduced by
The property length does not seem to exist in DOMNode.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
2633
        //#####################################################################
2634
        //DADOS DOS PRODUTOS / SERVIÇOS
2635
        $texto = "DADOS DOS PRODUTOS / SERVIÇOS";
2636
        if ($this->orientacao == 'P') {
2637
            $w = $this->wPrint;
2638
        } else {
2639
            if ($nInicio < 2) { // primeira página
2640
                $w = $this->wPrint - $this->wCanhoto;
2641
            } else { // páginas seguintes
2642
                $w = $this->wPrint;
2643
            }
2644
        }
2645
        $h     = 4;
2646
        $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
2647
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2648
        $y += 3;
2649
        //desenha a caixa dos dados dos itens da NF
2650
        $hmax  += 1;
2651
        $texto = '';
0 ignored issues
show
Unused Code introduced by
$texto is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
2652
        $this->pdf->textBox($x, $y, $w, $hmax);
2653
        //##################################################################################
2654
        // cabecalho LOOP COM OS DADOS DOS PRODUTOS
2655
        //CÓDIGO PRODUTO
2656
        $texto = "CÓDIGO PRODUTO";
2657
        $w1    = round($w * 0.09, 0);
2658
        $h     = 4;
2659
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2660
        $this->pdf->textBox($x, $y, $w1, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2661
        $this->pdf->line($x + $w1, $y, $x + $w1, $y + $hmax);
2662
        //DESCRIÇÃO DO PRODUTO / SERVIÇO
2663
        $x     += $w1;
2664
        $w2    = round($w * 0.25, 0);
2665
        $texto = 'DESCRIÇÃO DO PRODUTO / SERVIÇO';
2666
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2667
        $this->pdf->textBox($x, $y, $w2, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2668
        $this->pdf->line($x + $w2, $y, $x + $w2, $y + $hmax);
2669
        //NCM/SH
2670
        $x     += $w2;
2671
        $w3    = round($w * 0.06, 0);
2672
        $texto = 'NCM/SH';
2673
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2674
        $this->pdf->textBox($x, $y, $w3, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2675
        $this->pdf->line($x + $w3, $y, $x + $w3, $y + $hmax);
2676
        //O/CST ou O/CSOSN
2677
        $x     += $w3;
2678
        $w4    = round($w * 0.05, 0);
2679
        $texto = 'O/CSOSN';//Regime do Simples CRT = 1 ou CRT = 2
2680
        if ($this->getTagValue($this->emit, 'CRT') == '3') {
2681
            $texto = 'O/CST';//Regime Normal
2682
        }
2683
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2684
        $this->pdf->textBox($x, $y, $w4, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2685
        $this->pdf->line($x + $w4, $y, $x + $w4, $y + $hmax);
2686
        //CFOP
2687
        $x     += $w4;
2688
        $w5    = round($w * 0.04, 0);
2689
        $texto = 'CFOP';
2690
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2691
        $this->pdf->textBox($x, $y, $w5, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2692
        $this->pdf->line($x + $w5, $y, $x + $w5, $y + $hmax);
2693
        //UN
2694
        $x     += $w5;
2695
        $w6    = round($w * 0.03, 0);
2696
        $texto = 'UN';
2697
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2698
        $this->pdf->textBox($x, $y, $w6, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2699
        $this->pdf->line($x + $w6, $y, $x + $w6, $y + $hmax);
2700
        //QUANT
2701
        $x     += $w6;
2702
        $w7    = round($w * 0.08, 0);
2703
        $texto = 'QUANT';
2704
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2705
        $this->pdf->textBox($x, $y, $w7, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2706
        $this->pdf->line($x + $w7, $y, $x + $w7, $y + $hmax);
2707
        //VALOR UNIT
2708
        $x     += $w7;
2709
        $w8    = round($w * 0.06, 0);
2710
        $texto = 'VALOR UNIT';
2711
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2712
        $this->pdf->textBox($x, $y, $w8, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2713
        $this->pdf->line($x + $w8, $y, $x + $w8, $y + $hmax);
2714
        //VALOR TOTAL
2715
        $x     += $w8;
2716
        $w9    = round($w * 0.06, 0);
2717
        $texto = 'VALOR TOTAL';
2718
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2719
        $this->pdf->textBox($x, $y, $w9, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2720
        $this->pdf->line($x + $w9, $y, $x + $w9, $y + $hmax);
2721
        //VALOR DESCONTO
2722
        $x     += $w9;
2723
        $w10   = round($w * 0.05, 0);
2724
        $texto = 'VALOR DESC';
2725
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2726
        $this->pdf->textBox($x, $y, $w10, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2727
        $this->pdf->line($x + $w10, $y, $x + $w10, $y + $hmax);
2728
        //B.CÁLC ICMS
2729
        $x     += $w10;
2730
        $w11   = round($w * 0.06, 0);
2731
        $texto = 'B.CÁLC ICMS';
2732
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2733
        $this->pdf->textBox($x, $y, $w11, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2734
        $this->pdf->line($x + $w11, $y, $x + $w11, $y + $hmax);
2735
        //VALOR ICMS
2736
        $x     += $w11;
2737
        $w12   = round($w * 0.06, 0);
2738
        $texto = 'VALOR ICMS';
2739
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2740
        $this->pdf->textBox($x, $y, $w12, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2741
        $this->pdf->line($x + $w12, $y, $x + $w12, $y + $hmax);
2742
        //VALOR IPI
2743
        $x     += $w12;
2744
        $w13   = round($w * 0.05, 0);
2745
        $texto = 'VALOR IPI';
2746
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2747
        $this->pdf->textBox($x, $y, $w13, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2748
        $this->pdf->line($x + $w13, $y, $x + $w13, $y + $hmax);
2749
        //ALÍQ. ICMS
2750
        $x     += $w13;
2751
        $w14   = round($w * 0.04, 0);
2752
        $texto = 'ALÍQ. ICMS';
2753
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
2754
        $this->pdf->textBox($x, $y, $w14, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2755
        $this->pdf->line($x + $w14, $y, $x + $w14, $y + $hmax);
2756
        //ALÍQ. IPI
2757
        $x     += $w14;
2758
        $w15   = $w - ($w1 + $w2 + $w3 + $w4 + $w5 + $w6 + $w7 + $w8 + $w9 + $w10 + $w11 + $w12 + $w13 + $w14);
2759
        $texto = 'ALÍQ. IPI';
2760
        $this->pdf->textBox($x, $y, $w15, $h, $texto, $aFont, 'C', 'C', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2761
        $this->pdf->line($oldX, $y + $h + 1, $oldX + $w, $y + $h + 1);
2762
        $y += 5;
2763
        //##################################################################################
2764
        // LOOP COM OS DADOS DOS PRODUTOS
2765
        $i      = 0;
2766
        $hUsado = $hCabecItens;
2767
        $aFont  = ['font' => $this->fontePadrao, 'size' => 7, 'style' => ''];
2768
2769
        foreach ($this->det as $d) {
0 ignored issues
show
Bug introduced by
The expression $this->det of type object<DOMNode> is not traversable.
Loading history...
2770
            if ($i >= $nInicio) {
2771
                $thisItem = $this->det->item($i);
2772
                //carrega as tags do item
2773
                $prod         = $thisItem->getElementsByTagName("prod")->item(0);
2774
                $imposto      = $this->det->item($i)->getElementsByTagName("imposto")->item(0);
2775
                $ICMS         = $imposto->getElementsByTagName("ICMS")->item(0);
2776
                $IPI          = $imposto->getElementsByTagName("IPI")->item(0);
2777
                $textoProduto = $this->descricaoProduto($thisItem);
2778
2779
                // Posição y dos dados das unidades tributaveis.
2780
                $yTrib = $this->pdf->fontSize + .5;
2781
                if (! $this->mostrarUnidadeTributavel) {
2782
                    $yTrib = 0;
2783
                }
2784
                $h      = $this->calculeHeight($thisItem);
2785
                $hUsado += $h;
2786
2787
                $yTrib += $y;
2788
                $diffH = $hmax - $hUsado;
2789
2790
                if ($pag != $totpag) {
2791
                    if (1 > $diffH && $i < $totItens) {
2792
                        //ultrapassa a capacidade para uma única página
2793
                        //o restante dos dados serão usados nas proximas paginas
2794
                        $nInicio = $i;
2795
                        break;
2796
                    }
2797
                }
2798
                $y_linha = $y + $h;
2799
                // linha entre itens
2800
                $this->pdf->dashedHLine($oldX, $y_linha, $w, 0.1, 120);
2801
                //corrige o x
2802
                $x = $oldX;
2803
                //codigo do produto
2804
                $guup  = $i + 1;
0 ignored issues
show
Unused Code introduced by
$guup is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
2805
                $texto = $prod->getElementsByTagName("cProd")->item(0)->nodeValue;
2806
                $this->pdf->textBox($x, $y, $w1, $h, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2807
                $x += $w1;
2808
                //DESCRIÇÃO
2809
                if ($this->orientacao == 'P') {
2810
                    $this->pdf->textBox($x, $y, $w2, $h, $textoProduto, $aFont, 'T', 'L', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2811
                } else {
2812
                    $this->pdf->textBox($x, $y, $w2, $h, $textoProduto, $aFont, 'T', 'L', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2813
                }
2814
                $x += $w2;
2815
                //NCM
2816
                $texto = ! empty($prod->getElementsByTagName("NCM")->item(0)->nodeValue) ?
2817
                    $prod->getElementsByTagName("NCM")->item(0)->nodeValue : '';
2818
                $this->pdf->textBox($x, $y, $w3, $h, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2819
                $x += $w3;
2820
                //CST
2821
                if (isset($ICMS)) {
2822
                    $origem = $this->getTagValue($ICMS, "orig");
2823
                    $cst    = $this->getTagValue($ICMS, "CST");
2824
                    $csosn  = $this->getTagValue($ICMS, "CSOSN");
2825
                    $texto  = $origem . $cst . $csosn;
2826
                    $this->pdf->textBox($x, $y, $w4, $h, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2827
                }
2828
                //CFOP
2829
                $x     += $w4;
2830
                $texto = $prod->getElementsByTagName("CFOP")->item(0)->nodeValue;
2831
                $this->pdf->textBox($x, $y, $w5, $h, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2832
                //Unidade
2833
                $x     += $w5;
2834
                $texto = $prod->getElementsByTagName("uCom")->item(0)->nodeValue;
2835
                $this->pdf->textBox($x, $y, $w6, $h, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2836
                //Unidade de medida tributável
2837
                if ($this->mostrarUnidadeTributavel) {
2838
                    $uTrib = $prod->getElementsByTagName("uTrib")->item(0);
2839
                    if (! empty($uTrib)) {
2840
                        $texto = $uTrib->nodeValue;
2841
                        $this->pdf->textBox($x, $yTrib, $w6, $h, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2842
                    }
2843
                }
2844
                $x += $w6;
2845
                if ($this->orientacao == 'P') {
2846
                    $alinhamento = 'R';
2847
                } else {
2848
                    $alinhamento = 'R';
2849
                }
2850
                // QTDADE
2851
                $qCom  = $prod->getElementsByTagName("qCom")->item(0);
2852
                $texto = number_format($qCom->nodeValue, $this->qComCasasDec, ",", ".");
2853
                $this->pdf->textBox($x, $y, $w7, $h, $texto, $aFont, 'T', $alinhamento, 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2854
                // QTDADE Tributável
2855
                if ($this->mostrarUnidadeTributavel) {
2856
                    $qTrib = $prod->getElementsByTagName("qTrib")->item(0);
2857
                    if (! empty($qTrib)) {
2858
                        $texto = number_format($qTrib->nodeValue, $this->qComCasasDec, ",", ".");
2859
                        $this->pdf->textBox($x, $yTrib, $w7, $h, $texto, $aFont, 'T', $alinhamento, 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2860
                    }
2861
                }
2862
                $x += $w7;
2863
                // Valor Unitário
2864
                $vUnCom = $prod->getElementsByTagName("vUnCom")->item(0);
2865
                $texto  = number_format($vUnCom->nodeValue, $this->vUnComCasasDec, ",", ".");
2866
                $this->pdf->textBox($x, $y, $w8, $h, $texto, $aFont, 'T', $alinhamento, 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2867
                // Valor Unitário Tributável
2868
                if ($this->mostrarUnidadeTributavel) {
2869
                    $vUnTrib = $prod->getElementsByTagName("vUnTrib")->item(0);
2870
                    if (! empty($vUnTrib)) {
2871
                        $texto = number_format($vUnTrib->nodeValue, $this->vUnComCasasDec, ",", ".");
2872
                        $this->pdf->textBox($x, $yTrib, $w8, $h, $texto, $aFont, 'T', $alinhamento, 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2873
                    }
2874
                }
2875
                $x += $w8;
2876
                // Valor do Produto
2877
                $texto = "";
2878
                if (is_numeric($prod->getElementsByTagName("vProd")->item(0)->nodeValue)) {
2879
                    $texto = number_format($prod->getElementsByTagName("vProd")->item(0)->nodeValue, 2, ",", ".");
2880
                }
2881
                $this->pdf->textBox($x, $y, $w9, $h, $texto, $aFont, 'T', $alinhamento, 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2882
                $x += $w9;
2883
                //Valor do Desconto
2884
                $vdesc = ! empty($prod->getElementsByTagName("vDesc")->item(0)->nodeValue)
2885
                    ? $prod->getElementsByTagName("vDesc")->item(0)->nodeValue : 0;
2886
2887
                $texto = number_format($vdesc, 2, ",", ".");
2888
                $this->pdf->textBox($x, $y, $w10, $h, $texto, $aFont, 'T', $alinhamento, 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2889
                //Valor da Base de calculo
2890
                $x += $w10;
2891
                if (isset($ICMS)) {
2892
                    $texto = ! empty($ICMS->getElementsByTagName("vBC")->item(0)->nodeValue)
2893
                        ? number_format(
2894
                            $ICMS->getElementsByTagName("vBC")->item(0)->nodeValue,
2895
                            2,
2896
                            ",",
2897
                            "."
2898
                        )
2899
                        : '0,00';
2900
                    $this->pdf->textBox($x, $y, $w11, $h, $texto, $aFont, 'T', $alinhamento, 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2901
                }
2902
                //Valor do ICMS
2903
                $x += $w11;
2904
                if (isset($ICMS)) {
2905
                    $texto = ! empty($ICMS->getElementsByTagName("vICMS")->item(0)->nodeValue)
2906
                        ? number_format(
2907
                            $ICMS->getElementsByTagName("vICMS")->item(0)->nodeValue,
2908
                            2,
2909
                            ",",
2910
                            "."
2911
                        )
2912
                        : '0,00';
2913
                    $this->pdf->textBox($x, $y, $w12, $h, $texto, $aFont, 'T', $alinhamento, 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2914
                }
2915
                //Valor do IPI
2916
                $x += $w12;
2917
                if (isset($IPI)) {
2918
                    $texto = ! empty($IPI->getElementsByTagName("vIPI")->item(0)->nodeValue)
2919
                        ? number_format(
2920
                            $IPI->getElementsByTagName("vIPI")->item(0)->nodeValue,
2921
                            2,
2922
                            ",",
2923
                            "."
2924
                        )
2925
                        : '';
2926
                } else {
2927
                    $texto = '';
2928
                }
2929
                $this->pdf->textBox($x, $y, $w13, $h, $texto, $aFont, 'T', $alinhamento, 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2930
                // %ICMS
2931
                $x += $w13;
2932
                if (isset($ICMS)) {
2933
                    $texto = ! empty($ICMS->getElementsByTagName("pICMS")->item(0)->nodeValue)
2934
                        ? number_format(
2935
                            $ICMS->getElementsByTagName("pICMS")->item(0)->nodeValue,
2936
                            2,
2937
                            ",",
2938
                            "."
2939
                        )
2940
                        : '0,00';
2941
                    $this->pdf->textBox($x, $y, $w14, $h, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2942
                }
2943
                //%IPI
2944
                $x += $w14;
2945
                if (isset($IPI)) {
2946
                    $texto = ! empty($IPI->getElementsByTagName("pIPI")->item(0)->nodeValue)
2947
                        ? number_format(
2948
                            $IPI->getElementsByTagName("pIPI")->item(0)->nodeValue,
2949
                            2,
2950
                            ",",
2951
                            "."
2952
                        )
2953
                        : '';
2954
                } else {
2955
                    $texto = '';
2956
                }
2957
                $this->pdf->textBox($x, $y, $w15, $h, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
2958
2959
2960
                // Dados do Veiculo Somente para veiculo 0 Km
2961
                $veicProd = $prod->getElementsByTagName("veicProd")->item(0);
2962
                // Tag somente é gerada para veiculo 0k, e só é permitido um veiculo por NF-e por conta do detran
2963
                // Verifica se a Tag existe
2964
                if (! empty($veicProd)) {
2965
                    $this->dadosItenVeiculoDANFE($oldX, $y, $nInicio, $h, $prod);
2966
                }
2967
2968
2969
                $y += $h;
2970
                $i ++;
2971
                //incrementa o controle dos itens processados.
2972
                $this->qtdeItensProc ++;
2973
            } else {
2974
                $i ++;
2975
            }
2976
        }
2977
2978
        return $oldY + $hmax;
2979
    }
2980
2981
2982
    /**
2983
     * dadosItenVeiculoDANFE
2984
     * Coloca os dados do veiculo abaixo do item da NFe. (retrato e paisagem)
2985
     *
2986
     * @param float  $x    Posição horizontal
2987
     *                     canto esquerdo
2988
     * @param float  $y    Posição vertical
2989
     *                     canto superior
2990
     * @param        $nInicio
2991
     * @param float  $h    altura do campo
2992
     * @param object $prod Contendo todos os dados do item
2993
     */
2994
2995
    protected function dadosItenVeiculoDANFE($x, $y, &$nInicio, $h, $prod) {
2996
        $oldX = $x;
2997
        $oldY = $y;
0 ignored issues
show
Unused Code introduced by
$oldY is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
2998
2999
        if ($this->orientacao == 'P') {
3000
            $w = $this->wPrint;
3001
        } else {
3002
            if ($nInicio < 2) { // primeira página
3003
                $w = $this->wPrint - $this->wCanhoto;
3004
            } else { // páginas seguintes
3005
                $w = $this->wPrint;
3006
            }
3007
        }
3008
3009
        $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => ''];
3010
3011
        $w1 = round($w * 0.09, 0);
3012
3013
        // Tabela Renavam Combustivel
3014
        $renavamCombustivel = [
3015
            1  => 'ALCOOL',
3016
            2  => 'GASOLINA',
3017
            3  => 'DIESEL',
3018
            4  => 'GASOGENIO',
3019
            5  => 'GAS METANO',
3020
            6  => 'ELETRICO/FONTE INTERNA',
3021
            7  => 'ELETRICO/FONTE EXTERNA',
3022
            8  => 'GASOL/GAS NATURAL COMBUSTIVEL',
3023
            9  => 'ALCOOL/GAS NATURAL COMBUSTIVEL',
3024
            10 => 'DIESEL/GAS NATURAL COMBUSTIVEL',
3025
            11 => 'VIDE/CAMPO/OBSERVACAO',
3026
            12 => 'ALCOOL/GAS NATURAL VEICULAR',
3027
            13 => 'GASOLINA/GAS NATURAL VEICULAR',
3028
            14 => 'DIESEL/GAS NATURAL VEICULAR',
3029
            15 => 'GAS NATURAL VEICULAR',
3030
            16 => 'ALCOOL/GASOLINA',
3031
            17 => 'GASOLINA/ALCOOL/GAS NATURAL',
3032
            18 => 'GASOLINA/ELETRICO'
3033
        ];
3034
3035
        $renavamEspecie = [
3036
            1 => 'PASSAGEIRO',
3037
            2 => 'CARGA',
3038
            3 => 'MISTO',
3039
            4 => 'CORRIDA',
3040
            5 => 'TRACAO',
3041
            6 => 'ESPECIAL',
3042
            7 => 'COLECAO'
3043
        ];
3044
3045
        $renavamTiposVeiculos = [
3046
            1  => 'BICICLETA',
3047
            2  => 'CICLOMOTOR',
3048
            3  => 'MOTONETA',
3049
            4  => 'MOTOCICLETA',
3050
            5  => 'TRICICLO',
3051
            6  => 'AUTOMOVEL',
3052
            7  => 'MICROONIBUS',
3053
            8  => 'ONIBUS',
3054
            9  => 'BONDE',
3055
            10 => 'REBOQUE',
3056
            11 => 'SEMI-REBOQUE',
3057
            12 => 'CHARRETE',
3058
            13 => 'CAMIONETA',
3059
            14 => 'CAMINHAO',
3060
            15 => 'CARROCA',
3061
            16 => 'CARRO DE MAO',
3062
            17 => 'CAMINHAO TRATOR',
3063
            18 => 'TRATOR DE RODAS',
3064
            19 => 'TRATOR DE ESTEIRAS',
3065
            20 => 'TRATOR MISTO',
3066
            21 => 'QUADRICICLO',
3067
            22 => 'CHASSI/PLATAFORMA',
3068
            23 => 'CAMINHONETE',
3069
            24 => 'SIDE-CAR',
3070
            25 => 'UTILITARIO',
3071
            26 => 'MOTOR-CASA'
3072
        ];
3073
3074
        $renavamTipoPintura = [
0 ignored issues
show
Unused Code introduced by
$renavamTipoPintura is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
3075
            'F' => 'FOSCA',
3076
            'S' => 'SÓLIDA',
3077
            'P' => 'PEROLIZADA',
3078
            'M' => 'METALICA',
3079
        ];
3080
3081
        $veicProd = $prod->getElementsByTagName("veicProd")->item(0);
3082
3083
        $veiculoChassi     = $veicProd->getElementsByTagName("chassi")->item(0)->nodeValue;
3084
        $veiculoCor        = $veicProd->getElementsByTagName("xCor")->item(0)->nodeValue;
3085
        $veiculoCilindrada = $veicProd->getElementsByTagName("cilin")->item(0)->nodeValue;
3086
        $veiculoCmkg       = $veicProd->getElementsByTagName("CMT")->item(0)->nodeValue;
3087
        $veiculoTipo       = $veicProd->getElementsByTagName("tpVeic")->item(0)->nodeValue;
3088
3089
        $veiculoMotor       = $veicProd->getElementsByTagName("nMotor")->item(0)->nodeValue;
3090
        $veiculoRenavam     = $veicProd->getElementsByTagName("cMod")->item(0)->nodeValue;
3091
        $veiculoHp          = $veicProd->getElementsByTagName("pot")->item(0)->nodeValue;
3092
        $veiculoPlaca       = ''; //$veiculo->getElementsByTagName("CMT")->item(0)->nodeValue;
3093
        $veiculoTipoPintura = $veicProd->getElementsByTagName("tpPint")->item(0)->nodeValue;
3094
        $veiculoMarcaModelo = $prod->getElementsByTagName("xProd")->item(0)->nodeValue;
3095
        $veiculoEspecie     = $veicProd->getElementsByTagName("espVeic")->item(0)->nodeValue;
3096
        $veiculoCombustivel = $veicProd->getElementsByTagName("tpComb")->item(0)->nodeValue;
3097
        $veiculoSerial      = $veicProd->getElementsByTagName("nSerie")->item(0)->nodeValue;
3098
        $veiculoFabricacao  = $veicProd->getElementsByTagName("anoFab")->item(0)->nodeValue;
3099
        $veiculoModelo      = $veicProd->getElementsByTagName("anoMod")->item(0)->nodeValue;
3100
        $veiculoDistancia   = $veicProd->getElementsByTagName("dist")->item(0)->nodeValue;
3101
3102
        $x = $oldX;
3103
3104
        $yVeic = $y + $h;
3105
        $texto = 'Chassi: ............: ' . $veiculoChassi;
3106
        $this->pdf->textBox($x, $yVeic, $w1 + 40, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3107
        $yVeic += $h;
3108
        $texto = 'Cor...................: ' . $veiculoCor;
3109
        $this->pdf->textBox($x, $yVeic, $w1 + 40, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3110
        $yVeic += $h;
3111
        $texto = 'Cilindrada........: ' . $veiculoCilindrada;
3112
        $this->pdf->textBox($x, $yVeic, $w1 + 40, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3113
        $yVeic += $h;
3114
        $texto = 'Cmkg...............: ' . $veiculoCmkg;
3115
        $this->pdf->textBox($x, $yVeic, $w1 + 40, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3116
        $yVeic += $h;
3117
        $texto = 'Tipo.................: ' . ($renavamTiposVeiculos[intval($veiculoTipo)] ?? $veiculoTipo);
3118
        $this->pdf->textBox($x, $yVeic, $w1 + 40, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3119
        $yVeic = $y + $h;
3120
        $xVeic = $x + 65;
3121
        $texto = 'Nº Motor: .........: ' . $veiculoMotor;
3122
        $this->pdf->textBox($xVeic, $yVeic, $w1 + 50, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3123
        $yVeic += $h;
3124
        $texto = 'Renavam...........: ' . $veiculoRenavam;
3125
        $this->pdf->textBox($xVeic, $yVeic, $w1 + 50, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3126
        $yVeic += $h;
3127
        $texto = 'HP.....................: ' . $veiculoHp;
3128
        $this->pdf->textBox($xVeic, $yVeic, $w1 + 50, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3129
        $yVeic += $h;
3130
        $texto = 'Placa.................: ' . $veiculoPlaca;
3131
        $this->pdf->textBox($xVeic, $yVeic, $w1 + 50, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3132
        $yVeic += $h;
3133
        $texto = 'Tipo Pintura......: ' . ($renavamEspecie[intval($veiculoTipoPintura)] ?? $veiculoTipoPintura);
3134
        $this->pdf->textBox($xVeic, $yVeic, $w1 + 50, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3135
        $yVeic = $y + $h;
3136
        $xVeic = $xVeic + 55;
3137
        $texto = 'Marca / Modelo.....: ' . $veiculoMarcaModelo;
3138
        $this->pdf->textBox($xVeic, $yVeic, $w1 + 50, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3139
        $yVeic += $h;
3140
        $texto = 'Especie..................: ' . ($renavamEspecie[intval($veiculoEspecie)] ?? $veiculoEspecie);
3141
        $this->pdf->textBox($xVeic, $yVeic, $w1 + 50, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3142
        $yVeic += $h;
3143
        $texto = 'Combustivel..........: ' . ($renavamCombustivel[intval($veiculoCombustivel)] ?? $veiculoCombustivel);
3144
        $this->pdf->textBox($xVeic, $yVeic, $w1 + 50, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3145
        $yVeic += $h;
3146
        $texto = 'Serial.....................: ' . $veiculoSerial;
3147
        $this->pdf->textBox($xVeic, $yVeic, $w1 + 50, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3148
        $yVeic += $h;
3149
        $texto = 'Ano Fab/Mod........: ' . $veiculoFabricacao . '/' . $veiculoModelo;
3150
        $this->pdf->textBox($xVeic, $yVeic, $w1 + 50, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3151
        $yVeic += $h;
3152
        $texto = 'Distancia Entre Eixos(mm)..: ' . $veiculoDistancia;
3153
        $this->pdf->textBox($xVeic, $yVeic, $w1 + 50, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3154
    }
3155
3156
    /**
3157
     * issqn
3158
     * Monta o campo de serviços do DANFE
3159
     *
3160
     * @name   issqn (retrato e paisagem)
3161
     *
3162
     * @param float $x Posição horizontal canto esquerdo
3163
     * @param float $y Posição vertical canto superior
3164
     *
3165
     * @return float Posição vertical final
3166
     */
3167
    protected function issqn($x, $y) {
3168
        $oldX = $x;
0 ignored issues
show
Unused Code introduced by
$oldX is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
3169
        //#####################################################################
3170
        //CÁLCULO DO ISSQN
3171
        $texto = "CÁLCULO DO ISSQN";
3172
        $w     = $this->wPrint;
3173
        $h     = 7;
3174
        $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
3175
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3176
        //INSCRIÇÃO MUNICIPAL
3177
        $y     += 3;
3178
        $w     = round($this->wPrint * 0.23, 0);
3179
        $texto = 'INSCRIÇÃO MUNICIPAL';
3180
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
3181
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3182
        //inscrição municipal
3183
        $texto = ! empty($this->emit->getElementsByTagName("IM")->item(0)->nodeValue) ?
3184
            $this->emit->getElementsByTagName("IM")->item(0)->nodeValue : '';
3185
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
3186
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3187
        //VALOR TOTAL DOS SERVIÇOS
3188
        $x     += $w;
3189
        $texto = 'VALOR TOTAL DOS SERVIÇOS';
3190
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
3191
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3192
        if (isset($this->ISSQNtot)) {
3193
            $texto = ! empty($this->ISSQNtot->getElementsByTagName("vServ")->item(0)->nodeValue) ?
3194
                $this->ISSQNtot->getElementsByTagName("vServ")->item(0)->nodeValue : '';
3195
            $texto = number_format($texto, 2, ",", ".");
3196
        } else {
3197
            $texto = '';
3198
        }
3199
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
3200
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'R', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3201
        //BASE DE CÁLCULO DO ISSQN
3202
        $x     += $w;
3203
        $texto = 'BASE DE CÁLCULO DO ISSQN';
3204
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
3205
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3206
        if (isset($this->ISSQNtot)) {
3207
            $texto = ! empty($this->ISSQNtot->getElementsByTagName("vBC")->item(0)->nodeValue) ?
3208
                $this->ISSQNtot->getElementsByTagName("vBC")->item(0)->nodeValue : '';
3209
            $texto = ! empty($texto) ? number_format($texto, 2, ",", ".") : '';
3210
        } else {
3211
            $texto = '';
3212
        }
3213
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
3214
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'R', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3215
        //VALOR TOTAL DO ISSQN
3216
        $x += $w;
3217
        if ($this->orientacao == 'P') {
3218
            $w = $this->wPrint - (3 * $w);
3219
        } else {
3220
            $w = $this->wPrint - (3 * $w) - $this->wCanhoto;
3221
        }
3222
        $texto = 'VALOR TOTAL DO ISSQN';
3223
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
3224
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3225
        if (isset($this->ISSQNtot)) {
3226
            $texto = ! empty($this->ISSQNtot->getElementsByTagName("vISS")->item(0)->nodeValue) ?
3227
                $this->ISSQNtot->getElementsByTagName("vISS")->item(0)->nodeValue : '';
3228
            $texto = ! empty($texto) ? number_format($texto, 2, ",", ".") : '';
3229
        } else {
3230
            $texto = '';
3231
        }
3232
        $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
3233
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'B', 'R', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3234
3235
        return ($y + $h + 1);
3236
    }
3237
3238
    /**
3239
     *dadosAdicionais
3240
     * Coloca o grupo de dados adicionais da NFe. (retrato e paisagem)
3241
     *
3242
     * @name   dadosAdicionais
3243
     *
3244
     * @param float $x Posição horizontal canto esquerdo
3245
     * @param float $y Posição vertical canto superior
3246
     * @param float $h altura do campo
3247
     *
3248
     * @return float Posição vertical final (eixo Y)
3249
     */
3250
    protected function dadosAdicionais($x, $y, $h) {
0 ignored issues
show
Unused Code introduced by
The parameter $y is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
3251
        $y = $this->maxH - (7 + $h);
3252
        //$y = $this->maxH - 20;
3253
        //##################################################################################
3254
        //DADOS ADICIONAIS
3255
        $texto = "DADOS ADICIONAIS";
3256
        if ($this->orientacao == 'P') {
3257
            $w = $this->wPrint;
3258
        } else {
3259
            $w = $this->wPrint - $this->wCanhoto;
3260
        }
3261
        $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'];
3262
        $this->pdf->textBox($x, $y, $w, 8, $texto, $aFont, 'T', 'L', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3263
3264
        //INFORMAÇÕES COMPLEMENTARES
3265
        $texto = "INFORMAÇÕES COMPLEMENTARES";
3266
        $y     += 3;
3267
        $w     = $this->wAdic;
3268
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => 'B'];
3269
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3270
        //o texto com os dados adicionais foi obtido na função montaDANFE
3271
        //e carregado em uma propriedade privada da classe
3272
        //$this->wAdic com a largura do campo
3273
        //$this->textoAdic com o texto completo do campo
3274
        //echo str_replace("\n", "<br>",$this->textoAdic);
3275
        //die;
3276
        $y     += 1;
3277
        $aFont = ['font' => $this->fontePadrao, 'size' => $this->textadicfontsize * $this->pdf->k, 'style' => ''];
3278
        //$aFont = ['font'=>$this->fontePadrao, 'size'=> 5, 'style'=>''];
3279
        $this->pdf->textBox($x, $y + 2, $w - 2, $h, $this->textoAdic, $aFont, 'T', 'L', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3280
        //RESERVADO AO FISCO
3281
        $texto = "RESERVADO AO FISCO";
3282
        if (isset($this->nfeProc) && $this->nfeProc->getElementsByTagName("xMsg")->length) {
3283
            $texto = $texto . ' ' . $this->nfeProc->getElementsByTagName("xMsg")->item(0)->nodeValue;
3284
        }
3285
        $x += $w;
3286
        $y -= 1;
3287
        if ($this->orientacao == 'P') {
3288
            $w = $this->wPrint - $w;
3289
        } else {
3290
            $w = $this->wPrint - $w - $this->wCanhoto;
3291
        }
3292
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => 'B'];
3293
        $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3294
        //inserir texto informando caso de contingência
3295
        // 1 - Normal - emissão normal;
3296
        // 2 - Contingência FS - emissão em contingência com impressão do DANFE em Formulário de Segurança;
3297
        // 3 - Contingência SCAN - emissão em contingência no Sistema de Contingência do Ambiente Nacional;
3298
        // 4 - Contingência DPEC - emissão em contingência com envio da Declaração
3299
        //     Prévia de Emissão em Contingência;
3300
        // 5 - Contingência FS-DA - emissão em contingência com impressão do DANFE em Formulário de
3301
        //     Segurança para Impressão de Documento Auxiliar de Documento Fiscal Eletrônico (FS-DA);
3302
        // 6 - Contingência SVC-AN
3303
        // 7 - Contingência SVC-RS
3304
        $xJust  = $this->getTagValue($this->ide, 'xJust', 'Justificativa: ');
3305
        $dhCont = $this->getTagValue($this->ide, 'dhCont', ' Entrada em contingência : ');
3306
        $texto  = '';
3307
        switch ($this->tpEmis) {
3308
            case 2:
3309
                $texto = 'CONTINGÊNCIA FS' . $dhCont . $xJust;
3310
                break;
3311
            case 3:
3312
                $texto = 'CONTINGÊNCIA SCAN' . $dhCont . $xJust;
3313
                break;
3314
            case 4:
3315
                $texto = 'CONTINGÊNCIA DPEC' . $dhCont . $xJust;
3316
                break;
3317
            case 5:
3318
                $texto = 'CONTINGÊNCIA FSDA' . $dhCont . $xJust;
3319
                break;
3320
            case 6:
3321
                $texto = 'CONTINGÊNCIA SVC-AN' . $dhCont . $xJust;
3322
                break;
3323
            case 7:
3324
                $texto = 'CONTINGÊNCIA SVC-RS' . $dhCont . $xJust;
3325
                break;
3326
        }
3327
        $y     += 2;
3328
        $aFont = ['font' => $this->fontePadrao, 'size' => 7, 'style' => ''];
3329
        $this->pdf->textBox($x, $y, $w - 2, $h, $texto, $aFont, 'T', 'L', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3330
3331
        return $y + $h;
3332
    }
3333
3334
    /**
3335
     * rodape
3336
     * Monta o rodapé no final da DANFE com a data/hora de impressão e informações
3337
     * sobre a API NfePHP
3338
     *
3339
     * @param float $x Posição horizontal canto esquerdo
3340
     *
3341
     * @return void
3342
     */
3343
    protected function rodape($x) {
3344
        $y = $this->maxH - 4;
3345
        if ($this->orientacao == 'P') {
3346
            $w = $this->wPrint;
3347
        } else {
3348
            $w = $this->wPrint - $this->wCanhoto;
3349
            $x = $this->wCanhoto;
3350
        }
3351
        $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => 'I'];
3352
        $texto = "Impresso em " . date('d/m/Y') . " as " . date('H:i:s')
3353
            . '  ' . $this->creditos;
3354
        $this->pdf->textBox($x, $y, $w, 0, $texto, $aFont, 'T', 'L', false);
3355
        $texto = $this->powered ? "Powered by NFePHP®" : '';
3356
        $this->pdf->textBox($x, $y, $w, 0, $texto, $aFont, 'T', 'R', false, '');
3357
    }
3358
3359
    /**
3360
     * Monta o canhoto da DANFE (retrato e paisagem)
3361
     *
3362
     * @name   canhotoDANFE
3363
     *
3364
     * @param number $x Posição horizontal canto esquerdo
3365
     * @param number $y Posição vertical canto superior
3366
     *
3367
     * @return number Posição vertical final
3368
     *
3369
     * TODO 21/07/14 fmertins: quando orientação L-paisagem, o canhoto está sendo gerado incorretamente
3370
     */
3371
    protected function canhoto($x, $y) {
3372
        $oldX = $x;
3373
        $oldY = $y;
3374
        //#################################################################################
3375
        //canhoto
3376
        //identificação do tipo de nf entrada ou saida
3377
        $tpNF = $this->ide->getElementsByTagName('tpNF')->item(0)->nodeValue;
3378
        if ($tpNF == '0') {
3379
            //NFe de Entrada
3380
            $emitente     = '';
3381
            $emitente     .= $this->dest->getElementsByTagName("xNome")->item(0)->nodeValue . " - ";
3382
            $emitente     .= $this->enderDest->getElementsByTagName("xLgr")->item(0)->nodeValue . ", ";
3383
            $emitente     .= $this->enderDest->getElementsByTagName("nro")->item(0)->nodeValue . " - ";
3384
            $emitente     .= $this->getTagValue($this->enderDest, "xCpl", " - ", " ");
3385
            $emitente     .= $this->enderDest->getElementsByTagName("xBairro")->item(0)->nodeValue . " ";
3386
            $emitente     .= $this->enderDest->getElementsByTagName("xMun")->item(0)->nodeValue . "-";
3387
            $emitente     .= $this->enderDest->getElementsByTagName("UF")->item(0)->nodeValue . "";
3388
            $destinatario = $this->emit->getElementsByTagName("xNome")->item(0)->nodeValue . " ";
3389
        } else {
3390
            //NFe de Saída
3391
            $emitente     = $this->emit->getElementsByTagName("xNome")->item(0)->nodeValue . " ";
3392
            $destinatario = '';
3393
            $destinatario .= $this->dest->getElementsByTagName("xNome")->item(0)->nodeValue . " - ";
3394
            $destinatario .= $this->enderDest->getElementsByTagName("xLgr")->item(0)->nodeValue . ", ";
3395
            $destinatario .= $this->enderDest->getElementsByTagName("nro")->item(0)->nodeValue . " ";
3396
            $destinatario .= $this->getTagValue($this->enderDest, "xCpl", " - ", " ");
3397
            $destinatario .= $this->enderDest->getElementsByTagName("xBairro")->item(0)->nodeValue . " ";
3398
            $destinatario .= $this->enderDest->getElementsByTagName("xMun")->item(0)->nodeValue . "-";
3399
            $destinatario .= $this->enderDest->getElementsByTagName("UF")->item(0)->nodeValue . " ";
3400
        }
3401
        //identificação do sistema emissor
3402
        //linha separadora do canhoto
3403
        if ($this->orientacao == 'P') {
3404
            $w = round($this->wPrint * 0.81, 0);
3405
        } else {
3406
            //linha separadora do canhoto - 238
3407
            //posicao altura
3408
            $y = $this->wPrint - 85;
3409
            //altura
3410
            $w = $this->wPrint - 85 - 24;
3411
        }
3412
        $h = 10;
3413
        //desenha caixa
3414
        $texto      = '';
3415
        $aFont      = ['font' => $this->fontePadrao, 'size' => 7, 'style' => ''];
3416
        $aFontSmall = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
3417
        if ($this->orientacao == 'P') {
3418
            $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'C', 'L', 1, '', false);
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3419
        } else {
3420
            $this->pdf->textBox90($x, $y, $w, $h, $texto, $aFont, 'C', 'L', 1, '', false);
3421
        }
3422
        $numNF = str_pad($this->ide->getElementsByTagName('nNF')->item(0)->nodeValue, 9, "0", STR_PAD_LEFT);
3423
        $serie = str_pad($this->ide->getElementsByTagName('serie')->item(0)->nodeValue, 3, "0", STR_PAD_LEFT);
3424
        $texto = "RECEBEMOS DE ";
3425
        $texto .= $emitente;
3426
        $texto .= " OS PRODUTOS E/OU SERVIÇOS CONSTANTES DA NOTA FISCAL ELETRÔNICA INDICADA ";
3427
        if ($this->orientacao == 'P') {
3428
            $texto .= "ABAIXO";
3429
        } else {
3430
            $texto .= "AO LADO";
3431
        }
3432
        $texto .= ". EMISSÃO: ";
3433
        $dEmi  = ! empty($this->ide->getElementsByTagName("dEmi")->item(0)->nodeValue) ?
3434
            $this->ide->getElementsByTagName("dEmi")->item(0)->nodeValue : '';
3435
        if ($dEmi == '') {
3436
            $dEmi  = ! empty($this->ide->getElementsByTagName("dhEmi")->item(0)->nodeValue) ?
3437
                $this->ide->getElementsByTagName("dhEmi")->item(0)->nodeValue : '';
3438
            $aDemi = explode('T', $dEmi);
3439
            $dEmi  = $aDemi[0];
3440
        }
3441
        $texto .= $this->ymdTodmy($dEmi) . " ";
3442
        $texto .= "VALOR TOTAL: R$ ";
3443
        $texto .= number_format($this->ICMSTot->getElementsByTagName("vNF")->item(0)->nodeValue, 2, ",", ".") . " ";
3444
        $texto .= "DESTINATÁRIO: ";
3445
        $texto .= $destinatario;
3446
        if ($this->orientacao == 'P') {
3447
            $this->pdf->textBox($x, $y, $w - 1, $h, $texto, $aFont, 'C', 'L', 0, '', false);
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3448
            $x1    = $x + $w;
3449
            $w1    = $this->wPrint - $w;
3450
            $texto = "NF-e";
3451
            $aFont = ['font' => $this->fontePadrao, 'size' => 14, 'style' => 'B'];
3452
            $this->pdf->textBox($x1, $y, $w1, 18, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3453
            $texto = "Nº. " . $this->formatField($numNF, "###.###.###") . " \n";
3454
            $texto .= "Série $serie";
3455
            $aFont = ['font' => $this->fontePadrao, 'size' => 10, 'style' => 'B'];
3456
            $this->pdf->textBox($x1, $y, $w1, 18, $texto, $aFont, 'C', 'C', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3457
            //DATA DE RECEBIMENTO
3458
            $texto = "DATA DE RECEBIMENTO";
3459
            $y     += $h;
3460
            $w2    = round($this->wPrint * 0.17, 0); //35;
3461
            $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
3462
            $this->pdf->textBox($x, $y, $w2, 8, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3463
            //IDENTIFICAÇÃO E ASSINATURA DO RECEBEDOR
3464
            $x     += $w2;
3465
            $w3    = $w - $w2;
3466
            $texto = "IDENTIFICAÇÃO E ASSINATURA DO RECEBEDOR";
3467
            $this->pdf->textBox($x, $y, $w3, 8, $texto, $aFont, 'T', 'L', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3468
            $x = $oldX;
3469
            $y += 9;
3470
            $this->pdf->dashedHLine($x, $y, $this->wPrint, 0.1, 80);
3471
            $y += 2;
3472
3473
            return $y;
3474
        } else {
3475
            $x --;
3476
            $x = $this->pdf->textBox90($x, $y, $w - 1, $h, $texto, $aFontSmall, 'C', 'L', 0, '', false);
0 ignored issues
show
Unused Code introduced by
$x is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
3477
            //NUMERO DA NOTA FISCAL LOGO NFE
3478
            $w1    = 18;
3479
            $x1    = $oldX;
3480
            $y     = $oldY;
3481
            $texto = "NF-e";
3482
            $aFont = ['font' => $this->fontePadrao, 'size' => 14, 'style' => 'B'];
3483
            $this->pdf->textBox($x1, $y, $w1, 18, $texto, $aFont, 'T', 'C', 0, '');
0 ignored issues
show
Documentation introduced by
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3484
            $texto = "Nº.\n" . $this->formatField($numNF, "###.###.###") . " \n";
3485
            $texto .= "Série $serie";
3486
            $aFont = ['font' => $this->fontePadrao, 'size' => 8, 'style' => 'B'];
3487
            $this->pdf->textBox($x1, $y, $w1, 18, $texto, $aFont, 'C', 'C', 1, '');
0 ignored issues
show
Documentation introduced by
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
3488
            //DATA DO RECEBIMENTO
3489
            $texto = "DATA DO RECEBIMENTO";
3490
            $y     = $this->wPrint - 85;
3491
            $x     = 12;
3492
            $w2    = round($this->wPrint * 0.17, 0); //35;
3493
            $aFont = ['font' => $this->fontePadrao, 'size' => 6, 'style' => ''];
3494
            $this->pdf->textBox90($x, $y, $w2, 8, $texto, $aFont, 'T', 'L', 1, '');
3495
            //IDENTIFICAÇÃO E ASSINATURA DO RECEBEDOR
3496
            $y     -= $w2;
3497
            $w3    = $w - $w2;
3498
            $texto = "IDENTIFICAÇÃO E ASSINATURA DO RECEBEDOR";
3499
            $aFont = ['font' => $this->fontePadrao, 'size' => 5.7, 'style' => ''];
3500
            $x     = $this->pdf->textBox90($x, $y, $w3, 8, $texto, $aFont, 'T', 'L', 1, '');
3501
            $this->pdf->dashedVLine(22, $oldY, 0.1, $this->wPrint, 69);
3502
3503
            return $x;
3504
        }
3505
    }
3506
3507
    /**
3508
     * geraInformacoesDaTagCompra
3509
     * Devolve uma string contendo informação sobre as tag <compra><xNEmp>, <xPed> e <xCont> ou string vazia.
3510
     * Aviso: Esta função não leva em consideração dados na tag xPed do item.
3511
     *
3512
     * @name   pGeraInformacoesDaTagCompra
3513
     * @return string com as informacoes dos pedidos.
3514
     */
3515
    protected function geraInformacoesDaTagCompra() {
3516
        if (! $this->gerarInformacoesAutomaticas) {
3517
            return '';
3518
        }
3519
        $saida = "";
3520
        if (isset($this->compra)) {
3521
            if (! empty($this->compra->getElementsByTagName("xNEmp")->item(0)->nodeValue)) {
3522
                $saida .= " Nota de Empenho: " . $this->compra->getElementsByTagName("xNEmp")->item(0)->nodeValue;
3523
            }
3524
            if (! empty($this->compra->getElementsByTagName("xPed")->item(0)->nodeValue)) {
3525
                $saida .= " Pedido: " . $this->compra->getElementsByTagName("xPed")->item(0)->nodeValue;
3526
            }
3527
            if (! empty($this->compra->getElementsByTagName("xCont")->item(0)->nodeValue)) {
3528
                $saida .= " Contrato: " . $this->compra->getElementsByTagName("xCont")->item(0)->nodeValue;
3529
            }
3530
        }
3531
3532
        return $saida;
3533
    }
3534
3535
    /**
3536
     * geraChaveAdicionalDeContingencia
3537
     *
3538
     * @name   geraChaveAdicionalDeContingencia
3539
     * @return string chave
3540
     */
3541
    protected function geraChaveAdicionalDeContingencia() {
3542
        //cUF tpEmis CNPJ vNF ICMSp ICMSs DD  DV
3543
        // Quantidade de caracteres  02   01      14  14    01    01  02 01
3544
        $forma = "%02d%d%s%014d%01d%01d%02d";
3545
        $cUF   = $this->ide->getElementsByTagName('cUF')->item(0)->nodeValue;
3546
        $CNPJ  = "00000000000000" . $this->emit->getElementsByTagName('CNPJ')->item(0)->nodeValue;
3547
        $CNPJ  = substr($CNPJ, - 14);
3548
        $vNF   = $this->ICMSTot->getElementsByTagName("vNF")->item(0)->nodeValue * 100;
3549
        $vICMS = $this->ICMSTot->getElementsByTagName("vICMS")->item(0)->nodeValue;
3550
        if ($vICMS > 0) {
3551
            $vICMS = 1;
3552
        }
3553
        $icmss = $this->ICMSTot->getElementsByTagName("vBC")->item(0)->nodeValue;
3554
        if ($icmss > 0) {
3555
            $icmss = 1;
3556
        }
3557
        $dEmi = ! empty($this->ide->getElementsByTagName("dEmi")->item(0)->nodeValue) ?
3558
            $this->ide->getElementsByTagName("dEmi")->item(0)->nodeValue : '';
3559
        if ($dEmi == '') {
3560
            $dEmi  = ! empty($this->ide->getElementsByTagName("dhEmi")->item(0)->nodeValue) ?
3561
                $this->ide->getElementsByTagName("dhEmi")->item(0)->nodeValue : '';
3562
            $aDemi = explode('T', $dEmi);
3563
            $dEmi  = $aDemi[0];
3564
        }
3565
        $dd    = $dEmi;
3566
        $rpos  = strrpos($dd, '-');
3567
        $dd    = substr($dd, $rpos + 1);
3568
        $chave = sprintf($forma, $cUF, $this->tpEmis, $CNPJ, $vNF, $vICMS, $icmss, $dd);
3569
        $chave = $chave . $this->modulo11($chave);
3570
3571
        return $chave;
3572
    }
3573
3574
    /**
3575
     *  geraInformacoesDasNotasReferenciadas
3576
     * Devolve uma string contendo informação sobre as notas referenciadas. Suporta N notas, eletrônicas ou não
3577
     * Exemplo: NFe Ref.: série: 01 número: 01 emit: 11.111.111/0001-01
3578
     * em 10/2010 [0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000]
3579
     *
3580
     * @return string Informacoes a serem adicionadas no rodapé sobre notas referenciadas.
3581
     */
3582
    protected function geraInformacoesDasNotasReferenciadas() {
3583
        if (! $this->gerarInformacoesAutomaticas) {
3584
            return '';
3585
        }
3586
        $formaNfeRef = "\r\nNFe Ref.: série:%d número:%d emit:%s em %s [%s]";
3587
        $formaCTeRef = "\r\nCTe Ref.: série:%d número:%d emit:%s em %s [%s]";
3588
        $formaNfRef  = "\r\nNF  Ref.: série:%d numero:%d emit:%s em %s modelo: %d";
3589
        $formaECFRef = "\r\nECF Ref.: modelo: %s ECF:%d COO:%d";
3590
        $formaNfpRef = "\r\nNFP Ref.: série:%d número:%d emit:%s em %s modelo: %d IE:%s";
3591
        $saida       = '';
3592
        $nfRefs      = $this->ide->getElementsByTagName('NFref');
3593
        if (0 === $nfRefs->length) {
3594
            return $saida;
3595
        }
3596
        if ($nfRefs->length > 2) {
3597
            return 'Existem mais de 2 NF/NFe/ECF/NFP/CTe referenciadas, não serão exibidas na DANFE.';
3598
        }
3599
        foreach ($nfRefs as $nfRef) {
3600
            if (empty($nfRef)) {
3601
                continue;
3602
            }
3603
            $refNFe = $nfRef->getElementsByTagName('refNFe');
3604
            foreach ($refNFe as $chave_acessoRef) {
3605
                $chave_acesso  = $chave_acessoRef->nodeValue;
3606
                $chave_acessoF = $this->formatField($chave_acesso, $this->formatoChave);
3607
                $data          = substr($chave_acesso, 4, 2) . "/20" . substr($chave_acesso, 2, 2);
3608
                $cnpj          = $this->formatField(substr($chave_acesso, 6, 14), "##.###.###/####-##");
3609
                $serie         = substr($chave_acesso, 22, 3);
3610
                $numero        = substr($chave_acesso, 25, 9);
3611
                $saida         .= sprintf($formaNfeRef, $serie, $numero, $cnpj, $data, $chave_acessoF);
3612
            }
3613
            $refNF = $nfRef->getElementsByTagName('refNF');
3614
            foreach ($refNF as $umaRefNFe) {
3615
                $data   = $umaRefNFe->getElementsByTagName('AAMM')->item(0)->nodeValue;
3616
                $cnpj   = $umaRefNFe->getElementsByTagName('CNPJ')->item(0)->nodeValue;
3617
                $mod    = $umaRefNFe->getElementsByTagName('mod')->item(0)->nodeValue;
3618
                $serie  = $umaRefNFe->getElementsByTagName('serie')->item(0)->nodeValue;
3619
                $numero = $umaRefNFe->getElementsByTagName('nNF')->item(0)->nodeValue;
3620
                $data   = substr($data, 2, 2) . "/20" . substr($data, 0, 2);
3621
                $cnpj   = $this->formatField($cnpj, "##.###.###/####-##");
3622
                $saida  .= sprintf($formaNfRef, $serie, $numero, $cnpj, $data, $mod);
3623
            }
3624
            $refCTe = $nfRef->getElementsByTagName('refCTe');
3625
            foreach ($refCTe as $chave_acessoRef) {
3626
                $chave_acesso  = $chave_acessoRef->nodeValue;
3627
                $chave_acessoF = $this->formatField($chave_acesso, $this->formatoChave);
3628
                $data          = substr($chave_acesso, 4, 2) . "/20" . substr($chave_acesso, 2, 2);
3629
                $cnpj          = $this->formatField(substr($chave_acesso, 6, 14), "##.###.###/####-##");
3630
                $serie         = substr($chave_acesso, 22, 3);
3631
                $numero        = substr($chave_acesso, 25, 9);
3632
                $saida         .= sprintf($formaCTeRef, $serie, $numero, $cnpj, $data, $chave_acessoF);
3633
            }
3634
            $refECF = $nfRef->getElementsByTagName('refECF');
3635
            foreach ($refECF as $umaRefNFe) {
3636
                $mod   = $umaRefNFe->getElementsByTagName('mod')->item(0)->nodeValue;
3637
                $nECF  = $umaRefNFe->getElementsByTagName('nECF')->item(0)->nodeValue;
3638
                $nCOO  = $umaRefNFe->getElementsByTagName('nCOO')->item(0)->nodeValue;
3639
                $saida .= sprintf($formaECFRef, $mod, $nECF, $nCOO);
3640
            }
3641
            $refNFP = $nfRef->getElementsByTagName('refNFP');
3642
            foreach ($refNFP as $umaRefNFe) {
3643
                $data   = $umaRefNFe->getElementsByTagName('AAMM')->item(0)->nodeValue;
3644
                $cnpj   = ! empty($umaRefNFe->getElementsByTagName('CNPJ')->item(0)->nodeValue) ?
3645
                    $umaRefNFe->getElementsByTagName('CNPJ')->item(0)->nodeValue :
3646
                    '';
3647
                $cpf    = ! empty($umaRefNFe->getElementsByTagName('CPF')->item(0)->nodeValue) ?
3648
                    $umaRefNFe->getElementsByTagName('CPF')->item(0)->nodeValue : '';
3649
                $mod    = $umaRefNFe->getElementsByTagName('mod')->item(0)->nodeValue;
3650
                $serie  = $umaRefNFe->getElementsByTagName('serie')->item(0)->nodeValue;
3651
                $numero = $umaRefNFe->getElementsByTagName('nNF')->item(0)->nodeValue;
3652
                $ie     = $umaRefNFe->getElementsByTagName('IE')->item(0)->nodeValue;
3653
                $data   = substr($data, 2, 2) . "/20" . substr($data, 0, 2);
3654
                if ($cnpj == '') {
3655
                    $cpf_cnpj = $this->formatField($cpf, "###.###.###-##");
3656
                } else {
3657
                    $cpf_cnpj = $this->formatField($cnpj, "##.###.###/####-##");
3658
                }
3659
                $saida .= sprintf($formaNfpRef, $serie, $numero, $cpf_cnpj, $data, $mod, $ie);
3660
            }
3661
        }
3662
3663
        return $saida;
3664
    }
3665
3666
    private function loadDoc($xml) {
3667
        $this->xml = $xml;
3668
        if (! empty($xml)) {
3669
            $this->dom = new Dom();
3670
            $this->dom->loadXML($this->xml);
3671
            if (empty($this->dom->getElementsByTagName("infNFe")->item(0))) {
3672
                throw new \Exception('Isso não é um NFe.');
3673
            }
3674
            $this->nfeProc = $this->dom->getElementsByTagName("nfeProc")->item(0);
3675
            $this->infNFe  = $this->dom->getElementsByTagName("infNFe")->item(0);
3676
            $this->ide     = $this->dom->getElementsByTagName("ide")->item(0);
3677
            if ($this->getTagValue($this->ide, "mod") != '55') {
3678
                throw new \Exception("O xml deve ser NF-e modelo 55.");
3679
            }
3680
            $this->entrega    = $this->dom->getElementsByTagName("entrega")->item(0);
3681
            $this->retirada   = $this->dom->getElementsByTagName("retirada")->item(0);
3682
            $this->emit       = $this->dom->getElementsByTagName("emit")->item(0);
3683
            $this->dest       = $this->dom->getElementsByTagName("dest")->item(0);
3684
            $this->enderEmit  = $this->dom->getElementsByTagName("enderEmit")->item(0);
3685
            $this->enderDest  = $this->dom->getElementsByTagName("enderDest")->item(0);
3686
            $this->det        = $this->dom->getElementsByTagName("det");
0 ignored issues
show
Documentation Bug introduced by
It seems like $this->dom->getElementsByTagName('det') of type object<DOMNodeList> is incompatible with the declared type object<DOMNode> of property $det.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
3687
            $this->cobr       = $this->dom->getElementsByTagName("cobr")->item(0);
3688
            $this->dup        = $this->dom->getElementsByTagName('dup');
0 ignored issues
show
Documentation Bug introduced by
It seems like $this->dom->getElementsByTagName('dup') of type object<DOMNodeList> is incompatible with the declared type object<DOMNode> of property $dup.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
3689
            $this->ICMSTot    = $this->dom->getElementsByTagName("ICMSTot")->item(0);
3690
            $this->ISSQNtot   = $this->dom->getElementsByTagName("ISSQNtot")->item(0);
3691
            $this->transp     = $this->dom->getElementsByTagName("transp")->item(0);
3692
            $this->transporta = $this->dom->getElementsByTagName("transporta")->item(0);
3693
            $this->veicTransp = $this->dom->getElementsByTagName("veicTransp")->item(0);
3694
            $this->detPag     = $this->dom->getElementsByTagName("detPag");
3695
            $this->reboque    = $this->dom->getElementsByTagName("reboque")->item(0);
3696
            $this->infAdic    = $this->dom->getElementsByTagName("infAdic")->item(0);
3697
            $this->compra     = $this->dom->getElementsByTagName("compra")->item(0);
3698
            $this->tpEmis     = $this->getTagValue($this->ide, "tpEmis");
0 ignored issues
show
Documentation Bug introduced by
The property $tpEmis was declared of type integer, but $this->getTagValue($this->ide, 'tpEmis') is of type string. Maybe add a type cast?

This check looks for assignments to scalar types that may be of the wrong type.

To ensure the code behaves as expected, it may be a good idea to add an explicit type cast.

$answer = 42;

$correct = false;

$correct = (bool) $answer;
Loading history...
3699
            $this->tpImp      = $this->getTagValue($this->ide, "tpImp");
0 ignored issues
show
Documentation Bug introduced by
The property $tpImp was declared of type integer, but $this->getTagValue($this->ide, 'tpImp') is of type string. Maybe add a type cast?

This check looks for assignments to scalar types that may be of the wrong type.

To ensure the code behaves as expected, it may be a good idea to add an explicit type cast.

$answer = 42;

$correct = false;

$correct = (bool) $answer;
Loading history...
3700
            $this->infProt    = $this->dom->getElementsByTagName("infProt")->item(0);
3701
        }
3702
    }
3703
3704
    /**
3705
     * @param $item
3706
     *
3707
     * @return float
3708
     */
3709
    protected function calculeHeight($item) {
3710
        if ($this->orientacao == 'P') {
3711
            $w = $this->wPrint;
3712
        } else {
3713
            $w = $this->wPrint - $this->wCanhoto;
3714
        }
3715
        $w2           = round($w * 0.25, 0);
3716
        $aFont        = ['font' => $this->fontePadrao, 'size' => 7, 'style' => ''];
3717
        $textoProduto = $this->descricaoProduto($item);
3718
        $numlinhas    = $this->pdf->getNumLines($textoProduto, $w2, $aFont);
3719
3720
        return round(($numlinhas * $this->pdf->fontSize) + ($numlinhas * 0.5), 2);
3721
    }
3722
}
3723