Z0205   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 47
Duplicated Lines 100 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 1
dl 47
loc 47
ccs 0
cts 5
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A __construct() 5 5 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
3
namespace NFePHP\EFD\Elements\ICMSIPI;
4
5
use NFePHP\EFD\Common\Element;
6
use NFePHP\EFD\Common\ElementInterface;
7
use \stdClass;
8
9
/**
10
 * Elemento 0205 do Bloco 0
11
 * REGISTRO 0205: ALTERAÇÃO DO ITEM
12
 * Este registro tem por objetivo informar alterações ocorridas na descrição do
13
 * produto ou quando ocorrer alteração na codificação  do produto, desde que não
14
 * o descaracterize ou haja modificação  que o identifique como sendo  novo produto.
15
 * Caso não tenha ocorrido movimentação no período da alteração do item, deverá
16
 * ser informada no primeiro período em que houver movimentação do item ou no inventário.
17
 * Validação do Registro:  Não  podem ser informados dois ou mais registros
18
 * com sobreposição  de períodos para  o mesmo campo alterado (02 ou 05).
19
 *
20
 * NOTA: usada a letra Z no nome da Classe pois os nomes não podem ser exclusivamente
21
 * numeréricos e também para não confundir os com elementos do bloco B
22
 */
23 View Code Duplication
class Z0205 extends Element implements ElementInterface
0 ignored issues
show
Duplication introduced by
This class seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
24
{
25
    const REG = '0205';
26
    const LEVEL = 3;
27
    const PARENT = '0200';
28
    
29
    protected $parameters = [
30
        'DESCR_ANT_ITEM' => [
31
            'type'     => 'string',
32
            'regex'    => '^.{3,255}$',
33
            'required' => false,
34
            'info'     => 'Descrição anterior do item',
35
            'format'   => ''
36
        ],
37
        'DT_INI' => [
38
            'type'     => 'string',
39
            'regex'    => '^(0[1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))(0[1-9]|1[0-2])([12]\d{3})$',
40
            'required' => true,
41
            'info'     => 'Data inicial de utilização da descrição do item',
42
            'format'   => ''
43
        ],
44
        'DT_FIM' => [
45
            'type'     => 'string',
46
            'regex'    => '^(0[1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))(0[1-9]|1[0-2])([12]\d{3})$',
47
            'required' => true,
48
            'info'     => 'Data final de utilização da descrição do item',
49
            'format'   => ''
50
        ],
51
        'COD_ANT_ITEM' => [
52
            'type'     => 'string',
53
            'regex'    => '^.{1,60}$',
54
            'required' => false,
55
            'info'     => 'Código anterior do item com relação à última informação apresentada.',
56
            'format'   => ''
57
        ]
58
    ];
59
    
60
    /**
61
     * Constructor
62
     * @param stdClass $std
63
     */
64
    public function __construct(stdClass $std)
65
    {
66
        parent::__construct(self::REG);
67
        $this->std = $this->standarize($std);
68
    }
69
}
70