Z0205::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 5
Ratio 100 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 5
loc 5
ccs 0
cts 5
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 2
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