Z0190::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 8
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 0190 do Bloco 0
11
 * REGISTRO 0190: IDENTIFICAÇÃO DAS UNIDADES DE MEDIDA
12
 * Este  registro tem por objetivo descrever as unidades de medidas
13
 * utilizadas no arquivo digital. Não podem ser informados dois ou mais
14
 * registros com  o  mesmo  código  de  unidade  de  medida.
15
 *  Somente  devem  constar  as  unidades  de medidas informadas em qualquer
16
 * outro registro.
17
 *
18
 * NOTA: usada a letra Z no nome da Classe pois os nomes não podem ser exclusivamente
19
 * numeréricos e também para não confundir os com elementos do bloco B
20
 */
21
class Z0190 extends Element implements ElementInterface
22
{
23
    const REG = '0190';
24
    const LEVEL = 0;
25
    const PARENT = '';
26
    
27
    protected $parameters = [
28
        'UNID' => [
29
            'type'     => 'string',
30
            'regex'    => '^.{1,6}$',
31
            'required' => true,
32
            'info'     => 'Código da unidade de medida.',
33
            'format'   => ''
34
        ],
35
        'DESCR' => [
36
            'type'     => 'string',
37
            'regex'    => '^.{1,255}$',
38
            'required' => true,
39
            'info'     => 'Descrição da unidade de medida.',
40
            'format'   => ''
41
        ]
42
    ];
43
    
44
    /**
45
     * Constructor
46
     * @param stdClass $std
47
     */
48
    public function __construct(stdClass $std)
49
    {
50
        parent::__construct(self::REG);
51
        $this->std = $this->standarize($std);
52
        /*Removida  e exigência de que a UNID seja diferente de DESCR Guia Prático EFD-ICMS/IPI –
53
          Versão 3.0.2 Atualização: 21 de maio de 2019*/
54
        /*$this->postValidation();*/
55
    }
56
    
57
    /**
58
     * Aqui são colocadas validações adicionais que requerem mais logica
59
     * e processamento
60
     * Deve ser usado apenas quando necessário
61
     * @throws \InvalidArgumentException
62
     */
63
    public function postValidation()
64
    {
65
        /*Removida  e exigência de que a UNID seja diferente de DESCR Guia Prático EFD-ICMS/IPI –
66
          Versão 3.0.2 Atualização: 21 de maio de 2019*/
67
        /*
68
        if ($this->std->unid === $this->std->descr) {
69
            throw new \InvalidArgumentException("[" . self::REG . "] Os campos UNID e DESCR não
70
            podem ser iguais.".$this->std->unid.'|'.$this->std->descr);
71
        }*/
72
    }
73
}
74